class org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider implements org.bouncycastle.est.ESTClientSourceProvider
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider
super_class: java.lang.Object
{
private final javax.net.ssl.SSLSocketFactory sslSocketFactory;
descriptor: Ljavax/net/ssl/SSLSocketFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bouncycastle.est.jcajce.JsseHostnameAuthorizer hostNameAuthorizer;
descriptor: Lorg/bouncycastle/est/jcajce/JsseHostnameAuthorizer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int timeout;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bouncycastle.est.jcajce.ChannelBindingProvider bindingProvider;
descriptor: Lorg/bouncycastle/est/jcajce/ChannelBindingProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.String> cipherSuites;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
private final java.lang.Long absoluteLimit;
descriptor: Ljava/lang/Long;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean filterSupportedSuites;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(javax.net.ssl.SSLSocketFactory, org.bouncycastle.est.jcajce.JsseHostnameAuthorizer, int, org.bouncycastle.est.jcajce.ChannelBindingProvider, java.util.Set<java.lang.String>, java.lang.Long, );
descriptor: (Ljavax/net/ssl/SSLSocketFactory;Lorg/bouncycastle/est/jcajce/JsseHostnameAuthorizer;ILorg/bouncycastle/est/jcajce/ChannelBindingProvider;Ljava/util/Set;Ljava/lang/Long;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.sslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
2: aload 0
aload 2
putfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.hostNameAuthorizer:Lorg/bouncycastle/est/jcajce/JsseHostnameAuthorizer;
3: aload 0
iload 3
putfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.timeout:I
4: aload 0
aload 4
putfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.bindingProvider:Lorg/bouncycastle/est/jcajce/ChannelBindingProvider;
5: aload 0
aload 5
putfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.cipherSuites:Ljava/util/Set;
6: aload 0
aload 6
putfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.absoluteLimit:Ljava/lang/Long;
7: aload 0
iload 7
putfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.filterSupportedSuites:Z
8: return
end local 7 end local 6 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 9 0 this Lorg/bouncycastle/est/jcajce/DefaultESTClientSourceProvider;
0 9 1 socketFactory Ljavax/net/ssl/SSLSocketFactory;
0 9 2 hostNameAuthorizer Lorg/bouncycastle/est/jcajce/JsseHostnameAuthorizer;
0 9 3 timeout I
0 9 4 bindingProvider Lorg/bouncycastle/est/jcajce/ChannelBindingProvider;
0 9 5 cipherSuites Ljava/util/Set<Ljava/lang/String;>;
0 9 6 absoluteLimit Ljava/lang/Long;
0 9 7 filterSupportedSuites Z
Exceptions:
throws java.security.GeneralSecurityException
Signature: (Ljavax/net/ssl/SSLSocketFactory;Lorg/bouncycastle/est/jcajce/JsseHostnameAuthorizer;ILorg/bouncycastle/est/jcajce/ChannelBindingProvider;Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/Long;Z)V
MethodParameters:
Name Flags
socketFactory
hostNameAuthorizer
timeout
bindingProvider
cipherSuites
absoluteLimit
filterSupportedSuites
public org.bouncycastle.est.Source makeSource(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Lorg/bouncycastle/est/Source;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.sslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
aload 1
iload 2
invokevirtual javax.net.ssl.SSLSocketFactory.createSocket:(Ljava/lang/String;I)Ljava/net/Socket;
checkcast javax.net.ssl.SSLSocket
astore 3
start local 3 1: aload 3
aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.timeout:I
invokevirtual javax.net.ssl.SSLSocket.setSoTimeout:(I)V
2: aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.cipherSuites:Ljava/util/Set;
ifnull 23
aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.cipherSuites:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifne 23
3: aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.filterSupportedSuites:Z
ifeq 22
4: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 4
start local 4 5: aload 3
invokevirtual javax.net.ssl.SSLSocket.getSupportedCipherSuites:()[Ljava/lang/String;
astore 5
start local 5 6: iconst_0
istore 6
start local 6 7: goto 10
8: StackMap locals: org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider java.lang.String int javax.net.ssl.SSLSocket java.util.HashSet java.lang.String[] int
StackMap stack:
aload 4
aload 5
iload 6
aaload
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
9: iinc 6 1
StackMap locals:
StackMap stack:
10: iload 6
aload 5
arraylength
if_icmpne 8
end local 6 11: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 12: aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.cipherSuites:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
start local 7 13: goto 17
14: StackMap locals: org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider java.lang.String int javax.net.ssl.SSLSocket java.util.HashSet java.lang.String[] java.util.List java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 15: aload 4
aload 8
invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
ifeq 17
16: aload 6
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 17: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 7 18: aload 6
invokeinterface java.util.List.isEmpty:()Z
ifeq 20
19: new java.lang.IllegalStateException
dup
ldc "No supplied cipher suite is supported by the provider."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 3
aload 6
aload 6
invokeinterface java.util.List.size:()I
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
invokevirtual javax.net.ssl.SSLSocket.setEnabledCipherSuites:([Ljava/lang/String;)V
end local 6 end local 5 end local 4 21: goto 23
22: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.cipherSuites:Ljava/util/Set;
aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.cipherSuites:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
anewarray java.lang.String
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
invokevirtual javax.net.ssl.SSLSocket.setEnabledCipherSuites:([Ljava/lang/String;)V
23: StackMap locals:
StackMap stack:
aload 3
invokevirtual javax.net.ssl.SSLSocket.startHandshake:()V
24: aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.hostNameAuthorizer:Lorg/bouncycastle/est/jcajce/JsseHostnameAuthorizer;
ifnull 27
25: aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.hostNameAuthorizer:Lorg/bouncycastle/est/jcajce/JsseHostnameAuthorizer;
aload 1
aload 3
invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface org.bouncycastle.est.jcajce.JsseHostnameAuthorizer.verified:(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z
ifne 27
26: new java.io.IOException
dup
ldc "Host name could not be verified."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 3
invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
invokestatic org.bouncycastle.util.Strings.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 28: aload 4
ldc "_des_"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 29
aload 4
ldc "_des40_"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifne 29
aload 4
ldc "_3des_"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 30
29: StackMap locals: java.lang.String
StackMap stack:
new java.io.IOException
dup
ldc "EST clients must not use DES ciphers"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 4 30: StackMap locals:
StackMap stack:
aload 3
invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
invokestatic org.bouncycastle.util.Strings.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
ldc "null"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 32
31: new java.io.IOException
dup
ldc "EST clients must not use NULL ciphers"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
aload 3
invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
invokestatic org.bouncycastle.util.Strings.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
ldc "anon"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 34
33: new java.io.IOException
dup
ldc "EST clients must not use anon ciphers"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals:
StackMap stack:
aload 3
invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getCipherSuite:()Ljava/lang/String;
invokestatic org.bouncycastle.util.Strings.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
ldc "export"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 36
35: new java.io.IOException
dup
ldc "EST clients must not use export ciphers"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
36: StackMap locals:
StackMap stack:
aload 3
invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface javax.net.ssl.SSLSession.getProtocol:()Ljava/lang/String;
ldc "tlsv1"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 41
37: aload 3
invokevirtual javax.net.ssl.SSLSocket.close:()V
38: goto 40
39: StackMap locals:
StackMap stack: java.lang.Exception
pop
40: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "EST clients must not use TLSv1"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
41: StackMap locals:
StackMap stack:
aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.hostNameAuthorizer:Lorg/bouncycastle/est/jcajce/JsseHostnameAuthorizer;
ifnull 43
aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.hostNameAuthorizer:Lorg/bouncycastle/est/jcajce/JsseHostnameAuthorizer;
aload 1
aload 3
invokevirtual javax.net.ssl.SSLSocket.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface org.bouncycastle.est.jcajce.JsseHostnameAuthorizer.verified:(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z
ifne 43
42: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Hostname was not verified: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
43: StackMap locals:
StackMap stack:
new org.bouncycastle.est.jcajce.LimitedSSLSocketSource
dup
aload 3
aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.bindingProvider:Lorg/bouncycastle/est/jcajce/ChannelBindingProvider;
aload 0
getfield org.bouncycastle.est.jcajce.DefaultESTClientSourceProvider.absoluteLimit:Ljava/lang/Long;
invokespecial org.bouncycastle.est.jcajce.LimitedSSLSocketSource.<init>:(Ljavax/net/ssl/SSLSocket;Lorg/bouncycastle/est/jcajce/ChannelBindingProvider;Ljava/lang/Long;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lorg/bouncycastle/est/jcajce/DefaultESTClientSourceProvider;
0 44 1 host Ljava/lang/String;
0 44 2 port I
1 44 3 sock Ljavax/net/ssl/SSLSocket;
5 21 4 fs Ljava/util/HashSet<Ljava/lang/String;>;
6 21 5 supportedCipherSuites [Ljava/lang/String;
7 11 6 i I
12 21 6 j Ljava/util/List<Ljava/lang/String;>;
13 18 7 it Ljava/util/Iterator;
15 17 8 s Ljava/lang/String;
28 30 4 t Ljava/lang/String;
Exception table:
from to target type
37 38 39 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
host
port
}
SourceFile: "DefaultESTClientSourceProvider.java"