Hello, I wanted to sign a message using EVP interface, and got seg-fault on access to the key passed to EVP_SignFinal.
. Do you have an idea why? The code: FILE *read_file = fopen ("mycert.pem", "r"); RSA *rsa_key = PEM_read_RSAPrivateKey(read_file, NULL, NULL, NULL); unsigned char *start_buf = (unsigned char*)malloc(sizeof(unsigned char) * 1024); int *buf_length = (int *)malloc(sizeof(int)); unsigned char *out_buf = (unsigned char*)malloc(sizeof(unsigned char) * 1024); int *out_buf_length = (int *)malloc(sizeof(int)); strcpy(start_buf, "signed content"); EVP_MD_CTX signature_digest_ctx; EVP_MD_CTX_init(&signature_digest_ctx); int res= EVP_SignInit_ex(&signature_digest_ctx, EVP_sha1(), NULL); res = EVP_SignUpdate(&signature_digest_ctx, start_buf, buf_length); EVP_PKEY *pkey = EVP_PKEY_new(); EVP_PKEY_assign_RSA(pkey, rsa_key); *res = EVP_SignFinal(&signature_digest_ctx, out_buf, out_buf_length, pkey); // seg-fault because pkey is freed twice, I don't understand why.* Thanks, John