xref: /freebsd/crypto/openssl/test/recipes/30-test_evp_data/evpencod.txt (revision e0c4386e7e71d93b0edc0c8fa156263fc4a8b0b6)
1*e0c4386eSCy Schubert#
2*e0c4386eSCy Schubert# Copyright 2001-2020 The OpenSSL Project Authors. All Rights Reserved.
3*e0c4386eSCy Schubert#
4*e0c4386eSCy Schubert# Licensed under the Apache License 2.0 (the "License").  You may not use
5*e0c4386eSCy Schubert# this file except in compliance with the License.  You can obtain a copy
6*e0c4386eSCy Schubert# in the file LICENSE in the source distribution or at
7*e0c4386eSCy Schubert# https://www.openssl.org/source/license.html
8*e0c4386eSCy Schubert
9*e0c4386eSCy Schubert# Tests start with one of these keywords
10*e0c4386eSCy Schubert#       Cipher Decrypt Derive Digest Encoding KDF MAC PBE
11*e0c4386eSCy Schubert#       PrivPubKeyPair Sign Verify VerifyRecover
12*e0c4386eSCy Schubert# and continue until a blank line. Lines starting with a pound sign are ignored.
13*e0c4386eSCy Schubert
14*e0c4386eSCy SchubertTitle = Base64 tests
15*e0c4386eSCy Schubert
16*e0c4386eSCy SchubertEncoding = canonical
17*e0c4386eSCy SchubertInput = ""
18*e0c4386eSCy SchubertOutput = ""
19*e0c4386eSCy Schubert
20*e0c4386eSCy SchubertEncoding = canonical
21*e0c4386eSCy SchubertInput = "h"
22*e0c4386eSCy SchubertOutput = "aA==\n"
23*e0c4386eSCy Schubert
24*e0c4386eSCy SchubertEncoding = canonical
25*e0c4386eSCy SchubertInput = "hello"
26*e0c4386eSCy SchubertOutput = "aGVsbG8=\n"
27*e0c4386eSCy Schubert
28*e0c4386eSCy SchubertEncoding = canonical
29*e0c4386eSCy SchubertInput = "hello world!"
30*e0c4386eSCy SchubertOutput = "aGVsbG8gd29ybGQh\n"
31*e0c4386eSCy Schubert
32*e0c4386eSCy SchubertEncoding = canonical
33*e0c4386eSCy SchubertInput = 00010203040506070809a0b0c0d0e0f000
34*e0c4386eSCy SchubertOutput = "AAECAwQFBgcICaCwwNDg8AA=\n"
35*e0c4386eSCy Schubert
36*e0c4386eSCy Schubert# Missing padding
37*e0c4386eSCy SchubertEncoding = invalid
38*e0c4386eSCy SchubertOutput = "aGVsbG8"
39*e0c4386eSCy Schubert
40*e0c4386eSCy SchubertEncoding = invalid
41*e0c4386eSCy SchubertOutput = "aGVsbG8\n"
42*e0c4386eSCy Schubert
43*e0c4386eSCy Schubert# Tolerate missing newline
44*e0c4386eSCy SchubertEncoding = valid
45*e0c4386eSCy SchubertInput = "hello"
46*e0c4386eSCy SchubertOutput = "aGVsbG8="
47*e0c4386eSCy Schubert
48*e0c4386eSCy Schubert# Don't tolerate extra trailing '='
49*e0c4386eSCy SchubertEncoding = invalid
50*e0c4386eSCy SchubertInput = "hello"
51*e0c4386eSCy SchubertOutput = "aGVsbG8==\n"
52*e0c4386eSCy Schubert
53*e0c4386eSCy SchubertEncoding = invalid
54*e0c4386eSCy SchubertOutput = "aGVsbG8===\n"
55*e0c4386eSCy Schubert
56*e0c4386eSCy Schubert# Don't tolerate data after '='
57*e0c4386eSCy SchubertEncoding = invalid
58*e0c4386eSCy SchubertOutput = "aGV=sbG8=\n"
59*e0c4386eSCy Schubert
60*e0c4386eSCy Schubert# Newlines are ignored
61*e0c4386eSCy SchubertEncoding = valid
62*e0c4386eSCy SchubertInput = "hello"
63*e0c4386eSCy SchubertOutput = "aGV\nsbG8=\n"
64*e0c4386eSCy Schubert
65*e0c4386eSCy SchubertEncoding = canonical
66*e0c4386eSCy SchubertInput = "hello"
67*e0c4386eSCy SchubertOutput = 614756736247383d0a
68*e0c4386eSCy Schubert
69*e0c4386eSCy Schubert# Invalid characters
70*e0c4386eSCy SchubertEncoding = invalid
71*e0c4386eSCy SchubertOutput = 614756736247383d0a00
72*e0c4386eSCy Schubert
73*e0c4386eSCy SchubertEncoding = invalid
74*e0c4386eSCy SchubertOutput = 61475600736247383d0a
75*e0c4386eSCy Schubert
76*e0c4386eSCy SchubertEncoding = invalid
77*e0c4386eSCy SchubertOutput = 61475601736247383d0a
78*e0c4386eSCy Schubert
79*e0c4386eSCy SchubertEncoding = invalid
80*e0c4386eSCy SchubertOutput = 61475680736247383d0a
81*e0c4386eSCy Schubert
82*e0c4386eSCy SchubertEncoding = invalid
83*e0c4386eSCy SchubertOutput = e14756736247383d0a
84*e0c4386eSCy Schubert
85*e0c4386eSCy SchubertEncoding = canonical
86*e0c4386eSCy SchubertInput = "OpenSSLOpenSSL\n"
87*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU0wK\n"
88*e0c4386eSCy Schubert
89*e0c4386eSCy SchubertEncoding = valid
90*e0c4386eSCy SchubertInput = "OpenSSLOpenSSL\n"
91*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU0wK"
92*e0c4386eSCy Schubert
93*e0c4386eSCy Schubert# Truncate 1-3 chars
94*e0c4386eSCy SchubertEncoding = invalid
95*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU0w"
96*e0c4386eSCy Schubert
97*e0c4386eSCy SchubertEncoding = invalid
98*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU0"
99*e0c4386eSCy Schubert
100*e0c4386eSCy SchubertEncoding = invalid
101*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU"
102*e0c4386eSCy Schubert
103*e0c4386eSCy SchubertEncoding = invalid
104*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU0wK===="
105*e0c4386eSCy Schubert
106*e0c4386eSCy SchubertEncoding = invalid
107*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU0wK============================================\n"
108*e0c4386eSCy Schubert
109*e0c4386eSCy SchubertEncoding = invalid
110*e0c4386eSCy SchubertOutput = "YQ==YQ==YQ==\n"
111*e0c4386eSCy Schubert
112*e0c4386eSCy SchubertEncoding = invalid
113*e0c4386eSCy SchubertOutput = "A"
114*e0c4386eSCy Schubert
115*e0c4386eSCy SchubertEncoding = invalid
116*e0c4386eSCy SchubertOutput = "A\n"
117*e0c4386eSCy Schubert
118*e0c4386eSCy SchubertEncoding = invalid
119*e0c4386eSCy SchubertOutput = "A="
120*e0c4386eSCy Schubert
121*e0c4386eSCy SchubertEncoding = invalid
122*e0c4386eSCy SchubertOutput = "A==\n"
123*e0c4386eSCy Schubert
124*e0c4386eSCy SchubertEncoding = invalid
125*e0c4386eSCy SchubertOutput = "A===\n"
126*e0c4386eSCy Schubert
127*e0c4386eSCy SchubertEncoding = invalid
128*e0c4386eSCy SchubertOutput = "A====\n"
129*e0c4386eSCy Schubert
130*e0c4386eSCy SchubertEncoding = valid
131*e0c4386eSCy SchubertInput = "OpenSSLOpenSSL\n"
132*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU0wK\n\n"
133*e0c4386eSCy Schubert
134*e0c4386eSCy SchubertEncoding = valid
135*e0c4386eSCy SchubertInput = "OpenSSLOpenSSL\n"
136*e0c4386eSCy SchubertOutput = "T3BlblNTTE\n9wZW5TU0wK"
137*e0c4386eSCy Schubert
138*e0c4386eSCy Schubert# CVE 2015-0292
139*e0c4386eSCy SchubertEncoding = invalid
140*e0c4386eSCy SchubertOutput = "ZW5jb2RlIG1lCg==================================================================\n"
141*e0c4386eSCy Schubert
142*e0c4386eSCy SchubertEncoding = canonical
143*e0c4386eSCy SchubertInput = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
144*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\n"
145*e0c4386eSCy Schubert
146*e0c4386eSCy SchubertEncoding = valid
147*e0c4386eSCy SchubertInput = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
148*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA\n==\n"
149*e0c4386eSCy Schubert
150*e0c4386eSCy SchubertEncoding = valid
151*e0c4386eSCy SchubertInput = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
152*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA=\n=\n"
153*e0c4386eSCy Schubert
154*e0c4386eSCy SchubertEncoding = invalid
155*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA====\n"
156*e0c4386eSCy Schubert
157*e0c4386eSCy Schubert# Multiline output without padding
158*e0c4386eSCy SchubertEncoding = canonical
159*e0c4386eSCy SchubertInput = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
160*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neHh4eHh4eHh4eHh4\n"
161*e0c4386eSCy Schubert
162*e0c4386eSCy Schubert# Multiline output with padding
163*e0c4386eSCy SchubertEncoding = canonical
164*e0c4386eSCy SchubertInput = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
165*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neHh4eHh4eHh4eHh4eHh4eA==\n"
166*e0c4386eSCy Schubert
167*e0c4386eSCy Schubert# Multiline output with line break in the middle of a b64 block is accepted
168*e0c4386eSCy SchubertEncoding = valid
169*e0c4386eSCy SchubertInput = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
170*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh\n4eHh4eHh4eHh4eHh4eHh4eA==\n"
171*e0c4386eSCy Schubert
172*e0c4386eSCy Schubert# Long lines are accepted
173*e0c4386eSCy SchubertEncoding = valid
174*e0c4386eSCy SchubertInput = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
175*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\n"
176*e0c4386eSCy Schubert
177*e0c4386eSCy Schubert# Multiline input with data after '='.
178*e0c4386eSCy SchubertEncoding = invalid
179*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eA==\neHh4eHh4eHh4eHh4eHh4eHh4\n"
180*e0c4386eSCy Schubert
181*e0c4386eSCy SchubertEncoding = invalid
182*e0c4386eSCy SchubertOutput = "eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4\neA==eHh4eHh4eHh4eHh4eHh4\n"
183*e0c4386eSCy Schubert
184*e0c4386eSCy Schubert# B64_EOF ('-') terminates input and trailing bytes are ignored
185*e0c4386eSCy SchubertEncoding = valid
186*e0c4386eSCy SchubertInput = "OpenSSLOpenSSL\n"
187*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU0wK\n-abcd"
188*e0c4386eSCy Schubert
189*e0c4386eSCy SchubertEncoding = valid
190*e0c4386eSCy SchubertInput = "OpenSSLOpenSSL\n"
191*e0c4386eSCy SchubertOutput = "T3BlblNTTE9wZW5TU0wK-abcd"
192*e0c4386eSCy Schubert
193