class com.sun.net.ssl.internal.www.protocol.https.VerifierWrapper implements javax.net.ssl.HostnameVerifier
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.net.ssl.internal.www.protocol.https.VerifierWrapper
super_class: java.lang.Object
{
private com.sun.net.ssl.HostnameVerifier verifier;
descriptor: Lcom/sun/net/ssl/HostnameVerifier;
flags: (0x0002) ACC_PRIVATE
void <init>(com.sun.net.ssl.HostnameVerifier);
descriptor: (Lcom/sun/net/ssl/HostnameVerifier;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.sun.net.ssl.internal.www.protocol.https.VerifierWrapper.verifier:Lcom/sun/net/ssl/HostnameVerifier;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/net/ssl/internal/www/protocol/https/VerifierWrapper;
0 3 1 verifier Lcom/sun/net/ssl/HostnameVerifier;
MethodParameters:
Name Flags
verifier
public boolean verify(java.lang.String, javax.net.ssl.SSLSession);
descriptor: (Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
ldc "TLS_KRB5"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 4
1: aload 0
aload 2
invokevirtual com.sun.net.ssl.internal.www.protocol.https.VerifierWrapper.getPeerPrincipal:(Ljavax/net/ssl/SSLSession;)Ljava/security/Principal;
invokestatic sun.security.util.HostnameChecker.getServerName:(Ljava/security/Principal;)Ljava/lang/String;
2: astore 3
start local 3 3: goto 11
end local 3 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface javax.net.ssl.SSLSession.getPeerCertificates:()[Ljava/security/cert/Certificate;
astore 4
start local 4 5: aload 4
ifnull 6
aload 4
arraylength
ifne 7
6: StackMap locals: com.sun.net.ssl.internal.www.protocol.https.VerifierWrapper java.lang.String javax.net.ssl.SSLSession top java.security.cert.Certificate[]
StackMap stack:
iconst_0
ireturn
7: StackMap locals:
StackMap stack:
aload 4
iconst_0
aaload
instanceof java.security.cert.X509Certificate
ifne 9
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 4
iconst_0
aaload
checkcast java.security.cert.X509Certificate
astore 5
start local 5 10: aload 5
invokestatic com.sun.net.ssl.internal.www.protocol.https.VerifierWrapper.getServername:(Ljava/security/cert/X509Certificate;)Ljava/lang/String;
astore 3
end local 5 end local 4 start local 3 11: StackMap locals: com.sun.net.ssl.internal.www.protocol.https.VerifierWrapper java.lang.String javax.net.ssl.SSLSession java.lang.String
StackMap stack:
aload 3
ifnonnull 13
12: iconst_0
ireturn
13: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.net.ssl.internal.www.protocol.https.VerifierWrapper.verifier:Lcom/sun/net/ssl/HostnameVerifier;
aload 1
aload 3
invokeinterface com.sun.net.ssl.HostnameVerifier.verify:(Ljava/lang/String;Ljava/lang/String;)Z
14: ireturn
end local 3 15: StackMap locals: com.sun.net.ssl.internal.www.protocol.https.VerifierWrapper java.lang.String javax.net.ssl.SSLSession
StackMap stack: javax.net.ssl.SSLPeerUnverifiedException
pop
16: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/net/ssl/internal/www/protocol/https/VerifierWrapper;
0 17 1 hostname Ljava/lang/String;
0 17 2 session Ljavax/net/ssl/SSLSession;
3 4 3 serverName Ljava/lang/String;
11 15 3 serverName Ljava/lang/String;
5 11 4 serverChain [Ljava/security/cert/Certificate;
10 11 5 serverCert Ljava/security/cert/X509Certificate;
Exception table:
from to target type
0 6 15 Class javax.net.ssl.SSLPeerUnverifiedException
7 8 15 Class javax.net.ssl.SSLPeerUnverifiedException
9 12 15 Class javax.net.ssl.SSLPeerUnverifiedException
13 14 15 Class javax.net.ssl.SSLPeerUnverifiedException
MethodParameters:
Name Flags
hostname
session
private java.security.Principal getPeerPrincipal(javax.net.ssl.SSLSession);
descriptor: (Ljavax/net/ssl/SSLSession;)Ljava/security/Principal;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface javax.net.ssl.SSLSession.getPeerPrincipal:()Ljava/security/Principal;
astore 2
start local 2 1: goto 4
end local 2 StackMap locals:
StackMap stack: java.lang.AbstractMethodError
2: pop
3: aconst_null
astore 2
start local 2 4: StackMap locals: java.security.Principal
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/net/ssl/internal/www/protocol/https/VerifierWrapper;
0 5 1 session Ljavax/net/ssl/SSLSession;
1 2 2 principal Ljava/security/Principal;
4 5 2 principal Ljava/security/Principal;
Exception table:
from to target type
0 1 2 Class java.lang.AbstractMethodError
Exceptions:
throws javax.net.ssl.SSLPeerUnverifiedException
MethodParameters:
Name Flags
session
private static java.lang.String getServername(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual java.security.cert.X509Certificate.getSubjectAlternativeNames:()Ljava/util/Collection;
astore 1
start local 1 1: aload 1
ifnull 10
2: aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 2
start local 2 3: goto 9
4: StackMap locals: java.util.Collection java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 5: aload 3
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
iconst_2
if_icmpne 9
6: aload 3
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 7: aload 4
8: areturn
end local 4 end local 3 9: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 2 10: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.security.util.HostnameChecker.getSubjectX500Name:(Ljava/security/cert/X509Certificate;)Lsun/security/x509/X500Name;
astore 2
start local 2 11: aload 2
12: getstatic sun.security.x509.X500Name.commonName_oid:Lsun/security/util/ObjectIdentifier;
13: invokevirtual sun.security.x509.X500Name.findMostSpecificAttribute:(Lsun/security/util/ObjectIdentifier;)Lsun/security/util/DerValue;
astore 3
start local 3 14: aload 3
ifnull 21
15: aload 3
invokevirtual sun.security.util.DerValue.getAsString:()Ljava/lang/String;
astore 4
start local 4 16: aload 4
17: areturn
end local 4 18: StackMap locals: java.security.cert.X509Certificate java.util.Collection sun.security.x509.X500Name sun.security.util.DerValue
StackMap stack: java.io.IOException
pop
end local 3 end local 2 end local 1 19: goto 21
StackMap locals: java.security.cert.X509Certificate
StackMap stack: java.security.cert.CertificateException
20: pop
21: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 peerCert Ljava/security/cert/X509Certificate;
1 19 1 subjAltNames Ljava/util/Collection<Ljava/util/List<*>;>;
3 10 2 itr Ljava/util/Iterator<Ljava/util/List<*>;>;
5 9 3 next Ljava/util/List<*>;
7 9 4 dnsName Ljava/lang/String;
11 19 2 subject Lsun/security/x509/X500Name;
14 19 3 derValue Lsun/security/util/DerValue;
16 18 4 name Ljava/lang/String;
Exception table:
from to target type
15 17 18 Class java.io.IOException
0 8 20 Class java.security.cert.CertificateException
9 17 20 Class java.security.cert.CertificateException
18 19 20 Class java.security.cert.CertificateException
MethodParameters:
Name Flags
peerCert
}
SourceFile: "DelegateHttpsURLConnection.java"