]> source.dussan.org Git - rspamd.git/commitdiff
expose ed25519 private to public key
authorJohn McKay <adenosine3p@gmail.com>
Wed, 16 Jan 2019 09:20:37 +0000 (09:20 +0000)
committerJohn McKay <adenosine3p@gmail.com>
Sat, 2 Feb 2019 05:30:00 +0000 (05:30 +0000)
src/libcryptobox/ed25519/ed25519.c
src/libcryptobox/ed25519/ed25519.h
src/libcryptobox/ed25519/ref.c

index 736cd96bfe308fc0210b1c286c576dabb91d6a11..1591b259001e188a0cd90c346245d330a0bef5e8 100644 (file)
@@ -26,6 +26,7 @@ typedef struct ed25519_impl_s {
        const char *desc;
 
        void (*keypair) (unsigned char *pk, unsigned char *sk);
+       void (*seed_keypair) (unsigned char *pk, unsigned char *sk, unsigned char *seed);
        void (*sign) (unsigned char *sig, size_t *siglen_p,
                        const unsigned char *m, size_t mlen,
                        const unsigned char *sk);
@@ -37,6 +38,7 @@ typedef struct ed25519_impl_s {
 
 #define ED25519_DECLARE(ext) \
     void ed_keypair_##ext(unsigned char *pk, unsigned char *sk); \
+    void ed_seed_keypair_##ext(unsigned char *pk, unsigned char *sk, unsigned char *seed); \
     void ed_sign_##ext(unsigned char *sig, size_t *siglen_p, \
         const unsigned char *m, size_t mlen, \
         const unsigned char *sk); \
@@ -46,7 +48,7 @@ typedef struct ed25519_impl_s {
         const unsigned char *pk)
 
 #define ED25519_IMPL(cpuflags, desc, ext) \
-    {(cpuflags), desc, ed_keypair_##ext, ed_sign_##ext, ed_verify_##ext}
+    {(cpuflags), desc, ed_keypair_##ext, ed_seed_keypair_##ext, ed_sign_##ext, ed_verify_##ext}
 
 ED25519_DECLARE(ref);
 #define ED25519_REF ED25519_IMPL(0, "ref", ref)
@@ -78,6 +80,12 @@ ed25519_load (void)
        return ed25519_opt->desc;
 }
 
+void
+ed25519_seed_keypair (unsigned char *pk, unsigned char *sk, unsigned char *seed)
+{
+       ed25519_opt->seed_keypair (pk, sk, seed);
+}
+
 void
 ed25519_keypair (unsigned char *pk, unsigned char *sk)
 {
index ff8d320aea5b0aab6b9f7d239f11bb9fa838c28f..0fbf7d6fe31e3de1a6ce24794a3d5dfc4d6a442b 100644 (file)
@@ -22,6 +22,7 @@
 
 const char* ed25519_load (void);
 void ed25519_keypair (unsigned char *pk, unsigned char *sk);
+void ed25519_seed_keypair (unsigned char *pk, unsigned char *sk, unsigned char *seed);
 void ed25519_sign (unsigned char *sig, size_t *siglen_p,
                const unsigned char *m, size_t mlen,
                const unsigned char *sk);
index 2f25962423fbdc2b128d05798227de5602bd0163..cbcf8785710a5d5c370c1102fc238e795518582b 100644 (file)
@@ -23,7 +23,7 @@
 #include "ottery.h"
 #include <openssl/evp.h> /* SHA512 */
 
-static int
+int
 ed_seed_keypair_ref (unsigned char *pk, unsigned char *sk,
                const unsigned char *seed)
 {