(linenum→info "unix/slp.c:2238")

openssl/0.9.8g/test/sha512t.c

    1: /* crypto/sha/sha512t.c */
    2: /* ====================================================================
    3:  * Copyright (c) 2004 The OpenSSL Project.  All rights reserved.
    4:  * ====================================================================
    5:  */
    6: #include <stdio.h>
    7: #include <string.h>
    8: #include <stdlib.h>
    9: 
   10: #include <openssl/sha.h>
   11: #include <openssl/evp.h>
   12: #include <openssl/crypto.h>
   13: 
   14: #if defined(OPENSSL_NO_SHA) || defined(OPENSSL_NO_SHA512)
   15: int main(int argc, char *argv[])
   16: {
   17:     printf("No SHA512 support\n");
   18:     return(0);
   19: }
   20: #else
   21: 
   22: unsigned char app_c1[SHA512_DIGEST_LENGTH] = {
   23:         0xdd,0xaf,0x35,0xa1,0x93,0x61,0x7a,0xba,
   24:         0xcc,0x41,0x73,0x49,0xae,0x20,0x41,0x31,
   25:         0x12,0xe6,0xfa,0x4e,0x89,0xa9,0x7e,0xa2,
   26:         0x0a,0x9e,0xee,0xe6,0x4b,0x55,0xd3,0x9a,
   27:         0x21,0x92,0x99,0x2a,0x27,0x4f,0xc1,0xa8,
   28:         0x36,0xba,0x3c,0x23,0xa3,0xfe,0xeb,0xbd,
   29:         0x45,0x4d,0x44,0x23,0x64,0x3c,0xe8,0x0e,
   30:         0x2a,0x9a,0xc9,0x4f,0xa5,0x4c,0xa4,0x9f };
   31: 
   32: unsigned char app_c2[SHA512_DIGEST_LENGTH] = {
   33:         0x8e,0x95,0x9b,0x75,0xda,0xe3,0x13,0xda,
   34:         0x8c,0xf4,0xf7,0x28,0x14,0xfc,0x14,0x3f,
   35:         0x8f,0x77,0x79,0xc6,0xeb,0x9f,0x7f,0xa1,
   36:         0x72,0x99,0xae,0xad,0xb6,0x88,0x90,0x18,
   37:         0x50,0x1d,0x28,0x9e,0x49,0x00,0xf7,0xe4,
   38:         0x33,0x1b,0x99,0xde,0xc4,0xb5,0x43,0x3a,
   39:         0xc7,0xd3,0x29,0xee,0xb6,0xdd,0x26,0x54,
   40:         0x5e,0x96,0xe5,0x5b,0x87,0x4b,0xe9,0x09 };
   41: 
   42: unsigned char app_c3[SHA512_DIGEST_LENGTH] = {
   43:         0xe7,0x18,0x48,0x3d,0x0c,0xe7,0x69,0x64,
   44:         0x4e,0x2e,0x42,0xc7,0xbc,0x15,0xb4,0x63,
   45:         0x8e,0x1f,0x98,0xb1,0x3b,0x20,0x44,0x28,
   46:         0x56,0x32,0xa8,0x03,0xaf,0xa9,0x73,0xeb,
   47:         0xde,0x0f,0xf2,0x44,0x87,0x7e,0xa6,0x0a,
   48:         0x4c,0xb0,0x43,0x2c,0xe5,0x77,0xc3,0x1b,
   49:         0xeb,0x00,0x9c,0x5c,0x2c,0x49,0xaa,0x2e,
   50:         0x4e,0xad,0xb2,0x17,0xad,0x8c,0xc0,0x9b };
   51: 
   52: unsigned char app_d1[SHA384_DIGEST_LENGTH] = {
   53:         0xcb,0x00,0x75,0x3f,0x45,0xa3,0x5e,0x8b,
   54:         0xb5,0xa0,0x3d,0x69,0x9a,0xc6,0x50,0x07,
   55:         0x27,0x2c,0x32,0xab,0x0e,0xde,0xd1,0x63,
   56:         0x1a,0x8b,0x60,0x5a,0x43,0xff,0x5b,0xed,
   57:         0x80,0x86,0x07,0x2b,0xa1,0xe7,0xcc,0x23,
   58:         0x58,0xba,0xec,0xa1,0x34,0xc8,0x25,0xa7 };
   59: 
   60: unsigned char app_d2[SHA384_DIGEST_LENGTH] = {
   61:         0x09,0x33,0x0c,0x33,0xf7,0x11,0x47,0xe8,
   62:         0x3d,0x19,0x2f,0xc7,0x82,0xcd,0x1b,0x47,
   63:         0x53,0x11,0x1b,0x17,0x3b,0x3b,0x05,0xd2,
   64:         0x2f,0xa0,0x80,0x86,0xe3,0xb0,0xf7,0x12,
   65:         0xfc,0xc7,0xc7,0x1a,0x55,0x7e,0x2d,0xb9,
   66:         0x66,0xc3,0xe9,0xfa,0x91,0x74,0x60,0x39 };
   67: 
   68: unsigned char app_d3[SHA384_DIGEST_LENGTH] = {
   69:         0x9d,0x0e,0x18,0x09,0x71,0x64,0x74,0xcb,
   70:         0x08,0x6e,0x83,0x4e,0x31,0x0a,0x4a,0x1c,
   71:         0xed,0x14,0x9e,0x9c,0x00,0xf2,0x48,0x52,
   72:         0x79,0x72,0xce,0xc5,0x70,0x4c,0x2a,0x5b,
   73:         0x07,0xb8,0xb3,0xdc,0x38,0xec,0xc4,0xeb,
   74:         0xae,0x97,0xdd,0xd8,0x7f,0x3d,0x89,0x85 };
   75: 
   76: int main (int argc,char **argv)
   77: { unsigned char md[SHA512_DIGEST_LENGTH];
   78:   int           i;
   79:   EVP_MD_CTX    evp;
   80: 
   81: #ifdef OPENSSL_IA32_SSE2
   82:     /* Alternative to this is to call OpenSSL_add_all_algorithms...
   83:      * The below code is retained exclusively for debugging purposes. */
   84:     { char      *env;
   85: 
   86:         if ((env=getenv("OPENSSL_ia32cap")))
   87:             OPENSSL_ia32cap = strtoul (env,NULL,0);
   88:     }
   89: #endif
   90: 
   91:     fprintf(stdout,"Testing SHA-512 ");
   92: 
   93:     EVP_Digest ("abc",3,md,NULL,EVP_sha512(),NULL);
   94:     if (memcmp(md,app_c1,sizeof(app_c1)))
   95:     {   fflush(stdout);
   96:         fprintf(stderr,"\nTEST 1 of 3 failed.\n");
   97:         return 1;
   98:     }
   99:     else
  100:         fprintf(stdout,"."); fflush(stdout);
  101: 
  102:     EVP_Digest ("abcdefgh""bcdefghi""cdefghij""defghijk"
  103:                 "efghijkl""fghijklm""ghijklmn""hijklmno"
  104:                 "ijklmnop""jklmnopq""klmnopqr""lmnopqrs"
  105:                 "mnopqrst""nopqrstu",112,md,NULL,EVP_sha512(),NULL);
  106:     if (memcmp(md,app_c2,sizeof(app_c2)))
  107:     {   fflush(stdout);
  108:         fprintf(stderr,"\nTEST 2 of 3 failed.\n");
  109:         return 1;
  110:     }
  111:     else
  112:         fprintf(stdout,"."); fflush(stdout);
  113: 
  114:     EVP_MD_CTX_init (&evp);
  115:     EVP_DigestInit_ex (&evp,EVP_sha512(),NULL);
  116:     for (i=0;i<1000000;i+=288)
  117:         EVP_DigestUpdate (&evp,        "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
  118:                                 "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
  119:                                 "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
  120:                                 "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
  121:                                 "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
  122:                                 "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
  123:                                 "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
  124:                                 "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
  125:                                 "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
  126:                                 (1000000-i)<288?1000000-i:288);
  127:     EVP_DigestFinal_ex (&evp,md,NULL);
  128:     EVP_MD_CTX_cleanup (&evp);
  129: 
  130:     if (memcmp(md,app_c3,sizeof(app_c3)))
  131:     {   fflush(stdout);
  132:         fprintf(stderr,"\nTEST 3 of 3 failed.\n");
  133:         return 1;
  134:     }
  135:     else
  136:         fprintf(stdout,"."); fflush(stdout);
  137: 
  138:     fprintf(stdout," passed.\n"); fflush(stdout);
  139: 
  140:     fprintf(stdout,"Testing SHA-384 ");
  141: 
  142:     EVP_Digest ("abc",3,md,NULL,EVP_sha384(),NULL);
  143:     if (memcmp(md,app_d1,sizeof(app_d1)))
  144:     {   fflush(stdout);
  145:         fprintf(stderr,"\nTEST 1 of 3 failed.\n");
  146:         return 1;
  147:     }
  148:     else
  149:         fprintf(stdout,"."); fflush(stdout);
  150: 
  151:     EVP_Digest ("abcdefgh""bcdefghi""cdefghij""defghijk"
  152:                 "efghijkl""fghijklm""ghijklmn""hijklmno"
  153:                 "ijklmnop""jklmnopq""klmnopqr""lmnopqrs"
  154:                 "mnopqrst""nopqrstu",112,md,NULL,EVP_sha384(),NULL);
  155:     if (memcmp(md,app_d2,sizeof(app_d2)))
  156:     {   fflush(stdout);
  157:         fprintf(stderr,"\nTEST 2 of 3 failed.\n");
  158:         return 1;
  159:     }
  160:     else
  161:         fprintf(stdout,"."); fflush(stdout);
  162: 
  163:     EVP_MD_CTX_init (&evp);
  164:     EVP_DigestInit_ex (&evp,EVP_sha384(),NULL);
  165:     for (i=0;i<1000000;i+=64)
  166:         EVP_DigestUpdate (&evp,        "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa"
  167:                                 "aaaaaaaa""aaaaaaaa""aaaaaaaa""aaaaaaaa",
  168:                                 (1000000-i)<64?1000000-i:64);
  169:     EVP_DigestFinal_ex (&evp,md,NULL);
  170:     EVP_MD_CTX_cleanup (&evp);
  171: 
  172:     if (memcmp(md,app_d3,sizeof(app_d3)))
  173:     {   fflush(stdout);
  174:         fprintf(stderr,"\nTEST 3 of 3 failed.\n");
  175:         return 1;
  176:     }
  177:     else
  178:         fprintf(stdout,"."); fflush(stdout);
  179: 
  180:     fprintf(stdout," passed.\n"); fflush(stdout);
  181: 
  182:   return 0;
  183: }
  184: #endif
Syntax (Markdown)