summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2024-10-26 20:50:53 +0000
committertb <>2024-10-26 20:50:53 +0000
commitc399cb17141707db794b18b184afecaf5a7e4bb7 (patch)
tree719de0bcf73976548261a676b8cc586a76f31e11 /src
parent36bb4d09e80113fd8f5168e0340790b72bd34827 (diff)
downloadopenbsd-c399cb17141707db794b18b184afecaf5a7e4bb7.tar.gz
openbsd-c399cb17141707db794b18b184afecaf5a7e4bb7.tar.bz2
openbsd-c399cb17141707db794b18b184afecaf5a7e4bb7.zip
{d2i,i2d}_ECParameters() also want a bit of exercising
Diffstat (limited to 'src')
-rw-r--r--src/regress/lib/libcrypto/ec/ec_asn1_test.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/regress/lib/libcrypto/ec/ec_asn1_test.c b/src/regress/lib/libcrypto/ec/ec_asn1_test.c
index e5813d830c..ee4f86e5cf 100644
--- a/src/regress/lib/libcrypto/ec/ec_asn1_test.c
+++ b/src/regress/lib/libcrypto/ec/ec_asn1_test.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ec_asn1_test.c,v 1.17 2024/10/26 13:49:08 tb Exp $ */ 1/* $OpenBSD: ec_asn1_test.c,v 1.18 2024/10/26 20:50:53 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2017, 2021 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2017, 2021 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2024 Theo Buehler <tb@openbsd.org> 4 * Copyright (c) 2024 Theo Buehler <tb@openbsd.org>
@@ -2830,6 +2830,33 @@ ec_group_check_private_key(const struct ec_private_key *key)
2830 goto err; 2830 goto err;
2831 } 2831 }
2832 2832
2833 /*
2834 * Also tickle the ECParameters API a little bit.
2835 */
2836
2837 freezero(der, der_len);
2838 der = NULL;
2839
2840 if ((der_len = i2d_ECParameters(ec_key, &der)) <= 0) {
2841 fprintf(stderr, "FAIL: i2d_ECParameters returned %d for %s\n",
2842 der_len, key->name);
2843 goto err;
2844 }
2845
2846 /* Deliberately don't free ec_pub_key to see if we don't leak. */
2847 p = der;
2848 if (d2i_ECParameters(&ec_pub_key, &p, der_len) == NULL) {
2849 fprintf(stderr, "FAIL: d2i_ECParameters for %s\n", key->name);
2850 goto err;
2851 }
2852
2853 if ((rv = EC_GROUP_cmp(EC_KEY_get0_group(ec_key),
2854 EC_KEY_get0_group(ec_pub_key), NULL)) != 0) {
2855 fprintf(stderr, "FAIL: EC_GROUP_cmp returned %d for %s\n",
2856 rv, key->name);
2857 goto err;
2858 }
2859
2833 failed = 0; 2860 failed = 0;
2834 2861
2835 err: 2862 err: