diff options
author | inoguchi <> | 2020-03-10 11:13:28 +0000 |
---|---|---|
committer | inoguchi <> | 2020-03-10 11:13:28 +0000 |
commit | fb8d28aeb36c4bb18f6fcbfcdb61a6ba1099d7c0 (patch) | |
tree | 19ea2bd30402b63fda85ebf1819efb44b8f82614 /src/regress/lib | |
parent | 9feddb8f718ed9f6bea887f11ed40e629a8d07e8 (diff) | |
download | openbsd-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.c | 98 |
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)) |