1OPENSSL-CMS(1ossl) OpenSSL OPENSSL-CMS(1ossl)
2
3
4
6 openssl-cms - CMS command
7
9 openssl cms [-help]
10
11 General options:
12
13 [-in filename] [-out filename] [-config configfile]
14
15 Operation options:
16
17 [-encrypt] [-decrypt] [-sign] [-verify] [-resign] [-sign_receipt]
18 [-verify_receipt receipt] [-digest_create] [-digest_verify] [-compress]
19 [-uncompress] [-EncryptedData_encrypt] [-EncryptedData_decrypt]
20 [-data_create] [-data_out] [-cmsout]
21
22 File format options:
23
24 [-inform DER|PEM|SMIME] [-outform DER|PEM|SMIME] [-rctform
25 DER|PEM|SMIME] [-stream] [-indef] [-noindef] [-binary] [-crlfeol]
26 [-asciicrlf]
27
28 Keys and password options:
29
30 [-pwri_password password] [-secretkey key] [-secretkeyid id] [-inkey
31 filename|uri] [-passin arg] [-keyopt name:parameter] [-keyform
32 DER|PEM|P12|ENGINE] [-engine id] [-provider name] [-provider-path path]
33 [-propquery propq] [-rand files] [-writerand file]
34
35 Encryption options:
36
37 [-originator file] [-recip file] [recipient-cert ...] [-cipher] [-wrap
38 cipher] [-aes128-wrap] [-aes192-wrap] [-aes256-wrap] [-des3-wrap]
39 [-debug_decrypt]
40
41 Signing options:
42
43 [-md digest] [-signer file] [-certfile file] [-cades] [-nodetach]
44 [-nocerts] [-noattr] [-nosmimecap] [-receipt_request_all]
45 [-receipt_request_first] [-receipt_request_from emailaddress]
46 [-receipt_request_to emailaddress]
47
48 Verification options:
49
50 [-signer file] [-content filename] [-no_content_verify]
51 [-no_attr_verify] [-nosigs] [-noverify] [-nointern] [-cades]
52 [-verify_retcode] [-CAfile file] [-no-CAfile] [-CApath dir]
53 [-no-CApath] [-CAstore uri] [-no-CAstore]
54
55 Output options:
56
57 [-keyid] [-econtent_type type] [-text] [-certsout file] [-to addr]
58 [-from addr] [-subject subj]
59
60 Printing options:
61
62 [-noout] [-print] [-nameopt option] [-receipt_request_print]
63
64 Validation options:
65
66 [-allow_proxy_certs] [-attime timestamp] [-no_check_time]
67 [-check_ss_sig] [-crl_check] [-crl_check_all] [-explicit_policy]
68 [-extended_crl] [-ignore_critical] [-inhibit_any] [-inhibit_map]
69 [-partial_chain] [-policy arg] [-policy_check] [-policy_print]
70 [-purpose purpose] [-suiteB_128] [-suiteB_128_only] [-suiteB_192]
71 [-trusted_first] [-no_alt_chains] [-use_deltas] [-auth_level num]
72 [-verify_depth num] [-verify_email email] [-verify_hostname hostname]
73 [-verify_ip ip] [-verify_name name] [-x509_strict] [-issuer_checks]
74
76 This command handles data in CMS format such as S/MIME v3.1 email
77 messages. It can encrypt, decrypt, sign, verify, compress, uncompress,
78 and print messages.
79
81 There are a number of operation options that set the type of operation
82 to be performed: encrypt, decrypt, sign, verify, resign, sign_receipt,
83 verify_receipt, digest_create, digest_verify, compress, uncompress,
84 EncryptedData_encrypt, EncryptedData_decrypt, data_create, data_out, or
85 cmsout. The relevance of the other options depends on the operation
86 type and their meaning may vary according to it.
87
88 -help
89 Print out a usage message.
90
91 General options
92 -in filename
93 The input message to be encrypted or signed or the message to be
94 decrypted or verified.
95
96 -out filename
97 The message text that has been decrypted or verified or the output
98 MIME format message that has been signed or verified.
99
100 -config configfile
101 See "Configuration Option" in openssl(1).
102
103 Operation options
104 -encrypt
105 Encrypt data for the given recipient certificates. Input file is
106 the message to be encrypted. The output file is the encrypted data
107 in MIME format. The actual CMS type is EnvelopedData.
108
109 Note that no revocation check is done for the recipient cert, so if
110 that key has been compromised, others may be able to decrypt the
111 text.
112
113 -decrypt
114 Decrypt data using the supplied certificate and private key.
115 Expects encrypted datain MIME format for the input file. The
116 decrypted data is written to the output file.
117
118 -sign
119 Sign data using the supplied certificate and private key. Input
120 file is the message to be signed. The signed data in MIME format is
121 written to the output file.
122
123 -verify
124 Verify signed data. Expects a signed data on input and outputs the
125 signed data. Both clear text and opaque signing is supported.
126
127 -resign
128 Resign a message: take an existing message and one or more new
129 signers.
130
131 -sign_receipt
132 Generate and output a signed receipt for the supplied message. The
133 input message must contain a signed receipt request. Functionality
134 is otherwise similar to the -sign operation.
135
136 -verify_receipt receipt
137 Verify a signed receipt in filename receipt. The input message must
138 contain the original receipt request. Functionality is otherwise
139 similar to the -verify operation.
140
141 -digest_create
142 Create a CMS DigestedData type.
143
144 -digest_verify
145 Verify a CMS DigestedData type and output the content.
146
147 -compress
148 Create a CMS CompressedData type. OpenSSL must be compiled with
149 zlib support for this option to work, otherwise it will output an
150 error.
151
152 -uncompress
153 Uncompress a CMS CompressedData type and output the content.
154 OpenSSL must be compiled with zlib support for this option to work,
155 otherwise it will output an error.
156
157 -EncryptedData_encrypt
158 Encrypt content using supplied symmetric key and algorithm using a
159 CMS EncryptedData type and output the content.
160
161 -EncryptedData_decrypt
162 Decrypt content using supplied symmetric key and algorithm using a
163 CMS EncryptedData type and output the content.
164
165 -data_create
166 Create a CMS Data type.
167
168 -data_out
169 Data type and output the content.
170
171 -cmsout
172 Takes an input message and writes out a PEM encoded CMS structure.
173
174 File format options
175 -inform DER|PEM|SMIME
176 The input format of the CMS structure (if one is being read); the
177 default is SMIME. See openssl-format-options(1) for details.
178
179 -outform DER|PEM|SMIME
180 The output format of the CMS structure (if one is being written);
181 the default is SMIME. See openssl-format-options(1) for details.
182
183 -rctform DER|PEM|SMIME
184 The signed receipt format for use with the -receipt_verify; the
185 default is SMIME. See openssl-format-options(1) for details.
186
187 -stream, -indef
188 The -stream and -indef options are equivalent and enable streaming
189 I/O for encoding operations. This permits single pass processing of
190 data without the need to hold the entire contents in memory,
191 potentially supporting very large files. Streaming is automatically
192 set for S/MIME signing with detached data if the output format is
193 SMIME it is currently off by default for all other operations.
194
195 -noindef
196 Disable streaming I/O where it would produce and indefinite length
197 constructed encoding. This option currently has no effect. In
198 future streaming will be enabled by default on all relevant
199 operations and this option will disable it.
200
201 -binary
202 Normally the input message is converted to "canonical" format which
203 is effectively using CR and LF as end of line: as required by the
204 S/MIME specification. When this option is present no translation
205 occurs. This is useful when handling binary data which may not be
206 in MIME format.
207
208 -crlfeol
209 Normally the output file uses a single LF as end of line. When this
210 option is present CRLF is used instead.
211
212 -asciicrlf
213 When signing use ASCII CRLF format canonicalisation. This strips
214 trailing whitespace from all lines, deletes trailing blank lines at
215 EOF and sets the encapsulated content type. This option is normally
216 used with detached content and an output signature format of DER.
217 This option is not normally needed when verifying as it is enabled
218 automatically if the encapsulated content format is detected.
219
220 Keys and password options
221 -pwri_password password
222 Specify password for recipient.
223
224 -secretkey key
225 Specify symmetric key to use. The key must be supplied in hex
226 format and be consistent with the algorithm used. Supported by the
227 -EncryptedData_encrypt -EncryptedData_decrypt, -encrypt and
228 -decrypt options. When used with -encrypt or -decrypt the supplied
229 key is used to wrap or unwrap the content encryption key using an
230 AES key in the KEKRecipientInfo type.
231
232 -secretkeyid id
233 The key identifier for the supplied symmetric key for
234 KEKRecipientInfo type. This option must be present if the
235 -secretkey option is used with -encrypt. With -decrypt operations
236 the id is used to locate the relevant key if it is not supplied
237 then an attempt is used to decrypt any KEKRecipientInfo structures.
238
239 -inkey filename|uri
240 The private key to use when signing or decrypting. This must match
241 the corresponding certificate. If this option is not specified then
242 the private key must be included in the certificate file specified
243 with the -recip or -signer file. When signing this option can be
244 used multiple times to specify successive keys.
245
246 -passin arg
247 The private key password source. For more information about the
248 format of arg see openssl-passphrase-options(1).
249
250 -keyopt name:parameter
251 For signing and encryption this option can be used multiple times
252 to set customised parameters for the preceding key or certificate.
253 It can currently be used to set RSA-PSS for signing, RSA-OAEP for
254 encryption or to modify default parameters for ECDH.
255
256 -keyform DER|PEM|P12|ENGINE
257 The format of the private key file; unspecified by default. See
258 openssl-format-options(1) for details.
259
260 -engine id
261 See "Engine Options" in openssl(1). This option is deprecated.
262
263 -provider name
264 -provider-path path
265 -propquery propq
266 See "Provider Options" in openssl(1), provider(7), and property(7).
267
268 -rand files, -writerand file
269 See "Random State Options" in openssl(1) for details.
270
271 Encryption and decryption options
272 -originator file
273 A certificate of the originator of the encrypted message. Necessary
274 for decryption when Key Agreement is in use for a shared key.
275
276 -recip file
277 When decrypting a message this specifies the certificate of the
278 recipient. The certificate must match one of the recipients of the
279 message.
280
281 When encrypting a message this option may be used multiple times to
282 specify each recipient. This form must be used if customised
283 parameters are required (for example to specify RSA-OAEP).
284
285 Only certificates carrying RSA, Diffie-Hellman or EC keys are
286 supported by this option.
287
288 recipient-cert ...
289 This is an alternative to using the -recip option when encrypting a
290 message. One or more certificate filennames may be given.
291
292 -cipher
293 The encryption algorithm to use. For example triple DES (168 bits)
294 - -des3 or 256 bit AES - -aes256. Any standard algorithm name (as
295 used by the EVP_get_cipherbyname() function) can also be used
296 preceded by a dash, for example -aes-128-cbc. See openssl-enc(1)
297 for a list of ciphers supported by your version of OpenSSL.
298
299 Currently the AES variants with GCM mode are the only supported
300 AEAD algorithms.
301
302 If not specified triple DES is used. Only used with -encrypt and
303 -EncryptedData_create commands.
304
305 -wrap cipher
306 Cipher algorithm to use for key wrap when encrypting the message
307 using Key Agreement for key transport. The algorithm specified
308 should be suitable for key wrap.
309
310 -aes128-wrap, -aes192-wrap, -aes256-wrap, -des3-wrap
311 Use AES128, AES192, AES256, or 3DES-EDE, respectively, to wrap key.
312 Depending on the OpenSSL build options used, -des3-wrap may not be
313 supported.
314
315 -debug_decrypt
316 This option sets the CMS_DEBUG_DECRYPT flag. This option should be
317 used with caution: see the notes section below.
318
319 Signing options
320 -md digest
321 Digest algorithm to use when signing or resigning. If not present
322 then the default digest algorithm for the signing key will be used
323 (usually SHA1).
324
325 -signer file
326 A signing certificate. When signing or resigning a message, this
327 option can be used multiple times if more than one signer is
328 required.
329
330 -certfile file
331 Allows additional certificates to be specified. When signing these
332 will be included with the message. When verifying these will be
333 searched for the signers certificates. The input can be in PEM,
334 DER, or PKCS#12 format.
335
336 -cades
337 When used with -sign, add an ESS signingCertificate or ESS
338 signingCertificateV2 signed-attribute to the SignerInfo, in order
339 to make the signature comply with the requirements for a CAdES
340 Basic Electronic Signature (CAdES-BES).
341
342 -nodetach
343 When signing a message use opaque signing: this form is more
344 resistant to translation by mail relays but it cannot be read by
345 mail agents that do not support S/MIME. Without this option
346 cleartext signing with the MIME type multipart/signed is used.
347
348 -nocerts
349 When signing a message the signer's certificate is normally
350 included with this option it is excluded. This will reduce the size
351 of the signed message but the verifier must have a copy of the
352 signers certificate available locally (passed using the -certfile
353 option for example).
354
355 -noattr
356 Normally when a message is signed a set of attributes are included
357 which include the signing time and supported symmetric algorithms.
358 With this option they are not included.
359
360 -nosmimecap
361 Exclude the list of supported algorithms from signed attributes,
362 other options such as signing time and content type are still
363 included.
364
365 -receipt_request_all, -receipt_request_first
366 For -sign option include a signed receipt request. Indicate
367 requests should be provided by all recipient or first tier
368 recipients (those mailed directly and not from a mailing list).
369 Ignored it -receipt_request_from is included.
370
371 -receipt_request_from emailaddress
372 For -sign option include a signed receipt request. Add an explicit
373 email address where receipts should be supplied.
374
375 -receipt_request_to emailaddress
376 Add an explicit email address where signed receipts should be sent
377 to. This option must but supplied if a signed receipt is requested.
378
379 Verification options
380 -signer file
381 If a message has been verified successfully then the signers
382 certificate(s) will be written to this file if the verification was
383 successful.
384
385 -content filename
386 This specifies a file containing the detached content for
387 operations taking S/MIME input, such as the -verify command. This
388 is only usable if the CMS structure is using the detached signature
389 form where the content is not included. This option will override
390 any content if the input format is S/MIME and it uses the
391 multipart/signed MIME content type.
392
393 -no_content_verify
394 Do not verify signed content signatures.
395
396 -no_attr_verify
397 Do not verify signed attribute signatures.
398
399 -nosigs
400 Don't verify message signature.
401
402 -noverify
403 Do not verify the signers certificate of a signed message.
404
405 -nointern
406 When verifying a message normally certificates (if any) included in
407 the message are searched for the signing certificate. With this
408 option only the certificates specified in the -certfile option are
409 used. The supplied certificates can still be used as untrusted CAs
410 however.
411
412 -cades
413 When used with -verify, require and check signer certificate
414 digest. See the NOTES section for more details.
415
416 -verify_retcode
417 Exit nonzero on verification failure.
418
419 -CAfile file, -no-CAfile, -CApath dir, -no-CApath, -CAstore uri,
420 -no-CAstore
421 See "Trusted Certificate Options" in
422 openssl-verification-options(1) for details.
423
424 Output options
425 -keyid
426 Use subject key identifier to identify certificates instead of
427 issuer name and serial number. The supplied certificate must
428 include a subject key identifier extension. Supported by -sign and
429 -encrypt options.
430
431 -econtent_type type
432 Set the encapsulated content type to type if not supplied the Data
433 type is used. The type argument can be any valid OID name in either
434 text or numerical format.
435
436 -text
437 This option adds plain text (text/plain) MIME headers to the
438 supplied message if encrypting or signing. If decrypting or
439 verifying it strips off text headers: if the decrypted or verified
440 message is not of MIME type text/plain then an error occurs.
441
442 -certsout file
443 Any certificates contained in the input message are written to
444 file.
445
446 -to, -from, -subject
447 The relevant email headers. These are included outside the signed
448 portion of a message so they may be included manually. If signing
449 then many S/MIME mail clients check the signers certificate's email
450 address matches that specified in the From: address.
451
452 Printing options
453 -noout
454 For the -cmsout operation do not output the parsed CMS structure.
455 This is useful if the syntax of the CMS structure is being checked.
456
457 -print
458 For the -cmsout operation print out all fields of the CMS
459 structure. This implies -noout. This is mainly useful for testing
460 purposes.
461
462 -nameopt option
463 For the -cmsout operation when -print option is in use, specifies
464 printing options for string fields. For most cases utf8 is
465 reasonable value. See openssl-namedisplay-options(1) for details.
466
467 -receipt_request_print
468 For the -verify operation print out the contents of any signed
469 receipt requests.
470
471 Validation options
472 -allow_proxy_certs, -attime, -no_check_time, -check_ss_sig, -crl_check,
473 -crl_check_all, -explicit_policy, -extended_crl, -ignore_critical,
474 -inhibit_any, -inhibit_map, -no_alt_chains, -partial_chain, -policy,
475 -policy_check, -policy_print, -purpose, -suiteB_128, -suiteB_128_only,
476 -suiteB_192, -trusted_first, -use_deltas, -auth_level, -verify_depth,
477 -verify_email, -verify_hostname, -verify_ip, -verify_name, -x509_strict
478 -issuer_checks
479 Set various options of certificate chain verification. See
480 "Verification Options" in openssl-verification-options(1) for
481 details.
482
483 Any validation errors cause the command to exit.
484
486 The MIME message must be sent without any blank lines between the
487 headers and the output. Some mail programs will automatically add a
488 blank line. Piping the mail directly to sendmail is one way to achieve
489 the correct format.
490
491 The supplied message to be signed or encrypted must include the
492 necessary MIME headers or many S/MIME clients won't display it properly
493 (if at all). You can use the -text option to automatically add plain
494 text headers.
495
496 A "signed and encrypted" message is one where a signed message is then
497 encrypted. This can be produced by encrypting an already signed
498 message: see the examples section.
499
500 This version of the program only allows one signer per message but it
501 will verify multiple signers on received messages. Some S/MIME clients
502 choke if a message contains multiple signers. It is possible to sign
503 messages "in parallel" by signing an already signed message.
504
505 The options -encrypt and -decrypt reflect common usage in S/MIME
506 clients. Strictly speaking these process CMS enveloped data: CMS
507 encrypted data is used for other purposes.
508
509 The -resign option uses an existing message digest when adding a new
510 signer. This means that attributes must be present in at least one
511 existing signer using the same message digest or this operation will
512 fail.
513
514 The -stream and -indef options enable streaming I/O support. As a
515 result the encoding is BER using indefinite length constructed encoding
516 and no longer DER. Streaming is supported for the -encrypt operation
517 and the -sign operation if the content is not detached.
518
519 Streaming is always used for the -sign operation with detached data but
520 since the content is no longer part of the CMS structure the encoding
521 remains DER.
522
523 If the -decrypt option is used without a recipient certificate then an
524 attempt is made to locate the recipient by trying each potential
525 recipient in turn using the supplied private key. To thwart the MMA
526 attack (Bleichenbacher's attack on PKCS #1 v1.5 RSA padding) all
527 recipients are tried whether they succeed or not and if no recipients
528 match the message is "decrypted" using a random key which will
529 typically output garbage. The -debug_decrypt option can be used to
530 disable the MMA attack protection and return an error if no recipient
531 can be found: this option should be used with caution. For a fuller
532 description see CMS_decrypt(3)).
533
535 A CAdES Basic Electronic Signature (CAdES-BES), as defined in the
536 European Standard ETSI EN 319 122-1 V1.1.1, contains:
537
538 • The signed user data as defined in CMS (RFC 3852);
539
540 • Content-type of the EncapsulatedContentInfo value being signed;
541
542 • Message-digest of the eContent OCTET STRING within encapContentInfo
543 being signed;
544
545 • An ESS signingCertificate or ESS signingCertificateV2 attribute, as
546 defined in Enhanced Security Services (ESS), RFC 2634 and RFC 5035.
547 An ESS signingCertificate attribute only allows for SHA-1 as digest
548 algorithm. An ESS signingCertificateV2 attribute allows for any
549 digest algorithm.
550
551 • The digital signature value computed on the user data and, when
552 present, on the signed attributes.
553
554 NOTE that the -cades option applies to the -sign or -verify
555 operations. With this option, the -verify operation also requires
556 that the signingCertificate attribute is present and checks that
557 the given identifiers match the verification trust chain built
558 during the verification process.
559
561 0 The operation was completely successfully.
562
563 1 An error occurred parsing the command options.
564
565 2 One of the input files could not be read.
566
567 3 An error occurred creating the CMS file or when reading the MIME
568 message.
569
570 4 An error occurred decrypting or verifying the message.
571
572 5 The message was verified correctly but an error occurred writing
573 out the signers certificates.
574
576 openssl-smime(1) can only process the older PKCS#7 format. openssl cms
577 supports Cryptographic Message Syntax format. Use of some features
578 will result in messages which cannot be processed by applications which
579 only support the older format. These are detailed below.
580
581 The use of the -keyid option with -sign or -encrypt.
582
583 The -outform PEM option uses different headers.
584
585 The -compress option.
586
587 The -secretkey option when used with -encrypt.
588
589 The use of PSS with -sign.
590
591 The use of OAEP or non-RSA keys with -encrypt.
592
593 Additionally the -EncryptedData_create and -data_create type cannot be
594 processed by the older openssl-smime(1) command.
595
597 Create a cleartext signed message:
598
599 openssl cms -sign -in message.txt -text -out mail.msg \
600 -signer mycert.pem
601
602 Create an opaque signed message
603
604 openssl cms -sign -in message.txt -text -out mail.msg -nodetach \
605 -signer mycert.pem
606
607 Create a signed message, include some additional certificates and read
608 the private key from another file:
609
610 openssl cms -sign -in in.txt -text -out mail.msg \
611 -signer mycert.pem -inkey mykey.pem -certfile mycerts.pem
612
613 Create a signed message with two signers, use key identifier:
614
615 openssl cms -sign -in message.txt -text -out mail.msg \
616 -signer mycert.pem -signer othercert.pem -keyid
617
618 Send a signed message under Unix directly to sendmail, including
619 headers:
620
621 openssl cms -sign -in in.txt -text -signer mycert.pem \
622 -from steve@openssl.org -to someone@somewhere \
623 -subject "Signed message" | sendmail someone@somewhere
624
625 Verify a message and extract the signer's certificate if successful:
626
627 openssl cms -verify -in mail.msg -signer user.pem -out signedtext.txt
628
629 Send encrypted mail using triple DES:
630
631 openssl cms -encrypt -in in.txt -from steve@openssl.org \
632 -to someone@somewhere -subject "Encrypted message" \
633 -des3 user.pem -out mail.msg
634
635 Sign and encrypt mail:
636
637 openssl cms -sign -in ml.txt -signer my.pem -text \
638 | openssl cms -encrypt -out mail.msg \
639 -from steve@openssl.org -to someone@somewhere \
640 -subject "Signed and Encrypted message" -des3 user.pem
641
642 Note: the encryption command does not include the -text option because
643 the message being encrypted already has MIME headers.
644
645 Decrypt a message:
646
647 openssl cms -decrypt -in mail.msg -recip mycert.pem -inkey key.pem
648
649 The output from Netscape form signing is a PKCS#7 structure with the
650 detached signature format. You can use this program to verify the
651 signature by line wrapping the base64 encoded structure and surrounding
652 it with:
653
654 -----BEGIN PKCS7-----
655 -----END PKCS7-----
656
657 and using the command,
658
659 openssl cms -verify -inform PEM -in signature.pem -content content.txt
660
661 alternatively you can base64 decode the signature and use
662
663 openssl cms -verify -inform DER -in signature.der -content content.txt
664
665 Create an encrypted message using 128 bit Camellia:
666
667 openssl cms -encrypt -in plain.txt -camellia128 -out mail.msg cert.pem
668
669 Add a signer to an existing message:
670
671 openssl cms -resign -in mail.msg -signer newsign.pem -out mail2.msg
672
673 Sign a message using RSA-PSS:
674
675 openssl cms -sign -in message.txt -text -out mail.msg \
676 -signer mycert.pem -keyopt rsa_padding_mode:pss
677
678 Create an encrypted message using RSA-OAEP:
679
680 openssl cms -encrypt -in plain.txt -out mail.msg \
681 -recip cert.pem -keyopt rsa_padding_mode:oaep
682
683 Use SHA256 KDF with an ECDH certificate:
684
685 openssl cms -encrypt -in plain.txt -out mail.msg \
686 -recip ecdhcert.pem -keyopt ecdh_kdf_md:sha256
687
688 Print CMS signed binary data in human-readable form:
689
690 openssl cms -in signed.cms -binary -inform DER -cmsout -print
691
693 The MIME parser isn't very clever: it seems to handle most messages
694 that I've thrown at it but it may choke on others.
695
696 The code currently will only write out the signer's certificate to a
697 file: if the signer has a separate encryption certificate this must be
698 manually extracted. There should be some heuristic that determines the
699 correct encryption certificate.
700
701 Ideally a database should be maintained of a certificates for each
702 email address.
703
704 The code doesn't currently take note of the permitted symmetric
705 encryption algorithms as supplied in the SMIMECapabilities signed
706 attribute. this means the user has to manually include the correct
707 encryption algorithm. It should store the list of permitted ciphers in
708 a database and only use those.
709
710 No revocation checking is done on the signer's certificate.
711
713 ossl_store-file(7)
714
716 The use of multiple -signer options and the -resign command were first
717 added in OpenSSL 1.0.0.
718
719 The -keyopt option was added in OpenSSL 1.0.2.
720
721 Support for RSA-OAEP and RSA-PSS was added in OpenSSL 1.0.2.
722
723 The use of non-RSA keys with -encrypt and -decrypt was added in OpenSSL
724 1.0.2.
725
726 The -no_alt_chains option was added in OpenSSL 1.0.2b.
727
728 The -nameopt option was added in OpenSSL 3.0.0.
729
730 The -engine option was deprecated in OpenSSL 3.0.
731
733 Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved.
734
735 Licensed under the Apache License 2.0 (the "License"). You may not use
736 this file except in compliance with the License. You can obtain a copy
737 in the file LICENSE in the source distribution or at
738 <https://www.openssl.org/source/license.html>.
739
740
741
7423.1.1 2023-08-31 OPENSSL-CMS(1ossl)