LCOV - code coverage report
Current view: top level - externals/compact25519/src - compact_ed25519.c (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 14 0.0 %
Date: 2024-09-16 20:15:30 Functions: 0 4 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : #include "compact_ed25519.h"
       2                 :            : 
       3                 :            : #ifndef COMPACT_DISABLE_ED25519
       4                 :            : #include "c25519/edsign.h"
       5                 :            : #include "compact_wipe.h"
       6                 :            : #include <string.h>
       7                 :            : 
       8                 :            : #define __PUBLIC_KEY_OFFSET (32)
       9                 :            : 
      10                 :          0 : void compact_ed25519_keygen(
      11                 :            :     uint8_t private_key[ED25519_PRIVATE_KEY_SIZE], 
      12                 :            :     uint8_t public_key[ED25519_PUBLIC_KEY_SIZE], 
      13                 :            :     uint8_t random_seed[ED25519_SEED_SIZE]
      14                 :            : ) {
      15                 :            :     // private key is seed + public key, like golang and others
      16                 :          0 :     edsign_sec_to_pub(public_key, random_seed);
      17                 :          0 :     memcpy(private_key, random_seed, ED25519_SEED_SIZE);
      18                 :          0 :     memcpy(private_key + __PUBLIC_KEY_OFFSET, public_key, ED25519_PUBLIC_KEY_SIZE);
      19                 :          0 :     compact_wipe(random_seed, ED25519_SEED_SIZE);
      20                 :          0 : }
      21                 :            : 
      22                 :          0 : void compact_ed25519_calc_public_key(
      23                 :            :     uint8_t public_key[ED25519_PUBLIC_KEY_SIZE], 
      24                 :            :     const uint8_t private_key[ED25519_PRIVATE_KEY_SIZE]
      25                 :            : ) {
      26                 :          0 :     memcpy(public_key, private_key + __PUBLIC_KEY_OFFSET, ED25519_PUBLIC_KEY_SIZE);
      27                 :          0 : }
      28                 :            : 
      29                 :          0 : void compact_ed25519_sign(
      30                 :            :     uint8_t signature[ED25519_SIGNATURE_SIZE], 
      31                 :            :     const uint8_t private_key[ED25519_PRIVATE_KEY_SIZE], 
      32                 :            :     const void *message, 
      33                 :            :     size_t msg_length
      34                 :            : ) {
      35                 :          0 :     edsign_sign(signature, private_key + __PUBLIC_KEY_OFFSET, private_key, message, msg_length);
      36                 :          0 : }
      37                 :            : 
      38                 :          0 : bool compact_ed25519_verify(
      39                 :            :     const uint8_t signature[ED25519_SIGNATURE_SIZE], 
      40                 :            :     const uint8_t public_key[ED25519_PUBLIC_KEY_SIZE], 
      41                 :            :     const void *message, 
      42                 :            :     size_t msg_length
      43                 :            : ) {
      44                 :          0 :     return edsign_verify(signature, public_key, message, msg_length) != 0;
      45                 :            : }
      46                 :            : #endif

Generated by: LCOV version 1.14