static int test_rsa_mp(void) { int ret = 0; RSA *key; unsigned char ptext[256]; unsigned char ctext[256]; static unsigned char ptext_ex[] = "\x54\x85\x9b\x34\x2c\x49\xea\x2a"; int plen; int clen = 0; int num; plen = sizeof(ptext_ex) - 1; key = RSA_new(); if (!TEST_ptr(key)) goto err; clen = key2048p3(key); if (!TEST_int_eq(clen, 256)) goto err; if (!TEST_true(RSA_check_key_ex(key, NULL))) goto err; num = RSA_public_encrypt(plen, ptext_ex, ctext, key, RSA_PKCS1_PADDING); if (!TEST_int_eq(num, clen)) goto err; num = RSA_private_decrypt(num, ctext, ptext, key, RSA_PKCS1_PADDING); if (!TEST_mem_eq(ptext, num, ptext_ex, plen)) goto err; ret = 1; err: RSA_free(key); return ret; }
int RSA_check_key(const RSA *key) { return RSA_check_key_ex(key, NULL); }
static int rsa_pkey_check(const EVP_PKEY *pkey) { return RSA_check_key_ex(pkey->pkey.rsa, NULL); }