summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2012-12-08 12:15:49 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2012-12-08 12:15:49 +0100
commitd072ec9de1830616a045ad679efbd5c17fe899c7 (patch)
tree05ea85a9e88db1802670dc47eef0057f761e4f69
parent5dff3b368fb18a3124d062456d14a9092568ad08 (diff)
downloadlibuecc-d072ec9de1830616a045ad679efbd5c17fe899c7.tar
libuecc-d072ec9de1830616a045ad679efbd5c17fe899c7.zip
Add the order of the base point to the public API
-rw-r--r--include/libuecc/ecc.h1
-rw-r--r--src/ec25519_gf.c5
2 files changed, 4 insertions, 2 deletions
diff --git a/include/libuecc/ecc.h b/include/libuecc/ecc.h
index 42431ec..f8e3dfe 100644
--- a/include/libuecc/ecc.h
+++ b/include/libuecc/ecc.h
@@ -56,6 +56,7 @@ void ecc_25519_scalarmult(ecc_25519_work *out, const ecc_int_256 *n, const ecc_2
void ecc_25519_scalarmult_base(ecc_25519_work *out, const ecc_int_256 *n);
/* operations on elements of the prime field F_q for q = 2^252 + 27742317777372353535851937790883648493 */
+extern const ecc_int_256 ecc_25519_gf_order;
int ecc_25519_gf_is_zero(const ecc_int_256 *in);
void ecc_25519_gf_add(ecc_int_256 *out, const ecc_int_256 *in1, const ecc_int_256 *in2);
void ecc_25519_gf_sub(ecc_int_256 *out, const ecc_int_256 *in1, const ecc_int_256 *in2);
diff --git a/src/ec25519_gf.c b/src/ec25519_gf.c
index de9b1a8..f4d81ad 100644
--- a/src/ec25519_gf.c
+++ b/src/ec25519_gf.c
@@ -37,13 +37,14 @@
#define ASR(n,s) (((n) >> s)|(IS_NEGATIVE(n)*((unsigned)-1) << (8*sizeof(n)-s)))
-static const unsigned char q[32] = {
+const ecc_int_256 ecc_25519_gf_order = {{
0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58,
0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10
-};
+}};
+static const unsigned char *q = ecc_25519_gf_order.p;
static void select(unsigned char out[32], const unsigned char r[32], const unsigned char s[32], unsigned int b) {
unsigned int j;