JSS 3.1.1

org.mozilla.jss.pkix.primitive
Class EncryptedPrivateKeyInfo

java.lang.Object
  |
  +--org.mozilla.jss.pkix.primitive.EncryptedPrivateKeyInfo
All Implemented Interfaces:
ASN1Value

public class EncryptedPrivateKeyInfo
extends java.lang.Object
implements ASN1Value

PKCS #8 EncryptedPrivateKeyInfo.

 EncryptedPrivateKeyInfo ::= SEQUENCE {
      encryptionAlgorithm     AlgorithmIdentifier,
      encryptedData           OCTET STRING }
 


Inner Class Summary
static class EncryptedPrivateKeyInfo.Template
          A template class for decoding EncryptedPrivateKeyInfos from BER.
 
Field Summary
private  OCTET_STRING encryptedData
           
private  AlgorithmIdentifier encryptionAlgorithm
           
private  SEQUENCE sequence
           
private static Tag TAG
           
private static EncryptedPrivateKeyInfo.Template templateInstance
           
 
Constructor Summary
private EncryptedPrivateKeyInfo()
           
  EncryptedPrivateKeyInfo(AlgorithmIdentifier encryptionAlgorithm, OCTET_STRING encryptedData)
          Creates an EncryptedPrivateKeyInfo from its components.
 
Method Summary
static EncryptedPrivateKeyInfo createPBE(PBEAlgorithm keyGenAlg, Password password, byte[] salt, int iterationCount, KeyGenerator.CharToByteConverter charToByteConverter, PrivateKeyInfo pki)
          Creates a new EncryptedPrivateKeyInfo, where the data is encrypted with a password-based key.
 PrivateKeyInfo decrypt(Password pass, KeyGenerator.CharToByteConverter charToByteConverter)
          Decrypts an EncryptedPrivateKeyInfo that was encrypted with a PBE algorithm.
 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.
 OCTET_STRING getEncryptedData()
           
 AlgorithmIdentifier getEncryptionAlgorithm()
           
 Tag getTag()
          Returns the base tag for this type, not counting any tags that may be imposed on it by its context.
static EncryptedPrivateKeyInfo.Template getTemplate()
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

encryptionAlgorithm

private AlgorithmIdentifier encryptionAlgorithm

encryptedData

private OCTET_STRING encryptedData

sequence

private SEQUENCE sequence

TAG

private static final Tag TAG

templateInstance

private static final EncryptedPrivateKeyInfo.Template templateInstance
Constructor Detail

EncryptedPrivateKeyInfo

private EncryptedPrivateKeyInfo()

EncryptedPrivateKeyInfo

public EncryptedPrivateKeyInfo(AlgorithmIdentifier encryptionAlgorithm,
                               OCTET_STRING encryptedData)
Creates an EncryptedPrivateKeyInfo from its components.
Method Detail

getEncryptionAlgorithm

public AlgorithmIdentifier getEncryptionAlgorithm()

getEncryptedData

public OCTET_STRING getEncryptedData()

createPBE

public static EncryptedPrivateKeyInfo createPBE(PBEAlgorithm keyGenAlg,
                                                Password password,
                                                byte[] salt,
                                                int iterationCount,
                                                KeyGenerator.CharToByteConverter charToByteConverter,
                                                PrivateKeyInfo pki)
                                         throws CryptoManager.NotInitializedException,
                                                java.security.NoSuchAlgorithmException,
                                                java.security.InvalidKeyException,
                                                java.security.InvalidAlgorithmParameterException,
                                                TokenException,
                                                java.io.CharConversionException
Creates a new EncryptedPrivateKeyInfo, where the data is encrypted with a password-based key.
Parameters:
keyGenAlg - The algorithm for generating a symmetric key from a password, salt, and iteration count.
password - The password to use in generating the key.
salt - The salt to use in generating the key.
iterationCount - The number of hashing iterations to perform while generating the key.
charToByteConverter - The mechanism for converting the characters in the password into bytes. If null, the default mechanism will be used, which is UTF8.
pki - The PrivateKeyInfo to be encrypted and stored in the EncryptedContentInfo. Before they are encrypted, they will be padded using PKCS padding.

decrypt

public PrivateKeyInfo decrypt(Password pass,
                              KeyGenerator.CharToByteConverter charToByteConverter)
                       throws CryptoManager.NotInitializedException,
                              java.security.NoSuchAlgorithmException,
                              InvalidBERException,
                              java.security.InvalidKeyException,
                              java.security.InvalidAlgorithmParameterException,
                              TokenException,
                              IllegalBlockSizeException,
                              BadPaddingException,
                              java.io.CharConversionException
Decrypts an EncryptedPrivateKeyInfo that was encrypted with a PBE algorithm. The algorithm and its parameters are extracted from the EncryptedPrivateKeyInfo.
Parameters:
pass - The password to use to generate the PBE key.
charToByteConverter - The converter to change the password characters to bytes. If null, the default conversion is used.

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

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

getTemplate

public static EncryptedPrivateKeyInfo.Template getTemplate()

JSS 3.1.1