J'ai cette exception dans Android bien que j'ai téléchargé la politique JCE illimitée et j'ai ajouté le lib bcprov. Aussi j'ai ajouté la ligne:java.security.NoSuchAlgorithmException: aucun algorithme de ce type: ECDH pour le fournisseur BC
Security.addProvider(new BouncyCastleProvider());
S'il vous plaît aidez-moi à savoir ce qui manque. J'ai lu d'autres messages et j'ai trouvé qu'ils ont fait ce qui précède. Les accidents d'application à loadprivatekey, dans la ligne:
ECParameterSpec params = ECNamedCurveTable.getParameterSpec(CurveName);)
qui est appelée à partir de la fonction doECDH
public static PrivateKey loadPrivateKey (byte [] data) throws Exception
{
Security.addProvider(new BouncyCastleProvider());
ECParameterSpec params = ECNamedCurveTable.getParameterSpec(CurveName);
ECPrivateKeySpec prvkey = new ECPrivateKeySpec(new BigInteger(data),
params);
KeyFactory kf = KeyFactory.getInstance("ECDH", "BC");
return kf.generatePrivate(prvkey);
}
public static String doECDH (String data_Prv, String data_Pub) throws Exception
{
byte[] dataPrv = hexToBytes(data_Prv);
byte[] dataPub = hexToBytes(data_Pub);
KeyAgreement ka = KeyAgreement.getInstance("ECDH", "BC");
ka.init(loadPrivateKey(dataPrv));
ka.doPhase(loadPublicKey(dataPub), true);
byte [] secret = ka.generateSecret();
Shared_Key = bytesToHex(secret);
//SecretKey originalKey = new SecretKeySpec(secret, 0, secret.length, "ECDH");
return Shared_Key;
}
Afficher le code où vous initialisez – shmakova
ECDH Quelle est votre version BouncyCastle? Et quelles bibliothèques utilisez-vous (bcprov, bcmail, etc)? –
bcprov-jdk15on-157 –