www.usr.com/support/gpl/USR9107_release.1.4.tar.gz
[bcm963xx.git] / userapps / opensource / sshd / libtommath / mtest / mtest.c
index 5abc1a4..d46f456 100755 (executable)
@@ -28,6 +28,12 @@ mulmod
 
  */
 
+#ifdef MP_8BIT
+#define THE_MASK 127
+#else
+#define THE_MASK 32767
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
@@ -40,7 +46,7 @@ void rand_num(mp_int *a)
    int n, size;
    unsigned char buf[2048];
 
-   size = 1 + ((fgetc(rng)<<8) + fgetc(rng)) % 1031;
+   size = 1 + ((fgetc(rng)<<8) + fgetc(rng)) % 101;
    buf[0] = (fgetc(rng)&1)?1:0;
    fread(buf+1, 1, size, rng);
    while (buf[1] == 0) buf[1] = fgetc(rng);
@@ -52,7 +58,7 @@ void rand_num2(mp_int *a)
    int n, size;
    unsigned char buf[2048];
 
-   size = 1 + ((fgetc(rng)<<8) + fgetc(rng)) % 97;
+   size = 10 + ((fgetc(rng)<<8) + fgetc(rng)) % 101;
    buf[0] = (fgetc(rng)&1)?1:0;
    fread(buf+1, 1, size, rng);
    while (buf[1] == 0) buf[1] = fgetc(rng);
@@ -63,7 +69,7 @@ void rand_num2(mp_int *a)
 
 int main(void)
 {
-   int n;
+   int n, tmp;
    mp_int a, b, c, d, e;
    clock_t t1;
    char buf[4096];
@@ -103,12 +109,13 @@ int main(void)
 
    t1 = clock();
    for (;;) {
+#if 0
       if (clock() - t1 > CLOCKS_PER_SEC) {
-         sleep(1);
+         sleep(2);
          t1 = clock();
       }
-   
-       n = fgetc(rng) % 13;
+#endif
+       n = fgetc(rng) % 15;
 
    if (n == 0) {
        /* add tests */
@@ -272,6 +279,24 @@ int main(void)
       printf("%s\n", buf);
       mp_to64(&b, buf);
       printf("%s\n", buf);
+   } else if (n == 13) {
+      rand_num2(&a);
+      tmp = abs(rand()) & THE_MASK;
+      mp_add_d(&a, tmp, &b);
+      printf("add_d\n");
+      mp_to64(&a, buf);
+      printf("%s\n%d\n", buf, tmp);
+      mp_to64(&b, buf);
+      printf("%s\n", buf);
+   } else if (n == 14) {
+      rand_num2(&a);
+      tmp = abs(rand()) & THE_MASK;
+      mp_sub_d(&a, tmp, &b);
+      printf("sub_d\n");
+      mp_to64(&a, buf);
+      printf("%s\n%d\n", buf, tmp);
+      mp_to64(&b, buf);
+      printf("%s\n", buf);
    }
    }
    fclose(rng);