projects
/
shamirs
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
29918d3
)
Dont require c99 for shamirssecret.c
author
Matt Corallo
<git@bluematt.me>
Sun, 8 Sep 2013 04:14:46 +0000
(
00:14
-0400)
committer
Matt Corallo
<git@bluematt.me>
Thu, 5 Sep 2013 15:01:52 +0000
(11:01 -0400)
build.sh
patch
|
blob
|
history
shamirssecret.c
patch
|
blob
|
history
diff --git
a/build.sh
b/build.sh
index ad548405eb77c005a4553d1fa947a485ca577048..2b922153d33dcd468db7cdf7da2adb6750d5864b 100755
(executable)
--- a/
build.sh
+++ b/
build.sh
@@
-1,4
+1,4
@@
#!/bin/sh
$CC $CFLAGS -Wall -Werror -O2 -std=c99 shamirssecret.c -DTEST -o shamirssecret && ./shamirssecret &&
#!/bin/sh
$CC $CFLAGS -Wall -Werror -O2 -std=c99 shamirssecret.c -DTEST -o shamirssecret && ./shamirssecret &&
-$CC $CFLAGS -Wall -Werror -O2 -
std=c99 -
c shamirssecret.c -o shamirssecret.o &&
+$CC $CFLAGS -Wall -Werror -O2 -c shamirssecret.c -o shamirssecret.o &&
$CC $CFLAGS -Wall -Werror -O2 -std=c99 main.c shamirssecret.o -o shamirssecret
$CC $CFLAGS -Wall -Werror -O2 -std=c99 main.c shamirssecret.o -o shamirssecret
diff --git
a/shamirssecret.c
b/shamirssecret.c
index f440f49f21d7d2d9d7413f048b8cc546b38c0536..e3bbe49eb1cbc0ccbd563656b0893c4d3949fb80 100644
(file)
--- a/
shamirssecret.c
+++ b/
shamirssecret.c
@@
-187,9
+187,9
@@
int main() {
* coefficients[0] == secret, the rest are random values
*/
uint8_t calculateQ(uint8_t coefficients[], uint8_t shares_required, uint8_t x) {
* coefficients[0] == secret, the rest are random values
*/
uint8_t calculateQ(uint8_t coefficients[], uint8_t shares_required, uint8_t x) {
+ uint8_t ret = coefficients[0], i;
CHECKSTATE(x != 0); // q(0) == secret, though so does a[0]
CHECKSTATE(x != 0); // q(0) == secret, though so does a[0]
- uint8_t ret = coefficients[0];
- for (uint8_t i = 1; i < shares_required; i++) {
+ for (i = 1; i < shares_required; i++) {
ret = field_add(ret, field_mul(coefficients[i], field_pow(x, i)));
}
return ret;
ret = field_add(ret, field_mul(coefficients[i], field_pow(x, i)));
}
return ret;
@@
-201,10
+201,10
@@
uint8_t calculateQ(uint8_t coefficients[], uint8_t shares_required, uint8_t x) {
uint8_t calculateSecret(uint8_t x[], uint8_t q[], uint8_t shares_required) {
// Calculate the x^0 term using a derivation of the forumula at
// http://en.wikipedia.org/wiki/Lagrange_polynomial#Example_2
uint8_t calculateSecret(uint8_t x[], uint8_t q[], uint8_t shares_required) {
// Calculate the x^0 term using a derivation of the forumula at
// http://en.wikipedia.org/wiki/Lagrange_polynomial#Example_2
- uint8_t ret = 0;
- for (
uint8_t
i = 0; i < shares_required; i++) {
+ uint8_t ret = 0
, i, j
;
+ for (i = 0; i < shares_required; i++) {
uint8_t temp = q[i];
uint8_t temp = q[i];
- for (
uint8_t
j = 0; j < shares_required; j++) {
+ for (j = 0; j < shares_required; j++) {
if (i == j)
continue;
temp = field_mul(temp, field_neg(x[j]));
if (i == j)
continue;
temp = field_mul(temp, field_neg(x[j]));