public class org.bouncycastle.est.HttpAuth implements org.bouncycastle.est.ESTAuth
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.bouncycastle.est.HttpAuth
super_class: java.lang.Object
{
private static final org.bouncycastle.operator.DigestAlgorithmIdentifierFinder digestAlgorithmIdentifierFinder;
descriptor: Lorg/bouncycastle/operator/DigestAlgorithmIdentifierFinder;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.lang.String realm;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String username;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final char[] password;
descriptor: [C
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.SecureRandom nonceGenerator;
descriptor: Ljava/security/SecureRandom;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.bouncycastle.operator.DigestCalculatorProvider digestCalculatorProvider;
descriptor: Lorg/bouncycastle/operator/DigestCalculatorProvider;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final java.util.Set<java.lang.String> validParts;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: new org.bouncycastle.operator.DefaultDigestAlgorithmIdentifierFinder
dup
invokespecial org.bouncycastle.operator.DefaultDigestAlgorithmIdentifierFinder.<init>:()V
putstatic org.bouncycastle.est.HttpAuth.digestAlgorithmIdentifierFinder:Lorg/bouncycastle/operator/DigestAlgorithmIdentifierFinder;
1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 0
start local 0 2: aload 0
ldc "realm"
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
3: aload 0
ldc "nonce"
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
4: aload 0
ldc "opaque"
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
5: aload 0
ldc "algorithm"
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
6: aload 0
ldc "qop"
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
7: aload 0
invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
putstatic org.bouncycastle.est.HttpAuth.validParts:Ljava/util/Set;
end local 0 8: return
LocalVariableTable:
Start End Slot Name Signature
2 8 0 s Ljava/util/HashSet<Ljava/lang/String;>;
public void <init>(java.lang.String, char[]);
descriptor: (Ljava/lang/String;[C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aconst_null
aload 1
aload 2
aconst_null
aconst_null
invokespecial org.bouncycastle.est.HttpAuth.<init>:(Ljava/lang/String;Ljava/lang/String;[CLjava/security/SecureRandom;Lorg/bouncycastle/operator/DigestCalculatorProvider;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/est/HttpAuth;
0 2 1 username Ljava/lang/String;
0 2 2 password [C
MethodParameters:
Name Flags
username
password
public void <init>(java.lang.String, java.lang.String, char[]);
descriptor: (Ljava/lang/String;Ljava/lang/String;[C)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
aconst_null
aconst_null
invokespecial org.bouncycastle.est.HttpAuth.<init>:(Ljava/lang/String;Ljava/lang/String;[CLjava/security/SecureRandom;Lorg/bouncycastle/operator/DigestCalculatorProvider;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/est/HttpAuth;
0 2 1 realm Ljava/lang/String;
0 2 2 username Ljava/lang/String;
0 2 3 password [C
MethodParameters:
Name Flags
realm
username
password
public void <init>(java.lang.String, char[], java.security.SecureRandom, org.bouncycastle.operator.DigestCalculatorProvider);
descriptor: (Ljava/lang/String;[CLjava/security/SecureRandom;Lorg/bouncycastle/operator/DigestCalculatorProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aconst_null
aload 1
aload 2
aload 3
aload 4
invokespecial org.bouncycastle.est.HttpAuth.<init>:(Ljava/lang/String;Ljava/lang/String;[CLjava/security/SecureRandom;Lorg/bouncycastle/operator/DigestCalculatorProvider;)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/est/HttpAuth;
0 2 1 username Ljava/lang/String;
0 2 2 password [C
0 2 3 nonceGenerator Ljava/security/SecureRandom;
0 2 4 digestCalculatorProvider Lorg/bouncycastle/operator/DigestCalculatorProvider;
MethodParameters:
Name Flags
username
password
nonceGenerator
digestCalculatorProvider
public void <init>(java.lang.String, java.lang.String, char[], java.security.SecureRandom, org.bouncycastle.operator.DigestCalculatorProvider);
descriptor: (Ljava/lang/String;Ljava/lang/String;[CLjava/security/SecureRandom;Lorg/bouncycastle/operator/DigestCalculatorProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.bouncycastle.est.HttpAuth.realm:Ljava/lang/String;
2: aload 0
aload 2
putfield org.bouncycastle.est.HttpAuth.username:Ljava/lang/String;
3: aload 0
aload 3
putfield org.bouncycastle.est.HttpAuth.password:[C
4: aload 0
aload 4
putfield org.bouncycastle.est.HttpAuth.nonceGenerator:Ljava/security/SecureRandom;
5: aload 0
aload 5
putfield org.bouncycastle.est.HttpAuth.digestCalculatorProvider:Lorg/bouncycastle/operator/DigestCalculatorProvider;
6: return
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 7 0 this Lorg/bouncycastle/est/HttpAuth;
0 7 1 realm Ljava/lang/String;
0 7 2 username Ljava/lang/String;
0 7 3 password [C
0 7 4 nonceGenerator Ljava/security/SecureRandom;
0 7 5 digestCalculatorProvider Lorg/bouncycastle/operator/DigestCalculatorProvider;
MethodParameters:
Name Flags
realm
username
password
nonceGenerator
digestCalculatorProvider
public void applyAuth(org.bouncycastle.est.ESTRequestBuilder);
descriptor: (Lorg/bouncycastle/est/ESTRequestBuilder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
new org.bouncycastle.est.HttpAuth$1
dup
aload 0
invokespecial org.bouncycastle.est.HttpAuth$1.<init>:(Lorg/bouncycastle/est/HttpAuth;)V
invokevirtual org.bouncycastle.est.ESTRequestBuilder.withHijacker:(Lorg/bouncycastle/est/ESTHijacker;)Lorg/bouncycastle/est/ESTRequestBuilder;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/est/HttpAuth;
0 2 1 reqBldr Lorg/bouncycastle/est/ESTRequestBuilder;
MethodParameters:
Name Flags
reqBldr final
private org.bouncycastle.est.ESTResponse doDigestFunction(org.bouncycastle.est.ESTResponse);
descriptor: (Lorg/bouncycastle/est/ESTResponse;)Lorg/bouncycastle/est/ESTResponse;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=26, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.bouncycastle.est.ESTResponse.close:()V
1: aload 1
invokevirtual org.bouncycastle.est.ESTResponse.getOriginalRequest:()Lorg/bouncycastle/est/ESTRequest;
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: ldc "Digest"
aload 1
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 3
4: goto 12
5: StackMap locals: org.bouncycastle.est.HttpAuth org.bouncycastle.est.ESTResponse org.bouncycastle.est.ESTRequest java.util.Map
StackMap stack: java.lang.Throwable
astore 4
start local 4 6: new org.bouncycastle.est.ESTException
dup
7: new java.lang.StringBuilder
dup
ldc "Parsing WWW-Authentication header: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: aload 4
9: aload 1
invokevirtual org.bouncycastle.est.ESTResponse.getStatusCode:()I
10: new java.io.ByteArrayInputStream
dup
aload 1
ldc "WWW-Authenticate"
invokevirtual org.bouncycastle.est.ESTResponse.getHeader:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.getBytes:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
11: invokespecial org.bouncycastle.est.ESTException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;ILjava/io/InputStream;)V
athrow
end local 4 12: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 13: aload 2
invokevirtual org.bouncycastle.est.ESTRequest.getURL:()Ljava/net/URL;
invokevirtual java.net.URL.toURI:()Ljava/net/URI;
invokevirtual java.net.URI.getPath:()Ljava/lang/String;
astore 4
14: goto 17
15: StackMap locals: org.bouncycastle.est.HttpAuth org.bouncycastle.est.ESTResponse org.bouncycastle.est.ESTRequest java.util.Map java.lang.String
StackMap stack: java.lang.Exception
astore 5
start local 5 16: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "unable to process URL in request: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
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
end local 5 17: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
start local 5 18: goto 22
19: StackMap locals: java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 6
start local 6 20: getstatic org.bouncycastle.est.HttpAuth.validParts:Ljava/util/Set;
aload 6
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 22
21: new org.bouncycastle.est.ESTException
dup
new java.lang.StringBuilder
dup
ldc "Unrecognised entry in WWW-Authenticate header: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "'"
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
end local 6 22: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
end local 5 23: aload 2
invokevirtual org.bouncycastle.est.ESTRequest.getMethod:()Ljava/lang/String;
astore 5
start local 5 24: aload 3
ldc "realm"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 25: aload 3
ldc "nonce"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 7
start local 7 26: aload 3
ldc "opaque"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 27: aload 3
ldc "algorithm"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 28: aload 3
ldc "qop"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 29: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 11
start local 11 30: aload 0
getfield org.bouncycastle.est.HttpAuth.realm:Ljava/lang/String;
ifnull 33
31: aload 0
getfield org.bouncycastle.est.HttpAuth.realm:Ljava/lang/String;
aload 6
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 33
32: 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
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 6
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
33: StackMap locals: org.bouncycastle.est.HttpAuth org.bouncycastle.est.ESTResponse org.bouncycastle.est.ESTRequest java.util.Map java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.util.List
StackMap stack:
aload 9
ifnonnull 35
34: ldc "MD5"
astore 9
35: StackMap locals:
StackMap stack:
aload 9
invokevirtual java.lang.String.length:()I
ifne 37
36: new org.bouncycastle.est.ESTException
dup
ldc "WWW-Authenticate no algorithm defined."
invokespecial org.bouncycastle.est.ESTException.<init>:(Ljava/lang/String;)V
athrow
37: StackMap locals:
StackMap stack:
aload 9
invokestatic org.bouncycastle.util.Strings.toUpperCase:(Ljava/lang/String;)Ljava/lang/String;
astore 9
38: aload 10
ifnull 54
39: aload 10
invokevirtual java.lang.String.length:()I
ifne 41
40: new org.bouncycastle.est.ESTException
dup
ldc "QoP value is empty."
invokespecial org.bouncycastle.est.ESTException.<init>:(Ljava/lang/String;)V
athrow
41: StackMap locals:
StackMap stack:
aload 10
invokestatic org.bouncycastle.util.Strings.toLowerCase:(Ljava/lang/String;)Ljava/lang/String;
astore 10
42: aload 10
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 12
start local 12 43: iconst_0
istore 13
start local 13 44: goto 52
45: StackMap locals: java.lang.String[] int
StackMap stack:
aload 12
iload 13
aaload
ldc "auth"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 47
aload 12
iload 13
aaload
ldc "auth-int"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 47
46: new org.bouncycastle.est.ESTException
dup
new java.lang.StringBuilder
dup
ldc "QoP value unknown: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 13
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "'"
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
47: StackMap locals:
StackMap stack:
aload 12
iload 13
aaload
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 14
start local 14 48: aload 11
aload 14
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 50
49: goto 51
50: StackMap locals: java.lang.String
StackMap stack:
aload 11
aload 14
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 14 51: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
52: iload 13
aload 12
arraylength
if_icmpne 45
end local 13 end local 12 53: goto 55
54: StackMap locals:
StackMap stack:
new org.bouncycastle.est.ESTException
dup
ldc "Qop is not defined in WWW-Authenticate header."
invokespecial org.bouncycastle.est.ESTException.<init>:(Ljava/lang/String;)V
athrow
55: StackMap locals:
StackMap stack:
aload 0
aload 9
invokevirtual org.bouncycastle.est.HttpAuth.lookupDigest:(Ljava/lang/String;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
astore 12
start local 12 56: aload 12
ifnull 57
aload 12
invokevirtual org.bouncycastle.asn1.x509.AlgorithmIdentifier.getAlgorithm:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
ifnonnull 58
57: StackMap locals: org.bouncycastle.asn1.x509.AlgorithmIdentifier
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "auth digest algorithm unknown: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
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
58: StackMap locals:
StackMap stack:
aload 0
aload 9
aload 12
invokevirtual org.bouncycastle.est.HttpAuth.getDigestCalculator:(Ljava/lang/String;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
astore 13
start local 13 59: aload 13
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 14
start local 14 60: aload 0
bipush 10
invokevirtual org.bouncycastle.est.HttpAuth.makeNonce:(I)Ljava/lang/String;
astore 15
start local 15 61: aload 0
aload 14
aload 0
getfield org.bouncycastle.est.HttpAuth.username:Ljava/lang/String;
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
62: aload 0
aload 14
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
63: aload 0
aload 14
aload 6
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
64: aload 0
aload 14
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
65: aload 0
aload 14
aload 0
getfield org.bouncycastle.est.HttpAuth.password:[C
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;[C)V
66: aload 14
invokevirtual java.io.OutputStream.close:()V
67: aload 13
invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
astore 16
start local 16 68: aload 9
ldc "-SESS"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 79
69: aload 0
aload 9
aload 12
invokevirtual org.bouncycastle.est.HttpAuth.getDigestCalculator:(Ljava/lang/String;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
astore 17
start local 17 70: aload 17
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 18
start local 18 71: aload 16
invokestatic org.bouncycastle.util.encoders.Hex.toHexString:([B)Ljava/lang/String;
astore 19
start local 19 72: aload 0
aload 18
aload 19
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
73: aload 0
aload 18
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
74: aload 0
aload 18
aload 7
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
75: aload 0
aload 18
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
76: aload 0
aload 18
aload 15
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
77: aload 18
invokevirtual java.io.OutputStream.close:()V
78: aload 17
invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
astore 16
end local 19 end local 18 end local 17 79: StackMap locals: org.bouncycastle.est.HttpAuth org.bouncycastle.est.ESTResponse org.bouncycastle.est.ESTRequest java.util.Map java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.util.List org.bouncycastle.asn1.x509.AlgorithmIdentifier org.bouncycastle.operator.DigestCalculator java.io.OutputStream java.lang.String byte[]
StackMap stack:
aload 16
invokestatic org.bouncycastle.util.encoders.Hex.toHexString:([B)Ljava/lang/String;
astore 17
start local 17 80: aload 0
aload 9
aload 12
invokevirtual org.bouncycastle.est.HttpAuth.getDigestCalculator:(Ljava/lang/String;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
astore 18
start local 18 81: aload 18
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 19
start local 19 82: aload 11
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
ldc "auth-int"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 94
83: aload 0
aload 9
aload 12
invokevirtual org.bouncycastle.est.HttpAuth.getDigestCalculator:(Ljava/lang/String;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
astore 20
start local 20 84: aload 20
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 21
start local 21 85: aload 2
aload 21
invokevirtual org.bouncycastle.est.ESTRequest.writeData:(Ljava/io/OutputStream;)V
86: aload 21
invokevirtual java.io.OutputStream.close:()V
87: aload 20
invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
astore 22
start local 22 88: aload 0
aload 19
aload 5
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
89: aload 0
aload 19
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
90: aload 0
aload 19
aload 4
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
91: aload 0
aload 19
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
92: aload 0
aload 19
aload 22
invokestatic org.bouncycastle.util.encoders.Hex.toHexString:([B)Ljava/lang/String;
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
end local 22 end local 21 end local 20 93: goto 98
94: StackMap locals: java.lang.String org.bouncycastle.operator.DigestCalculator java.io.OutputStream
StackMap stack:
aload 11
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
ldc "auth"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 98
95: aload 0
aload 19
aload 5
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
96: aload 0
aload 19
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
97: aload 0
aload 19
aload 4
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
98: StackMap locals:
StackMap stack:
aload 19
invokevirtual java.io.OutputStream.close:()V
99: aload 18
invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
invokestatic org.bouncycastle.util.encoders.Hex.toHexString:([B)Ljava/lang/String;
astore 20
start local 20 100: aload 0
aload 9
aload 12
invokevirtual org.bouncycastle.est.HttpAuth.getDigestCalculator:(Ljava/lang/String;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
astore 21
start local 21 101: aload 21
invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
astore 22
start local 22 102: aload 11
ldc "missing"
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 109
103: aload 0
aload 22
aload 17
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
104: aload 0
aload 22
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
105: aload 0
aload 22
aload 7
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
106: aload 0
aload 22
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
107: aload 0
aload 22
aload 20
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
108: goto 123
109: StackMap locals: java.lang.String org.bouncycastle.operator.DigestCalculator java.io.OutputStream
StackMap stack:
aload 0
aload 22
aload 17
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
110: aload 0
aload 22
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
111: aload 0
aload 22
aload 7
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
112: aload 0
aload 22
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
113: aload 0
aload 22
ldc "00000001"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
114: aload 0
aload 22
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
115: aload 0
aload 22
aload 15
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
116: aload 0
aload 22
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
117: aload 11
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
ldc "auth-int"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 120
118: aload 0
aload 22
ldc "auth-int"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
119: goto 121
120: StackMap locals:
StackMap stack:
aload 0
aload 22
ldc "auth"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
121: StackMap locals:
StackMap stack:
aload 0
aload 22
ldc ":"
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
122: aload 0
aload 22
aload 20
invokevirtual org.bouncycastle.est.HttpAuth.update:(Ljava/io/OutputStream;Ljava/lang/String;)V
123: StackMap locals:
StackMap stack:
aload 22
invokevirtual java.io.OutputStream.close:()V
124: aload 21
invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
invokestatic org.bouncycastle.util.encoders.Hex.toHexString:([B)Ljava/lang/String;
astore 23
start local 23 125: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 24
start local 24 126: aload 24
ldc "username"
aload 0
getfield org.bouncycastle.est.HttpAuth.username:Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
127: aload 24
ldc "realm"
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
128: aload 24
ldc "nonce"
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
129: aload 24
ldc "uri"
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
130: aload 24
ldc "response"
aload 23
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
131: aload 11
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
ldc "auth-int"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 136
132: aload 24
ldc "qop"
ldc "auth-int"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
133: aload 24
ldc "nc"
ldc "00000001"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
134: aload 24
ldc "cnonce"
aload 15
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
135: goto 140
136: StackMap locals: java.lang.String java.util.Map
StackMap stack:
aload 11
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
ldc "auth"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 140
137: aload 24
ldc "qop"
ldc "auth"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
138: aload 24
ldc "nc"
ldc "00000001"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
139: aload 24
ldc "cnonce"
aload 15
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
140: StackMap locals:
StackMap stack:
aload 24
ldc "algorithm"
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
141: aload 8
ifnull 142
aload 8
invokevirtual java.lang.String.length:()I
ifne 143
142: StackMap locals:
StackMap stack:
aload 24
ldc "opaque"
aload 0
bipush 20
invokevirtual org.bouncycastle.est.HttpAuth.makeNonce:(I)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
143: StackMap locals:
StackMap stack:
new org.bouncycastle.est.ESTRequestBuilder
dup
aload 2
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 25
start local 25 144: aload 25
ldc "Authorization"
ldc "Digest"
aload 24
invokestatic org.bouncycastle.est.HttpUtil.mergeCSL:(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
invokevirtual org.bouncycastle.est.ESTRequestBuilder.setHeader:(Ljava/lang/String;Ljava/lang/String;)Lorg/bouncycastle/est/ESTRequestBuilder;
pop
145: aload 2
invokevirtual org.bouncycastle.est.ESTRequest.getClient:()Lorg/bouncycastle/est/ESTClient;
aload 25
invokevirtual org.bouncycastle.est.ESTRequestBuilder.build:()Lorg/bouncycastle/est/ESTRequest;
invokeinterface org.bouncycastle.est.ESTClient.doRequest:(Lorg/bouncycastle/est/ESTRequest;)Lorg/bouncycastle/est/ESTResponse;
areturn
end local 25 end local 24 end local 23 end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 146 0 this Lorg/bouncycastle/est/HttpAuth;
0 146 1 res Lorg/bouncycastle/est/ESTResponse;
2 146 2 req Lorg/bouncycastle/est/ESTRequest;
3 146 3 parts Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
6 12 4 t Ljava/lang/Throwable;
13 146 4 uri Ljava/lang/String;
16 17 5 e Ljava/lang/Exception;
18 23 5 it Ljava/util/Iterator;
20 22 6 k Ljava/lang/Object;
24 146 5 method Ljava/lang/String;
25 146 6 realm Ljava/lang/String;
26 146 7 nonce Ljava/lang/String;
27 146 8 opaque Ljava/lang/String;
28 146 9 algorithm Ljava/lang/String;
29 146 10 qop Ljava/lang/String;
30 146 11 qopMods Ljava/util/List<Ljava/lang/String;>;
43 53 12 s [Ljava/lang/String;
44 53 13 j I
48 51 14 jt Ljava/lang/String;
56 146 12 digestAlg Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
59 146 13 dCalc Lorg/bouncycastle/operator/DigestCalculator;
60 146 14 dOut Ljava/io/OutputStream;
61 146 15 crnonce Ljava/lang/String;
68 146 16 ha1 [B
70 79 17 sessCalc Lorg/bouncycastle/operator/DigestCalculator;
71 79 18 sessOut Ljava/io/OutputStream;
72 79 19 cs Ljava/lang/String;
80 146 17 hashHa1 Ljava/lang/String;
81 146 18 authCalc Lorg/bouncycastle/operator/DigestCalculator;
82 146 19 authOut Ljava/io/OutputStream;
84 93 20 reqCalc Lorg/bouncycastle/operator/DigestCalculator;
85 93 21 reqOut Ljava/io/OutputStream;
88 93 22 b [B
100 146 20 hashHa2 Ljava/lang/String;
101 146 21 responseCalc Lorg/bouncycastle/operator/DigestCalculator;
102 146 22 responseOut Ljava/io/OutputStream;
125 146 23 digest Ljava/lang/String;
126 146 24 hdr Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
144 146 25 answer Lorg/bouncycastle/est/ESTRequestBuilder;
Exception table:
from to target type
3 4 5 Class java.lang.Throwable
13 14 15 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
res
private org.bouncycastle.operator.DigestCalculator getDigestCalculator(java.lang.String, org.bouncycastle.asn1.x509.AlgorithmIdentifier);
descriptor: (Ljava/lang/String;Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.bouncycastle.est.HttpAuth.digestCalculatorProvider:Lorg/bouncycastle/operator/DigestCalculatorProvider;
aload 2
invokeinterface org.bouncycastle.operator.DigestCalculatorProvider.get:(Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;)Lorg/bouncycastle/operator/DigestCalculator;
astore 3
start local 3 1: goto 4
end local 3 2: StackMap locals:
StackMap stack: org.bouncycastle.operator.OperatorCreationException
astore 4
start local 4 3: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "cannot create digest calculator for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual org.bouncycastle.operator.OperatorCreationException.getMessage:()Ljava/lang/String;
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
end local 4 start local 3 4: StackMap locals: org.bouncycastle.operator.DigestCalculator
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/est/HttpAuth;
0 5 1 algorithm Ljava/lang/String;
0 5 2 digestAlg Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
1 2 3 dCalc Lorg/bouncycastle/operator/DigestCalculator;
4 5 3 dCalc Lorg/bouncycastle/operator/DigestCalculator;
3 4 4 e Lorg/bouncycastle/operator/OperatorCreationException;
Exception table:
from to target type
0 1 2 Class org.bouncycastle.operator.OperatorCreationException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
algorithm
digestAlg
private org.bouncycastle.asn1.x509.AlgorithmIdentifier lookupDigest(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc "-SESS"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 2
1: aload 1
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
ldc "-SESS"
invokevirtual java.lang.String.length:()I
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
2: StackMap locals:
StackMap stack:
aload 1
ldc "SHA-512-256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: new org.bouncycastle.asn1.x509.AlgorithmIdentifier
dup
getstatic org.bouncycastle.asn1.nist.NISTObjectIdentifiers.id_sha512_256:Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
getstatic org.bouncycastle.asn1.DERNull.INSTANCE:Lorg/bouncycastle/asn1/DERNull;
invokespecial org.bouncycastle.asn1.x509.AlgorithmIdentifier.<init>:(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Lorg/bouncycastle/asn1/ASN1Encodable;)V
areturn
4: StackMap locals:
StackMap stack:
getstatic org.bouncycastle.est.HttpAuth.digestAlgorithmIdentifierFinder:Lorg/bouncycastle/operator/DigestAlgorithmIdentifierFinder;
aload 1
invokeinterface org.bouncycastle.operator.DigestAlgorithmIdentifierFinder.find:(Ljava/lang/String;)Lorg/bouncycastle/asn1/x509/AlgorithmIdentifier;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/bouncycastle/est/HttpAuth;
0 5 1 algorithm Ljava/lang/String;
MethodParameters:
Name Flags
algorithm
private void update(java.io.OutputStream, char[]);
descriptor: (Ljava/io/OutputStream;[C)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokestatic org.bouncycastle.util.Strings.toUTF8ByteArray:([C)[B
invokevirtual java.io.OutputStream.write:([B)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/est/HttpAuth;
0 2 1 dOut Ljava/io/OutputStream;
0 2 2 value [C
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dOut
value
private void update(java.io.OutputStream, java.lang.String);
descriptor: (Ljava/io/OutputStream;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokestatic org.bouncycastle.util.Strings.toUTF8ByteArray:(Ljava/lang/String;)[B
invokevirtual java.io.OutputStream.write:([B)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/bouncycastle/est/HttpAuth;
0 2 1 dOut Ljava/io/OutputStream;
0 2 2 value Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dOut
value
private java.lang.String makeNonce(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
newarray 8
astore 2
start local 2 1: aload 0
getfield org.bouncycastle.est.HttpAuth.nonceGenerator:Ljava/security/SecureRandom;
aload 2
invokevirtual java.security.SecureRandom.nextBytes:([B)V
2: aload 2
invokestatic org.bouncycastle.util.encoders.Hex.toHexString:([B)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/bouncycastle/est/HttpAuth;
0 3 1 len I
1 3 2 b [B
MethodParameters:
Name Flags
len
}
SourceFile: "HttpAuth.java"
NestMembers:
org.bouncycastle.est.HttpAuth$1
InnerClasses:
org.bouncycastle.est.HttpAuth$1