tsign.c - sick - sign and check files using ed25519
 (HTM) git clone git://z3bra.org/sick
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       tsign.c (827B)
       ---
            1 #include "ed25519.h"
            2 #include "sha512.h"
            3 #include "ge.h"
            4 #include "sc.h"
            5 
            6 
            7 void ed25519_sign(unsigned char *signature, const unsigned char *message, size_t message_len, const unsigned char *public_key, const unsigned char *private_key) {
            8     sha512_context hash;
            9     unsigned char hram[64];
           10     unsigned char r[64];
           11     ge_p3 R;
           12 
           13 
           14     sha512_init(&hash);
           15     sha512_update(&hash, private_key + 32, 32);
           16     sha512_update(&hash, message, message_len);
           17     sha512_final(&hash, r);
           18 
           19     sc_reduce(r);
           20     ge_scalarmult_base(&R, r);
           21     ge_p3_tobytes(signature, &R);
           22 
           23     sha512_init(&hash);
           24     sha512_update(&hash, signature, 32);
           25     sha512_update(&hash, public_key, 32);
           26     sha512_update(&hash, message, message_len);
           27     sha512_final(&hash, hram);
           28 
           29     sc_reduce(hram);
           30     sc_muladd(signature + 32, hram, private_key, r);
           31 }