Создать ECPublicKey в java

Я новичок в шифровании java ecc. Итак, я получил массив данных открытого ключа ECC с java-карты. Размер составляет 49 байт. Итак, мне нужно сгенерировать Eccpublic ключ. Итак, я создал открытый ключ. но это дает ошибку:

java.security.spec.InvalidKeySpecException: спецификация закодированного ключа не распознана

Это мой код. Как сгенерировать Eccpublickey с использованием массива данных?

byte[] pub = new byte[] {
    /*(Public data) 49 length byte ARRAY
    */


     };

    System.out.println("Length :" + pub.length);
    X509EncodedKeySpec ks = new X509EncodedKeySpec(pub);

    KeyFactory kf;
    try {
        kf = KeyFactory.getInstance("ECDH");

    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
        return;
    }

    ECPublicKey remotePublicKey;

    try {
        remotePublicKey = (ECPublicKey) kf.generatePublic(ks);
    } catch (InvalidKeySpecException e) {
        e.printStackTrace();
        return;
    } catch (ClassCastException e) {
        e.printStackTrace();
        return;
    }
    System.out.println(remotePublicKey);

} catch (Exception e) {
    e.printStackTrace();
}

person Sajith Vijesekara    schedule 26.08.2013    source источник
comment
Можете ли вы добавить фактические данные в массив данных?   -  person gtrig    schedule 27.08.2013


Ответы (1)


Причина в том, что код не работает, ключи не могут использоваться в ECC. Поэтому я нашел, как использовать ECPublicKeySpec в ECC. Здесь есть хорошее объяснение. https://bitcointalk.org/index.php?topic=2899.0;wap2 Спасибо.

person Sajith Vijesekara    schedule 27.08.2013