Я новичок в криптографии Elliptic Curve, openSSL и wolfSSL. В моем контексте я генерирую KeyPair из командной строки с помощью openssl и импортирую закрытый ключ в свой код. Затем я использую wolfSSL для генерации подписи и вывода его.Как проверить подпись ECC от wolfSSL с помощью OpenSSL
Я сохраняю вывод в формате DER и пытаюсь проверить с помощью openSSL, проверка не выполняется.
Если я подписываю и проверяю внутри своего кода с помощью wolfSSL, он проверяет успешно, а также успешно, если я подпишу и подтвержу в командной строке с openSSL.
Есть ли проблема с кодировкой, о которой я не уверен?
код Обновление
// ECC public key
const uint8_t pubKey[] ={Hex Format key};
// ECC Signature from wolfSSL
char* sigString = {Signature from wolfSSL returned as char};
/* TYPE CONVERTIONS*/
const uint8_t *der_bytes_copy;
const uint8_t *pub_bytes_copy;
der_bytes_copy = (const unsigned char*)sigString;
pub_bytes_copy = pubKey;
EC_KEY *ECpubkey;
size_t keySize = sizeof(pubKey);
int eccgrp;
eccgrp = OBJ_txt2nid("secp256r1");
ECpubkey = EC_KEY_new_by_curve_name(eccgrp);
o2i_ECPublicKey(&ECpubkey, &pub_bytes_copy, keySize);
ECDSA_SIG *signature;
signature = d2i_ECDSA_SIG(NULL, &der_bytes_copy, signedSize);
uint8_t digest[36];
int verified;
const char message[] = "Test for Authenticate Kernel with ECC";
SHA256_CTX ctx;
SHA256_Init(&ctx);
SHA256_Update(&ctx, (const uint8_t*)message,sizeof(message));
SHA256_Final(digest, &ctx);
verified = ECDSA_do_verify(digest, sizeof(digest), signature, ECpubkey);
Закрытый ключ используется с wolfSSL подписать сообщение, а затем открытый ключ с OpenSSL для проверки, но это резко останавливается.
* «Я сохраняю вывод в формате DER и пытаюсь проверить с помощью openSSL, проверка не выполняется ...» * - Пожалуйста, покажите свой код. Также см. [Подпись и проверка EVP] (http://wiki.openssl.org/index.php/EVP_Signing_and_Verifying) в вики OpenSSL. – jww
Эй, пожалуйста, проверьте, если это возможно. Спасибо –