## Package net.i2p.crypto

Interface Summary
EntropyHarvester: Allow various components with some entropy to feed that entropy back into some PRNG.

Class Summary
AESEngine: Dummy wrapper for AES cipher operation.
AESInputStream: This reads an underlying stream as written by AESOutputStream - AES256 encrypted in CBC mode with PKCS#5 padding, with the padding on each and every block of 16 bytes.
AESOutputStream: This writes everything as CBC with PKCS#5 padding, but each block is padded so as soon as a block is received it can be decrypted (rather than wait for an arbitrary number of blocks to arrive).
CryptixAESEngine: Wrapper for AES cypher operation using Cryptix's Rijndael implementation.
CryptixAESKeyCache: Cache the objects used in CryptixRijndael_Algorithm.makeKey to reduce memory churn.
CryptixAESKeyCache.KeyCacheEntry: all the data alloc'ed in a makeKey call
CryptixRijndael_Algorithm: Rijndael --pronounced Reindaal-- is a variable block-size (128-, 192- and 256-bit), variable key-size (128-, 192- and 256-bit) symmetric cipher.
CryptoConstants: Primes for ElGamal and DSA from http://www.ietf.org/proceedings/03mar/I-D/draft-ietf-ipsec-ike-modp-groups-05.txt
DHSessionKeyBuilder: Generate a new session key through a diffie hellman exchange.
DSAEngine
DummyDSAEngine: Stub that offers no authentication.
DummyElGamalEngine: Fake ElG E and D, useful for when performance isn't being tested
DummyPooledRandomSource
ElGamalAESEngine: Handles the actual ElGamal+AES encryption and decryption scenarios using the supplied keys and data.
ElGamalEngine: Wrapper for ElGamal encryption/signature schemes.
HMACGenerator: Calculate the HMAC-MD5 of a key+message.
KeyGenerator: Define a way of generating asymetrical key pairs as well as symetrical keys
PersistentSessionKeyManager: Expose the functionality to allow people to write out and read in the session key and session tag information via streams.
SessionKeyManager: Manage the session keys and session tags used for encryption and decryption.
SHA1: The FIPS PUB 180-2 standard specifies four secure hash algorithms (SHA-1, SHA-256, SHA-384 and SHA-512) for computing a condensed representation of electronic data (message).
SHA1Test
SHA256Generator: Defines a wrapper for SHA-256 operation.
TransientSessionKeyManager: Implement the session key management, but keep everything in memory (don't write to disk).
TransientSessionKeyManager.TagSet
TrustedUpdate: Handles DSA signing and verification of update files.
YKGenerator: Precalculate the Y and K for ElGamal encryption operations.

Exception Summary
DHSessionKeyBuilder.InvalidPublicParameterException