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 sun.security.util.AlgorithmConstraints constraints;
descriptor: Lsun/security/util/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<sun.security.util.CryptoPrimitive> SIGNATURE_PRIMITIVE_SET;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Lsun/security/util/CryptoPrimitive;>;
private static final java.util.Set<sun.security.util.CryptoPrimitive> KU_PRIMITIVE_SET;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Lsun/security/util/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 sun.security.util.CryptoPrimitive.SIGNATURE:Lsun/security/util/CryptoPrimitive;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
2: putstatic sun.security.provider.certpath.AlgorithmChecker.SIGNATURE_PRIMITIVE_SET:Ljava/util/Set;
3: getstatic sun.security.util.CryptoPrimitive.SIGNATURE:Lsun/security/util/CryptoPrimitive;
4: getstatic sun.security.util.CryptoPrimitive.KEY_ENCAPSULATION:Lsun/security/util/CryptoPrimitive;
5: getstatic sun.security.util.CryptoPrimitive.PUBLIC_KEY_ENCRYPTION:Lsun/security/util/CryptoPrimitive;
6: getstatic sun.security.util.CryptoPrimitive.KEY_AGREEMENT:Lsun/security/util/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;Lsun/security/util/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>(sun.security.util.AlgorithmConstraints, java.security.Timestamp, java.lang.String);
descriptor: (Lsun/security/util/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;Lsun/security/util/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 Lsun/security/util/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, sun.security.util.AlgorithmConstraints, java.util.Date, java.security.Timestamp, java.lang.String);
descriptor: (Ljava/security/cert/TrustAnchor;Lsun/security/util/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 sun.security.util.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 sun.security.util.AlgorithmConstraints java.util.Date java.security.Timestamp java.lang.String
StackMap stack: sun.security.provider.certpath.AlgorithmChecker sun.security.util.AlgorithmConstraints
putfield sun.security.provider.certpath.AlgorithmChecker.constraints:Lsun/security/util/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 sun.security.util.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 sun.security.util.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 Lsun/security/util/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;Lsun/security/util/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:Lsun/security/util/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 7
aload 3
arraylength
bipush 9
if_icmpge 7
4: new java.security.cert.CertPathValidatorException
dup
5: ldc "incorrect KeyUsage extension"
6: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
7: 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 8: 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 9: goto 12
end local 5 end local 4 StackMap locals:
StackMap stack: java.security.cert.CertificateException
10: astore 6
start local 6 11: 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 12: 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 13: aload 1
invokevirtual java.security.cert.Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 7
start local 7 14: aload 1
checkcast java.security.cert.X509Certificate
invokevirtual java.security.cert.X509Certificate.getSigAlgName:()Ljava/lang/String;
astore 8
start local 8 15: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Lsun/security/util/AlgorithmConstraints;
getstatic sun.security.provider.certpath.AlgorithmChecker.SIGNATURE_PRIMITIVE_SET:Ljava/util/Set;
aload 8
16: aload 6
17: invokeinterface sun.security.util.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/AlgorithmParameters;)Z
18: ifne 24
19: new java.security.cert.CertPathValidatorException
dup
20: new java.lang.StringBuilder
dup
ldc "Algorithm constraints check failed on signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
21: aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
24: 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 25: aload 3
ifnull 39
26: ldc Lsun/security/util/CryptoPrimitive;
invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
astore 9
27: aload 3
iconst_0
baload
ifne 28
aload 3
iconst_1
baload
ifne 28
aload 3
iconst_5
baload
ifne 28
aload 3
bipush 6
baload
ifeq 29
28: StackMap locals: java.util.Set
StackMap stack:
aload 9
getstatic sun.security.util.CryptoPrimitive.SIGNATURE:Lsun/security/util/CryptoPrimitive;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
29: StackMap locals:
StackMap stack:
aload 3
iconst_2
baload
ifeq 31
30: aload 9
getstatic sun.security.util.CryptoPrimitive.KEY_ENCAPSULATION:Lsun/security/util/CryptoPrimitive;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
31: StackMap locals:
StackMap stack:
aload 3
iconst_3
baload
ifeq 33
32: aload 9
getstatic sun.security.util.CryptoPrimitive.PUBLIC_KEY_ENCRYPTION:Lsun/security/util/CryptoPrimitive;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
33: StackMap locals:
StackMap stack:
aload 3
iconst_4
baload
ifeq 35
34: aload 9
getstatic sun.security.util.CryptoPrimitive.KEY_AGREEMENT:Lsun/security/util/CryptoPrimitive;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
35: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Set.isEmpty:()Z
ifeq 39
36: new java.security.cert.CertPathValidatorException
dup
37: ldc "incorrect KeyUsage extension bits"
38: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
39: StackMap locals:
StackMap stack:
new sun.security.util.ConstraintsParameters
dup
aload 1
checkcast java.security.cert.X509Certificate
40: 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;
41: invokespecial sun.security.util.ConstraintsParameters.<init>:(Ljava/security/cert/X509Certificate;ZLjava/util/Date;Ljava/security/Timestamp;Ljava/lang/String;)V
42: astore 10
start local 10 43: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Lsun/security/util/AlgorithmConstraints;
instanceof sun.security.util.DisabledAlgorithmConstraints
ifeq 46
44: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Lsun/security/util/AlgorithmConstraints;
checkcast sun.security.util.DisabledAlgorithmConstraints
aload 8
aload 10
invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/lang/String;Lsun/security/util/ConstraintsParameters;)V
45: goto 55
46: 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
47: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Lsun/security/util/AlgorithmConstraints;
aload 9
aload 7
invokeinterface sun.security.util.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/security/Key;)Z
ifne 55
48: new java.security.cert.CertPathValidatorException
dup
49: new java.lang.StringBuilder
dup
ldc "Algorithm constraints check failed on key "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
50: 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;
51: aload 7
invokestatic sun.security.util.KeyUtil.getKeySize:(Ljava/security/Key;)I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
52: ldc "bits"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
53: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
54: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
55: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
ifnonnull 58
56: aload 0
aload 7
putfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
57: return
58: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.constraints:Lsun/security/util/AlgorithmConstraints;
59: getstatic sun.security.provider.certpath.AlgorithmChecker.SIGNATURE_PRIMITIVE_SET:Ljava/util/Set;
60: aload 8
aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
aload 6
61: invokeinterface sun.security.util.AlgorithmConstraints.permits:(Ljava/util/Set;Ljava/lang/String;Ljava/security/Key;Ljava/security/AlgorithmParameters;)Z
62: ifne 68
63: new java.security.cert.CertPathValidatorException
dup
64: new java.lang.StringBuilder
dup
ldc "Algorithm constraints check failed on signature algorithm: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
65: aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
66: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
67: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
68: StackMap locals:
StackMap stack:
aload 7
instanceof java.security.interfaces.DSAPublicKey
ifeq 88
69: aload 7
checkcast java.security.interfaces.DSAPublicKey
invokeinterface java.security.interfaces.DSAPublicKey.getParams:()Ljava/security/interfaces/DSAParams;
ifnonnull 88
70: aload 0
getfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
instanceof java.security.interfaces.DSAPublicKey
ifne 72
71: 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
72: 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 73: aload 11
ifnonnull 77
74: new java.security.cert.CertPathValidatorException
dup
75: ldc "Key parameters missing from public key."
76: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
athrow
77: 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 78: ldc "DSA"
invokestatic java.security.KeyFactory.getInstance:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 13
start local 13 79: new java.security.spec.DSAPublicKeySpec
dup
aload 12
aload 11
invokeinterface java.security.interfaces.DSAParams.getP:()Ljava/math/BigInteger;
80: aload 11
invokeinterface java.security.interfaces.DSAParams.getQ:()Ljava/math/BigInteger;
aload 11
invokeinterface java.security.interfaces.DSAParams.getG:()Ljava/math/BigInteger;
81: invokespecial java.security.spec.DSAPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 14
start local 14 82: 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 83: goto 88
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
84: astore 12
start local 12 85: 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
86: 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
87: invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 12 end local 11 88: StackMap locals:
StackMap stack:
aload 0
aload 7
putfield sun.security.provider.certpath.AlgorithmChecker.prevPubKey:Ljava/security/PublicKey;
89: 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 90 0 this Lsun/security/provider/certpath/AlgorithmChecker;
0 90 1 cert Ljava/security/cert/Certificate;
0 90 2 unresolvedCritExts Ljava/util/Collection<Ljava/lang/String;>;
3 90 3 keyUsage [Z
8 10 4 x509Cert Lsun/security/x509/X509CertImpl;
12 90 4 x509Cert Lsun/security/x509/X509CertImpl;
9 10 5 algorithmId Lsun/security/x509/AlgorithmId;
12 90 5 algorithmId Lsun/security/x509/AlgorithmId;
11 12 6 ce Ljava/security/cert/CertificateException;
13 90 6 currSigAlgParams Ljava/security/AlgorithmParameters;
14 90 7 currPubKey Ljava/security/PublicKey;
15 90 8 currSigAlg Ljava/lang/String;
25 90 9 primitives Ljava/util/Set<Lsun/security/util/CryptoPrimitive;>;
43 90 10 cp Lsun/security/util/ConstraintsParameters;
73 88 11 params Ljava/security/interfaces/DSAParams;
78 83 12 y Ljava/math/BigInteger;
79 83 13 kf Ljava/security/KeyFactory;
82 83 14 ks Ljava/security/spec/DSAPublicKeySpec;
85 88 12 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
7 9 10 Class java.security.cert.CertificateException
77 83 84 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"