public class org.bouncycastle.cert.path.validations.ParentCertIssuedValidation implements org.bouncycastle.cert.path.CertPathValidation
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.cert.path.validations.ParentCertIssuedValidation
super_class: java.lang.Object
{
private org.bouncycastle.cert.X509ContentVerifierProviderBuilder contentVerifierProvider;
descriptor: Lorg/bouncycastle/cert/X509ContentVerifierProviderBuilder;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.asn1.x500.X500Name workingIssuerName;
descriptor: Lorg/bouncycastle/asn1/x500/X500Name;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.asn1.x509.SubjectPublicKeyInfo workingPublicKey;
descriptor: Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
flags: (0x0002) ACC_PRIVATE
private org.bouncycastle.asn1.x509.AlgorithmIdentifier workingAlgId;
descriptor: Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0002) ACC_PRIVATE
public void <init>(org.bouncycastle.cert.X509ContentVerifierProviderBuilder);
descriptor: (Lorg/bouncycastle/cert/X509ContentVerifierProviderBuilder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.contentVerifierProvider:Lorg/bouncycastle/cert/X509ContentVerifierProviderBuilder;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cert/path/validations/ParentCertIssuedValidation;
0 3 1 contentVerifierProvider Lorg/bouncycastle/cert/X509ContentVerifierProviderBuilder;
MethodParameters:
Name Flags
contentVerifierProvider
public void validate(org.bouncycastle.cert.path.CertPathValidationContext, org.bouncycastle.cert.X509CertificateHolder);
descriptor: (Lorg/bouncycastle/cert/path/CertPathValidationContext;Lorg/bouncycastle/cert/X509CertificateHolder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingIssuerName:Lorg/bouncycastle/asn1/x500/X500Name;
ifnull 3
1: aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingIssuerName:Lorg/bouncycastle/asn1/x500/X500Name;
aload 2
invokevirtual org.bouncycastle.cert.X509CertificateHolder.getIssuer:()Lorg/bouncycastle/asn1/x500/X500Name;
invokevirtual org.bouncycastle.asn1.x500.X500Name.equals:(Ljava/lang/Object;)Z
ifne 3
2: new org.bouncycastle.cert.path.CertPathValidationException
dup
ldc "Certificate issue does not match parent"
invokespecial org.bouncycastle.cert.path.CertPathValidationException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
ifnull 16
4: aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 7
5: aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
astore 3
start local 3 6: goto 8
end local 3 7: StackMap locals:
StackMap stack:
new org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
dup
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.parsePublicKey:()Lorg/bouncycastle/asn1/ASN1Primitive;
invokespecial org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.<init>:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
astore 3
start local 3 8: StackMap locals: org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
StackMap stack:
aload 2
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.contentVerifierProvider:Lorg/bouncycastle/cert/X509ContentVerifierProviderBuilder;
aload 3
invokeinterface org.bouncycastle.cert.X509ContentVerifierProviderBuilder.build:(Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;)Lorg/bouncycastle/operator/ContentVerifierProvider;
invokevirtual org.bouncycastle.cert.X509CertificateHolder.isSignatureValid:(Lorg/bouncycastle/operator/ContentVerifierProvider;)Z
ifne 16
9: new org.bouncycastle.cert.path.CertPathValidationException
dup
ldc "Certificate signature not for public key in parent"
invokespecial org.bouncycastle.cert.path.CertPathValidationException.<init>:(Ljava/lang/String;)V
athrow
end local 3 10: StackMap locals: org.bouncycastle.cert.path.validations.ParentCertIssuedValidation org.bouncycastle.cert.path.CertPathValidationContext org.bouncycastle.cert.X509CertificateHolder
StackMap stack: org.bouncycastle.operator.OperatorCreationException
astore 3
start local 3 11: new org.bouncycastle.cert.path.CertPathValidationException
dup
new java.lang.StringBuilder
dup
ldc "Unable to create verifier: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual org.bouncycastle.operator.OperatorCreationException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial org.bouncycastle.cert.path.CertPathValidationException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 3 12: StackMap locals:
StackMap stack: org.bouncycastle.cert.CertException
astore 3
start local 3 13: new org.bouncycastle.cert.path.CertPathValidationException
dup
new java.lang.StringBuilder
dup
ldc "Unable to validate signature: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual org.bouncycastle.cert.CertException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial org.bouncycastle.cert.path.CertPathValidationException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 3 14: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 15: new org.bouncycastle.cert.path.CertPathValidationException
dup
new java.lang.StringBuilder
dup
ldc "Unable to build public key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 3
invokespecial org.bouncycastle.cert.path.CertPathValidationException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
athrow
end local 3 16: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual org.bouncycastle.cert.X509CertificateHolder.getSubject:()Lorg/bouncycastle/asn1/x500/X500Name;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingIssuerName:Lorg/bouncycastle/asn1/x500/X500Name;
17: aload 0
aload 2
invokevirtual org.bouncycastle.cert.X509CertificateHolder.getSubjectPublicKeyInfo:()Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
18: aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
ifnull 25
19: aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
ifeq 23
20: aload 0
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getParameters:()Lorg/bouncycastle/asn1/ASN1Encodable;
invokevirtual org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.isNull:(Lorg/bouncycastle/asn1/ASN1Encodable;)Z
ifne 26
21: aload 0
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
22: goto 26
23: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
24: goto 26
25: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
invokevirtual org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithm:()Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
26: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/bouncycastle/cert/path/validations/ParentCertIssuedValidation;
0 27 1 context Lorg/bouncycastle/cert/path/CertPathValidationContext;
0 27 2 certificate Lorg/bouncycastle/cert/X509CertificateHolder;
6 7 3 validatingKeyInfo Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
8 10 3 validatingKeyInfo Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
11 12 3 e Lorg/bouncycastle/operator/OperatorCreationException;
13 14 3 e Lorg/bouncycastle/cert/CertException;
15 16 3 e Ljava/io/IOException;
Exception table:
from to target type
4 10 10 Class org.bouncycastle.operator.OperatorCreationException
4 10 12 Class org.bouncycastle.cert.CertException
4 10 14 Class java.io.IOException
Exceptions:
throws org.bouncycastle.cert.path.CertPathValidationException
MethodParameters:
Name Flags
context
certificate
private boolean isNull(org.bouncycastle.asn1.ASN1Encodable);
descriptor: (Lorg/bouncycastle/asn1/ASN1Encodable;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
instanceof org.bouncycastle.asn1.ASN1Null
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/cert/path/validations/ParentCertIssuedValidation;
0 2 1 obj Lorg/bouncycastle/asn1/ASN1Encodable;
MethodParameters:
Name Flags
obj
public org.bouncycastle.util.Memoable copy();
descriptor: ()Lorg/bouncycastle/util/Memoable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new org.bouncycastle.cert.path.validations.ParentCertIssuedValidation
dup
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.contentVerifierProvider:Lorg/bouncycastle/cert/X509ContentVerifierProviderBuilder;
invokespecial org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.<init>:(Lorg/bouncycastle/cert/X509ContentVerifierProviderBuilder;)V
astore 1
start local 1 1: aload 1
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
2: aload 1
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingIssuerName:Lorg/bouncycastle/asn1/x500/X500Name;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingIssuerName:Lorg/bouncycastle/asn1/x500/X500Name;
3: aload 1
aload 0
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/cert/path/validations/ParentCertIssuedValidation;
1 5 1 v Lorg/bouncycastle/cert/path/validations/ParentCertIssuedValidation;
public void reset(org.bouncycastle.util.Memoable);
descriptor: (Lorg/bouncycastle/util/Memoable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast org.bouncycastle.cert.path.validations.ParentCertIssuedValidation
astore 2
start local 2 1: aload 0
aload 2
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.contentVerifierProvider:Lorg/bouncycastle/cert/X509ContentVerifierProviderBuilder;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.contentVerifierProvider:Lorg/bouncycastle/cert/X509ContentVerifierProviderBuilder;
2: aload 0
aload 2
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingAlgId:Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
3: aload 0
aload 2
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingIssuerName:Lorg/bouncycastle/asn1/x500/X500Name;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingIssuerName:Lorg/bouncycastle/asn1/x500/X500Name;
4: aload 0
aload 2
getfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
putfield org.bouncycastle.cert.path.validations.ParentCertIssuedValidation.workingPublicKey:Lorg/bouncycastle/asn1/x509/SubjectPublicKeyInfo;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/bouncycastle/cert/path/validations/ParentCertIssuedValidation;
0 6 1 other Lorg/bouncycastle/util/Memoable;
1 6 2 v Lorg/bouncycastle/cert/path/validations/ParentCertIssuedValidation;
MethodParameters:
Name Flags
other
}
SourceFile: "ParentCertIssuedValidation.java"