Node:The IBlockCipher Interface, Next:, Previous:Ciphers, Up:Ciphers



The IBlockCipher Interface

diagrams/cipher_class_diag.png
Figure 1: Ciphers class diagram

All ciphers in GNU Crypto implement the IBlockCipher interface, and support all the methods listed in this section.

java.lang.String CIPHER_BLOCK_SIZE Variable
A property name in the attributes map that is passed to the init method, representing the cipher's desired block size. The mapped value should be a java.lang.Integer of the cipher's block size, in bytes. If this attribute is omitted, the cipher's default block size is used.

java.lang.String KEY_MATERIAL Variable
A property name in the attributes map that is passed to the init method, representing the bytes that are to compose the cipher's key. The mapped value must be a byte array, and its length must be one of the cipher's supported key sizes.

void init (java.util.Map attributes) throws java.security.InvalidKeyException, java.lang.IllegalStateException Function
Initializes the cipher for transforming data. The attributes parameter must be a java.util.Map that has, at least, a mapping between the KEY_MATERIAL property name to a byte array containing the key. Ciphers may define other property names. If the supplied byte array is not an acceptable key, this method throws a java.security.InvalidKeyException. If this instance has already been initialized, this method throws a java.lang.IllegalStateException.

java.lang.String name ( ) Function
Returns the cipher's canonical name.

int defaultBlockSize ( ) Function
Returns the default block size, in bytes.

int defaultKeySize ( ) Function
Returns the default key size, in bytes.

java.util.Iterator blockSizes ( ) Function
Returns a java.util.Iterator of the cipher's supported block sizes. Each element of the iterator is a java.lang.Integer.

java.util.Iterator keySizes ( ) Function
Returns a java.util.Iterator of the cipher's supported key sizes. Each element of the iterator is a java.lang.Integer.

java.lang.Object clone ( ) Function
Returns a clone of this cipher. The cloned instance must be initialized, as this method will not clone the cipher's internal key.

int currentBlockSize ( ) throws java.lang.IllegalStateException Function
Returns the cipher's current block size, in bytes, or will throw a java.lang.IllegalStateException if this instance has not been initialized.

void reset ( ) Function
Resets this instance, which may then be re-initialized.

void encryptBlock (byte[] plaintext, int inOffset, byte[] ciphertext, int outOffset) throws java.lang.IllegalStateException Function
Encrypts a block of bytes from plaintext starting at inOffset, storing the encrypted bytes in ciphertext, starting at outOffset. It is up to the programmer to ensure that there is at least one full block in plaintext from inOffset and space for one full block in ciphertext from outOffset. A java.lang.IllegalStateException will be thrown if the cipher has not been initialized.

void decryptBlock (byte[] ciphertext, int inOffset, byte[] plaintext, int outOffset) throws java.lang.IllegalStateException Function
Decrypts a block of bytes from ciphertext starting at inOffset, storing the encrypted bytes in plaintext, starting at outOffset. It is up to the programmer to ensure that there is at least one full block in ciphertext from inOffset and space for one full block in plaintext from outOffset. A java.lang.IllegalStateException will be thrown if the cipher has not been initialized.

boolean selfTest ( ) Function
Performs a simple test of conformance, to ensure that there are no implementation or system errors. This method returns true if the test succeeds; false otherwise.