Table of Contents

Class ExternalSigningRequest

Namespace
SimpleSign.Core.Signing
Assembly
SimpleSign.Core.dll

An explicit, self-describing external signing request. Adapters for HSMs, cloud KMS, and A3 tokens can safely implement the contract without container-specific guesswork.

public sealed record ExternalSigningRequest : IEquatable<ExternalSigningRequest>
Inheritance
ExternalSigningRequest
Implements
Inherited Members

Constructors

ExternalSigningRequest(ReadOnlyMemory<byte>, HashAlgorithmName, string, ExternalSigningPayloadKind, string?, RsaPssParameters?)

Creates a new external signing request.

public ExternalSigningRequest(ReadOnlyMemory<byte> dataToSign, HashAlgorithmName hashAlgorithm, string signatureAlgorithmOid, ExternalSigningPayloadKind payloadKind, string? operationId = null, RsaPssParameters? rsaPssParameters = null)

Parameters

dataToSign ReadOnlyMemory<byte>

The bytes to sign.

hashAlgorithm HashAlgorithmName

The resolved hash algorithm.

signatureAlgorithmOid string

The signature algorithm OID to produce.

payloadKind ExternalSigningPayloadKind

The kind of payload.

operationId string

Optional operation ID.

rsaPssParameters RsaPssParameters

PSS parameters when signatureAlgorithmOid is id-RSASSA-PSS.

Exceptions

ArgumentException

signatureAlgorithmOid is null or whitespace.

Properties

DataToSign

The bytes to sign (CMS signed attributes or canonicalized XML SignedInfo).

public ReadOnlyMemory<byte> DataToSign { get; }

Property Value

ReadOnlyMemory<byte>

HashAlgorithm

The fully resolved hash algorithm used to compute the message imprint.

public HashAlgorithmName HashAlgorithm { get; }

Property Value

HashAlgorithmName

OperationId

Optional operation ID for log correlation.

public string? OperationId { get; }

Property Value

string

PayloadKind

The kind of payload carried in DataToSign.

public ExternalSigningPayloadKind PayloadKind { get; }

Property Value

ExternalSigningPayloadKind

RsaPssParameters

The complete PSS parameters the signer must use, or null for a non-PSS request.

public RsaPssParameters? RsaPssParameters { get; }

Property Value

RsaPssParameters

SignatureAlgorithmOid

The signature algorithm OID the signer must produce.

public string SignatureAlgorithmOid { get; }

Property Value

string