summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2025-08-19 21:37:08 +0000
committertb <>2025-08-19 21:37:08 +0000
commitfe2206ea0ebbcabbfbe6889f6747287fae32b1fc (patch)
treea5e1084f65d91fea70dee53e16f09442b24f6d15 /src
parentad0cded0ebd0a033077854cf6d330209fd396fe2 (diff)
downloadopenbsd-fe2206ea0ebbcabbfbe6889f6747287fae32b1fc.tar.gz
openbsd-fe2206ea0ebbcabbfbe6889f6747287fae32b1fc.tar.bz2
openbsd-fe2206ea0ebbcabbfbe6889f6747287fae32b1fc.zip
An executive decision has been taken to expose marshal private key as well
rides the libcrypto bump
Diffstat (limited to 'src')
-rw-r--r--src/lib/libcrypto/Symbols.list1
-rw-r--r--src/lib/libcrypto/hidden/openssl/mlkem.h3
-rw-r--r--src/lib/libcrypto/mlkem/mlkem.c3
-rw-r--r--src/lib/libcrypto/mlkem/mlkem.h8
-rw-r--r--src/lib/libcrypto/mlkem/mlkem_internal.h7
5 files changed, 13 insertions, 9 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list
index 80d6ae986c..33668f24c5 100644
--- a/src/lib/libcrypto/Symbols.list
+++ b/src/lib/libcrypto/Symbols.list
@@ -1452,6 +1452,7 @@ MD5_Update
1452MLKEM_decap 1452MLKEM_decap
1453MLKEM_encap 1453MLKEM_encap
1454MLKEM_generate_key 1454MLKEM_generate_key
1455MLKEM_marshal_private_key
1455MLKEM_marshal_public_key 1456MLKEM_marshal_public_key
1456MLKEM_parse_private_key 1457MLKEM_parse_private_key
1457MLKEM_parse_public_key 1458MLKEM_parse_public_key
diff --git a/src/lib/libcrypto/hidden/openssl/mlkem.h b/src/lib/libcrypto/hidden/openssl/mlkem.h
index 3807b3fa1e..e5f1fc0634 100644
--- a/src/lib/libcrypto/hidden/openssl/mlkem.h
+++ b/src/lib/libcrypto/hidden/openssl/mlkem.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: mlkem.h,v 1.5 2025/08/14 15:48:48 beck Exp $ */ 1/* $OpenBSD: mlkem.h,v 1.6 2025/08/19 21:37:08 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2025 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2025 Bob Beck <beck@openbsd.org>
4 * 4 *
@@ -40,6 +40,7 @@ LCRYPTO_USED(MLKEM_encap);
40LCRYPTO_USED(MLKEM_decap); 40LCRYPTO_USED(MLKEM_decap);
41LCRYPTO_USED(MLKEM_marshal_public_key); 41LCRYPTO_USED(MLKEM_marshal_public_key);
42LCRYPTO_USED(MLKEM_parse_public_key); 42LCRYPTO_USED(MLKEM_parse_public_key);
43LCRYPTO_USED(MLKEM_marshal_private_key);
43LCRYPTO_USED(MLKEM_parse_private_key); 44LCRYPTO_USED(MLKEM_parse_private_key);
44 45
45#endif /* _LIBCRYPTO_MLKEM_H */ 46#endif /* _LIBCRYPTO_MLKEM_H */
diff --git a/src/lib/libcrypto/mlkem/mlkem.c b/src/lib/libcrypto/mlkem/mlkem.c
index bf53e5d77a..dcc73c2631 100644
--- a/src/lib/libcrypto/mlkem/mlkem.c
+++ b/src/lib/libcrypto/mlkem/mlkem.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: mlkem.c,v 1.2 2025/08/14 16:04:01 beck Exp $ */ 1/* $OpenBSD: mlkem.c,v 1.3 2025/08/19 21:37:08 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2025, Bob Beck <beck@obtuse.com> 3 * Copyright (c) 2025, Bob Beck <beck@obtuse.com>
4 * 4 *
@@ -358,6 +358,7 @@ MLKEM_marshal_private_key(const MLKEM_private_key *private_key, uint8_t **out,
358 return 0; 358 return 0;
359 } 359 }
360} 360}
361LCRYPTO_ALIAS(MLKEM_marshal_private_key);
361 362
362int 363int
363MLKEM_parse_public_key(MLKEM_public_key *public_key, const uint8_t *in, 364MLKEM_parse_public_key(MLKEM_public_key *public_key, const uint8_t *in,
diff --git a/src/lib/libcrypto/mlkem/mlkem.h b/src/lib/libcrypto/mlkem/mlkem.h
index 31d4858195..dac3cf24de 100644
--- a/src/lib/libcrypto/mlkem/mlkem.h
+++ b/src/lib/libcrypto/mlkem/mlkem.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: mlkem.h,v 1.7 2025/08/14 15:48:48 beck Exp $ */ 1/* $OpenBSD: mlkem.h,v 1.8 2025/08/19 21:37:08 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2025 Bob Beck <beck@obtuse.com> 3 * Copyright (c) 2025 Bob Beck <beck@obtuse.com>
4 * 4 *
@@ -210,6 +210,12 @@ int MLKEM_parse_public_key(MLKEM_public_key *public_key, const uint8_t *in,
210 size_t in_len); 210 size_t in_len);
211 211
212/* 212/*
213 * Marshals a private key to encoded format, used for NIST tests.
214 */
215int MLKEM_marshal_private_key(const MLKEM_private_key *private_key,
216 uint8_t **out, size_t *out_len);
217
218/*
213 * MLKEM_parse_private_key parses a private key, in the format generated by 219 * MLKEM_parse_private_key parses a private key, in the format generated by
214 * |MLKEM_marshal_private_key|, from |in|. It returns one on success or zero on 220 * |MLKEM_marshal_private_key|, from |in|. It returns one on success or zero on
215 * error or failure. |private_key| must be a new uninitialized key. |in_len| 221 * error or failure. |private_key| must be a new uninitialized key. |in_len|
diff --git a/src/lib/libcrypto/mlkem/mlkem_internal.h b/src/lib/libcrypto/mlkem/mlkem_internal.h
index 776f8aac17..7e6c313aa9 100644
--- a/src/lib/libcrypto/mlkem/mlkem_internal.h
+++ b/src/lib/libcrypto/mlkem/mlkem_internal.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: mlkem_internal.h,v 1.8 2025/08/14 15:48:48 beck Exp $ */ 1/* $OpenBSD: mlkem_internal.h,v 1.9 2025/08/19 21:37:08 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2023, Google Inc. 3 * Copyright (c) 2023, Google Inc.
4 * 4 *
@@ -58,11 +58,6 @@ int
58MLKEM_generate_key_external_entropy(MLKEM_private_key *private_key, 58MLKEM_generate_key_external_entropy(MLKEM_private_key *private_key,
59 uint8_t **out_encoded_public_key, size_t *out_encoded_public_key_len, 59 uint8_t **out_encoded_public_key, size_t *out_encoded_public_key_len,
60 const uint8_t *entropy); 60 const uint8_t *entropy);
61/*
62 * Marshals a private key to encoded format, used for NIST tests.
63 */
64int MLKEM_marshal_private_key(const MLKEM_private_key *private_key,
65 uint8_t **out, size_t *out_len);
66 61
67/* 62/*
68 * ML-KEM-768 63 * ML-KEM-768