From 448176b0b7516218684f7c0718c7ceaf2e518fe1 Mon Sep 17 00:00:00 2001 From: Christoffer Lerno Date: Sat, 19 Jul 2025 10:06:51 +0200 Subject: [PATCH] Rename ed25519 keys/signature. --- lib/std/crypto/ed25519.c3 | 24 ++++++++++++------------ test/unit/stdlib/crypto/ed25519.c3 | 9 +++++---- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/lib/std/crypto/ed25519.c3 b/lib/std/crypto/ed25519.c3 index 28ebcdf4b..76b93dd9f 100644 --- a/lib/std/crypto/ed25519.c3 +++ b/lib/std/crypto/ed25519.c3 @@ -5,17 +5,17 @@ module std::crypto::ed25519; import std::hash::sha512; -alias PrivateKey = char[32]; -alias PublicKey = char[PrivateKey.len]; -alias Signature = char[2 * PublicKey.len]; +alias Ed25519PrivateKey = char[32]; +alias Ed25519PublicKey = char[Ed25519PrivateKey.len]; +alias Ed25519Signature = char[2 * Ed25519PublicKey.len]; <* Generate a public key from a private key. @param [in] private_key : "32 bytes of cryptographically secure random data" - @require private_key.len == PrivateKey.len + @require private_key.len == Ed25519PrivateKey.len *> -fn PublicKey public_keygen(char[] private_key) +fn Ed25519PublicKey public_keygen(char[] private_key) { return pack(&&unproject(&&(BASE * expand_private_key(private_key)[:FBaseInt.len]))); } @@ -26,12 +26,12 @@ fn PublicKey public_keygen(char[] private_key) @param [in] message @param [in] private_key @param [in] public_key - @require private_key.len == PrivateKey.len - @require public_key.len == PublicKey.len + @require private_key.len == Ed25519PrivateKey.len + @require public_key.len == Ed25519PublicKey.len *> -fn Signature sign(char[] message, char[] private_key, char[] public_key) +fn Ed25519Signature sign(char[] message, char[] private_key, char[] public_key) { - Signature r @noinit; + Ed25519Signature r @noinit; char[*] exp = expand_private_key(private_key); @@ -65,8 +65,8 @@ fn Signature sign(char[] message, char[] private_key, char[] public_key) @param [in] message @param [in] signature @param [in] public_key - @require signature.len == Signature.len - @require public_key.len == PublicKey.len + @require signature.len == Ed25519Signature.len + @require public_key.len == Ed25519PublicKey.len *> fn bool verify(char[] message, char[] signature, char[] public_key) { @@ -113,7 +113,7 @@ const Projection BASE @private = Compute the pruned SHA-512 hash of a private key. @param [in] private_key - @require private_key.len == PrivateKey.len + @require private_key.len == Ed25519PrivateKey.len *> fn char[sha512::HASH_SIZE] expand_private_key(char[] private_key) @local { diff --git a/test/unit/stdlib/crypto/ed25519.c3 b/test/unit/stdlib/crypto/ed25519.c3 index 31f09bec0..a71ed5b8e 100644 --- a/test/unit/stdlib/crypto/ed25519.c3 +++ b/test/unit/stdlib/crypto/ed25519.c3 @@ -1,15 +1,16 @@ module std::crypto::ed25519_test @test; import std::crypto::ed25519; -fn void ed25519_keygen_sign_verify() @test { - PrivateKey private_key = x"97b0d0435be3a583df0b77aff277e5fc8f857cae1a827723241bb9bbf7e96018"; +fn void ed25519_keygen_sign_verify() @test +{ + Ed25519PrivateKey private_key = x"97b0d0435be3a583df0b77aff277e5fc8f857cae1a827723241bb9bbf7e96018"; - PublicKey public_key = ed25519::public_keygen(&private_key); + Ed25519PublicKey public_key = ed25519::public_keygen(&private_key); assert(public_key == x"fd462c5c7044b224f4a6cc0f0e5e16511be881be639b3fbc600f7b5d6da54e2f"); String message = "abcdefghijklmnopqrstuvwxyz0123456789"; - Signature signature = ed25519::sign(message, &private_key, &public_key); + Ed25519Signature signature = ed25519::sign(message, &private_key, &public_key); assert(signature == x"c03cf7b181583f6353a9434be910a484e1720247a0dc384d601e495294d0202728dda5f31bc62b00158b1588bc2a65f48ccfaa1b1431aff3d8da9271b7de9403"); assert(ed25519::verify(message, &signature, &public_key)); }