public class com.sun.jndi.ldap.sasl.TlsChannelBinding
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.jndi.ldap.sasl.TlsChannelBinding
super_class: java.lang.Object
{
public static final java.lang.String CHANNEL_BINDING_TYPE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "com.sun.jndi.ldap.tls.cbtype"
public static final java.lang.String CHANNEL_BINDING;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "jdk.internal.sasl.tlschannelbinding"
private final com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType cbType;
descriptor: Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final byte[] cbData;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public static com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType parseType(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 4
1: aload 0
getstatic com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType.TLS_SERVER_END_POINT:Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
invokevirtual com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
2: getstatic com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType.TLS_SERVER_END_POINT:Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
areturn
3: StackMap locals:
StackMap stack:
new javax.naming.NamingException
dup
ldc "Illegal value for com.sun.jndi.ldap.tls.cbtype property."
invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 cbType Ljava/lang/String;
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
cbType
public static com.sun.jndi.ldap.sasl.TlsChannelBinding create(java.security.cert.X509Certificate);
descriptor: (Ljava/security/cert/X509Certificate;)Lcom/sun/jndi/ldap/sasl/TlsChannelBinding;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: getstatic com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType.TLS_SERVER_END_POINT:Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
invokevirtual com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType.getName:()Ljava/lang/String;
ldc ":"
invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
1: astore 1
start local 1 2: aload 0
invokevirtual java.security.cert.X509Certificate.getSigAlgName:()Ljava/lang/String;
3: ldc "SHA"
ldc "SHA-"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
4: astore 2
start local 2 5: aload 2
ldc "WITH"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 3
start local 3 6: iload 3
ifle 11
7: aload 2
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
8: aload 2
ldc "MD5"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
aload 2
ldc "SHA-1"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
9: StackMap locals: byte[] java.lang.String int
StackMap stack:
ldc "SHA-256"
astore 2
10: goto 12
11: StackMap locals:
StackMap stack:
ldc "SHA-256"
astore 2
12: StackMap locals:
StackMap stack:
aload 2
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 4
start local 4 13: aload 4
aload 0
invokevirtual java.security.cert.X509Certificate.getEncoded:()[B
invokevirtual java.security.MessageDigest.digest:([B)[B
astore 5
start local 5 14: aload 1
aload 1
arraylength
aload 5
arraylength
iadd
invokestatic java.util.Arrays.copyOf:([BI)[B
astore 6
start local 6 15: aload 5
iconst_0
aload 6
aload 1
arraylength
aload 5
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
16: new com.sun.jndi.ldap.sasl.TlsChannelBinding
dup
getstatic com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType.TLS_SERVER_END_POINT:Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
aload 6
invokespecial com.sun.jndi.ldap.sasl.TlsChannelBinding.<init>:(Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;[B)V
17: areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 18: StackMap locals: java.security.cert.X509Certificate
StackMap stack: java.security.GeneralSecurityException
astore 1
start local 1 19: new javax.security.sasl.SaslException
dup
ldc "Cannot create TLS channel binding data"
aload 1
invokespecial javax.security.sasl.SaslException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 serverCertificate Ljava/security/cert/X509Certificate;
2 18 1 prefix [B
5 18 2 hashAlg Ljava/lang/String;
6 18 3 ind I
13 18 4 md Ljava/security/MessageDigest;
14 18 5 hash [B
15 18 6 cbData [B
19 20 1 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
0 17 18 Class java.security.NoSuchAlgorithmException
0 17 18 Class java.security.cert.CertificateEncodingException
Exceptions:
throws javax.security.sasl.SaslException
MethodParameters:
Name Flags
serverCertificate
private void <init>(com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType, byte[]);
descriptor: (Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;[B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, 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 0
aload 1
putfield com.sun.jndi.ldap.sasl.TlsChannelBinding.cbType:Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
2: aload 0
aload 2
putfield com.sun.jndi.ldap.sasl.TlsChannelBinding.cbData:[B
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/jndi/ldap/sasl/TlsChannelBinding;
0 4 1 cbType Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
0 4 2 cbData [B
MethodParameters:
Name Flags
cbType
cbData
public com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType getType();
descriptor: ()Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.jndi.ldap.sasl.TlsChannelBinding.cbType:Lcom/sun/jndi/ldap/sasl/TlsChannelBinding$TlsChannelBindingType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jndi/ldap/sasl/TlsChannelBinding;
public byte[] getData();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.jndi.ldap.sasl.TlsChannelBinding.cbData:[B
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jndi/ldap/sasl/TlsChannelBinding;
}
SourceFile: "TlsChannelBinding.java"
NestMembers:
com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType
InnerClasses:
public final TlsChannelBindingType = com.sun.jndi.ldap.sasl.TlsChannelBinding$TlsChannelBindingType of com.sun.jndi.ldap.sasl.TlsChannelBinding