[PATCH] cipher:kem:ecc: Support secp256k1 by KEM API.
NIIBE Yutaka via Gcrypt-devel <[email protected]> Wed, 25 Jun 2025 10:36:48 +0900
| Newsgroups | gmane.comp.encryption.gpg.libgcrypt.devel |
|---|---|
| Message-ID | <ca896fe55184a0e65646e06faedaa11a5c3086b8.1750815394.git.gniibe@fsij.org> |
* src/gcrypt.h.in (GCRY_KEM_RAW_P256K1): New. * cipher/kem-ecc.c (algo_to_curve, algo_to_seckey_len): Support GCRY_KEM_RAW_P256K1. -- GnuPG-bug-id: 7698 Signed-off-by: NIIBE Yutaka <[email protected]> --- cipher/kem-ecc.c | 6 ++++++ src/gcrypt.h.in | 13 +++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) _______________________________________________ Gcrypt-devel mailing list [email protected] https://lists.gnupg.org/mailman/listinfo/gcrypt-devel
0001-cipher-kem-ecc-Support-secp256k1-by-KEM-API.patch
(text/x-patch, 1.6 KB)
diff --git a/cipher/kem-ecc.c b/cipher/kem-ecc.c
index 55253128..ba78a414 100644
--- a/cipher/kem-ecc.c
+++ b/cipher/kem-ecc.c
@@ -64,6 +64,9 @@ algo_to_curve (int algo)
case GCRY_KEM_RAW_P521R1:
return "NIST P-521";
+ case GCRY_KEM_RAW_P256K1:
+ return "secp256k1";
+
default:
return 0;
}
@@ -101,6 +104,9 @@ algo_to_seckey_len (int algo)
case GCRY_KEM_RAW_P521R1:
return 66;
+ case GCRY_KEM_RAW_P256K1:
+ return 32;
+
default:
return 0;
}
diff --git a/src/gcrypt.h.in b/src/gcrypt.h.in
index 4adcd286..e315c865 100644
--- a/src/gcrypt.h.in
+++ b/src/gcrypt.h.in
@@ -1728,12 +1728,13 @@ enum gcry_kem_algos
/* From here, ECC KEMs */
GCRY_KEM_RAW_X25519 =31, /* Using X25519 with Identity KDF */
GCRY_KEM_RAW_X448 =32, /* Using X448 with Identity KDF */
- GCRY_KEM_RAW_BP256 =33,
- GCRY_KEM_RAW_BP384 =34,
- GCRY_KEM_RAW_BP512 =35,
- GCRY_KEM_RAW_P256R1 =36,
- GCRY_KEM_RAW_P384R1 =37,
- GCRY_KEM_RAW_P521R1 =38,
+ GCRY_KEM_RAW_BP256 =33, /* brainpoolP256r1 */
+ GCRY_KEM_RAW_BP384 =34, /* brainpoolP384r1 */
+ GCRY_KEM_RAW_BP512 =35, /* brainpoolP512r1 */
+ GCRY_KEM_RAW_P256R1 =36, /* NIST P-256, aka SECP256R1 */
+ GCRY_KEM_RAW_P384R1 =37, /* NIST P-384, aka SECP384R1 */
+ GCRY_KEM_RAW_P521R1 =38, /* NIST P-521, aka SECP521R1 */
+ GCRY_KEM_RAW_P256K1 =39, /* SECP256R1 */
GCRY_KEM_DHKEM25519 =41, /* DHKEM with X25519, HKDF, and SHA256 */
GCRY_KEM_DHKEM448 = 42, /* DHKEM with X448, HKDF, and SHA512 */
GCRY_KEM_DHKEMP256R1=43,