public abstract class com.jcraft.jsch.KeyExchange
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.jcraft.jsch.KeyExchange
  super_class: java.lang.Object
{
  static final int PROPOSAL_KEX_ALGS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int PROPOSAL_SERVER_HOST_KEY_ALGS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int PROPOSAL_ENC_ALGS_CTOS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int PROPOSAL_ENC_ALGS_STOC;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int PROPOSAL_MAC_ALGS_CTOS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int PROPOSAL_MAC_ALGS_STOC;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final int PROPOSAL_COMP_ALGS_CTOS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  static final int PROPOSAL_COMP_ALGS_STOC;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  static final int PROPOSAL_LANG_CTOS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  static final int PROPOSAL_LANG_STOC;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  static final int PROPOSAL_MAX;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  static java.lang.String kex;
    descriptor: Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

  static java.lang.String server_host_key;
    descriptor: Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

  static java.lang.String enc_c2s;
    descriptor: Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

  static java.lang.String enc_s2c;
    descriptor: Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

  static java.lang.String mac_c2s;
    descriptor: Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

  static java.lang.String mac_s2c;
    descriptor: Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

  static java.lang.String lang_c2s;
    descriptor: Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

  static java.lang.String lang_s2c;
    descriptor: Ljava/lang/String;
    flags: (0x0008) ACC_STATIC

  public static final int STATE_END;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  protected com.jcraft.jsch.Session session;
    descriptor: Lcom/jcraft/jsch/Session;
    flags: (0x0004) ACC_PROTECTED

  protected com.jcraft.jsch.HASH sha;
    descriptor: Lcom/jcraft/jsch/HASH;
    flags: (0x0004) ACC_PROTECTED

  protected byte[] K;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected byte[] H;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected byte[] K_S;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected final int RSA;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 0

  protected final int DSS;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 1

  protected final int ECDSA;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    ConstantValue: 2

  private int type;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String key_alg_name;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 50
            ldc "diffie-hellman-group1-sha1"
            putstatic com.jcraft.jsch.KeyExchange.kex:Ljava/lang/String;
         1: .line 51
            ldc "ssh-rsa,ssh-dss"
            putstatic com.jcraft.jsch.KeyExchange.server_host_key:Ljava/lang/String;
         2: .line 52
            ldc "blowfish-cbc"
            putstatic com.jcraft.jsch.KeyExchange.enc_c2s:Ljava/lang/String;
         3: .line 53
            ldc "blowfish-cbc"
            putstatic com.jcraft.jsch.KeyExchange.enc_s2c:Ljava/lang/String;
         4: .line 54
            ldc "hmac-md5"
            putstatic com.jcraft.jsch.KeyExchange.mac_c2s:Ljava/lang/String;
         5: .line 56
            ldc "hmac-md5"
            putstatic com.jcraft.jsch.KeyExchange.mac_s2c:Ljava/lang/String;
         6: .line 59
            ldc ""
            putstatic com.jcraft.jsch.KeyExchange.lang_c2s:Ljava/lang/String;
         7: .line 60
            ldc ""
            putstatic com.jcraft.jsch.KeyExchange.lang_s2c:Ljava/lang/String;
         8: .line 62
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.KeyExchange this
         0: .line 32
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.KeyExchange.session:Lcom/jcraft/jsch/Session;
         2: .line 65
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.KeyExchange.sha:Lcom/jcraft/jsch/HASH;
         3: .line 66
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.KeyExchange.K:[B
         4: .line 67
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.KeyExchange.H:[B
         5: .line 68
            aload 0 /* this */
            aconst_null
            putfield com.jcraft.jsch.KeyExchange.K_S:[B
         6: .line 76
            aload 0 /* this */
            iconst_0
            putfield com.jcraft.jsch.KeyExchange.RSA:I
         7: .line 77
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.KeyExchange.DSS:I
         8: .line 78
            aload 0 /* this */
            iconst_2
            putfield com.jcraft.jsch.KeyExchange.ECDSA:I
         9: .line 79
            aload 0 /* this */
            iconst_0
            putfield com.jcraft.jsch.KeyExchange.type:I
        10: .line 80
            aload 0 /* this */
            ldc ""
            putfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
        11: .line 32
            return
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/jcraft/jsch/KeyExchange;

  public abstract void init(com.jcraft.jsch.Session, byte[], byte[], byte[], byte[]);
    descriptor: (Lcom/jcraft/jsch/Session;[B[B[B[B)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      session  
      V_S      
      V_C      
      I_S      
      I_C      

  public abstract boolean next(com.jcraft.jsch.Buffer);
    descriptor: (Lcom/jcraft/jsch/Buffer;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      buf   

  public abstract int getState();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public java.lang.String getKeyType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.KeyExchange this
         0: .line 83
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.type:I
            iconst_1
            if_icmpne 1
            ldc "DSA"
            areturn
         1: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.type:I
            ifne 2
            ldc "RSA"
            areturn
         2: .line 85
      StackMap locals:
      StackMap stack:
            ldc "ECDSA"
            areturn
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/jcraft/jsch/KeyExchange;

  public java.lang.String getKeyAlgorithName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.KeyExchange this
         0: .line 89
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
            areturn
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jcraft/jsch/KeyExchange;

  protected static java.lang.String[] guess(byte[], byte[]);
    descriptor: ([B[B)[Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=2
        start local 0 // byte[] I_S
        start local 1 // byte[] I_C
         0: .line 93
            bipush 10
            anewarray java.lang.String
            astore 2 /* guess */
        start local 2 // java.lang.String[] guess
         1: .line 94
            new com.jcraft.jsch.Buffer
            dup
            aload 0 /* I_S */
            invokespecial com.jcraft.jsch.Buffer.<init>:([B)V
            astore 3 /* sb */
        start local 3 // com.jcraft.jsch.Buffer sb
         2: aload 3 /* sb */
            bipush 17
            invokevirtual com.jcraft.jsch.Buffer.setOffSet:(I)V
         3: .line 95
            new com.jcraft.jsch.Buffer
            dup
            aload 1 /* I_C */
            invokespecial com.jcraft.jsch.Buffer.<init>:([B)V
            astore 4 /* cb */
        start local 4 // com.jcraft.jsch.Buffer cb
         4: aload 4 /* cb */
            bipush 17
            invokevirtual com.jcraft.jsch.Buffer.setOffSet:(I)V
         5: .line 97
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
            invokeinterface com.jcraft.jsch.Logger.isEnabled:(I)Z
            ifeq 22
         6: .line 98
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 12
         8: .line 99
      StackMap locals: byte[] byte[] java.lang.String[] com.jcraft.jsch.Buffer com.jcraft.jsch.Buffer int
      StackMap stack:
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
         9: .line 100
            new java.lang.StringBuilder
            dup
            ldc "kex: server: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* sb */
            invokevirtual com.jcraft.jsch.Buffer.getString:()[B
            invokestatic com.jcraft.jsch.Util.byte2str:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 99
            invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
        11: .line 98
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            bipush 10
            if_icmplt 8
        end local 5 // int i
        13: .line 102
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        14: goto 19
        15: .line 103
      StackMap locals:
      StackMap stack:
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
        16: .line 104
            new java.lang.StringBuilder
            dup
            ldc "kex: client: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* cb */
            invokevirtual com.jcraft.jsch.Buffer.getString:()[B
            invokestatic com.jcraft.jsch.Util.byte2str:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 103
            invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
        18: .line 102
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 5 /* i */
            bipush 10
            if_icmplt 15
        end local 5 // int i
        20: .line 106
            aload 3 /* sb */
            bipush 17
            invokevirtual com.jcraft.jsch.Buffer.setOffSet:(I)V
        21: .line 107
            aload 4 /* cb */
            bipush 17
            invokevirtual com.jcraft.jsch.Buffer.setOffSet:(I)V
        22: .line 110
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        23: goto 54
        24: .line 111
      StackMap locals: int
      StackMap stack:
            aload 3 /* sb */
            invokevirtual com.jcraft.jsch.Buffer.getString:()[B
            astore 6 /* sp */
        start local 6 // byte[] sp
        25: .line 112
            aload 4 /* cb */
            invokevirtual com.jcraft.jsch.Buffer.getString:()[B
            astore 7 /* cp */
        start local 7 // byte[] cp
        26: .line 113
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        27: .line 114
            iconst_0
            istore 9 /* k */
        start local 9 // int k
        28: .line 117
            goto 47
        29: .line 118
      StackMap locals: byte[] byte[] java.lang.String[] com.jcraft.jsch.Buffer com.jcraft.jsch.Buffer int byte[] byte[] int int
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        30: iload 8 /* j */
            aload 7 /* cp */
            arraylength
            if_icmpge 31
            aload 7 /* cp */
            iload 8 /* j */
            baload
            bipush 44
            if_icmpne 29
        31: .line 119
      StackMap locals:
      StackMap stack:
            iload 9 /* k */
            iload 8 /* j */
            if_icmpne 32
            aconst_null
            areturn
        32: .line 120
      StackMap locals:
      StackMap stack:
            aload 7 /* cp */
            iload 9 /* k */
            iload 8 /* j */
            iload 9 /* k */
            isub
            invokestatic com.jcraft.jsch.Util.byte2str:([BII)Ljava/lang/String;
            astore 10 /* algorithm */
        start local 10 // java.lang.String algorithm
        33: .line 121
            iconst_0
            istore 11 /* l */
        start local 11 // int l
        34: .line 122
            iconst_0
            istore 12 /* m */
        start local 12 // int m
        35: .line 123
            goto 44
        36: .line 124
      StackMap locals: java.lang.String int int
      StackMap stack:
            iinc 11 /* l */ 1
      StackMap locals:
      StackMap stack:
        37: iload 11 /* l */
            aload 6 /* sp */
            arraylength
            if_icmpge 38
            aload 6 /* sp */
            iload 11 /* l */
            baload
            bipush 44
            if_icmpne 36
        38: .line 125
      StackMap locals:
      StackMap stack:
            iload 12 /* m */
            iload 11 /* l */
            if_icmpne 39
            aconst_null
            areturn
        39: .line 126
      StackMap locals:
      StackMap stack:
            aload 10 /* algorithm */
            aload 6 /* sp */
            iload 12 /* m */
            iload 11 /* l */
            iload 12 /* m */
            isub
            invokestatic com.jcraft.jsch.Util.byte2str:([BII)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 42
        40: .line 127
            aload 2 /* guess */
            iload 5 /* i */
            aload 10 /* algorithm */
            aastore
        41: .line 128
            goto 48
        42: .line 130
      StackMap locals:
      StackMap stack:
            iinc 11 /* l */ 1
        43: .line 131
            iload 11 /* l */
            istore 12 /* m */
        44: .line 123
      StackMap locals:
      StackMap stack:
            iload 11 /* l */
            aload 6 /* sp */
            arraylength
            if_icmplt 37
        45: .line 133
            iinc 8 /* j */ 1
        46: .line 134
            iload 8 /* j */
            istore 9 /* k */
        end local 12 // int m
        end local 11 // int l
        end local 10 // java.lang.String algorithm
        47: .line 117
      StackMap locals:
      StackMap stack:
            iload 8 /* j */
            aload 7 /* cp */
            arraylength
            if_icmplt 30
        48: .line 136
      StackMap locals:
      StackMap stack:
            iload 8 /* j */
            ifne 51
        49: .line 137
            aload 2 /* guess */
            iload 5 /* i */
            ldc ""
            aastore
        50: .line 138
            goto 53
        51: .line 139
      StackMap locals:
      StackMap stack:
            aload 2 /* guess */
            iload 5 /* i */
            aaload
            ifnonnull 53
        52: .line 140
            aconst_null
            areturn
        end local 9 // int k
        end local 8 // int j
        end local 7 // byte[] cp
        end local 6 // byte[] sp
        53: .line 110
      StackMap locals: byte[] byte[] java.lang.String[] com.jcraft.jsch.Buffer com.jcraft.jsch.Buffer int
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        54: iload 5 /* i */
            bipush 10
            if_icmplt 24
        end local 5 // int i
        55: .line 144
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
            invokeinterface com.jcraft.jsch.Logger.isEnabled:(I)Z
            ifeq 70
        56: .line 145
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
        57: .line 146
            new java.lang.StringBuilder
            dup
            ldc "kex: server->client "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        58: .line 147
            aload 2 /* guess */
            iconst_3
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        59: .line 148
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* guess */
            iconst_5
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        60: .line 149
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* guess */
            bipush 7
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        61: .line 146
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        62: .line 145
            invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
        63: .line 150
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
        64: .line 151
            new java.lang.StringBuilder
            dup
            ldc "kex: client->server "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        65: .line 152
            aload 2 /* guess */
            iconst_2
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        66: .line 153
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* guess */
            iconst_4
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        67: .line 154
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* guess */
            bipush 6
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        68: .line 151
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        69: .line 150
            invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
        70: .line 157
      StackMap locals:
      StackMap stack:
            aload 2 /* guess */
            areturn
        end local 4 // com.jcraft.jsch.Buffer cb
        end local 3 // com.jcraft.jsch.Buffer sb
        end local 2 // java.lang.String[] guess
        end local 1 // byte[] I_C
        end local 0 // byte[] I_S
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   71     0        I_S  [B
            0   71     1        I_C  [B
            1   71     2      guess  [Ljava/lang/String;
            2   71     3         sb  Lcom/jcraft/jsch/Buffer;
            4   71     4         cb  Lcom/jcraft/jsch/Buffer;
            7   13     5          i  I
           14   20     5          i  I
           23   55     5          i  I
           25   53     6         sp  [B
           26   53     7         cp  [B
           27   53     8          j  I
           28   53     9          k  I
           33   47    10  algorithm  Ljava/lang/String;
           34   47    11          l  I
           35   47    12          m  I
    MethodParameters:
      Name  Flags
      I_S   
      I_C   

  public java.lang.String getFingerPrint();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.jcraft.jsch.KeyExchange this
         0: .line 161
            aconst_null
            astore 1 /* hash */
        start local 1 // com.jcraft.jsch.HASH hash
         1: .line 163
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.session:Lcom/jcraft/jsch/Session;
            ldc "md5"
            invokevirtual com.jcraft.jsch.Session.getConfig:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* c */
        start local 2 // java.lang.Class c
         2: .line 164
            aload 2 /* c */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast com.jcraft.jsch.HASH
            astore 1 /* hash */
        end local 2 // java.lang.Class c
         3: .line 165
            goto 6
         4: .line 166
      StackMap locals: com.jcraft.jsch.KeyExchange com.jcraft.jsch.HASH
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         5: getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "getFingerPrint: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 2 // java.lang.Exception e
         6: .line 167
      StackMap locals:
      StackMap stack:
            aload 1 /* hash */
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.KeyExchange.getHostKey:()[B
            invokestatic com.jcraft.jsch.Util.getFingerPrint:(Lcom/jcraft/jsch/HASH;[B)Ljava/lang/String;
            areturn
        end local 1 // com.jcraft.jsch.HASH hash
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/jcraft/jsch/KeyExchange;
            1    7     1  hash  Lcom/jcraft/jsch/HASH;
            2    3     2     c  Ljava/lang/Class;
            5    6     2     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.Exception

  byte[] getK();
    descriptor: ()[B
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.KeyExchange this
         0: .line 169
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.K:[B
            areturn
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jcraft/jsch/KeyExchange;

  byte[] getH();
    descriptor: ()[B
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.KeyExchange this
         0: .line 170
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.H:[B
            areturn
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jcraft/jsch/KeyExchange;

  com.jcraft.jsch.HASH getHash();
    descriptor: ()Lcom/jcraft/jsch/HASH;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.KeyExchange this
         0: .line 171
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.sha:Lcom/jcraft/jsch/HASH;
            areturn
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jcraft/jsch/KeyExchange;

  byte[] getHostKey();
    descriptor: ()[B
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.KeyExchange this
         0: .line 172
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.K_S:[B
            areturn
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jcraft/jsch/KeyExchange;

  protected byte[] normalize(byte[]);
    descriptor: ([B)[B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.jcraft.jsch.KeyExchange this
        start local 1 // byte[] secret
         0: .line 180
            aload 1 /* secret */
            arraylength
            iconst_1
            if_icmple 5
         1: .line 181
            aload 1 /* secret */
            iconst_0
            baload
            ifne 5
            aload 1 /* secret */
            iconst_1
            baload
            sipush 128
            iand
            ifne 5
         2: .line 182
            aload 1 /* secret */
            arraylength
            iconst_1
            isub
            newarray 8
            astore 2 /* tmp */
        start local 2 // byte[] tmp
         3: .line 183
            aload 1 /* secret */
            iconst_1
            aload 2 /* tmp */
            iconst_0
            aload 2 /* tmp */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 184
            aload 0 /* this */
            aload 2 /* tmp */
            invokevirtual com.jcraft.jsch.KeyExchange.normalize:([B)[B
            areturn
        end local 2 // byte[] tmp
         5: .line 187
      StackMap locals:
      StackMap stack:
            aload 1 /* secret */
            areturn
        end local 1 // byte[] secret
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/jcraft/jsch/KeyExchange;
            0    6     1  secret  [B
            3    5     2     tmp  [B
    MethodParameters:
        Name  Flags
      secret  

  protected boolean verify(java.lang.String, byte[], int, byte[]);
    descriptor: (Ljava/lang/String;[BI[B)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=15, args_size=5
        start local 0 // com.jcraft.jsch.KeyExchange this
        start local 1 // java.lang.String alg
        start local 2 // byte[] K_S
        start local 3 // int index
        start local 4 // byte[] sig_of_H
         0: .line 195
            iload 3 /* index */
            istore 5 /* i */
        start local 5 // int i
         1: .line 196
            iconst_0
            istore 7 /* result */
        start local 7 // boolean result
         2: .line 198
            aload 1 /* alg */
            ldc "ssh-rsa"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 35
         3: .line 203
            aload 0 /* this */
            iconst_0
            putfield com.jcraft.jsch.KeyExchange.type:I
         4: .line 204
            aload 0 /* this */
            aload 1 /* alg */
            putfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
         5: .line 206
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 24
            ishl
            ldc -16777216
            iand
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 16
            ishl
            ldc 16711680
            iand
            ior
         6: .line 207
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 8
            ishl
            ldc 65280
            iand
         7: .line 206
            ior
         8: .line 207
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            sipush 255
            iand
         9: .line 206
            ior
            istore 6 /* j */
        start local 6 // int j
        10: .line 208
            iload 6 /* j */
            newarray 8
            astore 8 /* tmp */
        start local 8 // byte[] tmp
        11: aload 2 /* K_S */
            iload 5 /* i */
            aload 8 /* tmp */
            iconst_0
            iload 6 /* j */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 5 /* i */
            iload 6 /* j */
            iadd
            istore 5 /* i */
        12: .line 209
            aload 8 /* tmp */
            astore 9 /* ee */
        start local 9 // byte[] ee
        13: .line 210
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 24
            ishl
            ldc -16777216
            iand
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 16
            ishl
            ldc 16711680
            iand
            ior
        14: .line 211
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 8
            ishl
            ldc 65280
            iand
        15: .line 210
            ior
        16: .line 211
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            sipush 255
            iand
        17: .line 210
            ior
            istore 6 /* j */
        18: .line 212
            iload 6 /* j */
            newarray 8
            astore 8 /* tmp */
            aload 2 /* K_S */
            iload 5 /* i */
            aload 8 /* tmp */
            iconst_0
            iload 6 /* j */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 5 /* i */
            iload 6 /* j */
            iadd
            istore 5 /* i */
        19: .line 213
            aload 8 /* tmp */
            astore 10 /* n */
        start local 10 // byte[] n
        20: .line 215
            aconst_null
            astore 11 /* sig */
        start local 11 // com.jcraft.jsch.SignatureRSA sig
        21: .line 217
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.session:Lcom/jcraft/jsch/Session;
            ldc "signature.rsa"
            invokevirtual com.jcraft.jsch.Session.getConfig:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 12 /* c */
        start local 12 // java.lang.Class c
        22: .line 218
            aload 12 /* c */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast com.jcraft.jsch.SignatureRSA
            astore 11 /* sig */
        23: .line 219
            aload 11 /* sig */
            invokeinterface com.jcraft.jsch.SignatureRSA.init:()V
        end local 12 // java.lang.Class c
        24: .line 220
            goto 27
        25: .line 221
      StackMap locals: com.jcraft.jsch.KeyExchange java.lang.String byte[] int byte[] int int int byte[] byte[] byte[] com.jcraft.jsch.SignatureRSA
      StackMap stack: java.lang.Exception
            astore 12 /* e */
        start local 12 // java.lang.Exception e
        26: .line 222
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 12 /* e */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        end local 12 // java.lang.Exception e
        27: .line 224
      StackMap locals:
      StackMap stack:
            aload 11 /* sig */
            aload 9 /* ee */
            aload 10 /* n */
            invokeinterface com.jcraft.jsch.SignatureRSA.setPubKey:([B[B)V
        28: .line 225
            aload 11 /* sig */
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.H:[B
            invokeinterface com.jcraft.jsch.SignatureRSA.update:([B)V
        29: .line 226
            aload 11 /* sig */
            aload 4 /* sig_of_H */
            invokeinterface com.jcraft.jsch.SignatureRSA.verify:([B)Z
            istore 7 /* result */
        30: .line 228
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
            invokeinterface com.jcraft.jsch.Logger.isEnabled:(I)Z
            ifeq 119
        31: .line 229
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
        32: .line 230
            new java.lang.StringBuilder
            dup
            ldc "ssh_rsa_verify: signature "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* result */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        33: .line 229
            invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
        end local 11 // com.jcraft.jsch.SignatureRSA sig
        end local 10 // byte[] n
        end local 9 // byte[] ee
        end local 8 // byte[] tmp
        34: .line 232
            goto 119
        end local 6 // int j
        35: .line 233
      StackMap locals: com.jcraft.jsch.KeyExchange java.lang.String byte[] int byte[] int top int
      StackMap stack:
            aload 1 /* alg */
            ldc "ssh-dss"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 83
        36: .line 234
            aconst_null
            astore 8 /* q */
        start local 8 // byte[] q
        37: .line 240
            aload 0 /* this */
            iconst_1
            putfield com.jcraft.jsch.KeyExchange.type:I
        38: .line 241
            aload 0 /* this */
            aload 1 /* alg */
            putfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
        39: .line 243
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 24
            ishl
            ldc -16777216
            iand
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 16
            ishl
            ldc 16711680
            iand
            ior
        40: .line 244
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 8
            ishl
            ldc 65280
            iand
        41: .line 243
            ior
        42: .line 244
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            sipush 255
            iand
        43: .line 243
            ior
            istore 6 /* j */
        start local 6 // int j
        44: .line 245
            iload 6 /* j */
            newarray 8
            astore 9 /* tmp */
        start local 9 // byte[] tmp
        45: aload 2 /* K_S */
            iload 5 /* i */
            aload 9 /* tmp */
            iconst_0
            iload 6 /* j */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 5 /* i */
            iload 6 /* j */
            iadd
            istore 5 /* i */
        46: .line 246
            aload 9 /* tmp */
            astore 10 /* p */
        start local 10 // byte[] p
        47: .line 247
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 24
            ishl
            ldc -16777216
            iand
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 16
            ishl
            ldc 16711680
            iand
            ior
        48: .line 248
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 8
            ishl
            ldc 65280
            iand
        49: .line 247
            ior
        50: .line 248
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            sipush 255
            iand
        51: .line 247
            ior
            istore 6 /* j */
        52: .line 249
            iload 6 /* j */
            newarray 8
            astore 9 /* tmp */
            aload 2 /* K_S */
            iload 5 /* i */
            aload 9 /* tmp */
            iconst_0
            iload 6 /* j */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 5 /* i */
            iload 6 /* j */
            iadd
            istore 5 /* i */
        53: .line 250
            aload 9 /* tmp */
            astore 8 /* q */
        54: .line 251
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 24
            ishl
            ldc -16777216
            iand
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 16
            ishl
            ldc 16711680
            iand
            ior
        55: .line 252
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 8
            ishl
            ldc 65280
            iand
        56: .line 251
            ior
        57: .line 252
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            sipush 255
            iand
        58: .line 251
            ior
            istore 6 /* j */
        59: .line 253
            iload 6 /* j */
            newarray 8
            astore 9 /* tmp */
            aload 2 /* K_S */
            iload 5 /* i */
            aload 9 /* tmp */
            iconst_0
            iload 6 /* j */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 5 /* i */
            iload 6 /* j */
            iadd
            istore 5 /* i */
        60: .line 254
            aload 9 /* tmp */
            astore 11 /* g */
        start local 11 // byte[] g
        61: .line 255
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 24
            ishl
            ldc -16777216
            iand
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 16
            ishl
            ldc 16711680
            iand
            ior
        62: .line 256
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 8
            ishl
            ldc 65280
            iand
        63: .line 255
            ior
        64: .line 256
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            sipush 255
            iand
        65: .line 255
            ior
            istore 6 /* j */
        66: .line 257
            iload 6 /* j */
            newarray 8
            astore 9 /* tmp */
            aload 2 /* K_S */
            iload 5 /* i */
            aload 9 /* tmp */
            iconst_0
            iload 6 /* j */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 5 /* i */
            iload 6 /* j */
            iadd
            istore 5 /* i */
        67: .line 258
            aload 9 /* tmp */
            astore 12 /* f */
        start local 12 // byte[] f
        68: .line 260
            aconst_null
            astore 13 /* sig */
        start local 13 // com.jcraft.jsch.SignatureDSA sig
        69: .line 262
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.session:Lcom/jcraft/jsch/Session;
            ldc "signature.dss"
            invokevirtual com.jcraft.jsch.Session.getConfig:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 14 /* c */
        start local 14 // java.lang.Class c
        70: .line 263
            aload 14 /* c */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast com.jcraft.jsch.SignatureDSA
            astore 13 /* sig */
        71: .line 264
            aload 13 /* sig */
            invokeinterface com.jcraft.jsch.SignatureDSA.init:()V
        end local 14 // java.lang.Class c
        72: .line 265
            goto 75
        73: .line 266
      StackMap locals: com.jcraft.jsch.KeyExchange java.lang.String byte[] int byte[] int int int byte[] byte[] byte[] byte[] byte[] com.jcraft.jsch.SignatureDSA
      StackMap stack: java.lang.Exception
            astore 14 /* e */
        start local 14 // java.lang.Exception e
        74: .line 267
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 14 /* e */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        end local 14 // java.lang.Exception e
        75: .line 269
      StackMap locals:
      StackMap stack:
            aload 13 /* sig */
            aload 12 /* f */
            aload 10 /* p */
            aload 8 /* q */
            aload 11 /* g */
            invokeinterface com.jcraft.jsch.SignatureDSA.setPubKey:([B[B[B[B)V
        76: .line 270
            aload 13 /* sig */
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.H:[B
            invokeinterface com.jcraft.jsch.SignatureDSA.update:([B)V
        77: .line 271
            aload 13 /* sig */
            aload 4 /* sig_of_H */
            invokeinterface com.jcraft.jsch.SignatureDSA.verify:([B)Z
            istore 7 /* result */
        78: .line 273
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
            invokeinterface com.jcraft.jsch.Logger.isEnabled:(I)Z
            ifeq 119
        79: .line 274
            invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
            iconst_1
        80: .line 275
            new java.lang.StringBuilder
            dup
            ldc "ssh_dss_verify: signature "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* result */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        81: .line 274
            invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
        end local 13 // com.jcraft.jsch.SignatureDSA sig
        end local 12 // byte[] f
        end local 11 // byte[] g
        end local 10 // byte[] p
        end local 9 // byte[] tmp
        end local 8 // byte[] q
        82: .line 277
            goto 119
        end local 6 // int j
        83: .line 278
      StackMap locals: com.jcraft.jsch.KeyExchange java.lang.String byte[] int byte[] int top int
      StackMap stack:
            aload 1 /* alg */
            ldc "ecdsa-sha2-nistp256"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 86
        84: .line 279
            aload 1 /* alg */
            ldc "ecdsa-sha2-nistp384"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 86
        85: .line 280
            aload 1 /* alg */
            ldc "ecdsa-sha2-nistp521"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 118
        86: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield com.jcraft.jsch.KeyExchange.type:I
        87: .line 287
            aload 0 /* this */
            aload 1 /* alg */
            putfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
        88: .line 289
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 24
            ishl
            ldc -16777216
            iand
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 16
            ishl
            ldc 16711680
            iand
            ior
        89: .line 290
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 8
            ishl
            ldc 65280
            iand
        90: .line 289
            ior
        91: .line 290
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            sipush 255
            iand
        92: .line 289
            ior
            istore 6 /* j */
        start local 6 // int j
        93: .line 291
            iload 6 /* j */
            newarray 8
            astore 8 /* tmp */
        start local 8 // byte[] tmp
        94: aload 2 /* K_S */
            iload 5 /* i */
            aload 8 /* tmp */
            iconst_0
            iload 6 /* j */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 5 /* i */
            iload 6 /* j */
            iadd
            istore 5 /* i */
        95: .line 292
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 24
            ishl
            ldc -16777216
            iand
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 16
            ishl
            ldc 16711680
            iand
            ior
        96: .line 293
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            bipush 8
            ishl
            ldc 65280
            iand
        97: .line 292
            ior
        98: .line 293
            aload 2 /* K_S */
            iload 5 /* i */
            iinc 5 /* i */ 1
            baload
            sipush 255
            iand
        99: .line 292
            ior
            istore 6 /* j */
       100: .line 294
            iinc 5 /* i */ 1
       101: .line 295
            iload 6 /* j */
            iconst_1
            isub
            iconst_2
            idiv
            newarray 8
            astore 8 /* tmp */
       102: .line 296
            aload 2 /* K_S */
            iload 5 /* i */
            aload 8 /* tmp */
            iconst_0
            aload 8 /* tmp */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 5 /* i */
            iload 6 /* j */
            iconst_1
            isub
            iconst_2
            idiv
            iadd
            istore 5 /* i */
       103: .line 297
            aload 8 /* tmp */
            astore 9 /* r */
        start local 9 // byte[] r
       104: .line 298
            iload 6 /* j */
            iconst_1
            isub
            iconst_2
            idiv
            newarray 8
            astore 8 /* tmp */
       105: .line 299
            aload 2 /* K_S */
            iload 5 /* i */
            aload 8 /* tmp */
            iconst_0
            aload 8 /* tmp */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            iload 5 /* i */
            iload 6 /* j */
            iconst_1
            isub
            iconst_2
            idiv
            iadd
            istore 5 /* i */
       106: .line 300
            aload 8 /* tmp */
            astore 10 /* s */
        start local 10 // byte[] s
       107: .line 302
            aconst_null
            astore 11 /* sig */
        start local 11 // com.jcraft.jsch.SignatureECDSA sig
       108: .line 304
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.session:Lcom/jcraft/jsch/Session;
            aload 1 /* alg */
            invokevirtual com.jcraft.jsch.Session.getConfig:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 12 /* c */
        start local 12 // java.lang.Class c
       109: .line 305
            aload 12 /* c */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast com.jcraft.jsch.SignatureECDSA
            astore 11 /* sig */
       110: .line 306
            aload 11 /* sig */
            invokeinterface com.jcraft.jsch.SignatureECDSA.init:()V
        end local 12 // java.lang.Class c
       111: .line 307
            goto 114
       112: .line 308
      StackMap locals: com.jcraft.jsch.KeyExchange java.lang.String byte[] int byte[] int int int byte[] byte[] byte[] com.jcraft.jsch.SignatureECDSA
      StackMap stack: java.lang.Exception
            astore 12 /* e */
        start local 12 // java.lang.Exception e
       113: .line 309
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 12 /* e */
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
        end local 12 // java.lang.Exception e
       114: .line 312
      StackMap locals:
      StackMap stack:
            aload 11 /* sig */
            aload 9 /* r */
            aload 10 /* s */
            invokeinterface com.jcraft.jsch.SignatureECDSA.setPubKey:([B[B)V
       115: .line 314
            aload 11 /* sig */
            aload 0 /* this */
            getfield com.jcraft.jsch.KeyExchange.H:[B
            invokeinterface com.jcraft.jsch.SignatureECDSA.update:([B)V
       116: .line 316
            aload 11 /* sig */
            aload 4 /* sig_of_H */
            invokeinterface com.jcraft.jsch.SignatureECDSA.verify:([B)Z
            istore 7 /* result */
        end local 11 // com.jcraft.jsch.SignatureECDSA sig
        end local 10 // byte[] s
        end local 9 // byte[] r
        end local 8 // byte[] tmp
       117: .line 317
            goto 119
        end local 6 // int j
       118: .line 319
      StackMap locals: com.jcraft.jsch.KeyExchange java.lang.String byte[] int byte[] int top int
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "unknown alg"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       119: .line 322
      StackMap locals:
      StackMap stack:
            iload 7 /* result */
            ireturn
        end local 7 // boolean result
        end local 5 // int i
        end local 4 // byte[] sig_of_H
        end local 3 // int index
        end local 2 // byte[] K_S
        end local 1 // java.lang.String alg
        end local 0 // com.jcraft.jsch.KeyExchange this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0  120     0      this  Lcom/jcraft/jsch/KeyExchange;
            0  120     1       alg  Ljava/lang/String;
            0  120     2       K_S  [B
            0  120     3     index  I
            0  120     4  sig_of_H  [B
            1  120     5         i  I
           10   35     6         j  I
           44   83     6         j  I
           93  118     6         j  I
            2  120     7    result  Z
           11   34     8       tmp  [B
           13   34     9        ee  [B
           20   34    10         n  [B
           21   34    11       sig  Lcom/jcraft/jsch/SignatureRSA;
           22   24    12         c  Ljava/lang/Class;
           26   27    12         e  Ljava/lang/Exception;
           37   82     8         q  [B
           45   82     9       tmp  [B
           47   82    10         p  [B
           61   82    11         g  [B
           68   82    12         f  [B
           69   82    13       sig  Lcom/jcraft/jsch/SignatureDSA;
           70   72    14         c  Ljava/lang/Class;
           74   75    14         e  Ljava/lang/Exception;
           94  117     8       tmp  [B
          104  117     9         r  [B
          107  117    10         s  [B
          108  117    11       sig  Lcom/jcraft/jsch/SignatureECDSA;
          109  111    12         c  Ljava/lang/Class;
          113  114    12         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          21    24      25  Class java.lang.Exception
          69    72      73  Class java.lang.Exception
         108   111     112  Class java.lang.Exception
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
          Name  Flags
      alg       
      K_S       
      index     
      sig_of_H  
}
SourceFile: "KeyExchange.java"