tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

sign.c (621B)


      1 /* (Modified by Tor to generate detached signatures.) */
      2 #include <string.h>
      3 #include "crypto_sign.h"
      4 #include "crypto_hash_sha512.h"
      5 #include "ge.h"
      6 #include "sc.h"
      7 
      8 int crypto_sign(
      9  unsigned char *sig,
     10  const unsigned char *m, size_t mlen,
     11  const unsigned char *sk,const unsigned char *pk
     12 )
     13 {
     14  unsigned char nonce[64];
     15  unsigned char hram[64];
     16  ge_p3 R;
     17 
     18  crypto_hash_sha512_2(nonce, sk+32, 32, m, mlen);
     19 
     20  sc_reduce(nonce);
     21  ge_scalarmult_base(&R,nonce);
     22  ge_p3_tobytes(sig,&R);
     23 
     24  crypto_hash_sha512_3(hram, sig, 32, pk, 32, m, mlen);
     25  sc_reduce(hram);
     26  sc_muladd(sig + 32,hram,sk,nonce);
     27 
     28  return 0;
     29 }