JSS 3.1.2

org.mozilla.jss.crypto
Class SecretDecoderRing

java.lang.Object
  |
  +--org.mozilla.jss.crypto.SecretDecoderRing

public class SecretDecoderRing
extends java.lang.Object

This is a proprietary NSS interface. It is used for encrypting data with a secret key stored in the NSS key database (which is in turn protected with a password). It thus provides a quick, convenient way to encrypt stuff your application wants to keep around for its own use: for example, the list of web passwords stored in the web browser.

The Internal Key Storage Token must have already had its password set.

A dedicated key is used to encrypt all SecretDecoderRing data. The same key is used for all SDR data, and not for any other data. This key will be generated the first time it is needed.

The cipher used is DES3-EDE (Triple-DES) in CBC mode. The ciphertext is DER-encoded in the following ASN.1 data structure:

    SEQUENCE {
      keyid       OCTET STRING,
      alg         AlgorithmIdentifier,
      ciphertext  OCTET STRING }
 


Constructor Summary
SecretDecoderRing()
           
 
Method Summary
 byte[] decrypt(byte[] ciphertext)
          Decrypts the given ciphertext with the Secret Decoder Ring key stored in the NSS key database.
 byte[] encrypt(byte[] plaintext)
          Encrypts the given plaintext with the Secret Decoder Ring key stored in the NSS key database.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Constructor Detail

SecretDecoderRing

public SecretDecoderRing()
Method Detail

encrypt

public byte[] encrypt(byte[] plaintext)
               throws TokenException
Encrypts the given plaintext with the Secret Decoder Ring key stored in the NSS key database.

decrypt

public byte[] decrypt(byte[] ciphertext)
               throws TokenException
Decrypts the given ciphertext with the Secret Decoder Ring key stored in the NSS key database.

JSS 3.1.2