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