Mercurial > dovecot > core-2.2
changeset 20225:d7f5154677c2
lib-dcrypt: Use base64 encoded test samples
author | Aki Tuomi <aki.tuomi@dovecot.fi> |
---|---|
date | Mon, 30 May 2016 22:39:39 +0300 |
parents | b5f3dc5f5fb2 |
children | 2fe183522f0e |
files | src/lib-dcrypt/Makefile.am src/lib-dcrypt/sample-v1.asc src/lib-dcrypt/sample-v1.bin src/lib-dcrypt/sample-v2.asc src/lib-dcrypt/sample-v2.bin src/lib-dcrypt/test-stream.c |
diffstat | 6 files changed, 358 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-dcrypt/Makefile.am Mon May 30 22:33:29 2016 +0300 +++ b/src/lib-dcrypt/Makefile.am Mon May 30 22:39:39 2016 +0300 @@ -33,8 +33,8 @@ pkginc_lib_HEADERS = $(headers) EXTRA_DIST = \ - sample-v1.bin \ - sample-v2.bin + sample-v1.asc \ + sample-v2.asc check_PROGRAMS = test-crypto test-stream
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lib-dcrypt/sample-v1.asc Mon May 30 22:39:39 2016 +0300 @@ -0,0 +1,48 @@ +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 +d/l7J6LsH25I/zsIV/0OHcrvMUEf2WzU3Q==
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/lib-dcrypt/sample-v2.asc Mon May 30 22:39:39 2016 +0300 @@ -0,0 +1,287 @@ +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
--- a/src/lib-dcrypt/test-stream.c Mon May 30 22:33:29 2016 +0300 +++ b/src/lib-dcrypt/test-stream.c Mon May 30 22:39:39 2016 +0300 @@ -7,6 +7,7 @@ #include "istream.h" #include "istream-decrypt.h" #include "istream-hash.h" +#include "istream-base64.h" #include "iostream-temp.h" #include "randgen.h" #include "hash-method.h" @@ -56,20 +57,22 @@ test_begin("test_static_v1_input"); - struct istream *is_1 = i_stream_create_file("sample-v1.bin", IO_BLOCK_SIZE); - struct istream *is_2 = i_stream_create_decrypt(is_1, test_v1_kp.priv); + struct istream *is_1 = i_stream_create_file("sample-v1.asc", IO_BLOCK_SIZE); + struct istream *is_2 = i_stream_create_base64_decoder(is_1); i_stream_unref(&is_1); - struct istream *is_3 = i_stream_create_hash(is_2, hash, hash_ctx); + struct istream *is_3 = i_stream_create_decrypt(is_2, test_v1_kp.priv); i_stream_unref(&is_2); + struct istream *is_4 = i_stream_create_hash(is_3, hash, hash_ctx); + i_stream_unref(&is_3); - while((siz = i_stream_read(is_3))>0) { i_stream_skip(is_3, siz); } + while((siz = i_stream_read(is_4))>0) { i_stream_skip(is_4, siz); } - if (is_3->stream_errno != 0) - i_debug("error: %s", i_stream_get_error(is_3)); + if (is_4->stream_errno != 0) + i_debug("error: %s", i_stream_get_error(is_4)); - test_assert(is_3->stream_errno == 0); + test_assert(is_4->stream_errno == 0); - i_stream_unref(&is_3); + i_stream_unref(&is_4); hash->result(hash_ctx, hash_dgst); @@ -88,20 +91,22 @@ unsigned char hash_dgst[hash->digest_size]; hash->init(hash_ctx); - struct istream *is_1 = i_stream_create_file("sample-v2.bin", IO_BLOCK_SIZE); - struct istream *is_2 = i_stream_create_decrypt(is_1, test_v2_kp.priv); + struct istream *is_1 = i_stream_create_file("sample-v2.asc", IO_BLOCK_SIZE); + struct istream *is_2 = i_stream_create_base64_decoder(is_1); i_stream_unref(&is_1); - struct istream *is_3 = i_stream_create_hash(is_2, hash, hash_ctx); + struct istream *is_3 = i_stream_create_decrypt(is_2, test_v2_kp.priv); i_stream_unref(&is_2); + struct istream *is_4 = i_stream_create_hash(is_3, hash, hash_ctx); + i_stream_unref(&is_3); - while((amt = i_stream_read(is_3))>0) { i_stream_skip(is_3, amt); } + while((amt = i_stream_read(is_4))>0) { i_stream_skip(is_4, amt); } - if (is_3->stream_errno != 0) - i_debug("error: %s", i_stream_get_error(is_3)); + if (is_4->stream_errno != 0) + i_debug("error: %s", i_stream_get_error(is_4)); - test_assert(is_3->stream_errno == 0); + test_assert(is_4->stream_errno == 0); - i_stream_unref(&is_3); + i_stream_unref(&is_4); hash->result(hash_ctx, hash_dgst);