Top Fields Constructors Methods
org.bouncycastle.jcajce.provider.symmetric.util

public Class BaseMac

extends MacSpi
implements PBE
Class Inheritance
All Implemented Interfaces
org.bouncycastle.jcajce.provider.symmetric.util.PBE
Known Direct Subclasses
org.bouncycastle.jcajce.provider.digest.DSTU7564.HashMac256, org.bouncycastle.jcajce.provider.digest.DSTU7564.HashMac384, org.bouncycastle.jcajce.provider.digest.DSTU7564.HashMac512, org.bouncycastle.jcajce.provider.digest.GOST3411.HashMac, org.bouncycastle.jcajce.provider.digest.GOST3411.HashMac2012_256, org.bouncycastle.jcajce.provider.digest.GOST3411.HashMac2012_512, org.bouncycastle.jcajce.provider.digest.Keccak.HashMac224, org.bouncycastle.jcajce.provider.digest.Keccak.HashMac256, org.bouncycastle.jcajce.provider.digest.Keccak.HashMac288, org.bouncycastle.jcajce.provider.digest.Keccak.HashMac384, org.bouncycastle.jcajce.provider.digest.Keccak.HashMac512, org.bouncycastle.jcajce.provider.digest.MD2.HashMac, org.bouncycastle.jcajce.provider.digest.MD4.HashMac, org.bouncycastle.jcajce.provider.digest.MD5.HashMac, org.bouncycastle.jcajce.provider.digest.RIPEMD128.HashMac, org.bouncycastle.jcajce.provider.digest.RIPEMD160.HashMac, org.bouncycastle.jcajce.provider.digest.RIPEMD160.PBEWithHmac, org.bouncycastle.jcajce.provider.digest.RIPEMD256.HashMac, org.bouncycastle.jcajce.provider.digest.RIPEMD320.HashMac, org.bouncycastle.jcajce.provider.digest.SHA1.HashMac, org.bouncycastle.jcajce.provider.digest.SHA1.SHA1Mac, org.bouncycastle.jcajce.provider.digest.SHA224.HashMac, org.bouncycastle.jcajce.provider.digest.SHA256.HashMac, org.bouncycastle.jcajce.provider.digest.SHA3.HashMacSHA3, org.bouncycastle.jcajce.provider.digest.SHA3.KMac128, org.bouncycastle.jcajce.provider.digest.SHA3.KMac256, org.bouncycastle.jcajce.provider.digest.SHA384.HashMac, org.bouncycastle.jcajce.provider.digest.SHA384.OldSHA384, org.bouncycastle.jcajce.provider.digest.SHA512.HashMac, org.bouncycastle.jcajce.provider.digest.SHA512.HashMacT224, org.bouncycastle.jcajce.provider.digest.SHA512.HashMacT256, org.bouncycastle.jcajce.provider.digest.SHA512.OldSHA512, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_256_128, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_256_160, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_256_224, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_256_256, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_512_128, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_512_160, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_512_224, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_512_256, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_512_384, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_512_512, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_1024_384, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_1024_512, org.bouncycastle.jcajce.provider.digest.Skein.HashMac_1024_1024, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_256_128, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_256_160, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_256_224, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_256_256, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_512_128, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_512_160, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_512_224, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_512_256, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_512_384, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_512_512, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_1024_384, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_1024_512, org.bouncycastle.jcajce.provider.digest.Skein.SkeinMac_1024_1024, org.bouncycastle.jcajce.provider.digest.SM3.HashMac, org.bouncycastle.jcajce.provider.digest.Tiger.HashMac, org.bouncycastle.jcajce.provider.digest.Tiger.TigerHmac, org.bouncycastle.jcajce.provider.digest.Tiger.PBEWithHashMac, org.bouncycastle.jcajce.provider.digest.Whirlpool.HashMac, org.bouncycastle.jcajce.provider.symmetric.Poly1305.Mac, org.bouncycastle.jcajce.provider.symmetric.AES.AESCMAC, org.bouncycastle.jcajce.provider.symmetric.AES.AESGMAC, org.bouncycastle.jcajce.provider.symmetric.AES.AESCCMMAC, org.bouncycastle.jcajce.provider.symmetric.AES.AESCCMMAC128, org.bouncycastle.jcajce.provider.symmetric.AES.AESCCMMAC192, org.bouncycastle.jcajce.provider.symmetric.AES.AESCCMMAC256, org.bouncycastle.jcajce.provider.symmetric.AES.Poly1305, org.bouncycastle.jcajce.provider.symmetric.ARIA.GMAC, org.bouncycastle.jcajce.provider.symmetric.ARIA.Poly1305, org.bouncycastle.jcajce.provider.symmetric.Blowfish.CMAC, org.bouncycastle.jcajce.provider.symmetric.Camellia.GMAC, org.bouncycastle.jcajce.provider.symmetric.Camellia.Poly1305, org.bouncycastle.jcajce.provider.symmetric.CAST6.GMAC, org.bouncycastle.jcajce.provider.symmetric.CAST6.Poly1305, org.bouncycastle.jcajce.provider.symmetric.DES.DESCFB8, org.bouncycastle.jcajce.provider.symmetric.DES.DES64, org.bouncycastle.jcajce.provider.symmetric.DES.DES64with7816d4, org.bouncycastle.jcajce.provider.symmetric.DES.CBCMAC, org.bouncycastle.jcajce.provider.symmetric.DES.CMAC, org.bouncycastle.jcajce.provider.symmetric.DES.DES9797Alg3with7816d4, org.bouncycastle.jcajce.provider.symmetric.DES.DES9797Alg3, org.bouncycastle.jcajce.provider.symmetric.DESede.DESedeCFB8, org.bouncycastle.jcajce.provider.symmetric.DESede.DESede64, org.bouncycastle.jcajce.provider.symmetric.DESede.DESede64with7816d4, org.bouncycastle.jcajce.provider.symmetric.DESede.CBCMAC, org.bouncycastle.jcajce.provider.symmetric.DESede.CMAC, org.bouncycastle.jcajce.provider.symmetric.DSTU7624.GMAC, org.bouncycastle.jcajce.provider.symmetric.DSTU7624.GMAC128, org.bouncycastle.jcajce.provider.symmetric.DSTU7624.GMAC256, org.bouncycastle.jcajce.provider.symmetric.DSTU7624.GMAC512, org.bouncycastle.jcajce.provider.symmetric.GOST28147.Mac, org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015.Mac, org.bouncycastle.jcajce.provider.symmetric.IDEA.Mac, org.bouncycastle.jcajce.provider.symmetric.IDEA.CFB8Mac, org.bouncycastle.jcajce.provider.symmetric.Noekeon.GMAC, org.bouncycastle.jcajce.provider.symmetric.Noekeon.Poly1305, org.bouncycastle.jcajce.provider.symmetric.RC2.CBCMAC, org.bouncycastle.jcajce.provider.symmetric.RC2.CFB8MAC, org.bouncycastle.jcajce.provider.symmetric.RC5.Mac32, org.bouncycastle.jcajce.provider.symmetric.RC5.CFB8Mac32, org.bouncycastle.jcajce.provider.symmetric.RC6.GMAC, org.bouncycastle.jcajce.provider.symmetric.RC6.Poly1305, org.bouncycastle.jcajce.provider.symmetric.SEED.CMAC, org.bouncycastle.jcajce.provider.symmetric.SEED.GMAC, org.bouncycastle.jcajce.provider.symmetric.SEED.Poly1305, org.bouncycastle.jcajce.provider.symmetric.Serpent.SerpentGMAC, org.bouncycastle.jcajce.provider.symmetric.Serpent.TSerpentGMAC, org.bouncycastle.jcajce.provider.symmetric.Serpent.Poly1305, org.bouncycastle.jcajce.provider.symmetric.Shacal2.CMAC, org.bouncycastle.jcajce.provider.symmetric.SipHash.Mac24, org.bouncycastle.jcajce.provider.symmetric.SipHash.Mac48, org.bouncycastle.jcajce.provider.symmetric.SipHash128.Mac24, org.bouncycastle.jcajce.provider.symmetric.SipHash128.Mac48, org.bouncycastle.jcajce.provider.symmetric.Skipjack.Mac, org.bouncycastle.jcajce.provider.symmetric.Skipjack.MacCFB8, org.bouncycastle.jcajce.provider.symmetric.SM4.CMAC, org.bouncycastle.jcajce.provider.symmetric.SM4.GMAC, org.bouncycastle.jcajce.provider.symmetric.SM4.Poly1305, org.bouncycastle.jcajce.provider.symmetric.Threefish.CMAC_256, org.bouncycastle.jcajce.provider.symmetric.Threefish.CMAC_512, org.bouncycastle.jcajce.provider.symmetric.Threefish.CMAC_1024, org.bouncycastle.jcajce.provider.symmetric.Twofish.GMAC, org.bouncycastle.jcajce.provider.symmetric.Twofish.Poly1305, org.bouncycastle.jcajce.provider.symmetric.VMPC.Mac, org.bouncycastle.jcajce.provider.symmetric.Zuc.ZucMac128, org.bouncycastle.jcajce.provider.symmetric.Zuc.ZucMac256, org.bouncycastle.jcajce.provider.symmetric.Zuc.ZucMac256_64, org.bouncycastle.jcajce.provider.symmetric.Zuc.ZucMac256_32
Imports
java.security.InvalidAlgorithmParameterException, .InvalidKeyException, .Key, java.security.spec.AlgorithmParameterSpec, java.util.Hashtable, .Iterator, .Map, javax.crypto.MacSpi, .SecretKey, javax.crypto.interfaces.PBEKey, javax.crypto.spec.IvParameterSpec, .PBEParameterSpec, .RC2ParameterSpec, org.bouncycastle.crypto.CipherParameters, .Mac, org.bouncycastle.crypto.macs.HMac, org.bouncycastle.crypto.params.AEADParameters, .KeyParameter, .ParametersWithIV, .RC2Parameters, .SkeinParameters, org.bouncycastle.jcajce.PKCS12Key, org.bouncycastle.jcajce.spec.AEADParameterSpec, .SkeinParameterSpec

