Class MacData

  • All Implemented Interfaces:
    ASN1Value

    public class MacData
    extends java.lang.Object
    implements ASN1Value
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  MacData.Template
      A Template for decoding a MacData from its BER encoding.
    • Constructor Summary

      Constructors 
      Constructor Description
      MacData()  
      MacData​(DigestInfo mac, OCTET_STRING macSalt, INTEGER macIterationCount)
      Creates a MacData from the given parameters.
      MacData​(Password password, byte[] macSalt, int iterations, byte[] toBeMACed)
      Creates a MacData by computing a HMAC on the given bytes.
    • Constructor Detail

      • MacData

        public MacData()
      • MacData

        public MacData​(DigestInfo mac,
                       OCTET_STRING macSalt,
                       INTEGER macIterationCount)
        Creates a MacData from the given parameters.
        Parameters:
        macIterationCount - 1 is the default and should be used for maximum compatibility. null can also be used, in which case the macIterationCount will be omitted from the structure (and the default value of 1 will be implied).
      • MacData

        public MacData​(Password password,
                       byte[] macSalt,
                       int iterations,
                       byte[] toBeMACed)
                throws NotInitializedException,
                       java.security.DigestException,
                       TokenException,
                       java.io.CharConversionException
        Creates a MacData by computing a HMAC on the given bytes. An HMAC is a message authentication code, which is a keyed digest. It proves not only that data has not been tampered with, but also that the entity that created the HMAC possessed the symmetric key.
        Parameters:
        password - The password used to generate a key using a PBE mechanism.
        macSalt - The salt used as input to the PBE key generation mechanism. If null is passed in, new random salt will be created.
        iterations - The iteration count for creating the PBE key.
        toBeMACed - The data on which the HMAC will be computed.
        Throws:
        NotInitializedException - If the crypto subsystem has not been initialized yet.
        TokenException - If an error occurs on a crypto token.
        java.security.DigestException
        java.io.CharConversionException
    • Method Detail

      • getMacIterationCount

        public INTEGER getMacIterationCount()
      • getTag

        public Tag getTag()
        Description copied from interface: ASN1Value
        Returns the base tag for this type, not counting any tags that may be imposed on it by its context.
        Specified by:
        getTag in interface ASN1Value
        Returns:
        Base tag.
      • encode

        public void encode​(java.io.OutputStream ostream)
                    throws java.io.IOException
        Description copied from interface: ASN1Value
        Write this value's DER encoding to an output stream using its own base tag.
        Specified by:
        encode in interface ASN1Value
        Parameters:
        ostream - Output stream.
        Throws:
        java.io.IOException - If an error occurred.
      • encode

        public void encode​(Tag implicitTag,
                           java.io.OutputStream ostream)
                    throws java.io.IOException
        Description copied from interface: ASN1Value
        Write this value's DER encoding to an output stream using an implicit tag.
        Specified by:
        encode in interface ASN1Value
        Parameters:
        implicitTag - Implicit tag.
        ostream - Output stream.
        Throws:
        java.io.IOException - If an error occurred.