ECDSA_SIG возвращает 00000000 - PullRequest
0 голосов
/ 09 мая 2020

Я хочу создать подпись ECDSA, но она каждый раз возвращает одно и то же нулевое значение. Это мой код:

eccgrp = OBJ_txt2nid("secp521r1");
pk = EC_KEY_new_by_curve_name(eccgrp);
PEM_read_ECPrivateKey(f, &pk, 0, NULL);

unsigned char hash[300];
std::string strhash = sha256(mesaj);
std::copy(strhash.begin(), strhash.end(), hash);
hash[strhash.length()] = '\0';
std::cout << hash << '\n' << pk << '\n';
ECDSA_SIG* signature = ECDSA_do_sign(hash, strlen(reinterpret_cast<const char*>(hash)), pk);

ha sh выводит что-то вроде этого «ca8f871d95c757b158d800bf91791026aea7ca12de43cee7f2c2b5e3d5a757bf», а pk выводит что-то вроде этого «00F6B300».

...