Field Summary

Modifier and TypeField and Description
private int
private Mac
private int
private int

Constructor Summary

AccessConstructor and Description
protected
BaseMac(Mac macEngine)

protected
BaseMac(int keySize, Mac macEngine)

protected
BaseMac(Mac macEngine, int scheme, int pbeHash, int keySize)

Method Summary

Modifier and TypeMethod and Description
private static Hashtable<K, V>
copyMap(Map<K, V> paramsMap)

protected byte[]
engineDoFinal()

Implements abstract javax.crypto.MacSpi.engineDoFinal.

Completes the MAC computation and resets the MAC for further use, maintaining the secret key that the MAC was initialized with.

protected int
engineGetMacLength()

Implements abstract javax.crypto.MacSpi.engineGetMacLength.

Returns the length of the MAC in bytes.

protected void
engineInit(Key
the (secret) key.
key
,
final AlgorithmParameterSpec
the algorithm parameters.
params
)

Implements abstract javax.crypto.MacSpi.engineInit.

Initializes the MAC with the given (secret) key and algorithm parameters.

protected void
engineReset()

Implements abstract javax.crypto.MacSpi.engineReset.

Resets the MAC for further use, maintaining the secret key that the MAC was initialized with.

protected void
engineUpdate(byte
the input byte to be processed.
input
)

