# Package org.bouncycastle.crypto.macs

Classes for creating MACs and HMACs.

- Class Summary
  Class | Description
  --- | ---
  BlockCipherMac |
  CBCBlockCipherMac | standard CBC Block Cipher MAC - if no padding is specified the default of pad of zeroes is used.
  CFBBlockCipherMac |
  CMac | CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
  CMacWithIV | A non-NIST variant which allows passing of an IV to the underlying CBC cipher.
  DSTU7564Mac | Implementation of DSTU7564 MAC mode
  DSTU7624Mac | Implementation of DSTU7624 MAC mode
  GMac | The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D.
  GOST28147Mac | implementation of GOST 28147-89 MAC
  HMac | HMAC implementation based on RFC2104 H(K XOR opad, H(K XOR ipad, text))
  ISO9797Alg3Mac | DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC) This could as well be derived from CBCBlockCipherMac, but then the property mac in the base class must be changed to protected
  KGMac | The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication 800-38D as adapted for the Kalyna version of GCM.
  KMAC | KMAC - MAC with optional XOF mode.
  OldHMac | HMAC implementation based on RFC2104 H(K XOR opad, H(K XOR ipad, text))
  Poly1305 | Poly1305 message authentication code, designed by D.
  SipHash | Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe Aumasson and Daniel J.
  SipHash128 | Implementation of SipHash with 128 bit output.
  SkeinMac | Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes, based on the `Threefish` tweakable block cipher.
  VMPCMac |
  Zuc128Mac | Zuc128 Mac implementation.
  Zuc256Mac | Zuc256 Mac implementation.