View difference between Paste ID: VBdVBt2C and Cq2vjGCj
SHOW: | | - or go back to the newest paste.
1
EVP_PKEY *create_pkey_rsa(const TPM2B_PUBLIC_KEY_RSA *const rsa_unqiue, const uint32_t exponent)
2
{
3-
	int success = EXIT_FAILURE, result = 0, pkey_bits = 0;
3+
4
	EVP_PKEY *rsa_key = NULL;
5
	BIGNUM *value_n = NULL, *value_e = NULL;
6
	OSSL_PARAM *key_params = NULL;
7
	OSSL_PARAM_BLD *param_builder = NULL;
8
9
	ctx = EVP_PKEY_CTX_new_from_name(NULL, "RSA", NULL);
10
11
	value_n = BN_bin2bn(rsa_unqiue->buffer, rsa_unqiue->size, NULL);
12
	value_e = uint32_to_bn(exponent ? exponent : 65537);
13
14
	param_builder = OSSL_PARAM_BLD_new();
15
16
    OSSL_PARAM_BLD_push_BN(param_builder, "n", value_n);
17-
	result += !!OSSL_PARAM_BLD_push_BN(param_builder, "n", value_n);
17+
    OSSL_PARAM_BLD_push_BN(param_builder, "e", value_e);
18-
	result += !!OSSL_PARAM_BLD_push_BN(param_builder, "e", value_e);
18+
    OSSL_PARAM_BLD_push_BN(param_builder, "d", NULL);
19-
	result += !!OSSL_PARAM_BLD_push_BN(param_builder, "d", NULL);
19+
20-
	if (result < 3) {
20+
21-
		fputs("Error: Failed to set up the RSA parameters!\n", stderr);
21+
22-
		goto cleanup;
22+
23
	}
24
25
	/* Do clean-up here !!! */
26
27
	return rsa_key;
28
}