diff --git a/src/crypto/crypto-ops.c b/src/crypto/crypto-ops.c index 314fe448a..1d8852e14 100644 --- a/src/crypto/crypto-ops.c +++ b/src/crypto/crypto-ops.c @@ -2429,6 +2429,14 @@ void sc_0(unsigned char *s) { } } +void sc_1(unsigned char *s) { + int i; + s[0] = 1; + for (i = 1; i < 32; i++) { + s[i] = 0; + } +} + void sc_reduce32(unsigned char *s) { int64_t s0 = 2097151 & load_3(s); int64_t s1 = 2097151 & (load_4(s + 2) >> 5); diff --git a/src/crypto/crypto-ops.h b/src/crypto/crypto-ops.h index c103f1f78..dcb335d2d 100644 --- a/src/crypto/crypto-ops.h +++ b/src/crypto/crypto-ops.h @@ -147,6 +147,7 @@ extern const ge_p3 ge_p3_identity; extern const ge_p3 ge_p3_H; void ge_fromfe_frombytes_vartime(ge_p2 *, const unsigned char *); void sc_0(unsigned char *); +void sc_1(unsigned char *); void sc_reduce32(unsigned char *); void sc_add(unsigned char *, const unsigned char *, const unsigned char *); void sc_sub(unsigned char *, const unsigned char *, const unsigned char *);