These classes provide a number of low-level cryptographic routines.
These cryptographic routines include symmetric and asymmetric encryption and decryption, hashing, secure random number generation...
Interface Summary Interface Description EntropyHarvesterAllow various components with some entropy to feed that entropy back into some PRNG. KeyFactoryMake KeyPairs KeyRingA backend for storing and retrieving SigningPublicKeys to be used for verifying signatures. TagSetHandleAn opaque handle to a TagSet returned by the SessionKeyManager, so that OCMOSJ can report that the tags were later acked, or not.
Class Summary Class Description AESEngineDummy wrapper for AES cipher operation. BlindingUtilities for Blinding EdDSA keys. CertUtilJava X.509 certificate utilities, consolidated from various places. ChaCha20ChaCha20, wrapper around Noise ChaChaCore. CryptixAESEngineWrapper for AES cypher operation using Cryptix's Rijndael implementation. CryptixAESKeyCacheCache the objects used in CryptixRijndael_Algorithm.makeKey to reduce memory churn. CryptixAESKeyCache.KeyCacheEntryall the data alloc'ed in a makeKey call CryptixRijndael_AlgorithmRijndael --pronounced Reindaal-- is a variable block-size (128-, 192- and 256-bit), variable key-size (128-, 192- and 256-bit) symmetric cipher. CryptoCheckMoved from CryptixAESEngine and net.i2p.router.tasks.CryptoChecker. CryptoConstantsPrime for ElGamal from http://tools.ietf.org/html/rfc3526 Primes for DSA: Generated by TheCrypto http://article.gmane.org/gmane.comp.security.invisiblenet.iip.devel/343 See also: ECConstants, RSAConstants DirKeyRingSimple storage of each cert in a separate file in a directory. DSAEngineSign and verify using DSA-SHA1 and other signature algorithms. ECConstantsConstants for elliptic curves, from NIST FIPS 186-4 (2013) / ANSI X9.62 ECUtilUsed by KeyGenerator.getSigningPublicKey() Modified from http://stackoverflow.com/questions/15727147/scalar-multiplication-of-point-over-elliptic-curve Apparently public domain. ElGamalEngineWrapper for ElGamal encryption/signature schemes. Hash38448 byte hash Hash51264 byte hash HKDFVarious flavors of HKDF using HMAC-SHA256. HMAC256GeneratorCalculate the HMAC-SHA256 of a key+message. HMAC256Generator.HMACKeyLike SecretKeySpec but doesn't copy the key in the construtor, for speed. HMACGeneratorCalculate the HMAC of a key+message. KeyGeneratorDefine a way of generating asymmetrical key pairs as well as symmetrical keys KeyPairSame as java.security.KeyPair, but with I2P keys KeyStoreUtilKeystore utilities, consolidated from various places. RSAConstantsConstants for RSA RSASigningPrivateCrtKeyA SigningPrivateKey that retains the Chinese Remainder Theorem parameters, so it can be converted back to a Java CRT key. SelfSignedGeneratorGenerate keys and a selfsigned certificate, suitable for storing in a Keystore with KeyStoreUtil.storePrivateKey(). SessionKeyManagerManage the session keys and session tags used for encryption and decryption. SHA1NOTE: As of 0.8.7, use getInstance() instead of new SHA1(), which will return the JVM's MessageDigest if it is faster. SHA1HashBecause DSAEngine was abusing Hash for 20-byte hashes SHA256GeneratorDefines a wrapper for SHA-256 operation. SigContext.SigContextSpecThe AlgorithmParameterSpec. SigUtilUtilities for Signing keys and Signatures SipHashInlineSipHash implementation with hand inlining the SIPROUND. SU3FileSuccesor to the ".sud" format used in TrustedUpdate. TrustedUpdateHandles DSA signing and verification of update files. YKGeneratorPrecalculate the Y and K for ElGamal encryption operations.
Enum Summary Enum Description EncAlgoPRELIMINARY - unused - subject to change Base encryption algorithm type EncTypePRELIMINARY - subject to change Defines the properties for various encryption types that I2P supports or may someday support. SigAlgoBase signature algorithm type SigContextDefines the context for signing with personalized hashes. SigTypeDefines the properties for various signature types that I2P supports or may someday support.