final class sun.security.validator.SymantecTLSPolicy
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.validator.SymantecTLSPolicy
super_class: java.lang.Object
{
private static final java.time.LocalDate DECEMBER_31_2019;
descriptor: Ljava/time/LocalDate;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Map<java.lang.String, java.time.LocalDate> EXEMPT_SUBCAS;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/time/LocalDate;>;
private static final java.util.Set<java.lang.String> FINGERPRINTS;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private static final java.time.LocalDate APRIL_16_2019;
descriptor: Ljava/time/LocalDate;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: sipush 2019
getstatic java.time.Month.DECEMBER:Ljava/time/Month;
bipush 31
invokestatic java.time.LocalDate.of:(ILjava/time/Month;I)Ljava/time/LocalDate;
1: putstatic sun.security.validator.SymantecTLSPolicy.DECEMBER_31_2019:Ljava/time/LocalDate;
2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic sun.security.validator.SymantecTLSPolicy.EXEMPT_SUBCAS:Ljava/util/Map;
3: getstatic sun.security.validator.SymantecTLSPolicy.EXEMPT_SUBCAS:Ljava/util/Map;
ldc "AC2B922ECFD5E01711772FEA8ED372DE9D1E2245FCE3F57A9CDBEC77296A424B"
4: getstatic sun.security.validator.SymantecTLSPolicy.DECEMBER_31_2019:Ljava/time/LocalDate;
5: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: getstatic sun.security.validator.SymantecTLSPolicy.EXEMPT_SUBCAS:Ljava/util/Map;
ldc "A4FE7C7F15155F3F0AEF7AAA83CF6E06DEB97CA3F909DF920AC1490882D488ED"
7: getstatic sun.security.validator.SymantecTLSPolicy.DECEMBER_31_2019:Ljava/time/LocalDate;
8: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: new java.util.HashSet
dup
bipush 16
anewarray java.lang.String
dup
iconst_0
10: ldc "FF856A2D251DCD88D36656F450126798CFABAADE40799C722DE4D2B5DB36A73A"
aastore
dup
iconst_1
11: ldc "37D51006C512EAAB626421F1EC8C92013FC5F82AE98EE533EB4619B8DEB4D06C"
aastore
dup
iconst_2
12: ldc "5EDB7AC43B82A06A8761E8D7BE4979EBF2611F7DD79BF91C1C6B566A219ED766"
aastore
dup
iconst_3
13: ldc "B478B812250DF878635C2AA7EC7D155EAA625EE82916E2CD294361886CD1FBD4"
aastore
dup
iconst_4
14: ldc "A0459B9F63B22559F5FA5D4C6DB3F9F72FF19342033578F073BF1D1B46CBB912"
aastore
dup
iconst_5
15: ldc "8D722F81A9C113C0791DF136A2966DB26C950A971DB46B4199F4EA54B78BFB9F"
aastore
dup
bipush 6
16: ldc "A4310D50AF18A6447190372A86AFAF8B951FFB431D837F1E5688B45971ED1557"
aastore
dup
bipush 7
17: ldc "4B03F45807AD70F21BFC2CAE71C9FDE4604C064CF5FFB686BAE5DBAAD7FDD34C"
aastore
dup
bipush 8
18: ldc "3F9F27D583204B9E09C8A3D2066C4B57D3A2479C3693650880505698105DBCE9"
aastore
dup
bipush 9
19: ldc "3A43E220FE7F3EA9653D1E21742EAC2B75C20FD8980305BC502CAF8C2D9B41A1"
aastore
dup
bipush 10
20: ldc "A4B6B3996FC2F306B3FD8681BD63413D8C5009CC4FA329C2CCF0E2FA1B140305"
aastore
dup
bipush 11
21: ldc "83CE3C1229688A593D485F81973C0F9195431EDA37CC5E36430E79C7A888638B"
aastore
dup
bipush 12
22: ldc "EB04CF5EB1F39AFA762F2BB120F296CBA520C1B97DB1589565B81CB9A17B7244"
aastore
dup
bipush 13
23: ldc "69DDD7EA90BB57C93E135DC85EA6FCD5480B603239BDC454FC758B2A26CF7F79"
aastore
dup
bipush 14
24: ldc "9ACFAB7E43C8D880D06B262A94DEEEE4B4659989C3D0CAF19BAF6405E41AB7DF"
aastore
dup
bipush 15
25: ldc "2399561127A57125DE8CEFEA610DDF2FA078B5C8067F4E828290BFB860E84B3C"
aastore
26: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putstatic sun.security.validator.SymantecTLSPolicy.FINGERPRINTS:Ljava/util/Set;
27: sipush 2019
getstatic java.time.Month.APRIL:Ljava/time/Month;
bipush 16
invokestatic java.time.LocalDate.of:(ILjava/time/Month;I)Ljava/time/LocalDate;
28: putstatic sun.security.validator.SymantecTLSPolicy.APRIL_16_2019:Ljava/time/LocalDate;
29: return
LocalVariableTable:
Start End Slot Name Signature
static void checkDistrust(java.security.cert.X509Certificate[]);
descriptor: ([Ljava/security/cert/X509Certificate;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
aload 0
arraylength
iconst_1
isub
aaload
astore 1
start local 1 1: getstatic sun.security.validator.SymantecTLSPolicy.FINGERPRINTS:Ljava/util/Set;
aload 1
invokestatic sun.security.validator.SymantecTLSPolicy.fingerprint:(Ljava/security/cert/X509Certificate;)Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 11
2: aload 0
iconst_0
aaload
invokevirtual java.security.cert.X509Certificate.getNotBefore:()Ljava/util/Date;
astore 2
start local 2 3: aload 2
invokevirtual java.util.Date.toInstant:()Ljava/time/Instant;
getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
invokevirtual java.time.Instant.atZone:(Ljava/time/ZoneId;)Ljava/time/ZonedDateTime;
invokevirtual java.time.ZonedDateTime.toLocalDate:()Ljava/time/LocalDate;
astore 3
start local 3 4: aload 0
arraylength
iconst_2
if_icmple 10
5: aload 0
aload 0
arraylength
iconst_2
isub
aaload
astore 4
start local 4 6: getstatic sun.security.validator.SymantecTLSPolicy.EXEMPT_SUBCAS:Ljava/util/Map;
aload 4
invokestatic sun.security.validator.SymantecTLSPolicy.fingerprint:(Ljava/security/cert/X509Certificate;)Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.time.LocalDate
astore 5
start local 5 7: aload 5
ifnull 10
8: aload 3
aload 5
aload 1
invokestatic sun.security.validator.SymantecTLSPolicy.checkNotBefore:(Ljava/time/LocalDate;Ljava/time/LocalDate;Ljava/security/cert/X509Certificate;)V
9: return
end local 5 end local 4 10: StackMap locals: java.security.cert.X509Certificate java.util.Date java.time.LocalDate
StackMap stack:
aload 3
getstatic sun.security.validator.SymantecTLSPolicy.APRIL_16_2019:Ljava/time/LocalDate;
aload 1
invokestatic sun.security.validator.SymantecTLSPolicy.checkNotBefore:(Ljava/time/LocalDate;Ljava/time/LocalDate;Ljava/security/cert/X509Certificate;)V
end local 3 end local 2 11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 chain [Ljava/security/cert/X509Certificate;
1 12 1 anchor Ljava/security/cert/X509Certificate;
3 11 2 notBefore Ljava/util/Date;
4 11 3 ldNotBefore Ljava/time/LocalDate;
6 10 4 subCA Ljava/security/cert/X509Certificate;
7 10 5 distrustDate Ljava/time/LocalDate;
Exceptions:
throws sun.security.validator.ValidatorException
MethodParameters:
Name Flags
chain
private static java.lang.String fingerprint(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
instanceof sun.security.x509.X509CertImpl
ifeq 2
1: aload 0
checkcast sun.security.x509.X509CertImpl
ldc "SHA-256"
invokevirtual sun.security.x509.X509CertImpl.getFingerprint:(Ljava/lang/String;)Ljava/lang/String;
goto 3
2: StackMap locals:
StackMap stack:
ldc "SHA-256"
aload 0
invokestatic sun.security.x509.X509CertImpl.getFingerprint:(Ljava/lang/String;Ljava/security/cert/X509Certificate;)Ljava/lang/String;
3: StackMap locals:
StackMap stack: java.lang.String
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 cert Ljava/security/cert/X509Certificate;
MethodParameters:
Name Flags
cert
private static void checkNotBefore(java.time.LocalDate, java.time.LocalDate, java.security.cert.X509Certificate);
descriptor: (Ljava/time/LocalDate;Ljava/time/LocalDate;Ljava/security/cert/X509Certificate;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual java.time.LocalDate.isAfter:(Ljava/time/chrono/ChronoLocalDate;)Z
ifeq 8
1: new sun.security.validator.ValidatorException
dup
2: new java.lang.StringBuilder
dup
ldc "TLS Server certificate issued after "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
3: ldc " and anchored by a distrusted legacy Symantec root CA: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: aload 2
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
5: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: getstatic sun.security.validator.ValidatorException.T_UNTRUSTED_CERT:Ljava/lang/Object;
aload 2
7: invokespecial sun.security.validator.ValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/security/cert/X509Certificate;)V
athrow
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 notBeforeDate Ljava/time/LocalDate;
0 9 1 distrustDate Ljava/time/LocalDate;
0 9 2 anchor Ljava/security/cert/X509Certificate;
Exceptions:
throws sun.security.validator.ValidatorException
MethodParameters:
Name Flags
notBeforeDate
distrustDate
anchor
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/validator/SymantecTLSPolicy;
}
SourceFile: "SymantecTLSPolicy.java"