org.bouncycastle.crypto.engines
Class RSABlindingEngine
java.lang.Object
org.bouncycastle.crypto.engines.RSABlindingEngine
- AsymmetricBlockCipher
public class RSABlindingEngine
extends java.lang.Object
This does your basic RSA Chaum's blinding and unblinding as outlined in
"Handbook of Applied Cryptography", page 475. You need to use this if you are
trying to get another party to generate signatures without them being aware
of the message they are signing.
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.
|
getInputBlockSize
public int getInputBlockSize()
Return the maximum size for an input block to this engine.
For RSA this is always one byte less than the key size on
encryption, and the same length as the key size on decryption.
- getInputBlockSize in interface AsymmetricBlockCipher
- maximum size for an input block.
getOutputBlockSize
public int getOutputBlockSize()
Return the maximum size for an output block to this engine.
For RSA this is always one byte less than the key size on
decryption, and the same length as the key size on encryption.
- getOutputBlockSize in interface AsymmetricBlockCipher
- maximum size for an output block.
init
public void init(boolean forEncryption,
CipherParameters param)
Initialise the blinding engine.
- init in interface AsymmetricBlockCipher
forEncryption
- true if we are encrypting (blinding), false otherwise.param
- the necessary RSA key parameters.
processBlock
public byte[] processBlock(byte[] in,
int inOff,
int inLen)
Process a single block using the RSA blinding algorithm.
- 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.
- the result of the RSA process.