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/keygen.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 "keygen"
    3 #include "cmptest.h"
    4 
    5 typedef struct KeygenTV_ {
    6     void (*fn)(unsigned char *k);
    7     size_t key_len;
    8 } KeygenTV;
    9 
   10 static void
   11 tv_keygen(void)
   12 {
   13     static const KeygenTV tvs[] = {
   14         { crypto_auth_keygen, crypto_auth_KEYBYTES },
   15         { crypto_auth_hmacsha256_keygen, crypto_auth_hmacsha256_KEYBYTES },
   16         { crypto_aead_aes256gcm_keygen, crypto_aead_aes256gcm_KEYBYTES },
   17         { crypto_auth_hmacsha512_keygen, crypto_auth_hmacsha512_KEYBYTES },
   18         { crypto_auth_hmacsha512256_keygen, crypto_auth_hmacsha512256_KEYBYTES },
   19         { crypto_generichash_keygen, crypto_generichash_KEYBYTES },
   20         { crypto_generichash_blake2b_keygen, crypto_generichash_blake2b_KEYBYTES },
   21         { crypto_kdf_keygen, crypto_kdf_KEYBYTES },
   22         { crypto_onetimeauth_keygen, crypto_onetimeauth_KEYBYTES },
   23         { crypto_onetimeauth_poly1305_keygen, crypto_onetimeauth_poly1305_KEYBYTES },
   24         { crypto_aead_chacha20poly1305_ietf_keygen, crypto_aead_chacha20poly1305_ietf_KEYBYTES },
   25         { crypto_aead_chacha20poly1305_keygen, crypto_aead_chacha20poly1305_KEYBYTES },
   26         { crypto_aead_chacha20poly1305_ietf_keygen, crypto_aead_chacha20poly1305_ietf_KEYBYTES },
   27         { crypto_aead_xchacha20poly1305_ietf_keygen, crypto_aead_xchacha20poly1305_ietf_KEYBYTES },
   28         { crypto_secretbox_xsalsa20poly1305_keygen, crypto_secretbox_xsalsa20poly1305_KEYBYTES },
   29         { crypto_secretbox_keygen, crypto_secretbox_KEYBYTES },
   30         { crypto_secretstream_xchacha20poly1305_keygen, crypto_secretstream_xchacha20poly1305_KEYBYTES },
   31         { crypto_shorthash_keygen, crypto_shorthash_KEYBYTES },
   32         { crypto_stream_keygen, crypto_stream_KEYBYTES },
   33         { crypto_stream_chacha20_keygen, crypto_stream_chacha20_KEYBYTES },
   34         { crypto_stream_chacha20_ietf_keygen, crypto_stream_chacha20_ietf_KEYBYTES },
   35         { crypto_stream_salsa20_keygen, crypto_stream_salsa20_KEYBYTES },
   36         { crypto_stream_xsalsa20_keygen, crypto_stream_xsalsa20_KEYBYTES }
   37     };
   38     const KeygenTV *tv;
   39     unsigned char  *key;
   40     size_t          i;
   41     int             j;
   42 
   43     for (i = 0; i < (sizeof tvs) / (sizeof tvs[0]); i++) {
   44         tv = &tvs[i];
   45         key = (unsigned char *) sodium_malloc(tv->key_len);
   46         key[tv->key_len - 1U] = 0;
   47         for (j = 0; j < 10000; j++) {
   48             tv->fn(key);
   49             if (key[tv->key_len - 1U] != 0) {
   50                 break;
   51             }
   52         }
   53         sodium_free(key);
   54         if (j >= 10000) {
   55             printf("Buffer underflow with test vector %u\n", (unsigned int) i);
   56         }
   57     }
   58     printf("tv_keygen: ok\n");
   59 }
   60 
   61 int
   62 main(void)
   63 {
   64     tv_keygen();
   65 
   66     return 0;
   67 }

Cache object: 3f29516e4e5726502a500f8aeb2063c2


[ 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.