summaryrefslogtreecommitdiff
path: root/shadata.c
diff options
context:
space:
mode:
authorNiels Möller <nisse@lysator.liu.se>2001-10-07 20:52:01 +0200
committerNiels Möller <nisse@lysator.liu.se>2001-10-07 20:52:01 +0200
commit418c25a7f08192438e7e72ceb6624b581f601bd4 (patch)
tree7b6ab6d7b492a4f90b3241373489e25f6dbea3bb /shadata.c
parente0c3262743e76cfacac1f1f7fe2cd2e3baa2af1d (diff)
downloadnettle-418c25a7f08192438e7e72ceb6624b581f601bd4.tar.gz
* shadata.c: New file, for generating SHA-256 constants.
Rev: src/nettle/shadata.c:1.1
Diffstat (limited to 'shadata.c')
-rw-r--r--shadata.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/shadata.c b/shadata.c
new file mode 100644
index 00000000..6934b51a
--- /dev/null
+++ b/shadata.c
@@ -0,0 +1,47 @@
+
+#include <math.h>
+#include <stdio.h>
+
+static const unsigned primes[64] =
+{
+ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29,
+ 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
+ 73, 79, 83, 89, 97, 101, 103, 107, 109, 113,
+ 127, 131, 137, 139, 149, 151, 157, 163, 167, 173,
+ 179, 181, 191, 193, 197, 199, 211, 223, 227, 229,
+ 233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
+ 283, 293, 307, 311
+};
+
+int main(int argc, char **argv)
+{
+ int i;
+ static const double third = 1.0/3;
+
+ printf("SHA-256 constants: \n");
+ for (i = 0; i < 64; )
+ {
+ double root = pow(primes[i++], third);
+ double fraction = root - (floor(root));
+ double value = floor(ldexp(fraction, 32));
+
+ printf("0x%lxUL, ", (unsigned long) value);
+ if (!(i % 4))
+ printf("\n");
+ }
+
+ printf("\nSHA-256 initial values: \n");
+
+ for (i = 0; i < 8; )
+ {
+ double root = pow(primes[i++], 0.5);
+ double fraction = root - (floor(root));
+ double value = floor(ldexp(fraction, 32));
+
+ printf("0x%lxUL, ", (unsigned long) value);
+ if (!(i % 4))
+ printf("\n");
+ }
+
+ return 0;
+}