public final class sun.security.provider.certpath.AlgorithmChecker extends java.security.cert.PKIXCertPathChecker
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.provider.certpath.AlgorithmChecker
super_class: java.security.cert.PKIXCertPathChecker
{
private static final sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.security.AlgorithmConstraints constraints;
descriptor: Ljava/security/AlgorithmConstraints;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.PublicKey trustedPubKey;
descriptor: Ljava/security/PublicKey;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Date pkixdate;
descriptor: Ljava/util/Date;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.security.PublicKey prevPubKey;
descriptor: Ljava/security/PublicKey;
flags: (0x0002) ACC_PRIVATE
private final java.security.Timestamp jarTimestamp;
descriptor: Ljava/security/Timestamp;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String variant;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final java.util.Set<java.security.CryptoPrimitive> SIGNATURE_PRIMITIVE_SET;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/security/CryptoPrimitive;>;
private static final java.util.Set<java.security.CryptoPrimitive> KU_PRIMITIVE_SET;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/security/CryptoPrimitive;>;
private static final sun.security.util.DisabledAlgorithmConstraints certPathDefaultConstraints;
descriptor: Lsun/security/util/DisabledAlgorithmConstraints;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean publicCALimits;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private boolean trustedMatch;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc "certpath"
invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
putstatic sun.security.provider.certpath.AlgorithmChecker.debug:Lsun/security/util/Debug;
1: getstatic java.security.CryptoPrimitive.SIGNATURE:Ljava/security/CryptoPrimitive;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
2: putstatic sun.security.provider.certpath.AlgorithmChecker.SIGNATURE_PRIMITIVE_SET:Ljava/util/Set;
3: getstatic java.security.CryptoPrimitive.SIGNATURE:Ljava/security/CryptoPrimitive;
4: getstatic java.security.CryptoPrimitive.KEY_ENCAPSULATION:Ljava/security/CryptoPrimitive;
5: getstatic java.security.CryptoPrimitive.PUBLIC_KEY_ENCRYPTION:Ljava/security/CryptoPrimitive;
6: getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/CryptoPrimitive;
7: invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
8: putstatic sun.security.provider.certpath.AlgorithmChecker.KU_PRIMITIVE_SET:Ljava/util/Set;
9: new sun.security.util.DisabledAlgorithmConstraints
dup
10: ldc "jdk.certpath.disabledAlgorithms"
11: invokespecial sun.security.util.DisabledAlgorithmConstraints.<init>:(Ljava/lang/String;)V
putstatic sun.security.provider.certpath.AlgorithmChecker.certPathDefaultConstraints:Lsun/security/util/DisabledAlgorithmConstraints;
12: getstatic sun.security.provider.certpath.AlgorithmChecker.certPathDefaultConstraints:Lsun/security/util/DisabledAlgorithmConstraints;
ldc "jdkCA"
invokevirtual sun.security.util.DisabledAlgorithmConstraints.checkProperty:(Ljava/lang/String;)Z
13: putstatic sun.security.provider.certpath.AlgorithmChecker.publicCALimits:Z
14: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.security.cert.TrustAnchor, java.lang.String);
descriptor: (Ljava/security/cert/TrustAnchor;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
getstatic sun.security.provider.certpath.AlgorithmChecker.certPathDefaultConstraints:Lsun/security/util/DisabledAlgorithmConstraints;
aconst_null
aconst_null
aload 2
invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/security/AlgorithmConstraints;Ljava/util/Date;Ljava/security/Timestamp;Ljava/lang/String;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/provider/certpath/AlgorithmChecker;
0 2 1 anchor Ljava/security/cert/TrustAnchor;
0 2 2 variant Ljava/lang/String;
MethodParameters:
Name Flags
anchor
variant
public void <init>(java.security.AlgorithmConstraints, java.security.Timestamp, java.lang.String);
descriptor: (Ljava/security/AlgorithmConstraints;Ljava/security/Timestamp;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aconst_null
aload 1
aconst_null
aload 2
aload 3
invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/security/AlgorithmConstraints;Ljava/util/Date;Ljava/security/Timestamp;Ljava/lang/String;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/provider/certpath/AlgorithmChecker;
0 2 1 constraints Ljava/security/AlgorithmConstraints;
0 2 2 jarTimestamp Ljava/security/Timestamp;
0 2 3 variant Ljava/lang/String;
MethodParameters:
Name Flags
constraints
jarTimestamp
variant
public void <init>(java.security.cert.TrustAnchor, java.security.AlgorithmConstraints, java.util.Date, java.security.Timestamp, java.lang.String);
descriptor: (Ljava/security/cert/TrustAnchor;Ljava/security/AlgorithmConstraints;Ljava/util/Date;Ljava/security/Timestamp;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.security.cert.PKIXCertPathChecker.<init>:()V
1: aload 0
iconst_0
putfield sun.security.provider.certpath.AlgorithmChecker.trustedMatch:Z
2: aload 1
ifnull 11
3: aload 1
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnull 9
4: aload 0
aload 1
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.AlgorithmChecker.trustedPubKey:Ljava/security/PublicKey;
5: aload 0
aload 1
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
invokestatic sun.security.provider.certpath.AlgorithmChecker.checkFingerprint:(Ljava/security/cert/X509Certificate;)Z
putfield sun.security.provider.certpath.AlgorithmChecker.trustedMatch:Z
6: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.trustedMatch:Z
ifeq 14
getstatic sun.security.provider.certpath.AlgorithmChecker.debug:Lsun/security/util/Debug;
ifnull 14
7: getstatic sun.security.provider.certpath.AlgorithmChecker.debug:Lsun/security/util/Debug;
ldc "trustedMatch = true"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
8: goto 14
9: StackMap locals: sun.security.provider.certpath.AlgorithmChecker java.security.cert.TrustAnchor java.security.AlgorithmConstraints java.util.Date java.security.Timestamp java.lang.String
StackMap stack:
aload 0
aload 1
invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.AlgorithmChecker.trustedPubKey:Ljava/security/PublicKey;
10: goto 14
11: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.provider.certpath.AlgorithmChecker.trustedPubKey:Ljava/security/PublicKey;
12: getstatic sun.security.provider.certpath.AlgorithmChecker.debug:Lsun/security/util/Debug;
ifnull 14
13: getstatic sun.security.provider.certpath.AlgorithmChecker.debug:Lsun/security/util/Debug;
ldc "TrustAnchor is null, trustedMatch is false."
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
14: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.trustedPubKey:Ljava/security/PublicKey;
putfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
15: aload 0
aload 2
ifnonnull 16
getstatic sun.security.provider.certpath.AlgorithmChecker.certPathDefaultConstraints:Lsun/security/util/DisabledAlgorithmConstraints;
goto 17
16: StackMap locals:
StackMap stack: sun.security.provider.certpath.AlgorithmChecker
aload 2
17: StackMap locals: sun.security.provider.certpath.AlgorithmChecker java.security.cert.TrustAnchor java.security.AlgorithmConstraints java.util.Date java.security.Timestamp java.lang.String
StackMap stack: sun.security.provider.certpath.AlgorithmChecker java.security.AlgorithmConstraints
putfield sun.security.provider.certpath.AlgorithmChecker.constraints:Ljava/security/AlgorithmConstraints;
18: aload 0
aload 4
ifnull 19
aload 4
invokevirtual java.security.Timestamp.getTimestamp:()Ljava/util/Date;
goto 20
19: StackMap locals:
StackMap stack: sun.security.provider.certpath.AlgorithmChecker
aload 3
20: StackMap locals: sun.security.provider.certpath.AlgorithmChecker java.security.cert.TrustAnchor java.security.AlgorithmConstraints java.util.Date java.security.Timestamp java.lang.String
StackMap stack: sun.security.provider.certpath.AlgorithmChecker java.util.Date
putfield sun.security.provider.certpath.AlgorithmChecker.pkixdate:Ljava/util/Date;
21: aload 0
aload 4
putfield sun.security.provider.certpath.AlgorithmChecker.jarTimestamp:Ljava/security/Timestamp;
22: aload 0
aload 5
ifnonnull 23
ldc "generic"
goto 24
StackMap locals:
StackMap stack: sun.security.provider.certpath.AlgorithmChecker
23: aload 5
StackMap locals: sun.security.provider.certpath.AlgorithmChecker java.security.cert.TrustAnchor java.security.AlgorithmConstraints java.util.Date java.security.Timestamp java.lang.String
StackMap stack: sun.security.provider.certpath.AlgorithmChecker java.lang.String
24: putfield sun.security.provider.certpath.AlgorithmChecker.variant:Ljava/lang/String;
25: return
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 26 0 this Lsun/security/provider/certpath/AlgorithmChecker;
0 26 1 anchor Ljava/security/cert/TrustAnchor;
0 26 2 constraints Ljava/security/AlgorithmConstraints;
0 26 3 pkixdate Ljava/util/Date;
0 26 4 jarTimestamp Ljava/security/Timestamp;
0 26 5 variant Ljava/lang/String;
MethodParameters:
Name Flags
anchor
constraints
pkixdate
jarTimestamp
variant
public void <init>(java.security.cert.TrustAnchor, java.util.Date, java.lang.String);
descriptor: (Ljava/security/cert/TrustAnchor;Ljava/util/Date;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
getstatic sun.security.provider.certpath.AlgorithmChecker.certPathDefaultConstraints:Lsun/security/util/DisabledAlgorithmConstraints;
aload 2
aconst_null
aload 3
invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/cert/TrustAnchor;Ljava/security/AlgorithmConstraints;Ljava/util/Date;Ljava/security/Timestamp;Ljava/lang/String;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/provider/certpath/AlgorithmChecker;
0 2 1 anchor Ljava/security/cert/TrustAnchor;
0 2 2 pkixdate Ljava/util/Date;
0 2 3 variant Ljava/lang/String;
MethodParameters:
Name Flags
anchor
pkixdate
variant
private static boolean checkFingerprint(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic sun.security.provider.certpath.AlgorithmChecker.publicCALimits:Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
getstatic sun.security.provider.certpath.AlgorithmChecker.debug:Lsun/security/util/Debug;
ifnull 4
3: getstatic sun.security.provider.certpath.AlgorithmChecker.debug:Lsun/security/util/Debug;
new java.lang.StringBuilder
dup
ldc "AlgorithmChecker.contains: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.security.cert.X509Certificate.getSigAlgName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.security.util.AnchorCertificates.contains:(Ljava/security/cert/X509Certificate;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 cert Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
cert
public void init(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifne 6
1: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.trustedPubKey:Ljava/security/PublicKey;
ifnull 4
2: aload 0
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.trustedPubKey:Ljava/security/PublicKey;
putfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
3: goto 8
4: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
5: goto 8
6: StackMap locals:
StackMap stack:
new java.security.cert.CertPathValidatorException
dup
ldc "forward checking not supported"
7: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/provider/certpath/AlgorithmChecker;
0 9 1 forward Z
Exceptions:
throws java.security.cert.CertPathValidatorException
MethodParameters:
Name Flags
forward
public boolean isForwardCheckingSupported();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/certpath/AlgorithmChecker;
public java.util.Set<java.lang.String> getSupportedExtensions();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/certpath/AlgorithmChecker;
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
public void check(java.security.cert.Certificate, java.util.Collection<java.lang.String>);
descriptor: (Ljava/security/cert/Certificate;Ljava/util/Collection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=15, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof java.security.cert.X509Certificate
ifeq 1
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Ljava/security/AlgorithmConstraints;
ifnonnull 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 1
checkcast java.security.cert.X509Certificate
invokevirtual java.security.cert.X509Certificate.getKeyUsage:()[Z
astore 3
start local 3 3: aload 3
ifnull 8
aload 3
arraylength
bipush 9
if_icmpge 8
4: new java.security.cert.CertPathValidatorException
dup
5: ldc "incorrect KeyUsage extension"
6: aconst_null
aconst_null
iconst_m1
getstatic java.security.cert.PKIXReason.INVALID_KEY_USAGE:Ljava/security/cert/PKIXReason;
7: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
athrow
8: StackMap locals: boolean[]
StackMap stack:
aload 1
checkcast java.security.cert.X509Certificate
invokestatic sun.security.x509.X509CertImpl.toImpl:(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
astore 4
start local 4 9: aload 4
ldc "x509.algorithm"
invokevirtual sun.security.x509.X509CertImpl.get:(Ljava/lang/String;)Ljava/lang/Object;
checkcast sun.security.x509.AlgorithmId
astore 5
start local 5 10: goto 13
end local 5 end local 4 StackMap locals:
StackMap stack: java.security.cert.CertificateException
11: astore 6
start local 6 12: new java.security.cert.CertPathValidatorException
dup
aload 6
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 6 start local 4 start local 5 13: StackMap locals: sun.security.x509.X509CertImpl sun.security.x509.AlgorithmId
StackMap stack:
aload 5
invokevirtual sun.security.x509.AlgorithmId.getParameters:()Ljava/security/AlgorithmParameters;
astore 6
start local 6 14: aload 1
invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 7
start local 7 15: aload 4
invokevirtual sun.security.x509.X509CertImpl.getSigAlgName:()Ljava/lang/String;
astore 8
start local 8 16: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Ljava/security/AlgorithmConstraints;
getstatic sun.security.provider.certpath.AlgorithmChecker.SIGNATURE_PRIMITIVE_SET:Ljava/util/Set;
aload 8
17: aload 6
18: invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
19: ifne 27
20: new java.security.cert.CertPathValidatorException
dup
21: new java.lang.StringBuilder
dup
ldc "Algorithm constraints check failed on signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
22: aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: aconst_null
aconst_null
iconst_m1
25: getstatic java.security.cert.CertPathValidatorException$BasicReason.ALGORITHM_CONSTRAINED:Ljava/security/cert/CertPathValidatorException$BasicReason;
26: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
athrow
27: StackMap locals: java.security.AlgorithmParameters java.security.PublicKey java.lang.String
StackMap stack:
getstatic sun.security.provider.certpath.AlgorithmChecker.KU_PRIMITIVE_SET:Ljava/util/Set;
astore 9
start local 9 28: aload 3
ifnull 43
29: ldc Ljava/security/CryptoPrimitive;
invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
astore 9
30: aload 3
iconst_0
baload
ifne 31
aload 3
iconst_1
baload
ifne 31
aload 3
iconst_5
baload
ifne 31
aload 3
bipush 6
baload
ifeq 32
31: StackMap locals: java.util.Set
StackMap stack:
aload 9
getstatic java.security.CryptoPrimitive.SIGNATURE:Ljava/security/CryptoPrimitive;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
32: StackMap locals:
StackMap stack:
aload 3
iconst_2
baload
ifeq 34
33: aload 9
getstatic java.security.CryptoPrimitive.KEY_ENCAPSULATION:Ljava/security/CryptoPrimitive;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
34: StackMap locals:
StackMap stack:
aload 3
iconst_3
baload
ifeq 36
35: aload 9
getstatic java.security.CryptoPrimitive.PUBLIC_KEY_ENCRYPTION:Ljava/security/CryptoPrimitive;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
36: StackMap locals:
StackMap stack:
aload 3
iconst_4
baload
ifeq 38
37: aload 9
getstatic java.security.CryptoPrimitive.KEY_AGREEMENT:Ljava/security/CryptoPrimitive;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
38: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Set.isEmpty:()Z
ifeq 43
39: new java.security.cert.CertPathValidatorException
dup
40: ldc "incorrect KeyUsage extension bits"
41: aconst_null
aconst_null
iconst_m1
getstatic java.security.cert.PKIXReason.INVALID_KEY_USAGE:Ljava/security/cert/PKIXReason;
42: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
athrow
43: StackMap locals:
StackMap stack:
new sun.security.util.ConstraintsParameters
dup
aload 1
checkcast java.security.cert.X509Certificate
44: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.trustedMatch:Z
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.pkixdate:Ljava/util/Date;
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.jarTimestamp:Ljava/security/Timestamp;
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.variant:Ljava/lang/String;
45: invokespecial sun.security.util.ConstraintsParameters.<init>:(Ljava/security/cert/X509Certificate;ZLjava/util/Date;Ljava/security/Timestamp;Ljava/lang/String;)V
46: astore 10
start local 10 47: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Ljava/security/AlgorithmConstraints;
instanceof sun.security.util.DisabledAlgorithmConstraints
ifeq 50
48: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Ljava/security/AlgorithmConstraints;
checkcast sun.security.util.DisabledAlgorithmConstraints
aload 8
aload 10
invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/lang/String;Lsun/security/util/ConstraintsParameters;)V
49: goto 60
50: StackMap locals: sun.security.util.ConstraintsParameters
StackMap stack:
getstatic sun.security.provider.certpath.AlgorithmChecker.certPathDefaultConstraints:Lsun/security/util/DisabledAlgorithmConstraints;
aload 8
aload 10
invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/lang/String;Lsun/security/util/ConstraintsParameters;)V
51: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Ljava/security/AlgorithmConstraints;
aload 9
aload 7
invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
ifne 60
52: new java.security.cert.CertPathValidatorException
dup
53: new java.lang.StringBuilder
dup
ldc "Algorithm constraints check failed on key "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
54: aload 7
invokeinterface java.security.PublicKey.getAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " with size of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
55: aload 7
invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
56: ldc "bits"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
57: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
58: aconst_null
aconst_null
iconst_m1
getstatic java.security.cert.CertPathValidatorException$BasicReason.ALGORITHM_CONSTRAINED:Ljava/security/cert/CertPathValidatorException$BasicReason;
59: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
athrow
60: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
ifnonnull 63
61: aload 0
aload 7
putfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
62: return
63: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Ljava/security/AlgorithmConstraints;
64: getstatic sun.security.provider.certpath.AlgorithmChecker.SIGNATURE_PRIMITIVE_SET:Ljava/util/Set;
65: aload 8
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
aload 6
66: invokeinterface java.security.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/Key;Ljava/security/AlgorithmParameters;)Z
67: ifne 74
68: new java.security.cert.CertPathValidatorException
dup
69: new java.lang.StringBuilder
dup
ldc "Algorithm constraints check failed on signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
70: aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
71: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
72: aconst_null
aconst_null
iconst_m1
getstatic java.security.cert.CertPathValidatorException$BasicReason.ALGORITHM_CONSTRAINED:Ljava/security/cert/CertPathValidatorException$BasicReason;
73: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
athrow
74: StackMap locals:
StackMap stack:
aload 7
invokestatic sun.security.provider.certpath.PKIX.isDSAPublicKeyWithoutParams:(Ljava/security/PublicKey;)Z
ifeq 93
75: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.DSAPublicKey
ifne 77
76: new java.security.cert.CertPathValidatorException
dup
ldc "Input key is not of a appropriate type for inheriting parameters"
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
77: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
checkcast java.security.interfaces.DSAPublicKey
invokeinterface java.security.interfaces.DSAPublicKey.getParams:()Ljava/security/interfaces/DSAParams;
astore 11
start local 11 78: aload 11
ifnonnull 82
79: new java.security.cert.CertPathValidatorException
dup
80: ldc "Key parameters missing from public key."
81: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
82: StackMap locals: java.security.interfaces.DSAParams
StackMap stack:
aload 7
checkcast java.security.interfaces.DSAPublicKey
invokeinterface java.security.interfaces.DSAPublicKey.getY:()Ljava/math/BigInteger;
astore 12
start local 12 83: ldc "DSA"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 13
start local 13 84: new java.security.spec.DSAPublicKeySpec
dup
aload 12
aload 11
invokeinterface java.security.interfaces.DSAParams.getP:()Ljava/math/BigInteger;
85: aload 11
invokeinterface java.security.interfaces.DSAParams.getQ:()Ljava/math/BigInteger;
aload 11
invokeinterface java.security.interfaces.DSAParams.getG:()Ljava/math/BigInteger;
86: invokespecial java.security.spec.DSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 14
start local 14 87: aload 13
aload 14
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
astore 7
end local 14 end local 13 end local 12 88: goto 93
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
89: astore 12
start local 12 90: new java.security.cert.CertPathValidatorException
dup
new java.lang.StringBuilder
dup
ldc "Unable to generate key with inherited parameters: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
91: aload 12
invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 12
92: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 12 end local 11 93: StackMap locals:
StackMap stack:
aload 0
aload 7
putfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
94: return
end local 10 end local 9 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 95 0 this Lsun/security/provider/certpath/AlgorithmChecker;
0 95 1 cert Ljava/security/cert/Certificate;
0 95 2 unresolvedCritExts Ljava/util/Collection<Ljava/lang/String;>;
3 95 3 keyUsage [Z
9 11 4 x509Cert Lsun/security/x509/X509CertImpl;
13 95 4 x509Cert Lsun/security/x509/X509CertImpl;
10 11 5 algorithmId Lsun/security/x509/AlgorithmId;
13 95 5 algorithmId Lsun/security/x509/AlgorithmId;
12 13 6 ce Ljava/security/cert/CertificateException;
14 95 6 currSigAlgParams Ljava/security/AlgorithmParameters;
15 95 7 currPubKey Ljava/security/PublicKey;
16 95 8 currSigAlg Ljava/lang/String;
28 95 9 primitives Ljava/util/Set<Ljava/security/CryptoPrimitive;>;
47 95 10 cp Lsun/security/util/ConstraintsParameters;
78 93 11 params Ljava/security/interfaces/DSAParams;
83 88 12 y Ljava/math/BigInteger;
84 88 13 kf Ljava/security/KeyFactory;
87 88 14 ks Ljava/security/spec/DSAPublicKeySpec;
90 93 12 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
8 10 11 Class java.security.cert.CertificateException
82 88 89 Class java.security.GeneralSecurityException
Exceptions:
throws java.security.cert.CertPathValidatorException
Signature: (Ljava/security/cert/Certificate;Ljava/util/Collection<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
cert
unresolvedCritExts
void trySetTrustAnchor(java.security.cert.TrustAnchor);
descriptor: (Ljava/security/cert/TrustAnchor;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
ifnonnull 12
1: aload 1
ifnonnull 5
2: new java.lang.IllegalArgumentException
dup
3: ldc "The trust anchor cannot be null"
4: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
ifnull 11
6: aload 0
aload 1
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
7: aload 0
aload 1
invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
invokestatic sun.security.provider.certpath.AlgorithmChecker.checkFingerprint:(Ljava/security/cert/X509Certificate;)Z
putfield sun.security.provider.certpath.AlgorithmChecker.trustedMatch:Z
8: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.trustedMatch:Z
ifeq 12
getstatic sun.security.provider.certpath.AlgorithmChecker.debug:Lsun/security/util/Debug;
ifnull 12
9: getstatic sun.security.provider.certpath.AlgorithmChecker.debug:Lsun/security/util/Debug;
ldc "trustedMatch = true"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
10: goto 12
11: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
putfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/security/provider/certpath/AlgorithmChecker;
0 13 1 anchor Ljava/security/cert/TrustAnchor;
MethodParameters:
Name Flags
anchor
static void check(java.security.PublicKey, java.security.cert.X509CRL, java.lang.String);
descriptor: (Ljava/security/PublicKey;Ljava/security/cert/X509CRL;Ljava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
invokestatic sun.security.x509.X509CRLImpl.toImpl:(Ljava/security/cert/X509CRL;)Lsun/security/x509/X509CRLImpl;
astore 3
2: goto 5
StackMap locals: java.security.PublicKey java.security.cert.X509CRL java.lang.String sun.security.x509.X509CRLImpl
StackMap stack: java.security.cert.CRLException
3: astore 4
start local 4 4: new java.security.cert.CertPathValidatorException
dup
aload 4
invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 5: StackMap locals:
StackMap stack:
aload 3
invokevirtual sun.security.x509.X509CRLImpl.getSigAlgId:()Lsun/security/x509/AlgorithmId;
astore 4
start local 4 6: aload 0
aload 4
aload 2
invokestatic sun.security.provider.certpath.AlgorithmChecker.check:(Ljava/security/PublicKey;Lsun/security/x509/AlgorithmId;Ljava/lang/String;)V
7: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 key Ljava/security/PublicKey;
0 8 1 crl Ljava/security/cert/X509CRL;
0 8 2 variant Ljava/lang/String;
1 8 3 x509CRLImpl Lsun/security/x509/X509CRLImpl;
4 5 4 ce Ljava/security/cert/CRLException;
6 8 4 algorithmId Lsun/security/x509/AlgorithmId;
Exception table:
from to target type
1 2 3 Class java.security.cert.CRLException
Exceptions:
throws java.security.cert.CertPathValidatorException
MethodParameters:
Name Flags
key
crl
variant
static void check(java.security.PublicKey, sun.security.x509.AlgorithmId, java.lang.String);
descriptor: (Ljava/security/PublicKey;Lsun/security/x509/AlgorithmId;Ljava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual sun.security.x509.AlgorithmId.getName:()Ljava/lang/String;
astore 3
start local 3 1: aload 1
invokevirtual sun.security.x509.AlgorithmId.getParameters:()Ljava/security/AlgorithmParameters;
astore 4
start local 4 2: getstatic sun.security.provider.certpath.AlgorithmChecker.certPathDefaultConstraints:Lsun/security/util/DisabledAlgorithmConstraints;
new sun.security.util.ConstraintsParameters
dup
3: aload 3
aload 4
aload 0
aload 2
invokespecial sun.security.util.ConstraintsParameters.<init>:(Ljava/lang/String;Ljava/security/AlgorithmParameters;Ljava/security/Key;Ljava/lang/String;)V
4: invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Lsun/security/util/ConstraintsParameters;)V
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 key Ljava/security/PublicKey;
0 6 1 algorithmId Lsun/security/x509/AlgorithmId;
0 6 2 variant Ljava/lang/String;
1 6 3 sigAlgName Ljava/lang/String;
2 6 4 sigAlgParams Ljava/security/AlgorithmParameters;
Exceptions:
throws java.security.cert.CertPathValidatorException
MethodParameters:
Name Flags
key
algorithmId
variant
}
SourceFile: "AlgorithmChecker.java"
InnerClasses:
public final BasicReason = java.security.cert.CertPathValidatorException$BasicReason of java.security.cert.CertPathValidatorException
public abstract Reason = java.security.cert.CertPathValidatorException$Reason of java.security.cert.CertPathValidatorException