diff options
author | tb <> | 2024-10-26 20:50:53 +0000 |
---|---|---|
committer | tb <> | 2024-10-26 20:50:53 +0000 |
commit | c399cb17141707db794b18b184afecaf5a7e4bb7 (patch) | |
tree | 719de0bcf73976548261a676b8cc586a76f31e11 /src | |
parent | 36bb4d09e80113fd8f5168e0340790b72bd34827 (diff) | |
download | openbsd-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.c | 29 |
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: |