Looks like there is some problem in higher-level EVP_ functions. I completely rewrote the example using lower-level ECDSA_do_sign and it started to work always.
Here is the code: EVP_MD_CTX *Ctx = EVP_MD_CTX_create(); EVP_DigestInit(Ctx, EVP_sha256()); EVP_DigestUpdate(Ctx, dt.data(), dt.size()); QByteArray Digest; Digest.resize(EVP_MAX_MD_SIZE); unsigned int Len; EVP_DigestFinal(Ctx, reinterpret_cast<unsigned char *>(Digest.data()), &Len); Digest.resize(Len); BIO * Bio = BIO_new_mem_buf(pk.data(), pk.size()); EC_KEY *ECKey = PEM_read_bio_ECPrivateKey(Bio, nullptr, nullptr, nullptr); ECDSA_SIG *Signature = ECDSA_do_sign(reinterpret_cast<unsigned char *>(Digest.data()), Digest.size(), ECKey);
-- openssl-users mailing list To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users