Table of Contents

Class PssSigner

Namespace
Org.BouncyCastle.Crypto.Signers
Assembly
BouncyCastle.Cryptography.dll

RSA-PSS as described in Pkcs# 1 v 2.1.

Note: the usual value for the salt length is the number of bytes in the hash function.

public class PssSigner : ISigner
Inheritance
PssSigner
Implements
Inherited Members

Constructors

PssSigner(IAsymmetricBlockCipher, IDigest)

public PssSigner(IAsymmetricBlockCipher cipher, IDigest digest)

Parameters

cipher IAsymmetricBlockCipher
digest IDigest

PssSigner(IAsymmetricBlockCipher, IDigest, IDigest, byte[])

public PssSigner(IAsymmetricBlockCipher cipher, IDigest contentDigest, IDigest mgfDigest, byte[] salt)

Parameters

cipher IAsymmetricBlockCipher
contentDigest IDigest
mgfDigest IDigest
salt byte[]

PssSigner(IAsymmetricBlockCipher, IDigest, IDigest, int)

public PssSigner(IAsymmetricBlockCipher cipher, IDigest contentDigest, IDigest mgfDigest, int saltLen)

Parameters

cipher IAsymmetricBlockCipher
contentDigest IDigest
mgfDigest IDigest
saltLen int

PssSigner(IAsymmetricBlockCipher, IDigest, IDigest, int, byte)

public PssSigner(IAsymmetricBlockCipher cipher, IDigest contentDigest, IDigest mgfDigest, int saltLen, byte trailer)

Parameters

cipher IAsymmetricBlockCipher
contentDigest IDigest
mgfDigest IDigest
saltLen int
trailer byte

PssSigner(IAsymmetricBlockCipher, IDigest, byte[])

Basic constructor

public PssSigner(IAsymmetricBlockCipher cipher, IDigest digest, byte[] salt)

Parameters

cipher IAsymmetricBlockCipher

the asymmetric cipher to use.

digest IDigest

the digest to use.

salt byte[]

the fixed salt to be used.

PssSigner(IAsymmetricBlockCipher, IDigest, int)

Basic constructor

public PssSigner(IAsymmetricBlockCipher cipher, IDigest digest, int saltLen)

Parameters

cipher IAsymmetricBlockCipher

the asymmetric cipher to use.

digest IDigest

the digest to use.

saltLen int

the length of the salt to use (in bytes).

PssSigner(IAsymmetricBlockCipher, IDigest, int, byte)

public PssSigner(IAsymmetricBlockCipher cipher, IDigest digest, int saltLen, byte trailer)

Parameters

cipher IAsymmetricBlockCipher
digest IDigest
saltLen int
trailer byte

Fields

TrailerImplicit

public const byte TrailerImplicit = 188

Field Value

byte

Properties

AlgorithmName

The algorithm name.

public virtual string AlgorithmName { get; }

Property Value

string

Methods

BlockUpdate(byte[], int, int)

Update the signer with a block of bytes.

public virtual void BlockUpdate(byte[] input, int inOff, int inLen)

Parameters

input byte[]

the byte array containing the data.

inOff int

the offset into the byte array where the data starts.

inLen int

the length of the data.

BlockUpdate(ReadOnlySpan<byte>)

Update the signer with a span of bytes.

public virtual void BlockUpdate(ReadOnlySpan<byte> input)

Parameters

input ReadOnlySpan<byte>

the span containing the data.

CreateRawSigner(IAsymmetricBlockCipher, IDigest)

public static PssSigner CreateRawSigner(IAsymmetricBlockCipher cipher, IDigest digest)

Parameters

cipher IAsymmetricBlockCipher
digest IDigest

Returns

PssSigner

CreateRawSigner(IAsymmetricBlockCipher, IDigest, IDigest, byte[], byte)

public static PssSigner CreateRawSigner(IAsymmetricBlockCipher cipher, IDigest contentDigest, IDigest mgfDigest, byte[] salt, byte trailer)

Parameters

cipher IAsymmetricBlockCipher
contentDigest IDigest
mgfDigest IDigest
salt byte[]
trailer byte

Returns

PssSigner

CreateRawSigner(IAsymmetricBlockCipher, IDigest, IDigest, int, byte)

public static PssSigner CreateRawSigner(IAsymmetricBlockCipher cipher, IDigest contentDigest, IDigest mgfDigest, int saltLen, byte trailer)

Parameters

cipher IAsymmetricBlockCipher
contentDigest IDigest
mgfDigest IDigest
saltLen int
trailer byte

Returns

PssSigner

CreateRawSigner(IAsymmetricBlockCipher, IDigest, int)

public static PssSigner CreateRawSigner(IAsymmetricBlockCipher cipher, IDigest digest, int saltLen)

Parameters

cipher IAsymmetricBlockCipher
digest IDigest
saltLen int

Returns

PssSigner

GenerateSignature()

Generate a signature for the message we've been loaded with using the key we were initialised with.

public virtual byte[] GenerateSignature()

Returns

byte[]

A byte array containing the signature for the message.

GetMaxSignatureSize()

public virtual int GetMaxSignatureSize()

Returns

int

Init(bool, ICipherParameters)

Initialise the signer for signing or verification.

public virtual void Init(bool forSigning, ICipherParameters parameters)

Parameters

forSigning bool

true if for signing, false otherwise.

parameters ICipherParameters

necessary parameters.

Reset()

Reset the signer back to its initial state.

public virtual void Reset()

Update(byte)

Update the signer with a single byte.

public virtual void Update(byte input)

Parameters

input byte

the input byte to be entered.

VerifySignature(byte[])

Return true if the internal state represents the signature described in the passed in array.

public virtual bool VerifySignature(byte[] signature)

Parameters

signature byte[]

an array containing the candidate signature to verify.

Returns

bool

true if the internal state represents the signature described in the passed in array.