projects
/
shamirs
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tweak, build.sh
[shamirs]
/
shamirssecret.c
diff --git
a/shamirssecret.c
b/shamirssecret.c
index 617f959cd1f846ecd2b42934b2b7b9bb9fd8b1d2..be6eed3f9d0c4247dc09a6a7d27fa0f775a32396 100644
(file)
--- a/
shamirssecret.c
+++ b/
shamirssecret.c
@@
-102,6
+102,11
@@
static uint8_t field_pow_ret(uint8_t calc, uint8_t a, uint8_t e) {
return ret;
}
static uint8_t field_pow(uint8_t a, uint8_t e) {
return ret;
}
static uint8_t field_pow(uint8_t a, uint8_t e) {
+#ifndef TEST
+ // Although this function works for a==0, its not trivially obvious why,
+ // and since we never call with a==0, we just assert a != 0 (except when testing)
+ assert(a != 0);
+#endif
return field_pow_ret(exp[(log[a] * e) % 255], a, e);
}
return field_pow_ret(exp[(log[a] * e) % 255], a, e);
}
@@
-125,7
+130,7
@@
static uint8_t field_mul_calc(uint8_t a, uint8_t b) {
static uint8_t field_pow_calc(uint8_t a, uint8_t e) {
uint8_t ret = 1;
for (uint8_t i = 0; i < e; i++)
static uint8_t field_pow_calc(uint8_t a, uint8_t e) {
uint8_t ret = 1;
for (uint8_t i = 0; i < e; i++)
- ret = field_mul(ret, a);
+ ret = field_mul
_calc
(ret, a);
return ret;
}
int main() {
return ret;
}
int main() {
@@
-134,7
+139,7
@@
int main() {
assert(field_mul_calc(i, field_invert(i)) == 1);
// Test multiplication with the logarithm tables
assert(field_mul_calc(i, field_invert(i)) == 1);
// Test multiplication with the logarithm tables
- for (uint16_t i = 0; i <
2
; i++) {
+ for (uint16_t i = 0; i <
P
; i++) {
for (uint16_t j = 0; j < P; j++)
assert(field_mul(i, j) == field_mul_calc(i, j));
}
for (uint16_t j = 0; j < P; j++)
assert(field_mul(i, j) == field_mul_calc(i, j));
}
@@
-241,7
+246,7
@@
int main(int argc, char* argv[]) {
ERROREXIT("getopt failed?\n")
}
if (!(split & 0x2))
ERROREXIT("getopt failed?\n")
}
if (!(split & 0x2))
- ERROREXIT("Must specify
either -c or -s
\n")
+ ERROREXIT("Must specify
one of -c, -s or -?
\n")
split &= 0x1;
if (argc != optind)
split &= 0x1;
if (argc != optind)