Lio
Lio

Reputation: 51

JAVA JDK1.9 java.security.NoSuchAlgorithmException: Unsupported secret key algorithm: DES

I'have an api who use DES i know is bad ... but i can't change that and i have to support this old legacy system (i have an rmi client part in my side)

also i look for a way to enabled on jdk1.9 the DES algorithm my program run well on old jdk

i'am looking around /usr/java/jdk-9.0.4/conf/security/java.security and value: jdk.tls.legacyAlgorithms

but here i don't know how to modify the default value i try

dk.tls.legacyAlgorithms= \
        K_NULL, C_NULL, M_NULL, \
        DH_anon, ECDH_anon, \
        RC4_128, RC4_40, DES_CBC, DES40_CBC, \
        3DES_EDE_CBC, \
        DES_CBC, \
        DES

and somme other value but without succes

the full stack trace

java.security.NoSuchAlgorithmException: Unsupported secret key algorithm: DES
    at java.base/com.sun.crypto.provider.DHKeyAgreement.engineGenerateSecret(DHKeyAgreement.java:387)
    at java.base/javax.crypto.KeyAgreement.generateSecret(KeyAgreement.java:660)
    at com.adesoft.security.EncryptedPassword._cipher(Unknown Source)
    at com.adesoft.security.EncryptedPassword.cipher(Unknown Source)
    at com.adesoft.login.WebSessions.connect(Unknown Source)
    at com.adesoft.beans.SessionBean.setPassword(Unknown Source)
    at util.ade.AdeSebastient.getRWConnection(AdeSebastient.java:59)

adesoft is my legacy rmi client util.ade.AdeSebastien --> i where i use the client to try the connection to my rmi system

if somme one have knoledge about this difficulty thanks

Upvotes: 2

Views: 2892

Answers (1)

Lio
Lio

Reputation: 51

for other people who have the same difficulty

i passe this parameter to the jdk -Djdk.crypto.KeyAgreement.legacyKDF=true

with framework play is done like that play2 -jvm-debug 9999 ~run -Djdk.crypto.KeyAgreement.legacyKDF=true

i will now take a look if a cant put this in security file of jdk

Upvotes: 3

Related Questions