summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/libcrypto/Makefile5
-rw-r--r--lib/libcrypto/ecdsa/ecdsa.c (renamed from lib/libcrypto/ecdsa/ecs_ossl.c)101
-rw-r--r--lib/libcrypto/ecdsa/ecs_asn1.c151
3 files changed, 97 insertions, 160 deletions
diff --git a/lib/libcrypto/Makefile b/lib/libcrypto/Makefile
index d67bb4431af..bf20491fbc8 100644
--- a/lib/libcrypto/Makefile
+++ b/lib/libcrypto/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.133 2023/06/29 06:12:04 tb Exp $
+# $OpenBSD: Makefile,v 1.134 2023/07/05 12:18:21 tb Exp $
LIB= crypto
LIBREBUILD=y
@@ -357,10 +357,9 @@ SRCS+= ech_key.c
SRCS+= ech_lib.c
# ecdsa/
-SRCS+= ecs_asn1.c
SRCS+= ecs_err.c
SRCS+= ecs_lib.c
-SRCS+= ecs_ossl.c
+SRCS+= ecdsa.c
# engine/
SRCS+= eng_all.c
diff --git a/lib/libcrypto/ecdsa/ecs_ossl.c b/lib/libcrypto/ecdsa/ecdsa.c
index 9886852e0f9..c831e9f7160 100644
--- a/lib/libcrypto/ecdsa/ecs_ossl.c
+++ b/lib/libcrypto/ecdsa/ecdsa.c
@@ -1,9 +1,6 @@
-/* $OpenBSD: ecs_ossl.c,v 1.73 2023/07/05 11:37:46 tb Exp $ */
-/*
- * Written by Nils Larsch for the OpenSSL project
- */
+/* $OpenBSD: ecdsa.c,v 1.1 2023/07/05 12:18:21 tb Exp $ */
/* ====================================================================
- * Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -25,7 +22,7 @@
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
* endorse or promote products derived from this software without
* prior written permission. For written permission, please contact
- * openssl-core@OpenSSL.org.
+ * licensing@OpenSSL.org.
*
* 5. Products derived from this software may not be called "OpenSSL"
* nor may "OpenSSL" appear in their names without prior written
@@ -60,6 +57,7 @@
#include <openssl/opensslconf.h>
+#include <openssl/asn1t.h>
#include <openssl/bn.h>
#include <openssl/err.h>
#include <openssl/evp.h>
@@ -69,6 +67,97 @@
#include "ec_local.h"
#include "ecdsa_local.h"
+static const ASN1_TEMPLATE ECDSA_SIG_seq_tt[] = {
+ {
+ .flags = 0,
+ .tag = 0,
+ .offset = offsetof(ECDSA_SIG, r),
+ .field_name = "r",
+ .item = &BIGNUM_it,
+ },
+ {
+ .flags = 0,
+ .tag = 0,
+ .offset = offsetof(ECDSA_SIG, s),
+ .field_name = "s",
+ .item = &BIGNUM_it,
+ },
+};
+
+const ASN1_ITEM ECDSA_SIG_it = {
+ .itype = ASN1_ITYPE_SEQUENCE,
+ .utype = V_ASN1_SEQUENCE,
+ .templates = ECDSA_SIG_seq_tt,
+ .tcount = sizeof(ECDSA_SIG_seq_tt) / sizeof(ASN1_TEMPLATE),
+ .funcs = NULL,
+ .size = sizeof(ECDSA_SIG),
+ .sname = "ECDSA_SIG",
+};
+
+ECDSA_SIG *ECDSA_SIG_new(void);
+void ECDSA_SIG_free(ECDSA_SIG *a);
+ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **a, const unsigned char **in, long len);
+int i2d_ECDSA_SIG(const ECDSA_SIG *a, unsigned char **out);
+
+ECDSA_SIG *
+d2i_ECDSA_SIG(ECDSA_SIG **a, const unsigned char **in, long len)
+{
+ return (ECDSA_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
+ &ECDSA_SIG_it);
+}
+
+int
+i2d_ECDSA_SIG(const ECDSA_SIG *a, unsigned char **out)
+{
+ return ASN1_item_i2d((ASN1_VALUE *)a, out, &ECDSA_SIG_it);
+}
+
+ECDSA_SIG *
+ECDSA_SIG_new(void)
+{
+ return (ECDSA_SIG *)ASN1_item_new(&ECDSA_SIG_it);
+}
+
+void
+ECDSA_SIG_free(ECDSA_SIG *a)
+{
+ ASN1_item_free((ASN1_VALUE *)a, &ECDSA_SIG_it);
+}
+
+void
+ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
+{
+ if (pr != NULL)
+ *pr = sig->r;
+ if (ps != NULL)
+ *ps = sig->s;
+}
+
+const BIGNUM *
+ECDSA_SIG_get0_r(const ECDSA_SIG *sig)
+{
+ return sig->r;
+}
+
+const BIGNUM *
+ECDSA_SIG_get0_s(const ECDSA_SIG *sig)
+{
+ return sig->s;
+}
+
+int
+ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
+{
+ if (r == NULL || s == NULL)
+ return 0;
+
+ BN_free(sig->r);
+ BN_free(sig->s);
+ sig->r = r;
+ sig->s = s;
+ return 1;
+}
+
/*
* FIPS 186-5, section 6.4.1, step 2: convert hashed message into an integer.
* Use the order_bits leftmost bits if it exceeds the group order.
diff --git a/lib/libcrypto/ecdsa/ecs_asn1.c b/lib/libcrypto/ecdsa/ecs_asn1.c
deleted file mode 100644
index 9e3506cd51d..00000000000
--- a/lib/libcrypto/ecdsa/ecs_asn1.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* $OpenBSD: ecs_asn1.c,v 1.15 2023/07/05 11:37:46 tb Exp $ */
-/* ====================================================================
- * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * licensing@OpenSSL.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-#include <openssl/asn1t.h>
-#include <openssl/bn.h>
-#include <openssl/err.h>
-
-#include "ecdsa_local.h"
-
-static const ASN1_TEMPLATE ECDSA_SIG_seq_tt[] = {
- {
- .flags = 0,
- .tag = 0,
- .offset = offsetof(ECDSA_SIG, r),
- .field_name = "r",
- .item = &BIGNUM_it,
- },
- {
- .flags = 0,
- .tag = 0,
- .offset = offsetof(ECDSA_SIG, s),
- .field_name = "s",
- .item = &BIGNUM_it,
- },
-};
-
-const ASN1_ITEM ECDSA_SIG_it = {
- .itype = ASN1_ITYPE_SEQUENCE,
- .utype = V_ASN1_SEQUENCE,
- .templates = ECDSA_SIG_seq_tt,
- .tcount = sizeof(ECDSA_SIG_seq_tt) / sizeof(ASN1_TEMPLATE),
- .funcs = NULL,
- .size = sizeof(ECDSA_SIG),
- .sname = "ECDSA_SIG",
-};
-
-ECDSA_SIG *ECDSA_SIG_new(void);
-void ECDSA_SIG_free(ECDSA_SIG *a);
-ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **a, const unsigned char **in, long len);
-int i2d_ECDSA_SIG(const ECDSA_SIG *a, unsigned char **out);
-
-ECDSA_SIG *
-d2i_ECDSA_SIG(ECDSA_SIG **a, const unsigned char **in, long len)
-{
- return (ECDSA_SIG *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
- &ECDSA_SIG_it);
-}
-
-int
-i2d_ECDSA_SIG(const ECDSA_SIG *a, unsigned char **out)
-{
- return ASN1_item_i2d((ASN1_VALUE *)a, out, &ECDSA_SIG_it);
-}
-
-ECDSA_SIG *
-ECDSA_SIG_new(void)
-{
- return (ECDSA_SIG *)ASN1_item_new(&ECDSA_SIG_it);
-}
-
-void
-ECDSA_SIG_free(ECDSA_SIG *a)
-{
- ASN1_item_free((ASN1_VALUE *)a, &ECDSA_SIG_it);
-}
-
-void
-ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps)
-{
- if (pr != NULL)
- *pr = sig->r;
- if (ps != NULL)
- *ps = sig->s;
-}
-
-const BIGNUM *
-ECDSA_SIG_get0_r(const ECDSA_SIG *sig)
-{
- return sig->r;
-}
-
-const BIGNUM *
-ECDSA_SIG_get0_s(const ECDSA_SIG *sig)
-{
- return sig->s;
-}
-
-int
-ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s)
-{
- if (r == NULL || s == NULL)
- return 0;
-
- BN_free(sig->r);
- BN_free(sig->s);
- sig->r = r;
- sig->s = s;
- return 1;
-}