edhoc 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +64 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_types.h +34 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_ead_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_ead_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_edhoc_types.h +97 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_types.h +37 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_info_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_info_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_types.h +34 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_decode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_encode.h +35 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_types.h +38 -0
- package/external/libedhoc/backends/cbor/include/backend_cbor_x509_types.h +170 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_decode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_encode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_ead_decode.c +74 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_ead_encode.c +74 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_decode.c +62 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_encode.c +62 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_decode.c +141 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_encode.c +141 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_info_decode.c +61 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_info_encode.c +61 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_decode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_encode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_decode.c +112 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_encode.c +112 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_decode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_encode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_decode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_encode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_decode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_encode.c +59 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_decode.c +93 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_encode.c +93 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_decode.c +193 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_encode.c +194 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_decode.c +189 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_encode.c +189 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_decode.c +88 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_encode.c +88 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_decode.c +63 -0
- package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_encode.c +63 -0
- package/external/libedhoc/externals/compact25519/src/c25519/c25519.c +126 -0
- package/external/libedhoc/externals/compact25519/src/c25519/c25519.h +49 -0
- package/external/libedhoc/externals/compact25519/src/c25519/ed25519.c +323 -0
- package/external/libedhoc/externals/compact25519/src/c25519/ed25519.h +84 -0
- package/external/libedhoc/externals/compact25519/src/c25519/edsign.c +171 -0
- package/external/libedhoc/externals/compact25519/src/c25519/edsign.h +53 -0
- package/external/libedhoc/externals/compact25519/src/c25519/f25519.c +330 -0
- package/external/libedhoc/externals/compact25519/src/c25519/f25519.h +98 -0
- package/external/libedhoc/externals/compact25519/src/c25519/fprime.c +226 -0
- package/external/libedhoc/externals/compact25519/src/c25519/fprime.h +81 -0
- package/external/libedhoc/externals/compact25519/src/c25519/sha512.c +230 -0
- package/external/libedhoc/externals/compact25519/src/c25519/sha512.h +54 -0
- package/external/libedhoc/externals/compact25519/src/compact_ed25519.c +46 -0
- package/external/libedhoc/externals/compact25519/src/compact_ed25519.h +110 -0
- package/external/libedhoc/externals/compact25519/src/compact_wipe.c +12 -0
- package/external/libedhoc/externals/compact25519/src/compact_wipe.h +14 -0
- package/external/libedhoc/externals/compact25519/src/compact_x25519.c +68 -0
- package/external/libedhoc/externals/compact25519/src/compact_x25519.h +101 -0
- package/external/libedhoc/externals/compact25519/test/pcg_random.h +25 -0
- package/external/libedhoc/externals/compact25519/test/run-all.c +178 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/Hacl_Curve25519.h +21 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/everest.h +234 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlib/FStar_UInt128.h +124 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h +280 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlib.h +29 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/c_endianness.h +204 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/builtin.h +16 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/callconv.h +46 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/compat.h +34 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/debug.h +57 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/target.h +102 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/types.h +61 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/wasmsupport.h +5 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/vs2013/Hacl_Curve25519.h +21 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/vs2013/inttypes.h +36 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/vs2013/stdbool.h +31 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/x25519.h +190 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/Hacl_Curve25519.c +760 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/Hacl_Curve25519_joined.c +50 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/everest.c +102 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/kremlib/FStar_UInt128_extracted.c +413 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c +100 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/legacy/Hacl_Curve25519.c +805 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/x25519.c +186 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m/p256-m.c +1514 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m/p256-m.h +135 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m_driver_entrypoints.c +312 -0
- package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m_driver_entrypoints.h +219 -0
- package/external/libedhoc/externals/mbedtls/configs/config-ccm-psk-dtls1_2.h +92 -0
- package/external/libedhoc/externals/mbedtls/configs/config-ccm-psk-tls1_2.h +83 -0
- package/external/libedhoc/externals/mbedtls/configs/config-no-entropy.h +73 -0
- package/external/libedhoc/externals/mbedtls/configs/config-suite-b.h +106 -0
- package/external/libedhoc/externals/mbedtls/configs/config-symmetric-only.h +77 -0
- package/external/libedhoc/externals/mbedtls/configs/config-thread.h +76 -0
- package/external/libedhoc/externals/mbedtls/configs/crypto-config-ccm-aes-sha256.h +25 -0
- package/external/libedhoc/externals/mbedtls/configs/crypto_config_profile_medium.h +136 -0
- package/external/libedhoc/externals/mbedtls/configs/tfm_mbedcrypto_config_profile_medium.h +609 -0
- package/external/libedhoc/externals/mbedtls/doxygen/input/doc_encdec.h +54 -0
- package/external/libedhoc/externals/mbedtls/doxygen/input/doc_hashing.h +30 -0
- package/external/libedhoc/externals/mbedtls/doxygen/input/doc_mainpage.h +19 -0
- package/external/libedhoc/externals/mbedtls/doxygen/input/doc_rng.h +27 -0
- package/external/libedhoc/externals/mbedtls/doxygen/input/doc_ssltls.h +37 -0
- package/external/libedhoc/externals/mbedtls/doxygen/input/doc_tcpip.h +32 -0
- package/external/libedhoc/externals/mbedtls/doxygen/input/doc_x509.h +31 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/aes.h +627 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/aria.h +341 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/asn1.h +641 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/asn1write.h +389 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/base64.h +82 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/bignum.h +1084 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/build_info.h +146 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/camellia.h +303 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ccm.h +518 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/chacha20.h +202 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/chachapoly.h +342 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/check_config.h +1206 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/cipher.h +1183 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/cmac.h +246 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/compat-2.x.h +46 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h +183 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h +877 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h +334 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h +142 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_ssl.h +76 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_x509.h +25 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/config_psa.h +55 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/constant_time.h +36 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ctr_drbg.h +564 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/debug.h +308 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/des.h +385 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/dhm.h +972 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ecdh.h +441 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ecdsa.h +671 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ecjpake.h +298 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ecp.h +1362 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/entropy.h +273 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/error.h +201 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/gcm.h +370 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/hkdf.h +124 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/hmac_drbg.h +434 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/lms.h +440 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/mbedtls_config.h +4116 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/md.h +640 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/md5.h +190 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/memory_buffer_alloc.h +142 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/net_sockets.h +299 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/nist_kw.h +166 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/oid.h +722 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/pem.h +160 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/pk.h +1091 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/pkcs12.h +186 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/pkcs5.h +197 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/pkcs7.h +241 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/platform.h +485 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/platform_time.h +79 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/platform_util.h +201 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/poly1305.h +168 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/private_access.h +20 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/psa_util.h +104 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ripemd160.h +136 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/rsa.h +1143 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/sha1.h +219 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/sha256.h +198 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/sha3.h +172 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/sha512.h +208 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl.h +5369 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_cache.h +187 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_ciphersuites.h +616 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_cookie.h +106 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_ticket.h +181 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/threading.h +105 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/timing.h +94 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/version.h +78 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/x509.h +550 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/x509_crl.h +184 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/x509_crt.h +1196 -0
- package/external/libedhoc/externals/mbedtls/include/mbedtls/x509_csr.h +319 -0
- package/external/libedhoc/externals/mbedtls/include/psa/build_info.h +20 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto.h +4685 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_adjust_auto_enabled.h +21 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h +91 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_adjust_config_synonyms.h +45 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_builtin_composites.h +210 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_builtin_key_derivation.h +118 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_builtin_primitives.h +114 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_compat.h +153 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_config.h +153 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_common.h +44 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_contexts_composites.h +151 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h +52 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_contexts_primitives.h +105 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_extra.h +2064 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_legacy.h +88 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_platform.h +92 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_se_driver.h +1383 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_sizes.h +1282 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_struct.h +460 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_types.h +453 -0
- package/external/libedhoc/externals/mbedtls/include/psa/crypto_values.h +2756 -0
- package/external/libedhoc/externals/mbedtls/library/aes.c +2315 -0
- package/external/libedhoc/externals/mbedtls/library/aesce.c +503 -0
- package/external/libedhoc/externals/mbedtls/library/aesce.h +121 -0
- package/external/libedhoc/externals/mbedtls/library/aesni.c +802 -0
- package/external/libedhoc/externals/mbedtls/library/aesni.h +158 -0
- package/external/libedhoc/externals/mbedtls/library/alignment.h +509 -0
- package/external/libedhoc/externals/mbedtls/library/aria.c +991 -0
- package/external/libedhoc/externals/mbedtls/library/asn1parse.c +467 -0
- package/external/libedhoc/externals/mbedtls/library/asn1write.c +436 -0
- package/external/libedhoc/externals/mbedtls/library/base64.c +299 -0
- package/external/libedhoc/externals/mbedtls/library/base64_internal.h +45 -0
- package/external/libedhoc/externals/mbedtls/library/bignum.c +2806 -0
- package/external/libedhoc/externals/mbedtls/library/bignum_core.c +894 -0
- package/external/libedhoc/externals/mbedtls/library/bignum_core.h +763 -0
- package/external/libedhoc/externals/mbedtls/library/bignum_mod.c +394 -0
- package/external/libedhoc/externals/mbedtls/library/bignum_mod.h +452 -0
- package/external/libedhoc/externals/mbedtls/library/bignum_mod_raw.c +276 -0
- package/external/libedhoc/externals/mbedtls/library/bignum_mod_raw.h +416 -0
- package/external/libedhoc/externals/mbedtls/library/bignum_mod_raw_invasive.h +34 -0
- package/external/libedhoc/externals/mbedtls/library/bn_mul.h +1094 -0
- package/external/libedhoc/externals/mbedtls/library/camellia.c +1044 -0
- package/external/libedhoc/externals/mbedtls/library/ccm.c +712 -0
- package/external/libedhoc/externals/mbedtls/library/chacha20.c +497 -0
- package/external/libedhoc/externals/mbedtls/library/chachapoly.c +478 -0
- package/external/libedhoc/externals/mbedtls/library/check_crypto_config.h +141 -0
- package/external/libedhoc/externals/mbedtls/library/cipher.c +1664 -0
- package/external/libedhoc/externals/mbedtls/library/cipher_wrap.c +2422 -0
- package/external/libedhoc/externals/mbedtls/library/cipher_wrap.h +132 -0
- package/external/libedhoc/externals/mbedtls/library/cmac.c +1067 -0
- package/external/libedhoc/externals/mbedtls/library/common.h +325 -0
- package/external/libedhoc/externals/mbedtls/library/constant_time.c +261 -0
- package/external/libedhoc/externals/mbedtls/library/constant_time_impl.h +554 -0
- package/external/libedhoc/externals/mbedtls/library/constant_time_internal.h +579 -0
- package/external/libedhoc/externals/mbedtls/library/ctr_drbg.c +881 -0
- package/external/libedhoc/externals/mbedtls/library/debug.c +465 -0
- package/external/libedhoc/externals/mbedtls/library/des.c +1042 -0
- package/external/libedhoc/externals/mbedtls/library/dhm.c +712 -0
- package/external/libedhoc/externals/mbedtls/library/ecdh.c +685 -0
- package/external/libedhoc/externals/mbedtls/library/ecdsa.c +867 -0
- package/external/libedhoc/externals/mbedtls/library/ecjpake.c +1216 -0
- package/external/libedhoc/externals/mbedtls/library/ecp.c +3631 -0
- package/external/libedhoc/externals/mbedtls/library/ecp_curves.c +5467 -0
- package/external/libedhoc/externals/mbedtls/library/ecp_curves_new.c +6043 -0
- package/external/libedhoc/externals/mbedtls/library/ecp_internal_alt.h +287 -0
- package/external/libedhoc/externals/mbedtls/library/ecp_invasive.h +325 -0
- package/external/libedhoc/externals/mbedtls/library/entropy.c +676 -0
- package/external/libedhoc/externals/mbedtls/library/entropy_poll.c +229 -0
- package/external/libedhoc/externals/mbedtls/library/entropy_poll.h +64 -0
- package/external/libedhoc/externals/mbedtls/library/error.c +878 -0
- package/external/libedhoc/externals/mbedtls/library/gcm.c +1168 -0
- package/external/libedhoc/externals/mbedtls/library/hkdf.c +161 -0
- package/external/libedhoc/externals/mbedtls/library/hmac_drbg.c +633 -0
- package/external/libedhoc/externals/mbedtls/library/lmots.c +821 -0
- package/external/libedhoc/externals/mbedtls/library/lmots.h +311 -0
- package/external/libedhoc/externals/mbedtls/library/lms.c +779 -0
- package/external/libedhoc/externals/mbedtls/library/md.c +1108 -0
- package/external/libedhoc/externals/mbedtls/library/md5.c +426 -0
- package/external/libedhoc/externals/mbedtls/library/md_psa.h +63 -0
- package/external/libedhoc/externals/mbedtls/library/md_wrap.h +46 -0
- package/external/libedhoc/externals/mbedtls/library/memory_buffer_alloc.c +745 -0
- package/external/libedhoc/externals/mbedtls/library/mps_common.h +181 -0
- package/external/libedhoc/externals/mbedtls/library/mps_error.h +89 -0
- package/external/libedhoc/externals/mbedtls/library/mps_reader.c +538 -0
- package/external/libedhoc/externals/mbedtls/library/mps_reader.h +366 -0
- package/external/libedhoc/externals/mbedtls/library/mps_trace.c +112 -0
- package/external/libedhoc/externals/mbedtls/library/mps_trace.h +154 -0
- package/external/libedhoc/externals/mbedtls/library/net_sockets.c +696 -0
- package/external/libedhoc/externals/mbedtls/library/nist_kw.c +725 -0
- package/external/libedhoc/externals/mbedtls/library/oid.c +1154 -0
- package/external/libedhoc/externals/mbedtls/library/padlock.c +155 -0
- package/external/libedhoc/externals/mbedtls/library/padlock.h +111 -0
- package/external/libedhoc/externals/mbedtls/library/pem.c +520 -0
- package/external/libedhoc/externals/mbedtls/library/pk.c +970 -0
- package/external/libedhoc/externals/mbedtls/library/pk_internal.h +118 -0
- package/external/libedhoc/externals/mbedtls/library/pk_wrap.c +1834 -0
- package/external/libedhoc/externals/mbedtls/library/pk_wrap.h +156 -0
- package/external/libedhoc/externals/mbedtls/library/pkcs12.c +447 -0
- package/external/libedhoc/externals/mbedtls/library/pkcs5.c +496 -0
- package/external/libedhoc/externals/mbedtls/library/pkcs7.c +773 -0
- package/external/libedhoc/externals/mbedtls/library/pkparse.c +1845 -0
- package/external/libedhoc/externals/mbedtls/library/pkwrite.c +836 -0
- package/external/libedhoc/externals/mbedtls/library/pkwrite.h +112 -0
- package/external/libedhoc/externals/mbedtls/library/platform.c +402 -0
- package/external/libedhoc/externals/mbedtls/library/platform_util.c +285 -0
- package/external/libedhoc/externals/mbedtls/library/poly1305.c +492 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto.c +8432 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_aead.c +653 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_aead.h +499 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_cipher.c +590 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_cipher.h +293 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_client.c +67 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_core.h +838 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_core_common.h +52 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_driver_wrappers.h +2871 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_driver_wrappers_no_static.c +256 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_driver_wrappers_no_static.h +31 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_ecp.c +561 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_ecp.h +267 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_ffdh.c +295 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_ffdh.h +132 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_hash.c +470 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_hash.h +211 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_invasive.h +70 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_its.h +131 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_mac.c +496 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_mac.h +264 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_pake.c +571 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_pake.h +159 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_random_impl.h +192 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_rsa.c +727 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_rsa.h +317 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_se.c +373 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_se.h +185 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_slot_management.c +559 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_slot_management.h +213 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_storage.c +481 -0
- package/external/libedhoc/externals/mbedtls/library/psa_crypto_storage.h +384 -0
- package/external/libedhoc/externals/mbedtls/library/psa_its_file.c +259 -0
- package/external/libedhoc/externals/mbedtls/library/psa_util.c +160 -0
- package/external/libedhoc/externals/mbedtls/library/psa_util_internal.h +96 -0
- package/external/libedhoc/externals/mbedtls/library/ripemd160.c +490 -0
- package/external/libedhoc/externals/mbedtls/library/rsa.c +2640 -0
- package/external/libedhoc/externals/mbedtls/library/rsa_alt_helpers.c +447 -0
- package/external/libedhoc/externals/mbedtls/library/rsa_alt_helpers.h +208 -0
- package/external/libedhoc/externals/mbedtls/library/sha1.c +480 -0
- package/external/libedhoc/externals/mbedtls/library/sha256.c +946 -0
- package/external/libedhoc/externals/mbedtls/library/sha3.c +626 -0
- package/external/libedhoc/externals/mbedtls/library/sha512.c +1111 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_cache.c +410 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_ciphersuites.c +2050 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_client.c +1017 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_client.h +22 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_cookie.c +380 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_debug_helpers.h +78 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_debug_helpers_generated.c +234 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_misc.h +2847 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_msg.c +6155 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_ticket.c +540 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_tls.c +9577 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_tls12_client.c +3607 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_tls12_server.c +4403 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_tls13_client.c +3046 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_tls13_generic.c +1740 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_tls13_invasive.h +23 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_tls13_keys.c +1897 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_tls13_keys.h +651 -0
- package/external/libedhoc/externals/mbedtls/library/ssl_tls13_server.c +3146 -0
- package/external/libedhoc/externals/mbedtls/library/threading.c +181 -0
- package/external/libedhoc/externals/mbedtls/library/timing.c +154 -0
- package/external/libedhoc/externals/mbedtls/library/version.c +32 -0
- package/external/libedhoc/externals/mbedtls/library/version_features.c +826 -0
- package/external/libedhoc/externals/mbedtls/library/x509.c +1776 -0
- package/external/libedhoc/externals/mbedtls/library/x509_create.c +557 -0
- package/external/libedhoc/externals/mbedtls/library/x509_crl.c +712 -0
- package/external/libedhoc/externals/mbedtls/library/x509_crt.c +3292 -0
- package/external/libedhoc/externals/mbedtls/library/x509_csr.c +574 -0
- package/external/libedhoc/externals/mbedtls/library/x509write.c +174 -0
- package/external/libedhoc/externals/mbedtls/library/x509write_crt.c +681 -0
- package/external/libedhoc/externals/mbedtls/library/x509write_csr.c +331 -0
- package/external/libedhoc/externals/mbedtls/programs/aes/crypt_and_hash.c +573 -0
- package/external/libedhoc/externals/mbedtls/programs/cipher/cipher_aead_demo.c +259 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/common.c +105 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/common.h +25 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_client.c +195 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_dtlsclient.c +138 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_dtlsserver.c +183 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_pkcs7.c +20 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_privkey.c +106 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_pubkey.c +86 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_server.c +218 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_x509crl.c +41 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_x509crt.c +41 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_x509csr.c +41 -0
- package/external/libedhoc/externals/mbedtls/programs/fuzz/onefile.c +69 -0
- package/external/libedhoc/externals/mbedtls/programs/hash/generic_sum.c +209 -0
- package/external/libedhoc/externals/mbedtls/programs/hash/hello.c +45 -0
- package/external/libedhoc/externals/mbedtls/programs/hash/md_hmac_demo.c +136 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/dh_client.c +274 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/dh_genprime.c +161 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/dh_server.c +296 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/ecdh_curve25519.c +189 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/ecdsa.c +217 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/gen_key.c +419 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/key_app.c +316 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/key_app_writer.c +435 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/mpi_demo.c +84 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/pk_decrypt.c +153 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/pk_encrypt.c +154 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/pk_sign.c +155 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/pk_verify.c +128 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_decrypt.c +172 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_encrypt.c +149 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_genkey.c +141 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_sign.c +155 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_sign_pss.c +161 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_verify.c +131 -0
- package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_verify_pss.c +136 -0
- package/external/libedhoc/externals/mbedtls/programs/psa/aead_demo.c +281 -0
- package/external/libedhoc/externals/mbedtls/programs/psa/crypto_examples.c +321 -0
- package/external/libedhoc/externals/mbedtls/programs/psa/hmac_demo.c +159 -0
- package/external/libedhoc/externals/mbedtls/programs/psa/key_ladder_demo.c +691 -0
- package/external/libedhoc/externals/mbedtls/programs/psa/psa_constant_names.c +310 -0
- package/external/libedhoc/externals/mbedtls/programs/psa/psa_constant_names_generated.c +474 -0
- package/external/libedhoc/externals/mbedtls/programs/random/gen_entropy.c +75 -0
- package/external/libedhoc/externals/mbedtls/programs/random/gen_random_ctr_drbg.c +107 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/dtls_client.c +342 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/dtls_server.c +408 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/mini_client.c +274 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_client1.c +288 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_client2.c +3118 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_context_info.c +1009 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_fork_server.c +381 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_mail_client.c +804 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_pthread_server.c +489 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_server.c +362 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_server2.c +4268 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_test_common_source.c +375 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_test_lib.c +601 -0
- package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_test_lib.h +306 -0
- package/external/libedhoc/externals/mbedtls/programs/test/benchmark.c +1284 -0
- package/external/libedhoc/externals/mbedtls/programs/test/cmake_package/cmake_package.c +27 -0
- package/external/libedhoc/externals/mbedtls/programs/test/cmake_package_install/cmake_package_install.c +28 -0
- package/external/libedhoc/externals/mbedtls/programs/test/cmake_subproject/cmake_subproject.c +28 -0
- package/external/libedhoc/externals/mbedtls/programs/test/dlopen.c +92 -0
- package/external/libedhoc/externals/mbedtls/programs/test/query_compile_time_config.c +66 -0
- package/external/libedhoc/externals/mbedtls/programs/test/query_config.c +5137 -0
- package/external/libedhoc/externals/mbedtls/programs/test/query_config.h +34 -0
- package/external/libedhoc/externals/mbedtls/programs/test/query_included_headers.c +29 -0
- package/external/libedhoc/externals/mbedtls/programs/test/selftest.c +583 -0
- package/external/libedhoc/externals/mbedtls/programs/test/udp_proxy.c +967 -0
- package/external/libedhoc/externals/mbedtls/programs/test/zeroize.c +72 -0
- package/external/libedhoc/externals/mbedtls/programs/util/pem2der.c +265 -0
- package/external/libedhoc/externals/mbedtls/programs/util/strerror.c +61 -0
- package/external/libedhoc/externals/mbedtls/programs/wince_main.c +31 -0
- package/external/libedhoc/externals/mbedtls/programs/x509/cert_app.c +456 -0
- package/external/libedhoc/externals/mbedtls/programs/x509/cert_req.c +509 -0
- package/external/libedhoc/externals/mbedtls/programs/x509/cert_write.c +1012 -0
- package/external/libedhoc/externals/mbedtls/programs/x509/crl_app.c +132 -0
- package/external/libedhoc/externals/mbedtls/programs/x509/load_roots.c +165 -0
- package/external/libedhoc/externals/mbedtls/programs/x509/req_app.c +132 -0
- package/external/libedhoc/externals/mbedtls/tests/configs/tls13-only.h +31 -0
- package/external/libedhoc/externals/mbedtls/tests/configs/user-config-for-test.h +89 -0
- package/external/libedhoc/externals/mbedtls/tests/configs/user-config-malloc-0-null.h +22 -0
- package/external/libedhoc/externals/mbedtls/tests/configs/user-config-zeroize-memset.h +17 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/aes_alt.h +23 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/aria_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/camellia_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ccm_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/chacha20_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/chachapoly_alt.h +18 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/cmac_alt.h +15 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/des_alt.h +22 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/dhm_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ecjpake_alt.h +15 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ecp_alt.h +22 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/gcm_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/md5_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/nist_kw_alt.h +15 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/platform_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/poly1305_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ripemd160_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/rsa_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/sha1_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/sha256_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/sha512_alt.h +16 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/threading_alt.h +14 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/timing_alt.h +19 -0
- package/external/libedhoc/externals/mbedtls/tests/include/alt-extra/psa/crypto.h +7 -0
- package/external/libedhoc/externals/mbedtls/tests/include/baremetal-override/time.h +6 -0
- package/external/libedhoc/externals/mbedtls/tests/include/spe/crypto_spe.h +131 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/arguments.h +26 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/asn1_helpers.h +38 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/bignum_helpers.h +106 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/certs.h +234 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/constant_flow.h +71 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/aead.h +121 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/asymmetric_encryption.h +67 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/cipher.h +130 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/config_test_driver.h +44 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/crypto_config_test_driver_extension.h +430 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/hash.h +64 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/key_agreement.h +62 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/key_management.h +123 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/mac.h +125 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/pake.h +75 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/signature.h +112 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/test_driver.h +32 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/fake_external_rng_for_test.h +40 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/helpers.h +268 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/macros.h +250 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/psa_crypto_helpers.h +398 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/psa_exercise_key.h +223 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/psa_helpers.h +24 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/random.h +91 -0
- package/external/libedhoc/externals/mbedtls/tests/include/test/ssl_helpers.h +628 -0
- package/external/libedhoc/externals/mbedtls/tests/src/asn1_helpers.c +62 -0
- package/external/libedhoc/externals/mbedtls/tests/src/bignum_helpers.c +145 -0
- package/external/libedhoc/externals/mbedtls/tests/src/certs.c +480 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/hash.c +199 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/platform_builtin_keys.c +78 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_aead.c +462 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_asymmetric_encryption.c +151 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_cipher.c +424 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_key_agreement.c +147 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_key_management.c +783 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_mac.c +422 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_pake.c +202 -0
- package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_signature.c +405 -0
- package/external/libedhoc/externals/mbedtls/tests/src/fake_external_rng_for_test.c +45 -0
- package/external/libedhoc/externals/mbedtls/tests/src/helpers.c +353 -0
- package/external/libedhoc/externals/mbedtls/tests/src/psa_crypto_helpers.c +196 -0
- package/external/libedhoc/externals/mbedtls/tests/src/psa_exercise_key.c +989 -0
- package/external/libedhoc/externals/mbedtls/tests/src/random.c +136 -0
- package/external/libedhoc/externals/mbedtls/tests/src/test_certs.h +1226 -0
- package/external/libedhoc/externals/mbedtls/tests/src/test_helpers/ssl_helpers.c +2292 -0
- package/external/libedhoc/externals/mbedtls/tests/src/threading_helpers.c +210 -0
- package/external/libedhoc/externals/zcbor/include/zcbor_common.h +422 -0
- package/external/libedhoc/externals/zcbor/include/zcbor_debug.h +69 -0
- package/external/libedhoc/externals/zcbor/include/zcbor_decode.h +358 -0
- package/external/libedhoc/externals/zcbor/include/zcbor_encode.h +296 -0
- package/external/libedhoc/externals/zcbor/include/zcbor_tags.h +94 -0
- package/external/libedhoc/externals/zcbor/samples/hello_world/src/main.c +41 -0
- package/external/libedhoc/externals/zcbor/samples/pet/include/pet_decode.h +39 -0
- package/external/libedhoc/externals/zcbor/samples/pet/include/pet_encode.h +39 -0
- package/external/libedhoc/externals/zcbor/samples/pet/include/pet_types.h +47 -0
- package/external/libedhoc/externals/zcbor/samples/pet/src/main.c +128 -0
- package/external/libedhoc/externals/zcbor/samples/pet/src/pet_decode.c +69 -0
- package/external/libedhoc/externals/zcbor/samples/pet/src/pet_encode.c +70 -0
- package/external/libedhoc/externals/zcbor/src/zcbor_common.c +257 -0
- package/external/libedhoc/externals/zcbor/src/zcbor_decode.c +1107 -0
- package/external/libedhoc/externals/zcbor/src/zcbor_encode.c +722 -0
- package/external/libedhoc/externals/zcbor/tests/decode/test1_suit_old_formats/src/main.c +368 -0
- package/external/libedhoc/externals/zcbor/tests/decode/test2_suit/src/main.c +189 -0
- package/external/libedhoc/externals/zcbor/tests/decode/test3_simple/src/main.c +529 -0
- package/external/libedhoc/externals/zcbor/tests/decode/test5_corner_cases/src/main.c +2010 -0
- package/external/libedhoc/externals/zcbor/tests/decode/test7_suit9_simple/src/main.c +134 -0
- package/external/libedhoc/externals/zcbor/tests/decode/test8_suit12/src/main.c +863 -0
- package/external/libedhoc/externals/zcbor/tests/decode/test9_manifest14/src/main.c +364 -0
- package/external/libedhoc/externals/zcbor/tests/encode/test1_suit/src/main.c +453 -0
- package/external/libedhoc/externals/zcbor/tests/encode/test2_simple/src/main.c +123 -0
- package/external/libedhoc/externals/zcbor/tests/encode/test3_corner_cases/src/main.c +1527 -0
- package/external/libedhoc/externals/zcbor/tests/encode/test4_senml/src/main.c +66 -0
- package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_manifest12.c +136 -0
- package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_pet.c +12 -0
- package/external/libedhoc/externals/zcbor/tests/fuzz/main_entry.c +60 -0
- package/external/libedhoc/externals/zcbor/tests/fuzz/main_entry.h +5 -0
- package/external/libedhoc/externals/zcbor/tests/unit/test1_unit_tests/src/main.c +1044 -0
- package/external/libedhoc/externals/zcbor/tests/unit/test3_float16/src/main.c +202 -0
- package/external/libedhoc/include/edhoc.h +393 -0
- package/external/libedhoc/include/edhoc_context.h +318 -0
- package/external/libedhoc/include/edhoc_credentials.h +217 -0
- package/external/libedhoc/include/edhoc_crypto.h +331 -0
- package/external/libedhoc/include/edhoc_ead.h +99 -0
- package/external/libedhoc/include/edhoc_macros.h +51 -0
- package/external/libedhoc/include/edhoc_values.h +181 -0
- package/external/libedhoc/library/edhoc.c +219 -0
- package/external/libedhoc/library/edhoc_exporter.c +543 -0
- package/external/libedhoc/library/edhoc_message_1.c +439 -0
- package/external/libedhoc/library/edhoc_message_2.c +2994 -0
- package/external/libedhoc/library/edhoc_message_3.c +2658 -0
- package/external/libedhoc/library/edhoc_message_4.c +826 -0
- package/external/libedhoc/library/edhoc_message_error.c +238 -0
- package/external/libedhoc/tests/include/cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.h +37 -0
- package/external/libedhoc/tests/include/cipher_suites/cipher_suite_0.h +134 -0
- package/external/libedhoc/tests/include/cipher_suites/cipher_suite_2.h +140 -0
- package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_0.h +48 -0
- package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_2.h +48 -0
- package/external/libedhoc/tests/include/edhoc_trace_1/authentication_credentials_1.h +60 -0
- package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_1.h +208 -0
- package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_ead_1.h +59 -0
- package/external/libedhoc/tests/include/edhoc_trace_1/test_vector_1.h +738 -0
- package/external/libedhoc/tests/include/edhoc_trace_2/authentication_credentials_2.h +60 -0
- package/external/libedhoc/tests/include/edhoc_trace_2/test_edhoc_handshake_2.h +199 -0
- package/external/libedhoc/tests/include/edhoc_trace_2/test_vector_2.h +525 -0
- package/external/libedhoc/tests/include/error_message/test_edhoc_error_message.h +48 -0
- package/external/libedhoc/tests/include/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.h +92 -0
- package/external/libedhoc/tests/include/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.h +96 -0
- package/external/libedhoc/tests/include/x509_chain_cs_0/test_vector_x5chain_cs_0.h +140 -0
- package/external/libedhoc/tests/include/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.h +58 -0
- package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.h +56 -0
- package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.h +57 -0
- package/external/libedhoc/tests/include/x509_chain_cs_2/test_vector_x5chain_cs_2.h +169 -0
- package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.h +59 -0
- package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.h +57 -0
- package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/test_vector_x5chain_cs_2_static_dh.h +163 -0
- package/external/libedhoc/tests/include/x509_hash_cs_2/authentication_credentials_x5t_cs_2.h +60 -0
- package/external/libedhoc/tests/include/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.h +57 -0
- package/external/libedhoc/tests/include/x509_hash_cs_2/test_vector_x5t_cs_2.h +181 -0
- package/external/libedhoc/tests/src/cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.c +544 -0
- package/external/libedhoc/tests/src/cipher_suites/cipher_suite_0.c +447 -0
- package/external/libedhoc/tests/src/cipher_suites/cipher_suite_2.c +600 -0
- package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_0.c +475 -0
- package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_2.c +473 -0
- package/external/libedhoc/tests/src/edhoc_trace_1/authentication_credentials_1.c +252 -0
- package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_1.c +1829 -0
- package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_ead_1.c +1247 -0
- package/external/libedhoc/tests/src/edhoc_trace_2/authentication_credentials_2.c +170 -0
- package/external/libedhoc/tests/src/edhoc_trace_2/test_edhoc_handshake_2.c +1783 -0
- package/external/libedhoc/tests/src/error_message/test_edhoc_error_message.c +226 -0
- package/external/libedhoc/tests/src/tests.c +228 -0
- package/external/libedhoc/tests/src/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.c +332 -0
- package/external/libedhoc/tests/src/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.c +936 -0
- package/external/libedhoc/tests/src/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.c +166 -0
- package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.c +587 -0
- package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.c +917 -0
- package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.c +186 -0
- package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.c +743 -0
- package/external/libedhoc/tests/src/x509_hash_cs_2/authentication_credentials_x5t_cs_2.c +261 -0
- package/external/libedhoc/tests/src/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.c +854 -0
- package/include/EdhocComposeAsyncWorker.h +61 -0
- package/include/EdhocCredentialManager.h +100 -0
- package/include/EdhocCryptoManager.h +504 -0
- package/include/EdhocEadManager.h +151 -0
- package/include/EdhocExportAsyncWorker.h +71 -0
- package/include/EdhocProcessAsyncWorker.h +76 -0
- package/include/LibEDHOC.h +304 -0
- package/include/Suites.h +27 -0
- package/include/UserContext.h +79 -0
- package/include/Utils.h +110 -0
- package/package.json +5 -5
- package/prebuilds/win32-ia32/edhoc.node +0 -0
- package/prebuilds/win32-x64/edhoc.node +0 -0
- package/src/EdhocComposeAsyncWorker.cpp +88 -0
- package/src/EdhocCredentialManager.cpp +360 -0
- package/src/EdhocCryptoManager.cpp +967 -0
- package/src/EdhocEadManager.cpp +156 -0
- package/src/EdhocExportAsyncWorker.cpp +82 -0
- package/src/EdhocProcessAsyncWorker.cpp +74 -0
- package/src/LibEDHOC.cpp +369 -0
- package/src/Suites.cpp +153 -0
- package/src/Utils.cpp +115 -0
- package/dist/bindings.d.ts +0 -5
- package/dist/bindings.d.ts.map +0 -1
- package/dist/bindings.js +0 -10
- package/dist/credentials.d.ts +0 -16
- package/dist/credentials.d.ts.map +0 -1
- package/dist/credentials.js +0 -84
- package/dist/crypto.d.ts +0 -22
- package/dist/crypto.d.ts.map +0 -1
- package/dist/crypto.js +0 -177
- package/dist/edhoc.d.ts +0 -346
- package/dist/edhoc.d.ts.map +0 -1
- package/dist/edhoc.js +0 -76
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -19
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PSA ECP layer on top of Mbed TLS crypto
|
|
3
|
+
*/
|
|
4
|
+
/*
|
|
5
|
+
* Copyright The Mbed TLS Contributors
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#ifndef PSA_CRYPTO_ECP_H
|
|
10
|
+
#define PSA_CRYPTO_ECP_H
|
|
11
|
+
|
|
12
|
+
#include <psa/crypto.h>
|
|
13
|
+
#include <mbedtls/ecp.h>
|
|
14
|
+
|
|
15
|
+
/** Load the contents of a key buffer into an internal ECP representation
|
|
16
|
+
*
|
|
17
|
+
* \param[in] type The type of key contained in \p data.
|
|
18
|
+
* \param[in] curve_bits The nominal bit-size of the curve.
|
|
19
|
+
* It must be consistent with the representation
|
|
20
|
+
* passed in \p data.
|
|
21
|
+
* This can be 0, in which case the bit-size
|
|
22
|
+
* is inferred from \p data_length (which is possible
|
|
23
|
+
* for all key types and representation formats
|
|
24
|
+
* formats that are currently supported or will
|
|
25
|
+
* be in the foreseeable future).
|
|
26
|
+
* \param[in] data The buffer from which to load the representation.
|
|
27
|
+
* \param[in] data_length The size in bytes of \p data.
|
|
28
|
+
* \param[out] p_ecp Returns a pointer to an ECP context on success.
|
|
29
|
+
* The caller is responsible for freeing both the
|
|
30
|
+
* contents of the context and the context itself
|
|
31
|
+
* when done.
|
|
32
|
+
*/
|
|
33
|
+
psa_status_t mbedtls_psa_ecp_load_representation(psa_key_type_t type,
|
|
34
|
+
size_t curve_bits,
|
|
35
|
+
const uint8_t *data,
|
|
36
|
+
size_t data_length,
|
|
37
|
+
mbedtls_ecp_keypair **p_ecp);
|
|
38
|
+
|
|
39
|
+
/** Load the public part of an internal ECP, if required.
|
|
40
|
+
*
|
|
41
|
+
* \param ecp The ECP context to load the public part for.
|
|
42
|
+
*
|
|
43
|
+
* \return PSA_SUCCESS on success, otherwise an MPI error.
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
psa_status_t mbedtls_psa_ecp_load_public_part(mbedtls_ecp_keypair *ecp);
|
|
47
|
+
|
|
48
|
+
/** Import an ECP key in binary format.
|
|
49
|
+
*
|
|
50
|
+
* \note The signature of this function is that of a PSA driver
|
|
51
|
+
* import_key entry point. This function behaves as an import_key
|
|
52
|
+
* entry point as defined in the PSA driver interface specification for
|
|
53
|
+
* transparent drivers.
|
|
54
|
+
*
|
|
55
|
+
* \param[in] attributes The attributes for the key to import.
|
|
56
|
+
* \param[in] data The buffer containing the key data in import
|
|
57
|
+
* format.
|
|
58
|
+
* \param[in] data_length Size of the \p data buffer in bytes.
|
|
59
|
+
* \param[out] key_buffer The buffer containing the key data in output
|
|
60
|
+
* format.
|
|
61
|
+
* \param[in] key_buffer_size Size of the \p key_buffer buffer in bytes. This
|
|
62
|
+
* size is greater or equal to \p data_length.
|
|
63
|
+
* \param[out] key_buffer_length The length of the data written in \p
|
|
64
|
+
* key_buffer in bytes.
|
|
65
|
+
* \param[out] bits The key size in number of bits.
|
|
66
|
+
*
|
|
67
|
+
* \retval #PSA_SUCCESS The ECP key was imported successfully.
|
|
68
|
+
* \retval #PSA_ERROR_INVALID_ARGUMENT
|
|
69
|
+
* The key data is not correctly formatted.
|
|
70
|
+
* \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
|
|
71
|
+
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
|
72
|
+
* \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
|
|
73
|
+
*/
|
|
74
|
+
psa_status_t mbedtls_psa_ecp_import_key(
|
|
75
|
+
const psa_key_attributes_t *attributes,
|
|
76
|
+
const uint8_t *data, size_t data_length,
|
|
77
|
+
uint8_t *key_buffer, size_t key_buffer_size,
|
|
78
|
+
size_t *key_buffer_length, size_t *bits);
|
|
79
|
+
|
|
80
|
+
/** Export an ECP key to export representation
|
|
81
|
+
*
|
|
82
|
+
* \param[in] type The type of key (public/private) to export
|
|
83
|
+
* \param[in] ecp The internal ECP representation from which to export
|
|
84
|
+
* \param[out] data The buffer to export to
|
|
85
|
+
* \param[in] data_size The length of the buffer to export to
|
|
86
|
+
* \param[out] data_length The amount of bytes written to \p data
|
|
87
|
+
*/
|
|
88
|
+
psa_status_t mbedtls_psa_ecp_export_key(psa_key_type_t type,
|
|
89
|
+
mbedtls_ecp_keypair *ecp,
|
|
90
|
+
uint8_t *data,
|
|
91
|
+
size_t data_size,
|
|
92
|
+
size_t *data_length);
|
|
93
|
+
|
|
94
|
+
/** Export an ECP public key or the public part of an ECP key pair in binary
|
|
95
|
+
* format.
|
|
96
|
+
*
|
|
97
|
+
* \note The signature of this function is that of a PSA driver
|
|
98
|
+
* export_public_key entry point. This function behaves as an
|
|
99
|
+
* export_public_key entry point as defined in the PSA driver interface
|
|
100
|
+
* specification.
|
|
101
|
+
*
|
|
102
|
+
* \param[in] attributes The attributes for the key to export.
|
|
103
|
+
* \param[in] key_buffer Material or context of the key to export.
|
|
104
|
+
* \param[in] key_buffer_size Size of the \p key_buffer buffer in bytes.
|
|
105
|
+
* \param[out] data Buffer where the key data is to be written.
|
|
106
|
+
* \param[in] data_size Size of the \p data buffer in bytes.
|
|
107
|
+
* \param[out] data_length On success, the number of bytes written in
|
|
108
|
+
* \p data
|
|
109
|
+
*
|
|
110
|
+
* \retval #PSA_SUCCESS The ECP public key was exported successfully.
|
|
111
|
+
* \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
|
|
112
|
+
* \retval #PSA_ERROR_COMMUNICATION_FAILURE \emptydescription
|
|
113
|
+
* \retval #PSA_ERROR_HARDWARE_FAILURE \emptydescription
|
|
114
|
+
* \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
|
|
115
|
+
* \retval #PSA_ERROR_STORAGE_FAILURE \emptydescription
|
|
116
|
+
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
|
117
|
+
*/
|
|
118
|
+
psa_status_t mbedtls_psa_ecp_export_public_key(
|
|
119
|
+
const psa_key_attributes_t *attributes,
|
|
120
|
+
const uint8_t *key_buffer, size_t key_buffer_size,
|
|
121
|
+
uint8_t *data, size_t data_size, size_t *data_length);
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* \brief Generate an ECP key.
|
|
125
|
+
*
|
|
126
|
+
* \note The signature of the function is that of a PSA driver generate_key
|
|
127
|
+
* entry point.
|
|
128
|
+
*
|
|
129
|
+
* \param[in] attributes The attributes for the ECP key to generate.
|
|
130
|
+
* \param[out] key_buffer Buffer where the key data is to be written.
|
|
131
|
+
* \param[in] key_buffer_size Size of \p key_buffer in bytes.
|
|
132
|
+
* \param[out] key_buffer_length On success, the number of bytes written in
|
|
133
|
+
* \p key_buffer.
|
|
134
|
+
*
|
|
135
|
+
* \retval #PSA_SUCCESS
|
|
136
|
+
* The key was successfully generated.
|
|
137
|
+
* \retval #PSA_ERROR_NOT_SUPPORTED
|
|
138
|
+
* Key length or type not supported.
|
|
139
|
+
* \retval #PSA_ERROR_BUFFER_TOO_SMALL
|
|
140
|
+
* The size of \p key_buffer is too small.
|
|
141
|
+
*/
|
|
142
|
+
psa_status_t mbedtls_psa_ecp_generate_key(
|
|
143
|
+
const psa_key_attributes_t *attributes,
|
|
144
|
+
uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length);
|
|
145
|
+
|
|
146
|
+
/** Sign an already-calculated hash with ECDSA.
|
|
147
|
+
*
|
|
148
|
+
* \note The signature of this function is that of a PSA driver
|
|
149
|
+
* sign_hash entry point. This function behaves as a sign_hash
|
|
150
|
+
* entry point as defined in the PSA driver interface specification for
|
|
151
|
+
* transparent drivers.
|
|
152
|
+
*
|
|
153
|
+
* \param[in] attributes The attributes of the ECC key to use for the
|
|
154
|
+
* operation.
|
|
155
|
+
* \param[in] key_buffer The buffer containing the ECC key context.
|
|
156
|
+
* format.
|
|
157
|
+
* \param[in] key_buffer_size Size of the \p key_buffer buffer in bytes.
|
|
158
|
+
* \param[in] alg Randomized or deterministic ECDSA algorithm.
|
|
159
|
+
* \param[in] hash The hash or message to sign.
|
|
160
|
+
* \param[in] hash_length Size of the \p hash buffer in bytes.
|
|
161
|
+
* \param[out] signature Buffer where the signature is to be written.
|
|
162
|
+
* \param[in] signature_size Size of the \p signature buffer in bytes.
|
|
163
|
+
* \param[out] signature_length On success, the number of bytes
|
|
164
|
+
* that make up the returned signature value.
|
|
165
|
+
*
|
|
166
|
+
* \retval #PSA_SUCCESS \emptydescription
|
|
167
|
+
* \retval #PSA_ERROR_BUFFER_TOO_SMALL
|
|
168
|
+
* The size of the \p signature buffer is too small. You can
|
|
169
|
+
* determine a sufficient buffer size by calling
|
|
170
|
+
* #PSA_SIGN_OUTPUT_SIZE(\c PSA_KEY_TYPE_ECC_KEY_PAIR, \c key_bits,
|
|
171
|
+
* \p alg) where \c key_bits is the bit-size of the ECC key.
|
|
172
|
+
* \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
|
|
173
|
+
* \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
|
|
174
|
+
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
|
175
|
+
* \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
|
|
176
|
+
* \retval #PSA_ERROR_INSUFFICIENT_ENTROPY \emptydescription
|
|
177
|
+
*/
|
|
178
|
+
psa_status_t mbedtls_psa_ecdsa_sign_hash(
|
|
179
|
+
const psa_key_attributes_t *attributes,
|
|
180
|
+
const uint8_t *key_buffer, size_t key_buffer_size,
|
|
181
|
+
psa_algorithm_t alg, const uint8_t *hash, size_t hash_length,
|
|
182
|
+
uint8_t *signature, size_t signature_size, size_t *signature_length);
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* \brief Verify an ECDSA hash or short message signature.
|
|
186
|
+
*
|
|
187
|
+
* \note The signature of this function is that of a PSA driver
|
|
188
|
+
* verify_hash entry point. This function behaves as a verify_hash
|
|
189
|
+
* entry point as defined in the PSA driver interface specification for
|
|
190
|
+
* transparent drivers.
|
|
191
|
+
*
|
|
192
|
+
* \param[in] attributes The attributes of the ECC key to use for the
|
|
193
|
+
* operation.
|
|
194
|
+
* \param[in] key_buffer The buffer containing the ECC key context.
|
|
195
|
+
* format.
|
|
196
|
+
* \param[in] key_buffer_size Size of the \p key_buffer buffer in bytes.
|
|
197
|
+
* \param[in] alg Randomized or deterministic ECDSA algorithm.
|
|
198
|
+
* \param[in] hash The hash or message whose signature is to be
|
|
199
|
+
* verified.
|
|
200
|
+
* \param[in] hash_length Size of the \p hash buffer in bytes.
|
|
201
|
+
* \param[in] signature Buffer containing the signature to verify.
|
|
202
|
+
* \param[in] signature_length Size of the \p signature buffer in bytes.
|
|
203
|
+
*
|
|
204
|
+
* \retval #PSA_SUCCESS
|
|
205
|
+
* The signature is valid.
|
|
206
|
+
* \retval #PSA_ERROR_INVALID_SIGNATURE
|
|
207
|
+
* The calculation was performed successfully, but the passed
|
|
208
|
+
* signature is not a valid signature.
|
|
209
|
+
* \retval #PSA_ERROR_NOT_SUPPORTED \emptydescription
|
|
210
|
+
* \retval #PSA_ERROR_INVALID_ARGUMENT \emptydescription
|
|
211
|
+
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
|
212
|
+
*/
|
|
213
|
+
psa_status_t mbedtls_psa_ecdsa_verify_hash(
|
|
214
|
+
const psa_key_attributes_t *attributes,
|
|
215
|
+
const uint8_t *key_buffer, size_t key_buffer_size,
|
|
216
|
+
psa_algorithm_t alg, const uint8_t *hash, size_t hash_length,
|
|
217
|
+
const uint8_t *signature, size_t signature_length);
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
/** Perform a key agreement and return the raw ECDH shared secret.
|
|
221
|
+
*
|
|
222
|
+
* \note The signature of this function is that of a PSA driver
|
|
223
|
+
* key_agreement entry point. This function behaves as a key_agreement
|
|
224
|
+
* entry point as defined in the PSA driver interface specification for
|
|
225
|
+
* transparent drivers.
|
|
226
|
+
*
|
|
227
|
+
* \param[in] attributes The attributes of the key to use for the
|
|
228
|
+
* operation.
|
|
229
|
+
* \param[in] key_buffer The buffer containing the private key
|
|
230
|
+
* context.
|
|
231
|
+
* \param[in] key_buffer_size Size of the \p key_buffer buffer in
|
|
232
|
+
* bytes.
|
|
233
|
+
* \param[in] alg A key agreement algorithm that is
|
|
234
|
+
* compatible with the type of the key.
|
|
235
|
+
* \param[in] peer_key The buffer containing the key context
|
|
236
|
+
* of the peer's public key.
|
|
237
|
+
* \param[in] peer_key_length Size of the \p peer_key buffer in
|
|
238
|
+
* bytes.
|
|
239
|
+
* \param[out] shared_secret The buffer to which the shared secret
|
|
240
|
+
* is to be written.
|
|
241
|
+
* \param[in] shared_secret_size Size of the \p shared_secret buffer in
|
|
242
|
+
* bytes.
|
|
243
|
+
* \param[out] shared_secret_length On success, the number of bytes that make
|
|
244
|
+
* up the returned shared secret.
|
|
245
|
+
* \retval #PSA_SUCCESS
|
|
246
|
+
* Success. Shared secret successfully calculated.
|
|
247
|
+
* \retval #PSA_ERROR_INVALID_HANDLE \emptydescription
|
|
248
|
+
* \retval #PSA_ERROR_NOT_PERMITTED \emptydescription
|
|
249
|
+
* \retval #PSA_ERROR_INVALID_ARGUMENT
|
|
250
|
+
* \p alg is not a key agreement algorithm, or
|
|
251
|
+
* \p private_key is not compatible with \p alg,
|
|
252
|
+
* or \p peer_key is not valid for \p alg or not compatible with
|
|
253
|
+
* \p private_key.
|
|
254
|
+
* \retval #PSA_ERROR_BUFFER_TOO_SMALL
|
|
255
|
+
* \p shared_secret_size is too small
|
|
256
|
+
* \retval #PSA_ERROR_NOT_SUPPORTED
|
|
257
|
+
* \p alg is not a supported key agreement algorithm.
|
|
258
|
+
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
|
259
|
+
* \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
|
|
260
|
+
*/
|
|
261
|
+
psa_status_t mbedtls_psa_key_agreement_ecdh(
|
|
262
|
+
const psa_key_attributes_t *attributes,
|
|
263
|
+
const uint8_t *key_buffer, size_t key_buffer_size,
|
|
264
|
+
psa_algorithm_t alg, const uint8_t *peer_key, size_t peer_key_length,
|
|
265
|
+
uint8_t *shared_secret, size_t shared_secret_size,
|
|
266
|
+
size_t *shared_secret_length);
|
|
267
|
+
#endif /* PSA_CRYPTO_ECP_H */
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PSA FFDH layer on top of Mbed TLS crypto
|
|
3
|
+
*/
|
|
4
|
+
/*
|
|
5
|
+
* Copyright The Mbed TLS Contributors
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#include "common.h"
|
|
10
|
+
|
|
11
|
+
#if defined(MBEDTLS_PSA_CRYPTO_C)
|
|
12
|
+
|
|
13
|
+
#include <psa/crypto.h>
|
|
14
|
+
#include "psa_crypto_core.h"
|
|
15
|
+
#include "psa_crypto_ffdh.h"
|
|
16
|
+
#include "psa_crypto_random_impl.h"
|
|
17
|
+
#include "mbedtls/platform.h"
|
|
18
|
+
#include "mbedtls/error.h"
|
|
19
|
+
|
|
20
|
+
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT) || \
|
|
21
|
+
defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE) || \
|
|
22
|
+
defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY) || \
|
|
23
|
+
defined(MBEDTLS_PSA_BUILTIN_ALG_FFDH)
|
|
24
|
+
static psa_status_t mbedtls_psa_ffdh_set_prime_generator(size_t key_size,
|
|
25
|
+
mbedtls_mpi *P,
|
|
26
|
+
mbedtls_mpi *G)
|
|
27
|
+
{
|
|
28
|
+
const unsigned char *dhm_P = NULL;
|
|
29
|
+
const unsigned char *dhm_G = NULL;
|
|
30
|
+
size_t dhm_size_P = 0;
|
|
31
|
+
size_t dhm_size_G = 0;
|
|
32
|
+
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
|
33
|
+
|
|
34
|
+
if (P == NULL && G == NULL) {
|
|
35
|
+
return PSA_ERROR_INVALID_ARGUMENT;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static const unsigned char dhm_P_2048[] =
|
|
39
|
+
MBEDTLS_DHM_RFC7919_FFDHE2048_P_BIN;
|
|
40
|
+
static const unsigned char dhm_P_3072[] =
|
|
41
|
+
MBEDTLS_DHM_RFC7919_FFDHE3072_P_BIN;
|
|
42
|
+
static const unsigned char dhm_P_4096[] =
|
|
43
|
+
MBEDTLS_DHM_RFC7919_FFDHE4096_P_BIN;
|
|
44
|
+
static const unsigned char dhm_P_6144[] =
|
|
45
|
+
MBEDTLS_DHM_RFC7919_FFDHE6144_P_BIN;
|
|
46
|
+
static const unsigned char dhm_P_8192[] =
|
|
47
|
+
MBEDTLS_DHM_RFC7919_FFDHE8192_P_BIN;
|
|
48
|
+
static const unsigned char dhm_G_2048[] =
|
|
49
|
+
MBEDTLS_DHM_RFC7919_FFDHE2048_G_BIN;
|
|
50
|
+
static const unsigned char dhm_G_3072[] =
|
|
51
|
+
MBEDTLS_DHM_RFC7919_FFDHE3072_G_BIN;
|
|
52
|
+
static const unsigned char dhm_G_4096[] =
|
|
53
|
+
MBEDTLS_DHM_RFC7919_FFDHE4096_G_BIN;
|
|
54
|
+
static const unsigned char dhm_G_6144[] =
|
|
55
|
+
MBEDTLS_DHM_RFC7919_FFDHE6144_G_BIN;
|
|
56
|
+
static const unsigned char dhm_G_8192[] =
|
|
57
|
+
MBEDTLS_DHM_RFC7919_FFDHE8192_G_BIN;
|
|
58
|
+
|
|
59
|
+
switch (key_size) {
|
|
60
|
+
case sizeof(dhm_P_2048):
|
|
61
|
+
dhm_P = dhm_P_2048;
|
|
62
|
+
dhm_G = dhm_G_2048;
|
|
63
|
+
dhm_size_P = sizeof(dhm_P_2048);
|
|
64
|
+
dhm_size_G = sizeof(dhm_G_2048);
|
|
65
|
+
break;
|
|
66
|
+
case sizeof(dhm_P_3072):
|
|
67
|
+
dhm_P = dhm_P_3072;
|
|
68
|
+
dhm_G = dhm_G_3072;
|
|
69
|
+
dhm_size_P = sizeof(dhm_P_3072);
|
|
70
|
+
dhm_size_G = sizeof(dhm_G_3072);
|
|
71
|
+
break;
|
|
72
|
+
case sizeof(dhm_P_4096):
|
|
73
|
+
dhm_P = dhm_P_4096;
|
|
74
|
+
dhm_G = dhm_G_4096;
|
|
75
|
+
dhm_size_P = sizeof(dhm_P_4096);
|
|
76
|
+
dhm_size_G = sizeof(dhm_G_4096);
|
|
77
|
+
break;
|
|
78
|
+
case sizeof(dhm_P_6144):
|
|
79
|
+
dhm_P = dhm_P_6144;
|
|
80
|
+
dhm_G = dhm_G_6144;
|
|
81
|
+
dhm_size_P = sizeof(dhm_P_6144);
|
|
82
|
+
dhm_size_G = sizeof(dhm_G_6144);
|
|
83
|
+
break;
|
|
84
|
+
case sizeof(dhm_P_8192):
|
|
85
|
+
dhm_P = dhm_P_8192;
|
|
86
|
+
dhm_G = dhm_G_8192;
|
|
87
|
+
dhm_size_P = sizeof(dhm_P_8192);
|
|
88
|
+
dhm_size_G = sizeof(dhm_G_8192);
|
|
89
|
+
break;
|
|
90
|
+
default:
|
|
91
|
+
return PSA_ERROR_INVALID_ARGUMENT;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (P != NULL) {
|
|
95
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(P, dhm_P,
|
|
96
|
+
dhm_size_P));
|
|
97
|
+
}
|
|
98
|
+
if (G != NULL) {
|
|
99
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(G, dhm_G,
|
|
100
|
+
dhm_size_G));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
cleanup:
|
|
104
|
+
if (ret != 0) {
|
|
105
|
+
return mbedtls_to_psa_error(ret);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return PSA_SUCCESS;
|
|
109
|
+
}
|
|
110
|
+
#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT ||
|
|
111
|
+
MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE ||
|
|
112
|
+
MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY ||
|
|
113
|
+
MBEDTLS_PSA_BUILTIN_ALG_FFDH */
|
|
114
|
+
|
|
115
|
+
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT) || \
|
|
116
|
+
defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY)
|
|
117
|
+
psa_status_t mbedtls_psa_ffdh_export_public_key(
|
|
118
|
+
const psa_key_attributes_t *attributes,
|
|
119
|
+
const uint8_t *key_buffer,
|
|
120
|
+
size_t key_buffer_size,
|
|
121
|
+
uint8_t *data,
|
|
122
|
+
size_t data_size,
|
|
123
|
+
size_t *data_length)
|
|
124
|
+
{
|
|
125
|
+
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
|
126
|
+
psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
|
|
127
|
+
mbedtls_mpi GX, G, X, P;
|
|
128
|
+
psa_key_type_t type = attributes->core.type;
|
|
129
|
+
|
|
130
|
+
if (PSA_KEY_TYPE_IS_PUBLIC_KEY(type)) {
|
|
131
|
+
if (key_buffer_size > data_size) {
|
|
132
|
+
return PSA_ERROR_BUFFER_TOO_SMALL;
|
|
133
|
+
}
|
|
134
|
+
memcpy(data, key_buffer, key_buffer_size);
|
|
135
|
+
memset(data + key_buffer_size, 0,
|
|
136
|
+
data_size - key_buffer_size);
|
|
137
|
+
*data_length = key_buffer_size;
|
|
138
|
+
return PSA_SUCCESS;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
mbedtls_mpi_init(&GX); mbedtls_mpi_init(&G);
|
|
142
|
+
mbedtls_mpi_init(&X); mbedtls_mpi_init(&P);
|
|
143
|
+
|
|
144
|
+
size_t key_len = PSA_BITS_TO_BYTES(attributes->core.bits);
|
|
145
|
+
|
|
146
|
+
status = mbedtls_psa_ffdh_set_prime_generator(key_len, &P, &G);
|
|
147
|
+
|
|
148
|
+
if (status != PSA_SUCCESS) {
|
|
149
|
+
goto cleanup;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&X, key_buffer,
|
|
153
|
+
key_buffer_size));
|
|
154
|
+
|
|
155
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&GX, &G, &X, &P, NULL));
|
|
156
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&GX, data, key_len));
|
|
157
|
+
|
|
158
|
+
*data_length = key_len;
|
|
159
|
+
|
|
160
|
+
ret = 0;
|
|
161
|
+
cleanup:
|
|
162
|
+
mbedtls_mpi_free(&P); mbedtls_mpi_free(&G);
|
|
163
|
+
mbedtls_mpi_free(&X); mbedtls_mpi_free(&GX);
|
|
164
|
+
|
|
165
|
+
if (status == PSA_SUCCESS && ret != 0) {
|
|
166
|
+
status = mbedtls_to_psa_error(ret);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return status;
|
|
170
|
+
}
|
|
171
|
+
#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_EXPORT ||
|
|
172
|
+
MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_PUBLIC_KEY */
|
|
173
|
+
|
|
174
|
+
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE)
|
|
175
|
+
psa_status_t mbedtls_psa_ffdh_generate_key(
|
|
176
|
+
const psa_key_attributes_t *attributes,
|
|
177
|
+
uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length)
|
|
178
|
+
{
|
|
179
|
+
mbedtls_mpi X, P;
|
|
180
|
+
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
|
181
|
+
psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
|
|
182
|
+
mbedtls_mpi_init(&P); mbedtls_mpi_init(&X);
|
|
183
|
+
(void) attributes;
|
|
184
|
+
|
|
185
|
+
status = mbedtls_psa_ffdh_set_prime_generator(key_buffer_size, &P, NULL);
|
|
186
|
+
|
|
187
|
+
if (status != PSA_SUCCESS) {
|
|
188
|
+
goto cleanup;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* RFC7919: Traditional finite field Diffie-Hellman has each peer choose their
|
|
192
|
+
secret exponent from the range [2, P-2].
|
|
193
|
+
Select random value in range [3, P-1] and decrease it by 1. */
|
|
194
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_random(&X, 3, &P, mbedtls_psa_get_random,
|
|
195
|
+
MBEDTLS_PSA_RANDOM_STATE));
|
|
196
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&X, &X, 1));
|
|
197
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&X, key_buffer, key_buffer_size));
|
|
198
|
+
*key_buffer_length = key_buffer_size;
|
|
199
|
+
|
|
200
|
+
cleanup:
|
|
201
|
+
mbedtls_mpi_free(&P); mbedtls_mpi_free(&X);
|
|
202
|
+
if (status == PSA_SUCCESS && ret != 0) {
|
|
203
|
+
return mbedtls_to_psa_error(ret);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return status;
|
|
207
|
+
}
|
|
208
|
+
#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_GENERATE */
|
|
209
|
+
|
|
210
|
+
#if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT)
|
|
211
|
+
psa_status_t mbedtls_psa_ffdh_import_key(
|
|
212
|
+
const psa_key_attributes_t *attributes,
|
|
213
|
+
const uint8_t *data, size_t data_length,
|
|
214
|
+
uint8_t *key_buffer, size_t key_buffer_size,
|
|
215
|
+
size_t *key_buffer_length, size_t *bits)
|
|
216
|
+
{
|
|
217
|
+
(void) attributes;
|
|
218
|
+
|
|
219
|
+
if (key_buffer_size < data_length) {
|
|
220
|
+
return PSA_ERROR_BUFFER_TOO_SMALL;
|
|
221
|
+
}
|
|
222
|
+
memcpy(key_buffer, data, data_length);
|
|
223
|
+
*key_buffer_length = data_length;
|
|
224
|
+
*bits = PSA_BYTES_TO_BITS(data_length);
|
|
225
|
+
|
|
226
|
+
return PSA_SUCCESS;
|
|
227
|
+
}
|
|
228
|
+
#endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DH_KEY_PAIR_IMPORT */
|
|
229
|
+
|
|
230
|
+
#if defined(MBEDTLS_PSA_BUILTIN_ALG_FFDH)
|
|
231
|
+
psa_status_t mbedtls_psa_ffdh_key_agreement(
|
|
232
|
+
const psa_key_attributes_t *attributes,
|
|
233
|
+
const uint8_t *peer_key,
|
|
234
|
+
size_t peer_key_length,
|
|
235
|
+
const uint8_t *key_buffer,
|
|
236
|
+
size_t key_buffer_size,
|
|
237
|
+
uint8_t *shared_secret,
|
|
238
|
+
size_t shared_secret_size,
|
|
239
|
+
size_t *shared_secret_length)
|
|
240
|
+
{
|
|
241
|
+
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
|
242
|
+
psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
|
|
243
|
+
mbedtls_mpi P, G, X, GY, K;
|
|
244
|
+
const size_t calculated_shared_secret_size = peer_key_length;
|
|
245
|
+
|
|
246
|
+
if (peer_key_length != key_buffer_size ||
|
|
247
|
+
calculated_shared_secret_size > shared_secret_size) {
|
|
248
|
+
return PSA_ERROR_INVALID_ARGUMENT;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
if (!PSA_KEY_TYPE_IS_DH_KEY_PAIR(psa_get_key_type(attributes))) {
|
|
252
|
+
return PSA_ERROR_INVALID_ARGUMENT;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
mbedtls_mpi_init(&P); mbedtls_mpi_init(&G);
|
|
256
|
+
mbedtls_mpi_init(&X); mbedtls_mpi_init(&GY);
|
|
257
|
+
mbedtls_mpi_init(&K);
|
|
258
|
+
|
|
259
|
+
status = mbedtls_psa_ffdh_set_prime_generator(
|
|
260
|
+
PSA_BITS_TO_BYTES(attributes->core.bits), &P, &G);
|
|
261
|
+
|
|
262
|
+
if (status != PSA_SUCCESS) {
|
|
263
|
+
goto cleanup;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&X, key_buffer,
|
|
267
|
+
key_buffer_size));
|
|
268
|
+
|
|
269
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&GY, peer_key,
|
|
270
|
+
peer_key_length));
|
|
271
|
+
|
|
272
|
+
/* Calculate shared secret public key: K = G^(XY) mod P = GY^X mod P */
|
|
273
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&K, &GY, &X, &P, NULL));
|
|
274
|
+
|
|
275
|
+
MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&K, shared_secret,
|
|
276
|
+
calculated_shared_secret_size));
|
|
277
|
+
|
|
278
|
+
*shared_secret_length = calculated_shared_secret_size;
|
|
279
|
+
|
|
280
|
+
ret = 0;
|
|
281
|
+
|
|
282
|
+
cleanup:
|
|
283
|
+
mbedtls_mpi_free(&P); mbedtls_mpi_free(&G);
|
|
284
|
+
mbedtls_mpi_free(&X); mbedtls_mpi_free(&GY);
|
|
285
|
+
mbedtls_mpi_free(&K);
|
|
286
|
+
|
|
287
|
+
if (status == PSA_SUCCESS && ret != 0) {
|
|
288
|
+
status = mbedtls_to_psa_error(ret);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
return status;
|
|
292
|
+
}
|
|
293
|
+
#endif /* MBEDTLS_PSA_BUILTIN_ALG_FFDH */
|
|
294
|
+
|
|
295
|
+
#endif /* MBEDTLS_PSA_CRYPTO_C */
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PSA FFDH layer on top of Mbed TLS crypto
|
|
3
|
+
*/
|
|
4
|
+
/*
|
|
5
|
+
* Copyright The Mbed TLS Contributors
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#ifndef PSA_CRYPTO_FFDH_H
|
|
10
|
+
#define PSA_CRYPTO_FFDH_H
|
|
11
|
+
|
|
12
|
+
#include <psa/crypto.h>
|
|
13
|
+
#include <mbedtls/dhm.h>
|
|
14
|
+
|
|
15
|
+
/** Perform a key agreement and return the FFDH shared secret.
|
|
16
|
+
*
|
|
17
|
+
* \param[in] attributes The attributes of the key to use for the
|
|
18
|
+
* operation.
|
|
19
|
+
* \param[in] peer_key The buffer containing the key context
|
|
20
|
+
* of the peer's public key.
|
|
21
|
+
* \param[in] peer_key_length Size of the \p peer_key buffer in
|
|
22
|
+
* bytes.
|
|
23
|
+
* \param[in] key_buffer The buffer containing the private key
|
|
24
|
+
* context.
|
|
25
|
+
* \param[in] key_buffer_size Size of the \p key_buffer buffer in
|
|
26
|
+
* bytes.
|
|
27
|
+
* \param[out] shared_secret The buffer to which the shared secret
|
|
28
|
+
* is to be written.
|
|
29
|
+
* \param[in] shared_secret_size Size of the \p shared_secret buffer in
|
|
30
|
+
* bytes.
|
|
31
|
+
* \param[out] shared_secret_length On success, the number of bytes that make
|
|
32
|
+
* up the returned shared secret.
|
|
33
|
+
* \retval #PSA_SUCCESS
|
|
34
|
+
* Success. Shared secret successfully calculated.
|
|
35
|
+
* \retval #PSA_ERROR_INVALID_ARGUMENT
|
|
36
|
+
* \p key_buffer_size, \p peer_key_length, \p shared_secret_size
|
|
37
|
+
* do not match
|
|
38
|
+
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
|
39
|
+
* \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
|
|
40
|
+
*/
|
|
41
|
+
psa_status_t mbedtls_psa_ffdh_key_agreement(
|
|
42
|
+
const psa_key_attributes_t *attributes,
|
|
43
|
+
const uint8_t *peer_key,
|
|
44
|
+
size_t peer_key_length,
|
|
45
|
+
const uint8_t *key_buffer,
|
|
46
|
+
size_t key_buffer_size,
|
|
47
|
+
uint8_t *shared_secret,
|
|
48
|
+
size_t shared_secret_size,
|
|
49
|
+
size_t *shared_secret_length);
|
|
50
|
+
|
|
51
|
+
/** Export a public key or the public part of a DH key pair in binary format.
|
|
52
|
+
*
|
|
53
|
+
* \param[in] attributes The attributes for the key to export.
|
|
54
|
+
* \param[in] key_buffer Material or context of the key to export.
|
|
55
|
+
* \param[in] key_buffer_size Size of the \p key_buffer buffer in bytes.
|
|
56
|
+
* \param[out] data Buffer where the key data is to be written.
|
|
57
|
+
* \param[in] data_size Size of the \p data buffer in bytes.
|
|
58
|
+
* \param[out] data_length On success, the number of bytes written in
|
|
59
|
+
* \p data
|
|
60
|
+
*
|
|
61
|
+
* \retval #PSA_SUCCESS The public key was exported successfully.
|
|
62
|
+
* \retval #PSA_ERROR_BUFFER_TOO_SMALL
|
|
63
|
+
* The size of \p key_buffer is too small.
|
|
64
|
+
* \retval #PSA_ERROR_NOT_PERMITTED \emptydescription
|
|
65
|
+
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
|
66
|
+
* \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
|
|
67
|
+
*/
|
|
68
|
+
psa_status_t mbedtls_psa_ffdh_export_public_key(
|
|
69
|
+
const psa_key_attributes_t *attributes,
|
|
70
|
+
const uint8_t *key_buffer,
|
|
71
|
+
size_t key_buffer_size,
|
|
72
|
+
uint8_t *data,
|
|
73
|
+
size_t data_size,
|
|
74
|
+
size_t *data_length);
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* \brief Generate DH key.
|
|
78
|
+
*
|
|
79
|
+
* \note The signature of the function is that of a PSA driver generate_key
|
|
80
|
+
* entry point.
|
|
81
|
+
*
|
|
82
|
+
* \param[in] attributes The attributes for the key to generate.
|
|
83
|
+
* \param[out] key_buffer Buffer where the key data is to be written.
|
|
84
|
+
* \param[in] key_buffer_size Size of \p key_buffer in bytes.
|
|
85
|
+
* \param[out] key_buffer_length On success, the number of bytes written in
|
|
86
|
+
* \p key_buffer.
|
|
87
|
+
*
|
|
88
|
+
* \retval #PSA_SUCCESS
|
|
89
|
+
* The key was generated successfully.
|
|
90
|
+
* \retval #PSA_ERROR_NOT_SUPPORTED
|
|
91
|
+
* Key size in bits is invalid.
|
|
92
|
+
* \retval #PSA_ERROR_BUFFER_TOO_SMALL
|
|
93
|
+
* The size of \p key_buffer is too small.
|
|
94
|
+
* \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
|
|
95
|
+
* \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
|
|
96
|
+
*/
|
|
97
|
+
psa_status_t mbedtls_psa_ffdh_generate_key(
|
|
98
|
+
const psa_key_attributes_t *attributes,
|
|
99
|
+
uint8_t *key_buffer,
|
|
100
|
+
size_t key_buffer_size,
|
|
101
|
+
size_t *key_buffer_length);
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* \brief Import DH key.
|
|
105
|
+
*
|
|
106
|
+
* \note The signature of the function is that of a PSA driver import_key
|
|
107
|
+
* entry point.
|
|
108
|
+
*
|
|
109
|
+
* \param[in] attributes The attributes for the key to import.
|
|
110
|
+
* \param[in] data The buffer containing the key data in import
|
|
111
|
+
* format.
|
|
112
|
+
* \param[in] data_length Size of the \p data buffer in bytes.
|
|
113
|
+
* \param[out] key_buffer The buffer containing the key data in output
|
|
114
|
+
* format.
|
|
115
|
+
* \param[in] key_buffer_size Size of the \p key_buffer buffer in bytes. This
|
|
116
|
+
* size is greater or equal to \p data_length.
|
|
117
|
+
* \param[out] key_buffer_length The length of the data written in \p
|
|
118
|
+
* key_buffer in bytes.
|
|
119
|
+
* \param[out] bits The key size in number of bits.
|
|
120
|
+
*
|
|
121
|
+
* \retval #PSA_SUCCESS
|
|
122
|
+
* The key was generated successfully.
|
|
123
|
+
* \retval #PSA_ERROR_BUFFER_TOO_SMALL
|
|
124
|
+
* The size of \p key_buffer is too small.
|
|
125
|
+
*/
|
|
126
|
+
psa_status_t mbedtls_psa_ffdh_import_key(
|
|
127
|
+
const psa_key_attributes_t *attributes,
|
|
128
|
+
const uint8_t *data, size_t data_length,
|
|
129
|
+
uint8_t *key_buffer, size_t key_buffer_size,
|
|
130
|
+
size_t *key_buffer_length, size_t *bits);
|
|
131
|
+
|
|
132
|
+
#endif /* PSA_CRYPTO_FFDH_H */
|