Salve ragazzi,
ho creato un'applicazione che utilizza un jar per la gestire dei certificati.
L'errore che mi da è il seguente:
[8/30/10 17:55:23:296 CEST] 00000049 SystemErr R MasterController::getCertificate - Login failed. Location: /doganeprj/cert/revoca/WebRAODoganeSvil.p12 Password: xxxx
[8/30/10 17:55:31:283 CEST] 00000047 SystemErr R com.baltimore.jcrypto.asn1.ASN1Exception: Mac::getInstance(String) - no Mac could be found for this algorithm - HmacSHA1 - amongst any of the providers.; nested exception is:
[8/30/10 17:55:31:284 CEST] 00000047 SystemErr R java.security.NoSuchAlgorithmException: Mac::getInstance(String) - no Mac could be found for this algorithm - HmacSHA1 - amongst any of the providers.
at javax.crypto.Mac.getInstance(Mac.java:70)
at com.baltimore.jpkiplus.pkcs12.PFX.a([DashoPro-V1.3-013000])
at com.baltimore.jpkiplus.pkcs12.PFX.fromASN1Object([DashoPro-V1.3-013000])
at com.baltimore.jpkiplus.pkcs12.PFX.fromBER([DashoPro-V1.3-013000])
at com.baltimore.jpkiplus.pkcs12.PFX.<init>([DashoPro-V1.3-013000])
at com.betrusted.upi.raoAPI.client.LogonController.lo adPFX(Unknown Source)
at com.betrusted.upi.raoAPI.client.LogonController.lo gon(Unknown Source)
at com.betrusted.upi.raoAPI.client.MasterController.g etCertificate(Unknown Source)
Cioè tra i vari provider non c'è l'algoritmo HmacSHA1.
Ora ho decompilato il jar e ho visto che l'algoritmo lo cerca tra i provider con l'istruzione:
Provider aprovider[] = Security.getProviders();
e poi si accorge che nessun provider supporta l'algoritmo HmacSHA1.
La cosa strana è che le classi Security e Provider non si trovano nel jar ma sono interne a java. Ho provato ad eseguirlo in locale sul mio server con le librerie per java JRE1.4 e JRE1.5 e funziona, lo ho lanciato da riga di comando con java 1.4 e funziona.
Ho creato l'ear l'ho installato su un server di produzione IBM con AS Websphere e mi da l'errore in alto.. non so che fare.. sicuramente la JRE nel server di produzione non supporta l'algoritmo HmacSHA1.. cosa posso fare??
Grazie

Rispondi quotando

