{
yaca_kdf_e kdf = YACA_KDF_X942;
yaca_digest_algorithm_e digest = YACA_DIGEST_SHA512;
- char *secret;
size_t secret_len;
char *info = NULL;
size_t info_len = 0;
KeyPtr peer_key_dh_priv = generate_key(YACA_KEY_TYPE_DH_PRIV, YACA_KEY_LENGTH_DH_RFC_2048_256);
KeyPtr peer_key_dh_pub = extract_public_key(peer_key_dh_priv);
- YACA_SUCCESS(yaca_key_derive_dh(key_dh_priv.get(), peer_key_dh_pub.get(), &secret, &secret_len));
+ ChrPtr secret = key_derive_dh(key_dh_priv, peer_key_dh_pub, &secret_len);
YACA_INVALID_PARAM(yaca_key_derive_kdf(static_cast<yaca_kdf_e>(-1),
- digest, secret, secret_len, info, info_len, 512, &key_material));
+ digest, secret.get(), secret_len, info, info_len, 512, &key_material));
YACA_INVALID_PARAM(yaca_key_derive_kdf(kdf, static_cast<yaca_digest_algorithm_e>(-1),
- secret, secret_len, info, info_len, 512, &key_material));
+ secret.get(), secret_len, info, info_len, 512, &key_material));
YACA_INVALID_PARAM(yaca_key_derive_kdf(kdf, digest, nullptr, secret_len, info, info_len, 512, &key_material));
- YACA_INVALID_PARAM(yaca_key_derive_kdf(kdf, digest, secret, 0, info, info_len, 512, &key_material));
- YACA_INVALID_PARAM(yaca_key_derive_kdf(kdf, digest, secret, secret_len, info, info_len, 0, &key_material));
- YACA_INVALID_PARAM(yaca_key_derive_kdf(kdf, digest, secret, secret_len, info, info_len, 512, nullptr));
+ YACA_INVALID_PARAM(yaca_key_derive_kdf(kdf, digest, secret.get(), 0, info, info_len, 512, &key_material));
+ YACA_INVALID_PARAM(yaca_key_derive_kdf(kdf, digest, secret.get(), secret_len, info, info_len, 0, &key_material));
+ YACA_INVALID_PARAM(yaca_key_derive_kdf(kdf, digest, secret.get(), secret_len, info, info_len, 512, nullptr));
}
RUNNER_TEST(T4240_yaca_key_derive_pbkdf2_invalid_param, YacaTest)