Class I2PHMac

java.lang.Object
net.i2p.router.transport.udp.I2PHMac

class I2PHMac extends Object
HMAC implementation based on RFC2104 H(K XOR opad, H(K XOR ipad, text)) modified by jrandom to use the session key byte array directly and to cache a frequently used buffer (called on doFinal). changes released into the public domain in 2005. This is renamed from HMac because the constructor HMac(digest, sz) does not exist in the standard bouncycastle library, thus it conflicts in JVMs that contain the standard library (Android). As of 0.9.12, refactored to use standard MessageDigest. Deprecated - Do not use outside of router or Syndie. Not a public API - Not for external use!
Since:
0.9.43 moved from org.bouncycastle.oldcrypto.macs
  • Constructor Details

    • I2PHMac

      @Deprecated public I2PHMac(MessageDigest digest)
      Deprecated.
      Use javax.crypto.Mac
      Standard HMAC, size == digest size.
    • I2PHMac

      public I2PHMac(MessageDigest digest, int sz)
      Parameters:
      sz - override the digest's size, nonstandard if different. SEE NOTES in HMACGenerator about why this isn't compatible with standard HmacMD5
  • Method Details

    • getAlgorithmName

      public String getAlgorithmName()
    • getUnderlyingDigest

      public MessageDigest getUnderlyingDigest()
    • init

      public void init(byte[] key)
    • getMacSize

      public int getMacSize()
    • update

      public void update(byte in)
    • update

      public void update(byte[] in, int inOff, int len)
    • doFinal

      public int doFinal(byte[] out, int outOff)
    • reset

      public void reset()
      Reset the mac generator.