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

Unified 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 side-by-side diff with in-line comments
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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: srtp/crypto/test/rand_gen_soak.c
diff --git a/srtp/crypto/test/kernel_driver.c b/srtp/crypto/test/rand_gen_soak.c
similarity index 51%
copy from srtp/crypto/test/kernel_driver.c
copy to srtp/crypto/test/rand_gen_soak.c
index 8ef8a5f4b35ca6a79706d0d3c86926e1acd20e72..a39aaa06eb8bd51feb24b33941849c5af32fb21b 100644
--- a/srtp/crypto/test/kernel_driver.c
+++ b/srtp/crypto/test/rand_gen_soak.c
@@ -1,14 +1,10 @@
/*
- * kernel_driver.c
- *
- * a test driver for the crypto_kernel
- *
- * David A. McGrew
- * Cisco Systems, Inc.
+ * Soak test the RNG for exhaustion failures
*/
+
/*
*
- * Copyright(c) 2001-2006 Cisco Systems, Inc.
+ * Copyright (c) 2001-2006, Cisco Systems, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -42,85 +38,80 @@
*
*/
+#ifdef HAVE_CONFIG_H
+ #include <config.h>
+#endif
#include <stdio.h> /* for printf() */
#include <unistd.h> /* for getopt() */
#include "crypto_kernel.h"
-void
-usage(char *prog_name) {
- printf("usage: %s [ -v ][ -d debug_module ]*\n", prog_name);
- exit(255);
-}
-
-int
-main (int argc, char *argv[]) {
- extern char *optarg;
- int q;
- int do_validation = 0;
- err_status_t status;
-
- if (argc == 1)
- usage(argv[0]);
+#define BUF_LEN (MAX_PRINT_STRING_LEN/2)
- /* initialize kernel - we need to do this before anything else */
- status = crypto_kernel_init();
- if (status) {
- printf("error: crypto_kernel init failed\n");
- exit(1);
- }
- printf("crypto_kernel successfully initalized\n");
+int main(int argc, char *argv[])
+{
+ int q;
+ extern char *optarg;
+ int num_octets = 0;
+ err_status_t status;
+ uint32_t iterations = 0;
+ int print_values = 0;
- /* process input arguments */
- while (1) {
- q = getopt(argc, argv, "vd:");
- if (q == -1)
- break;
- switch (q) {
- case 'v':
- do_validation = 1;
- break;
- case 'd':
- status = crypto_kernel_set_debug_module(optarg, 1);
- if (status) {
- printf("error: set debug module (%s) failed\n", optarg);
- exit(1);
- }
- break;
- default:
- usage(argv[0]);
- }
- }
+ if (argc == 1) {
+ exit(255);
+ }
- if (do_validation) {
- printf("checking crypto_kernel status...\n");
- status = crypto_kernel_status();
+ status = crypto_kernel_init();
if (status) {
- printf("failed\n");
- exit(1);
+ printf("error: crypto_kernel init failed\n");
+ exit(1);
}
- printf("crypto_kernel passed self-tests\n");
- }
- status = crypto_kernel_shutdown();
- if (status) {
- printf("error: crypto_kernel shutdown failed\n");
- exit(1);
- }
- printf("crypto_kernel successfully shut down\n");
-
- return 0;
-}
+ while (1) {
+ q = getopt(argc, argv, "pvn:");
+ if (q == -1) {
+ break;
+ }
+ switch (q) {
+ case 'p':
+ print_values = 1;
+ break;
+ case 'n':
+ num_octets = atoi(optarg);
+ if (num_octets < 0 || num_octets > BUF_LEN) {
+ exit(255);
+ }
+ break;
+ case 'v':
+ num_octets = 30;
+ print_values = 0;
+ break;
+ default:
+ exit(255);
+ }
+ }
-/*
- * crypto_kernel_cipher_test() is a test of the cipher interface
- * of the crypto_kernel
- */
+ if (num_octets > 0) {
+ while (iterations < 300000) {
+ uint8_t buffer[BUF_LEN];
-err_status_t
-crypto_kernel_cipher_test(void) {
+ status = crypto_get_random(buffer, num_octets);
+ if (status) {
+ printf("iteration %d error: failure in random source\n", iterations);
+ exit(255);
+ } else if (print_values) {
+ printf("%s\n", octet_string_hex_string(buffer, num_octets));
+ }
+ iterations++;
+ }
+ }
- /* not implemented yet! */
+ status = crypto_kernel_shutdown();
+ if (status) {
+ printf("error: crypto_kernel shutdown failed\n");
+ exit(1);
+ }
- return err_status_ok;
+ return 0;
}
+
« 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