public class org.bouncycastle.cert.path.validations.CertificatePoliciesValidation 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.CertificatePoliciesValidation
  super_class: java.lang.Object
{
  private int explicitPolicy;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int policyMapping;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int inhibitAnyPolicy;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  void <init>(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
        start local 1 // int pathLength
         0: .line 23
            aload 0 /* this */
            iload 1 /* pathLength */
            iconst_0
            iconst_0
            iconst_0
            invokespecial org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.<init>:(IZZZ)V
         1: .line 24
            return
        end local 1 // int pathLength
        end local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/bouncycastle/cert/path/validations/CertificatePoliciesValidation;
            0    2     1  pathLength  I
    MethodParameters:
            Name  Flags
      pathLength  

  void <init>(int, boolean, boolean, boolean);
    descriptor: (IZZZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
        start local 1 // int pathLength
        start local 2 // boolean isExplicitPolicyRequired
        start local 3 // boolean isAnyPolicyInhibited
        start local 4 // boolean isPolicyMappingInhibited
         0: .line 26
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 32
            iload 2 /* isExplicitPolicyRequired */
            ifeq 4
         2: .line 34
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.explicitPolicy:I
         3: .line 35
            goto 5
         4: .line 38
      StackMap locals: org.bouncycastle.cert.path.validations.CertificatePoliciesValidation int int int int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* pathLength */
            iconst_1
            iadd
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.explicitPolicy:I
         5: .line 44
      StackMap locals:
      StackMap stack:
            iload 3 /* isAnyPolicyInhibited */
            ifeq 8
         6: .line 46
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.inhibitAnyPolicy:I
         7: .line 47
            goto 9
         8: .line 50
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* pathLength */
            iconst_1
            iadd
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.inhibitAnyPolicy:I
         9: .line 56
      StackMap locals:
      StackMap stack:
            iload 4 /* isPolicyMappingInhibited */
            ifeq 12
        10: .line 58
            aload 0 /* this */
            iconst_0
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.policyMapping:I
        11: .line 59
            goto 13
        12: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* pathLength */
            iconst_1
            iadd
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.policyMapping:I
        13: .line 64
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean isPolicyMappingInhibited
        end local 3 // boolean isAnyPolicyInhibited
        end local 2 // boolean isExplicitPolicyRequired
        end local 1 // int pathLength
        end local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   14     0                      this  Lorg/bouncycastle/cert/path/validations/CertificatePoliciesValidation;
            0   14     1                pathLength  I
            0   14     2  isExplicitPolicyRequired  Z
            0   14     3      isAnyPolicyInhibited  Z
            0   14     4  isPolicyMappingInhibited  Z
    MethodParameters:
                          Name  Flags
      pathLength                
      isExplicitPolicyRequired  
      isAnyPolicyInhibited      
      isPolicyMappingInhibited  

  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=6, args_size=3
        start local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
        start local 1 // org.bouncycastle.cert.path.CertPathValidationContext context
        start local 2 // org.bouncycastle.cert.X509CertificateHolder certificate
         0: .line 69
            aload 1 /* context */
            getstatic org.bouncycastle.asn1.x509.Extension.policyConstraints:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.cert.path.CertPathValidationContext.addHandledExtension:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
         1: .line 70
            aload 1 /* context */
            getstatic org.bouncycastle.asn1.x509.Extension.inhibitAnyPolicy:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.cert.path.CertPathValidationContext.addHandledExtension:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)V
         2: .line 72
            aload 1 /* context */
            invokevirtual org.bouncycastle.cert.path.CertPathValidationContext.isEndEntity:()Z
            ifne 22
         3: .line 74
            aload 2 /* certificate */
            invokestatic org.bouncycastle.cert.path.validations.ValidationUtils.isSelfIssued:(Lorg/bouncycastle/cert/X509CertificateHolder;)Z
            ifne 22
         4: .line 79
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.explicitPolicy:I
            invokevirtual org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.countDown:(I)I
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.explicitPolicy:I
         5: .line 80
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.policyMapping:I
            invokevirtual org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.countDown:(I)I
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.policyMapping:I
         6: .line 81
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.inhibitAnyPolicy:I
            invokevirtual org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.countDown:(I)I
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.inhibitAnyPolicy:I
         7: .line 86
            aload 2 /* certificate */
            invokevirtual org.bouncycastle.cert.X509CertificateHolder.getExtensions:()Lorg/bouncycastle/asn1/x509/Extensions;
            invokestatic org.bouncycastle.asn1.x509.PolicyConstraints.fromExtensions:(Lorg/bouncycastle/asn1/x509/Extensions;)Lorg/bouncycastle/asn1/x509/PolicyConstraints;
            astore 3 /* policyConstraints */
        start local 3 // org.bouncycastle.asn1.x509.PolicyConstraints policyConstraints
         8: .line 88
            aload 3 /* policyConstraints */
            ifnull 17
         9: .line 90
            aload 3 /* policyConstraints */
            invokevirtual org.bouncycastle.asn1.x509.PolicyConstraints.getRequireExplicitPolicyMapping:()Ljava/math/BigInteger;
            astore 4 /* requireExplicitPolicyMapping */
        start local 4 // java.math.BigInteger requireExplicitPolicyMapping
        10: .line 91
            aload 4 /* requireExplicitPolicyMapping */
            ifnull 13
        11: .line 93
            aload 4 /* requireExplicitPolicyMapping */
            invokevirtual java.math.BigInteger.intValue:()I
            aload 0 /* this */
            getfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.explicitPolicy:I
            if_icmpge 13
        12: .line 95
            aload 0 /* this */
            aload 4 /* requireExplicitPolicyMapping */
            invokevirtual java.math.BigInteger.intValue:()I
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.explicitPolicy:I
        13: .line 99
      StackMap locals: org.bouncycastle.asn1.x509.PolicyConstraints java.math.BigInteger
      StackMap stack:
            aload 3 /* policyConstraints */
            invokevirtual org.bouncycastle.asn1.x509.PolicyConstraints.getInhibitPolicyMapping:()Ljava/math/BigInteger;
            astore 5 /* inhibitPolicyMapping */
        start local 5 // java.math.BigInteger inhibitPolicyMapping
        14: .line 100
            aload 5 /* inhibitPolicyMapping */
            ifnull 17
        15: .line 102
            aload 5 /* inhibitPolicyMapping */
            invokevirtual java.math.BigInteger.intValue:()I
            aload 0 /* this */
            getfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.policyMapping:I
            if_icmpge 17
        16: .line 104
            aload 0 /* this */
            aload 5 /* inhibitPolicyMapping */
            invokevirtual java.math.BigInteger.intValue:()I
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.policyMapping:I
        end local 5 // java.math.BigInteger inhibitPolicyMapping
        end local 4 // java.math.BigInteger requireExplicitPolicyMapping
        17: .line 112
      StackMap locals:
      StackMap stack:
            aload 2 /* certificate */
            getstatic org.bouncycastle.asn1.x509.Extension.inhibitAnyPolicy:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            invokevirtual org.bouncycastle.cert.X509CertificateHolder.getExtension:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)Lorg/bouncycastle/asn1/x509/Extension;
            astore 4 /* ext */
        start local 4 // org.bouncycastle.asn1.x509.Extension ext
        18: .line 114
            aload 4 /* ext */
            ifnull 22
        19: .line 116
            aload 4 /* ext */
            invokevirtual org.bouncycastle.asn1.x509.Extension.getParsedValue:()Lorg/bouncycastle/asn1/ASN1Encodable;
            invokestatic org.bouncycastle.asn1.ASN1Integer.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1Integer;
            invokevirtual org.bouncycastle.asn1.ASN1Integer.getValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.intValue:()I
            istore 5 /* extValue */
        start local 5 // int extValue
        20: .line 118
            iload 5 /* extValue */
            aload 0 /* this */
            getfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.inhibitAnyPolicy:I
            if_icmpge 22
        21: .line 120
            aload 0 /* this */
            iload 5 /* extValue */
            putfield org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.inhibitAnyPolicy:I
        end local 5 // int extValue
        end local 4 // org.bouncycastle.asn1.x509.Extension ext
        end local 3 // org.bouncycastle.asn1.x509.PolicyConstraints policyConstraints
        22: .line 125
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.bouncycastle.cert.X509CertificateHolder certificate
        end local 1 // org.bouncycastle.cert.path.CertPathValidationContext context
        end local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0   23     0                          this  Lorg/bouncycastle/cert/path/validations/CertificatePoliciesValidation;
            0   23     1                       context  Lorg/bouncycastle/cert/path/CertPathValidationContext;
            0   23     2                   certificate  Lorg/bouncycastle/cert/X509CertificateHolder;
            8   22     3             policyConstraints  Lorg/bouncycastle/asn1/x509/PolicyConstraints;
           10   17     4  requireExplicitPolicyMapping  Ljava/math/BigInteger;
           14   17     5          inhibitPolicyMapping  Ljava/math/BigInteger;
           18   22     4                           ext  Lorg/bouncycastle/asn1/x509/Extension;
           20   22     5                      extValue  I
    Exceptions:
      throws org.bouncycastle.cert.path.CertPathValidationException
    MethodParameters:
             Name  Flags
      context      
      certificate  

  private int countDown(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
        start local 1 // int policyCounter
         0: .line 129
            iload 1 /* policyCounter */
            ifeq 2
         1: .line 131
            iload 1 /* policyCounter */
            iconst_1
            isub
            ireturn
         2: .line 134
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // int policyCounter
        end local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/bouncycastle/cert/path/validations/CertificatePoliciesValidation;
            0    3     1  policyCounter  I
    MethodParameters:
               Name  Flags
      policyCounter  

  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 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
         0: .line 139
            new org.bouncycastle.cert.path.validations.CertificatePoliciesValidation
            dup
            iconst_0
            invokespecial org.bouncycastle.cert.path.validations.CertificatePoliciesValidation.<init>:(I)V
            areturn
        end local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/cert/path/validations/CertificatePoliciesValidation;

  public void reset(org.bouncycastle.util.Memoable);
    descriptor: (Lorg/bouncycastle/util/Memoable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
        start local 1 // org.bouncycastle.util.Memoable other
         0: .line 144
            aload 1 /* other */
            checkcast org.bouncycastle.cert.path.validations.CertificatePoliciesValidation
            pop
         1: .line 145
            return
        end local 1 // org.bouncycastle.util.Memoable other
        end local 0 // org.bouncycastle.cert.path.validations.CertificatePoliciesValidation this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bouncycastle/cert/path/validations/CertificatePoliciesValidation;
            0    2     1  other  Lorg/bouncycastle/util/Memoable;
    MethodParameters:
       Name  Flags
      other  
}
SourceFile: "CertificatePoliciesValidation.java"