Implements abstract javax.crypto.MacSpi.engineUpdate.

Processes the given byte.

protected void
engineUpdate(byte[]
the input buffer.
input
,
int
the offset in input where the input starts.
offset
,
int
the number of bytes to process.
len
)

Implements abstract javax.crypto.MacSpi.engineUpdate.

Processes the first len bytes in input, starting at offset inclusive.

Inherited from javax.crypto.MacSpi:
cloneengineUpdate

Field Detail

keySizeback to summary
private int keySize
macEngineback to summary
private Mac macEngine
pbeHashback to summary
private int pbeHash
schemeback to summary
private int scheme

Constructor Detail

BaseMacback to summary
protected BaseMac(Mac macEngine)
BaseMacback to summary
protected BaseMac(int keySize, Mac macEngine)
BaseMacback to summary
protected BaseMac(Mac macEngine, int scheme, int pbeHash, int keySize)

Method Detail

copyMapback to summary
private static Hashtable<K, V> copyMap(Map<K, V> paramsMap)
engineDoFinalback to summary
protected byte[] engineDoFinal()

Implements abstract javax.crypto.MacSpi.engineDoFinal.

Doc from javax.crypto.MacSpi.engineDoFinal.

Completes the MAC computation and resets the MAC for further use, maintaining the secret key that the MAC was initialized with.

Returns:byte[]

the MAC result.

engineGetMacLengthback to summary
protected int engineGetMacLength()

Implements abstract javax.crypto.MacSpi.engineGetMacLength.

Doc from javax.crypto.MacSpi.engineGetMacLength.

Returns the length of the MAC in bytes.

Returns:int

the MAC length in bytes.

engineInitback to summary
protected void engineInit(Key key, final AlgorithmParameterSpec params) throws InvalidKeyException, InvalidAlgorithmParameterException

Implements abstract javax.crypto.MacSpi.engineInit.

Doc from javax.crypto.MacSpi.engineInit.

Initializes the MAC with the given (secret) key and algorithm parameters.

Parameters
key:Key

the (secret) key.

params:AlgorithmParameterSpec

the algorithm parameters.

Exceptions
InvalidKeyException:
if the given key is inappropriate for initializing this MAC.
InvalidAlgorithmParameterException:
if the given algorithm parameters are inappropriate for this MAC.
engineResetback to summary
protected void engineReset()

Implements abstract javax.crypto.MacSpi.engineReset.

Doc from javax.crypto.MacSpi.engineReset.

Resets the MAC for further use, maintaining the secret key that the MAC was initialized with.

engineUpdateback to summary
protected void engineUpdate(byte input)

Implements abstract javax.crypto.MacSpi.engineUpdate.

Doc from javax.crypto.MacSpi.engineUpdate.

Processes the given byte.

Parameters
input:byte

the input byte to be processed.

engineUpdateback to summary
protected void engineUpdate(byte[] input, int offset, int len)

Implements abstract javax.crypto.MacSpi.engineUpdate.

Doc from javax.crypto.MacSpi.engineUpdate.

Processes the first len bytes in input, starting at offset inclusive.

Parameters
input:byte[]

the input buffer.

offset:int

the offset in input where the input starts.

len:int

the number of bytes to process.