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

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: Minimal changes against upstream 1.5.0 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
Index: srtp/crypto/test/rand_gen_soak.c
diff --git a/srtp/crypto/test/rand_gen_soak.c b/srtp/crypto/test/rand_gen_soak.c
new file mode 100644
index 0000000000000000000000000000000000000000..993e7f13b3c7d85f5a7cc92d85b4d3f823b46afa
--- /dev/null
+++ b/srtp/crypto/test/rand_gen_soak.c
@@ -0,0 +1,80 @@
+/*
+ * Soak test the RNG for exhaustion failures
+ */
+#ifdef HAVE_CONFIG_H
+ #include <config.h>
+#endif
+
+#include <stdio.h> /* for printf() */
+#include <unistd.h> /* for getopt() */
+#include "crypto_kernel.h"
+
+#define BUF_LEN (MAX_PRINT_STRING_LEN/2)
+
+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;
+
+ if (argc == 1) {
+ exit(255);
+ }
+
+ status = crypto_kernel_init();
+ if (status) {
+ printf("error: crypto_kernel init failed\n");
+ exit(1);
+ }
+
+ 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);
+ }
+ }
+
+ if (num_octets > 0) {
+ while (iterations < 300000) {
+ uint8_t buffer[BUF_LEN];
+
+ 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++;
+ }
+ }
+
+ status = crypto_kernel_shutdown();
+ if (status) {
+ printf("error: crypto_kernel shutdown failed\n");
+ exit(1);
+ }
+
+ return 0;
+}
+

Powered by Google App Engine
This is Rietveld 408576698