1OPENSSL-CMS(1ossl)                  OpenSSL                 OPENSSL-CMS(1ossl)
2
3
4

NAME

6       openssl-cms - CMS command
7

SYNOPSIS

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

DESCRIPTION

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

OPTIONS

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

NOTES

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

CADES BASIC ELECTRONIC SIGNATURE (CADES-BES)

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

EXIT CODES

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

COMPATIBILITY WITH PKCS#7 FORMAT

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

EXAMPLES

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

BUGS

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

SEE ALSO

713       ossl_store-file(7)
714

HISTORY

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)
Impressum