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: ldc "diffie-hellman-group1-sha1"
putstatic com.jcraft.jsch.KeyExchange.kex:Ljava/lang/String;
1: ldc "ssh-rsa,ssh-dss"
putstatic com.jcraft.jsch.KeyExchange.server_host_key:Ljava/lang/String;
2: ldc "blowfish-cbc"
putstatic com.jcraft.jsch.KeyExchange.enc_c2s:Ljava/lang/String;
3: ldc "blowfish-cbc"
putstatic com.jcraft.jsch.KeyExchange.enc_s2c:Ljava/lang/String;
4: ldc "hmac-md5"
putstatic com.jcraft.jsch.KeyExchange.mac_c2s:Ljava/lang/String;
5: ldc "hmac-md5"
putstatic com.jcraft.jsch.KeyExchange.mac_s2c:Ljava/lang/String;
6: ldc ""
putstatic com.jcraft.jsch.KeyExchange.lang_c2s:Ljava/lang/String;
7: ldc ""
putstatic com.jcraft.jsch.KeyExchange.lang_s2c:Ljava/lang/String;
8: 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 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield com.jcraft.jsch.KeyExchange.session:Lcom/jcraft/jsch/Session;
2: aload 0
aconst_null
putfield com.jcraft.jsch.KeyExchange.sha:Lcom/jcraft/jsch/HASH;
3: aload 0
aconst_null
putfield com.jcraft.jsch.KeyExchange.K:[B
4: aload 0
aconst_null
putfield com.jcraft.jsch.KeyExchange.H:[B
5: aload 0
aconst_null
putfield com.jcraft.jsch.KeyExchange.K_S:[B
6: aload 0
iconst_0
putfield com.jcraft.jsch.KeyExchange.RSA:I
7: aload 0
iconst_1
putfield com.jcraft.jsch.KeyExchange.DSS:I
8: aload 0
iconst_2
putfield com.jcraft.jsch.KeyExchange.ECDSA:I
9: aload 0
iconst_0
putfield com.jcraft.jsch.KeyExchange.type:I
10: aload 0
ldc ""
putfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
11: return
end local 0 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 0: aload 0
getfield com.jcraft.jsch.KeyExchange.type:I
iconst_1
if_icmpne 1
ldc "DSA"
areturn
1: StackMap locals:
StackMap stack:
aload 0
getfield com.jcraft.jsch.KeyExchange.type:I
ifne 2
ldc "RSA"
areturn
2: StackMap locals:
StackMap stack:
ldc "ECDSA"
areturn
end local 0 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 0: aload 0
getfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
areturn
end local 0 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 start local 1 0: bipush 10
anewarray java.lang.String
astore 2
start local 2 1: new com.jcraft.jsch.Buffer
dup
aload 0
invokespecial com.jcraft.jsch.Buffer.<init>:([B)V
astore 3
start local 3 2: aload 3
bipush 17
invokevirtual com.jcraft.jsch.Buffer.setOffSet:(I)V
3: new com.jcraft.jsch.Buffer
dup
aload 1
invokespecial com.jcraft.jsch.Buffer.<init>:([B)V
astore 4
start local 4 4: aload 4
bipush 17
invokevirtual com.jcraft.jsch.Buffer.setOffSet:(I)V
5: invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
iconst_1
invokeinterface com.jcraft.jsch.Logger.isEnabled:(I)Z
ifeq 22
6: iconst_0
istore 5
start local 5 7: goto 12
8: 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: new java.lang.StringBuilder
dup
ldc "kex: server: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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: invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
11: iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
bipush 10
if_icmplt 8
end local 5 13: iconst_0
istore 5
start local 5 14: goto 19
15: StackMap locals:
StackMap stack:
invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
iconst_1
16: new java.lang.StringBuilder
dup
ldc "kex: client: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
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: invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
18: iinc 5 1
StackMap locals:
StackMap stack:
19: iload 5
bipush 10
if_icmplt 15
end local 5 20: aload 3
bipush 17
invokevirtual com.jcraft.jsch.Buffer.setOffSet:(I)V
21: aload 4
bipush 17
invokevirtual com.jcraft.jsch.Buffer.setOffSet:(I)V
22: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 23: goto 54
24: StackMap locals: int
StackMap stack:
aload 3
invokevirtual com.jcraft.jsch.Buffer.getString:()[B
astore 6
start local 6 25: aload 4
invokevirtual com.jcraft.jsch.Buffer.getString:()[B
astore 7
start local 7 26: iconst_0
istore 8
start local 8 27: iconst_0
istore 9
start local 9 28: goto 47
29: StackMap locals: byte[] byte[] java.lang.String[] com.jcraft.jsch.Buffer com.jcraft.jsch.Buffer int byte[] byte[] int int
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
30: iload 8
aload 7
arraylength
if_icmpge 31
aload 7
iload 8
baload
bipush 44
if_icmpne 29
31: StackMap locals:
StackMap stack:
iload 9
iload 8
if_icmpne 32
aconst_null
areturn
32: StackMap locals:
StackMap stack:
aload 7
iload 9
iload 8
iload 9
isub
invokestatic com.jcraft.jsch.Util.byte2str:([BII)Ljava/lang/String;
astore 10
start local 10 33: iconst_0
istore 11
start local 11 34: iconst_0
istore 12
start local 12 35: goto 44
36: StackMap locals: java.lang.String int int
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
37: iload 11
aload 6
arraylength
if_icmpge 38
aload 6
iload 11
baload
bipush 44
if_icmpne 36
38: StackMap locals:
StackMap stack:
iload 12
iload 11
if_icmpne 39
aconst_null
areturn
39: StackMap locals:
StackMap stack:
aload 10
aload 6
iload 12
iload 11
iload 12
isub
invokestatic com.jcraft.jsch.Util.byte2str:([BII)Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 42
40: aload 2
iload 5
aload 10
aastore
41: goto 48
42: StackMap locals:
StackMap stack:
iinc 11 1
43: iload 11
istore 12
44: StackMap locals:
StackMap stack:
iload 11
aload 6
arraylength
if_icmplt 37
45: iinc 8 1
46: iload 8
istore 9
end local 12 end local 11 end local 10 47: StackMap locals:
StackMap stack:
iload 8
aload 7
arraylength
if_icmplt 30
48: StackMap locals:
StackMap stack:
iload 8
ifne 51
49: aload 2
iload 5
ldc ""
aastore
50: goto 53
51: StackMap locals:
StackMap stack:
aload 2
iload 5
aaload
ifnonnull 53
52: aconst_null
areturn
end local 9 end local 8 end local 7 end local 6 53: StackMap locals: byte[] byte[] java.lang.String[] com.jcraft.jsch.Buffer com.jcraft.jsch.Buffer int
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
54: iload 5
bipush 10
if_icmplt 24
end local 5 55: invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
iconst_1
invokeinterface com.jcraft.jsch.Logger.isEnabled:(I)Z
ifeq 70
56: invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
iconst_1
57: new java.lang.StringBuilder
dup
ldc "kex: server->client "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
58: aload 2
iconst_3
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
59: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
iconst_5
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
60: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
bipush 7
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
61: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
62: invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
63: invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
iconst_1
64: new java.lang.StringBuilder
dup
ldc "kex: client->server "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
65: aload 2
iconst_2
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
66: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
iconst_4
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
67: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
bipush 6
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
68: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
69: invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
70: StackMap locals:
StackMap stack:
aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 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 0: aconst_null
astore 1
start local 1 1: aload 0
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
start local 2 2: aload 2
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast com.jcraft.jsch.HASH
astore 1
end local 2 3: goto 6
4: StackMap locals: com.jcraft.jsch.KeyExchange com.jcraft.jsch.HASH
StackMap stack: java.lang.Exception
astore 2
start local 2 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
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 6: StackMap locals:
StackMap stack:
aload 1
aload 0
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 end local 0 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 0: aload 0
getfield com.jcraft.jsch.KeyExchange.K:[B
areturn
end local 0 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 0: aload 0
getfield com.jcraft.jsch.KeyExchange.H:[B
areturn
end local 0 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 0: aload 0
getfield com.jcraft.jsch.KeyExchange.sha:Lcom/jcraft/jsch/HASH;
areturn
end local 0 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 0: aload 0
getfield com.jcraft.jsch.KeyExchange.K_S:[B
areturn
end local 0 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 start local 1 0: aload 1
arraylength
iconst_1
if_icmple 5
1: aload 1
iconst_0
baload
ifne 5
aload 1
iconst_1
baload
sipush 128
iand
ifne 5
2: aload 1
arraylength
iconst_1
isub
newarray 8
astore 2
start local 2 3: aload 1
iconst_1
aload 2
iconst_0
aload 2
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 0
aload 2
invokevirtual com.jcraft.jsch.KeyExchange.normalize:([B)[B
areturn
end local 2 5: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 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 start local 1 start local 2 start local 3 start local 4 0: iload 3
istore 5
start local 5 1: iconst_0
istore 7
start local 7 2: aload 1
ldc "ssh-rsa"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 35
3: aload 0
iconst_0
putfield com.jcraft.jsch.KeyExchange.type:I
4: aload 0
aload 1
putfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
5: aload 2
iload 5
iinc 5 1
baload
bipush 24
ishl
ldc -16777216
iand
aload 2
iload 5
iinc 5 1
baload
bipush 16
ishl
ldc 16711680
iand
ior
6: aload 2
iload 5
iinc 5 1
baload
bipush 8
ishl
ldc 65280
iand
7: ior
8: aload 2
iload 5
iinc 5 1
baload
sipush 255
iand
9: ior
istore 6
start local 6 10: iload 6
newarray 8
astore 8
start local 8 11: aload 2
iload 5
aload 8
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
iload 5
iload 6
iadd
istore 5
12: aload 8
astore 9
start local 9 13: aload 2
iload 5
iinc 5 1
baload
bipush 24
ishl
ldc -16777216
iand
aload 2
iload 5
iinc 5 1
baload
bipush 16
ishl
ldc 16711680
iand
ior
14: aload 2
iload 5
iinc 5 1
baload
bipush 8
ishl
ldc 65280
iand
15: ior
16: aload 2
iload 5
iinc 5 1
baload
sipush 255
iand
17: ior
istore 6
18: iload 6
newarray 8
astore 8
aload 2
iload 5
aload 8
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
iload 5
iload 6
iadd
istore 5
19: aload 8
astore 10
start local 10 20: aconst_null
astore 11
start local 11 21: aload 0
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
start local 12 22: aload 12
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast com.jcraft.jsch.SignatureRSA
astore 11
23: aload 11
invokeinterface com.jcraft.jsch.SignatureRSA.init:()V
end local 12 24: goto 27
25: 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
start local 12 26: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 12
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
end local 12 27: StackMap locals:
StackMap stack:
aload 11
aload 9
aload 10
invokeinterface com.jcraft.jsch.SignatureRSA.setPubKey:([B[B)V
28: aload 11
aload 0
getfield com.jcraft.jsch.KeyExchange.H:[B
invokeinterface com.jcraft.jsch.SignatureRSA.update:([B)V
29: aload 11
aload 4
invokeinterface com.jcraft.jsch.SignatureRSA.verify:([B)Z
istore 7
30: invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
iconst_1
invokeinterface com.jcraft.jsch.Logger.isEnabled:(I)Z
ifeq 119
31: invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
iconst_1
32: new java.lang.StringBuilder
dup
ldc "ssh_rsa_verify: signature "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
end local 11 end local 10 end local 9 end local 8 34: goto 119
end local 6 35: StackMap locals: com.jcraft.jsch.KeyExchange java.lang.String byte[] int byte[] int top int
StackMap stack:
aload 1
ldc "ssh-dss"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 83
36: aconst_null
astore 8
start local 8 37: aload 0
iconst_1
putfield com.jcraft.jsch.KeyExchange.type:I
38: aload 0
aload 1
putfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
39: aload 2
iload 5
iinc 5 1
baload
bipush 24
ishl
ldc -16777216
iand
aload 2
iload 5
iinc 5 1
baload
bipush 16
ishl
ldc 16711680
iand
ior
40: aload 2
iload 5
iinc 5 1
baload
bipush 8
ishl
ldc 65280
iand
41: ior
42: aload 2
iload 5
iinc 5 1
baload
sipush 255
iand
43: ior
istore 6
start local 6 44: iload 6
newarray 8
astore 9
start local 9 45: aload 2
iload 5
aload 9
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
iload 5
iload 6
iadd
istore 5
46: aload 9
astore 10
start local 10 47: aload 2
iload 5
iinc 5 1
baload
bipush 24
ishl
ldc -16777216
iand
aload 2
iload 5
iinc 5 1
baload
bipush 16
ishl
ldc 16711680
iand
ior
48: aload 2
iload 5
iinc 5 1
baload
bipush 8
ishl
ldc 65280
iand
49: ior
50: aload 2
iload 5
iinc 5 1
baload
sipush 255
iand
51: ior
istore 6
52: iload 6
newarray 8
astore 9
aload 2
iload 5
aload 9
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
iload 5
iload 6
iadd
istore 5
53: aload 9
astore 8
54: aload 2
iload 5
iinc 5 1
baload
bipush 24
ishl
ldc -16777216
iand
aload 2
iload 5
iinc 5 1
baload
bipush 16
ishl
ldc 16711680
iand
ior
55: aload 2
iload 5
iinc 5 1
baload
bipush 8
ishl
ldc 65280
iand
56: ior
57: aload 2
iload 5
iinc 5 1
baload
sipush 255
iand
58: ior
istore 6
59: iload 6
newarray 8
astore 9
aload 2
iload 5
aload 9
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
iload 5
iload 6
iadd
istore 5
60: aload 9
astore 11
start local 11 61: aload 2
iload 5
iinc 5 1
baload
bipush 24
ishl
ldc -16777216
iand
aload 2
iload 5
iinc 5 1
baload
bipush 16
ishl
ldc 16711680
iand
ior
62: aload 2
iload 5
iinc 5 1
baload
bipush 8
ishl
ldc 65280
iand
63: ior
64: aload 2
iload 5
iinc 5 1
baload
sipush 255
iand
65: ior
istore 6
66: iload 6
newarray 8
astore 9
aload 2
iload 5
aload 9
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
iload 5
iload 6
iadd
istore 5
67: aload 9
astore 12
start local 12 68: aconst_null
astore 13
start local 13 69: aload 0
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
start local 14 70: aload 14
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast com.jcraft.jsch.SignatureDSA
astore 13
71: aload 13
invokeinterface com.jcraft.jsch.SignatureDSA.init:()V
end local 14 72: goto 75
73: 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
start local 14 74: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 14
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
end local 14 75: StackMap locals:
StackMap stack:
aload 13
aload 12
aload 10
aload 8
aload 11
invokeinterface com.jcraft.jsch.SignatureDSA.setPubKey:([B[B[B[B)V
76: aload 13
aload 0
getfield com.jcraft.jsch.KeyExchange.H:[B
invokeinterface com.jcraft.jsch.SignatureDSA.update:([B)V
77: aload 13
aload 4
invokeinterface com.jcraft.jsch.SignatureDSA.verify:([B)Z
istore 7
78: invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
iconst_1
invokeinterface com.jcraft.jsch.Logger.isEnabled:(I)Z
ifeq 119
79: invokestatic com.jcraft.jsch.JSch.getLogger:()Lcom/jcraft/jsch/Logger;
iconst_1
80: new java.lang.StringBuilder
dup
ldc "ssh_dss_verify: signature "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 7
invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
81: invokeinterface com.jcraft.jsch.Logger.log:(ILjava/lang/String;)V
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 82: goto 119
end local 6 83: StackMap locals: com.jcraft.jsch.KeyExchange java.lang.String byte[] int byte[] int top int
StackMap stack:
aload 1
ldc "ecdsa-sha2-nistp256"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 86
84: aload 1
ldc "ecdsa-sha2-nistp384"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 86
85: aload 1
ldc "ecdsa-sha2-nistp521"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 118
86: StackMap locals:
StackMap stack:
aload 0
iconst_2
putfield com.jcraft.jsch.KeyExchange.type:I
87: aload 0
aload 1
putfield com.jcraft.jsch.KeyExchange.key_alg_name:Ljava/lang/String;
88: aload 2
iload 5
iinc 5 1
baload
bipush 24
ishl
ldc -16777216
iand
aload 2
iload 5
iinc 5 1
baload
bipush 16
ishl
ldc 16711680
iand
ior
89: aload 2
iload 5
iinc 5 1
baload
bipush 8
ishl
ldc 65280
iand
90: ior
91: aload 2
iload 5
iinc 5 1
baload
sipush 255
iand
92: ior
istore 6
start local 6 93: iload 6
newarray 8
astore 8
start local 8 94: aload 2
iload 5
aload 8
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
iload 5
iload 6
iadd
istore 5
95: aload 2
iload 5
iinc 5 1
baload
bipush 24
ishl
ldc -16777216
iand
aload 2
iload 5
iinc 5 1
baload
bipush 16
ishl
ldc 16711680
iand
ior
96: aload 2
iload 5
iinc 5 1
baload
bipush 8
ishl
ldc 65280
iand
97: ior
98: aload 2
iload 5
iinc 5 1
baload
sipush 255
iand
99: ior
istore 6
100: iinc 5 1
101: iload 6
iconst_1
isub
iconst_2
idiv
newarray 8
astore 8
102: aload 2
iload 5
aload 8
iconst_0
aload 8
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
iload 5
iload 6
iconst_1
isub
iconst_2
idiv
iadd
istore 5
103: aload 8
astore 9
start local 9 104: iload 6
iconst_1
isub
iconst_2
idiv
newarray 8
astore 8
105: aload 2
iload 5
aload 8
iconst_0
aload 8
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
iload 5
iload 6
iconst_1
isub
iconst_2
idiv
iadd
istore 5
106: aload 8
astore 10
start local 10 107: aconst_null
astore 11
start local 11 108: aload 0
getfield com.jcraft.jsch.KeyExchange.session:Lcom/jcraft/jsch/Session;
aload 1
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
start local 12 109: aload 12
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
checkcast com.jcraft.jsch.SignatureECDSA
astore 11
110: aload 11
invokeinterface com.jcraft.jsch.SignatureECDSA.init:()V
end local 12 111: goto 114
112: 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
start local 12 113: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 12
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
end local 12 114: StackMap locals:
StackMap stack:
aload 11
aload 9
aload 10
invokeinterface com.jcraft.jsch.SignatureECDSA.setPubKey:([B[B)V
115: aload 11
aload 0
getfield com.jcraft.jsch.KeyExchange.H:[B
invokeinterface com.jcraft.jsch.SignatureECDSA.update:([B)V
116: aload 11
aload 4
invokeinterface com.jcraft.jsch.SignatureECDSA.verify:([B)Z
istore 7
end local 11 end local 10 end local 9 end local 8 117: goto 119
end local 6 118: 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: StackMap locals:
StackMap stack:
iload 7
ireturn
end local 7 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 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"