Lines Matching refs:rctx
101 RSA_PKEY_CTX *rctx; in pkey_rsa_init() local
102 rctx = OPENSSL_malloc(sizeof(RSA_PKEY_CTX)); in pkey_rsa_init()
103 if (!rctx) { in pkey_rsa_init()
106 OPENSSL_memset(rctx, 0, sizeof(RSA_PKEY_CTX)); in pkey_rsa_init()
108 rctx->nbits = 2048; in pkey_rsa_init()
109 rctx->pad_mode = RSA_PKCS1_PADDING; in pkey_rsa_init()
110 rctx->saltlen = -2; in pkey_rsa_init()
112 ctx->data = rctx; in pkey_rsa_init()
148 RSA_PKEY_CTX *rctx = ctx->data; in pkey_rsa_cleanup() local
150 if (rctx == NULL) { in pkey_rsa_cleanup()
154 BN_free(rctx->pub_exp); in pkey_rsa_cleanup()
155 OPENSSL_free(rctx->tbuf); in pkey_rsa_cleanup()
156 OPENSSL_free(rctx->oaep_label); in pkey_rsa_cleanup()
157 OPENSSL_free(rctx); in pkey_rsa_cleanup()
173 RSA_PKEY_CTX *rctx = ctx->data; in pkey_rsa_sign() local
187 if (rctx->md) { in pkey_rsa_sign()
189 switch (rctx->pad_mode) { in pkey_rsa_sign()
191 if (!RSA_sign(EVP_MD_type(rctx->md), tbs, tbslen, sig, &out_len, rsa)) { in pkey_rsa_sign()
199 rctx->md, rctx->mgf1md, rctx->saltlen); in pkey_rsa_sign()
206 return RSA_sign_raw(rsa, siglen, sig, *siglen, tbs, tbslen, rctx->pad_mode); in pkey_rsa_sign()
212 RSA_PKEY_CTX *rctx = ctx->data; in pkey_rsa_verify() local
215 if (rctx->md) { in pkey_rsa_verify()
216 switch (rctx->pad_mode) { in pkey_rsa_verify()
218 return RSA_verify(EVP_MD_type(rctx->md), tbs, tbslen, sig, siglen, rsa); in pkey_rsa_verify()
221 return RSA_verify_pss_mgf1(rsa, tbs, tbslen, rctx->md, rctx->mgf1md, in pkey_rsa_verify()
222 rctx->saltlen, sig, siglen); in pkey_rsa_verify()
231 if (!setup_tbuf(rctx, ctx) || in pkey_rsa_verify()
232 !RSA_verify_raw(rsa, &rslen, rctx->tbuf, key_len, sig, siglen, in pkey_rsa_verify()
233 rctx->pad_mode) || in pkey_rsa_verify()
235 CRYPTO_memcmp(tbs, rctx->tbuf, rslen) != 0) { in pkey_rsa_verify()
245 RSA_PKEY_CTX *rctx = ctx->data; in pkey_rsa_verify_recover() local
259 if (rctx->md == NULL) { in pkey_rsa_verify_recover()
261 rctx->pad_mode); in pkey_rsa_verify_recover()
264 if (rctx->pad_mode != RSA_PKCS1_PADDING) { in pkey_rsa_verify_recover()
270 const size_t hash_len = EVP_MD_size(rctx->md); in pkey_rsa_verify_recover()
274 if (!setup_tbuf(rctx, ctx) || in pkey_rsa_verify_recover()
276 &asn1_prefix_allocated, EVP_MD_type(rctx->md), in pkey_rsa_verify_recover()
283 if (!RSA_verify_raw(rsa, &rslen, rctx->tbuf, key_len, sig, sig_len, in pkey_rsa_verify_recover()
287 CRYPTO_memcmp(rctx->tbuf, asn1_prefix, asn1_prefix_len - hash_len) != 0) { in pkey_rsa_verify_recover()
300 OPENSSL_memcpy(out, rctx->tbuf + rslen - hash_len, hash_len); in pkey_rsa_verify_recover()
309 RSA_PKEY_CTX *rctx = ctx->data; in pkey_rsa_encrypt() local
323 if (rctx->pad_mode == RSA_PKCS1_OAEP_PADDING) { in pkey_rsa_encrypt()
324 if (!setup_tbuf(rctx, ctx) || in pkey_rsa_encrypt()
325 !RSA_padding_add_PKCS1_OAEP_mgf1(rctx->tbuf, key_len, in, inlen, in pkey_rsa_encrypt()
326 rctx->oaep_label, rctx->oaep_labellen, in pkey_rsa_encrypt()
327 rctx->md, rctx->mgf1md) || in pkey_rsa_encrypt()
328 !RSA_encrypt(rsa, outlen, out, *outlen, rctx->tbuf, key_len, in pkey_rsa_encrypt()
335 return RSA_encrypt(rsa, outlen, out, *outlen, in, inlen, rctx->pad_mode); in pkey_rsa_encrypt()
341 RSA_PKEY_CTX *rctx = ctx->data; in pkey_rsa_decrypt() local
355 if (rctx->pad_mode == RSA_PKCS1_OAEP_PADDING) { in pkey_rsa_decrypt()
357 if (!setup_tbuf(rctx, ctx) || in pkey_rsa_decrypt()
358 !RSA_decrypt(rsa, &padded_len, rctx->tbuf, key_len, in, inlen, in pkey_rsa_decrypt()
361 out, outlen, key_len, rctx->tbuf, padded_len, rctx->oaep_label, in pkey_rsa_decrypt()
362 rctx->oaep_labellen, rctx->md, rctx->mgf1md)) { in pkey_rsa_decrypt()
368 return RSA_decrypt(rsa, outlen, out, key_len, in, inlen, rctx->pad_mode); in pkey_rsa_decrypt()
397 RSA_PKEY_CTX *rctx = ctx->data; in pkey_rsa_ctrl() local
400 if (!is_known_padding(p1) || !check_padding_md(rctx->md, p1) || in pkey_rsa_ctrl()
409 rctx->md == NULL) { in pkey_rsa_ctrl()
410 rctx->md = EVP_sha1(); in pkey_rsa_ctrl()
412 rctx->pad_mode = p1; in pkey_rsa_ctrl()
416 *(int *)p2 = rctx->pad_mode; in pkey_rsa_ctrl()
421 if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING) { in pkey_rsa_ctrl()
426 *(int *)p2 = rctx->saltlen; in pkey_rsa_ctrl()
431 rctx->saltlen = p1; in pkey_rsa_ctrl()
440 rctx->nbits = p1; in pkey_rsa_ctrl()
447 BN_free(rctx->pub_exp); in pkey_rsa_ctrl()
448 rctx->pub_exp = p2; in pkey_rsa_ctrl()
453 if (rctx->pad_mode != RSA_PKCS1_OAEP_PADDING) { in pkey_rsa_ctrl()
458 *(const EVP_MD **)p2 = rctx->md; in pkey_rsa_ctrl()
460 rctx->md = p2; in pkey_rsa_ctrl()
465 if (!check_padding_md(p2, rctx->pad_mode)) { in pkey_rsa_ctrl()
468 rctx->md = p2; in pkey_rsa_ctrl()
472 *(const EVP_MD **)p2 = rctx->md; in pkey_rsa_ctrl()
477 if (rctx->pad_mode != RSA_PKCS1_PSS_PADDING && in pkey_rsa_ctrl()
478 rctx->pad_mode != RSA_PKCS1_OAEP_PADDING) { in pkey_rsa_ctrl()
483 if (rctx->mgf1md) { in pkey_rsa_ctrl()
484 *(const EVP_MD **)p2 = rctx->mgf1md; in pkey_rsa_ctrl()
486 *(const EVP_MD **)p2 = rctx->md; in pkey_rsa_ctrl()
489 rctx->mgf1md = p2; in pkey_rsa_ctrl()
494 if (rctx->pad_mode != RSA_PKCS1_OAEP_PADDING) { in pkey_rsa_ctrl()
498 OPENSSL_free(rctx->oaep_label); in pkey_rsa_ctrl()
500 rctx->oaep_label = params->data; in pkey_rsa_ctrl()
501 rctx->oaep_labellen = params->len; in pkey_rsa_ctrl()
506 if (rctx->pad_mode != RSA_PKCS1_OAEP_PADDING) { in pkey_rsa_ctrl()
510 CBS_init((CBS *)p2, rctx->oaep_label, rctx->oaep_labellen); in pkey_rsa_ctrl()
521 RSA_PKEY_CTX *rctx = ctx->data; in pkey_rsa_keygen() local
523 if (!rctx->pub_exp) { in pkey_rsa_keygen()
524 rctx->pub_exp = BN_new(); in pkey_rsa_keygen()
525 if (!rctx->pub_exp || !BN_set_word(rctx->pub_exp, RSA_F4)) { in pkey_rsa_keygen()
534 if (!RSA_generate_key_ex(rsa, rctx->nbits, rctx->pub_exp, NULL)) { in pkey_rsa_keygen()