Logo Search packages:      
Sourcecode: libgnucrypto-java version File versions  Download package

gnu::crypto::sasl::srp::CALG Class Reference

List of all members.

Detailed Description

A Factory class that returns CALG (Confidentiality Algorithm) instances that operate as described in the draft-burdis-cat-sasl-srp-08.

The designated CALG block cipher should be used in OFB (Output Feedback Block) mode in the ISO variant, as described in The Handbook of Applied Cryptography, algorithm 7.20.

Let k be the block size of the chosen symmetric key block cipher algorithm; e.g. for AES this is 128 bits or 16 octets. The OFB mode used shall be of length/size k.

It is recommended that block ciphers operating in OFB mode be used with an Initial Vector (the mode's IV). In such a mode of operation - OFB with key re-use - the IV need not be secret. For the mechanism in question the IVs shall be a random octet sequence of k bytes.

The input data to the confidentiality protection algorithm shall be a multiple of the symmetric cipher block size k. When the input length is not a multiple of k octets, the data shall be padded according to the following scheme:

Assuming the length of the input is l octets, (k - (l mod k)) octets, all having the value (k - (l mod k)), shall be appended to the original data. In other words, the input is padded at the trailing end with one of the following sequences:

                    01 -- if l mod k = k-1
                   02 02 -- if l mod k = k-2
                 k k ... k k -- if l mod k = 0

The padding can be removed unambiguously since all input is padded and no padding sequence is a suffix of another. This padding method is well-defined if and only if k < 256 octets, which is the case with symmetric key block ciphers today, and in the forseeable future.


Definition at line 110 of file CALG.java.

Public Member Functions

byte[] doFinal (final byte[] data, final int offset, final int length) throws ConfidentialityException
byte[] doFinal (final byte[] data) throws ConfidentialityException
void init (final KDF kdf, final byte[] iv, final Direction dir) throws SaslException

Static Package Functions

static synchronized CALG getInstance (final String algorithm)

Private Member Functions

 CALG (final int blockSize, final int keySize, final Object modeNdx, final Assembly assembly)

Private Attributes

Assembly assembly
int blockSize
int keySize
Object modeNdx

The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index