Public Member Functions | Public Attributes

nsICryptoHMAC Interface Reference

nsICryptoHMAC This interface provides HMAC signature algorithms. More...

import "nsICryptoHMAC.idl";

List of all members.

Public Member Functions

void init (in unsigned long aAlgorithm, in nsIKeyObject aKeyObject)
 Initialize the hashing object.
void update ([const, array, size_is(aLen)] in octet aData, in unsigned long aLen)
void updateFromStream (in nsIInputStream aStream, in unsigned long aLen)
 Calculates and updates a new hash based on a given data stream.
ACString finish (in PRBool aASCII)
 Completes this HMAC object and produces the actual HMAC diegest data.
void reset ()
 Reinitialize HMAC context to be reused with the same settings (the key and hash algorithm) but on different set of data.

Public Attributes

const short MD2 = 1
 Hashing Algorithms.
const short MD5 = 2
const short SHA1 = 3
const short SHA256 = 4
const short SHA384 = 5
const short SHA512 = 6

Detailed Description

nsICryptoHMAC This interface provides HMAC signature algorithms.


Member Function Documentation

ACString nsICryptoHMAC::finish ( in PRBool  aASCII  ) 

Completes this HMAC object and produces the actual HMAC diegest data.

Parameters:
aASCII if true then the returned value is a base-64 encoded string. if false, then the returned value is binary data.
Returns:
a hash of the data that was read by this object. This can be either binary data or base 64 encoded.
Exceptions:
NS_ERROR_NOT_INITIALIZED if |init| has not been called.

NOTE: This method may be called any time after |init| is called. This call resets the object to its pre-init state.

void nsICryptoHMAC::init ( in unsigned long  aAlgorithm,
in nsIKeyObject  aKeyObject 
)

Initialize the hashing object.

This method may be called multiple times with different algorithm types.

Parameters:
aAlgorithm the algorithm type to be used. This value must be one of the above valid algorithm types.
aKeyObject Object holding a key. To create the key object use for instance: var keyObject = Components.classes["@mozilla.org/security/keyobjectfactory;1"] .getService(Components.interfaces.nsIKeyObjectFactory) .keyFromString(Components.interfaces.nsIKeyObject.HMAC, rawKeyData);

WARNING: This approach is not FIPS compliant.

Exceptions:
NS_ERROR_INVALID_ARG if an unsupported algorithm type is passed.

NOTE: This method must be called before any other method on this interface is called.

void nsICryptoHMAC::reset (  ) 

Reinitialize HMAC context to be reused with the same settings (the key and hash algorithm) but on different set of data.

void nsICryptoHMAC::update ( [const, array, size_is(aLen)] in octet  aData,
in unsigned long  aLen 
)
Parameters:
aData a buffer to calculate the hash over
aLen the length of the buffer |aData|
Exceptions:
NS_ERROR_NOT_INITIALIZED if |init| has not been called.
void nsICryptoHMAC::updateFromStream ( in nsIInputStream  aStream,
in unsigned long  aLen 
)

Calculates and updates a new hash based on a given data stream.

Parameters:
aStream an input stream to read from.
aLen how much to read from the given |aStream|. Passing PR_UINT32_MAX indicates that all data available will be used to update the hash.
Exceptions:
NS_ERROR_NOT_INITIALIZED if |init| has not been called.
NS_ERROR_NOT_AVAILABLE if the requested amount of data to be calculated into the hash is not available.

Member Data Documentation

const short nsICryptoHMAC::MD2 = 1

Hashing Algorithms.

These values are to be used by the |init| method to indicate which hashing function to use. These values map onto the values defined in mozilla/security/nss/lib/softoken/pkcs11t.h and are switched to CKM_*_HMAC constant.

const short nsICryptoHMAC::MD5 = 2
const short nsICryptoHMAC::SHA1 = 3
const short nsICryptoHMAC::SHA256 = 4
const short nsICryptoHMAC::SHA384 = 5
const short nsICryptoHMAC::SHA512 = 6

The documentation for this interface was generated from the following file: