Bug 2215366 - OpenSSL CMS encryption with ECDSA keys doesn't work
Summary: OpenSSL CMS encryption with ECDSA keys doesn't work
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: openssl
Version: 9.2
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: rc
: ---
Assignee: Dmitry Belyavskiy
QA Contact: BaseOS QE Security Team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-06-15 17:26 UTC by Hubert Kario
Modified: 2023-06-28 12:16 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker CRYPTO-11031 0 None None None 2023-06-28 12:16:10 UTC
Red Hat Issue Tracker RHELPLAN-160010 0 None None None 2023-06-15 17:26:43 UTC

Description Hubert Kario 2023-06-15 17:26:18 UTC
Description of problem:
When the `openssl cms` command is used to encrypt data, the command aborts when the recipient key is ECDSA

Version-Release number of selected component (if applicable):
openssl-3.0.1-20.el9_0.x86_64
openssl-3.0.7-20.el9.x86_64

How reproducible:
always

Steps to Reproduce:
openssl ecparam -out p256.pem -name P-256
openssl req -x509 -newkey ec:p256.pem -keyout root.key -out root.crt -subj /CN=localhost -batch -nodes -days 36500 -sha256
echo something to encrypt > message.txt
openssl cms -encrypt -in message.txt -out message.enc root.crt

Actual results:
(for 3.0.7-20.el9)
409C3F54CC7F0000:error:17000074:CMS routines:cms_EnvelopedData_Encryption_init_bio:error setting recipientinfo:crypto/cms/cms_env.c:1159:
409C3F54CC7F0000:error:17000068:CMS routines:CMS_final:cms lib:crypto/cms/cms_smime.c:882:

Expected results:
CMS file encrypted with ECDSA/ECDH

Additional info:
The command does succeed in FIPS mode (and produces a file encrypted with `:dhSinglePass-stdDH-sha1kdf-scheme`) and works if the KDF is explicitly set to SHA-256:
openssl cms -encrypt -in message.txt -out message.enc -recip root.crt -keyopt ecdh_kdf_md:sha256
The operation also works in RHEL-8


Note You need to log in before you can comment on or make changes to this bug.