Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(150)

Side by Side Diff: srtp/crypto/test/rand_gen_soak.c

Issue 889083003: Update libsrtp to upstream 1.5.0 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libsrtp@master
Patch Set: Updated to libsrtp 1.5.1 Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « srtp/crypto/test/rand_gen.c ('k') | srtp/crypto/test/sha1_driver.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * kernel_driver.c 2 * Soak test the RNG for exhaustion failures
3 *
4 * a test driver for the crypto_kernel
5 *
6 * David A. McGrew
7 * Cisco Systems, Inc.
8 */ 3 */
4
9 /* 5 /*
10 * 6 *
11 * Copyright(c) 2001-2006 Cisco Systems, Inc. 7 * Copyright (c) 2001-2006, Cisco Systems, Inc.
12 * All rights reserved. 8 * All rights reserved.
13 * 9 *
14 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
15 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
16 * are met: 12 * are met:
17 * 13 *
18 * Redistributions of source code must retain the above copyright 14 * Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer. 15 * notice, this list of conditions and the following disclaimer.
20 * 16 *
21 * Redistributions in binary form must reproduce the above 17 * Redistributions in binary form must reproduce the above
(...skipping 13 matching lines...) Expand all
35 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 31 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
36 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 32 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
37 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
40 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 36 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
41 * OF THE POSSIBILITY OF SUCH DAMAGE. 37 * OF THE POSSIBILITY OF SUCH DAMAGE.
42 * 38 *
43 */ 39 */
44 40
41 #ifdef HAVE_CONFIG_H
42 #include <config.h>
43 #endif
45 44
46 #include <stdio.h> /* for printf() */ 45 #include <stdio.h> /* for printf() */
47 #include <unistd.h> /* for getopt() */ 46 #include <unistd.h> /* for getopt() */
48 #include "crypto_kernel.h" 47 #include "crypto_kernel.h"
49 48
50 void 49 #define BUF_LEN (MAX_PRINT_STRING_LEN/2)
51 usage(char *prog_name) { 50
52 printf("usage: %s [ -v ][ -d debug_module ]*\n", prog_name); 51 int main(int argc, char *argv[])
53 exit(255); 52 {
53 int q;
54 extern char *optarg;
55 int num_octets = 0;
56 err_status_t status;
57 uint32_t iterations = 0;
58 int print_values = 0;
59
60 if (argc == 1) {
61 exit(255);
62 }
63
64 status = crypto_kernel_init();
65 if (status) {
66 printf("error: crypto_kernel init failed\n");
67 exit(1);
68 }
69
70 while (1) {
71 q = getopt(argc, argv, "pvn:");
72 if (q == -1) {
73 break;
74 }
75 switch (q) {
76 case 'p':
77 print_values = 1;
78 break;
79 case 'n':
80 num_octets = atoi(optarg);
81 if (num_octets < 0 || num_octets > BUF_LEN) {
82 exit(255);
83 }
84 break;
85 case 'v':
86 num_octets = 30;
87 print_values = 0;
88 break;
89 default:
90 exit(255);
91 }
92 }
93
94 if (num_octets > 0) {
95 while (iterations < 300000) {
96 uint8_t buffer[BUF_LEN];
97
98 status = crypto_get_random(buffer, num_octets);
99 if (status) {
100 printf("iteration %d error: failure in random source\n", iterati ons);
101 exit(255);
102 } else if (print_values) {
103 printf("%s\n", octet_string_hex_string(buffer, num_octets));
104 }
105 iterations++;
106 }
107 }
108
109 status = crypto_kernel_shutdown();
110 if (status) {
111 printf("error: crypto_kernel shutdown failed\n");
112 exit(1);
113 }
114
115 return 0;
54 } 116 }
55 117
56 int
57 main (int argc, char *argv[]) {
58 extern char *optarg;
59 int q;
60 int do_validation = 0;
61 err_status_t status;
62
63 if (argc == 1)
64 usage(argv[0]);
65
66 /* initialize kernel - we need to do this before anything else */
67 status = crypto_kernel_init();
68 if (status) {
69 printf("error: crypto_kernel init failed\n");
70 exit(1);
71 }
72 printf("crypto_kernel successfully initalized\n");
73
74 /* process input arguments */
75 while (1) {
76 q = getopt(argc, argv, "vd:");
77 if (q == -1)
78 break;
79 switch (q) {
80 case 'v':
81 do_validation = 1;
82 break;
83 case 'd':
84 status = crypto_kernel_set_debug_module(optarg, 1);
85 if (status) {
86 printf("error: set debug module (%s) failed\n", optarg);
87 exit(1);
88 }
89 break;
90 default:
91 usage(argv[0]);
92 }
93 }
94
95 if (do_validation) {
96 printf("checking crypto_kernel status...\n");
97 status = crypto_kernel_status();
98 if (status) {
99 printf("failed\n");
100 exit(1);
101 }
102 printf("crypto_kernel passed self-tests\n");
103 }
104
105 status = crypto_kernel_shutdown();
106 if (status) {
107 printf("error: crypto_kernel shutdown failed\n");
108 exit(1);
109 }
110 printf("crypto_kernel successfully shut down\n");
111
112 return 0;
113 }
114
115 /*
116 * crypto_kernel_cipher_test() is a test of the cipher interface
117 * of the crypto_kernel
118 */
119
120 err_status_t
121 crypto_kernel_cipher_test(void) {
122
123 /* not implemented yet! */
124
125 return err_status_ok;
126 }
OLDNEW
« no previous file with comments | « srtp/crypto/test/rand_gen.c ('k') | srtp/crypto/test/sha1_driver.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698