Lines Matching refs:pk

2 #include "mbedtls/pk.h"
249 * \param pk The PK object to fill. It must have been initialized
257 static int pk_setup(mbedtls_pk_context *pk, mbedtls_pk_type_t pk_type, int curve_or_keybits)
265 TEST_EQUAL(mbedtls_pk_setup(pk, mbedtls_pk_info_from_type(pk_type)), 0);
271 TEST_EQUAL(mbedtls_rsa_parse_key(mbedtls_pk_rsa(*pk), key_data, key_data_len), 0);
279 pk->ec_family = mbedtls_ecc_group_to_psa(curve_or_keybits, &pk->ec_bits);
281 PSA_KEY_TYPE_ECC_KEY_PAIR(pk->ec_family),
287 &pk->priv_id), 0);
288 memcpy(pk->pub_raw, pub_key_data, pub_key_data_len);
289 pk->pub_raw_len = pub_key_data_len;
291 TEST_EQUAL(mbedtls_ecp_read_key(curve_or_keybits, mbedtls_pk_ec_rw(*pk),
293 TEST_EQUAL(mbedtls_ecp_point_read_binary(&(mbedtls_pk_ec_rw(*pk)->grp),
294 &(mbedtls_pk_ec_rw(*pk)->Q),
301 pk->pk_info = mbedtls_pk_info_from_type(pk_type);
460 TEST_FAIL("Unsupported pk type in pk_public_same");
504 mbedtls_pk_context *pk, psa_key_type_t *psa_type)
515 TEST_EQUAL(pk_setup(pk, pk_type, RSA_KEY_SIZE), 0);
517 mbedtls_rsa_context *rsa = mbedtls_pk_rsa(*pk);
534 TEST_EQUAL(pk_setup(pk, pk_type, grp_id), 0);
546 PSA_ASSERT(psa_destroy_key(pk->priv_id));
547 pk->priv_id = MBEDTLS_SVC_KEY_ID_INIT;
549 mbedtls_ecp_keypair *ec = mbedtls_pk_ec_rw(*pk);
650 mbedtls_pk_context pk, pk2;
662 mbedtls_pk_init(&pk);
666 TEST_ASSERT(mbedtls_pk_setup_opaque(&pk, MBEDTLS_SVC_KEY_ID_INIT) ==
669 mbedtls_pk_free(&pk);
670 mbedtls_pk_init(&pk);
687 TEST_ASSERT(mbedtls_pk_setup_opaque(&pk, key) == 0);
689 TEST_ASSERT(mbedtls_pk_get_type(&pk) == MBEDTLS_PK_OPAQUE);
690 TEST_ASSERT(strcmp(mbedtls_pk_get_name(&pk), name) == 0);
692 TEST_ASSERT(mbedtls_pk_get_bitlen(&pk) == bitlen);
693 TEST_ASSERT(mbedtls_pk_get_len(&pk) == (bitlen + 7) / 8);
696 TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECKEY) == 0);
697 TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECDSA) == 0);
698 TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_RSA) == 1);
700 TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECKEY) == 1);
701 TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECDSA) == 1);
702 TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_RSA) == 0);
707 TEST_ASSERT(mbedtls_pk_verify(&pk, md_alg,
711 TEST_ASSERT(mbedtls_pk_decrypt(&pk, b1, sizeof(b1),
716 TEST_ASSERT(mbedtls_pk_encrypt(&pk, b1, sizeof(b1),
729 TEST_ASSERT(mbedtls_pk_check_pair(&pk, &pk2,
732 TEST_ASSERT(mbedtls_pk_debug(&pk, &dbg)
736 mbedtls_pk_free(&pk);
747 mbedtls_pk_free(&pk); /* redundant except upon error */
758 mbedtls_pk_context pk;
762 mbedtls_pk_init(&pk);
772 TEST_EQUAL(mbedtls_pk_setup_opaque(&pk, key), 0);
774 TEST_EQUAL(mbedtls_pk_get_type(&pk), MBEDTLS_PK_OPAQUE);
776 TEST_EQUAL(pk_setup(&pk, key_type, curve_or_keybits), 0);
777 TEST_EQUAL(mbedtls_pk_get_type(&pk), key_type);
780 TEST_EQUAL(mbedtls_pk_can_do_ext(&pk, alg_check, usage_check), result);
785 mbedtls_pk_free(&pk);
852 mbedtls_pk_context pk;
857 mbedtls_pk_init(&pk);
860 TEST_ASSERT(mbedtls_pk_setup(&pk, NULL) ==
871 TEST_ASSERT(mbedtls_pk_sign_restartable(&pk,
879 TEST_ASSERT(mbedtls_pk_sign(&pk,
886 TEST_ASSERT(mbedtls_pk_sign_ext(MBEDTLS_PK_NONE, &pk,
893 TEST_ASSERT(mbedtls_pk_verify_restartable(&pk,
900 TEST_ASSERT(mbedtls_pk_verify(&pk,
907 &pk,
913 TEST_ASSERT(mbedtls_pk_encrypt(&pk,
919 TEST_ASSERT(mbedtls_pk_decrypt(&pk,
926 TEST_ASSERT(mbedtls_pk_parse_key(&pk, NULL, 0, NULL, 1,
930 TEST_ASSERT(mbedtls_pk_parse_public_key(&pk, NULL, 0) ==
940 mbedtls_pk_context pk;
943 mbedtls_pk_init(&pk);
946 TEST_ASSERT(mbedtls_pk_parse_key(&pk,
950 TEST_ASSERT(mbedtls_pk_write_key_der(&pk, NULL, 0) ==
953 TEST_ASSERT(mbedtls_pk_write_pubkey_der(&pk, NULL, 0) ==
957 TEST_ASSERT(mbedtls_pk_write_key_pem(&pk, NULL, 0) ==
960 TEST_ASSERT(mbedtls_pk_write_pubkey_pem(&pk, NULL, 0) ==
965 mbedtls_pk_free(&pk);
973 mbedtls_pk_context pk;
975 mbedtls_pk_init(&pk);
978 TEST_ASSERT(pk_setup(&pk, type, curve_or_keybits) == 0);
980 TEST_ASSERT((int) mbedtls_pk_get_type(&pk) == type);
981 TEST_ASSERT(mbedtls_pk_can_do(&pk, type));
982 TEST_ASSERT(mbedtls_pk_get_bitlen(&pk) == (unsigned) bitlen);
983 TEST_ASSERT(mbedtls_pk_get_len(&pk) == (unsigned) len);
984 TEST_ASSERT(strcmp(mbedtls_pk_get_name(&pk), name) == 0);
987 mbedtls_pk_free(&pk);
1072 mbedtls_pk_context pk;
1083 mbedtls_pk_init(&pk);
1086 TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0);
1087 rsa = mbedtls_pk_rsa(pk);
1098 actual_result = mbedtls_pk_verify(&pk, digest, message_str->x, 0,
1099 result_str->x, mbedtls_pk_get_len(&pk));
1111 actual_result = mbedtls_pk_verify_restartable(&pk, digest, message_str->x, 0,
1113 mbedtls_pk_get_len(&pk),
1130 mbedtls_pk_free(&pk);
1144 mbedtls_pk_context pk;
1149 mbedtls_pk_init(&pk);
1152 TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0);
1153 rsa = mbedtls_pk_rsa(pk);
1169 ret = mbedtls_pk_verify_ext(pk_type, options, &pk,
1192 mbedtls_pk_free(&pk);
1201 mbedtls_pk_context pk;
1203 mbedtls_pk_init(&pk);
1206 TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(type)) == 0);
1208 TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECDSA));
1211 memcpy(pk.pub_raw, key->x, key->len);
1212 pk.ec_family = mbedtls_ecc_group_to_psa(id, &(pk.ec_bits));
1213 pk.pub_raw_len = key->len;
1215 mbedtls_ecp_keypair *eckey = (mbedtls_ecp_keypair *) mbedtls_pk_ec(pk);
1223 TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_NONE,
1227 mbedtls_pk_free(&pk);
1323 mbedtls_pk_context pk;
1340 mbedtls_pk_init(&pk);
1346 TEST_ASSERT(pk_setup(&pk, type, curve_or_keybits) == 0);
1350 TEST_ASSERT(mbedtls_rsa_set_padding(mbedtls_pk_rsa(pk), rsa_padding, rsa_md_alg) == 0);
1357 TEST_ASSERT(mbedtls_pk_sign_restartable(&pk, MBEDTLS_MD_SHA256,
1368 TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256,
1373 TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256,
1378 TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256,
1383 TEST_ASSERT(mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256, hash, hash_len,
1393 TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, MBEDTLS_MD_SHA256,
1398 TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, MBEDTLS_MD_SHA256,
1403 TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, MBEDTLS_MD_SHA256,
1412 mbedtls_pk_free(&pk);
1427 mbedtls_pk_context pk;
1430 mbedtls_pk_init(&pk);
1440 /* init pk-rsa context */
1441 TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0);
1442 rsa = mbedtls_pk_rsa(pk);
1450 TEST_ASSERT(mbedtls_pk_encrypt(&pk, message->x, message->len,
1458 /* init pk-rsa context */
1459 mbedtls_pk_free(&pk);
1460 TEST_ASSERT(mbedtls_pk_setup(&pk,
1462 rsa = mbedtls_pk_rsa(pk);
1476 TEST_EQUAL(mbedtls_pk_get_len(&pk), (mod + 7) / 8);
1477 TEST_EQUAL(mbedtls_pk_get_bitlen(&pk), mod);
1481 TEST_ASSERT(mbedtls_pk_decrypt(&pk, output, olen,
1492 mbedtls_pk_free(&pk);
1507 mbedtls_pk_context pk;
1510 mbedtls_pk_init(&pk);
1517 /* init pk-rsa context */
1518 TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0);
1519 rsa = mbedtls_pk_rsa(pk);
1532 TEST_EQUAL(mbedtls_pk_get_bitlen(&pk), mod);
1533 TEST_EQUAL(mbedtls_pk_get_len(&pk), (mod + 7) / 8);
1543 TEST_ASSERT(mbedtls_pk_decrypt(&pk, cipher->x, cipher->len,
1554 mbedtls_pk_free(&pk);
1570 mbedtls_pk_context pk;
1575 mbedtls_pk_init(&pk);
1582 /* init pk-rsa context */
1583 TEST_EQUAL(mbedtls_pk_setup(&pk,
1585 rsa = mbedtls_pk_rsa(pk);
1604 TEST_EQUAL(mbedtls_pk_get_psa_attributes(&pk, PSA_KEY_USAGE_DECRYPT, &key_attr), 0);
1605 TEST_EQUAL(mbedtls_pk_import_into_psa(&pk, &key_attr, &key_id), 0);
1606 mbedtls_pk_free(&pk);
1607 mbedtls_pk_init(&pk);
1608 TEST_EQUAL(mbedtls_pk_setup_opaque(&pk, key_id), 0);
1610 TEST_EQUAL(mbedtls_pk_get_bitlen(&pk), mod);
1615 TEST_EQUAL(mbedtls_pk_decrypt(&pk, cipher->x, cipher->len,
1628 mbedtls_pk_free(&pk);
1636 mbedtls_pk_context pk;
1643 mbedtls_pk_init(&pk);
1650 TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(type)) == 0);
1652 TEST_ASSERT(mbedtls_pk_encrypt(&pk, input, sizeof(input),
1656 TEST_ASSERT(mbedtls_pk_decrypt(&pk, input, sizeof(input),
1661 mbedtls_pk_free(&pk);
1669 mbedtls_pk_context pk;
1673 mbedtls_pk_init(&pk);
1679 TEST_EQUAL(mbedtls_pk_setup(&pk,
1683 TEST_EQUAL(mbedtls_pk_verify_ext(MBEDTLS_PK_RSASSA_PSS, NULL, &pk,
1688 TEST_EQUAL(mbedtls_pk_verify(&pk, MBEDTLS_MD_NONE, hash, hash_len,
1693 TEST_EQUAL(mbedtls_pk_sign_ext(MBEDTLS_PK_RSASSA_PSS, &pk,
1700 TEST_EQUAL(mbedtls_pk_sign(&pk, MBEDTLS_MD_NONE, hash, hash_len,
1706 mbedtls_pk_free(&pk);
1810 mbedtls_pk_context pk;
1834 mbedtls_pk_init(&pk);
1840 TEST_EQUAL(pk_setup(&pk, MBEDTLS_PK_RSA, bits), 0);
1841 TEST_EQUAL(mbedtls_rsa_set_padding(mbedtls_pk_rsa(pk), rsa_padding, MBEDTLS_MD_NONE), 0);
1849 TEST_ASSERT(pk_setup(&pk, MBEDTLS_PK_ECKEY, ecp_grp_id) == 0);
1855 ret = mbedtls_pk_write_pubkey_der(&pk, legacy_pub_key, sizeof(legacy_pub_key));
1866 TEST_EQUAL(mbedtls_ecp_point_write_binary(&(mbedtls_pk_ec_ro(pk)->grp),
1867 &(mbedtls_pk_ec_ro(pk)->Q),
1876 ret = mbedtls_rsa_write_pubkey(mbedtls_pk_rsa(pk), legacy_pub_key, &end);
1887 TEST_EQUAL(mbedtls_pk_get_psa_attributes(&pk, PSA_KEY_USAGE_SIGN_HASH, &attributes), 0);
1888 TEST_EQUAL(mbedtls_pk_import_into_psa(&pk, &attributes, &key_id), 0);
1889 mbedtls_pk_free(&pk);
1890 mbedtls_pk_init(&pk);
1891 TEST_EQUAL(mbedtls_pk_setup_opaque(&pk, key_id), 0);
1901 TEST_ASSERT(mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256,
1906 TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256,
1912 ret = mbedtls_pk_write_pubkey_der(&pk, opaque_pub_key, sizeof(opaque_pub_key));
1929 mbedtls_pk_free(&pk);
1933 mbedtls_pk_init(&pk);
1935 TEST_EQUAL(mbedtls_pk_parse_public_key(&pk, legacy_pub_key, legacy_pub_key_len), 0);
1939 TEST_EQUAL(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_ECKEY)), 0);
1940 TEST_EQUAL(mbedtls_ecp_group_load(&(mbedtls_pk_ec_rw(pk)->grp), ecp_grp_id), 0);
1941 TEST_EQUAL(mbedtls_ecp_point_read_binary(&(mbedtls_pk_ec_ro(pk)->grp),
1942 &(mbedtls_pk_ec_rw(pk)->Q),
1948 TEST_EQUAL(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)), 0);
1949 TEST_EQUAL(mbedtls_rsa_parse_pubkey(mbedtls_pk_rsa(pk), legacy_pub_key,
1957 TEST_EQUAL(mbedtls_rsa_set_padding(mbedtls_pk_rsa(pk), rsa_padding, MBEDTLS_MD_NONE), 0);
1960 TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256,
1966 mbedtls_pk_free(&pk);
1974 mbedtls_pk_context pk;
1984 mbedtls_pk_init(&pk);
1987 TEST_EQUAL(pk_setup(&pk, pk_type, curve_or_keybits), 0);
1989 TEST_EQUAL(mbedtls_pk_sign_ext(key_pk_type, &pk, md_alg, hash, hash_len,
1999 TEST_EQUAL(mbedtls_pk_verify_ext(key_pk_type, options, &pk, md_alg,
2002 mbedtls_pk_free(&pk);
2010 mbedtls_pk_context pk;
2024 mbedtls_pk_init(&pk);
2028 mbedtls_pk_init(&pk);
2029 TEST_EQUAL(pk_setup(&pk, pk_type, key_bits), 0);
2032 mbedtls_rsa_set_padding(mbedtls_pk_rsa(pk), MBEDTLS_RSA_PKCS_V21, MBEDTLS_MD_NONE);
2038 ret = mbedtls_rsa_write_pubkey(mbedtls_pk_rsa(pk), pkey, &pkey_start);
2046 TEST_EQUAL(mbedtls_pk_get_psa_attributes(&pk, PSA_KEY_USAGE_SIGN_HASH, &key_attr), 0);
2047 TEST_EQUAL(mbedtls_pk_import_into_psa(&pk, &key_attr, &key_id), 0);
2048 mbedtls_pk_free(&pk);
2049 mbedtls_pk_init(&pk);
2050 TEST_EQUAL(mbedtls_pk_setup_opaque(&pk, key_id), 0);
2060 TEST_EQUAL(mbedtls_pk_sign_ext(MBEDTLS_PK_RSASSA_PSS, &pk, md_alg, hash, hash_len,
2068 TEST_EQUAL(mbedtls_pk_sign_ext(key_pk_type, &pk, md_alg, hash, hash_len,
2078 TEST_EQUAL(mbedtls_pk_verify_ext(key_pk_type, &pss_opts, &pk, md_alg,
2082 TEST_EQUAL(mbedtls_pk_verify_ext(key_pk_type, NULL, &pk, md_alg,
2087 mbedtls_pk_free(&pk);
2090 mbedtls_pk_init(&pk);
2091 TEST_EQUAL(mbedtls_pk_setup(&pk,
2093 TEST_EQUAL(mbedtls_rsa_parse_pubkey(mbedtls_pk_rsa(pk), pkey_start, pkey_len), 0);
2101 TEST_EQUAL(mbedtls_pk_verify_ext(key_pk_type, options, &pk, md_alg,
2105 mbedtls_pk_free(&pk);
2115 mbedtls_pk_context pk;
2116 mbedtls_pk_init(&pk);
2125 &pk, &expected_psa_type), 0);
2148 TEST_EQUAL(mbedtls_pk_get_psa_attributes(&pk, usage, &attributes), 0);
2155 mbedtls_pk_get_bitlen(&pk));
2160 TEST_EQUAL(mbedtls_pk_import_into_psa(&pk, &attributes, &new_key_id), 0);
2161 if (!mbedtls_test_key_consistency_psa_pk(new_key_id, &pk)) {
2166 mbedtls_pk_free(&pk);
2178 mbedtls_pk_context pk;
2179 mbedtls_pk_init(&pk);
2188 &pk, &expected_psa_type), 0);
2189 mbedtls_rsa_context *rsa = mbedtls_pk_rsa(pk);
2196 TEST_EQUAL(mbedtls_pk_get_psa_attributes(&pk, usage, &attributes), 0);
2203 mbedtls_pk_get_bitlen(&pk));
2208 TEST_EQUAL(mbedtls_pk_import_into_psa(&pk, &attributes, &new_key_id), 0);
2209 if (!mbedtls_test_key_consistency_psa_pk(new_key_id, &pk)) {
2214 mbedtls_pk_free(&pk);
2226 mbedtls_pk_context pk;
2227 mbedtls_pk_init(&pk);
2235 &pk, &expected_psa_type), 0);
2237 TEST_EQUAL(mbedtls_pk_get_psa_attributes(&pk, usage, &attributes),
2241 mbedtls_pk_free(&pk);
2254 mbedtls_pk_context pk;
2255 mbedtls_pk_init(&pk);
2280 TEST_EQUAL(mbedtls_pk_setup_opaque(&pk, old_key_id), 0);
2290 &pk, &psa_type_according_to_setup), 0);
2302 TEST_EQUAL(mbedtls_pk_get_psa_attributes(&pk, to_usage,
2310 TEST_EQUAL(mbedtls_pk_import_into_psa(&pk, &attributes, &new_key_id), 0);
2311 if (!mbedtls_test_key_consistency_psa_pk(new_key_id, &pk)) {
2326 mbedtls_pk_free(&pk);
2341 mbedtls_pk_context pk;
2342 mbedtls_pk_init(&pk);
2357 TEST_EQUAL(mbedtls_pk_setup_opaque(&pk, old_key_id), 0);
2362 TEST_EQUAL(mbedtls_pk_get_psa_attributes(&pk, usage, &attributes),
2380 TEST_EQUAL(mbedtls_pk_import_into_psa(&pk, &attributes, &new_key_id),
2383 if (!mbedtls_test_key_consistency_psa_pk(new_key_id, &pk)) {
2390 mbedtls_pk_free(&pk);
2403 mbedtls_pk_context pk;
2404 mbedtls_pk_init(&pk);
2414 &pk, &expected_psa_type), 0);
2419 TEST_EQUAL(mbedtls_pk_import_into_psa(&pk, &attributes, &key_id),
2425 mbedtls_pk_free(&pk);
2438 mbedtls_pk_context pk;
2439 mbedtls_pk_init(&pk);
2450 TEST_EQUAL(mbedtls_pk_setup_opaque(&pk, from_key_id), 0);
2457 TEST_EQUAL(mbedtls_pk_import_into_psa(&pk, &to_attributes, &to_key_id),
2475 if (!mbedtls_test_key_consistency_psa_pk(to_key_id, &pk)) {
2483 mbedtls_pk_free(&pk);
2502 /* Null pk pointer. */