Android 9. The BC provider no longer provides an implementation for MessageDigest.SHA-256

243 views
Skip to first unread message

Volodya Leskiv

unread,
Oct 26, 2018, 1:02:02 PM10/26/18
to sshj-users
Hi all,

We're using sshj 0.26.0 in Android project and on Android 9 device we got such exception:

net.schmizz.sshj.transport.TransportException: The BC provider no longer provides an implementation for MessageDigest.SHA-256.  Please see https://android-developers.googleblog.com/2018/03/cryptography-changes-in-android-p.html for more details.
        at net
.schmizz.sshj.transport.TransportException$1.chain(TransportException.java:33)
        at net
.schmizz.sshj.transport.TransportException$1.chain(TransportException.java:27)
        at net
.schmizz.concurrent.Promise.deliverError(Promise.java:95)
        at net
.schmizz.concurrent.Event.deliverError(Event.java:74)
        at net
.schmizz.concurrent.ErrorDeliveryUtil.alertEvents(ErrorDeliveryUtil.java:34)
        at net
.schmizz.sshj.transport.KeyExchanger.notifyError(KeyExchanger.java:392)
        at net
.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:600)
        at net
.schmizz.sshj.transport.Reader.run(Reader.java:65)
     
Caused by: net.schmizz.sshj.common.SSHException: The BC provider no longer provides an implementation for MessageDigest.SHA-256.  Please see https://android-developers.googleblog.com/2018/03/cryptography-changes-in-android-p.html for more details.
        at net
.schmizz.sshj.common.SSHException$1.chain(SSHException.java:36)
        at net
.schmizz.sshj.common.SSHException$1.chain(SSHException.java:29)
        at net
.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:595)
        at net
.schmizz.sshj.transport.Reader.run(Reader.java:65)
     
Caused by: net.schmizz.sshj.common.SSHRuntimeException: The BC provider no longer provides an implementation for MessageDigest.SHA-256.  Please see https://android-developers.googleblog.com/2018/03/cryptography-changes-in-android-p.html for more details.
        at net
.schmizz.sshj.transport.digest.BaseDigest.init(BaseDigest.java:59)
        at net
.schmizz.sshj.transport.kex.AbstractDHGex.init(AbstractDHGex.java:44)
        at net
.schmizz.sshj.transport.KeyExchanger.gotKexInit(KeyExchanger.java:236)
        at net
.schmizz.sshj.transport.KeyExchanger.handle(KeyExchanger.java:356)
        at net
.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:503)
        at net
.schmizz.sshj.transport.Decoder.decode(Decoder.java:102)
        at net
.schmizz.sshj.transport.Decoder.received(Decoder.java:170)
        at net
.schmizz.sshj.transport.Reader.run(Reader.java:59)
     
Caused by: java.security.NoSuchAlgorithmException: The BC provider no longer provides an implementation for MessageDigest.SHA-256.  Please see https://android-developers.googleblog.com/2018/03/cryptography-changes-in-android-p.html for more details.
        at sun
.security.jca.Providers.checkBouncyCastleDeprecation(Providers.java:563)
        at sun
.security.jca.Providers.checkBouncyCastleDeprecation(Providers.java:330)
        at java
.security.MessageDigest.getInstance(MessageDigest.java:261)
        at net
.schmizz.sshj.common.SecurityUtils.getMessageDigest(SecurityUtils.java:216)
        at net
.schmizz.sshj.transport.digest.BaseDigest.init(BaseDigest.java:57)
        at net
.schmizz.sshj.transport.kex.AbstractDHGex.init(AbstractDHGex.java:44)
        at net
.schmizz.sshj.transport.KeyExchanger.gotKexInit(KeyExchanger.java:236)
        at net
.schmizz.sshj.transport.KeyExchanger.handle(KeyExchanger.java:356)
        at net
.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:503)
        at net
.schmizz.sshj.transport.Decoder.decode(Decoder.java:102)
        at net
.schmizz.sshj.transport.Decoder.received(Decoder.java:170)
        at net
.schmizz.sshj.transport.Reader.run(Reader.java:59)

Thanks in advance for any insights.
Reply all
Reply to author
Forward
0 new messages