wisp
 
(Arne Babenhauserheide)
2013-12-26: added testcase for tinyenc.

added testcase for tinyenc.

diff --git a/examples/Makefile b/examples/Makefile
new file mode 100644
--- /dev/null
+++ b/examples/Makefile
@@ -0,0 +1,2 @@
+tinyenc : tinyenc.c
+	gcc -Wall tinyenc.c -o tinyenc
diff --git a/examples/tinyenc.c b/examples/tinyenc.c
new file mode 100644
--- /dev/null
+++ b/examples/tinyenc.c
@@ -0,0 +1,33 @@
+#include <stdint.h>
+
+void encrypt (uint32_t* v, uint32_t* k) {
+    uint32_t v0=v[0], v1=v[1], sum=0, i;           /* set up */
+    uint32_t delta=0x9e3779b9;                     /* a key schedule constant */
+    uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* cache key */
+    for (i=0; i < 32; i++) {                       /* basic cycle start */
+        sum += delta;
+        v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
+        v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);  
+    }                                              /* end cycle */
+    v[0]=v0; v[1]=v1;
+}
+ 
+void decrypt (uint32_t* v, uint32_t* k) {
+    uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i;  /* set up */
+    uint32_t delta=0x9e3779b9;                     /* a key schedule constant */
+    uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* cache key */
+    for (i=0; i<32; i++) {                         /* basic cycle start */
+        v1 -= ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
+        v0 -= ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
+        sum -= delta;                                   
+    }                                              /* end cycle */
+    v[0]=v0; v[1]=v1;
+}
+
+int main ()
+{
+  uint32_t v[] = {0, 5};
+  uint32_t k[] = {0, 0, 0, 9};
+  encrypt(v, k);
+  return 0;
+}