public abstract class org.bouncycastle.cms.PasswordRecipientInfoGenerator implements org.bouncycastle.cms.RecipientInfoGenerator
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.bouncycastle.cms.PasswordRecipientInfoGenerator
super_class: java.lang.Object
{
protected char[] password;
descriptor: [C
flags: (0x0004) ACC_PROTECTED
private org.bouncycastle.asn1.x509.AlgorithmIdentifier keyDerivationAlgorithm;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.asn1.ASN1ObjectIdentifier kekAlgorithm;
descriptor: Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
flags: (0x0002) ACC_PRIVATE
private java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x0002) ACC_PRIVATE
private int schemeID;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int keySize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int blockSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.cms.PasswordRecipient$PRF prf;
descriptor: Lorg/bouncycastle/cms/PasswordRecipient$PRF;
flags: (0x0002) ACC_PRIVATE
private byte[] salt;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int iterationCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
protected void <init>(org.bouncycastle.asn1.ASN1ObjectIdentifier, char[]);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;[C)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aload 1
invokestatic org.bouncycastle.cms.PasswordRecipientInfoGenerator.getKeySize:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)I
getstatic org.bouncycastle.cms.PasswordRecipientInformation.BLOCKSIZES:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokespecial org.bouncycastle.cms.PasswordRecipientInfoGenerator.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;[CII)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
0 2 1 kekAlgorithm Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
0 2 2 password [C
MethodParameters:
Name Flags
kekAlgorithm
password
protected void <init>(org.bouncycastle.asn1.ASN1ObjectIdentifier, char[], int, int);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;[CII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.password:[C
2: aload 0
iconst_1
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.schemeID:I
3: aload 0
aload 1
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.kekAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
4: aload 0
iload 3
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.keySize:I
5: aload 0
iload 4
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.blockSize:I
6: aload 0
getstatic org.bouncycastle.cms.PasswordRecipient$PRF.HMacSHA1:Lorg/bouncycastle/cms/PasswordRecipient$PRF;
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.prf:Lorg/bouncycastle/cms/PasswordRecipient$PRF;
7: aload 0
sipush 1024
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.iterationCount:I
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
0 9 1 kekAlgorithm Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
0 9 2 password [C
0 9 3 keySize I
0 9 4 blockSize I
MethodParameters:
Name Flags
kekAlgorithm
password
keySize
blockSize
private static int getKeySize(org.bouncycastle.asn1.ASN1ObjectIdentifier);
descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: getstatic org.bouncycastle.cms.PasswordRecipientInformation.KEYSIZES:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "cannot find key size for algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.Integer
StackMap stack:
aload 1
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 kekAlgorithm Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
1 4 1 size Ljava/lang/Integer;
MethodParameters:
Name Flags
kekAlgorithm
public org.bouncycastle.cms.PasswordRecipientInfoGenerator setPasswordConversionScheme(int);
descriptor: (I)Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.schemeID:I
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
0 2 1 schemeID I
MethodParameters:
Name Flags
schemeID
public org.bouncycastle.cms.PasswordRecipientInfoGenerator setPRF(org.bouncycastle.cms.PasswordRecipient$PRF);
descriptor: (Lorg/bouncycastle/cms/PasswordRecipient$PRF;)Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.prf:Lorg/bouncycastle/cms/PasswordRecipient$PRF;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
0 2 1 prf Lorg/bouncycastle/cms/PasswordRecipient$PRF;
MethodParameters:
Name Flags
prf
public org.bouncycastle.cms.PasswordRecipientInfoGenerator setSaltAndIterationCount(byte[], int);
descriptor: ([BI)Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokestatic org.bouncycastle.util.Arrays.clone:([B)[B
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.salt:[B
1: aload 0
iload 2
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.iterationCount:I
2: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
0 3 1 salt [B
0 3 2 iterationCount I
MethodParameters:
Name Flags
salt
iterationCount
public org.bouncycastle.cms.PasswordRecipientInfoGenerator setSecureRandom(java.security.SecureRandom);
descriptor: (Ljava/security/SecureRandom;)Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.random:Ljava/security/SecureRandom;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
0 2 1 random Ljava/security/SecureRandom;
MethodParameters:
Name Flags
random
public org.bouncycastle.asn1.cms.RecipientInfo generate(org.bouncycastle.operator.GenericKey);
descriptor: (Lorg/bouncycastle/operator/GenericKey;)Lorg/bouncycastle/asn1/cms/RecipientInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.blockSize:I
newarray 8
astore 2
start local 2 1: aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.random:Ljava/security/SecureRandom;
ifnonnull 3
2: aload 0
new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.random:Ljava/security/SecureRandom;
3: StackMap locals: byte[]
StackMap stack:
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.random:Ljava/security/SecureRandom;
aload 2
invokevirtual java.security.SecureRandom.nextBytes:([B)V
4: aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.salt:[B
ifnonnull 7
5: aload 0
bipush 20
newarray 8
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.salt:[B
6: aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.random:Ljava/security/SecureRandom;
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.salt:[B
invokevirtual java.security.SecureRandom.nextBytes:([B)V
7: StackMap locals:
StackMap stack:
aload 0
new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_PBKDF2:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
new org.bouncycastle.asn1.pkcs.PBKDF2Params
dup
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.salt:[B
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.iterationCount:I
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.prf:Lorg/bouncycastle/cms/PasswordRecipient$PRF;
getfield org.bouncycastle.cms.PasswordRecipient$PRF.prfAlgID:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokespecial org.bouncycastle.asn1.pkcs.PBKDF2Params.<init>:([BILorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)V
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
putfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.keyDerivationAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
8: aload 0
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.schemeID:I
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.keyDerivationAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.keySize:I
invokevirtual org.bouncycastle.cms.PasswordRecipientInfoGenerator.calculateDerivedKey:(ILorg/bouncycastle/asn1/x509/AlgorithmIdentifier;I)[B
astore 3
start local 3 9: new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.kekAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
new org.bouncycastle.asn1.DEROctetString
dup
aload 2
invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
astore 4
start local 4 10: aload 0
aload 4
aload 3
aload 1
invokevirtual org.bouncycastle.cms.PasswordRecipientInfoGenerator.generateEncryptedBytes:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[BLorg/bouncycastle/operator/GenericKey;)[B
astore 5
start local 5 11: new org.bouncycastle.asn1.DEROctetString
dup
aload 5
invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
astore 6
start local 6 12: new org.bouncycastle.asn1.ASN1EncodableVector
dup
invokespecial org.bouncycastle.asn1.ASN1EncodableVector.<init>:()V
astore 7
start local 7 13: aload 7
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.kekAlgorithm:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
14: aload 7
new org.bouncycastle.asn1.DEROctetString
dup
aload 2
invokespecial org.bouncycastle.asn1.DEROctetString.<init>:([B)V
invokevirtual org.bouncycastle.asn1.ASN1EncodableVector.add:(Lorg/bouncycastle/asn1/ASN1Encodable;)V
15: new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
16: getstatic org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_alg_PWRI_KEK:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
new org.bouncycastle.asn1.DERSequence
dup
aload 7
invokespecial org.bouncycastle.asn1.DERSequence.<init>:(Lorg/bouncycastle/asn1/ASN1EncodableVector;)V
17: invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
astore 8
start local 8 18: new org.bouncycastle.asn1.cms.RecipientInfo
dup
new org.bouncycastle.asn1.cms.PasswordRecipientInfo
dup
aload 0
getfield org.bouncycastle.cms.PasswordRecipientInfoGenerator.keyDerivationAlgorithm:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
19: aload 8
aload 6
invokespecial org.bouncycastle.asn1.cms.PasswordRecipientInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1OctetString;)V
20: invokespecial org.bouncycastle.asn1.cms.RecipientInfo.<init>:(Lorg/bouncycastle/asn1/cms/PasswordRecipientInfo;)V
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/bouncycastle/cms/PasswordRecipientInfoGenerator;
0 21 1 contentEncryptionKey Lorg/bouncycastle/operator/GenericKey;
1 21 2 iv [B
9 21 3 derivedKey [B
10 21 4 kekAlgorithmId Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
11 21 5 encryptedKeyBytes [B
12 21 6 encryptedKey Lorg/bouncycastle/asn1/ASN1OctetString;
13 21 7 v Lorg/bouncycastle/asn1/ASN1EncodableVector;
18 21 8 keyEncryptionAlgorithm Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
Exceptions:
throws org.bouncycastle.cms.CMSException
MethodParameters:
Name Flags
contentEncryptionKey
protected abstract byte[] calculateDerivedKey(int, org.bouncycastle.asn1.x509.AlgorithmIdentifier, int);
descriptor: (ILorg/bouncycastle/asn1/x509/AlgorithmIdentifier;I)[B
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws org.bouncycastle.cms.CMSException
MethodParameters:
Name Flags
schemeID
derivationAlgorithm
keySize
protected abstract byte[] generateEncryptedBytes(org.bouncycastle.asn1.x509.AlgorithmIdentifier, byte[], org.bouncycastle.operator.GenericKey);
descriptor: (Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;[BLorg/bouncycastle/operator/GenericKey;)[B
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws org.bouncycastle.cms.CMSException
MethodParameters:
Name Flags
algorithm
derivedKey
contentEncryptionKey
}
SourceFile: "PasswordRecipientInfoGenerator.java"
InnerClasses:
public final PRF = org.bouncycastle.cms.PasswordRecipient$PRF of org.bouncycastle.cms.PasswordRecipient