summaryrefslogtreecommitdiff
path: root/libs/libaxolotl/src/curve25519/ed25519/additions/sign_modified.c
diff options
context:
space:
mode:
Diffstat (limited to 'libs/libaxolotl/src/curve25519/ed25519/additions/sign_modified.c')
-rw-r--r--libs/libaxolotl/src/curve25519/ed25519/additions/sign_modified.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/libs/libaxolotl/src/curve25519/ed25519/additions/sign_modified.c b/libs/libaxolotl/src/curve25519/ed25519/additions/sign_modified.c
deleted file mode 100644
index b2fb8c20d3..0000000000
--- a/libs/libaxolotl/src/curve25519/ed25519/additions/sign_modified.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <string.h>
-#include "crypto_sign.h"
-#include "crypto_hash_sha512.h"
-#include "ge.h"
-#include "sc.h"
-#include "zeroize.h"
-#include "crypto_additions.h"
-
-/* NEW: Compare to pristine crypto_sign()
- Uses explicit private key for nonce derivation and as scalar,
- instead of deriving both from a master key.
-*/
-int crypto_sign_modified(
- unsigned char *sm,
- const unsigned char *m,unsigned long long mlen,
- const unsigned char *sk, const unsigned char* pk,
- const unsigned char* random
-)
-{
- unsigned char nonce[64];
- unsigned char hram[64];
- ge_p3 R;
- int count=0;
-
- memmove(sm + 64,m,mlen);
- memmove(sm + 32,sk,32); /* NEW: Use privkey directly for nonce derivation */
-
- /* NEW : add prefix to separate hash uses - see .h */
- sm[0] = 0xFE;
- for (count = 1; count < 32; count++)
- sm[count] = 0xFF;
-
- /* NEW: add suffix of random data */
- memmove(sm + mlen + 64, random, 64);
-
- crypto_hash_sha512(nonce,sm,mlen + 128);
- memmove(sm + 32,pk,32);
-
- sc_reduce(nonce);
-
- ge_scalarmult_base(&R,nonce);
- ge_p3_tobytes(sm,&R);
-
- crypto_hash_sha512(hram,sm,mlen + 64);
- sc_reduce(hram);
- sc_muladd(sm + 32,hram,sk,nonce); /* NEW: Use privkey directly */
-
- /* Erase any traces of private scalar or
- nonce left in the stack from sc_muladd */
- zeroize_stack();
- zeroize(nonce, 64);
- return 0;
-}