diff options
author | 2016-10-06 11:21:56 -0700 | |
---|---|---|
committer | 2016-10-06 11:21:56 -0700 | |
commit | fdc9457ef2e23d081492962b9b08ec4bdcd0ffb0 (patch) | |
tree | a8d8a8c2a5fc51d876a22b28ce06b7def9dbb912 /src/Experiments | |
parent | b4149da4a5df358aef6ba32f1d66b0fa813aea66 (diff) | |
parent | bd40805a09cc060531c5a1e7a69329255150f991 (diff) |
Merge _CoqProject
Diffstat (limited to 'src/Experiments')
-rw-r--r-- | src/Experiments/c.sh | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/Experiments/c.sh b/src/Experiments/c.sh new file mode 100644 index 000000000..12757595b --- /dev/null +++ b/src/Experiments/c.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +cat << EOF +#include <stdint.h> + +typedef struct { uint64_t v[10]; } fe25519; +typedef struct { fe25519 X, Y, Z, T; } ge25519; + +void ge25519_add(ge25519 *R, ge25519 *P, ge25519 *Q) { +EOF + +python -c "print ('\n'.join('\tuint64_t %s_%s_%d = %s->%s.v[%i];'%(P,c,i,P,c,i) for i in range(10) for c in 'XYZT' for P in 'PQ'))" +grep '^\s*(\*\s*let' SpecificCurve25519.v | sed 's#(\*##g' | sed 's#\s*let#\tuint64_t#g' | sed 's#:=#=#g' | sed 's#\s\+in#;#g' | sed 's#\s*\*)##g' +grep -A4 '^\s*(\*\s*let' SpecificCurve25519.v | tail -4 | tr -dc '0123456789x \n' | python -c "import sys; print ('\tge25519 ret = {{' + '},\n\t{'.join(', '.join(line.split()) for line in sys.stdin) + '}};')" + +cat << EOF + *R = ret; +} +EOF |