summaryrefslogtreecommitdiff
path: root/src/regress/lib
diff options
context:
space:
mode:
authorinoguchi <>2020-03-10 11:13:28 +0000
committerinoguchi <>2020-03-10 11:13:28 +0000
commitfb8d28aeb36c4bb18f6fcbfcdb61a6ba1099d7c0 (patch)
tree19ea2bd30402b63fda85ebf1819efb44b8f82614 /src/regress/lib
parent9feddb8f718ed9f6bea887f11ed40e629a8d07e8 (diff)
downloadopenbsd-fb8d28aeb36c4bb18f6fcbfcdb61a6ba1099d7c0.tar.gz
openbsd-fb8d28aeb36c4bb18f6fcbfcdb61a6ba1099d7c0.tar.bz2
openbsd-fb8d28aeb36c4bb18f6fcbfcdb61a6ba1099d7c0.zip
Import openssl-1.1.1d test data to base64test.c
ok bcook@ tb@
Diffstat (limited to 'src/regress/lib')
-rw-r--r--src/regress/lib/libcrypto/base64/base64test.c98
1 files changed, 97 insertions, 1 deletions
diff --git a/src/regress/lib/libcrypto/base64/base64test.c b/src/regress/lib/libcrypto/base64/base64test.c
index 9b8ac91e72..cfe7922267 100644
--- a/src/regress/lib/libcrypto/base64/base64test.c
+++ b/src/regress/lib/libcrypto/base64/base64test.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: base64test.c,v 1.7 2020/03/10 11:10:53 inoguchi Exp $ */ 1/* $OpenBSD: base64test.c,v 1.8 2020/03/10 11:13:28 inoguchi Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -119,6 +119,102 @@ struct base64_test base64_nl_tests[] = {
119 74, 119 74,
120 0, 120 0,
121 }, 121 },
122
123 /* OpenSSL-1.1.1d test */
124 /* canonical */
125 { "", 0, "", 0, 0, },
126 /* canonical */
127 { "h", 1, "aA==\n", 5, 1, },
128 /* canonical */
129 { "hello", 5, "aGVsbG8=\n", 9, 5, },
130 /* canonical */
131 { "hello world!", 12, "aGVsbG8gd29ybGQh\n", 17, 12, },
132 /* canonical */
133 { "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\xa0\xb0\xc0\xd0\xe0\xf0\x00", 17, "AAECAwQFBgcICaCwwNDg8AA=\n", 25, 17, },
134 /* invalid # Missing padding */
135 { "", -1, "aGVsbG8", 7, 0, },
136 /* invalid */
137 { "", -1, "aGVsbG8\n", 8, 0, },
138 /* valid # Tolerate missing newline */
139 { "hello", -1, "aGVsbG8=", 8, 5, },
140 /* invalid # Don't tolerate extra trailing '=' */
141 { "", -1, "aGVsbG8==\n", 10, 0, },
142 /* invalid */
143 { "", -1, "aGVsbG8===\n", 11, 0, },
144 /* invalid # Don't tolerate data after '=' */
145 { "", -1, "aGV=sbG8=\n", 10, 0, },
146 /* valid # Newlines are ignored */
147 { "hello", -1, "aGV\nsbG8=\n", 10, 5, },
148 /* canonical */
149 { "hello", 5, "\x61\x47\x56\x73\x62\x47\x38\x3d\x0a", 9, 5, },
150 /* invalid # Invalid characters */
151 { "", -1, "\x61\x47\x56\x73\x62\x47\x38\x3d\x0a\x00", 10, 0, },
152 /* invalid */
153 { "", -1, "\x61\x47\x56\x00\x73\x62\x47\x38\x3d\x0a", 10, 0, },
154 /* invalid */
155 { "", -1, "\x61\x47\x56\x01\x73\x62\x47\x38\x3d\x0a", 10, 0, },
156 /* invalid */
157 { "", -1, "\x61\x47\x56\x80\x73\x62\x47\x38\x3d\x0a", 10, 0, },
158 /* invalid */
159 { "", -1, "\xe1\x47\x56\x73\x62\x47\x38\x3d\x0a", 9, 0, },
160 /* canonical */
161 { "OpenSSLOpenSSL\n", 15, "T3BlblNTTE9wZW5TU0wK\n", 21, 15, },
162 /* valid */
163 { "OpenSSLOpenSSL\n", -1, "T3BlblNTTE9wZW5TU0wK", 20, 15, },
164 /* invalid # Truncate 1-3 chars */
165 { "", -1, "T3BlblNTTE9wZW5TU0w", 19, 0, },
166 /* invalid */
167 { "", -1, "T3BlblNTTE9wZW5TU0", 18, 0, },
168 /* invalid */
169 { "", -1, "T3BlblNTTE9wZW5TU", 17, 0, },
170 /* invalid */
171 { "", -1, "T3BlblNTTE9wZW5TU0wK====", 24, 0, },
172 /* invalid */
173 { "", -1, "T3BlblNTTE9wZW5TU0wK============================================\n", 65, 0, },
174 /* invalid */
175 { "", -1, "YQ==YQ==YQ==\n", 13, 0, },
176 /* invalid */
177 { "", -1, "A", 1, 0, },
178 /* invalid */
179 { "", -1, "A\n", 2, 0, },
180 /* invalid */
181 { "", -1, "A=", 2, 0, },
182 /* invalid */
183 { "", -1, "A==\n", 4, 0, },
184 /* invalid */
185 { "", -1, "A===\n", 5, 0, },
186 /* invalid */
187 { "", -1, "A====\n", 6, 0, },
188 /* valid */
189 { "OpenSSLOpenSSL\n", -1, "T3BlblNTTE9wZW5TU0wK\n\n", 22, 15, },
190 /* valid */
191 { "OpenSSLOpenSSL\n", -1, "T3BlblNTTE\n9wZW5TU0wK", 21, 15, },
192 /* invalid # CVE 2015-0292 */
193 { "", -1, "ZW5jb2RlIG1lCg==================================================================\n", 81, 0, },
194 /* canonical */
195 { "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 46, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\n", 65, 46, },
196 /* valid */
197 { "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", -1, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA\n==\n", 66, 46, },
198 /* valid */
199 { "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", -1, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=\n=\n", 66, 46, },
200 /* invalid */
201 { "", -1, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA====\n", 67, 0, },
202 /* canonical # Multiline output without padding */
203 { "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 60, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neHh4eHh4eHh4eHh4\n", 82, 60, },
204 /* canonical # Multiline output with padding */
205 { "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 64, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neHh4eHh4eHh4eHh4eHh4eA==\n", 90, 64, },
206 /* valid # Multiline output with line break in the middle of a b64 block is accepted */
207 { "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", -1, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh\n4eHh4eHh4eHh4eHh4eHh4eA==\n", 90, 64, },
208 /* valid # Long lines are accepted */
209 { "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", -1, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\n", 89, 64, },
210 /* invalid # Multiline input with data after '='. */
211 { "", -1, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\neHh4eHh4eHh4eHh4eHh4eHh4\n", 90, 0, },
212 /* invalid */
213 { "", -1, "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neA==eHh4eHh4eHh4eHh4eHh4\n", 90, 0, },
214 /* valid # B64_EOF ('-') terminates input and trailing bytes are ignored */
215 { "OpenSSLOpenSSL\n", -1, "T3BlblNTTE9wZW5TU0wK\n-abcd", 26, 15, },
216 /* valid */
217 { "OpenSSLOpenSSL\n", -1, "T3BlblNTTE9wZW5TU0wK-abcd", 25, 15, },
122}; 218};
123 219
124#define N_NL_TESTS (sizeof(base64_nl_tests) / sizeof(*base64_nl_tests)) 220#define N_NL_TESTS (sizeof(base64_nl_tests) / sizeof(*base64_nl_tests))