Lines Matching +full:3 +full:- +full:4
18 .\" Set up some character translations and predefined strings. \*(-- will
24 .tr \(*W-
27 . ds -- \(*W-
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
37 . ds -- \|\(em\|
71 .\" Fear. Run. Save yourself. No user-serviceable parts.
76 . ds #F .3m
81 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
97 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
98 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
99 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
100 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
101 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
102 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
104 . \" troff and (daisy-wheel) nroff accents
123 . ds d- d\h'-1'\(ga
124 . ds D- D\h'-1'\(hy
134 .TH MIGRATION_GUIDE 7ossl "2023-09-19" "3.0.11" "OpenSSL"
140 migration_guide \- OpenSSL migration guide
165 OpenSSL 3.0 such as the availability of the \s-1FIPS\s0 module.
171 licenses <https://www.openssl.org/source/license-openssl-ssleay.txt>
173 Apache License v2 <https://www.openssl.org/source/apache-license-2.0.txt>.
175 \fIProviders and \s-1FIPS\s0 support\fR
188 One of the standard providers available is the \s-1FIPS\s0 provider. This makes
189 available \s-1FIPS\s0 validated cryptographic algorithms.
190 The \s-1FIPS\s0 provider is disabled by default and needs to be enabled explicitly
191 at configuration time using the \f(CW\*(C`enable\-fips\*(C'\fR option. If it is enabled,
192 the \s-1FIPS\s0 provider gets built and installed in addition to the other standard
195 special purpose of installing only the \s-1FIPS\s0 provider into an existing
199 If the application code uses any digest or cipher algorithm via the \s-1EVP\s0 interface,
200 the application should verify the result of the \fBEVP_EncryptInit\fR\|(3),
201 \&\fBEVP_EncryptInit_ex\fR\|(3), and \fBEVP_DigestInit\fR\|(3) functions. In case when
206 See also \*(L"Completing the installation of the \s-1FIPS\s0 Module\*(R" and
207 \&\*(L"Using the \s-1FIPS\s0 Module in applications\*(R".
216 For example, the \s-1EVP\s0 APIs provide the functions \fBEVP_EncryptInit_ex\fR\|(3),
217 \&\fBEVP_EncryptUpdate\fR\|(3) and \fBEVP_EncryptFinal\fR\|(3) to perform symmetric
218 encryption. Those functions can be used with the algorithms \s-1AES, CHACHA, 3DES\s0 etc.
219 On the other hand, to do \s-1AES\s0 encryption using the low level APIs you would have
220 to call \s-1AES\s0 specific functions such as \fBAES_set_encrypt_key\fR\|(3),
221 \&\fBAES_encrypt\fR\|(3), and so on. The functions for 3DES are different.
235 Some cryptographic algorithms such as \fB\s-1MD2\s0\fR and \fB\s-1DES\s0\fR that were available via
236 the \s-1EVP\s0 APIs are now considered legacy and their use is strongly discouraged.
237 These legacy \s-1EVP\s0 algorithms are still available in OpenSSL 3.0 but not by
240 See \fBOSSL_PROVIDER\-legacy\fR\|(7) for a complete list of algorithms.
241 Applications using the \s-1EVP\s0 APIs to access these algorithms should instead use
247 \fIEngines and \*(L"\s-1METHOD\*(R"\s0 APIs\fR
251 support engines, including the \s-1ENGINE API\s0 and any function that creates or
252 modifies custom \*(L"\s-1METHODS\*(R"\s0 (for example \fBEVP_MD_meth_new\fR\|(3),
253 \&\fBEVP_CIPHER_meth_new\fR\|(3), \fBEVP_PKEY_meth_new\fR\|(3), \fBRSA_meth_new\fR\|(3),
254 \&\fBEC_KEY_METHOD_new\fR\|(3), etc.). These functions are being deprecated in
258 \&\s-1FIPS\s0 module, as detailed below. Authors and maintainers of external engines are
260 using the new Provider \s-1API\s0 and avoiding deprecated methods.
265 If openssl is not built without engine support or deprecated \s-1API\s0 support, engines
270 Engine-backed keys can be loaded via custom \fB\s-1OSSL_STORE\s0\fR implementation.
271 In this case the \fB\s-1EVP_PKEY\s0\fR objects created via \fBENGINE_load_private_key\fR\|(3)
275 To prefer the provider-based hardware offload, you can specify the default
284 \&\s-1MAJOR.MINOR.PATCH\s0
289 change in the second (\s-1MINOR\s0) number indicates that new features may have been
290 added. OpenSSL versions with the same major number are \s-1API\s0 and \s-1ABI\s0 compatible.
291 If the major number changes then \s-1API\s0 and \s-1ABI\s0 compatibility is not guaranteed.
293 For more information, see \fBOpenSSL_version\fR\|(3).
298 Certificate Management Protocol (\s-1CMP, RFC 4210\s0)
301 This also covers \s-1CRMF\s0 (\s-1RFC 4211\s0) and \s-1HTTP\s0 transfer (\s-1RFC 6712\s0)
302 See \fBopenssl\-cmp\fR\|(1) and \fBOSSL_CMP_exec_certreq\fR\|(3) as starting points.
304 \s-1HTTP\s0(S) client
307 A proper \s-1HTTP\s0(S) client that supports \s-1GET\s0 and \s-1POST,\s0 redirection, plain and
308 \&\s-1ASN\s0.1\-encoded contents, proxies, and timeouts.
310 Key Derivation Function \s-1API\s0 (\s-1EVP_KDF\s0)
313 This simplifies the process of adding new \s-1KDF\s0 and \s-1PRF\s0 implementations.
315 Previously \s-1KDF\s0 algorithms had been shoe-horned into using the \s-1EVP_PKEY\s0 object
317 Existing applications that use \s-1KDF\s0 algorithms using \s-1EVP_PKEY\s0
318 (scrypt, \s-1TLS1 PRF\s0 and \s-1HKDF\s0) may be slower as they use an \s-1EVP_KDF\s0 bridge
320 All new applications should use the new \s-1\fBEVP_KDF\s0\fR\|(3) interface.
321 See also \*(L"Key Derivation Function (\s-1KDF\s0)\*(R" in \fBOSSL_PROVIDER\-default\fR\|(7) and
322 \&\*(L"Key Derivation Function (\s-1KDF\s0)\*(R" in \s-1\fBOSSL_PROVIDER\-FIPS\s0\fR\|(7).
324 Message Authentication Code \s-1API\s0 (\s-1EVP_MAC\s0)
327 This simplifies the process of adding \s-1MAC\s0 implementations.
329 This includes a generic \s-1EVP_PKEY\s0 to \s-1EVP_MAC\s0 bridge, to facilitate the continued
331 \&\fBEVP_DigestSign\fR\|(3) and \fBEVP_DigestVerify\fR\|(3).
333 All new applications should use the new \s-1\fBEVP_MAC\s0\fR\|(3) interface.
334 See also \*(L"Message Authentication Code (\s-1MAC\s0)\*(R" in \fBOSSL_PROVIDER\-default\fR\|(7)
335 and \*(L"Message Authentication Code (\s-1MAC\s0)\*(R" in \s-1\fBOSSL_PROVIDER\-FIPS\s0\fR\|(7).
347 Support for Linux Kernel \s-1TLS\s0
350 In order to use \s-1KTLS,\s0 support for it must be compiled in using the
351 \&\f(CW\*(C`enable\-ktls\*(C'\fR configuration option. It must also be enabled at run time using
352 the \fB\s-1SSL_OP_ENABLE_KTLS\s0\fR option.
356 .IP "\(bu" 4
357 \&\s-1KDF\s0 algorithms \*(L"\s-1SINGLE STEP\*(R"\s0 and \*(L"\s-1SSH\*(R"\s0
359 See \s-1\fBEVP_KDF\-SS\s0\fR\|(7) and \s-1\fBEVP_KDF\-SSHKDF\s0\fR\|(7)
360 .IP "\(bu" 4
361 \&\s-1MAC\s0 Algorithms \*(L"\s-1GMAC\*(R"\s0 and \*(L"\s-1KMAC\*(R"\s0
363 See \s-1\fBEVP_MAC\-GMAC\s0\fR\|(7) and \s-1\fBEVP_MAC\-KMAC\s0\fR\|(7).
364 .IP "\(bu" 4
365 \&\s-1KEM\s0 Algorithm \*(L"\s-1RSASVE\*(R"\s0
367 See \s-1\fBEVP_KEM\-RSA\s0\fR\|(7).
368 .IP "\(bu" 4
369 Cipher Algorithm \*(L"AES-SIV\*(R"
371 See \*(L"\s-1SIV\s0 Mode\*(R" in \fBEVP_EncryptInit\fR\|(3).
372 .IP "\(bu" 4
373 \&\s-1AES\s0 Key Wrap inverse ciphers supported by \s-1EVP\s0 layer.
375 The inverse ciphers use \s-1AES\s0 decryption for wrapping, and \s-1AES\s0 encryption for
376 unwrapping. The algorithms are: \*(L"\s-1AES\-128\-WRAP\-INV\*(R", \*(L"AES\-192\-WRAP\-INV\*(R",
377 \&\*(L"AES\-256\-WRAP\-INV\*(R", \*(L"AES\-128\-WRAP\-PAD\-INV\*(R", \*(L"AES\-192\-WRAP\-PAD\-INV\…
378 \&\*(L"\s-1AES\-256\-WRAP\-PAD\-INV\*(R".\s0
379 .IP "\(bu" 4
380 \&\s-1CTS\s0 ciphers added to \s-1EVP\s0 layer.
382 The algorithms are \*(L"\s-1AES\-128\-CBC\-CTS\*(R", \*(L"AES\-192\-CBC\-CTS\*(R", \*(L"AES\-256\-C…
383 \&\*(L"CAMELLIA\-128\-CBC\-CTS\*(R", \*(L"CAMELLIA\-192\-CBC\-CTS\*(R"\s0 and \*(L"\s-1CAMELLIA\-25…
384 CS1, CS2\s0 and \s-1CS3\s0 variants are supported.
386 \s-1CMS\s0 and PKCS#7 updates
388 .IP "\(bu" 4
389 Added CAdES-BES signature verification support.
390 .IP "\(bu" 4
391 Added CAdES-BES signature scheme and attributes support (\s-1RFC 5126\s0) to \s-1CMS API.\s0
392 .IP "\(bu" 4
393 Added AuthEnvelopedData content type structure (\s-1RFC 5083\s0) using \s-1AES_GCM\s0
395 This uses the AES-GCM parameter (\s-1RFC 5084\s0) for the Cryptographic Message Syntax.
397 is both authenticated and encrypted using \s-1AES GCM\s0 mode.
398 .IP "\(bu" 4
399 \&\fBPKCS7_get_octet_string\fR\|(3) and \fBPKCS7_type_is_other\fR\|(3) were made public.
401 PKCS#12 \s-1API\s0 updates
405 were changed to more modern \s-1PBKDF2\s0 and \s-1AES\s0 based algorithms. The default
406 \&\s-1MAC\s0 iteration count was changed to \s-1PKCS12_DEFAULT_ITER\s0 to make it equal
407 with the password-based encryption iteration count. The default digest
408 algorithm for the \s-1MAC\s0 computation was changed to \s-1SHA\-256.\s0 The pkcs12
409 application now supports \-legacy option that restores the previous
412 Added enhanced PKCS#12 APIs which accept a library context \fB\s-1OSSL_LIB_CTX\s0\fR
416 \&\fBPKCS12_add_key_ex\fR\|(3), \fBPKCS12_add_safe_ex\fR\|(3), \fBPKCS12_add_safes_ex\fR\|(3),
417 \&\fBPKCS12_create_ex\fR\|(3), \fBPKCS12_decrypt_skey_ex\fR\|(3), \fBPKCS12_init_ex\fR\|(3),
418 \&\fBPKCS12_item_decrypt_d2i_ex\fR\|(3), \fBPKCS12_item_i2d_encrypt_ex\fR\|(3),
419 \&\fBPKCS12_key_gen_asc_ex\fR\|(3), \fBPKCS12_key_gen_uni_ex\fR\|(3), \fBPKCS12_key_gen_utf8_ex\fR\…
420 \&\fBPKCS12_pack_p7encdata_ex\fR\|(3), \fBPKCS12_pbe_crypt_ex\fR\|(3), \fBPKCS12_PBE_keyivgen_ex\fR…
421 \&\fBPKCS12_SAFEBAG_create_pkcs8_encrypt_ex\fR\|(3), \fBPKCS5_pbe2_set_iv_ex\fR\|(3),
422 \&\fBPKCS5_pbe_set0_algor_ex\fR\|(3), \fBPKCS5_pbe_set_ex\fR\|(3), \fBPKCS5_pbkdf2_set_ex\fR\|(3),
423 \&\fBPKCS5_v2_PBE_keyivgen_ex\fR\|(3), \fBPKCS5_v2_scrypt_keyivgen_ex\fR\|(3),
424 \&\fBPKCS8_decrypt_ex\fR\|(3), \fBPKCS8_encrypt_ex\fR\|(3), \fBPKCS8_set0_pbe_ex\fR\|(3).
429 \&\fBEVP_PBE_CipherInit_ex\fR\|(3), \fBEVP_PBE_find_ex\fR\|(3) and \fBEVP_PBE_scrypt_ex\fR\|(3).
431 PKCS#12 \s-1KDF\s0 versus \s-1FIPS\s0
434 Unlike in 1.x.y, the \s-1PKCS12KDF\s0 algorithm used when a PKCS#12 structure
435 is created with a \s-1MAC\s0 that does not work with the \s-1FIPS\s0 provider as the \s-1PKCS12KDF\…
436 is not a \s-1FIPS\s0 approvable mechanism.
438 See \s-1\fBEVP_KDF\-PKCS12KDF\s0\fR\|(7), \fBPKCS12_create\fR\|(3), \fBopenssl\-pkcs12\fR\|(1),
439 \&\s-1\fBOSSL_PROVIDER\-FIPS\s0\fR\|(7).
445 supported by the \s-1OS,\s0 otherwise CriticalSection continues to be used.
447 Trace \s-1API\s0
450 A new generic trace \s-1API\s0 has been added which provides support for enabling
453 configured with the \f(CW\*(C`enable\-trace\*(C'\fR option.
455 If the tracing \s-1API\s0 is enabled, the application can activate trace output by
457 categories. See \fBOSSL_trace_enabled\fR\|(3).
462 \&\fBEVP_PKEY_public_check\fR\|(3) and \fBEVP_PKEY_param_check\fR\|(3) now work for
463 more key types. This includes \s-1RSA, DSA, ED25519, X25519, ED448\s0 and X448.
464 Previously (in 1.1.1) they would return \-2. For key types that do not have
465 parameters then \fBEVP_PKEY_param_check\fR\|(3) will always return 1.
475 \s-1STACK\s0 and \s-1HASH\s0 macros have been cleaned up
478 The type-safe wrappers are declared everywhere and implemented once.
479 See \s-1\fBDEFINE_STACK_OF\s0\fR\|(3) and \s-1\fBDECLARE_LHASH_OF\s0\fR\|(3).
481 The \s-1RAND_DRBG\s0 subsystem has been removed
484 The new \s-1\fBEVP_RAND\s0\fR\|(3) is a partial replacement: the \s-1DRBG\s0 callback framework is
485 absent. The \s-1RAND_DRBG API\s0 did not fit well into the new provider concept as
486 implemented by \s-1EVP_RAND\s0 and \s-1EVP_RAND_CTX.\s0
493 \&\fBEVP_default_properties_is_fips_enabled\fR\|(3) and
494 \&\fBEVP_default_properties_enable_fips\fR\|(3).
499 The Miller-Rabin test now uses 64 rounds, which is used for all prime generation,
500 including \s-1RSA\s0 key generation. This affects the time for larger keys sizes.
502 The default key generation method for the regular 2\-prime \s-1RSA\s0 keys was changed
503 to the \s-1FIPS186\-4 B.3.6\s0 method (Generation of Probable Primes with Conditions
507 Change \s-1PBKDF2\s0 to conform to \s-1SP800\-132\s0 instead of the older \s-1PKCS5 RFC2898\s0
508 .IX Subsection "Change PBKDF2 to conform to SP800-132 instead of the older PKCS5 RFC2898"
513 default provider, but are enabled by default in the \s-1FIPS\s0 provider.
515 To enable or disable the checks see \fB\s-1OSSL_KDF_PARAM_PKCS5\s0\fR in
516 \&\s-1\fBEVP_KDF\-PBKDF2\s0\fR\|(7). The parameter can be set using \fBEVP_KDF_derive\fR\|(3).
518 Enforce a minimum \s-1DH\s0 modulus size of 512 bits
523 \s-1SM2\s0 key changes
526 \&\s-1EC\s0 EVP_PKEYs with the \s-1SM2\s0 curve have been reworked to automatically become
527 \&\s-1EVP_PKEY_SM2\s0 rather than \s-1EVP_PKEY_EC.\s0
530 call \f(CW\*(C`EVP_PKEY_set_alias_type(pkey, EVP_PKEY_SM2)\*(C'\fR to get \s-1SM2\s0 computations.
533 to generate \s-1EVP_PKEY_SM2\s0 parameters and keys. Applications must now generate
534 \&\s-1SM2\s0 keys directly and must not create an \s-1EVP_PKEY_EC\s0 key first. It is no longer
535 possible to import an \s-1SM2\s0 key with domain parameters other than the \s-1SM2\s0 elliptic
538 Validation of \s-1SM2\s0 keys has been separated from the validation of regular \s-1EC\s0
539 keys, allowing to improve the \s-1SM2\s0 validation process to reject loaded private
540 keys that are not conforming to the \s-1SM2 ISO\s0 standard.
541 In particular, a private scalar \fIk\fR outside the range \fI1 <= k < n\-1\fR is
547 This function made a \fB\s-1EVP_PKEY\s0\fR object mutable after it had been set up. In
554 Functions such as \fBEVP_PKEY_get0_RSA\fR\|(3) behave slightly differently in
555 OpenSSL 3.0. Previously they returned a pointer to the low-level key used
558 where the \s-1EVP_PKEY\s0 was constructed using this key in the first place, for
559 example using a function or macro such as \fBEVP_PKEY_assign_RSA\fR\|(3),
560 \&\fBEVP_PKEY_set1_RSA\fR\|(3), etc.
561 Where the \s-1EVP_PKEY\s0 holds a provider managed key, then these functions now return
568 treated as read-only. To emphasise this the value returned from
569 \&\fBEVP_PKEY_get0_RSA\fR\|(3), \fBEVP_PKEY_get0_DSA\fR\|(3), \fBEVP_PKEY_get0_EC_KEY\fR\|(3) and
570 \&\fBEVP_PKEY_get0_DH\fR\|(3) have been made const. This may break some existing code.
574 The \fBEVP_PKEY_get1_RSA\fR\|(3), \fBEVP_PKEY_get1_DSA\fR\|(3), \fBEVP_PKEY_get1_EC_KEY\fR\|(3)
575 and \fBEVP_PKEY_get1_DH\fR\|(3) functions continue to return a non-const pointer to
576 enable them to be \*(L"freed\*(R". However they should also be treated as read-only.
581 This may mean result in an error in \fBEVP_PKEY_derive_set_peer\fR\|(3) rather than
582 during \fBEVP_PKEY_derive\fR\|(3).
588 The output from numerous \*(L"printing\*(R" functions such as \fBX509_signature_print\fR\|(3),
589 \&\fBX509_print_ex\fR\|(3), \fBX509_CRL_print_ex\fR\|(3), and other similar functions has been
591 observed in 1.1.1 and 3.0. This also applies to the \fB\-text\fR output from the
602 One significant change is that controls which used to return \-2 for
603 invalid inputs, now return \-1 indicating a generic error condition instead.
605 \s-1DH\s0 and \s-1DHX\s0 key types have different settable parameters
609 result in errors. See \s-1\fBEVP_PKEY\-DH\s0\fR\|(7) for further details. This affects the
610 behaviour of \fBopenssl\-genpkey\fR\|(1) for \s-1DH\s0 parameter generation.
615 If using a cipher from a provider the \fB\s-1EVP_CIPH_FLAG_LENGTH_BITS\s0\fR flag can only
617 See \*(L"\s-1FLAGS\*(R"\s0 in \fBEVP_EncryptInit\fR\|(3) for more information.
629 but later keygen operations with the \s-1EVP_PKEY_CTX\s0 will fail.
635 reason the \s-1\fBERR_GET_FUNC\s0()\fR macro was removed. Applications must resolve
638 ChaCha20\-Poly1305 cipher does not allow a truncated \s-1IV\s0 length to be used
639 .IX Subsection "ChaCha20-Poly1305 cipher does not allow a truncated IV length to be used"
641 In OpenSSL 3.0 setting the \s-1IV\s0 length to any value other than 12 will result in an
644 using EVP_CIPHER_CTX_ctrl(ctx, \s-1EVP_CRTL_AEAD_SET_IVLEN,\s0 ivlen, \s-1NULL\s0). This resulted
645 in an \s-1IV\s0 that had leading zero padding.
648 Please refer to the \s-1INSTALL\s0.md file in the top of the distribution for
650 various platform specific \s-1NOTES\s0 files for your specific platform.
657 application. If this happens you have 3 options:
658 .IP "1." 4
660 .IP "2." 4
662 .IP "3." 4
672 Password-protected keys may deserve special attention. If only some errors
682 .IP "1." 4
685 Check the file \s-1INSTALL\s0.md in the top of the installation for instructions on how
686 to build and install OpenSSL for your platform. Also read the various \s-1NOTES\s0
688 .IP "2." 4
717 .IP "3." 4
718 Support for TLSv1.3 has been added.
720 This has a number of implications for \s-1SSL/TLS\s0 applications. See the
721 \&\s-1TLS1.3\s0 page <https://wiki.openssl.org/index.php/TLS1.3> for further details.
727 \fIUpgrading from the OpenSSL 2.0 \s-1FIPS\s0 Object Module\fR
730 The OpenSSL 2.0 \s-1FIPS\s0 Object Module was a separate download that had to be built
732 In OpenSSL 3.0 the \s-1FIPS\s0 support is fully integrated into the mainline version of
734 \&\*(L"Completing the installation of the \s-1FIPS\s0 Module\*(R".
738 See \fBfips_module\fR\|(7) and \s-1\fBOSSL_PROVIDER\-FIPS\s0\fR\|(7) for details.
739 .SS "Completing the installation of the \s-1FIPS\s0 Module"
741 The \s-1FIPS\s0 Module will be built and installed automatically if \s-1FIPS\s0 support has
743 README-FIPS <https://github.com/openssl/openssl/blob/master/README-FIPS.md> file.
760 If the user creates an \fB\s-1OSSL_LIB_CTX\s0\fR via \fBOSSL_LIB_CTX_new\fR\|(3) then many
764 Using a Library Context \- Old functions that should be changed
765 .IX Subsection "Using a Library Context - Old functions that should be changed"
768 \&\fBconst \s-1EVP_MD\s0 *\fR such as \fBEVP_sha256()\fR should be replaced with a call to
769 \&\fBEVP_MD_fetch\fR\|(3). See \*(L"\s-1ALGORITHM FETCHING\*(R"\s0 in \fBcrypto\fR\|(7).
772 \&\fBconst \s-1EVP_CIPHER\s0 *\fR such as \fBEVP_aes_128_cbc()\fR should be replaced vith a call to
773 \&\fBEVP_CIPHER_fetch\fR\|(3). See \*(L"\s-1ALGORITHM FETCHING\*(R"\s0 in \fBcrypto\fR\|(7).
776 context such as \fBd2i_X509\fR\|(3), \fBd2i_X509_CRL\fR\|(3), \fBd2i_X509_REQ\fR\|(3) and
777 \&\fBd2i_X509_PUBKEY\fR\|(3). If \s-1NULL\s0 is passed instead then the created object will be
778 set up with the default library context. Use \fBX509_new_ex\fR\|(3),
779 \&\fBX509_CRL_new_ex\fR\|(3), \fBX509_REQ_new_ex\fR\|(3) and \fBX509_PUBKEY_new_ex\fR\|(3) if a
782 All functions listed below with a \fI\s-1NAME\s0\fR have a replacement function \fINAME_ex\fR
783 that takes \fB\s-1OSSL_LIB_CTX\s0\fR as an additional argument. Functions that have other
785 .IP "\(bu" 4
786 \&\fBASN1_item_new\fR\|(3), \fBASN1_item_d2i\fR\|(3), \fBASN1_item_d2i_fp\fR\|(3),
787 \&\fBASN1_item_d2i_bio\fR\|(3), \fBASN1_item_sign\fR\|(3) and \fBASN1_item_verify\fR\|(3)
788 .IP "\(bu" 4
789 \&\fBBIO_new\fR\|(3)
790 .IP "\(bu" 4
792 .IP "\(bu" 4
793 \&\fBBN_CTX_new\fR\|(3) and \fBBN_CTX_secure_new\fR\|(3)
794 .IP "\(bu" 4
795 \&\fBCMS_AuthEnvelopedData_create\fR\|(3), \fBCMS_ContentInfo_new\fR\|(3), \fBCMS_data_create\fR\|(…
796 \&\fBCMS_digest_create\fR\|(3), \fBCMS_EncryptedData_encrypt\fR\|(3), \fBCMS_encrypt\fR\|(3),
797 \&\fBCMS_EnvelopedData_create\fR\|(3), \fBCMS_ReceiptRequest_create0\fR\|(3) and \fBCMS_sign\fR\|(3)
798 .IP "\(bu" 4
799 \&\fBCONF_modules_load_file\fR\|(3)
800 .IP "\(bu" 4
801 \&\fBCTLOG_new\fR\|(3), \fBCTLOG_new_from_base64\fR\|(3) and \fBCTLOG_STORE_new\fR\|(3)
802 .IP "\(bu" 4
803 \&\fBCT_POLICY_EVAL_CTX_new\fR\|(3)
804 .IP "\(bu" 4
805 \&\fBd2i_AutoPrivateKey\fR\|(3), \fBd2i_PrivateKey\fR\|(3) and \fBd2i_PUBKEY\fR\|(3)
806 .IP "\(bu" 4
807 \&\fBd2i_PrivateKey_bio\fR\|(3) and \fBd2i_PrivateKey_fp\fR\|(3)
809 Use \fBd2i_PrivateKey_ex_bio\fR\|(3) and \fBd2i_PrivateKey_ex_fp\fR\|(3)
810 .IP "\(bu" 4
811 \&\fBEC_GROUP_new\fR\|(3)
813 Use \fBEC_GROUP_new_by_curve_name_ex\fR\|(3) or \fBEC_GROUP_new_from_params\fR\|(3).
814 .IP "\(bu" 4
815 \&\fBEVP_DigestSignInit\fR\|(3) and \fBEVP_DigestVerifyInit\fR\|(3)
816 .IP "\(bu" 4
817 \&\fBEVP_PBE_CipherInit\fR\|(3), \fBEVP_PBE_find\fR\|(3) and \fBEVP_PBE_scrypt\fR\|(3)
818 .IP "\(bu" 4
819 \&\fBPKCS5_PBE_keyivgen\fR\|(3)
820 .IP "\(bu" 4
821 \&\s-1\fBEVP_PKCS82PKEY\s0\fR\|(3)
822 .IP "\(bu" 4
823 \&\fBEVP_PKEY_CTX_new_id\fR\|(3)
825 Use \fBEVP_PKEY_CTX_new_from_name\fR\|(3)
826 .IP "\(bu" 4
827 \&\fBEVP_PKEY_derive_set_peer\fR\|(3), \fBEVP_PKEY_new_raw_private_key\fR\|(3)
828 and \fBEVP_PKEY_new_raw_public_key\fR\|(3)
829 .IP "\(bu" 4
830 \&\fBEVP_SignFinal\fR\|(3) and \fBEVP_VerifyFinal\fR\|(3)
831 .IP "\(bu" 4
832 \&\fBNCONF_new\fR\|(3)
833 .IP "\(bu" 4
834 \&\fBOCSP_RESPID_match\fR\|(3) and \fBOCSP_RESPID_set_by_key\fR\|(3)
835 .IP "\(bu" 4
836 \&\fBOPENSSL_thread_stop\fR\|(3)
837 .IP "\(bu" 4
838 \&\fBOSSL_STORE_open\fR\|(3)
839 .IP "\(bu" 4
840 \&\fBPEM_read_bio_Parameters\fR\|(3), \fBPEM_read_bio_PrivateKey\fR\|(3), \fBPEM_read_bio_PUBKEY\fR…
841 \&\fBPEM_read_PrivateKey\fR\|(3) and \fBPEM_read_PUBKEY\fR\|(3)
842 .IP "\(bu" 4
843 \&\fBPEM_write_bio_PrivateKey\fR\|(3), \fBPEM_write_bio_PUBKEY\fR\|(3), \fBPEM_write_PrivateKey\fR\…
844 and \fBPEM_write_PUBKEY\fR\|(3)
845 .IP "\(bu" 4
846 \&\fBPEM_X509_INFO_read_bio\fR\|(3) and \fBPEM_X509_INFO_read\fR\|(3)
847 .IP "\(bu" 4
848 \&\fBPKCS12_add_key\fR\|(3), \fBPKCS12_add_safe\fR\|(3), \fBPKCS12_add_safes\fR\|(3),
849 \&\fBPKCS12_create\fR\|(3), \fBPKCS12_decrypt_skey\fR\|(3), \fBPKCS12_init\fR\|(3), \fBPKCS12_item_…
850 \&\fBPKCS12_item_i2d_encrypt\fR\|(3), \fBPKCS12_key_gen_asc\fR\|(3), \fBPKCS12_key_gen_uni\fR\|(3),
851 \&\fBPKCS12_key_gen_utf8\fR\|(3), \fBPKCS12_pack_p7encdata\fR\|(3), \fBPKCS12_pbe_crypt\fR\|(3),
852 \&\fBPKCS12_PBE_keyivgen\fR\|(3), \fBPKCS12_SAFEBAG_create_pkcs8_encrypt\fR\|(3)
853 .IP "\(bu" 4
854 \&\fBPKCS5_pbe_set0_algor\fR\|(3), \fBPKCS5_pbe_set\fR\|(3), \fBPKCS5_pbe2_set_iv\fR\|(3),
855 \&\fBPKCS5_pbkdf2_set\fR\|(3) and \fBPKCS5_v2_scrypt_keyivgen\fR\|(3)
856 .IP "\(bu" 4
857 \&\fBPKCS7_encrypt\fR\|(3), \fBPKCS7_new\fR\|(3) and \fBPKCS7_sign\fR\|(3)
858 .IP "\(bu" 4
859 \&\fBPKCS8_decrypt\fR\|(3), \fBPKCS8_encrypt\fR\|(3) and \fBPKCS8_set0_pbe\fR\|(3)
860 .IP "\(bu" 4
861 \&\fBRAND_bytes\fR\|(3) and \fBRAND_priv_bytes\fR\|(3)
862 .IP "\(bu" 4
863 \&\fBSMIME_write_ASN1\fR\|(3)
864 .IP "\(bu" 4
865 \&\fBSSL_load_client_CA_file\fR\|(3)
866 .IP "\(bu" 4
867 \&\fBSSL_CTX_new\fR\|(3)
868 .IP "\(bu" 4
869 \&\fBTS_RESP_CTX_new\fR\|(3)
870 .IP "\(bu" 4
871 \&\fBX509_CRL_new\fR\|(3)
872 .IP "\(bu" 4
873 \&\fBX509_load_cert_crl_file\fR\|(3) and \fBX509_load_cert_file\fR\|(3)
874 .IP "\(bu" 4
875 \&\fBX509_LOOKUP_by_subject\fR\|(3) and \fBX509_LOOKUP_ctrl\fR\|(3)
876 .IP "\(bu" 4
877 \&\fBX509_NAME_hash\fR\|(3)
878 .IP "\(bu" 4
879 \&\fBX509_new\fR\|(3)
880 .IP "\(bu" 4
881 \&\fBX509_REQ_new\fR\|(3) and \fBX509_REQ_verify\fR\|(3)
882 .IP "\(bu" 4
883 \&\fBX509_STORE_CTX_new\fR\|(3), \fBX509_STORE_set_default_paths\fR\|(3), \fBX509_STORE_load_file\f…
884 \&\fBX509_STORE_load_locations\fR\|(3) and \fBX509_STORE_load_store\fR\|(3)
890 Passing \s-1NULL\s0 will use the default library context.
891 .IP "\(bu" 4
892 \&\fBBIO_new_from_core_bio\fR\|(3)
893 .IP "\(bu" 4
894 \&\fBEVP_ASYM_CIPHER_fetch\fR\|(3) and \fBEVP_ASYM_CIPHER_do_all_provided\fR\|(3)
895 .IP "\(bu" 4
896 \&\fBEVP_CIPHER_fetch\fR\|(3) and \fBEVP_CIPHER_do_all_provided\fR\|(3)
897 .IP "\(bu" 4
898 \&\fBEVP_default_properties_enable_fips\fR\|(3) and
899 \&\fBEVP_default_properties_is_fips_enabled\fR\|(3)
900 .IP "\(bu" 4
901 \&\fBEVP_KDF_fetch\fR\|(3) and \fBEVP_KDF_do_all_provided\fR\|(3)
902 .IP "\(bu" 4
903 \&\fBEVP_KEM_fetch\fR\|(3) and \fBEVP_KEM_do_all_provided\fR\|(3)
904 .IP "\(bu" 4
905 \&\fBEVP_KEYEXCH_fetch\fR\|(3) and \fBEVP_KEYEXCH_do_all_provided\fR\|(3)
906 .IP "\(bu" 4
907 \&\fBEVP_KEYMGMT_fetch\fR\|(3) and \fBEVP_KEYMGMT_do_all_provided\fR\|(3)
908 .IP "\(bu" 4
909 \&\fBEVP_MAC_fetch\fR\|(3) and \fBEVP_MAC_do_all_provided\fR\|(3)
910 .IP "\(bu" 4
911 \&\fBEVP_MD_fetch\fR\|(3) and \fBEVP_MD_do_all_provided\fR\|(3)
912 .IP "\(bu" 4
913 \&\fBEVP_PKEY_CTX_new_from_pkey\fR\|(3)
914 .IP "\(bu" 4
915 \&\fBEVP_PKEY_Q_keygen\fR\|(3)
916 .IP "\(bu" 4
917 \&\fBEVP_Q_mac\fR\|(3) and \fBEVP_Q_digest\fR\|(3)
918 .IP "\(bu" 4
919 \&\s-1\fBEVP_RAND\s0\fR\|(3) and \fBEVP_RAND_do_all_provided\fR\|(3)
920 .IP "\(bu" 4
921 \&\fBEVP_set_default_properties\fR\|(3)
922 .IP "\(bu" 4
923 \&\fBEVP_SIGNATURE_fetch\fR\|(3) and \fBEVP_SIGNATURE_do_all_provided\fR\|(3)
924 .IP "\(bu" 4
925 \&\fBOSSL_CMP_CTX_new\fR\|(3) and \fBOSSL_CMP_SRV_CTX_new\fR\|(3)
926 .IP "\(bu" 4
927 \&\fBOSSL_CRMF_ENCRYPTEDVALUE_get1_encCert\fR\|(3)
928 .IP "\(bu" 4
929 \&\fBOSSL_CRMF_MSG_create_popo\fR\|(3) and \fBOSSL_CRMF_MSGS_verify_popo\fR\|(3)
930 .IP "\(bu" 4
931 \&\fBOSSL_CRMF_pbm_new\fR\|(3) and \fBOSSL_CRMF_pbmp_new\fR\|(3)
932 .IP "\(bu" 4
933 \&\fBOSSL_DECODER_CTX_add_extra\fR\|(3) and \fBOSSL_DECODER_CTX_new_for_pkey\fR\|(3)
934 .IP "\(bu" 4
935 \&\fBOSSL_DECODER_fetch\fR\|(3) and \fBOSSL_DECODER_do_all_provided\fR\|(3)
936 .IP "\(bu" 4
937 \&\fBOSSL_ENCODER_CTX_add_extra\fR\|(3)
938 .IP "\(bu" 4
939 \&\fBOSSL_ENCODER_fetch\fR\|(3) and \fBOSSL_ENCODER_do_all_provided\fR\|(3)
940 .IP "\(bu" 4
941 \&\fBOSSL_LIB_CTX_free\fR\|(3), \fBOSSL_LIB_CTX_load_config\fR\|(3) and \fBOSSL_LIB_CTX_set0_defaul…
942 .IP "\(bu" 4
943 \&\fBOSSL_PROVIDER_add_builtin\fR\|(3), \fBOSSL_PROVIDER_available\fR\|(3),
944 \&\fBOSSL_PROVIDER_do_all\fR\|(3), \fBOSSL_PROVIDER_load\fR\|(3),
945 \&\fBOSSL_PROVIDER_set_default_search_path\fR\|(3) and \fBOSSL_PROVIDER_try_load\fR\|(3)
946 .IP "\(bu" 4
947 \&\fBOSSL_SELF_TEST_get_callback\fR\|(3) and \fBOSSL_SELF_TEST_set_callback\fR\|(3)
948 .IP "\(bu" 4
949 \&\fBOSSL_STORE_attach\fR\|(3)
950 .IP "\(bu" 4
951 \&\fBOSSL_STORE_LOADER_fetch\fR\|(3) and \fBOSSL_STORE_LOADER_do_all_provided\fR\|(3)
952 .IP "\(bu" 4
953 \&\fBRAND_get0_primary\fR\|(3), \fBRAND_get0_private\fR\|(3), \fBRAND_get0_public\fR\|(3),
954 \&\fBRAND_set_DRBG_type\fR\|(3) and \fBRAND_set_seed_source_type\fR\|(3)
960 See also \*(L"\s-1OPENSSL PROVIDERS\*(R"\s0 in \fBcrypto\fR\|(7).
966 \&\*(L"\s-1ALGORITHM FETCHING\*(R"\s0 in \fBcrypto\fR\|(7).
968 \fIMapping \s-1EVP\s0 controls and flags to provider \s-1\f(BIOSSL_PARAM\s0\fI\|(3) parameters\fR
971 The existing functions for controls (such as \fBEVP_CIPHER_CTX_ctrl\fR\|(3)) and
972 manipulating flags (such as \fBEVP_MD_CTX_set_flags\fR\|(3))internally use
973 \&\fB\s-1OSSL_PARAMS\s0\fR to pass information to/from provider objects.
974 See \s-1\fBOSSL_PARAM\s0\fR\|(3) for additional information related to parameters.
976 For ciphers see \*(L"\s-1CONTROLS\*(R"\s0 in \fBEVP_EncryptInit\fR\|(3), \*(L"\s-1FLAGS\*(R"\s0 in …
977 \&\*(L"\s-1PARAMETERS\*(R"\s0 in \fBEVP_EncryptInit\fR\|(3).
979 For digests see \*(L"\s-1CONTROLS\*(R"\s0 in \fBEVP_DigestInit\fR\|(3), \*(L"\s-1FLAGS\*(R"\s0 in \…
980 \&\*(L"\s-1PARAMETERS\*(R"\s0 in \fBEVP_DigestInit\fR\|(3).
990 Providers are a replacement for engines and low-level method overrides
991 .IX Subsection "Providers are a replacement for engines and low-level method overrides"
993 Any accessor that uses an \s-1ENGINE\s0 is deprecated (such as \fBEVP_PKEY_set1_engine()\fR).
1000 Deprecated i2d and d2i functions for low-level key types
1001 .IX Subsection "Deprecated i2d and d2i functions for low-level key types"
1003 Any i2d and d2i functions such as \fBd2i_DHparams()\fR that take a low-level key type
1004 have been deprecated. Applications should instead use the \s-1\fBOSSL_DECODER\s0\fR\|(3) and
1005 \&\s-1\fBOSSL_ENCODER\s0\fR\|(3) APIs to read and write files.
1006 See \*(L"Migration\*(R" in \fBd2i_RSAPrivateKey\fR\|(3) for further details.
1008 Deprecated low-level key object getters and setters
1009 .IX Subsection "Deprecated low-level key object getters and setters"
1011 Applications that set or get low-level key objects (such as \fBEVP_PKEY_set1_DH()\fR
1012 or \fBEVP_PKEY_get0()\fR) should instead use the \s-1OSSL_ENCODER\s0
1013 (See \fBOSSL_ENCODER_to_bio\fR\|(3)) or \s-1OSSL_DECODER\s0 (See \fBOSSL_DECODER_from_bio\fR\|(3))
1014 APIs, or alternatively use \fBEVP_PKEY_fromdata\fR\|(3) or \fBEVP_PKEY_todata\fR\|(3).
1016 Deprecated low-level key parameter getters
1017 .IX Subsection "Deprecated low-level key parameter getters"
1019 Functions that access low-level objects directly such as \fBRSA_get0_n\fR\|(3) are now
1020 deprecated. Applications should use one of \fBEVP_PKEY_get_bn_param\fR\|(3),
1021 \&\fBEVP_PKEY_get_int_param\fR\|(3), l<\fBEVP_PKEY_get_size_t_param\fR\|(3)>,
1022 \&\fBEVP_PKEY_get_utf8_string_param\fR\|(3), \fBEVP_PKEY_get_octet_string_param\fR\|(3) or
1023 \&\fBEVP_PKEY_get_params\fR\|(3) to access fields from an \s-1EVP_PKEY.\s0
1024 Gettable parameters are listed in \*(L"Common \s-1RSA\s0 parameters\*(R" in \s-1\fBEVP_PKEY\-RSA\s0…
1025 \&\*(L"\s-1DH\s0 parameters\*(R" in \s-1\fBEVP_PKEY\-DH\s0\fR\|(7), \*(L"\s-1DSA\s0 parameters\*(R"…
1026 \&\*(L"\s-1FFC\s0 parameters\*(R" in \s-1\fBEVP_PKEY\-FFC\s0\fR\|(7), \*(L"Common \s-1EC\s0 paramet…
1027 \&\*(L"Common X25519, X448, \s-1ED25519\s0 and \s-1ED448\s0 parameters\*(R" in \s-1\fBEVP_PKEY\-X25…
1028 Applications may also use \fBEVP_PKEY_todata\fR\|(3) to return all fields.
1030 Deprecated low-level key parameter setters
1031 .IX Subsection "Deprecated low-level key parameter setters"
1033 Functions that access low-level objects directly such as \fBRSA_set0_crt_params\fR\|(3)
1034 are now deprecated. Applications should use \fBEVP_PKEY_fromdata\fR\|(3) to create
1036 created, so if required the user may use \fBEVP_PKEY_todata\fR\|(3), \fBOSSL_PARAM_merge\fR\|(3),
1037 and \fBEVP_PKEY_fromdata\fR\|(3) to create a modified key.
1038 See \*(L"Examples\*(R" in \s-1\fBEVP_PKEY\-DH\s0\fR\|(7) for more information.
1039 See \*(L"Deprecated low-level key generation functions\*(R" for information on
1042 Deprecated low-level object creation
1043 .IX Subsection "Deprecated low-level object creation"
1045 Low-level objects were created using methods such as \fBRSA_new\fR\|(3),
1046 \&\fBRSA_up_ref\fR\|(3) and \fBRSA_free\fR\|(3). Applications should instead use the
1047 high-level \s-1EVP_PKEY\s0 APIs, e.g. \fBEVP_PKEY_new\fR\|(3), \fBEVP_PKEY_up_ref\fR\|(3) and
1048 \&\fBEVP_PKEY_free\fR\|(3).
1049 See also \fBEVP_PKEY_CTX_new_from_name\fR\|(3) and \fBEVP_PKEY_CTX_new_from_pkey\fR\|(3).
1052 See also \*(L"Deprecated low-level key generation functions\*(R",
1053 \&\*(L"Deprecated low-level key reading and writing functions\*(R" and
1054 \&\*(L"Deprecated low-level key parameter setters\*(R".
1056 Deprecated low-level encryption functions
1057 .IX Subsection "Deprecated low-level encryption functions"
1059 Low-level encryption functions such as \fBAES_encrypt\fR\|(3) and \fBAES_decrypt\fR\|(3)
1061 instead use the high level \s-1EVP\s0 APIs \fBEVP_EncryptInit_ex\fR\|(3),
1062 \&\fBEVP_EncryptUpdate\fR\|(3), and \fBEVP_EncryptFinal_ex\fR\|(3) or
1063 \&\fBEVP_DecryptInit_ex\fR\|(3), \fBEVP_DecryptUpdate\fR\|(3) and \fBEVP_DecryptFinal_ex\fR\|(3).
1065 Deprecated low-level digest functions
1066 .IX Subsection "Deprecated low-level digest functions"
1068 Use of low-level digest functions such as \fBSHA1_Init\fR\|(3) have been
1070 use the the high level \s-1EVP\s0 APIs \fBEVP_DigestInit_ex\fR\|(3), \fBEVP_DigestUpdate\fR\|(3)
1071 and \fBEVP_DigestFinal_ex\fR\|(3), or the quick one-shot \fBEVP_Q_digest\fR\|(3).
1073 Note that the functions \s-1\fBSHA1\s0\fR\|(3), \s-1\fBSHA224\s0\fR\|(3), \s-1\fBSHA256\s0\fR\|(3),…
1074 and \s-1\fBSHA512\s0\fR\|(3) have changed to macros that use \fBEVP_Q_digest\fR\|(3).
1076 Deprecated low-level signing functions
1077 .IX Subsection "Deprecated low-level signing functions"
1079 Use of low-level signing functions such as \fBDSA_sign\fR\|(3) have been
1081 \&\fBEVP_DigestSign\fR\|(3) and \fBEVP_DigestVerify\fR\|(3).
1082 See also \s-1\fBEVP_SIGNATURE\-RSA\s0\fR\|(7), \s-1\fBEVP_SIGNATURE\-DSA\s0\fR\|(7),
1083 \&\s-1\fBEVP_SIGNATURE\-ECDSA\s0\fR\|(7) and \s-1\fBEVP_SIGNATURE\-ED25519\s0\fR\|(7).
1085 Deprecated low-level \s-1MAC\s0 functions
1086 .IX Subsection "Deprecated low-level MAC functions"
1088 Low-level mac functions such as \fBCMAC_Init\fR\|(3) are deprecated.
1089 Applications should instead use the new \s-1\fBEVP_MAC\s0\fR\|(3) interface, using
1090 \&\fBEVP_MAC_CTX_new\fR\|(3), \fBEVP_MAC_CTX_free\fR\|(3), \fBEVP_MAC_init\fR\|(3),
1091 \&\fBEVP_MAC_update\fR\|(3) and \fBEVP_MAC_final\fR\|(3) or the single-shot \s-1MAC\s0 function
1092 \&\fBEVP_Q_mac\fR\|(3).
1093 See \s-1\fBEVP_MAC\s0\fR\|(3), \s-1\fBEVP_MAC\-HMAC\s0\fR\|(7), \s-1\fBEVP_MAC\-CMAC\s0\fR\|(7), \s…
1094 \&\s-1\fBEVP_MAC\-KMAC\s0\fR\|(7), \s-1\fBEVP_MAC\-BLAKE2\s0\fR\|(7), \fBEVP_MAC\-Poly1305\fR\|(7) …
1095 \&\fBEVP_MAC\-Siphash\fR\|(7) for additional information.
1097 Note that the one-shot method \s-1\fBHMAC\s0()\fR is still available for compatibility purposes,
1098 but this can also be replaced by using \s-1EVP_Q_MAC\s0 if a library context is required.
1100 Deprecated low-level validation functions
1101 .IX Subsection "Deprecated low-level validation functions"
1103 Low-level validation functions such as \fBDH_check\fR\|(3) have been informally
1104 discouraged from use for a long time. Applications should instead use the high-level
1105 \&\s-1EVP_PKEY\s0 APIs such as \fBEVP_PKEY_check\fR\|(3), \fBEVP_PKEY_param_check\fR\|(3),
1106 \&\fBEVP_PKEY_param_check_quick\fR\|(3), \fBEVP_PKEY_public_check\fR\|(3),
1107 \&\fBEVP_PKEY_public_check_quick\fR\|(3), \fBEVP_PKEY_private_check\fR\|(3),
1108 and \fBEVP_PKEY_pairwise_check\fR\|(3).
1110 Deprecated low-level key exchange functions
1111 .IX Subsection "Deprecated low-level key exchange functions"
1113 Many low-level functions have been informally discouraged from use for a long
1114 time. Applications should instead use \fBEVP_PKEY_derive\fR\|(3).
1115 See \s-1\fBEVP_KEYEXCH\-DH\s0\fR\|(7), \s-1\fBEVP_KEYEXCH\-ECDH\s0\fR\|(7) and \s-1\fBEVP_KEYEXCH\-…
1117 Deprecated low-level key generation functions
1118 .IX Subsection "Deprecated low-level key generation functions"
1120 Many low-level functions have been informally discouraged from use for a long
1121 time. Applications should instead use \fBEVP_PKEY_keygen_init\fR\|(3) and
1122 \&\fBEVP_PKEY_generate\fR\|(3) as described in \s-1\fBEVP_PKEY\-DSA\s0\fR\|(7), \s-1\fBEVP_PKEY\-DH…
1123 \&\s-1\fBEVP_PKEY\-RSA\s0\fR\|(7), \s-1\fBEVP_PKEY\-EC\s0\fR\|(7) and \s-1\fBEVP_PKEY\-X25519\s0\fR…
1124 The 'quick' one-shot function \fBEVP_PKEY_Q_keygen\fR\|(3) and macros for the most
1125 common cases: <\fBEVP_RSA_gen\fR\|(3)> and \fBEVP_EC_gen\fR\|(3) may also be used.
1127 Deprecated low-level key reading and writing functions
1128 .IX Subsection "Deprecated low-level key reading and writing functions"
1130 Use of low-level objects (such as \s-1DSA\s0) has been informally discouraged from use
1131 for a long time. Functions to read and write these low-level objects (such as
1133 \&\fBOSSL_ENCODER_to_bio\fR\|(3) and \fBOSSL_DECODER_from_bio\fR\|(3).
1135 Deprecated low-level key printing functions
1136 .IX Subsection "Deprecated low-level key printing functions"
1138 Use of low-level objects (such as \s-1DSA\s0) has been informally discouraged from use
1139 for a long time. Functions to print these low-level objects such as
1140 \&\fBDSA_print()\fR should be replaced with the equivalent \s-1EVP_PKEY\s0 functions.
1141 Application should use one of \fBEVP_PKEY_print_public\fR\|(3),
1142 \&\fBEVP_PKEY_print_private\fR\|(3), \fBEVP_PKEY_print_params\fR\|(3),
1143 \&\fBEVP_PKEY_print_public_fp\fR\|(3), \fBEVP_PKEY_print_private_fp\fR\|(3) or
1144 \&\fBEVP_PKEY_print_params_fp\fR\|(3). Note that internally these use
1145 \&\fBOSSL_ENCODER_to_bio\fR\|(3) and \fBOSSL_DECODER_from_bio\fR\|(3).
1151 .IP "\(bu" 4
1154 There is no replacement for the \s-1IGE\s0 functions. New code should not use these modes.
1155 These undocumented functions were never integrated into the \s-1EVP\s0 layer.
1156 They implemented the \s-1AES\s0 Infinite Garble Extension (\s-1IGE\s0) mode and \s-1AES\s0
1157 Bi-directional \s-1IGE\s0 mode. These modes were never formally standardised and
1159 \&\fBAES_bi_ige_encrypt()\fR has a known bug. It accepts 2 \s-1AES\s0 keys, but only one
1162 .IP "\(bu" 4
1166 .IP "\(bu" 4
1169 See \*(L"Deprecated low-level encryption functions\*(R"
1170 .IP "\(bu" 4
1173 There is no replacement. It returned a string indicating if the \s-1AES\s0 code was unrolled.
1174 .IP "\(bu" 4
1178 disabled with the macro \s-1NO_ASN1_OLD\s0 since OpenSSL 0.9.7.
1179 .IP "\(bu" 4
1182 Use \fBASN1_STRING_set\fR\|(3) or \fBASN1_STRING_set0\fR\|(3) instead.
1185 .IP "\(bu" 4
1189 See \*(L"Deprecated low-level encryption functions\*(R".
1191 .IP "\(bu" 4
1195 .IP "\(bu" 4
1198 Use the respective non-deprecated \fB_ex()\fR functions.
1199 .IP "\(bu" 4
1202 Use \fBBN_check_prime\fR\|(3) which avoids possible misuse and always uses at least
1203 64 rounds of the Miller-Rabin primality test.
1204 .IP "\(bu" 4
1207 Use \fBBN_rand\fR\|(3) and \fBBN_rand_range\fR\|(3).
1208 .IP "\(bu" 4
1211 There are no replacements for these low-level functions. They were used internally
1213 Use \fBEVP_PKEY_keygen\fR\|(3) instead.
1214 .IP "\(bu" 4
1220 See \*(L"Deprecated low-level encryption functions\*(R".
1221 .IP "\(bu" 4
1225 See \*(L"Deprecated low-level encryption functions\*(R".
1226 The \s-1CAST\s0 algorithm has been moved to the Legacy Provider.
1227 .IP "\(bu" 4
1231 See \*(L"Deprecated low-level \s-1MAC\s0 functions\*(R".
1232 .IP "\(bu" 4
1235 See \*(L"Deprecated low-level \s-1MAC\s0 functions\*(R".
1236 .IP "\(bu" 4
1242 Memory-leak checking has been deprecated in favor of more modern development
1244 .IP "\(bu" 4
1253 \&\*(L"Gettable and Settable \s-1EVP_CIPHER_CTX\s0 parameters\*(R" in \fBEVP_EncryptInit\fR\|(3).
1254 See \*(L"\s-1EXAMPLES\*(R"\s0 in \fBEVP_EncryptInit\fR\|(3) for a \s-1AES\-256\-CBC\-CTS\s0 example.
1255 .IP "\(bu" 4
1266 See \*(L"Deprecated i2d and d2i functions for low-level key types\*(R"
1267 .IP "\(bu" 4
1278 See \*(L"Deprecated low-level encryption functions\*(R".
1279 Algorithms for \*(L"DESX-CBC\*(R", \*(L"DES-ECB\*(R", \*(L"DES-CBC\*(R", \*(L"DES-OFB\*(R", \*(L"DE…
1280 \&\*(L"\s-1DES\-CFB1\*(R"\s0 and \*(L"\s-1DES\-CFB8\*(R"\s0 have been moved to the Legacy Provider.
1281 .IP "\(bu" 4
1284 Use \fBEVP_PKEY_get_bits\fR\|(3), \fBEVP_PKEY_get_security_bits\fR\|(3) and
1285 \&\fBEVP_PKEY_get_size\fR\|(3).
1286 .IP "\(bu" 4
1290 See \*(L"Deprecated low-level validation functions\*(R"
1291 .IP "\(bu" 4
1294 The \fB\s-1DH_FLAG_CACHE_MONT_P\s0\fR flag has been deprecated without replacement.
1295 The \fB\s-1DH_FLAG_TYPE_DH\s0\fR and \fB\s-1DH_FLAG_TYPE_DHX\s0\fR have been deprecated.
1298 .IP "\(bu" 4
1301 See \*(L"Deprecated low-level key exchange functions\*(R".
1302 .IP "\(bu" 4
1305 See \*(L"Deprecated low-level object creation\*(R"
1306 .IP "\(bu" 4
1309 See \*(L"Deprecated low-level key generation functions\*(R".
1310 .IP "\(bu" 4
1314 See \*(L"Deprecated low-level key parameter getters\*(R"
1315 .IP "\(bu" 4
1318 Applications should instead set the \fB\s-1OSSL_PKEY_PARAM_GROUP_NAME\s0\fR as specified in
1319 \&\*(L"\s-1DH\s0 parameters\*(R" in \s-1\fBEVP_PKEY\-DH\s0\fR\|(7)) to one of \*(L"dh_1024_160\*(R"…
1320 \&\*(L"dh_2048_256\*(R" when generating a \s-1DH\s0 key.
1321 .IP "\(bu" 4
1322 \&\s-1\fBDH_KDF_X9_42\s0()\fR
1324 Applications should use \fBEVP_PKEY_CTX_set_dh_kdf_type\fR\|(3) instead.
1325 .IP "\(bu" 4
1330 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R"
1331 .IP "\(bu" 4
1334 See \*(L"Deprecated low-level key printing functions\*(R"
1335 .IP "\(bu" 4
1338 See \*(L"Deprecated low-level key parameter setters\*(R"
1339 .IP "\(bu" 4
1342 Use \fBEVP_PKEY_get_bits\fR\|(3), \fBEVP_PKEY_get_security_bits\fR\|(3) and
1343 \&\fBEVP_PKEY_get_size\fR\|(3).
1344 .IP "\(bu" 4
1347 There is no direct replacement. Applications may use \fBEVP_PKEY_copy_parameters\fR\|(3)
1348 and \fBEVP_PKEY_dup\fR\|(3) instead.
1349 .IP "\(bu" 4
1352 See \*(L"Deprecated low-level key generation functions\*(R".
1353 .IP "\(bu" 4
1358 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R".
1359 .IP "\(bu" 4
1363 See \*(L"Deprecated low-level key parameter getters\*(R".
1364 .IP "\(bu" 4
1367 See \*(L"Deprecated low-level object creation\*(R"
1368 .IP "\(bu" 4
1371 There is no direct replacement. Applications may use \fBEVP_PKEY_copy_parameters\fR\|(3)
1372 and \fBEVP_PKEY_dup\fR\|(3) instead.
1373 .IP "\(bu" 4
1376 See \*(L"Deprecated low-level key printing functions\*(R"
1377 .IP "\(bu" 4
1380 See \*(L"Deprecated low-level key parameter setters\*(R"
1381 .IP "\(bu" 4
1384 The \fB\s-1DSA_FLAG_CACHE_MONT_P\s0\fR flag has been deprecated without replacement.
1385 .IP "\(bu" 4
1388 See \*(L"Deprecated low-level signing functions\*(R".
1389 .IP "\(bu" 4
1392 See \*(L"Deprecated low-level key exchange functions\*(R".
1393 .IP "\(bu" 4
1394 \&\s-1\fBECDH_KDF_X9_62\s0()\fR
1397 \&\fBEVP_PKEY_CTX_set_ecdh_kdf_type\fR\|(3) or by setting an \s-1\fBOSSL_PARAM\s0\fR\|(3) using the
1398 \&\*(L"kdf-type\*(R" as shown in \*(L"\s-1EXAMPLES\*(R"\s0 in \s-1\fBEVP_KEYEXCH\-ECDH\s0\fR\|(7)
1399 .IP "\(bu" 4
1403 See \*(L"Deprecated low-level signing functions\*(R".
1404 .IP "\(bu" 4
1407 Applications should use \fBEVP_PKEY_get_size\fR\|(3).
1408 .IP "\(bu" 4
1414 library automatically assigning a suitable method internally when an \s-1EC_GROUP\s0
1416 .IP "\(bu" 4
1419 Use \fBEC_GROUP_free\fR\|(3) instead.
1420 .IP "\(bu" 4
1424 Applications should use \fBEC_GROUP_get_curve\fR\|(3) and \fBEC_GROUP_set_curve\fR\|(3).
1425 .IP "\(bu" 4
1431 .IP "\(bu" 4
1434 \&\s-1EC_METHOD\s0 is now an internal-only concept and a suitable \s-1EC_METHOD\s0 is assigned
1437 .IP "\(bu" 4
1440 Applications should use \fBEVP_PKEY_can_sign\fR\|(3) instead.
1441 .IP "\(bu" 4
1444 See \*(L"Deprecated low-level validation functions\*(R"
1445 .IP "\(bu" 4
1448 See \*(L"Common \s-1EC\s0 parameters\*(R" in \s-1\fBEVP_PKEY\-EC\s0\fR\|(7) which handles flags as …
1449 parameters for \fB\s-1OSSL_PKEY_PARAM_EC_POINT_CONVERSION_FORMAT\s0\fR,
1450 \&\fB\s-1OSSL_PKEY_PARAM_EC_GROUP_CHECK_TYPE\s0\fR, \fB\s-1OSSL_PKEY_PARAM_EC_ENCODING\s0\fR,
1451 \&\fB\s-1OSSL_PKEY_PARAM_USE_COFACTOR_ECDH\s0\fR and
1452 \&\fB\s-1OSSL_PKEY_PARAM_EC_INCLUDE_PUBLIC\s0\fR.
1453 See also \*(L"\s-1EXAMPLES\*(R"\s0 in \s-1\fBEVP_PKEY\-EC\s0\fR\|(7)
1454 .IP "\(bu" 4
1457 There is no direct replacement. Applications may use \fBEVP_PKEY_copy_parameters\fR\|(3)
1458 and \fBEVP_PKEY_dup\fR\|(3) instead.
1459 .IP "\(bu" 4
1463 .IP "\(bu" 4
1466 See \*(L"Deprecated low-level key generation functions\*(R".
1467 .IP "\(bu" 4
1471 See \*(L"Deprecated low-level key parameter getters\*(R".
1472 .IP "\(bu" 4
1478 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R"
1479 .IP "\(bu" 4
1482 Use \fBEC_GROUP_get_field_type\fR\|(3) instead.
1483 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R"
1484 .IP "\(bu" 4
1489 .IP "\(bu" 4
1492 See \*(L"Deprecated low-level object creation\*(R"
1493 .IP "\(bu" 4
1496 See \*(L"Deprecated low-level key printing functions\*(R"
1497 .IP "\(bu" 4
1500 See \*(L"Deprecated low-level key parameter setters\*(R".
1501 .IP "\(bu" 4
1505 See \*(L"Deprecated low-level key parameter setters\*(R".
1506 .IP "\(bu" 4
1510 See \*(L"Deprecated low-level key printing functions\*(R"
1511 .IP "\(bu" 4
1514 These functions were not particularly useful, since \s-1EC\s0 point serialization
1515 formats are not individual big-endian integers.
1516 .IP "\(bu" 4
1520 Applications should use \fBEC_POINT_get_affine_coordinates\fR\|(3) and
1521 \&\fBEC_POINT_set_affine_coordinates\fR\|(3) instead.
1522 .IP "\(bu" 4
1526 \&\fBEC_POINT_set_affine_coordinates\fR\|(3) and \fBEC_POINT_get_affine_coordinates\fR\|(3)
1528 .IP "\(bu" 4
1533 .IP "\(bu" 4
1536 Applications should use \fBEC_POINT_set_compressed_coordinates\fR\|(3) instead.
1537 .IP "\(bu" 4
1541 \&\fBEC_POINT_mul\fR\|(3) function.
1542 .IP "\(bu" 4
1546 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R".
1547 .IP "\(bu" 4
1552 .IP "\(bu" 4
1555 The new functions are \fBERR_peek_error_func\fR\|(3), \fBERR_peek_last_error_func\fR\|(3),
1556 \&\fBERR_peek_error_data\fR\|(3), \fBERR_peek_last_error_data\fR\|(3), \fBERR_get_error_all\fR\|(3),
1557 \&\fBERR_peek_error_all\fR\|(3) and \fBERR_peek_last_error_all\fR\|(3).
1558 Applications should use \fBERR_get_error_all\fR\|(3), or pick information
1560 \&\fBERR_get_error\fR\|(3).
1561 .IP "\(bu" 4
1564 Applications should instead use \fBEVP_CIPHER_CTX_get_updated_iv\fR\|(3),
1565 \&\fBEVP_CIPHER_CTX_get_updated_iv\fR\|(3) and \fBEVP_CIPHER_CTX_get_original_iv\fR\|(3)
1567 See \fBEVP_CIPHER_CTX_get_original_iv\fR\|(3) for further information.
1568 .IP "\(bu" 4
1572 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R".
1573 .IP "\(bu" 4
1574 \&\s-1\fBEVP_PKEY_CTRL_PKCS7_ENCRYPT\s0()\fR, \s-1\fBEVP_PKEY_CTRL_PKCS7_DECRYPT\s0()\fR,
1575 \&\s-1\fBEVP_PKEY_CTRL_PKCS7_SIGN\s0()\fR, \s-1\fBEVP_PKEY_CTRL_CMS_ENCRYPT\s0()\fR,
1576 \&\s-1\fBEVP_PKEY_CTRL_CMS_DECRYPT\s0()\fR, and \s-1\fBEVP_PKEY_CTRL_CMS_SIGN\s0()\fR
1581 .IP "\(bu" 4
1584 See the \*(L"kdf-ukm\*(R" item in \*(L"\s-1DH\s0 key exchange parameters\*(R" in \s-1\fBEVP_KEYEXCH…
1585 \&\*(L"\s-1ECDH\s0 Key Exchange parameters\*(R" in \s-1\fBEVP_KEYEXCH\-ECDH\s0\fR\|(7).
1587 .IP "\(bu" 4
1590 Applications should use \fBEVP_PKEY_CTX_set1_rsa_keygen_pubexp\fR\|(3) instead.
1591 .IP "\(bu" 4
1594 Applications should use \fBEVP_PKEY_eq\fR\|(3) and \fBEVP_PKEY_parameters_eq\fR\|(3) instead.
1595 See \fBEVP_PKEY_copy_parameters\fR\|(3) for further details.
1596 .IP "\(bu" 4
1599 Applications should use \fBEVP_PKEY_encrypt_init\fR\|(3) and \fBEVP_PKEY_encrypt\fR\|(3) or
1600 \&\fBEVP_PKEY_decrypt_init\fR\|(3) and \fBEVP_PKEY_decrypt\fR\|(3) instead.
1601 .IP "\(bu" 4
1604 This function returns \s-1NULL\s0 if the key comes from a provider.
1605 .IP "\(bu" 4
1611 .IP "\(bu" 4
1614 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R".
1615 .IP "\(bu" 4
1618 See \*(L"Deprecated low-level \s-1MAC\s0 functions\*(R".
1619 .IP "\(bu" 4
1623 See \*(L"Deprecated low-level key object getters and setters\*(R"
1624 .IP "\(bu" 4
1628 key into/from an \s-1EVP_PKEY\s0 object. With OpenSSL 3.0 these are replaced by the more
1629 generic functions \fBEVP_PKEY_set1_encoded_public_key\fR\|(3) and
1630 \&\fBEVP_PKEY_get1_encoded_public_key\fR\|(3).
1633 .IP "\(bu" 4
1636 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R".
1637 .IP "\(bu" 4
1642 .IP "\(bu" 4
1645 See \*(L"Deprecated low-level \s-1MAC\s0 functions\*(R".
1646 .IP "\(bu" 4
1650 See \*(L"Deprecated low-level \s-1MAC\s0 functions\*(R".
1651 .IP "\(bu" 4
1654 See \*(L"Deprecated low-level key reading and writing functions\*(R"
1655 and \*(L"Migration\*(R" in \fBd2i_RSAPrivateKey\fR\|(3)
1656 .IP "\(bu" 4
1661 See \*(L"Deprecated low-level key reading and writing functions\*(R"
1662 and \*(L"Migration\*(R" in \fBd2i_RSAPrivateKey\fR\|(3)
1663 .IP "\(bu" 4
1668 See \*(L"Deprecated low-level key reading and writing functions\*(R"
1669 and \*(L"Migration\*(R" in \fBd2i_RSAPrivateKey\fR\|(3)
1670 .IP "\(bu" 4
1675 See \*(L"Deprecated low-level key reading and writing functions\*(R"
1676 and \*(L"Migration\*(R" in \fBd2i_RSAPrivateKey\fR\|(3)
1677 .IP "\(bu" 4
1682 See \*(L"Deprecated low-level encryption functions\*(R".
1683 \&\s-1IDEA\s0 has been moved to the Legacy Provider.
1684 .IP "\(bu" 4
1688 .IP "\(bu" 4
1689 \&\s-1\fBMD2\s0()\fR, \fBMD2_Init()\fR, \fBMD2_Update()\fR, \fBMD2_Final()\fR
1691 See \*(L"Deprecated low-level encryption functions\*(R".
1692 \&\s-1MD2\s0 has been moved to the Legacy Provider.
1693 .IP "\(bu" 4
1697 .IP "\(bu" 4
1698 \&\s-1\fBMD4\s0()\fR, \fBMD4_Init()\fR, \fBMD4_Update()\fR, \fBMD4_Final()\fR, \fBMD4_Transform()\fR
1700 See \*(L"Deprecated low-level encryption functions\*(R".
1701 \&\s-1MD4\s0 has been moved to the Legacy Provider.
1702 .IP "\(bu" 4
1703 \&\s-1\fBMDC2\s0()\fR, \fBMDC2_Init()\fR, \fBMDC2_Update()\fR, \fBMDC2_Final()\fR
1705 See \*(L"Deprecated low-level encryption functions\*(R".
1706 \&\s-1MDC2\s0 has been moved to the Legacy Provider.
1707 .IP "\(bu" 4
1708 \&\s-1\fBMD5\s0()\fR, \fBMD5_Init()\fR, \fBMD5_Update()\fR, \fBMD5_Final()\fR, \fBMD5_Transform()\fR
1710 See \*(L"Deprecated low-level encryption functions\*(R".
1711 .IP "\(bu" 4
1712 \&\s-1\fBNCONF_WIN32\s0()\fR
1715 See \*(L"\s-1HISTORY\*(R"\s0 in \fBconfig\fR\|(5) for more details.
1716 .IP "\(bu" 4
1719 Use \fBOSSL_HTTP_parse_url\fR\|(3) instead.
1720 .IP "\(bu" 4
1721 \&\fB\s-1OCSP_REQ_CTX\s0\fR type and \fBOCSP_REQ_CTX_*()\fR functions
1723 These methods were used to collect all necessary data to form a \s-1HTTP\s0 request,
1724 and to perform the \s-1HTTP\s0 transfer with that request. With OpenSSL 3.0, the
1725 type is \fB\s-1OSSL_HTTP_REQ_CTX\s0\fR, and the deprecated functions are replaced
1726 with \fBOSSL_HTTP_REQ_CTX_*()\fR. See \s-1\fBOSSL_HTTP_REQ_CTX\s0\fR\|(3) for additional
1728 .IP "\(bu" 4
1733 .IP "\(bu" 4
1746 provider implementations, see \fBprovider\-storemgmt\fR\|(7).
1747 .IP "\(bu" 4
1765 See \*(L"Deprecated low-level key reading and writing functions\*(R"
1766 .IP "\(bu" 4
1767 \&\s-1\fBPKCS1_MGF1\s0()\fR
1769 See \*(L"Deprecated low-level encryption functions\*(R".
1770 .IP "\(bu" 4
1774 Applications should instead use \fBRAND_set_DRBG_type\fR\|(3),
1775 \&\s-1\fBEVP_RAND\s0\fR\|(3) and \s-1\fBEVP_RAND\s0\fR\|(7).
1776 See \fBRAND_set_rand_method\fR\|(3) for more details.
1777 .IP "\(bu" 4
1780 \&\s-1\fBRC4\s0()\fR, \fBRC4_set_key()\fR, \fBRC4_options()\fR,
1784 See \*(L"Deprecated low-level encryption functions\*(R".
1785 The Algorithms \*(L"\s-1RC2\*(R", \*(L"RC4\*(R"\s0 and \*(L"\s-1RC5\*(R"\s0 have been moved to the …
1786 .IP "\(bu" 4
1787 \&\s-1\fBRIPEMD160\s0()\fR, \fBRIPEMD160_Init()\fR, \fBRIPEMD160_Update()\fR, \fBRIPEMD160_Final()\…
1790 See \*(L"Deprecated low-level digest functions\*(R".
1791 The \s-1RIPE\s0 algorithm has been moved to the Legacy Provider.
1792 .IP "\(bu" 4
1795 Use \fBEVP_PKEY_get_bits\fR\|(3), \fBEVP_PKEY_get_security_bits\fR\|(3) and
1796 \&\fBEVP_PKEY_get_size\fR\|(3).
1797 .IP "\(bu" 4
1800 See \*(L"Deprecated low-level validation functions\*(R"
1801 .IP "\(bu" 4
1805 All of these \s-1RSA\s0 flags have been deprecated without replacement:
1807 \&\fB\s-1RSA_FLAG_BLINDING\s0\fR, \fB\s-1RSA_FLAG_CACHE_PRIVATE\s0\fR, \fB\s-1RSA_FLAG_CACHE_PUBLIC…
1808 \&\fB\s-1RSA_FLAG_EXT_PKEY\s0\fR, \fB\s-1RSA_FLAG_NO_BLINDING\s0\fR, \fB\s-1RSA_FLAG_THREAD_SAFE\s0…
1809 \&\fB\s-1RSA_METHOD_FLAG_NO_CHECK\s0\fR
1810 .IP "\(bu" 4
1813 See \*(L"Deprecated low-level key generation functions\*(R".
1814 .IP "\(bu" 4
1817 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R"
1818 .IP "\(bu" 4
1825 See \*(L"Deprecated low-level key parameter getters\*(R"
1826 .IP "\(bu" 4
1829 See \*(L"Deprecated low-level object creation\*(R".
1830 .IP "\(bu" 4
1833 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R".
1834 .IP "\(bu" 4
1838 .IP "\(bu" 4
1841 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R".
1842 .IP "\(bu" 4
1845 See \*(L"Deprecated low-level signing functions\*(R" and
1846 \&\*(L"Deprecated low-level encryption functions\*(R".
1847 .IP "\(bu" 4
1850 See \*(L"Deprecated low-level key printing functions\*(R"
1851 .IP "\(bu" 4
1854 See \*(L"Deprecated low-level encryption functions\*(R"
1855 .IP "\(bu" 4
1859 mode of none). See \*(L"Deprecated low-level signing functions\*(R".
1860 .IP "\(bu" 4
1863 There is no direct replacement. Applications may use \fBEVP_PKEY_dup\fR\|(3).
1864 .IP "\(bu" 4
1867 See \*(L"Deprecated low-level key reading and writing functions\*(R"
1868 .IP "\(bu" 4
1872 See \*(L"Deprecated low-level key parameter setters\*(R".
1873 .IP "\(bu" 4
1876 See \*(L"Providers are a replacement for engines and low-level method overrides\*(R"
1877 .IP "\(bu" 4
1882 See \*(L"Deprecated low-level signing functions\*(R".
1883 .IP "\(bu" 4
1887 X931 padding can be set using \*(L"Signature Parameters\*(R" in \s-1\fBEVP_SIGNATURE\-RSA\s0\fR\|(7…
1888 See \fB\s-1OSSL_SIGNATURE_PARAM_PAD_MODE\s0\fR.
1889 .IP "\(bu" 4
1893 See \*(L"Deprecated low-level encryption functions\*(R".
1894 The \s-1SEED\s0 algorithm has been moved to the Legacy Provider.
1895 .IP "\(bu" 4
1902 See \*(L"Deprecated low-level digest functions\*(R".
1903 .IP "\(bu" 4
1911 There are no replacements for the \s-1SRP\s0 functions.
1912 .IP "\(bu" 4
1916 These are used to set the Diffie-Hellman (\s-1DH\s0) parameters that are to be used by
1917 servers requiring ephemeral \s-1DH\s0 keys. Instead applications should consider using
1918 the built-in \s-1DH\s0 parameters that are available by calling \fBSSL_CTX_set_dh_auto\fR\|(3)
1919 or \fBSSL_set_dh_auto\fR\|(3). If custom parameters are necessary then applications can
1920 use the alternative functions \fBSSL_CTX_set0_tmp_dh_pkey\fR\|(3) and
1921 \&\fBSSL_set0_tmp_dh_pkey\fR\|(3). There is no direct replacement for the \*(L"callback\*(R"
1923 parameters for export and non-export ciphersuites. Export ciphersuites are no
1926 .IP "\(bu" 4
1929 Use the new \fBSSL_CTX_set_tlsext_ticket_key_evp_cb\fR\|(3) function instead.
1930 .IP "\(bu" 4
1931 \&\s-1\fBWHIRLPOOL\s0()\fR, \fBWHIRLPOOL_Init()\fR, \fBWHIRLPOOL_Update()\fR, \fBWHIRLPOOL_Final()\…
1934 See \*(L"Deprecated low-level digest functions\*(R".
1936 .IP "\(bu" 4
1939 This was an undocumented function. Applications can use \fBX509_get0_pubkey\fR\|(3)
1940 and \fBX509_get0_signature\fR\|(3) instead.
1941 .IP "\(bu" 4
1944 Use \fBX509_load_http\fR\|(3) and \fBX509_CRL_load_http\fR\|(3) instead.
1946 \fI\s-1NID\s0 handling for provided keys and algorithms\fR
1949 The following functions for \s-1NID\s0 (numeric id) handling have changed semantics.
1950 .IP "\(bu" 4
1953 This function was previously used to reliably return the \s-1NID\s0 of
1954 an \s-1EVP_PKEY\s0 object, e.g., to look up the name of the algorithm of
1955 such \s-1EVP_PKEY\s0 by calling \fBOBJ_nid2sn\fR\|(3). With the introduction
1957 \&\fBEVP_PKEY_get_id\fR\|(3) might now also return the value \-1
1958 (\fB\s-1EVP_PKEY_KEYMGMT\s0\fR) indicating the use of a provider to
1959 implement the \s-1EVP_PKEY\s0 object. Therefore, the use of
1960 \&\fBEVP_PKEY_get0_type_name\fR\|(3) is recommended for retrieving
1961 the name of the \s-1EVP_PKEY\s0 algorithm.
1962 .SS "Using the \s-1FIPS\s0 Module in applications"
1964 See \fBfips_module\fR\|(7) and \s-1\fBOSSL_PROVIDER\-FIPS\s0\fR\|(7) for details.
1970 \&\fBopenssl kdf\fR uses the new \s-1\fBEVP_KDF\s0\fR\|(3) \s-1API.\s0
1971 \&\fBopenssl kdf\fR uses the new \s-1\fBEVP_MAC\s0\fR\|(3) \s-1API.\s0
1976 \&\fB\-provider_path\fR and \fB\-provider\fR are available to all apps and can be used
1979 specified if required. The \fB\-provider_path\fR must be specified before the
1980 \&\fB\-provider\fR option.
1982 The \fBlist\fR app has many new options. See \fBopenssl\-list\fR\|(1) for more
1985 \&\fB\-crl_lastupdate\fR and \fB\-crl_nextupdate\fR used by \fBopenssl ca\fR allows
1986 explicit setting of fields in the generated \s-1CRL.\s0
1993 The \fB\-crypt\fR option used by \fBopenssl passwd\fR.
1994 The \fB\-c\fR option used by \fBopenssl x509\fR, \fBopenssl dhparam\fR,
2003 For example, the \s-1DH\s0 parameters output from \fBopenssl dhparam\fR now lists 'P',
2008 automatically detect the \s-1PEM\s0 or \s-1DER\s0 format of the input files so it is not
2012 \&\fBopenssl speed\fR no longer uses low-level \s-1API\s0 calls.
2018 \&\fBopenssl genrsa\fR and \fBopenssl rsa\fR have been modified to use \s-1PKEY\s0 APIs.
2019 \&\fBopenssl genrsa\fR and \fBopenssl rsa\fR now write \s-1PKCS\s0 #8 keys by default.
2024 \&\*(L"\s-1SHA256\*(R"\s0 is now the default digest for \s-1TS\s0 query used by \fBopenssl ts\fR.
2033 .SS "\s-1TLS\s0 Changes"
2035 .IP "\(bu" 4
2036 \&\s-1TLS 1.3 FFDHE\s0 key exchange support added
2038 This uses \s-1DH\s0 safe prime named groups.
2039 .IP "\(bu" 4
2040 Support for fully \*(L"pluggable\*(R" TLSv1.3 groups.
2045 .IP "\(bu" 4
2046 \&\s-1SSL\s0 and \s-1SSL_CTX\s0 options are now 64 bit instead of 32 bit.
2048 The signatures of the functions to get and set options on \s-1SSL\s0 and
2049 \&\s-1SSL_CTX\s0 objects changed from \*(L"unsigned long\*(R" to \*(L"uint64_t\*(R" type.
2052 to use the \fB\s-1SSL_OP_\s0\fR macro values in preprocessor \f(CW\*(C`#if\*(C'\fR conditions.
2055 See \fBSSL_CTX_get_options\fR\|(3), \fBSSL_CTX_set_options\fR\|(3),
2056 \&\fBSSL_get_options\fR\|(3) and \fBSSL_set_options\fR\|(3).
2057 .IP "\(bu" 4
2060 These functions now take \s-1IP\s0 literal addresses as well as actual hostnames.
2061 .IP "\(bu" 4
2062 Added \s-1SSL\s0 option \s-1SSL_OP_CLEANSE_PLAINTEXT\s0
2067 (e.g.: data received by \fBSSL_read\fR\|(3)).
2068 .IP "\(bu" 4
2069 Client-initiated renegotiation is disabled by default.
2071 To allow it, use the \fB\-client_renegotiation\fR option,
2072 the \fB\s-1SSL_OP_ALLOW_CLIENT_RENEGOTIATION\s0\fR flag, or the \f(CW\*(C`ClientRenegotiation\*(C'\…
2074 .IP "\(bu" 4
2075 Secure renegotiation is now required by default for \s-1TLS\s0 connections
2077 Support for \s-1RFC 5746\s0 secure renegotiation is now required by default for
2078 \&\s-1SSL\s0 or \s-1TLS\s0 connections to succeed. Applications that require the ability
2080 \&\s-1SSL_OP_LEGACY_SERVER_CONNECT.\s0 Accordingly, \s-1SSL_OP_LEGACY_SERVER_CONNECT\s0
2081 is no longer set as part of \s-1SSL_OP_ALL.\s0
2082 .IP "\(bu" 4
2083 Combining the Configure options no-ec and no-dh no longer disables TLSv1.3
2085 Typically if OpenSSL has no \s-1EC\s0 or \s-1DH\s0 algorithms then it cannot support
2086 connections with TLSv1.3. However OpenSSL now supports \*(L"pluggable\*(R" groups
2088 implementations even where there are no built-in ones. Attempting to create
2089 \&\s-1TLS\s0 connections in such a build without also disabling TLSv1.3 at run time or
2090 using third party provider groups may result in handshake failures. TLSv1.3
2091 can be disabled at compile time using the \*(L"no\-tls1_3\*(R" Configure option.
2092 .IP "\(bu" 4
2096 .IP "\(bu" 4
2100 the security operation \s-1SSL_SECOP_TMP_DH.\s0 This is defined to take an \s-1EVP_PKEY\s0
2103 security operation and it passed a \s-1DH\s0 object instead. This is incorrect
2104 according to the definition of \s-1SSL_SECOP_TMP_DH,\s0 and is inconsistent with all
2106 pass an \s-1EVP_PKEY\s0 instead.
2107 .IP "\(bu" 4
2108 New \s-1SSL\s0 option \s-1SSL_OP_IGNORE_UNEXPECTED_EOF\s0
2110 The \s-1SSL\s0 option \s-1SSL_OP_IGNORE_UNEXPECTED_EOF\s0 is introduced. If that option
2111 is set, an unexpected \s-1EOF\s0 is ignored, it pretends a close notify was received
2112 instead and so the returned error becomes \s-1SSL_ERROR_ZERO_RETURN.\s0
2113 .IP "\(bu" 4
2114 The security strength of \s-1SHA1\s0 and \s-1MD5\s0 based signatures in \s-1TLS\s0 has been reduced.
2116 This results in \s-1SSL 3, TLS 1.0, TLS 1.1\s0 and \s-1DTLS 1.0\s0 no longer
2119 with \f(CW@SECLEVEL\fR, or calling \fBSSL_CTX_set_security_level\fR\|(3). This also means
2121 then the handshake will fail in \s-1TLS 1.2\s0 at security level 1. This is because,
2124 set requires the availability of \s-1SHA1.\s0
2125 .IP "\(bu" 4
2126 X509 certificates signed using \s-1SHA1\s0 are no longer allowed at security level 1 and above.
2128 In \s-1TLS/SSL\s0 the default security level is 1. It can be set either using the cipher
2129 string with \f(CW@SECLEVEL\fR, or calling \fBSSL_CTX_set_security_level\fR\|(3). If the
2130 leaf certificate is signed with \s-1SHA\-1,\s0 a call to \fBSSL_CTX_use_certificate\fR\|(3)
2132 Outside \s-1TLS/SSL,\s0 the default security level is \-1 (effectively 0). It can
2133 be set using \fBX509_VERIFY_PARAM_set_auth_level\fR\|(3) or using the \fB\-auth_level\fR
2143 Copyright 2021\-2023 The OpenSSL Project Authors. All Rights Reserved.
2147 in the file \s-1LICENSE\s0 in the source distribution or at