]> git.ipfire.org Git - thirdparty/openssl.git/blame - test/recipes/30-test_evp_data/evppkey_ecdsa.txt
Allow arbitrary digests with ECDSA and DSA
[thirdparty/openssl.git] / test / recipes / 30-test_evp_data / evppkey_ecdsa.txt
CommitLineData
5ccada09 1#
aff636a4 2# Copyright 2001-2021 The OpenSSL Project Authors. All Rights Reserved.
5ccada09
SL
3#
4# Licensed under the Apache License 2.0 (the "License"). You may not use
5# this file except in compliance with the License. You can obtain a copy
6# in the file LICENSE in the source distribution or at
7# https://www.openssl.org/source/license.html
8
9# Tests start with one of these keywords
10# Cipher Decrypt Derive Digest Encoding KDF MAC PBE
11# PrivPubKeyPair Sign Verify VerifyRecover
12# and continue until a blank line. Lines starting with a pound sign are ignored.
13# The keyword Availablein must appear before the test name if needed.
14
15# Public key algorithm tests
16
17# Private keys used for PKEY operations.
18
19# EC P-256 key
20
21PrivateKey=P-256
22-----BEGIN PRIVATE KEY-----
23MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgiocvtiiTxNH/xbnw
24+RdYBp+DUuCPoFpJ+NuSbLVyhyWhRANCAAQsFQ9CnOcPIWwlLPXgYs4fY5zV0WXH
25+JQkBywnGX14szuSDpXNtmTpkNzwz+oNlOKo5q+dDlgFbmUxBJJbn+bJ
26-----END PRIVATE KEY-----
27
28# EC public key for above
29
30PublicKey=P-256-PUBLIC
31-----BEGIN PUBLIC KEY-----
32MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELBUPQpznDyFsJSz14GLOH2Oc1dFl
33x/iUJAcsJxl9eLM7kg6VzbZk6ZDc8M/qDZTiqOavnQ5YBW5lMQSSW5/myQ==
34-----END PUBLIC KEY-----
35
36PrivPubKeyPair = P-256:P-256-PUBLIC
37
38Title = ECDSA tests
39
40Verify = P-256
41Ctrl = digest:SHA1
42Input = "0123456789ABCDEF1234"
43Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
44
45# Digest too long
46Verify = P-256
47Ctrl = digest:SHA1
48Input = "0123456789ABCDEF12345"
49Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
50Result = VERIFY_ERROR
51
52# Digest too short
53Verify = P-256
54Ctrl = digest:SHA1
55Input = "0123456789ABCDEF123"
56Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
57Result = VERIFY_ERROR
58
59# Digest invalid
60Verify = P-256
61Ctrl = digest:SHA1
62Input = "0123456789ABCDEF1235"
63Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
64Result = VERIFY_ERROR
65
66# Invalid signature
67Verify = P-256
68Ctrl = digest:SHA1
69Input = "0123456789ABCDEF1234"
70Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec7
71Result = VERIFY_ERROR
72
73# Garbage after signature
74Availablein = default
75Verify = P-256
76Ctrl = digest:SHA1
77Input = "0123456789ABCDEF1234"
78Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec800
79Result = VERIFY_ERROR
80
81# BER signature
82Verify = P-256
83Ctrl = digest:SHA1
84Input = "0123456789ABCDEF1234"
85Output = 3080022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec80000
86Result = VERIFY_ERROR
87
88Verify = P-256-PUBLIC
89Ctrl = digest:SHA1
90Input = "0123456789ABCDEF1234"
91Output = 3045022100b1d1cb1a577035bccdd5a86c6148c2cc7c633cd42b7234139b593076d041e15202201898cdd52b41ca502098184b409cf83a21bc945006746e3b7cea52234e043ec8
92
5ccada09
SL
93Title = DigestSign and DigestVerify
94
95DigestVerify = SHA256
96Key = P-256-PUBLIC
97Input = "Hello World"
98Output = 3046022100e7515177ec3817b77a4a94066ab3070817b7aa9d44a8a09f040da250116e8972022100ba59b0f631258e59a9026be5d84f60685f4cf22b9165a0c2736d5c21c8ec1862
99
5ccada09
SL
100# Oneshot tests
101OneShotDigestVerify = SHA256
102Key = P-256-PUBLIC
103Input = "Hello World"
104Output = 3046022100e7515177ec3817b77a4a94066ab3070817b7aa9d44a8a09f040da250116e8972022100ba59b0f631258e59a9026be5d84f60685f4cf22b9165a0c2736d5c21c8ec1862
0645110e 105
28332028
SL
106# Test that mdsize != tbssize fails
107Sign = P-256
108Ctrl = digest:SHA256
109Input = "0123456789ABCDEF1234"
110Result = KEYOP_ERROR
111
0645110e
SL
112PrivateKey = P-256_NAMED_CURVE_EXPLICIT
113-----BEGIN PRIVATE KEY-----
114MIIBeQIBADCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAAB
115AAAAAAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA
116///////////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMV
117AMSdNgiG5wSTamZ44ROdJreBn36QBEEEaxfR8uEsQkf4vOblY6RA8ncDfYEt6zOg
1189KE5RdiYwpZP40Li/hp/m47n60p8D54WK84zV2sxXs7LtkBoN79R9QIhAP////8A
119AAAA//////////+85vqtpxeehPO5ysL8YyVRAgEBBG0wawIBAQQgiUTxtr5vLVjj
1200BOXUa/4r82DJ30QoupYS/wlilW4gWehRANCAATM0n3q2UaDyaQ7OxzJM3B6prhW
1213ev1gTwRBduzqqlwd54AUSgI+pjttW8zrWNitO8H1sf59MPWOESKxNtZ1+Nl
122-----END PRIVATE KEY-----
123
124PrivateKey = EC_EXPLICIT
125-----BEGIN PRIVATE KEY-----
126MIIBeQIBADCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAAB
127AAAAAAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA
128///////////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMV
129AMSdNgiG5wSTamZ44ROdJreBn36QBEEE5JcIvn36opqjEm/k59Al40rBAxWM2TPG
130l0L13Je51zHpfXQ9Z2o7IQicMXP4wSfJ0qCgg2bgydqoxlYrlLGuVQIhAP////8A
131AAAA//////////+85vqtpxeehPO5ysL8YyVRAgEBBG0wawIBAQQgec92jwduadCk
132OjoNRI+YT5Be5TkzZXzYCyTLkMOikDmhRANCAATtECEhQbLEaiUj/Wu0qjcr81lL
13346dx5zYgArz/iaSNJ3W80oO+F7v04jlQ7wxQzg96R0bwKiMeq5CcW9ZFt6xg
134-----END PRIVATE KEY-----
135
136PrivateKey = B-163
137-----BEGIN PRIVATE KEY-----
138MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUDnQW0mLiHVha/jqFznX/K
139DnVlDgChLgMsAAQB1qZ00fPIct+QN8skv1XIHtBNp3EGLytJV0tsAUTYtGhtrzRj
140e3GzYyg=
141-----END PRIVATE KEY-----
142
143PrivateKey = secp256k1
144-----BEGIN PRIVATE KEY-----
145MIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgsLpFV9joHc0bisyV53XL
146mrG6/Gu6ZaHoXtKP/VFX44ehRANCAARLYWGgp5nP4N8guypLSbYGCVN6ZPCnWW4x
147srYkcpdbxr4neRT3zC62keCKgPbJf5SIHkJ2Tcaw6hVSrBOUFtix
148-----END PRIVATE KEY-----
149
150Title = FIPS tests
151
152# Test that a nist curve with < 112 bits is allowed in fips mode for verifying
153DigestVerify = SHA256
154Key = B-163
155Input = "Hello World"
156Output = 302e0215027bb891747468b4b59ca2a2bf8f42d29d08866cf5021502cc311b25e9a2168e42240b07a6071070f687eb3b
157
158# Test that a nist curve with SHA3 is allowed in fips mode
159# The sign will get a mismatch error since the output signature changes on each run
160DigestSign = SHA3-512
161Key = P-256
162Input = "Hello World"
163Result = SIGNATURE_MISMATCH
164
165# Test that a explicit curve that is a named curve is allowed in fips mode
166DigestVerify = SHA256
167Key = P-256_NAMED_CURVE_EXPLICIT
168Input = "Hello World"
169Output = 30450220796fcf472882ed5779226dcd0217b9d2b9acfe4fa2fb0109c8ee63c63adc1033022100e306c69f7e31b9a5d54eb12ba813cddf4de4af933e4f6cea38a0817d9d831d91
170
171Title = FIPS Negative tests (using different curves and digests)
172
173# Test that a explicit curve is not allowed in fips mode
174Availablein = fips
175DigestVerify = SHA256
7a810fac 176Securitycheck = 1
0645110e
SL
177Key = EC_EXPLICIT
178Input = "Hello World"
179Result = DIGESTVERIFYINIT_ERROR
180
181# Test that a curve with < 112 bits is not allowed in fips mode for signing
182Availablein = fips
183DigestSign = SHA3-512
7a810fac 184Securitycheck = 1
0645110e
SL
185Key = B-163
186Input = "Hello World"
187Result = DIGESTSIGNINIT_ERROR
188
189# Test that a non nist curve is not allowed in fips mode
190Availablein = fips
191DigestSign = SHA3-512
7a810fac 192Securitycheck = 1
0645110e
SL
193Key = secp256k1
194Input = "Hello World"
195Result = DIGESTSIGNINIT_ERROR
28332028
SL
196
197# Test that SHA1 is not allowed in fips mode for signing
198Availablein = fips
199DigestSign = SHA1
200Securitycheck = 1
201Key = B-163
202Input = "Hello World"
203Result = DIGESTSIGNINIT_ERROR
204
205# Test that SHA1 is not allowed in fips mode for signing
206Availablein = fips
207Sign = P-256
38e12964 208Securitycheck = 1
28332028
SL
209Ctrl = digest:SHA1
210Input = "0123456789ABCDEF1234"
211Result = PKEY_CTRL_ERROR
6a2ab4a9
TM
212
213# Invalid non-approved digest
214Availablein = fips
215DigestVerify = MD5
216Securitycheck = 1
217Key = P-256-PUBLIC
218Result = DIGESTVERIFYINIT_ERROR