diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-10-16 23:07:34 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-10-17 06:32:06 +0200 |
commit | 256e972b36623d24251f5c69d7c40bb5ab9d2a29 (patch) | |
tree | a2b471be16931a26d4335889744ab537340b1e00 /src | |
parent | a0751e06dc93b42c5ce93e22853577b55e933477 (diff) | |
download | libuecc-256e972b36623d24251f5c69d7c40bb5ab9d2a29.tar libuecc-256e972b36623d24251f5c69d7c40bb5ab9d2a29.zip |
Add Ed25519-compatible generator point
The old point is renamed, as it isn't the only default point anymore. The
old name and functions using the old point are deprecated now.
Diffstat (limited to 'src')
-rw-r--r-- | src/ec25519.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/ec25519.c b/src/ec25519.c index f2bc288..a9c5748 100644 --- a/src/ec25519.c +++ b/src/ec25519.c @@ -48,6 +48,22 @@ const ecc_25519_work_t ecc_25519_work_identity = {{0}, {1}, {1}, {0}}; +const ecc_25519_work_t ecc_25519_work_base_legacy = { + {0xd4, 0x6b, 0xfe, 0x7f, 0x39, 0xfa, 0x8c, 0x22, + 0xe1, 0x96, 0x23, 0xeb, 0x26, 0xb7, 0x8e, 0x6a, + 0x34, 0x74, 0x8b, 0x66, 0xd6, 0xa3, 0x26, 0xdd, + 0x19, 0x5e, 0x9f, 0x21, 0x50, 0x43, 0x7c, 0x54}, + {0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}, + {1}, + {0x47, 0x56, 0x98, 0x99, 0xc7, 0x61, 0x0a, 0x82, + 0x1a, 0xdf, 0x82, 0x22, 0x1f, 0x2c, 0x72, 0x88, + 0xc3, 0x29, 0x09, 0x52, 0x78, 0xe9, 0x1e, 0xe4, + 0x47, 0x4b, 0x4c, 0x81, 0xa6, 0x02, 0xfd, 0x29} +}; + const ecc_25519_work_t ecc_25519_work_default_base = { {0xd4, 0x6b, 0xfe, 0x7f, 0x39, 0xfa, 0x8c, 0x22, 0xe1, 0x96, 0x23, 0xeb, 0x26, 0xb7, 0x8e, 0x6a, @@ -65,6 +81,23 @@ const ecc_25519_work_t ecc_25519_work_default_base = { }; +const ecc_25519_work_t ecc_25519_work_base_ed25519 = { + {0x19, 0x94, 0x01, 0x80, 0xc6, 0x05, 0x73, 0xdd, + 0x1e, 0x69, 0xdc, 0x14, 0xd9, 0x48, 0x71, 0x95, + 0xcb, 0x8b, 0x74, 0x99, 0x29, 0x5c, 0xd9, 0x22, + 0xe6, 0xa1, 0x60, 0xde, 0xaf, 0xbc, 0x83, 0x2b}, + {0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, + 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}, + {1}, + {0xa6, 0xa9, 0x67, 0x66, 0x38, 0x9e, 0xf5, 0x7d, + 0xe5, 0x20, 0x7d, 0xdd, 0xe0, 0xd3, 0x8d, 0x77, + 0x3c, 0xd6, 0xf6, 0xad, 0x87, 0x16, 0xe1, 0x1b, + 0xb8, 0xb4, 0xb3, 0x7e, 0x59, 0xfd, 0x02, 0x56}, +}; + + static const uint32_t zero[32] = {0}; static const uint32_t one[32] = {1}; @@ -679,9 +712,9 @@ void ecc_25519_scalarmult(ecc_25519_work_t *out, const ecc_int256_t *n, const ec } void ecc_25519_scalarmult_base_bits(ecc_25519_work_t *out, const ecc_int256_t *n, unsigned bits) { - ecc_25519_scalarmult_bits(out, n, &ecc_25519_work_default_base, bits); + ecc_25519_scalarmult_bits(out, n, &ecc_25519_work_base_legacy, bits); } void ecc_25519_scalarmult_base(ecc_25519_work_t *out, const ecc_int256_t *n) { - ecc_25519_scalarmult(out, n, &ecc_25519_work_default_base); + ecc_25519_scalarmult(out, n, &ecc_25519_work_base_legacy); } |