[BACK]Return to destest.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / ox_ntl / crypt / des

Diff for /OpenXM/src/ox_ntl/crypt/des/destest.c between version 1.1 and 1.3

version 1.1, 2004/07/11 00:32:17 version 1.3, 2005/06/19 15:45:38
Line 1 
Line 1 
 /* $OpenXM$ */  /* $OpenXM: OpenXM/src/ox_ntl/crypt/des/destest.c,v 1.2 2005/06/19 15:30:01 iwane Exp $ */
 /*  /*
  * FIPS 81 - Des Modes of Operation   * FIPS 81 - Des Modes of Operation
  */   */
Line 6 
Line 6 
 #include <stdio.h>  #include <stdio.h>
 #include <string.h>  #include <string.h>
   
 #include "des.h"  #include "des3.h"
 #define N 4096  #define N 4096
   
 int  int
 main()  main()
 {  {
         des_key dkey;          des_key dkey;
           des3_key dkey3;
         unsigned char key[] = "\x01\x23\x45\x67\x89\xab\xcd\xef"; /* secret key */          unsigned char key[] = "\x01\x23\x45\x67\x89\xab\xcd\xef"; /* secret key */
         unsigned char *iv = (unsigned char *)"\x12\x34\x56\x78\x90\xab\xcd\xef";   /* initial vector */          unsigned char key3[3 * 8];
           unsigned char *ivp = (unsigned char *)"\x12\x34\x56\x78\x90\xab\xcd\xef";   /* initial vector */
           unsigned char iv[8];
         unsigned char enc[N], dec[N];          unsigned char enc[N], dec[N];
         int i, k;          int i, k;
         int ret;          int ret;
Line 75  main()
Line 78  main()
         const unsigned char *plain2 = (unsigned char *)"7654321 Now is the time for \0\0\0\0\0\0\0\0";          const unsigned char *plain2 = (unsigned char *)"7654321 Now is the time for \0\0\0\0\0\0\0\0";
         const unsigned char *p;          const unsigned char *p;
   
           for (i = 0; i < 3; i++) {
                   memcpy(key3 + 8 * i, key, 8);
           }
   
         des_keyset(key, &dkey);          des_keyset(key, &dkey);
           des3_keyset(key3, &dkey3);
   
         k = 24;          k = 24;
         ret = des_enc_ecb(&dkey, k, plain, enc);          ret = des_enc_ecb(&dkey, k, plain, enc);
Line 102  _CBC:
Line 110  _CBC:
                 int ks[] = {24, 32};                  int ks[] = {24, 32};
                 const unsigned char *d[] = {plain, plain2};                  const unsigned char *d[] = {plain, plain2};
   
                   memcpy(iv, ivp, 8);
   
                 k = ks[i];                  k = ks[i];
                 p = d[i];                  p = d[i];
   
Line 112  _CBC:
Line 122  _CBC:
                         goto _CFB;                          goto _CFB;
                 }                  }
   
                   memcpy(iv, ivp, 8);
   
                 ret = des_dec_cbc(&dkey, iv, k, enc, dec);                  ret = des_dec_cbc(&dkey, iv, k, enc, dec);
                 if (memcmp(p, dec, k)) {                  if (memcmp(p, dec, k)) {
                         printf("CBC dec failed.\n");                          printf("CBC dec failed.\n");
                         printf("ret = %d, i = %d\n", ret, i);                          printf("ret = %d, i = %d\n", ret, i);
                         goto _CFB;                          goto _CFB;
                 }                  }
   
                   memcpy(iv, ivp, 8);
   
                   ret = des3_enc_cbc(&dkey3, iv, k, p, enc);
                   if (memcmp(ci[i], enc, k)) {
                           printf("CBC enc failed. [des3]\n");
                           printf("ret = %d, i = %d\n", ret, i);
                           goto _CFB;
                   }
   
                   memcpy(iv, ivp, 8);
   
                   ret = des3_dec_cbc(&dkey3, iv, k, enc, dec);
                   if (memcmp(p, dec, k)) {
                           printf("CBC dec failed. [des3]\n");
                           printf("ret = %d, i = %d\n", ret, i);
                           goto _CFB;
                   }
   
   
         }          }
   
         printf("CBC ok.\n");          printf("CBC ok.\n");
Line 130  _CFB:
Line 162  _CFB:
                 int ks[] = {24, 24, 24, 24, 24, 28};                  int ks[] = {24, 24, 24, 24, 24, 28};
                 const unsigned char *d[] = {plain, plain, plain, plain, plain, plain2};                  const unsigned char *d[] = {plain, plain, plain, plain, plain, plain2};
   
                   memcpy(iv, ivp, 8);
   
                 k = ks[i];                  k = ks[i];
                 p = d[i];                  p = d[i];
Line 157  _OFB:
Line 190  _OFB:
                 const unsigned char *ci[] = {ofb8, ofb64};                  const unsigned char *ci[] = {ofb8, ofb64};
                 int ks[] = {10, 24};                  int ks[] = {10, 24};
                 const unsigned char *d[] = {plain, plain};                  const unsigned char *d[] = {plain, plain};
   
                   memcpy(iv, ivp, 8);
   
                 k = ks[i];                  k = ks[i];
                 p = d[i];                  p = d[i];

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>