|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.bouncycastle.crypto.signers.ISO9796d2PSSSigner
public class ISO9796d2PSSSigner
ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
Note: the usual length for the salt is the length of the hash function used in bytes.
Field Summary | |
---|---|
private byte[] |
block
|
private AsymmetricBlockCipher |
cipher
|
private Digest |
digest
|
private boolean |
fullMessage
|
private int |
hLen
|
private int |
keyBits
|
private byte[] |
mBuf
|
private int |
messageLength
|
private java.security.SecureRandom |
random
|
private byte[] |
recoveredMessage
|
private int |
saltLength
|
private byte[] |
standardSalt
|
private int |
trailer
|
static int |
TRAILER_IMPLICIT
|
static int |
TRAILER_RIPEMD128
|
static int |
TRAILER_RIPEMD160
|
static int |
TRAILER_SHA1
|
Constructor Summary | |
---|---|
ISO9796d2PSSSigner(AsymmetricBlockCipher cipher,
Digest digest,
int saltLength)
Constructor for a signer with an explicit digest trailer. |
|
ISO9796d2PSSSigner(AsymmetricBlockCipher cipher,
Digest digest,
int saltLength,
boolean implicit)
Generate a signer for the with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3. |
Method Summary | |
---|---|
private void |
clearBlock(byte[] block)
clear possible sensitive data |
byte[] |
generateSignature()
generate a signature for the loaded message using the key we were initialised with. |
byte[] |
getRecoveredMessage()
Return a reference to the recoveredMessage message. |
boolean |
hasFullMessage()
Return true if the full message was recoveredMessage. |
void |
init(boolean forSigning,
CipherParameters param)
Initialise the signer. |
private boolean |
isSameAs(byte[] a,
byte[] b)
compare two byte arrays. |
private void |
ItoOSP(int i,
byte[] sp)
int to octet string. |
private void |
LtoOSP(long l,
byte[] sp)
long to octet string. |
private byte[] |
maskGeneratorFunction1(byte[] Z,
int zOff,
int zLen,
int length)
mask generator function, as described in PKCS1v2. |
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 signature represents a ISO9796-2 signature for the passed in message. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int TRAILER_IMPLICIT
public static final int TRAILER_RIPEMD160
public static final int TRAILER_RIPEMD128
public static final int TRAILER_SHA1
private Digest digest
private AsymmetricBlockCipher cipher
private java.security.SecureRandom random
private byte[] standardSalt
private int hLen
private int trailer
private int keyBits
private byte[] block
private byte[] mBuf
private int messageLength
private int saltLength
private boolean fullMessage
private byte[] recoveredMessage
Constructor Detail |
---|
public ISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, int saltLength, boolean implicit)
cipher
- base cipher to use for signature creation/verificationdigest
- digest to use.saltLength
- length of salt in bytes.implicit
- whether or not the trailer is implicit or gives the hash.public ISO9796d2PSSSigner(AsymmetricBlockCipher cipher, Digest digest, int saltLength)
cipher
- cipher to use.digest
- digest to sign with.saltLength
- length of salt in bytes.Method Detail |
---|
public void init(boolean forSigning, CipherParameters param)
init
in interface Signer
forSigning
- true if for signing, false if for verification.param
- parameters for signature generation/verification. If the
parameters are for generation they should be a ParametersWithRandom,
a ParametersWithSalt, or just an RSAKeyParameters object. If RSAKeyParameters
are passed in a SecureRandom will be created.
java.lang.IllegalArgumentException
- if wrong parameter type or a fixed
salt is passed in which is the wrong length.private boolean isSameAs(byte[] a, byte[] b)
private void clearBlock(byte[] block)
public void update(byte b)
update
in interface Signer
public void update(byte[] in, int off, int len)
update
in interface Signer
public void reset()
reset
in interface Signer
public byte[] generateSignature() throws CryptoException
generateSignature
in interface Signer
CryptoException
public boolean verifySignature(byte[] signature)
verifySignature
in interface Signer
public boolean hasFullMessage()
hasFullMessage
in interface SignerWithRecovery
SignerWithRecovery.hasFullMessage()
public byte[] getRecoveredMessage()
getRecoveredMessage
in interface SignerWithRecovery
SignerWithRecovery.getRecoveredMessage()
private void ItoOSP(int i, byte[] sp)
private void LtoOSP(long l, byte[] sp)
private byte[] maskGeneratorFunction1(byte[] Z, int zOff, int zLen, int length)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |