public class org.bouncycastle.cert.path.validations.KeyUsageValidation 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.KeyUsageValidation
super_class: java.lang.Object
{
private boolean isMandatory;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokespecial org.bouncycastle.cert.path.validations.KeyUsageValidation.<init>:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/cert/path/validations/KeyUsageValidation;
public void <init>(boolean);
descriptor: (Z)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
iload 1
putfield org.bouncycastle.cert.path.validations.KeyUsageValidation.isMandatory:Z
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cert/path/validations/KeyUsageValidation;
0 3 1 isMandatory Z
MethodParameters:
Name Flags
isMandatory
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=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic org.bouncycastle.asn1.x509.Extension.keyUsage:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
invokevirtual org.bouncycastle.cert.path.CertPathValidationContext.addHandledExtension:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
1: aload 1
invokevirtual org.bouncycastle.cert.path.CertPathValidationContext.isEndEntity:()Z
ifne 8
2: aload 2
invokevirtual org.bouncycastle.cert.X509CertificateHolder.getExtensions:()Lorg/bouncycastle/asn1/x509/Extensions;
invokestatic org.bouncycastle.asn1.x509.KeyUsage.fromExtensions:(Lorg/bouncycastle/asn1/x509/Extensions;)Lorg/bouncycastle/asn1/x509/KeyUsage;
astore 3
start local 3 3: aload 3
ifnull 6
4: aload 3
iconst_4
invokevirtual org.bouncycastle.asn1.x509.KeyUsage.hasUsages:(I)Z
ifne 8
5: new org.bouncycastle.cert.path.CertPathValidationException
dup
ldc "Issuer certificate KeyUsage extension does not permit key signing"
invokespecial org.bouncycastle.cert.path.CertPathValidationException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: org.bouncycastle.asn1.x509.KeyUsage
StackMap stack:
aload 0
getfield org.bouncycastle.cert.path.validations.KeyUsageValidation.isMandatory:Z
ifeq 8
7: new org.bouncycastle.cert.path.CertPathValidationException
dup
ldc "KeyUsage extension not present in CA certificate"
invokespecial org.bouncycastle.cert.path.CertPathValidationException.<init>:(Ljava/lang/String;)V
athrow
end local 3 8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/bouncycastle/cert/path/validations/KeyUsageValidation;
0 9 1 context Lorg/bouncycastle/cert/path/CertPathValidationContext;
0 9 2 certificate Lorg/bouncycastle/cert/X509CertificateHolder;
3 8 3 usage Lorg/bouncycastle/asn1/x509/KeyUsage;
Exceptions:
throws org.bouncycastle.cert.path.CertPathValidationException
MethodParameters:
Name Flags
context
certificate
public org.bouncycastle.util.Memoable copy();
descriptor: ()Lorg/bouncycastle/util/Memoable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.bouncycastle.cert.path.validations.KeyUsageValidation
dup
aload 0
getfield org.bouncycastle.cert.path.validations.KeyUsageValidation.isMandatory:Z
invokespecial org.bouncycastle.cert.path.validations.KeyUsageValidation.<init>:(Z)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/cert/path/validations/KeyUsageValidation;
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.KeyUsageValidation
astore 2
start local 2 1: aload 0
aload 2
getfield org.bouncycastle.cert.path.validations.KeyUsageValidation.isMandatory:Z
putfield org.bouncycastle.cert.path.validations.KeyUsageValidation.isMandatory:Z
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/cert/path/validations/KeyUsageValidation;
0 3 1 other Lorg/bouncycastle/util/Memoable;
1 3 2 v Lorg/bouncycastle/cert/path/validations/KeyUsageValidation;
MethodParameters:
Name Flags
other
}
SourceFile: "KeyUsageValidation.java"