The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/libsodium/test/default/auth.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 
    2 #define TEST_NAME "auth"
    3 #include "cmptest.h"
    4 
    5 /* "Test Case 2" from RFC 4231 */
    6 static unsigned char key[32] = "Jefe";
    7 static unsigned char c[]     = "what do ya want for nothing?";
    8 
    9 /* Hacker manifesto */
   10 static unsigned char key2[] =
   11     "Another one got caught today, it's all over the papers. \"Teenager "
   12     "Arrested in Computer Crime Scandal\", \"Hacker Arrested after Bank "
   13     "Tampering\"... Damn kids. They're all alike.";
   14 
   15 static unsigned char a[crypto_auth_BYTES];
   16 static unsigned char a2[crypto_auth_hmacsha512_BYTES];
   17 
   18 int
   19 main(void)
   20 {
   21     crypto_auth_hmacsha512_state st;
   22     crypto_auth_hmacsha256_state st256;
   23     size_t                       i;
   24 
   25     assert(crypto_auth_hmacsha512_statebytes() ==
   26            sizeof(crypto_auth_hmacsha512_state));
   27     crypto_auth(a, c, sizeof c - 1U, key);
   28     for (i = 0; i < sizeof a; ++i) {
   29         printf(",0x%02x", (unsigned int) a[i]);
   30         if (i % 8 == 7)
   31             printf("\n");
   32     }
   33     printf("\n");
   34 
   35     crypto_auth_hmacsha512_init(&st, key, sizeof key);
   36     crypto_auth_hmacsha512_update(&st, c, 1U);
   37     crypto_auth_hmacsha512_update(&st, c, sizeof c - 2U);
   38     crypto_auth_hmacsha512_final(&st, a2);
   39     for (i = 0; i < sizeof a2; ++i) {
   40         printf(",0x%02x", (unsigned int) a2[i]);
   41         if (i % 8 == 7)
   42             printf("\n");
   43     }
   44     printf("\n");
   45 
   46     crypto_auth_hmacsha512_init(&st, key2, sizeof key2);
   47     crypto_auth_hmacsha512_update(&st, c, 1U);
   48     crypto_auth_hmacsha512_update(&st, c, sizeof c - 2U);
   49     crypto_auth_hmacsha512_final(&st, a2);
   50     for (i = 0; i < sizeof a2; ++i) {
   51         printf(",0x%02x", (unsigned int) a2[i]);
   52         if (i % 8 == 7)
   53             printf("\n");
   54     }
   55 
   56     memset(a2, 0, sizeof a2);
   57     crypto_auth_hmacsha256_init(&st256, key2, sizeof key2);
   58     crypto_auth_hmacsha256_update(&st256, NULL, 0U);
   59     crypto_auth_hmacsha256_update(&st256, c, 1U);
   60     crypto_auth_hmacsha256_update(&st256, c, sizeof c - 2U);
   61     crypto_auth_hmacsha256_final(&st256, a2);
   62     for (i = 0; i < sizeof a2; ++i) {
   63         printf(",0x%02x", (unsigned int) a2[i]);
   64         if (i % 8 == 7)
   65             printf("\n");
   66     }
   67 
   68     assert(crypto_auth_bytes() > 0U);
   69     assert(crypto_auth_keybytes() > 0U);
   70     assert(strcmp(crypto_auth_primitive(), "hmacsha512256") == 0);
   71     assert(crypto_auth_hmacsha256_bytes() > 0U);
   72     assert(crypto_auth_hmacsha256_keybytes() > 0U);
   73     assert(crypto_auth_hmacsha512_bytes() > 0U);
   74     assert(crypto_auth_hmacsha512_keybytes() > 0U);
   75     assert(crypto_auth_hmacsha512256_bytes() == crypto_auth_bytes());
   76     assert(crypto_auth_hmacsha512256_keybytes() == crypto_auth_keybytes());
   77     assert(crypto_auth_hmacsha512256_statebytes() >=
   78            crypto_auth_hmacsha512256_keybytes());
   79     assert(crypto_auth_hmacsha256_statebytes() ==
   80            sizeof(crypto_auth_hmacsha256_state));
   81     assert(crypto_auth_hmacsha512_statebytes() ==
   82            sizeof(crypto_auth_hmacsha512_state));
   83 
   84     return 0;
   85 }

Cache object: 57b9911cfd3f3df0fbcbc297eb7b3674


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.