Lines Matching refs:key
35 * Mbed TLS legacy APIs require key material to be present in the application memory. The PSA Crypto…
80 Apart from keys, as described in “[Key management](#key-management)” below, APIs that need to prese…
88 …key take a parameter of type [`psa_key_id_t`](https://mbed-tls.readthedocs.io/projects/api/en/deve…
90 To use a key:
92 …key object with a key creation function. The two most common ones are [`psa_import_key`](https://m…
93 2. Use the key as desired, passing the key identifier obtained during the key creation.
94 3. Finally destroy the key object with [`psa_destroy_key`](https://mbed-tls.readthedocs.io/projects…
96 …key management](#cipher-key-management)”, “[MAC key management](#mac-key-management)”, “[Key lifec…
98 …key material, call [`psa_export_key`](https://mbed-tls.readthedocs.io/projects/api/en/development/…
100 Note that a key consumes a key store entry, which is distinct from heap memory, until it is destroy…
189 …As an exception, starting in Mbed TLS 3.5.0, for key pair types, the feature selection is more fin…
190 …KEY_PAIR_BASIC` enables basic support for the key type, and in particular support for operations w…
191 …* `PSA_WANT_KEY_TYPE_xxx_KEY_PAIR_IMPORT` enables support for `psa_import_key` to import a key of …
192 …_KEY_PAIR_GENERATE` enables support for `psa_generate_key` to randomly generate a key of that type.
193 …enables support for `psa_key_derivation_output_key` to deterministically derive a key of that type.
194 …* `PSA_WANT_KEY_TYPE_xxx_KEY_PAIR_EXPORT` enables support for `psa_export_key` to export a key of …
196 …a key pair type automatically enables support for the corresponding public key type, as well as su…
202 …the curve secp256r1 using a randomly generated key as well as the corresponding verification, and …
273 For modes that are based on a block cipher, the key type encodes the choice of block cipher:
300 …key type value `PSA_KEY_TYPE_xxx`, the symbol `PSA_WANT_KEY_TYPE_xxx` is defined with a non-zero v…
314 …press key sizes in bits. Note however that in the PSA API, the size of a _buffer_ is always expres…
324 …PI because it is unnecessary. All macros and functions operate directly on key type values (`psa_k…
337 ### Cipher key management
341 …ry key material. In the PSA API, an operation object contains a reference to a key object. To perf…
345 Here is an overview of the lifecycle of a key object.
347 1. First define the attributes of the key by filling a [`psa_key_attributes_t` structure](https://m…
348 …ributes/#group__attributes_1ga6857ef0ecb3fa844d4536939d9c64025) to set the key type to the desired…
349 …fa018) to set the key's size in bits. This is optional with `psa_import_key`, which determines the…
350 …r mechanism selection](#cipher-mechanism-selection)”). By design, the same key cannot be used with…
351 …c.PSA_KEY_USAGE_DECRYPT), depending on which direction you want to use the key in. To allow both d…
352 …key creation functions, passing the attributes defined in the previous step, to get an identifier …
353 …export/#group__import__export_1ga0336ea76bf30587ab204a8296462327b) to directly import key material.
354 …* If the key is randomly generated, use [`psa_generate_key`](https://mbed-tls.readthedocs.io/proje…
355 …key is derived from other material (for example from a key exchange), use the [key derivation inte…
356 3. Call the functions in the following sections to perform operations on the key. The same key obje…
357 …key object, call [`psa_destroy_key`](https://mbed-tls.readthedocs.io/projects/api/en/development/a…
364 2. Establish the operation parameters (algorithm, key, mode) with `mbedtls_cipher_setup`, `mbedtls_…
377 2. Select the key and algorithm with [`psa_cipher_encrypt_setup`](https://mbed-tls.readthedocs.io/p…
389 2. Establish the operation parameters (algorithm, key, mode) with `mbedtls_cipher_setup`, `mbedtls_…
406 2. Select the key and algorithm with [`psa_aead_encrypt_setup`](https://mbed-tls.readthedocs.io/pro…
418 …you must set the key again with a setup function: the PSA API does not have a special way to reuse…
420 …ion. Applications that need this information will need to save it from the key and operation param…
426 … time of writing. You can implement it using the MAC interface with an AES key and the CMAC algori…
452 …to__types/#group__crypto__types_1gac2e4d47f1300d73c2f829a6d99252d69) and a key type value of type …
456 …The key type is [`PSA_KEY_TYPE_HMAC`](https://mbed-tls.readthedocs.io/projects/api/en/development/…
457 …_values_8h/#c.PSA_ALG_CMAC) regardless of the underlying block cipher. The key type determines the…
465 …key type value `PSA_KEY_TYPE_xxx`, the symbol `PSA_WANT_KEY_TYPE_xxx` is defined with a non-zero v…
525 ### MAC key management
529 …ry key material. In the PSA API, an operation object contains a reference to a key object. To perf…
533 Here is an overview of the lifecycle of a key object.
535 1. First define the attributes of the key by filling a [`psa_key_attributes_t` structure](https://m…
536 …ributes/#group__attributes_1ga6857ef0ecb3fa844d4536939d9c64025) to set the key type to the desired…
537 …fa018) to set the key's size in bits. This is optional with `psa_import_key`, which determines the…
538 …r mechanism selection](#cipher-mechanism-selection)”). By design, the same key cannot be used with…
540 …key creation functions, passing the attributes defined in the previous step, to get an identifier …
541 …export/#group__import__export_1ga0336ea76bf30587ab204a8296462327b) to directly import key material.
542 …* If the key is randomly generated, use [`psa_generate_key`](https://mbed-tls.readthedocs.io/proje…
543 …key is derived from other material (for example from a key exchange), use the [key derivation inte…
544 3. Call the functions in the following sections to perform operations on the key. The same key obje…
545 …key object, call [`psa_destroy_key`](https://mbed-tls.readthedocs.io/projects/api/en/development/a…
552 …up` to select the hash algorithm, with `hmac=1`. Then call `mbedtls_md_hmac_starts` to set the key.
560 …bedtls_cipher_setup` to select the block cipher. Then call `mbedtls_md_cmac_starts` to set the key.
568 …6cd) to specify the algorithm and the key. See “[MAC key management](#mac-key-management)” for how…
575 …984) to specify the algorithm and the key. See “[MAC key management](#mac-key-management)” for how…
586 In both cases, see “[MAC key management](#mac-key-management)” for how to obtain a key identifier.
590 … Note that you must call a setup function to specify the algorithm and the key (for MAC) again, an…
598 PSA Crypto provides access to HKDF, HKDF-Extract and HKDF-Expand via its [key derivation interface]…
602 …on_1gab2d7ce8705dd8e4a093f4b8a21a0c15a) instead for an input that is a PSA key object.) The input …
606 …y__derivation_1gada7a6e17222ea9e7a6be6864a00316e1) instead if you want to use a chunk as a PSA key.
607 …a90fdd2716124d0bd258826184824675f) to free the resources associated with the key derivation object.
611 …kcs5_pbkdf2_hmac` or `mbedtls_pkcs5_pbkdf2_hmac_ext` can switch to the PSA key derivation API for …
616 …on_1gab2d7ce8705dd8e4a093f4b8a21a0c15a) instead for an input that is a PSA key object.) The input …
620 …_derivation_1gada7a6e17222ea9e7a6be6864a00316e1) instead if you want to use a chunk as a PSA key.
621 …utput against an expected value (for authentication, rather than to derive key material), call [`p…
622 …a90fdd2716124d0bd258826184824675f) to free the resources associated with the key derivation object.
653 The PSA API does not have a dedicated interface for pseudorandom generation. The [key derivation in…
663 …key identifier tends to play the same role as an `mbedtls_pk_context`, `mbedtls_rsa_context` or `m…
665 Here is an overview of the lifecycle of a PSA key object.
667 1. First define the attributes of the key by filling a [`psa_key_attributes_t` structure](https://m…
668 …ributes/#group__attributes_1ga6857ef0ecb3fa844d4536939d9c64025) to set the key type to the desired…
669 …) to set the key's conceptual size in bits. This is optional with `psa_import_key`, which determin…
670 …diffie-hellman-mechanism-selection)” as well as “[Public-key cryptography policies](#public-key-cr…
671 …20e17de) to enable the desired usage types (see “[Public-key cryptography policies](#public-key-cr…
672 …key creation functions, passing the attributes defined in the previous step, to get an identifier …
673 …export/#group__import__export_1ga0336ea76bf30587ab204a8296462327b) to directly import key material.
674 …* If the key is randomly generated, use [`psa_generate_key`](https://mbed-tls.readthedocs.io/proje…
675 …key is derived from other material (for example from a key exchange), use the [key derivation inte…
676 3. Call the functions in the following sections to perform operations on the key. The same key obje…
677 …key object, call [`psa_destroy_key`](https://mbed-tls.readthedocs.io/projects/api/en/development/a…
679 ### Public-key cryptography policies
681 A key's policy indicates what algorithm(s) it can be used with (usage algorithm policy) and what op…
687 | export public key | 0 (always permitted) |
688 | export private key | [`PSA_KEY_USAGE_EXPORT`](https://mbed-tls.readthedocs.io/projects/api/en/dev…
697 …anism-selection)” cover the available algorithm values for each key type. Normally, a key can only…
699 …key may need to be used to sign messages with multiple different hashes. In an algorithm policy, y…
700 …ios where a key is normally used with a single algorithm, but needs to be used with a different al…
706 …SASSA_PSS` and `MBEDTLS_PK_RSA_ALT` correspond to RSA key types in the PSA API. In the PSA API, ke…
709 The PSA API uses policies and algorithm parameters rather than key types to distinguish between RSA…
711 An RSA public key has the type [`PSA_KEY_TYPE_RSA_PUBLIC_KEY`](https://mbed-tls.readthedocs.io/proj…
713 …key pair has the type [`PSA_KEY_TYPE_RSA_KEY_PAIR`](https://mbed-tls.readthedocs.io/projects/api/e…
714 You can always use a private key for operations on the corresponding public key (as long as the pol…
725 …key types in the PSA API. In the PSA API, key pairs and public keys are separate object types. The…
727 An ECC public key has the type [`PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve)`](https://mbed-tls.readthedocs.…
729 …key pair has the type [`PSA_KEY_TYPE_ECC_KEY_PAIR(curve)`](https://mbed-tls.readthedocs.io/project…
730 You can always use a private key for operations on the corresponding public key (as long as the pol…
732 A curve is fully determined by a curve family identifier and the private key size in bits. You can …
756 * ECDH key agreement (including X25519 and X448): [`PSA_ALG_ECDH`](https://mbed-tls.readthedocs.io/…
762 A finite-field Diffie-Hellman key pair has the type [`PSA_KEY_TYPE_DH_KEY_PAIR(group)`](https://mbe…
764 …key has the type [`PSA_KEY_TYPE_DH_PUBLIC_KEY(group)`](https://mbed-tls.readthedocs.io/projects/ap…
766 …d groups. A group is fully determined by a group family identifier and the public key size in bits.
776 A finite-field Diffie-Hellman key can be used for key agreement with the algorithm [`PSA_ALG_FFDH`]…
780 …key pair object is by randomly generating it with [`psa_generate_key`](https://mbed-tls.readthedoc…
784 …key object from existing material, use [`psa_import_key`](https://mbed-tls.readthedocs.io/projects…
788 | RSA key pair | PKCS#1 RSAPrivateKey DER encoding (including both private exponent and CRT paramet…
789 | RSA public key | PKCS#1 RSAPublicKey DER encoding |
790 | ECC key pair | Fixed-length private value (not containing the public key) |
791 | ECC public key (Weierstrass curve) | Fixed-length uncompressed point |
792 | ECC public key (Montgomery curve) | Fixed-length public value |
793 | FFDH key pair | Fixed-length private value (not containing the public key) |
794 | FFDH public key | Fixed-length public value |
798 … the following subsection for how to use the PK module for key parsing and construct a PSA key obj…
800 ### Creating a PSA key via PK
802 You can use the PK module as an intermediate step to create an RSA or ECC key for use with PSA. Thi…
804 * Parsing a key in a format with metadata without knowing its type ahead of time.
805 * Parsing a key in a format that the PK module supports, but `psa_import_key` doesn't.
806 * Importing a key which you have in the form of a list of numbers, rather than the binary encoding …
807 …key with less information than what the PSA API needs, for example an ECC public key in a compress…
811 1. First create a PK object with the desired key material.
812 …3cffb6981d95d1632631de9244) to fill PSA attributes corresponding to the PK key. Pass one of the fo…
813 * `PSA_KEY_USAGE_SIGN_HASH` or `PSA_KEY_USAGE_SIGN_MESSAGE` for a key pair used for signing.
814 * `PSA_KEY_USAGE_DECRYPT` for a key pair used for decryption.
815 * `PSA_KEY_USAGE_DERIVE` for a key pair used for key agreement.
816 …* `PSA_KEY_USAGE_VERIFY_HASH` or `PSA_KEY_USAGE_VERIFY_MESSAGE` for a public key pair used for sig…
817 * `PSA_KEY_USAGE_ENCRYPT` for a key pair used for encryption.
819 …a_8h/#group__attributes_1gaffa134b74aa52aa3ed9397fcab4005aa) to change the key's policy (by defaul…
820 …_attributes/#group__attributes_1gac03ccf09ca6d36cc3d5b43f8303db6f7) to create a PSA persistent key.
821 …api/file/pk_8h/#pk_8h_1ad59835d14832daf0f4b4bd0a4555abb9) to import the key into the PSA key store.
839 #### Importing an elliptic curve key from ECP
841 This section explains how to use the `ecp.h` API to create an elliptic curve key in a format suitab…
843 You can use this, for example, to import an ECC key in the form of a compressed point by calling `m…
845 The following code snippet illustrates how to import a private key which is initially in an `mbedtl…
850 // Omitted: fill ec with key material
851 // (the public key will not be used and does not need to be set)
864 The following code snippet illustrates how to import a private key which is initially in an `mbedtl…
872 // Omitted: fill pt with key material
887 ### Key pair and public key metadata
889 …PI because it is unnecessary. All macros and functions operate directly on key type values (`psa_k…
891 …key, then functions such as [`psa_get_key_type`](https://mbed-tls.readthedocs.io/projects/api/en/d…
895 …key's type as reported by [`psa_get_key_type`](https://mbed-tls.readthedocs.io/projects/api/en/dev…
897 ### Exporting a public key or a key pair
899 …key pair or public key, call [`psa_export_key`](https://mbed-tls.readthedocs.io/projects/api/en/de…
901 …key or to export the public key of a PSA key pair object, call [`psa_export_public_key`](https://m…
905 …lemented, see “[Exposing a PSA key via PK](#exposing-a-psa-key-via-pk)” for ways to use the PK mod…
907 #### Exposing a PSA key via PK
909 …key in a context that requires a PK object, such as PK formatting functions (`mbedtls_pk_write_key…
911 …0c40447bd08) copies a PSA key into a PK object. The PSA key must be exportable. The PK object rema…
912 …b8b15a4e) copies the public part of a PSA key into a PK object. The PK object remains valid even i…
913 …key. This functionality is only available when `MBEDTLS_USE_PSA_CRYPTO` is enabled. The PK object …
915 …lustrating how to use the PK module to format a PSA public key or the public key of a PSA key pair.
936 The key must be a key pair allowing the usage `PSA_KEY_USAGE_SIGN_HASH` (see “[Public-key cryptogra…
941 The key must be a public key (or a key pair) allowing the usage `PSA_KEY_USAGE_VERIFY_HASH` (see “[…
977 The PSA API offers similar functionality via “interruptible” public-key operations. As of Mbed TLS …
982 …_interruptible__hash_1ga441988da830205182b3e791352537fac) with the private key object and the hash…
988 …_interruptible__hash_1ga912eb51fb94056858f451f276ee289cb) with the private key object and the hash…
997 …s_rsa_pkcs1_verify` for an RSA key, unless PSS has been selected with `mbedtls_rsa_set_padding` on…
1006 This mechanism corresponds to `mbedtls_pk_sign_ext` and `mbedtls_pk_verify_ext` for an RSA key, as …
1019 …_rsa_rsaes_oaep_encrypt` to encrypt a short message (typically a symmetric key) is [`psa_asymmetri…
1020 The key must be a public key (or a key pair) allowing the usage `PSA_KEY_USAGE_ENCRYPT` (see “[Publ…
1023 …_rsa_rsaes_oaep_decrypt` to decrypt a short message (typically a symmetric key) is [`psa_asymmetri…
1024 The key must be a key pair allowing the usage `PSA_KEY_USAGE_DECRYPT` (see “[Public-key cryptograph…
1031 …crypt,decrypt}` unless `mbedtls_rsa_set_padding` has been called on the underlying RSA key context.
1046 ### Private-public key consistency
1048 …it imports a key, and may perform additional checks before performing an operation if needed, so i…
1050 …iv`, which can be used to check the consistency between a private key and a public key. To perform…
1052 * Prepare a key object containing the private key, for example with [`psa_import_key`](https://mbed…
1053 * Prepare a key object containing the public key, for example with [`psa_import_key`](https://mbed-…
1070 …ug functionality provided by `mbedtls_pk_debug`. Use `psa_export_key` to export the key if desired.
1072 There is no PSA equivalent to Mbed TLS's custom key type names exposed by `mbedtls_pk_get_name`.
1076 The PSA API has a generic interface for key agreement, covering the main use of both `ecdh.h` and `…
1082 #### Diffie-Hellman key pair management
1084 … to use Diffie-Hellman, you need to create a key object, then perform the key exchange, then destr…
1086 Here is an overview of the lifecycle of a key object.
1088 1. First define the attributes of the key by filling a [`psa_key_attributes_t` structure](https://m…
1089 …ributes/#group__attributes_1ga6857ef0ecb3fa844d4536939d9c64025) to set the key type to the desired…
1092 …to set the private key size in bits. This is optional with `psa_import_key`, which determines the …
1094 …__crypto__types/#group__crypto__types_1ga0ebbb6f93a05b6511e6f108ffd2d1eb4) for a raw key agreement.
1095 …__crypto__types_1ga78bb81cffb87a635c247725eeb2a2682) if the key will be used as part of a key deri…
1097 * `kdf` is a key derivation algorithm.
1098 …oup/group__policy/#c.PSA_KEY_USAGE_DERIVE). See “[Public-key cryptography policies](#public-key-cr…
1099 …key creation functions, passing the attributes defined in the previous step, to get an identifier …
1100 …e417dfbccedf50d5fff54ea8c5) to generate a random key. This is normally the case for a Diffie-Hellm…
1101 …export/#group__import__export_1ga0336ea76bf30587ab204a8296462327b) to directly import key material.
1102 …key is derived deterministically from other material, use the [key derivation interface](https://m…
1103 3. Call the functions in the following sections to perform operations on the key. The same key obje…
1104 …key object, call [`psa_destroy_key`](https://mbed-tls.readthedocs.io/projects/api/en/development/a…
1106 #### Performing a key agreement
1108 …__import__export_1gaf22ae73312217aaede2ea02cdebb6062) to obtain the public key that needs to be se…
1111 …6184824675f) to calculate the shared secret from your private key and the other party's public key.
1114 …ulting shared secret as the secret input to a key derivation. See “[HKDF](#hkdf)” for an example o…
1116 #### Translating a legacy key agreement contextless workflow
1122 * `mbedtls_mpi our_priv` for our private key;
1123 * `mbedtls_ecp_point our_pub` for our public key;
1124 …* `mbedtls_ecp_point their_pub` for their public key (this may be the same variable as `our_pub` i…
1127 …riv` (output) and `our_pub` (output) to generate a key pair and retrieve the corresponding public …
1128 4. Send `our_pub` to the peer. Retrieve the peer's public key and import it into `their_pub`. These…
1129 …), `their_pub` and `our_priv`. Use the raw shared secret `z`, typically, to construct a shared key.
1135 * `psa_key_id_t our_key`: a handle to our key pair;
1136 * `psa_key_attributes_t attributes`: key attributes used in steps 2–3;;
1137 …ts/api/en/development/api/file/crypto__sizes_8h/#c.PSA_EXPORT_PUBLIC_KEY_MAX_SIZE) to hold our key.
1138 …* `their_pub`: a buffer of the same size, to hold the peer's key. This can be the same as `our_pub…
1139 …crypto__sizes_8h/#c.PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE) (if not using a key derivation operatio…
1140 …an attribute structure as described in “[Diffie-Hellman key pair management](#diffie-hellman-key-p…
1141 …key pair, then [`psa_export_public_key`](https://mbed-tls.readthedocs.io/projects/api/en/developme…
1142 4. Send `our_pub` to the peer. Retrieve the peer's public key and import it into `their_pub`. These…
1144 …o use the shared secret directly in a key derivation operation (see “[Performing a key agreement](…
1147 … for a "fake ephemeral" Diffie-Hellman where the same private key is used for multiple key exchang…
1149 #### Translating a legacy ephemeral key agreement TLS server workflow
1151 …key agreement in a TLS 1.2 server. The PSA version of this workflow can also be used with other pr…
1156 …params` to generate our key pair and obtain a TLS ServerKeyExchange message encoding the selected …
1158 3. Retrieve the peer's public key.
1159 4. Call `mbedtls_ecdh_read_public` or `mbedtls_dhm_read_public` on the peer's public key, then call…
1165 …enerate an ECDH or DHM key pair with `psa_generate_key` as described in “[Diffie-Hellman key pair …
1166 …mport__export/#group__import__export_1gaf22ae73312217aaede2ea02cdebb6062) to obtain our public key.
1167 3. Format a ServerKeyExchange message containing the curve/group selection and our public key.
1169 3. Retrieve the peer's public key.
1171 …o use the shared secret directly in a key derivation operation (see “[Performing a key agreement](…
1172 …management_1ga5f52644312291335682fbc0292c43cd2) to free the resources associated with our key pair.
1174 #### Translating a legacy ephemeral key agreement TLS client workflow
1176 …key agreement in a TLS 1.2 client. The PSA version of this workflow can also be used with other pr…
1178 …e message received from the peer, which encodes the selected curve/group and the peer's public key:
1181 …cdh_make_public` or `mbedtls_dh_make_public` to generate our private key and export our public key.
1182 3. Send our public key to the peer.
1188 …e message received from the peer, which encodes the selected curve/group and the peer's public key:
1189 …and use this to determine a PSA key type (`PSA_KEY_TYPE_ECC_KEY_PAIR(curve)` or `PSA_KEY_TYPE_DH_K…
1190 …enerate an ECDH or DHM key pair with `psa_generate_key` as described in “[Diffie-Hellman key pair …
1191 …mport__export/#group__import__export_1gaf22ae73312217aaede2ea02cdebb6062) to obtain our public key.
1192 3. Send our public key to the peer.
1194 …o use the shared secret directly in a key derivation operation (see “[Performing a key agreement](…
1195 …management_1ga5f52644312291335682fbc0292c43cd2) to free the resources associated with our key pair.
1199 You can obtain data and metadata from an ECDH key agreement through the PSA API as follows:
1201 …key identifier, then [`psa_get_key_type`](https://mbed-tls.readthedocs.io/projects/api/en/developm…
1202 …key: call [`psa_export_public_key`](https://mbed-tls.readthedocs.io/projects/api/en/development/ap…
1203 …key: call [`psa_export_key`](https://mbed-tls.readthedocs.io/projects/api/en/development/api/group…
1204 …key: there is no PSA equivalent since the PSA API only uses the peer's public key to immediately c…
1206 …ller to obtain metadata about the keys used for the key exchange. The PSA equivalents access the k…
1208 …ributes/#group__attributes_1gacbbf5c11eac6cd70c87ffb936e1b9be2) on the PSA key identifier, then [`…
1209 …key): call [`psa_export_key`](https://mbed-tls.readthedocs.io/projects/api/en/development/api/grou…
1210 …key): call [`psa_export_public_key`](https://mbed-tls.readthedocs.io/projects/api/en/development/a…
1211 …key): the there is no PSA equivalent since the PSA API only uses the peer's public key to immediat…
1217 #### Restartable key agreement
1219 …e key agreement (enabled by `mbedtls_ecdh_enable_restart`) is not yet available through the PSA AP…
1229 The bit-size used by the PSA API is the size of the private key. For most curves, the PSA bit-size,…
1276 * Manipulation of key pairs as such, with a bridge to bignum arithmetic (`mbedtls_ecp_keypair` type…
1286 …key in a high-security environment: use the opaque driver interface. This is mostly transparent to…
1298 … followed by `mbedtls_rsa_complete`. See “[Importing a PK key by wrapping](#importing-a-pk-key-by-…
1300 …key. You can export the whole key with `psa_export_key`, or with `psa_export_public_key` to export…
1302 …key object is immutable, so there is no need for an equivalent of `mbedtls_rsa_copy`. (There is a …
1310 …1.h`, `asn1write.h`, `oid.h` and `pem.h` are intended to support X.509 and key file formats. They …
1322 …The legacy API always applies the key derivation specified by TLS 1.2 to the shared secret. With t…