-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathISriSignService.cs
More file actions
75 lines (65 loc) · 3.25 KB
/
ISriSignService.cs
File metadata and controls
75 lines (65 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// -------------------------------------------------------------
// By: Erik Portilla
// Date: 2025-08-07
// -------------------------------------------------------------
using Yamgooo.SRI.Sign.Result;
namespace Yamgooo.SRI.Sign;
/// <summary>
/// Service interface for XML document signing operations.
/// </summary>
public interface ISriSignService
{
/// <summary>
/// Signs XML content asynchronously using the default certificate configuration.
/// </summary>
/// <param name="xmlContent">The XML content to sign.</param>
/// <returns>The signature result.</returns>
Task<SignatureResult> SignAsync(string xmlContent);
/// <summary>
/// Signs XML content asynchronously with specific certificate.
/// </summary>
/// <param name="xmlContent">The XML content to sign.</param>
/// <param name="certificatePath">The path to the certificate file.</param>
/// <param name="password">The password for the certificate.</param>
/// <returns>The signature result.</returns>
Task<SignatureResult> SignAsync(string xmlContent, string certificatePath, string password);
/// <summary>
/// Validates a signed XML document.
/// </summary>
/// <param name="signedXml">The signed XML content.</param>
/// <returns>True if the signature is valid, false otherwise.</returns>
bool ValidateSignature(string signedXml);
/// <summary>
/// Sets the default certificate path and password for automatic loading.
/// </summary>
/// <param name="certificatePath">The default certificate path.</param>
/// <param name="password">The default certificate password.</param>
void SetDefaultCertificate(string certificatePath, string password);
/// <summary>
/// Signs XML content asynchronously using a Base64-encoded certificate.
/// </summary>
/// <param name="xmlContent">The XML content to sign.</param>
/// <param name="certificateBase64">The Base64-encoded certificate (PKCS#12/PFX format).</param>
/// <param name="password">The password for the certificate.</param>
/// <returns>The signature result.</returns>
Task<SignatureResult> SignWithBase64CertificateAsync(string xmlContent, string certificateBase64, string password);
/// <summary>
/// Sets the default certificate from Base64 content for automatic loading.
/// </summary>
/// <param name="certificateBase64">The Base64-encoded certificate (PKCS#12/PFX format).</param>
/// <param name="password">The certificate password.</param>
void SetDefaultBase64Certificate(string certificateBase64, string password);
/// <summary>
/// Signs XML content asynchronously using the default Base64 certificate configuration.
/// </summary>
/// <param name="xmlContent">The XML content to sign.</param>
/// <returns>The signature result.</returns>
Task<SignatureResult> SignWithDefaultBase64CertificateAsync(string xmlContent);
/// <summary>
/// Validates a Base64-encoded certificate.
/// </summary>
/// <param name="certificateBase64">The Base64-encoded certificate.</param>
/// <param name="password">The certificate password.</param>
/// <returns>True if the certificate is valid, false otherwise.</returns>
bool ValidateBase64Certificate(string certificateBase64, string password);
}