Restructure solution layout by module
This commit is contained in:
45
src/__Libraries/StellaOps.Cryptography/ICryptoSigner.cs
Normal file
45
src/__Libraries/StellaOps.Cryptography/ICryptoSigner.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
|
||||
namespace StellaOps.Cryptography;
|
||||
|
||||
/// <summary>
|
||||
/// Represents an asymmetric signer capable of producing and verifying detached signatures.
|
||||
/// </summary>
|
||||
public interface ICryptoSigner
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the key identifier associated with this signer.
|
||||
/// </summary>
|
||||
string KeyId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the signing algorithm identifier (e.g., ES256).
|
||||
/// </summary>
|
||||
string AlgorithmId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Signs the supplied payload bytes.
|
||||
/// </summary>
|
||||
/// <param name="data">Payload to sign.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns>Signature bytes.</returns>
|
||||
ValueTask<byte[]> SignAsync(ReadOnlyMemory<byte> data, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Verifies a previously produced signature over the supplied payload bytes.
|
||||
/// </summary>
|
||||
/// <param name="data">Payload that was signed.</param>
|
||||
/// <param name="signature">Signature to verify.</param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns><c>true</c> when the signature is valid; otherwise <c>false</c>.</returns>
|
||||
ValueTask<bool> VerifyAsync(ReadOnlyMemory<byte> data, ReadOnlyMemory<byte> signature, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// Exports the public representation of the key material as a JSON Web Key (JWK).
|
||||
/// </summary>
|
||||
/// <returns>Public JWK for distribution (no private components).</returns>
|
||||
JsonWebKey ExportPublicJsonWebKey();
|
||||
}
|
||||
Reference in New Issue
Block a user