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=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 0
getfield sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.this$0:Lsun/security/provider/certpath/ReverseBuilder;
getfield sun.security.provider.certpath.ReverseBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
aload 0
getfield sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.this$0:Lsun/security/provider/certpath/ReverseBuilder;
getfield sun.security.provider.certpath.ReverseBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.this$0:Lsun/security/provider/certpath/ReverseBuilder;
getfield sun.security.provider.certpath.ReverseBuilder.targetSubjectDN:Ljavax/security/auth/x500/X500Principal;
invokestatic sun.security.x509.X500Name.asX500Name:(Ljavax/security/auth/x500/X500Principal;)Lsun/security/x509/X500Name;
astore 5
start local 5 5: aconst_null
aload 1
aload 5
6: invokestatic sun.security.provider.certpath.Builder.targetDistance:(Lsun/security/x509/NameConstraintsExtension;Ljava/security/cert/X509Certificate;Lsun/security/x509/GeneralNameInterface;)I
istore 3
start local 3 7: aconst_null
aload 2
aload 5
8: invokestatic sun.security.provider.certpath.Builder.targetDistance:(Lsun/security/x509/NameConstraintsExtension;Ljava/security/cert/X509Certificate;Lsun/security/x509/GeneralNameInterface;)I
istore 4
end local 5 start local 4 9: goto 17
end local 4 end local 3 StackMap locals:
StackMap stack: java.io.IOException
10: astore 5
start local 5 11: aload 0
getfield sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator.debug:Lsun/security/util/Debug;
ifnull 14
12: 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
13: aload 5
invokevirtual java.io.IOException.printStackTrace:()V
14: StackMap locals: sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate top top java.io.IOException
StackMap stack:
new java.lang.ClassCastException
dup
15: ldc "Invalid target subject distinguished name"
16: invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
end local 5 start local 3 start local 4 17: StackMap locals: sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator java.security.cert.X509Certificate java.security.cert.X509Certificate int int
StackMap stack:
iload 3
iload 4
if_icmpne 19
18: iconst_0
ireturn
19: StackMap locals:
StackMap stack:
iload 3
iconst_m1
if_icmpne 21
20: iconst_1
ireturn
21: StackMap locals:
StackMap stack:
iload 3
iload 4
if_icmpge 23
22: iconst_m1
ireturn
23: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/security/provider/certpath/ReverseBuilder$PKIXCertComparator;
0 24 1 cert1 Ljava/security/cert/X509Certificate;
0 24 2 cert2 Ljava/security/cert/X509Certificate;
7 10 3 targetDist1 I
17 24 3 targetDist1 I
9 10 4 targetDist2 I
17 24 4 targetDist2 I
5 9 5 targetSubjectName Lsun/security/x509/X500Name;
11 17 5 e Ljava/io/IOException;
Exception table:
from to target type
4 9 10 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:
PKIXCertComparator = sun.security.provider.certpath.ReverseBuilder$PKIXCertComparator of sun.security.provider.certpath.ReverseBuilder