public class sun.security.provider.certpath.X509CertificatePair
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.security.provider.certpath.X509CertificatePair
super_class: java.lang.Object
{
private static final byte TAG_FORWARD;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final byte TAG_REVERSE;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private java.security.cert.X509Certificate forward;
descriptor: Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
private java.security.cert.X509Certificate reverse;
descriptor: Ljava/security/cert/X509Certificate;
flags: (0x0002) ACC_PRIVATE
private byte[] encoded;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private static final sun.security.util.Cache<java.lang.Object, sun.security.provider.certpath.X509CertificatePair> cache;
descriptor: Lsun/security/util/Cache;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lsun/security/util/Cache<Ljava/lang/Object;Lsun/security/provider/certpath/X509CertificatePair;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: sipush 750
invokestatic sun.security.util.Cache.newSoftMemoryCache:(I)Lsun/security/util/Cache;
1: putstatic sun.security.provider.certpath.X509CertificatePair.cache:Lsun/security/util/Cache;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
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/provider/certpath/X509CertificatePair;
public void <init>(java.security.cert.X509Certificate, java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;Ljava/security/cert/X509Certificate;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
ifnonnull 3
aload 2
ifnonnull 3
2: new java.security.cert.CertificateException
dup
ldc "at least one of certificate pair must be non-null"
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: sun.security.provider.certpath.X509CertificatePair java.security.cert.X509Certificate java.security.cert.X509Certificate
StackMap stack:
aload 0
aload 1
putfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
4: aload 0
aload 2
putfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
5: aload 0
invokevirtual sun.security.provider.certpath.X509CertificatePair.checkPair:()V
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/provider/certpath/X509CertificatePair;
0 7 1 forward Ljava/security/cert/X509Certificate;
0 7 2 reverse Ljava/security/cert/X509Certificate;
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
forward
reverse
private void <init>(byte[]);
descriptor: ([B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new sun.security.util.DerValue
dup
aload 1
invokespecial sun.security.util.DerValue.<init>:([B)V
invokevirtual sun.security.provider.certpath.X509CertificatePair.parse:(Lsun/security/util/DerValue;)V
2: aload 0
aload 1
putfield sun.security.provider.certpath.X509CertificatePair.encoded:[B
3: goto 6
StackMap locals: sun.security.provider.certpath.X509CertificatePair byte[]
StackMap stack: java.io.IOException
4: astore 2
start local 2 5: new java.security.cert.CertificateException
dup
aload 2
invokevirtual java.io.IOException.toString:()Ljava/lang/String;
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
end local 2 6: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.provider.certpath.X509CertificatePair.checkPair:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/provider/certpath/X509CertificatePair;
0 8 1 encoded [B
5 6 2 ex Ljava/io/IOException;
Exception table:
from to target type
1 3 4 Class java.io.IOException
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
encoded
public static synchronized void clearCache();
descriptor: ()V
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.security.provider.certpath.X509CertificatePair.cache:Lsun/security/util/Cache;
invokevirtual sun.security.util.Cache.clear:()V
1: return
LocalVariableTable:
Start End Slot Name Signature
public static synchronized sun.security.provider.certpath.X509CertificatePair generateCertificatePair(byte[]);
descriptor: ([B)Lsun/security/provider/certpath/X509CertificatePair;
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: new sun.security.util.Cache$EqualByteArray
dup
aload 0
invokespecial sun.security.util.Cache$EqualByteArray.<init>:([B)V
astore 1
start local 1 1: getstatic sun.security.provider.certpath.X509CertificatePair.cache:Lsun/security/util/Cache;
aload 1
invokevirtual sun.security.util.Cache.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.security.provider.certpath.X509CertificatePair
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 2
areturn
4: StackMap locals: java.lang.Object sun.security.provider.certpath.X509CertificatePair
StackMap stack:
new sun.security.provider.certpath.X509CertificatePair
dup
aload 0
invokespecial sun.security.provider.certpath.X509CertificatePair.<init>:([B)V
astore 2
5: new sun.security.util.Cache$EqualByteArray
dup
aload 2
getfield sun.security.provider.certpath.X509CertificatePair.encoded:[B
invokespecial sun.security.util.Cache$EqualByteArray.<init>:([B)V
astore 1
6: getstatic sun.security.provider.certpath.X509CertificatePair.cache:Lsun/security/util/Cache;
aload 1
aload 2
invokevirtual sun.security.util.Cache.put:(Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 encoded [B
1 8 1 key Ljava/lang/Object;
2 8 2 pair Lsun/security/provider/certpath/X509CertificatePair;
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
encoded
public void setForward(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.provider.certpath.X509CertificatePair.checkPair:()V
1: aload 0
aload 1
putfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/certpath/X509CertificatePair;
0 3 1 cert Ljava/security/cert/X509Certificate;
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
cert
public void setReverse(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.provider.certpath.X509CertificatePair.checkPair:()V
1: aload 0
aload 1
putfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/provider/certpath/X509CertificatePair;
0 3 1 cert Ljava/security/cert/X509Certificate;
Exceptions:
throws java.security.cert.CertificateException
MethodParameters:
Name Flags
cert
public java.security.cert.X509Certificate getForward();
descriptor: ()Ljava/security/cert/X509Certificate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/certpath/X509CertificatePair;
public java.security.cert.X509Certificate getReverse();
descriptor: ()Ljava/security/cert/X509Certificate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/provider/certpath/X509CertificatePair;
public byte[] getEncoded();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.encoded:[B
ifnonnull 7
1: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 1
start local 1 2: aload 0
aload 1
invokevirtual sun.security.provider.certpath.X509CertificatePair.emit:(Lsun/security/util/DerOutputStream;)V
3: aload 0
aload 1
invokevirtual sun.security.util.DerOutputStream.toByteArray:()[B
putfield sun.security.provider.certpath.X509CertificatePair.encoded:[B
end local 1 4: goto 7
StackMap locals:
StackMap stack: java.io.IOException
5: astore 1
start local 1 6: new java.security.cert.CertificateEncodingException
dup
aload 1
invokevirtual java.io.IOException.toString:()Ljava/lang/String;
invokespecial java.security.cert.CertificateEncodingException.<init>:(Ljava/lang/String;)V
athrow
end local 1 7: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.encoded:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/provider/certpath/X509CertificatePair;
2 4 1 tmp Lsun/security/util/DerOutputStream;
6 7 1 ex Ljava/io/IOException;
Exception table:
from to target type
0 4 5 Class java.io.IOException
Exceptions:
throws java.security.cert.CertificateEncodingException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
ldc "X.509 Certificate Pair: [\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
ifnull 4
3: aload 1
ldc " Forward: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
ifnull 6
5: aload 1
ldc " Reverse: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: StackMap locals:
StackMap stack:
aload 1
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/security/provider/certpath/X509CertificatePair;
1 8 1 sb Ljava/lang/StringBuilder;
private void parse(sun.security.util.DerValue);
descriptor: (Lsun/security/util/DerValue;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getfield sun.security.util.DerValue.tag:B
bipush 48
if_icmpeq 24
1: new java.io.IOException
dup
2: ldc "Sequence tag missing for X509CertificatePair"
3: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
astore 2
start local 2 5: aload 2
getfield sun.security.util.DerValue.tag:B
bipush 31
iand
i2b
istore 3
start local 3 6: iload 3
tableswitch { // 0 - 1
0: 7
1: 15
default: 23
}
7: StackMap locals: sun.security.util.DerValue int
StackMap stack:
aload 2
invokevirtual sun.security.util.DerValue.isContextSpecific:()Z
ifeq 24
aload 2
invokevirtual sun.security.util.DerValue.isConstructed:()Z
ifeq 24
8: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
ifnull 10
9: new java.io.IOException
dup
ldc "Duplicate forward certificate in X509CertificatePair"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
astore 2
11: aload 0
12: new sun.security.x509.X509CertImpl
dup
aload 2
invokevirtual sun.security.util.DerValue.toByteArray:()[B
invokespecial sun.security.x509.X509CertImpl.<init>:([B)V
13: invokestatic sun.security.provider.X509Factory.intern:(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
putfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
14: goto 24
15: StackMap locals:
StackMap stack:
aload 2
invokevirtual sun.security.util.DerValue.isContextSpecific:()Z
ifeq 24
aload 2
invokevirtual sun.security.util.DerValue.isConstructed:()Z
ifeq 24
16: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
ifnull 18
17: new java.io.IOException
dup
ldc "Duplicate reverse certificate in X509CertificatePair"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 2
getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
invokevirtual sun.security.util.DerInputStream.getDerValue:()Lsun/security/util/DerValue;
astore 2
19: aload 0
20: new sun.security.x509.X509CertImpl
dup
aload 2
invokevirtual sun.security.util.DerValue.toByteArray:()[B
invokespecial sun.security.x509.X509CertImpl.<init>:([B)V
21: invokestatic sun.security.provider.X509Factory.intern:(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X509CertImpl;
putfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
22: goto 24
23: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Invalid encoding of X509CertificatePair"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 24: StackMap locals:
StackMap stack:
aload 1
getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
ifnull 25
aload 1
getfield sun.security.util.DerValue.data:Lsun/security/util/DerInputStream;
invokevirtual sun.security.util.DerInputStream.available:()I
ifne 4
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
ifnonnull 27
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
ifnonnull 27
26: new java.security.cert.CertificateException
dup
ldc "at least one of certificate pair must be non-null"
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/security/provider/certpath/X509CertificatePair;
0 28 1 val Lsun/security/util/DerValue;
5 24 2 opt Lsun/security/util/DerValue;
6 24 3 tag S
Exceptions:
throws java.io.IOException, java.security.cert.CertificateException
MethodParameters:
Name Flags
val
private void emit(sun.security.util.DerOutputStream);
descriptor: (Lsun/security/util/DerOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 2
start local 2 1: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
ifnull 9
2: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 3
start local 3 3: aload 3
new sun.security.util.DerValue
dup
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getEncoded:()[B
invokespecial sun.security.util.DerValue.<init>:([B)V
invokevirtual sun.security.util.DerOutputStream.putDerValue:(Lsun/security/util/DerValue;)V
4: aload 2
bipush -128
5: iconst_1
iconst_0
6: invokestatic sun.security.util.DerValue.createTag:(BZB)B
7: aload 3
8: invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
end local 3 9: StackMap locals: sun.security.util.DerOutputStream
StackMap stack:
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
ifnull 17
10: new sun.security.util.DerOutputStream
dup
invokespecial sun.security.util.DerOutputStream.<init>:()V
astore 3
start local 3 11: aload 3
new sun.security.util.DerValue
dup
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getEncoded:()[B
invokespecial sun.security.util.DerValue.<init>:([B)V
invokevirtual sun.security.util.DerOutputStream.putDerValue:(Lsun/security/util/DerValue;)V
12: aload 2
bipush -128
13: iconst_1
iconst_1
14: invokestatic sun.security.util.DerValue.createTag:(BZB)B
15: aload 3
16: invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
end local 3 17: StackMap locals:
StackMap stack:
aload 1
bipush 48
aload 2
invokevirtual sun.security.util.DerOutputStream.write:(BLsun/security/util/DerOutputStream;)V
18: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lsun/security/provider/certpath/X509CertificatePair;
0 19 1 out Lsun/security/util/DerOutputStream;
1 19 2 tagged Lsun/security/util/DerOutputStream;
3 9 3 tmp Lsun/security/util/DerOutputStream;
11 17 3 tmp Lsun/security/util/DerOutputStream;
Exceptions:
throws java.io.IOException, java.security.cert.CertificateEncodingException
MethodParameters:
Name Flags
out
private void checkPair();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
ifnull 1
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
ifnonnull 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 1
start local 1 3: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 2
start local 2 4: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 3
start local 3 5: aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 4
start local 4 6: aload 2
aload 3
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifeq 7
aload 4
aload 1
invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
ifne 8
7: StackMap locals: sun.security.provider.certpath.X509CertificatePair javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal
StackMap stack:
new java.security.cert.CertificateException
dup
ldc "subject and issuer names in forward and reverse certificates do not match"
invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 5
start local 5 9: aload 5
instanceof java.security.interfaces.DSAPublicKey
ifeq 11
10: aload 5
checkcast java.security.interfaces.DSAPublicKey
invokeinterface java.security.interfaces.DSAPublicKey.getParams:()Ljava/security/interfaces/DSAParams;
ifnull 12
11: StackMap locals: java.security.PublicKey
StackMap stack:
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
aload 5
invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.forward:Ljava/security/cert/X509Certificate;
invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
astore 5
13: aload 5
instanceof java.security.interfaces.DSAPublicKey
ifeq 15
14: aload 5
checkcast java.security.interfaces.DSAPublicKey
invokeinterface java.security.interfaces.DSAPublicKey.getParams:()Ljava/security/interfaces/DSAParams;
ifnull 21
15: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.provider.certpath.X509CertificatePair.reverse:Ljava/security/cert/X509Certificate;
aload 5
invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;)V
end local 5 16: goto 21
StackMap locals: sun.security.provider.certpath.X509CertificatePair javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal javax.security.auth.x500.X500Principal
StackMap stack: java.security.GeneralSecurityException
17: astore 5
start local 5 18: new java.security.cert.CertificateException
dup
new java.lang.StringBuilder
dup
ldc "invalid signature: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
19: aload 5
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;
20: invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
athrow
end local 5 21: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/security/provider/certpath/X509CertificatePair;
3 22 1 fwSubject Ljavax/security/auth/x500/X500Principal;
4 22 2 fwIssuer Ljavax/security/auth/x500/X500Principal;
5 22 3 rvSubject Ljavax/security/auth/x500/X500Principal;
6 22 4 rvIssuer Ljavax/security/auth/x500/X500Principal;
9 16 5 pk Ljava/security/PublicKey;
18 21 5 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
8 16 17 Class java.security.GeneralSecurityException
Exceptions:
throws java.security.cert.CertificateException
}
SourceFile: "X509CertificatePair.java"
InnerClasses:
public EqualByteArray = sun.security.util.Cache$EqualByteArray of sun.security.util.Cache