cryptix.provider.rsa
public class RawRSACipher extends Cipher implements AsymmetricCipher, Cloneable
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:
Copyright © 1997
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.11 $
Since: Cryptix 2.2.2
Constructor Summary | |
---|---|
RawRSACipher()
Constructs a RawRSA cipher object, in the UNINITIALIZED state.
|
Method Summary | |
---|---|
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) |
Parameters: key the private key to be used for decryption.
Throws: InvalidKeyException if the key class does not implement java.security.interfaces.RSAPrivateKey.
Parameters: key the public key to be used for encryption.
Throws: InvalidKeyException if the key class does not implement java.security.interfaces.RSAPublicKey.
Returns: the block size in bytes.
Throws: CryptixException if the cipher object is uninitialized.
self_test
.