FileDocCategorySizeDatePackage
PasswordRecipientInfo.javaAPI DocAndroid 1.5 API4588Wed May 06 22:41:06 BST 2009org.bouncycastle.asn1.cms

PasswordRecipientInfo

public class PasswordRecipientInfo extends org.bouncycastle.asn1.ASN1Encodable

Fields Summary
private org.bouncycastle.asn1.DERInteger
version
private org.bouncycastle.asn1.x509.AlgorithmIdentifier
keyDerivationAlgorithm
private org.bouncycastle.asn1.x509.AlgorithmIdentifier
keyEncryptionAlgorithm
private org.bouncycastle.asn1.ASN1OctetString
encryptedKey
Constructors Summary
public PasswordRecipientInfo(org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncryptionAlgorithm, org.bouncycastle.asn1.ASN1OctetString encryptedKey)

        this.version = new DERInteger(0);
        this.keyEncryptionAlgorithm = keyEncryptionAlgorithm;
        this.encryptedKey = encryptedKey;
    
public PasswordRecipientInfo(org.bouncycastle.asn1.x509.AlgorithmIdentifier keyDerivationAlgorithm, org.bouncycastle.asn1.x509.AlgorithmIdentifier keyEncryptionAlgorithm, org.bouncycastle.asn1.ASN1OctetString encryptedKey)

        this.version = new DERInteger(0);
        this.keyDerivationAlgorithm = keyDerivationAlgorithm;
        this.keyEncryptionAlgorithm = keyEncryptionAlgorithm;
        this.encryptedKey = encryptedKey;
    
public PasswordRecipientInfo(org.bouncycastle.asn1.ASN1Sequence seq)

        version = (DERInteger)seq.getObjectAt(0);
        if (seq.getObjectAt(1) instanceof ASN1TaggedObject)
        {
            keyDerivationAlgorithm = AlgorithmIdentifier.getInstance((ASN1TaggedObject)seq.getObjectAt(1), false);
            keyEncryptionAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(2));
            encryptedKey = (ASN1OctetString)seq.getObjectAt(3);
        }
        else
        {
            keyEncryptionAlgorithm = AlgorithmIdentifier.getInstance(seq.getObjectAt(1));
            encryptedKey = (ASN1OctetString)seq.getObjectAt(2);
        }
    
Methods Summary
public org.bouncycastle.asn1.ASN1OctetStringgetEncryptedKey()

        return encryptedKey;
    
public static org.bouncycastle.asn1.cms.PasswordRecipientInfogetInstance(org.bouncycastle.asn1.ASN1TaggedObject obj, boolean explicit)
return a PasswordRecipientInfo object from a tagged object.

param
obj the tagged object holding the object we want.
param
explicit true if the object is meant to be explicitly tagged false otherwise.
exception
IllegalArgumentException if the object held by the tagged object cannot be converted.

        return getInstance(ASN1Sequence.getInstance(obj, explicit));
    
public static org.bouncycastle.asn1.cms.PasswordRecipientInfogetInstance(java.lang.Object obj)
return a PasswordRecipientInfo object from the given object.

param
obj the object we want converted.
exception
IllegalArgumentException if the object cannot be converted.

        if (obj == null || obj instanceof PasswordRecipientInfo)
        {
            return (PasswordRecipientInfo)obj;
        }
        
        if(obj instanceof ASN1Sequence)
        {
            return new PasswordRecipientInfo((ASN1Sequence)obj);
        }
        
        throw new IllegalArgumentException("Invalid PasswordRecipientInfo: " + obj.getClass().getName());
    
public org.bouncycastle.asn1.x509.AlgorithmIdentifiergetKeyDerivationAlgorithm()

        return keyDerivationAlgorithm;
    
public org.bouncycastle.asn1.x509.AlgorithmIdentifiergetKeyEncryptionAlgorithm()

        return keyEncryptionAlgorithm;
    
public org.bouncycastle.asn1.DERIntegergetVersion()

        return version;
    
public org.bouncycastle.asn1.DERObjecttoASN1Object()
Produce an object suitable for an ASN1OutputStream.
PasswordRecipientInfo ::= SEQUENCE {
version CMSVersion, -- Always set to 0
keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
OPTIONAL,
keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
encryptedKey EncryptedKey }

        ASN1EncodableVector  v = new ASN1EncodableVector();

        v.add(version);
        
        if (keyDerivationAlgorithm != null)
        {
            v.add(new DERTaggedObject(false, 0, keyDerivationAlgorithm));
        }
        v.add(keyEncryptionAlgorithm);
        v.add(encryptedKey);

        return new DERSequence(v);