Bouncy Castle Cryptography Library 1.77.0

org.bouncycastle.crypto.engines
Class NaccacheSternEngine

java.lang.Object
  |
  +--org.bouncycastle.crypto.engines.NaccacheSternEngine
All Implemented Interfaces:
AsymmetricBlockCipher

public class NaccacheSternEngine
extends java.lang.Object
implements AsymmetricBlockCipher

NaccacheStern Engine. For details on this cipher, please see https://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf


Constructor Summary
NaccacheSternEngine()
           
 
Method Summary
 byte[] addCryptedBlocks(byte[] block1, byte[] block2)
          Adds the contents of two encrypted blocks mod sigma
 byte[] encrypt(java.math.BigInteger plain)
          Encrypts a BigInteger aka Plaintext with the public key.
 int getInputBlockSize()
          Returns the input block size of this algorithm.
 int getOutputBlockSize()
          Returns the output block size of this algorithm.
 void init(boolean forEncryption, CipherParameters param)
          Initializes this algorithm.
 byte[] processBlock(byte[] in, int inOff, int len)
          Process a single Block using the Naccache-Stern algorithm.
 byte[] processData(byte[] data)
          Convenience Method for data exchange with the cipher.
 void setDebug(boolean debug)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NaccacheSternEngine

public NaccacheSternEngine()
Method Detail

init

public void init(boolean forEncryption,
                 CipherParameters param)
Initializes this algorithm. Must be called before all other Functions.
Specified by:
init in interface AsymmetricBlockCipher
See Also:
AsymmetricBlockCipher.init(boolean, org.bouncycastle.crypto.CipherParameters)

setDebug

public void setDebug(boolean debug)

getInputBlockSize

public int getInputBlockSize()
Returns the input block size of this algorithm.
Specified by:
getInputBlockSize in interface AsymmetricBlockCipher
See Also:
AsymmetricBlockCipher.getInputBlockSize()

getOutputBlockSize

public int getOutputBlockSize()
Returns the output block size of this algorithm.
Specified by:
getOutputBlockSize in interface AsymmetricBlockCipher
See Also:
AsymmetricBlockCipher.getOutputBlockSize()

processBlock

public byte[] processBlock(byte[] in,
                           int inOff,
                           int len)
                    throws InvalidCipherTextException
Process a single Block using the Naccache-Stern algorithm.
Specified by:
processBlock in interface AsymmetricBlockCipher
See Also:
AsymmetricBlockCipher.processBlock(byte[], int, int)

encrypt

public byte[] encrypt(java.math.BigInteger plain)
Encrypts a BigInteger aka Plaintext with the public key.
Parameters:
plain - The BigInteger to encrypt
Returns:
The byte[] representation of the encrypted BigInteger (i.e. crypted.toByteArray())

addCryptedBlocks

public byte[] addCryptedBlocks(byte[] block1,
                               byte[] block2)
                        throws InvalidCipherTextException
Adds the contents of two encrypted blocks mod sigma
Parameters:
block1 - the first encrypted block
block2 - the second encrypted block
Returns:
encrypt((block1 + block2) mod sigma)
Throws:
InvalidCipherTextException -  

processData

public byte[] processData(byte[] data)
                   throws InvalidCipherTextException
Convenience Method for data exchange with the cipher. Determines blocksize and splits data to blocksize.
Parameters:
data - the data to be processed
Returns:
the data after it went through the NaccacheSternEngine.
Throws:
InvalidCipherTextException -  

Bouncy Castle Cryptography Library 1.77.0