You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.




org.mozilla.jss.pkcs12
Class MacData

java.lang.Object
  extended by org.mozilla.jss.pkcs12.MacData
All 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(java.io.OutputStream ostream)
          Write this value's DER encoding to an output stream using its own base tag.
 void encode(Tag implicitTag, java.io.OutputStream ostream)
          Write this value's DER encoding to an output stream using an implicit tag.
 DigestInfo getMac()
           
 INTEGER getMacIterationCount()
           
 OCTET_STRING getMacSalt()
           
 Tag getTag()
          Returns the base tag for this type, not counting any tags that may be imposed on it by its context.
static MacData.Template getTemplate()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 CryptoManager.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:
CryptoManager.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

getMac

public DigestInfo getMac()

getMacSalt

public OCTET_STRING getMacSalt()

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

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
Throws:
java.io.IOException

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
Throws:
java.io.IOException

getTemplate

public static final MacData.Template getTemplate()