org.mozilla.jss.pkcs12

Class MacData

Implemented Interfaces:
ASN1Value

public class MacData
extends java.lang.Object
implements ASN1Value

Nested Class Summary

static class
MacData.Template
A Template for decoding a MacData from its BER encoding.

Constructor Summary

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.

Method Summary

void
encode(OutputStream ostream)
void
encode(Tag implicitTag, OutputStream ostream)
DigestInfo
getMac()
INTEGER
getMacIterationCount()
OCTET_STRING
getMacSalt()
Tag
getTag()
static MacData.Template
getTemplate()

Constructor Details

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 CryptoManager.NotInitializedException,
                   DigestException,
                   TokenException,
                   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:
TokenException - If an error occurs on a crypto token.

Method Details

encode

public void encode(OutputStream ostream)
            throws IOException
Specified by:
encode in interface ASN1Value

encode

public void encode(Tag implicitTag,
                   OutputStream ostream)
            throws IOException
Specified by:
encode in interface ASN1Value

getMac

public DigestInfo getMac()

getMacIterationCount

public INTEGER getMacIterationCount()

getMacSalt

public OCTET_STRING getMacSalt()

getTag

public Tag getTag()
Specified by:
getTag in interface ASN1Value

getTemplate

public static final MacData.Template getTemplate()