summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2016-10-06 12:44:29 +0200
committerMatt Caswell <matt@openssl.org>2016-11-02 15:00:11 +0100
commit542dd9c58712201a46a5519ee02e878792bbcb72 (patch)
tree3e42a299e32455b1b1879cb182cabadc9d3721f3
parentAdd DTLS_get_data_mtu() function (diff)
downloadopenssl-542dd9c58712201a46a5519ee02e878792bbcb72.tar.xz
openssl-542dd9c58712201a46a5519ee02e878792bbcb72.zip
Add unit test for ssl_cipher_get_overhead()
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org>
-rw-r--r--test/build.info6
-rw-r--r--test/cipher_overhead_test.c33
-rw-r--r--test/recipes/90-test_overhead.t20
3 files changed, 58 insertions, 1 deletions
diff --git a/test/build.info b/test/build.info
index 013a0c688f..b3a94599f2 100644
--- a/test/build.info
+++ b/test/build.info
@@ -276,10 +276,14 @@ IF[{- !$disabled{tests} -}]
DEPEND[bio_enc_test]=../libcrypto
IF[{- $disabled{shared} -}]
- PROGRAMS_NO_INST=wpackettest
+ PROGRAMS_NO_INST=wpackettest cipher_overhead_test
SOURCE[wpackettest]=wpackettest.c testutil.c
INCLUDE[wpackettest]=../include
DEPEND[wpackettest]=../libcrypto ../libssl
+
+ SOURCE[cipher_overhead_test]=cipher_overhead_test.c
+ INCLUDE[cipher_overhead_test]=.. ../include
+ DEPEND[cipher_overhead_test]=../libcrypto ../libssl
ENDIF
ENDIF
diff --git a/test/cipher_overhead_test.c b/test/cipher_overhead_test.c
new file mode 100644
index 0000000000..8c262b3b9a
--- /dev/null
+++ b/test/cipher_overhead_test.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+
+#include "../ssl/ssl_locl.h"
+
+int main(void)
+{
+ int i, n = ssl3_num_ciphers();
+ const SSL_CIPHER *ciph;
+ size_t mac, in, blk, ex;
+
+ for (i = 0; i < n; i++) {
+ ciph = ssl3_get_cipher(i);
+ if (!ciph->min_dtls)
+ continue;
+ if (!ssl_cipher_get_overhead(ciph, &mac, &in, &blk, &ex)) {
+ printf("Error getting overhead for %s\n", ciph->name);
+ exit(1);
+ } else {
+ printf("Cipher %s: %"OSSLzu" %"OSSLzu" %"OSSLzu" %"OSSLzu"\n",
+ ciph->name, mac, in, blk, ex);
+ }
+ }
+ exit(0);
+}
diff --git a/test/recipes/90-test_overhead.t b/test/recipes/90-test_overhead.t
new file mode 100644
index 0000000000..a9311bf498
--- /dev/null
+++ b/test/recipes/90-test_overhead.t
@@ -0,0 +1,20 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+setup("test_overhead");
+
+plan skip_all => "Only supported in no-shared builds"
+ if !disabled("shared");
+
+plan tests => 1;
+
+ok(run(test(["cipher_overhead_test"])), "running cipher_overhead_test");