Hello ,

We are using JSCH library to implement our SFTP client.
We need to use hmac 256 and hmac 512  algorithm so as to make our client
NIST SP 800 enabled.


We found that jsch-0.1.49 supports hmac 256.
I have implemented the code to have

config.put("cipher.c2s", "3des-cbc,aes192-cbc,aes128-cbc,aes256-cbc");
config.put("mac.c2s", "hmac-sha2-256");
session.setConfig(config);
session.connect();

Some how It does not work with the SFTP server which supports this algo.
and gives error.


com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read

We tried using sample code given at http://www.jcraft.com/jsch/examples/Logger.java and got below output.

INFO: Connecting to 9.126.142.193 port 2222
INFO: Connection established
INFO: Remote version string: SSH-2.0-${POM.ARTIFACTID}-${POM.VERSION}
INFO: Local version string: SSH-2.0-JSCH-0.1.49
INFO: CheckCiphers: aes256-ctr,aes192-ctr,aes128-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-ctr,arcfour,arcfour128,arcfour256
INFO: aes256-ctr is not available.
INFO: aes192-ctr is not available.
INFO: aes256-cbc is not available.
INFO: aes192-cbc is not available.
INFO: arcfour256 is not available.
INFO: CheckKexes: diffie-hellman-group14-sha1
INFO: SSH_MSG_KEXINIT sent
INFO: SSH_MSG_KEXINIT received
INFO: kex: server: diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
INFO: kex: server: ssh-rsa
INFO: kex: server: aes128-cbc,3des-cbc
INFO: kex: server: aes128-cbc,3des-cbc
INFO: kex: server: hmac-sha2-256
INFO: kex: server: hmac-sha2-256
INFO: kex: server: none
INFO: kex: server: none
INFO: kex: server:
INFO: kex: server:
INFO: kex: client: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1
INFO: kex: client: ssh-rsa,ssh-dss
INFO: kex: client: 3des-cbc,aes128-cbc
INFO: kex: client: aes128-ctr,aes128-cbc,3des-ctr,3des-cbc,blowfish-cbc
INFO: kex: client: hmac-sha2-256
INFO: kex: client: hmac-md5,hmac-sha1,hmac-sha2-256,hmac-sha1-96,hmac-md5-96
INFO: kex: client: none
INFO: kex: client: none
INFO: kex: client:
INFO: kex: client:
INFO: kex: server->client aes128-cbc hmac-sha2-256 none
INFO: kex: client->server 3des-cbc hmac-sha2-256 none
INFO: SSH_MSG_KEXDH_INIT sent
INFO: expecting SSH_MSG_KEXDH_REPLY
INFO: ssh_rsa_verify: signature true
WARN: Permanently added '9.126.142.193' (RSA) to the list of known hosts.
INFO: SSH_MSG_NEWKEYS sent
INFO: SSH_MSG_NEWKEYS received
INFO: SSH_MSG_SERVICE_REQUEST sent
INFO: Disconnecting from 9.126.142.193 port 2222
com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read
com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read
        at com.jcraft.jsch.Session.connect(Session.java:534)
        at com.jcraft.jsch.Session.connect(Session.java:162)
        at com.ibm.bcg.sftpclient.impl.JSCHMain.main(JSCHMain.java:42)

Could you please let us know why are we facing this issue.





Thanks and Regards,
Usha