public class RSABlindingEngine extends java.lang.Object implements AsymmetricBlockCipher
Modifier and Type | Field and Description |
---|---|
private java.math.BigInteger |
blindingFactor |
private RSACoreEngine |
core |
private boolean |
forEncryption |
private RSAKeyParameters |
key |
Constructor and Description |
---|
RSABlindingEngine() |
Modifier and Type | Method and Description |
---|---|
private java.math.BigInteger |
blindMessage(java.math.BigInteger msg) |
int |
getInputBlockSize()
Return the maximum size for an input block to this engine.
|
int |
getOutputBlockSize()
Return the maximum size for an output block to this engine.
|
void |
init(boolean forEncryption,
CipherParameters param)
Initialise the blinding engine.
|
byte[] |
processBlock(byte[] in,
int inOff,
int inLen)
Process a single block using the RSA blinding algorithm.
|
private java.math.BigInteger |
unblindMessage(java.math.BigInteger blindedMsg) |
private RSACoreEngine core
private RSAKeyParameters key
private java.math.BigInteger blindingFactor
private boolean forEncryption
public void init(boolean forEncryption, CipherParameters param)
init
in interface AsymmetricBlockCipher
forEncryption
- true if we are encrypting (blinding), false otherwise.param
- the necessary RSA key parameters.public int getInputBlockSize()
getInputBlockSize
in interface AsymmetricBlockCipher
public int getOutputBlockSize()
getOutputBlockSize
in interface AsymmetricBlockCipher
public byte[] processBlock(byte[] in, int inOff, int inLen)
processBlock
in interface AsymmetricBlockCipher
in
- the input array.inOff
- the offset into the input buffer where the data starts.inLen
- the length of the data to be processed.DataLengthException
- the input block is too large.private java.math.BigInteger blindMessage(java.math.BigInteger msg)
private java.math.BigInteger unblindMessage(java.math.BigInteger blindedMsg)