|
Bouncy Castle Cryptography Library 1.85 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.bouncycastle.crypto.signers.PSSSigner
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.
The createRawSigner(AsymmetricBlockCipher, Digest) family builds a signer that
operates on a pre-computed message hash (mHash) rather than the message itself.
RFC 8017 (PKCS#1 v2.2) sec. 9.1 EMSA-PSS first hashes the message M to mHash and then
salts and re-hashes; these factories replace only that first hash with a
Prehash pass-through, so the caller supplies
mHash via and the signer still performs the salt / M' / second-hash /
masking steps. The bytes supplied must be exactly the content digest's output length,
otherwise signing or verification fails with "Incorrect prehash size". This is the
lightweight-API equivalent of a "sign/verify pre-computed hash" entry point
(github #1145). See .
| Field Summary | |
static byte |
TRAILER_IMPLICIT
|
| Constructor Summary | |
PSSSigner(AsymmetricBlockCipher cipher,
Digest digest,
byte[] salt)
|
|
PSSSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
byte[] salt)
|
|
PSSSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
byte[] salt,
byte trailer)
|
|
PSSSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
int sLen)
|
|
PSSSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
int sLen,
byte trailer)
|
|
PSSSigner(AsymmetricBlockCipher cipher,
Digest digest,
int sLen)
basic constructor |
|
PSSSigner(AsymmetricBlockCipher cipher,
Digest digest,
int sLen,
byte trailer)
|
|
| Method Summary | |
static PSSSigner |
createRawSigner(AsymmetricBlockCipher cipher,
Digest digest)
Create a PSS signer/verifier that consumes a pre-computed message hash. |
static PSSSigner |
createRawSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
byte[] salt,
byte trailer)
Create a PSS signer/verifier that consumes a pre-computed message hash, using a fixed salt (chiefly for known-answer testing where the salt must be reproducible). |
static PSSSigner |
createRawSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
int sLen,
byte trailer)
Create a PSS signer/verifier that consumes a pre-computed message hash, with the MGF digest, salt length and trailer specified explicitly. |
byte[] |
generateSignature()
generate a signature for the message we've been loaded with using the key we were initialised with. |
void |
init(boolean forSigning,
CipherParameters param)
Initialise the signer for signing or verification. |
void |
reset()
reset the internal state |
void |
update(byte b)
update the internal digest with the byte b |
void |
update(byte[] in,
int off,
int len)
update the internal digest with the byte array in |
boolean |
verifySignature(byte[] signature)
return true if the internal state represents the signature described in the passed in array. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final byte TRAILER_IMPLICIT
| Constructor Detail |
public PSSSigner(AsymmetricBlockCipher cipher,
Digest digest,
int sLen)
cipher - the asymmetric cipher to use.digest - the digest to use.sLen - the length of the salt to use (in bytes).
public PSSSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
int sLen)
public PSSSigner(AsymmetricBlockCipher cipher,
Digest digest,
int sLen,
byte trailer)
public PSSSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
int sLen,
byte trailer)
public PSSSigner(AsymmetricBlockCipher cipher,
Digest digest,
byte[] salt)
public PSSSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
byte[] salt)
public PSSSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
byte[] salt,
byte trailer)
| Method Detail |
public static PSSSigner createRawSigner(AsymmetricBlockCipher cipher,
Digest digest)
cipher - the asymmetric cipher to use (e.g. a configured RSAEngine).digest - the digest the supplied hash was produced with.
public static PSSSigner createRawSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
int sLen,
byte trailer)
cipher - the asymmetric cipher to use.contentDigest - the digest the supplied hash was produced with, also used for the second hash.mgfDigest - the digest to use for the MGF1 mask generation function.sLen - the length of the salt to use (in bytes).trailer - the trailer byte (usually TRAILER_IMPLICIT).
public static PSSSigner createRawSigner(AsymmetricBlockCipher cipher,
Digest contentDigest,
Digest mgfDigest,
byte[] salt,
byte trailer)
cipher - the asymmetric cipher to use.contentDigest - the digest the supplied hash was produced with, also used for the second hash.mgfDigest - the digest to use for the MGF1 mask generation function.salt - the fixed salt to use.trailer - the trailer byte (usually TRAILER_IMPLICIT).
public void init(boolean forSigning,
CipherParameters param)
Signer
init in interface SignerforSigning - true if for signing, false otherwiseparam - necessary parameters.public void update(byte b)
update in interface Signer
public void update(byte[] in,
int off,
int len)
update in interface Signerpublic void reset()
reset in interface Signer
public byte[] generateSignature()
throws CryptoException,
DataLengthException
generateSignature in interface SignerCryptoException
DataLengthExceptionpublic boolean verifySignature(byte[] signature)
verifySignature in interface Signer
|
Bouncy Castle Cryptography Library 1.85 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||