COM.claymoresystems.provider
Class RawRSACipher
Cipher
COM.claymoresystems.provider.RawRSACipher
- AsymmetricCipher, Cloneable, Blindable
public class RawRSACipher
extends Cipher
implements AsymmetricCipher, Cloneable, Blindable
The raw RSA encryption algorithm, without any block framing.
If the number of bits in the modulus is
bitlength, the plaintext and
ciphertext block sizes will both be
(int) ((bitlength+7)/8)
.
When in ENCRYPT mode, if the value of any plaintext block, considered as a
BigInteger with Big-Endian byte order, is greater than or equal to the
modulus, a CryptixException will be thrown.
This class is designed to allow any input to the RSA encryption algorithm,
in order to facilitate implementation of standards which use a block framing
format not otherwise supported by Cryptix. Note that using raw RSA directly on
application data is potentially insecure; wherever possible a higher level
algorithm such as "RSA/PKCS#1" should be used.
(Note: RSA/PKCS#1 is not implemented in this version of Cryptix.)
References:
- Bruce Schneier,
"Section 19.3 RSA,"
Applied Cryptography, 2nd edition,
John Wiley & Sons, 1996.
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.11 $
- Raif S. Naffah
- David Hopwood
RawRSACipher() - Constructs a RawRSA cipher object, in the UNINITIALIZED state.
|
protected int | engineCiphertextBlockSize()
|
protected void | engineInitDecrypt(Key key) - SPI: Initializes this cipher object for decryption, using the
given private key.
|
protected void | engineInitEncrypt(Key key) - SPI: Initializes this cipher object for encryption, using the
given public key.
|
protected int | enginePlaintextBlockSize() - SPI: Return the block size, in bytes.
|
protected int | engineUpdate(byte[] in, int inOffset, int inLen, byte[] out, int outOffset)
|
static void | main(String[] args) - Entry point for very basic
self_test .
|
static void | self_test(PrintWriter out)
|
void | setBlindingInfo(SecureRandom rng, CryptixRSAPublicKey pubKey) - set the RNG for blinding
|
RawRSACipher
public RawRSACipher()
Constructs a RawRSA cipher object, in the UNINITIALIZED state.
This calls the Cipher constructor with implBuffering false,
implPadding false and the provider set to "Cryptix".
engineCiphertextBlockSize
protected int engineCiphertextBlockSize()
engineInitDecrypt
protected void engineInitDecrypt(Key key)
throws InvalidKeyException
SPI: Initializes this cipher object for decryption, using the
given private key.
key
- the private key to be used for decryption.
engineInitEncrypt
protected void engineInitEncrypt(Key key)
throws InvalidKeyException
SPI: Initializes this cipher object for encryption, using the
given public key.
key
- the public key to be used for encryption.
enginePlaintextBlockSize
protected int enginePlaintextBlockSize()
SPI: Return the block size, in bytes. For RawRSA this is the number
of bytes needed to represent the modulus, n.
engineUpdate
protected int engineUpdate(byte[] in,
int inOffset,
int inLen,
byte[] out,
int outOffset)
main
public static final void main(String[] args)
Entry point for very basic self_test
.
self_test
public static void self_test(PrintWriter out)
throws Exception
setBlindingInfo
public void setBlindingInfo(SecureRandom rng,
CryptixRSAPublicKey pubKey)
set the RNG for blinding
Copyright (c) 1999-2001 Claymore Systems, Inc., All Rights Reserved.