class sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator implements java.util.Comparator<java.security.cert.X509Certificate>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator
super_class: java.lang.Object
{
private sun.security.util.Debug debug;
descriptor: Lsun/security/util/Debug;
flags: (0x0002) ACC_PRIVATE
final sun.security.provider.certpath.ReverseBuilder this$0;
descriptor: Lsun/security/provider/certpath/ReverseBuilder;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(sun.security.provider.certpath.ReverseBuilder);
descriptor: (Lsun/security/provider/certpath/ReverseBuilder;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.this$0:Lsun/security/provider/certpath/ReverseBuilder;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc "certpath"
invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
putfield sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.debug:Lsun/security/util/Debug;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/certpath/ReverseBuilder$PKIXCertComparator;
MethodParameters:
Name Flags
this$0 final
public int compare(java.security.cert.X509Certificate, java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.this$0:Lsun/security/provider/certpath/ReverseBuilder;
getfield sun.security.provider.certpath.ReverseBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.targetSubject:()Ljavax/security/auth/x500/X500Principal;
astore 3
start local 3 1: aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 3
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 3
2: iconst_m1
ireturn
3: StackMap locals: javax.security.auth.x500.X500Principal
StackMap stack:
aload 2
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 3
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 5
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
aload 3
invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
astore 6
start local 6 6: aconst_null
aload 1
aload 6
7: invokestatic sun.security.provider.certpath.Builder.targetDistance:(Lsun/security/x509/NameConstraintsExtension;Ljava/security/cert/X509Certificate;Lsun/security/x509/GeneralNameInterface;)I
istore 4
start local 4 8: aconst_null
aload 2
aload 6
9: invokestatic sun.security.provider.certpath.Builder.targetDistance:(Lsun/security/x509/NameConstraintsExtension;Ljava/security/cert/X509Certificate;Lsun/security/x509/GeneralNameInterface;)I
istore 5
end local 6 start local 5 10: goto 18
end local 5 end local 4 StackMap locals:
StackMap stack: java.io.IOException
11: astore 6
start local 6 12: aload 0
getfield sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.debug:Lsun/security/util/Debug;
ifnull 15
13: aload 0
getfield sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.debug:Lsun/security/util/Debug;
ldc "IOException in call to Builder.targetDistance"
invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
14: aload 6
invokevirtual java.io.IOException.printStackTrace:()V
15: StackMap locals: sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal top top java.io.IOException
StackMap stack:
new java.lang.ClassCastException
dup
16: ldc "Invalid target subject distinguished name"
17: invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
end local 6 start local 4 start local 5 18: StackMap locals: sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate javax.security.auth.x500.X500Principal int int
StackMap stack:
iload 4
iload 5
if_icmpne 20
19: iconst_0
ireturn
20: StackMap locals:
StackMap stack:
iload 4
iconst_m1
if_icmpne 22
21: iconst_1
ireturn
22: StackMap locals:
StackMap stack:
iload 4
iload 5
if_icmpge 24
23: iconst_m1
ireturn
24: StackMap locals:
StackMap stack:
iconst_1
ireturn
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 25 0 this Lsun/security/provider/certpath/ReverseBuilder$PKIXCertComparator;
0 25 1 cert1 Ljava/security/cert/X509Certificate;
0 25 2 cert2 Ljava/security/cert/X509Certificate;
1 25 3 targetSubject Ljavax/security/auth/x500/X500Principal;
8 11 4 targetDist1 I
18 25 4 targetDist1 I
10 11 5 targetDist2 I
18 25 5 targetDist2 I
6 10 6 targetSubjectName Lsun/security/x509/X500Name;
12 18 6 e Ljava/io/IOException;
Exception table:
from to target type
5 10 11 Class java.io.IOException
MethodParameters:
Name Flags
cert1
cert2
public int compare(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.security.cert.X509Certificate
aload 2
checkcast java.security.cert.X509Certificate
invokevirtual sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.compare:(Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/Comparator<Ljava/security/cert/X509Certificate;>;
SourceFile: "ReverseBuilder.java"
NestHost: sun.security.provider.certpath.ReverseBuilder
InnerClasses:
BuilderParams = sun.security.provider.certpath.PKIX$BuilderParams of sun.security.provider.certpath.PKIX
PKIXCertComparator = sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator of sun.security.provider.certpath.ReverseBuilder