summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authortb <>2023-07-05 12:27:36 +0000
committertb <>2023-07-05 12:27:36 +0000
commit0d59d140d33bb5069794fde616968ed2e88acb85 (patch)
tree89c5858de32f1bf21c7729c30e499de079834941 /src/lib
parent26010e9c7baa4f220e97d24329f0c64fc74430dd (diff)
downloadopenbsd-0d59d140d33bb5069794fde616968ed2e88acb85.tar.gz
openbsd-0d59d140d33bb5069794fde616968ed2e88acb85.tar.bz2
openbsd-0d59d140d33bb5069794fde616968ed2e88acb85.zip
Move ECDSA_size() to a more sensible place in this file
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libcrypto/ecdsa/ecdsa.c56
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
161int
162ECDSA_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
796int
797ECDSA_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}