class org.bouncycastle.est.HttpAuth$1 implements org.bouncycastle.est.ESTHijacker
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.bouncycastle.est.HttpAuth$1
super_class: java.lang.Object
{
final org.bouncycastle.est.HttpAuth this$0;
descriptor: Lorg/bouncycastle/est/HttpAuth;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(org.bouncycastle.est.HttpAuth);
descriptor: (Lorg/bouncycastle/est/HttpAuth;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // org.bouncycastle.est.HttpAuth$1 this
0: .line 112
aload 0 /* this */
aload 1
putfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.bouncycastle.est.HttpAuth$1 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/bouncycastle/est/HttpAuth$1;
MethodParameters:
Name Flags
this$0 final
public org.bouncycastle.est.ESTResponse hijack(org.bouncycastle.est.ESTRequest, org.bouncycastle.est.Source);
descriptor: (Lorg/bouncycastle/est/ESTRequest;Lorg/bouncycastle/est/Source;)Lorg/bouncycastle/est/ESTResponse;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=3
start local 0 // org.bouncycastle.est.HttpAuth$1 this
start local 1 // org.bouncycastle.est.ESTRequest req
start local 2 // org.bouncycastle.est.Source sock
0: .line 117
new org.bouncycastle.est.ESTResponse
dup
aload 1 /* req */
aload 2 /* sock */
invokespecial org.bouncycastle.est.ESTResponse.<init>:(Lorg/bouncycastle/est/ESTRequest;Lorg/bouncycastle/est/Source;)V
astore 3 /* res */
start local 3 // org.bouncycastle.est.ESTResponse res
1: .line 119
aload 3 /* res */
invokevirtual org.bouncycastle.est.ESTResponse.getStatusCode:()I
sipush 401
if_icmpne 30
2: .line 121
aload 3 /* res */
ldc "WWW-Authenticate"
invokevirtual org.bouncycastle.est.ESTResponse.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 4 /* authHeader */
start local 4 // java.lang.String authHeader
3: .line 122
aload 4 /* authHeader */
ifnonnull 5
4: .line 124
new org.bouncycastle.est.ESTException
dup
ldc "Status of 401 but no WWW-Authenticate header"
invokespecial org.bouncycastle.est.ESTException.<init>:(Ljava/lang/String;)V
athrow
5: .line 127
StackMap locals: org.bouncycastle.est.ESTResponse java.lang.String
StackMap stack:
aload 4 /* authHeader */
invokestatic org.bouncycastle.util.Strings.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
astore 4 /* authHeader */
6: .line 129
aload 4 /* authHeader */
ldc "digest"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 9
7: .line 131
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
aload 3 /* res */
invokevirtual org.bouncycastle.est.HttpAuth.doDigestFunction:(Lorg/bouncycastle/est/ESTResponse;)Lorg/bouncycastle/est/ESTResponse;
astore 3 /* res */
8: .line 132
goto 29
9: .line 133
StackMap locals:
StackMap stack:
aload 4 /* authHeader */
ldc "basic"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 28
10: .line 135
aload 3 /* res */
invokevirtual org.bouncycastle.est.ESTResponse.close:()V
11: .line 140
ldc "Basic"
aload 3 /* res */
ldc "WWW-Authenticate"
invokevirtual org.bouncycastle.est.ESTResponse.getHeader:(Ljava/lang/String;)Ljava/lang/String;
invokestatic org.bouncycastle.est.HttpUtil.splitCSL:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
astore 5 /* s */
start local 5 // java.util.Map s
12: .line 145
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.realm:Ljava/lang/String;
ifnull 15
13: .line 147
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.realm:Ljava/lang/String;
aload 5 /* s */
ldc "realm"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
14: .line 150
new org.bouncycastle.est.ESTException
dup
new java.lang.StringBuilder
dup
ldc "Supplied realm '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.realm:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' does not match server realm '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5 /* s */
ldc "realm"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aconst_null
sipush 401
aconst_null
invokespecial org.bouncycastle.est.ESTException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;ILjava/io/InputStream;)V
athrow
15: .line 157
StackMap locals: java.util.Map
StackMap stack:
new org.bouncycastle.est.ESTRequestBuilder
dup
aload 1 /* req */
invokespecial org.bouncycastle.est.ESTRequestBuilder.<init>:(Lorg/bouncycastle/est/ESTRequest;)V
aconst_null
invokevirtual org.bouncycastle.est.ESTRequestBuilder.withHijacker:(Lorg/bouncycastle/est/ESTHijacker;)Lorg/bouncycastle/est/ESTRequestBuilder;
astore 6 /* answer */
start local 6 // org.bouncycastle.est.ESTRequestBuilder answer
16: .line 159
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.realm:Ljava/lang/String;
ifnull 18
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.realm:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
ifle 18
17: .line 161
aload 6 /* answer */
ldc "WWW-Authenticate"
new java.lang.StringBuilder
dup
ldc "Basic realm=\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.realm:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.bouncycastle.est.ESTRequestBuilder.setHeader:(Ljava/lang/String;Ljava/lang/String;)Lorg/bouncycastle/est/ESTRequestBuilder;
pop
18: .line 163
StackMap locals: org.bouncycastle.est.ESTRequestBuilder
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.username:Ljava/lang/String;
ldc ":"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 20
19: .line 165
new java.lang.IllegalArgumentException
dup
ldc "User must not contain a ':'"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
20: .line 168
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.username:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_1
iadd
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.password:[C
arraylength
iadd
newarray 5
astore 7 /* userPass */
start local 7 // char[] userPass
21: .line 169
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.username:Ljava/lang/String;
invokevirtual java.lang.String.toCharArray:()[C
iconst_0
aload 7 /* userPass */
iconst_0
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.username:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
22: .line 170
aload 7 /* userPass */
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.username:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
bipush 58
castore
23: .line 171
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.password:[C
iconst_0
aload 7 /* userPass */
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.username:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
iconst_1
iadd
aload 0 /* this */
getfield org.bouncycastle.est.HttpAuth$1.this$0:Lorg/bouncycastle/est/HttpAuth;
getfield org.bouncycastle.est.HttpAuth.password:[C
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
24: .line 173
aload 6 /* answer */
ldc "Authorization"
new java.lang.StringBuilder
dup
ldc "Basic "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7 /* userPass */
invokestatic org.bouncycastle.util.Strings.toByteArray:([C)[B
invokestatic org.bouncycastle.util.encoders.Base64.toBase64String:([B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.bouncycastle.est.ESTRequestBuilder.setHeader:(Ljava/lang/String;Ljava/lang/String;)Lorg/bouncycastle/est/ESTRequestBuilder;
pop
25: .line 175
aload 1 /* req */
invokevirtual org.bouncycastle.est.ESTRequest.getClient:()Lorg/bouncycastle/est/ESTClient;
aload 6 /* answer */
invokevirtual org.bouncycastle.est.ESTRequestBuilder.build:()Lorg/bouncycastle/est/ESTRequest;
invokeinterface org.bouncycastle.est.ESTClient.doRequest:(Lorg/bouncycastle/est/ESTRequest;)Lorg/bouncycastle/est/ESTResponse;
astore 3 /* res */
26: .line 177
aload 7 /* userPass */
iconst_0
invokestatic org.bouncycastle.util.Arrays.fill:([CC)V
end local 7 // char[] userPass
end local 6 // org.bouncycastle.est.ESTRequestBuilder answer
end local 5 // java.util.Map s
27: .line 178
goto 29
28: .line 181
StackMap locals:
StackMap stack:
new org.bouncycastle.est.ESTException
dup
new java.lang.StringBuilder
dup
ldc "Unknown auth mode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4 /* authHeader */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.bouncycastle.est.ESTException.<init>:(Ljava/lang/String;)V
athrow
29: .line 185
StackMap locals:
StackMap stack:
aload 3 /* res */
areturn
end local 4 // java.lang.String authHeader
30: .line 187
StackMap locals:
StackMap stack:
aload 3 /* res */
areturn
end local 3 // org.bouncycastle.est.ESTResponse res
end local 2 // org.bouncycastle.est.Source sock
end local 1 // org.bouncycastle.est.ESTRequest req
end local 0 // org.bouncycastle.est.HttpAuth$1 this
LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/bouncycastle/est/HttpAuth$1;
0 31 1 req Lorg/bouncycastle/est/ESTRequest;
0 31 2 sock Lorg/bouncycastle/est/Source;
1 31 3 res Lorg/bouncycastle/est/ESTResponse;
3 30 4 authHeader Ljava/lang/String;
12 27 5 s Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
16 27 6 answer Lorg/bouncycastle/est/ESTRequestBuilder;
21 27 7 userPass [C
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
req
sock
}
SourceFile: "HttpAuth.java"
EnclosingMethod: org.bouncycastle.est.HttpAuth.applyAuth:(Lorg/bouncycastle/est/ESTRequestBuilder;)V
NestHost: org.bouncycastle.est.HttpAuth
InnerClasses:
org.bouncycastle.est.HttpAuth$1