Package net.i2p.crypto

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
    EntropyHarvester
    Allow various components with some entropy to feed that entropy back into some PRNG.
    KeyFactory
    Make KeyPairs
    KeyRing
    A backend for storing and retrieving SigningPublicKeys to be used for verifying signatures.
    TagSetHandle
    An 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
    AESEngine
    Dummy wrapper for AES cipher operation.
    Blinding
    Utilities for Blinding EdDSA keys.
    CertUtil
    Java X.509 certificate utilities, consolidated from various places.
    ChaCha20
    ChaCha20, wrapper around Noise ChaChaCore.
    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.
    CryptoCheck
    Moved from CryptixAESEngine and net.i2p.router.tasks.CryptoChecker.
    CryptoConstants
    Prime 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
    DirKeyRing
    Simple storage of each cert in a separate file in a directory.
    DSAEngine
    Sign and verify using DSA-SHA1 and other signature algorithms.
    ECConstants
    Constants for elliptic curves, from NIST FIPS 186-4 (2013) / ANSI X9.62
    ECUtil
    Used by KeyGenerator.getSigningPublicKey() Modified from http://stackoverflow.com/questions/15727147/scalar-multiplication-of-point-over-elliptic-curve Apparently public domain.
    ElGamalEngine
    Wrapper for ElGamal encryption/signature schemes.
    Hash384
    48 byte hash
    Hash512
    64 byte hash
    HKDF
    Various flavors of HKDF using HMAC-SHA256.
    HMAC256Generator
    Calculate the HMAC-SHA256 of a key+message.
    HMAC256Generator.HMACKey
    Like SecretKeySpec but doesn't copy the key in the construtor, for speed.
    HMACGenerator
    Calculate the HMAC of a key+message.
    KeyGenerator
    Define a way of generating asymmetrical key pairs as well as symmetrical keys
    KeyPair
    Same as java.security.KeyPair, but with I2P keys
    KeyStoreUtil
    Keystore utilities, consolidated from various places.
    RSAConstants
    Constants for RSA
    RSASigningPrivateCrtKey
    A SigningPrivateKey that retains the Chinese Remainder Theorem parameters, so it can be converted back to a Java CRT key.
    SelfSignedGenerator
    Generate keys and a selfsigned certificate, suitable for storing in a Keystore with KeyStoreUtil.storePrivateKey().
    SessionKeyManager
    Manage the session keys and session tags used for encryption and decryption.
    SHA1
    NOTE: As of 0.8.7, use getInstance() instead of new SHA1(), which will return the JVM's MessageDigest if it is faster.
    SHA1Hash
    Because DSAEngine was abusing Hash for 20-byte hashes
    SHA256Generator
    Defines a wrapper for SHA-256 operation.
    SigContext.SigContextSpec
    The AlgorithmParameterSpec.
    SigUtil
    Utilities for Signing keys and Signatures
    SipHashInline
    SipHash implementation with hand inlining the SIPROUND.
    SU3File
    Succesor to the ".sud" format used in TrustedUpdate.
    TrustedUpdate
    Handles DSA signing and verification of update files.
    YKGenerator
    Precalculate the Y and K for ElGamal encryption operations.
  • Enum Summary 
    Enum Description
    EncAlgo
    Base encryption algorithm type
    EncType
    Defines the properties for various encryption types that I2P supports or may someday support.
    SigAlgo
    Base signature algorithm type
    SigContext
    Defines the context for signing with personalized hashes.
    SigType
    Defines the properties for various signature types that I2P supports or may someday support.