sntrup761: add function for deriving public key from secret key
authorFelix Fietkau <nbd@nbd.name>
Fri, 11 Jul 2025 09:31:40 +0000 (11:31 +0200)
committerFelix Fietkau <nbd@nbd.name>
Sat, 12 Jul 2025 08:33:56 +0000 (10:33 +0200)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
sntrup761.c
sntrup761.h

index a125e5fee3149b5f082b1a475b7c1747527a904c..95bc85329c32322091c5eff6e56e2824daef3cb0 100644 (file)
@@ -2773,6 +2773,12 @@ next:
     return 0;
 }
 
+int sntrup761_pubkey(uint8_t *pk, const uint8_t *sk)
+{
+       memcpy(pk, sk + SecretKeys_bytes, SNTRUP761_PUB_SIZE);
+       return 0;
+}
+
 int sntrup761_enc(uint8_t *c, uint8_t *k, const uint8_t *pk)
 {
     Encap(c, k, pk);
index 5ac4fab615690863ff37b66e7d2807574e121333..b747e8ddae08908fd69f61c57adcb56712e322be 100644 (file)
@@ -10,6 +10,7 @@
 
 void sntrup761_set_batch(int val);
 int sntrup761_keypair(uint8_t *pk, uint8_t *sk);
+int sntrup761_pubkey(uint8_t *pk, const uint8_t *sk);
 int sntrup761_enc(uint8_t *c, uint8_t *k, const uint8_t *pk);
 int sntrup761_dec(uint8_t *k, const uint8_t *c, const uint8_t *sk);