diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/ecdsa/ecdsa.c | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/src/lib/libcrypto/ecdsa/ecdsa.c b/src/lib/libcrypto/ecdsa/ecdsa.c index c831e9f716..20d605cafd 100644 --- a/src/lib/libcrypto/ecdsa/ecdsa.c +++ b/src/lib/libcrypto/ecdsa/ecdsa.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ecdsa.c,v 1.1 2023/07/05 12:18:21 tb Exp $ */ | 1 | /* $OpenBSD: ecdsa.c,v 1.2 2023/07/05 12:27:36 tb Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. |
| 4 | * | 4 | * |
| @@ -158,6 +158,33 @@ ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) | |||
| 158 | return 1; | 158 | return 1; |
| 159 | } | 159 | } |
| 160 | 160 | ||
| 161 | int | ||
| 162 | ECDSA_size(const EC_KEY *r) | ||
| 163 | { | ||
| 164 | const EC_GROUP *group; | ||
| 165 | const BIGNUM *order = NULL; | ||
| 166 | ECDSA_SIG sig; | ||
| 167 | int ret = 0; | ||
| 168 | |||
| 169 | if (r == NULL) | ||
| 170 | goto err; | ||
| 171 | |||
| 172 | if ((group = EC_KEY_get0_group(r)) == NULL) | ||
| 173 | goto err; | ||
| 174 | |||
| 175 | if ((order = EC_GROUP_get0_order(group)) == NULL) | ||
| 176 | goto err; | ||
| 177 | |||
| 178 | sig.r = (BIGNUM *)order; | ||
| 179 | sig.s = (BIGNUM *)order; | ||
| 180 | |||
| 181 | if ((ret = i2d_ECDSA_SIG(&sig, NULL)) < 0) | ||
| 182 | ret = 0; | ||
| 183 | |||
| 184 | err: | ||
| 185 | return ret; | ||
| 186 | } | ||
| 187 | |||
| 161 | /* | 188 | /* |
| 162 | * FIPS 186-5, section 6.4.1, step 2: convert hashed message into an integer. | 189 | * FIPS 186-5, section 6.4.1, step 2: convert hashed message into an integer. |
| 163 | * Use the order_bits leftmost bits if it exceeds the group order. | 190 | * Use the order_bits leftmost bits if it exceeds the group order. |
| @@ -792,30 +819,3 @@ ECDSA_verify(int type, const unsigned char *digest, int digest_len, | |||
| 792 | } | 819 | } |
| 793 | return key->meth->verify(type, digest, digest_len, sigbuf, sig_len, key); | 820 | return key->meth->verify(type, digest, digest_len, sigbuf, sig_len, key); |
| 794 | } | 821 | } |
| 795 | |||
| 796 | int | ||
| 797 | ECDSA_size(const EC_KEY *r) | ||
| 798 | { | ||
| 799 | const EC_GROUP *group; | ||
| 800 | const BIGNUM *order = NULL; | ||
| 801 | ECDSA_SIG sig; | ||
| 802 | int ret = 0; | ||
| 803 | |||
| 804 | if (r == NULL) | ||
| 805 | goto err; | ||
| 806 | |||
| 807 | if ((group = EC_KEY_get0_group(r)) == NULL) | ||
| 808 | goto err; | ||
| 809 | |||
| 810 | if ((order = EC_GROUP_get0_order(group)) == NULL) | ||
| 811 | goto err; | ||
| 812 | |||
| 813 | sig.r = (BIGNUM *)order; | ||
| 814 | sig.s = (BIGNUM *)order; | ||
| 815 | |||
| 816 | if ((ret = i2d_ECDSA_SIG(&sig, NULL)) < 0) | ||
| 817 | ret = 0; | ||
| 818 | |||
| 819 | err: | ||
| 820 | return ret; | ||
| 821 | } | ||
