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.
Files changed (672) hide show
  1. package/binding.gyp +64 -0
  2. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_decode.h +35 -0
  3. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_encode.h +35 -0
  4. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_types.h +34 -0
  5. package/external/libedhoc/backends/cbor/include/backend_cbor_ead_decode.h +35 -0
  6. package/external/libedhoc/backends/cbor/include/backend_cbor_ead_encode.h +35 -0
  7. package/external/libedhoc/backends/cbor/include/backend_cbor_edhoc_types.h +97 -0
  8. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_decode.h +35 -0
  9. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_encode.h +35 -0
  10. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_types.h +37 -0
  11. package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_decode.h +35 -0
  12. package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_encode.h +35 -0
  13. package/external/libedhoc/backends/cbor/include/backend_cbor_info_decode.h +35 -0
  14. package/external/libedhoc/backends/cbor/include/backend_cbor_info_encode.h +35 -0
  15. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_decode.h +35 -0
  16. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_encode.h +35 -0
  17. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_types.h +34 -0
  18. package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_decode.h +35 -0
  19. package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_encode.h +35 -0
  20. package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_decode.h +35 -0
  21. package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_encode.h +35 -0
  22. package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_decode.h +35 -0
  23. package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_encode.h +35 -0
  24. package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_decode.h +35 -0
  25. package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_encode.h +35 -0
  26. package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_decode.h +35 -0
  27. package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_encode.h +35 -0
  28. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_decode.h +35 -0
  29. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_encode.h +35 -0
  30. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_decode.h +35 -0
  31. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_encode.h +35 -0
  32. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_decode.h +35 -0
  33. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_encode.h +35 -0
  34. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_decode.h +35 -0
  35. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_encode.h +35 -0
  36. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_types.h +38 -0
  37. package/external/libedhoc/backends/cbor/include/backend_cbor_x509_types.h +170 -0
  38. package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_decode.c +59 -0
  39. package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_encode.c +59 -0
  40. package/external/libedhoc/backends/cbor/src/backend_cbor_ead_decode.c +74 -0
  41. package/external/libedhoc/backends/cbor/src/backend_cbor_ead_encode.c +74 -0
  42. package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_decode.c +62 -0
  43. package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_encode.c +62 -0
  44. package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_decode.c +141 -0
  45. package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_encode.c +141 -0
  46. package/external/libedhoc/backends/cbor/src/backend_cbor_info_decode.c +61 -0
  47. package/external/libedhoc/backends/cbor/src/backend_cbor_info_encode.c +61 -0
  48. package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_decode.c +59 -0
  49. package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_encode.c +59 -0
  50. package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_decode.c +112 -0
  51. package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_encode.c +112 -0
  52. package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_decode.c +59 -0
  53. package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_encode.c +59 -0
  54. package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_decode.c +59 -0
  55. package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_encode.c +59 -0
  56. package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_decode.c +59 -0
  57. package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_encode.c +59 -0
  58. package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_decode.c +93 -0
  59. package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_encode.c +93 -0
  60. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_decode.c +193 -0
  61. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_encode.c +194 -0
  62. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_decode.c +189 -0
  63. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_encode.c +189 -0
  64. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_decode.c +88 -0
  65. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_encode.c +88 -0
  66. package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_decode.c +63 -0
  67. package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_encode.c +63 -0
  68. package/external/libedhoc/externals/compact25519/src/c25519/c25519.c +126 -0
  69. package/external/libedhoc/externals/compact25519/src/c25519/c25519.h +49 -0
  70. package/external/libedhoc/externals/compact25519/src/c25519/ed25519.c +323 -0
  71. package/external/libedhoc/externals/compact25519/src/c25519/ed25519.h +84 -0
  72. package/external/libedhoc/externals/compact25519/src/c25519/edsign.c +171 -0
  73. package/external/libedhoc/externals/compact25519/src/c25519/edsign.h +53 -0
  74. package/external/libedhoc/externals/compact25519/src/c25519/f25519.c +330 -0
  75. package/external/libedhoc/externals/compact25519/src/c25519/f25519.h +98 -0
  76. package/external/libedhoc/externals/compact25519/src/c25519/fprime.c +226 -0
  77. package/external/libedhoc/externals/compact25519/src/c25519/fprime.h +81 -0
  78. package/external/libedhoc/externals/compact25519/src/c25519/sha512.c +230 -0
  79. package/external/libedhoc/externals/compact25519/src/c25519/sha512.h +54 -0
  80. package/external/libedhoc/externals/compact25519/src/compact_ed25519.c +46 -0
  81. package/external/libedhoc/externals/compact25519/src/compact_ed25519.h +110 -0
  82. package/external/libedhoc/externals/compact25519/src/compact_wipe.c +12 -0
  83. package/external/libedhoc/externals/compact25519/src/compact_wipe.h +14 -0
  84. package/external/libedhoc/externals/compact25519/src/compact_x25519.c +68 -0
  85. package/external/libedhoc/externals/compact25519/src/compact_x25519.h +101 -0
  86. package/external/libedhoc/externals/compact25519/test/pcg_random.h +25 -0
  87. package/external/libedhoc/externals/compact25519/test/run-all.c +178 -0
  88. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/Hacl_Curve25519.h +21 -0
  89. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/everest.h +234 -0
  90. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlib/FStar_UInt128.h +124 -0
  91. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h +280 -0
  92. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlib.h +29 -0
  93. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/c_endianness.h +204 -0
  94. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/builtin.h +16 -0
  95. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/callconv.h +46 -0
  96. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/compat.h +34 -0
  97. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/debug.h +57 -0
  98. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/target.h +102 -0
  99. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/types.h +61 -0
  100. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/wasmsupport.h +5 -0
  101. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/vs2013/Hacl_Curve25519.h +21 -0
  102. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/vs2013/inttypes.h +36 -0
  103. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/vs2013/stdbool.h +31 -0
  104. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/x25519.h +190 -0
  105. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/Hacl_Curve25519.c +760 -0
  106. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/Hacl_Curve25519_joined.c +50 -0
  107. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/everest.c +102 -0
  108. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/kremlib/FStar_UInt128_extracted.c +413 -0
  109. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c +100 -0
  110. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/legacy/Hacl_Curve25519.c +805 -0
  111. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/x25519.c +186 -0
  112. package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m/p256-m.c +1514 -0
  113. package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m/p256-m.h +135 -0
  114. package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m_driver_entrypoints.c +312 -0
  115. package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m_driver_entrypoints.h +219 -0
  116. package/external/libedhoc/externals/mbedtls/configs/config-ccm-psk-dtls1_2.h +92 -0
  117. package/external/libedhoc/externals/mbedtls/configs/config-ccm-psk-tls1_2.h +83 -0
  118. package/external/libedhoc/externals/mbedtls/configs/config-no-entropy.h +73 -0
  119. package/external/libedhoc/externals/mbedtls/configs/config-suite-b.h +106 -0
  120. package/external/libedhoc/externals/mbedtls/configs/config-symmetric-only.h +77 -0
  121. package/external/libedhoc/externals/mbedtls/configs/config-thread.h +76 -0
  122. package/external/libedhoc/externals/mbedtls/configs/crypto-config-ccm-aes-sha256.h +25 -0
  123. package/external/libedhoc/externals/mbedtls/configs/crypto_config_profile_medium.h +136 -0
  124. package/external/libedhoc/externals/mbedtls/configs/tfm_mbedcrypto_config_profile_medium.h +609 -0
  125. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_encdec.h +54 -0
  126. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_hashing.h +30 -0
  127. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_mainpage.h +19 -0
  128. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_rng.h +27 -0
  129. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_ssltls.h +37 -0
  130. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_tcpip.h +32 -0
  131. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_x509.h +31 -0
  132. package/external/libedhoc/externals/mbedtls/include/mbedtls/aes.h +627 -0
  133. package/external/libedhoc/externals/mbedtls/include/mbedtls/aria.h +341 -0
  134. package/external/libedhoc/externals/mbedtls/include/mbedtls/asn1.h +641 -0
  135. package/external/libedhoc/externals/mbedtls/include/mbedtls/asn1write.h +389 -0
  136. package/external/libedhoc/externals/mbedtls/include/mbedtls/base64.h +82 -0
  137. package/external/libedhoc/externals/mbedtls/include/mbedtls/bignum.h +1084 -0
  138. package/external/libedhoc/externals/mbedtls/include/mbedtls/build_info.h +146 -0
  139. package/external/libedhoc/externals/mbedtls/include/mbedtls/camellia.h +303 -0
  140. package/external/libedhoc/externals/mbedtls/include/mbedtls/ccm.h +518 -0
  141. package/external/libedhoc/externals/mbedtls/include/mbedtls/chacha20.h +202 -0
  142. package/external/libedhoc/externals/mbedtls/include/mbedtls/chachapoly.h +342 -0
  143. package/external/libedhoc/externals/mbedtls/include/mbedtls/check_config.h +1206 -0
  144. package/external/libedhoc/externals/mbedtls/include/mbedtls/cipher.h +1183 -0
  145. package/external/libedhoc/externals/mbedtls/include/mbedtls/cmac.h +246 -0
  146. package/external/libedhoc/externals/mbedtls/include/mbedtls/compat-2.x.h +46 -0
  147. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h +183 -0
  148. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h +877 -0
  149. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h +334 -0
  150. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h +142 -0
  151. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_ssl.h +76 -0
  152. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_x509.h +25 -0
  153. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_psa.h +55 -0
  154. package/external/libedhoc/externals/mbedtls/include/mbedtls/constant_time.h +36 -0
  155. package/external/libedhoc/externals/mbedtls/include/mbedtls/ctr_drbg.h +564 -0
  156. package/external/libedhoc/externals/mbedtls/include/mbedtls/debug.h +308 -0
  157. package/external/libedhoc/externals/mbedtls/include/mbedtls/des.h +385 -0
  158. package/external/libedhoc/externals/mbedtls/include/mbedtls/dhm.h +972 -0
  159. package/external/libedhoc/externals/mbedtls/include/mbedtls/ecdh.h +441 -0
  160. package/external/libedhoc/externals/mbedtls/include/mbedtls/ecdsa.h +671 -0
  161. package/external/libedhoc/externals/mbedtls/include/mbedtls/ecjpake.h +298 -0
  162. package/external/libedhoc/externals/mbedtls/include/mbedtls/ecp.h +1362 -0
  163. package/external/libedhoc/externals/mbedtls/include/mbedtls/entropy.h +273 -0
  164. package/external/libedhoc/externals/mbedtls/include/mbedtls/error.h +201 -0
  165. package/external/libedhoc/externals/mbedtls/include/mbedtls/gcm.h +370 -0
  166. package/external/libedhoc/externals/mbedtls/include/mbedtls/hkdf.h +124 -0
  167. package/external/libedhoc/externals/mbedtls/include/mbedtls/hmac_drbg.h +434 -0
  168. package/external/libedhoc/externals/mbedtls/include/mbedtls/lms.h +440 -0
  169. package/external/libedhoc/externals/mbedtls/include/mbedtls/mbedtls_config.h +4116 -0
  170. package/external/libedhoc/externals/mbedtls/include/mbedtls/md.h +640 -0
  171. package/external/libedhoc/externals/mbedtls/include/mbedtls/md5.h +190 -0
  172. package/external/libedhoc/externals/mbedtls/include/mbedtls/memory_buffer_alloc.h +142 -0
  173. package/external/libedhoc/externals/mbedtls/include/mbedtls/net_sockets.h +299 -0
  174. package/external/libedhoc/externals/mbedtls/include/mbedtls/nist_kw.h +166 -0
  175. package/external/libedhoc/externals/mbedtls/include/mbedtls/oid.h +722 -0
  176. package/external/libedhoc/externals/mbedtls/include/mbedtls/pem.h +160 -0
  177. package/external/libedhoc/externals/mbedtls/include/mbedtls/pk.h +1091 -0
  178. package/external/libedhoc/externals/mbedtls/include/mbedtls/pkcs12.h +186 -0
  179. package/external/libedhoc/externals/mbedtls/include/mbedtls/pkcs5.h +197 -0
  180. package/external/libedhoc/externals/mbedtls/include/mbedtls/pkcs7.h +241 -0
  181. package/external/libedhoc/externals/mbedtls/include/mbedtls/platform.h +485 -0
  182. package/external/libedhoc/externals/mbedtls/include/mbedtls/platform_time.h +79 -0
  183. package/external/libedhoc/externals/mbedtls/include/mbedtls/platform_util.h +201 -0
  184. package/external/libedhoc/externals/mbedtls/include/mbedtls/poly1305.h +168 -0
  185. package/external/libedhoc/externals/mbedtls/include/mbedtls/private_access.h +20 -0
  186. package/external/libedhoc/externals/mbedtls/include/mbedtls/psa_util.h +104 -0
  187. package/external/libedhoc/externals/mbedtls/include/mbedtls/ripemd160.h +136 -0
  188. package/external/libedhoc/externals/mbedtls/include/mbedtls/rsa.h +1143 -0
  189. package/external/libedhoc/externals/mbedtls/include/mbedtls/sha1.h +219 -0
  190. package/external/libedhoc/externals/mbedtls/include/mbedtls/sha256.h +198 -0
  191. package/external/libedhoc/externals/mbedtls/include/mbedtls/sha3.h +172 -0
  192. package/external/libedhoc/externals/mbedtls/include/mbedtls/sha512.h +208 -0
  193. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl.h +5369 -0
  194. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_cache.h +187 -0
  195. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_ciphersuites.h +616 -0
  196. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_cookie.h +106 -0
  197. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_ticket.h +181 -0
  198. package/external/libedhoc/externals/mbedtls/include/mbedtls/threading.h +105 -0
  199. package/external/libedhoc/externals/mbedtls/include/mbedtls/timing.h +94 -0
  200. package/external/libedhoc/externals/mbedtls/include/mbedtls/version.h +78 -0
  201. package/external/libedhoc/externals/mbedtls/include/mbedtls/x509.h +550 -0
  202. package/external/libedhoc/externals/mbedtls/include/mbedtls/x509_crl.h +184 -0
  203. package/external/libedhoc/externals/mbedtls/include/mbedtls/x509_crt.h +1196 -0
  204. package/external/libedhoc/externals/mbedtls/include/mbedtls/x509_csr.h +319 -0
  205. package/external/libedhoc/externals/mbedtls/include/psa/build_info.h +20 -0
  206. package/external/libedhoc/externals/mbedtls/include/psa/crypto.h +4685 -0
  207. package/external/libedhoc/externals/mbedtls/include/psa/crypto_adjust_auto_enabled.h +21 -0
  208. package/external/libedhoc/externals/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h +91 -0
  209. package/external/libedhoc/externals/mbedtls/include/psa/crypto_adjust_config_synonyms.h +45 -0
  210. package/external/libedhoc/externals/mbedtls/include/psa/crypto_builtin_composites.h +210 -0
  211. package/external/libedhoc/externals/mbedtls/include/psa/crypto_builtin_key_derivation.h +118 -0
  212. package/external/libedhoc/externals/mbedtls/include/psa/crypto_builtin_primitives.h +114 -0
  213. package/external/libedhoc/externals/mbedtls/include/psa/crypto_compat.h +153 -0
  214. package/external/libedhoc/externals/mbedtls/include/psa/crypto_config.h +153 -0
  215. package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_common.h +44 -0
  216. package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_contexts_composites.h +151 -0
  217. package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h +52 -0
  218. package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_contexts_primitives.h +105 -0
  219. package/external/libedhoc/externals/mbedtls/include/psa/crypto_extra.h +2064 -0
  220. package/external/libedhoc/externals/mbedtls/include/psa/crypto_legacy.h +88 -0
  221. package/external/libedhoc/externals/mbedtls/include/psa/crypto_platform.h +92 -0
  222. package/external/libedhoc/externals/mbedtls/include/psa/crypto_se_driver.h +1383 -0
  223. package/external/libedhoc/externals/mbedtls/include/psa/crypto_sizes.h +1282 -0
  224. package/external/libedhoc/externals/mbedtls/include/psa/crypto_struct.h +460 -0
  225. package/external/libedhoc/externals/mbedtls/include/psa/crypto_types.h +453 -0
  226. package/external/libedhoc/externals/mbedtls/include/psa/crypto_values.h +2756 -0
  227. package/external/libedhoc/externals/mbedtls/library/aes.c +2315 -0
  228. package/external/libedhoc/externals/mbedtls/library/aesce.c +503 -0
  229. package/external/libedhoc/externals/mbedtls/library/aesce.h +121 -0
  230. package/external/libedhoc/externals/mbedtls/library/aesni.c +802 -0
  231. package/external/libedhoc/externals/mbedtls/library/aesni.h +158 -0
  232. package/external/libedhoc/externals/mbedtls/library/alignment.h +509 -0
  233. package/external/libedhoc/externals/mbedtls/library/aria.c +991 -0
  234. package/external/libedhoc/externals/mbedtls/library/asn1parse.c +467 -0
  235. package/external/libedhoc/externals/mbedtls/library/asn1write.c +436 -0
  236. package/external/libedhoc/externals/mbedtls/library/base64.c +299 -0
  237. package/external/libedhoc/externals/mbedtls/library/base64_internal.h +45 -0
  238. package/external/libedhoc/externals/mbedtls/library/bignum.c +2806 -0
  239. package/external/libedhoc/externals/mbedtls/library/bignum_core.c +894 -0
  240. package/external/libedhoc/externals/mbedtls/library/bignum_core.h +763 -0
  241. package/external/libedhoc/externals/mbedtls/library/bignum_mod.c +394 -0
  242. package/external/libedhoc/externals/mbedtls/library/bignum_mod.h +452 -0
  243. package/external/libedhoc/externals/mbedtls/library/bignum_mod_raw.c +276 -0
  244. package/external/libedhoc/externals/mbedtls/library/bignum_mod_raw.h +416 -0
  245. package/external/libedhoc/externals/mbedtls/library/bignum_mod_raw_invasive.h +34 -0
  246. package/external/libedhoc/externals/mbedtls/library/bn_mul.h +1094 -0
  247. package/external/libedhoc/externals/mbedtls/library/camellia.c +1044 -0
  248. package/external/libedhoc/externals/mbedtls/library/ccm.c +712 -0
  249. package/external/libedhoc/externals/mbedtls/library/chacha20.c +497 -0
  250. package/external/libedhoc/externals/mbedtls/library/chachapoly.c +478 -0
  251. package/external/libedhoc/externals/mbedtls/library/check_crypto_config.h +141 -0
  252. package/external/libedhoc/externals/mbedtls/library/cipher.c +1664 -0
  253. package/external/libedhoc/externals/mbedtls/library/cipher_wrap.c +2422 -0
  254. package/external/libedhoc/externals/mbedtls/library/cipher_wrap.h +132 -0
  255. package/external/libedhoc/externals/mbedtls/library/cmac.c +1067 -0
  256. package/external/libedhoc/externals/mbedtls/library/common.h +325 -0
  257. package/external/libedhoc/externals/mbedtls/library/constant_time.c +261 -0
  258. package/external/libedhoc/externals/mbedtls/library/constant_time_impl.h +554 -0
  259. package/external/libedhoc/externals/mbedtls/library/constant_time_internal.h +579 -0
  260. package/external/libedhoc/externals/mbedtls/library/ctr_drbg.c +881 -0
  261. package/external/libedhoc/externals/mbedtls/library/debug.c +465 -0
  262. package/external/libedhoc/externals/mbedtls/library/des.c +1042 -0
  263. package/external/libedhoc/externals/mbedtls/library/dhm.c +712 -0
  264. package/external/libedhoc/externals/mbedtls/library/ecdh.c +685 -0
  265. package/external/libedhoc/externals/mbedtls/library/ecdsa.c +867 -0
  266. package/external/libedhoc/externals/mbedtls/library/ecjpake.c +1216 -0
  267. package/external/libedhoc/externals/mbedtls/library/ecp.c +3631 -0
  268. package/external/libedhoc/externals/mbedtls/library/ecp_curves.c +5467 -0
  269. package/external/libedhoc/externals/mbedtls/library/ecp_curves_new.c +6043 -0
  270. package/external/libedhoc/externals/mbedtls/library/ecp_internal_alt.h +287 -0
  271. package/external/libedhoc/externals/mbedtls/library/ecp_invasive.h +325 -0
  272. package/external/libedhoc/externals/mbedtls/library/entropy.c +676 -0
  273. package/external/libedhoc/externals/mbedtls/library/entropy_poll.c +229 -0
  274. package/external/libedhoc/externals/mbedtls/library/entropy_poll.h +64 -0
  275. package/external/libedhoc/externals/mbedtls/library/error.c +878 -0
  276. package/external/libedhoc/externals/mbedtls/library/gcm.c +1168 -0
  277. package/external/libedhoc/externals/mbedtls/library/hkdf.c +161 -0
  278. package/external/libedhoc/externals/mbedtls/library/hmac_drbg.c +633 -0
  279. package/external/libedhoc/externals/mbedtls/library/lmots.c +821 -0
  280. package/external/libedhoc/externals/mbedtls/library/lmots.h +311 -0
  281. package/external/libedhoc/externals/mbedtls/library/lms.c +779 -0
  282. package/external/libedhoc/externals/mbedtls/library/md.c +1108 -0
  283. package/external/libedhoc/externals/mbedtls/library/md5.c +426 -0
  284. package/external/libedhoc/externals/mbedtls/library/md_psa.h +63 -0
  285. package/external/libedhoc/externals/mbedtls/library/md_wrap.h +46 -0
  286. package/external/libedhoc/externals/mbedtls/library/memory_buffer_alloc.c +745 -0
  287. package/external/libedhoc/externals/mbedtls/library/mps_common.h +181 -0
  288. package/external/libedhoc/externals/mbedtls/library/mps_error.h +89 -0
  289. package/external/libedhoc/externals/mbedtls/library/mps_reader.c +538 -0
  290. package/external/libedhoc/externals/mbedtls/library/mps_reader.h +366 -0
  291. package/external/libedhoc/externals/mbedtls/library/mps_trace.c +112 -0
  292. package/external/libedhoc/externals/mbedtls/library/mps_trace.h +154 -0
  293. package/external/libedhoc/externals/mbedtls/library/net_sockets.c +696 -0
  294. package/external/libedhoc/externals/mbedtls/library/nist_kw.c +725 -0
  295. package/external/libedhoc/externals/mbedtls/library/oid.c +1154 -0
  296. package/external/libedhoc/externals/mbedtls/library/padlock.c +155 -0
  297. package/external/libedhoc/externals/mbedtls/library/padlock.h +111 -0
  298. package/external/libedhoc/externals/mbedtls/library/pem.c +520 -0
  299. package/external/libedhoc/externals/mbedtls/library/pk.c +970 -0
  300. package/external/libedhoc/externals/mbedtls/library/pk_internal.h +118 -0
  301. package/external/libedhoc/externals/mbedtls/library/pk_wrap.c +1834 -0
  302. package/external/libedhoc/externals/mbedtls/library/pk_wrap.h +156 -0
  303. package/external/libedhoc/externals/mbedtls/library/pkcs12.c +447 -0
  304. package/external/libedhoc/externals/mbedtls/library/pkcs5.c +496 -0
  305. package/external/libedhoc/externals/mbedtls/library/pkcs7.c +773 -0
  306. package/external/libedhoc/externals/mbedtls/library/pkparse.c +1845 -0
  307. package/external/libedhoc/externals/mbedtls/library/pkwrite.c +836 -0
  308. package/external/libedhoc/externals/mbedtls/library/pkwrite.h +112 -0
  309. package/external/libedhoc/externals/mbedtls/library/platform.c +402 -0
  310. package/external/libedhoc/externals/mbedtls/library/platform_util.c +285 -0
  311. package/external/libedhoc/externals/mbedtls/library/poly1305.c +492 -0
  312. package/external/libedhoc/externals/mbedtls/library/psa_crypto.c +8432 -0
  313. package/external/libedhoc/externals/mbedtls/library/psa_crypto_aead.c +653 -0
  314. package/external/libedhoc/externals/mbedtls/library/psa_crypto_aead.h +499 -0
  315. package/external/libedhoc/externals/mbedtls/library/psa_crypto_cipher.c +590 -0
  316. package/external/libedhoc/externals/mbedtls/library/psa_crypto_cipher.h +293 -0
  317. package/external/libedhoc/externals/mbedtls/library/psa_crypto_client.c +67 -0
  318. package/external/libedhoc/externals/mbedtls/library/psa_crypto_core.h +838 -0
  319. package/external/libedhoc/externals/mbedtls/library/psa_crypto_core_common.h +52 -0
  320. package/external/libedhoc/externals/mbedtls/library/psa_crypto_driver_wrappers.h +2871 -0
  321. package/external/libedhoc/externals/mbedtls/library/psa_crypto_driver_wrappers_no_static.c +256 -0
  322. package/external/libedhoc/externals/mbedtls/library/psa_crypto_driver_wrappers_no_static.h +31 -0
  323. package/external/libedhoc/externals/mbedtls/library/psa_crypto_ecp.c +561 -0
  324. package/external/libedhoc/externals/mbedtls/library/psa_crypto_ecp.h +267 -0
  325. package/external/libedhoc/externals/mbedtls/library/psa_crypto_ffdh.c +295 -0
  326. package/external/libedhoc/externals/mbedtls/library/psa_crypto_ffdh.h +132 -0
  327. package/external/libedhoc/externals/mbedtls/library/psa_crypto_hash.c +470 -0
  328. package/external/libedhoc/externals/mbedtls/library/psa_crypto_hash.h +211 -0
  329. package/external/libedhoc/externals/mbedtls/library/psa_crypto_invasive.h +70 -0
  330. package/external/libedhoc/externals/mbedtls/library/psa_crypto_its.h +131 -0
  331. package/external/libedhoc/externals/mbedtls/library/psa_crypto_mac.c +496 -0
  332. package/external/libedhoc/externals/mbedtls/library/psa_crypto_mac.h +264 -0
  333. package/external/libedhoc/externals/mbedtls/library/psa_crypto_pake.c +571 -0
  334. package/external/libedhoc/externals/mbedtls/library/psa_crypto_pake.h +159 -0
  335. package/external/libedhoc/externals/mbedtls/library/psa_crypto_random_impl.h +192 -0
  336. package/external/libedhoc/externals/mbedtls/library/psa_crypto_rsa.c +727 -0
  337. package/external/libedhoc/externals/mbedtls/library/psa_crypto_rsa.h +317 -0
  338. package/external/libedhoc/externals/mbedtls/library/psa_crypto_se.c +373 -0
  339. package/external/libedhoc/externals/mbedtls/library/psa_crypto_se.h +185 -0
  340. package/external/libedhoc/externals/mbedtls/library/psa_crypto_slot_management.c +559 -0
  341. package/external/libedhoc/externals/mbedtls/library/psa_crypto_slot_management.h +213 -0
  342. package/external/libedhoc/externals/mbedtls/library/psa_crypto_storage.c +481 -0
  343. package/external/libedhoc/externals/mbedtls/library/psa_crypto_storage.h +384 -0
  344. package/external/libedhoc/externals/mbedtls/library/psa_its_file.c +259 -0
  345. package/external/libedhoc/externals/mbedtls/library/psa_util.c +160 -0
  346. package/external/libedhoc/externals/mbedtls/library/psa_util_internal.h +96 -0
  347. package/external/libedhoc/externals/mbedtls/library/ripemd160.c +490 -0
  348. package/external/libedhoc/externals/mbedtls/library/rsa.c +2640 -0
  349. package/external/libedhoc/externals/mbedtls/library/rsa_alt_helpers.c +447 -0
  350. package/external/libedhoc/externals/mbedtls/library/rsa_alt_helpers.h +208 -0
  351. package/external/libedhoc/externals/mbedtls/library/sha1.c +480 -0
  352. package/external/libedhoc/externals/mbedtls/library/sha256.c +946 -0
  353. package/external/libedhoc/externals/mbedtls/library/sha3.c +626 -0
  354. package/external/libedhoc/externals/mbedtls/library/sha512.c +1111 -0
  355. package/external/libedhoc/externals/mbedtls/library/ssl_cache.c +410 -0
  356. package/external/libedhoc/externals/mbedtls/library/ssl_ciphersuites.c +2050 -0
  357. package/external/libedhoc/externals/mbedtls/library/ssl_client.c +1017 -0
  358. package/external/libedhoc/externals/mbedtls/library/ssl_client.h +22 -0
  359. package/external/libedhoc/externals/mbedtls/library/ssl_cookie.c +380 -0
  360. package/external/libedhoc/externals/mbedtls/library/ssl_debug_helpers.h +78 -0
  361. package/external/libedhoc/externals/mbedtls/library/ssl_debug_helpers_generated.c +234 -0
  362. package/external/libedhoc/externals/mbedtls/library/ssl_misc.h +2847 -0
  363. package/external/libedhoc/externals/mbedtls/library/ssl_msg.c +6155 -0
  364. package/external/libedhoc/externals/mbedtls/library/ssl_ticket.c +540 -0
  365. package/external/libedhoc/externals/mbedtls/library/ssl_tls.c +9577 -0
  366. package/external/libedhoc/externals/mbedtls/library/ssl_tls12_client.c +3607 -0
  367. package/external/libedhoc/externals/mbedtls/library/ssl_tls12_server.c +4403 -0
  368. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_client.c +3046 -0
  369. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_generic.c +1740 -0
  370. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_invasive.h +23 -0
  371. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_keys.c +1897 -0
  372. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_keys.h +651 -0
  373. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_server.c +3146 -0
  374. package/external/libedhoc/externals/mbedtls/library/threading.c +181 -0
  375. package/external/libedhoc/externals/mbedtls/library/timing.c +154 -0
  376. package/external/libedhoc/externals/mbedtls/library/version.c +32 -0
  377. package/external/libedhoc/externals/mbedtls/library/version_features.c +826 -0
  378. package/external/libedhoc/externals/mbedtls/library/x509.c +1776 -0
  379. package/external/libedhoc/externals/mbedtls/library/x509_create.c +557 -0
  380. package/external/libedhoc/externals/mbedtls/library/x509_crl.c +712 -0
  381. package/external/libedhoc/externals/mbedtls/library/x509_crt.c +3292 -0
  382. package/external/libedhoc/externals/mbedtls/library/x509_csr.c +574 -0
  383. package/external/libedhoc/externals/mbedtls/library/x509write.c +174 -0
  384. package/external/libedhoc/externals/mbedtls/library/x509write_crt.c +681 -0
  385. package/external/libedhoc/externals/mbedtls/library/x509write_csr.c +331 -0
  386. package/external/libedhoc/externals/mbedtls/programs/aes/crypt_and_hash.c +573 -0
  387. package/external/libedhoc/externals/mbedtls/programs/cipher/cipher_aead_demo.c +259 -0
  388. package/external/libedhoc/externals/mbedtls/programs/fuzz/common.c +105 -0
  389. package/external/libedhoc/externals/mbedtls/programs/fuzz/common.h +25 -0
  390. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_client.c +195 -0
  391. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_dtlsclient.c +138 -0
  392. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_dtlsserver.c +183 -0
  393. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_pkcs7.c +20 -0
  394. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_privkey.c +106 -0
  395. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_pubkey.c +86 -0
  396. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_server.c +218 -0
  397. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_x509crl.c +41 -0
  398. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_x509crt.c +41 -0
  399. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_x509csr.c +41 -0
  400. package/external/libedhoc/externals/mbedtls/programs/fuzz/onefile.c +69 -0
  401. package/external/libedhoc/externals/mbedtls/programs/hash/generic_sum.c +209 -0
  402. package/external/libedhoc/externals/mbedtls/programs/hash/hello.c +45 -0
  403. package/external/libedhoc/externals/mbedtls/programs/hash/md_hmac_demo.c +136 -0
  404. package/external/libedhoc/externals/mbedtls/programs/pkey/dh_client.c +274 -0
  405. package/external/libedhoc/externals/mbedtls/programs/pkey/dh_genprime.c +161 -0
  406. package/external/libedhoc/externals/mbedtls/programs/pkey/dh_server.c +296 -0
  407. package/external/libedhoc/externals/mbedtls/programs/pkey/ecdh_curve25519.c +189 -0
  408. package/external/libedhoc/externals/mbedtls/programs/pkey/ecdsa.c +217 -0
  409. package/external/libedhoc/externals/mbedtls/programs/pkey/gen_key.c +419 -0
  410. package/external/libedhoc/externals/mbedtls/programs/pkey/key_app.c +316 -0
  411. package/external/libedhoc/externals/mbedtls/programs/pkey/key_app_writer.c +435 -0
  412. package/external/libedhoc/externals/mbedtls/programs/pkey/mpi_demo.c +84 -0
  413. package/external/libedhoc/externals/mbedtls/programs/pkey/pk_decrypt.c +153 -0
  414. package/external/libedhoc/externals/mbedtls/programs/pkey/pk_encrypt.c +154 -0
  415. package/external/libedhoc/externals/mbedtls/programs/pkey/pk_sign.c +155 -0
  416. package/external/libedhoc/externals/mbedtls/programs/pkey/pk_verify.c +128 -0
  417. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_decrypt.c +172 -0
  418. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_encrypt.c +149 -0
  419. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_genkey.c +141 -0
  420. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_sign.c +155 -0
  421. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_sign_pss.c +161 -0
  422. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_verify.c +131 -0
  423. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_verify_pss.c +136 -0
  424. package/external/libedhoc/externals/mbedtls/programs/psa/aead_demo.c +281 -0
  425. package/external/libedhoc/externals/mbedtls/programs/psa/crypto_examples.c +321 -0
  426. package/external/libedhoc/externals/mbedtls/programs/psa/hmac_demo.c +159 -0
  427. package/external/libedhoc/externals/mbedtls/programs/psa/key_ladder_demo.c +691 -0
  428. package/external/libedhoc/externals/mbedtls/programs/psa/psa_constant_names.c +310 -0
  429. package/external/libedhoc/externals/mbedtls/programs/psa/psa_constant_names_generated.c +474 -0
  430. package/external/libedhoc/externals/mbedtls/programs/random/gen_entropy.c +75 -0
  431. package/external/libedhoc/externals/mbedtls/programs/random/gen_random_ctr_drbg.c +107 -0
  432. package/external/libedhoc/externals/mbedtls/programs/ssl/dtls_client.c +342 -0
  433. package/external/libedhoc/externals/mbedtls/programs/ssl/dtls_server.c +408 -0
  434. package/external/libedhoc/externals/mbedtls/programs/ssl/mini_client.c +274 -0
  435. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_client1.c +288 -0
  436. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_client2.c +3118 -0
  437. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_context_info.c +1009 -0
  438. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_fork_server.c +381 -0
  439. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_mail_client.c +804 -0
  440. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_pthread_server.c +489 -0
  441. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_server.c +362 -0
  442. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_server2.c +4268 -0
  443. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_test_common_source.c +375 -0
  444. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_test_lib.c +601 -0
  445. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_test_lib.h +306 -0
  446. package/external/libedhoc/externals/mbedtls/programs/test/benchmark.c +1284 -0
  447. package/external/libedhoc/externals/mbedtls/programs/test/cmake_package/cmake_package.c +27 -0
  448. package/external/libedhoc/externals/mbedtls/programs/test/cmake_package_install/cmake_package_install.c +28 -0
  449. package/external/libedhoc/externals/mbedtls/programs/test/cmake_subproject/cmake_subproject.c +28 -0
  450. package/external/libedhoc/externals/mbedtls/programs/test/dlopen.c +92 -0
  451. package/external/libedhoc/externals/mbedtls/programs/test/query_compile_time_config.c +66 -0
  452. package/external/libedhoc/externals/mbedtls/programs/test/query_config.c +5137 -0
  453. package/external/libedhoc/externals/mbedtls/programs/test/query_config.h +34 -0
  454. package/external/libedhoc/externals/mbedtls/programs/test/query_included_headers.c +29 -0
  455. package/external/libedhoc/externals/mbedtls/programs/test/selftest.c +583 -0
  456. package/external/libedhoc/externals/mbedtls/programs/test/udp_proxy.c +967 -0
  457. package/external/libedhoc/externals/mbedtls/programs/test/zeroize.c +72 -0
  458. package/external/libedhoc/externals/mbedtls/programs/util/pem2der.c +265 -0
  459. package/external/libedhoc/externals/mbedtls/programs/util/strerror.c +61 -0
  460. package/external/libedhoc/externals/mbedtls/programs/wince_main.c +31 -0
  461. package/external/libedhoc/externals/mbedtls/programs/x509/cert_app.c +456 -0
  462. package/external/libedhoc/externals/mbedtls/programs/x509/cert_req.c +509 -0
  463. package/external/libedhoc/externals/mbedtls/programs/x509/cert_write.c +1012 -0
  464. package/external/libedhoc/externals/mbedtls/programs/x509/crl_app.c +132 -0
  465. package/external/libedhoc/externals/mbedtls/programs/x509/load_roots.c +165 -0
  466. package/external/libedhoc/externals/mbedtls/programs/x509/req_app.c +132 -0
  467. package/external/libedhoc/externals/mbedtls/tests/configs/tls13-only.h +31 -0
  468. package/external/libedhoc/externals/mbedtls/tests/configs/user-config-for-test.h +89 -0
  469. package/external/libedhoc/externals/mbedtls/tests/configs/user-config-malloc-0-null.h +22 -0
  470. package/external/libedhoc/externals/mbedtls/tests/configs/user-config-zeroize-memset.h +17 -0
  471. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/aes_alt.h +23 -0
  472. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/aria_alt.h +16 -0
  473. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/camellia_alt.h +16 -0
  474. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ccm_alt.h +16 -0
  475. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/chacha20_alt.h +16 -0
  476. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/chachapoly_alt.h +18 -0
  477. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/cmac_alt.h +15 -0
  478. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/des_alt.h +22 -0
  479. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/dhm_alt.h +16 -0
  480. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ecjpake_alt.h +15 -0
  481. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ecp_alt.h +22 -0
  482. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/gcm_alt.h +16 -0
  483. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/md5_alt.h +16 -0
  484. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/nist_kw_alt.h +15 -0
  485. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/platform_alt.h +16 -0
  486. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/poly1305_alt.h +16 -0
  487. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ripemd160_alt.h +16 -0
  488. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/rsa_alt.h +16 -0
  489. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/sha1_alt.h +16 -0
  490. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/sha256_alt.h +16 -0
  491. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/sha512_alt.h +16 -0
  492. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/threading_alt.h +14 -0
  493. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/timing_alt.h +19 -0
  494. package/external/libedhoc/externals/mbedtls/tests/include/alt-extra/psa/crypto.h +7 -0
  495. package/external/libedhoc/externals/mbedtls/tests/include/baremetal-override/time.h +6 -0
  496. package/external/libedhoc/externals/mbedtls/tests/include/spe/crypto_spe.h +131 -0
  497. package/external/libedhoc/externals/mbedtls/tests/include/test/arguments.h +26 -0
  498. package/external/libedhoc/externals/mbedtls/tests/include/test/asn1_helpers.h +38 -0
  499. package/external/libedhoc/externals/mbedtls/tests/include/test/bignum_helpers.h +106 -0
  500. package/external/libedhoc/externals/mbedtls/tests/include/test/certs.h +234 -0
  501. package/external/libedhoc/externals/mbedtls/tests/include/test/constant_flow.h +71 -0
  502. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/aead.h +121 -0
  503. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/asymmetric_encryption.h +67 -0
  504. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/cipher.h +130 -0
  505. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/config_test_driver.h +44 -0
  506. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/crypto_config_test_driver_extension.h +430 -0
  507. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/hash.h +64 -0
  508. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/key_agreement.h +62 -0
  509. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/key_management.h +123 -0
  510. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/mac.h +125 -0
  511. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/pake.h +75 -0
  512. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/signature.h +112 -0
  513. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/test_driver.h +32 -0
  514. package/external/libedhoc/externals/mbedtls/tests/include/test/fake_external_rng_for_test.h +40 -0
  515. package/external/libedhoc/externals/mbedtls/tests/include/test/helpers.h +268 -0
  516. package/external/libedhoc/externals/mbedtls/tests/include/test/macros.h +250 -0
  517. package/external/libedhoc/externals/mbedtls/tests/include/test/psa_crypto_helpers.h +398 -0
  518. package/external/libedhoc/externals/mbedtls/tests/include/test/psa_exercise_key.h +223 -0
  519. package/external/libedhoc/externals/mbedtls/tests/include/test/psa_helpers.h +24 -0
  520. package/external/libedhoc/externals/mbedtls/tests/include/test/random.h +91 -0
  521. package/external/libedhoc/externals/mbedtls/tests/include/test/ssl_helpers.h +628 -0
  522. package/external/libedhoc/externals/mbedtls/tests/src/asn1_helpers.c +62 -0
  523. package/external/libedhoc/externals/mbedtls/tests/src/bignum_helpers.c +145 -0
  524. package/external/libedhoc/externals/mbedtls/tests/src/certs.c +480 -0
  525. package/external/libedhoc/externals/mbedtls/tests/src/drivers/hash.c +199 -0
  526. package/external/libedhoc/externals/mbedtls/tests/src/drivers/platform_builtin_keys.c +78 -0
  527. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_aead.c +462 -0
  528. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_asymmetric_encryption.c +151 -0
  529. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_cipher.c +424 -0
  530. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_key_agreement.c +147 -0
  531. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_key_management.c +783 -0
  532. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_mac.c +422 -0
  533. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_pake.c +202 -0
  534. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_signature.c +405 -0
  535. package/external/libedhoc/externals/mbedtls/tests/src/fake_external_rng_for_test.c +45 -0
  536. package/external/libedhoc/externals/mbedtls/tests/src/helpers.c +353 -0
  537. package/external/libedhoc/externals/mbedtls/tests/src/psa_crypto_helpers.c +196 -0
  538. package/external/libedhoc/externals/mbedtls/tests/src/psa_exercise_key.c +989 -0
  539. package/external/libedhoc/externals/mbedtls/tests/src/random.c +136 -0
  540. package/external/libedhoc/externals/mbedtls/tests/src/test_certs.h +1226 -0
  541. package/external/libedhoc/externals/mbedtls/tests/src/test_helpers/ssl_helpers.c +2292 -0
  542. package/external/libedhoc/externals/mbedtls/tests/src/threading_helpers.c +210 -0
  543. package/external/libedhoc/externals/zcbor/include/zcbor_common.h +422 -0
  544. package/external/libedhoc/externals/zcbor/include/zcbor_debug.h +69 -0
  545. package/external/libedhoc/externals/zcbor/include/zcbor_decode.h +358 -0
  546. package/external/libedhoc/externals/zcbor/include/zcbor_encode.h +296 -0
  547. package/external/libedhoc/externals/zcbor/include/zcbor_tags.h +94 -0
  548. package/external/libedhoc/externals/zcbor/samples/hello_world/src/main.c +41 -0
  549. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_decode.h +39 -0
  550. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_encode.h +39 -0
  551. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_types.h +47 -0
  552. package/external/libedhoc/externals/zcbor/samples/pet/src/main.c +128 -0
  553. package/external/libedhoc/externals/zcbor/samples/pet/src/pet_decode.c +69 -0
  554. package/external/libedhoc/externals/zcbor/samples/pet/src/pet_encode.c +70 -0
  555. package/external/libedhoc/externals/zcbor/src/zcbor_common.c +257 -0
  556. package/external/libedhoc/externals/zcbor/src/zcbor_decode.c +1107 -0
  557. package/external/libedhoc/externals/zcbor/src/zcbor_encode.c +722 -0
  558. package/external/libedhoc/externals/zcbor/tests/decode/test1_suit_old_formats/src/main.c +368 -0
  559. package/external/libedhoc/externals/zcbor/tests/decode/test2_suit/src/main.c +189 -0
  560. package/external/libedhoc/externals/zcbor/tests/decode/test3_simple/src/main.c +529 -0
  561. package/external/libedhoc/externals/zcbor/tests/decode/test5_corner_cases/src/main.c +2010 -0
  562. package/external/libedhoc/externals/zcbor/tests/decode/test7_suit9_simple/src/main.c +134 -0
  563. package/external/libedhoc/externals/zcbor/tests/decode/test8_suit12/src/main.c +863 -0
  564. package/external/libedhoc/externals/zcbor/tests/decode/test9_manifest14/src/main.c +364 -0
  565. package/external/libedhoc/externals/zcbor/tests/encode/test1_suit/src/main.c +453 -0
  566. package/external/libedhoc/externals/zcbor/tests/encode/test2_simple/src/main.c +123 -0
  567. package/external/libedhoc/externals/zcbor/tests/encode/test3_corner_cases/src/main.c +1527 -0
  568. package/external/libedhoc/externals/zcbor/tests/encode/test4_senml/src/main.c +66 -0
  569. package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_manifest12.c +136 -0
  570. package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_pet.c +12 -0
  571. package/external/libedhoc/externals/zcbor/tests/fuzz/main_entry.c +60 -0
  572. package/external/libedhoc/externals/zcbor/tests/fuzz/main_entry.h +5 -0
  573. package/external/libedhoc/externals/zcbor/tests/unit/test1_unit_tests/src/main.c +1044 -0
  574. package/external/libedhoc/externals/zcbor/tests/unit/test3_float16/src/main.c +202 -0
  575. package/external/libedhoc/include/edhoc.h +393 -0
  576. package/external/libedhoc/include/edhoc_context.h +318 -0
  577. package/external/libedhoc/include/edhoc_credentials.h +217 -0
  578. package/external/libedhoc/include/edhoc_crypto.h +331 -0
  579. package/external/libedhoc/include/edhoc_ead.h +99 -0
  580. package/external/libedhoc/include/edhoc_macros.h +51 -0
  581. package/external/libedhoc/include/edhoc_values.h +181 -0
  582. package/external/libedhoc/library/edhoc.c +219 -0
  583. package/external/libedhoc/library/edhoc_exporter.c +543 -0
  584. package/external/libedhoc/library/edhoc_message_1.c +439 -0
  585. package/external/libedhoc/library/edhoc_message_2.c +2994 -0
  586. package/external/libedhoc/library/edhoc_message_3.c +2658 -0
  587. package/external/libedhoc/library/edhoc_message_4.c +826 -0
  588. package/external/libedhoc/library/edhoc_message_error.c +238 -0
  589. package/external/libedhoc/tests/include/cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.h +37 -0
  590. package/external/libedhoc/tests/include/cipher_suites/cipher_suite_0.h +134 -0
  591. package/external/libedhoc/tests/include/cipher_suites/cipher_suite_2.h +140 -0
  592. package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_0.h +48 -0
  593. package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_2.h +48 -0
  594. package/external/libedhoc/tests/include/edhoc_trace_1/authentication_credentials_1.h +60 -0
  595. package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_1.h +208 -0
  596. package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_ead_1.h +59 -0
  597. package/external/libedhoc/tests/include/edhoc_trace_1/test_vector_1.h +738 -0
  598. package/external/libedhoc/tests/include/edhoc_trace_2/authentication_credentials_2.h +60 -0
  599. package/external/libedhoc/tests/include/edhoc_trace_2/test_edhoc_handshake_2.h +199 -0
  600. package/external/libedhoc/tests/include/edhoc_trace_2/test_vector_2.h +525 -0
  601. package/external/libedhoc/tests/include/error_message/test_edhoc_error_message.h +48 -0
  602. package/external/libedhoc/tests/include/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.h +92 -0
  603. package/external/libedhoc/tests/include/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.h +96 -0
  604. package/external/libedhoc/tests/include/x509_chain_cs_0/test_vector_x5chain_cs_0.h +140 -0
  605. package/external/libedhoc/tests/include/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.h +58 -0
  606. package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.h +56 -0
  607. package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.h +57 -0
  608. package/external/libedhoc/tests/include/x509_chain_cs_2/test_vector_x5chain_cs_2.h +169 -0
  609. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.h +59 -0
  610. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.h +57 -0
  611. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/test_vector_x5chain_cs_2_static_dh.h +163 -0
  612. package/external/libedhoc/tests/include/x509_hash_cs_2/authentication_credentials_x5t_cs_2.h +60 -0
  613. package/external/libedhoc/tests/include/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.h +57 -0
  614. package/external/libedhoc/tests/include/x509_hash_cs_2/test_vector_x5t_cs_2.h +181 -0
  615. package/external/libedhoc/tests/src/cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.c +544 -0
  616. package/external/libedhoc/tests/src/cipher_suites/cipher_suite_0.c +447 -0
  617. package/external/libedhoc/tests/src/cipher_suites/cipher_suite_2.c +600 -0
  618. package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_0.c +475 -0
  619. package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_2.c +473 -0
  620. package/external/libedhoc/tests/src/edhoc_trace_1/authentication_credentials_1.c +252 -0
  621. package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_1.c +1829 -0
  622. package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_ead_1.c +1247 -0
  623. package/external/libedhoc/tests/src/edhoc_trace_2/authentication_credentials_2.c +170 -0
  624. package/external/libedhoc/tests/src/edhoc_trace_2/test_edhoc_handshake_2.c +1783 -0
  625. package/external/libedhoc/tests/src/error_message/test_edhoc_error_message.c +226 -0
  626. package/external/libedhoc/tests/src/tests.c +228 -0
  627. package/external/libedhoc/tests/src/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.c +332 -0
  628. package/external/libedhoc/tests/src/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.c +936 -0
  629. package/external/libedhoc/tests/src/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.c +166 -0
  630. package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.c +587 -0
  631. package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.c +917 -0
  632. package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.c +186 -0
  633. package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.c +743 -0
  634. package/external/libedhoc/tests/src/x509_hash_cs_2/authentication_credentials_x5t_cs_2.c +261 -0
  635. package/external/libedhoc/tests/src/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.c +854 -0
  636. package/include/EdhocComposeAsyncWorker.h +61 -0
  637. package/include/EdhocCredentialManager.h +100 -0
  638. package/include/EdhocCryptoManager.h +504 -0
  639. package/include/EdhocEadManager.h +151 -0
  640. package/include/EdhocExportAsyncWorker.h +71 -0
  641. package/include/EdhocProcessAsyncWorker.h +76 -0
  642. package/include/LibEDHOC.h +304 -0
  643. package/include/Suites.h +27 -0
  644. package/include/UserContext.h +79 -0
  645. package/include/Utils.h +110 -0
  646. package/package.json +5 -5
  647. package/prebuilds/win32-ia32/edhoc.node +0 -0
  648. package/prebuilds/win32-x64/edhoc.node +0 -0
  649. package/src/EdhocComposeAsyncWorker.cpp +88 -0
  650. package/src/EdhocCredentialManager.cpp +360 -0
  651. package/src/EdhocCryptoManager.cpp +967 -0
  652. package/src/EdhocEadManager.cpp +156 -0
  653. package/src/EdhocExportAsyncWorker.cpp +82 -0
  654. package/src/EdhocProcessAsyncWorker.cpp +74 -0
  655. package/src/LibEDHOC.cpp +369 -0
  656. package/src/Suites.cpp +153 -0
  657. package/src/Utils.cpp +115 -0
  658. package/dist/bindings.d.ts +0 -5
  659. package/dist/bindings.d.ts.map +0 -1
  660. package/dist/bindings.js +0 -10
  661. package/dist/credentials.d.ts +0 -16
  662. package/dist/credentials.d.ts.map +0 -1
  663. package/dist/credentials.js +0 -84
  664. package/dist/crypto.d.ts +0 -22
  665. package/dist/crypto.d.ts.map +0 -1
  666. package/dist/crypto.js +0 -177
  667. package/dist/edhoc.d.ts +0 -346
  668. package/dist/edhoc.d.ts.map +0 -1
  669. package/dist/edhoc.js +0 -76
  670. package/dist/index.d.ts +0 -4
  671. package/dist/index.d.ts.map +0 -1
  672. package/dist/index.js +0 -19
@@ -0,0 +1,1108 @@
1
+ /**
2
+ * \file md.c
3
+ *
4
+ * \brief Generic message digest wrapper for Mbed TLS
5
+ *
6
+ * \author Adriaan de Jong <dejong@fox-it.com>
7
+ *
8
+ * Copyright The Mbed TLS Contributors
9
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
10
+ */
11
+
12
+ #include "common.h"
13
+
14
+ /*
15
+ * Availability of functions in this module is controlled by two
16
+ * feature macros:
17
+ * - MBEDTLS_MD_C enables the whole module;
18
+ * - MBEDTLS_MD_LIGHT enables only functions for hashing and accessing
19
+ * most hash metadata (everything except string names); is it
20
+ * automatically set whenever MBEDTLS_MD_C is defined.
21
+ *
22
+ * In this file, functions from MD_LIGHT are at the top, MD_C at the end.
23
+ *
24
+ * In the future we may want to change the contract of some functions
25
+ * (behaviour with NULL arguments) depending on whether MD_C is defined or
26
+ * only MD_LIGHT. Also, the exact scope of MD_LIGHT might vary.
27
+ *
28
+ * For these reasons, we're keeping MD_LIGHT internal for now.
29
+ */
30
+ #if defined(MBEDTLS_MD_LIGHT)
31
+
32
+ #include "mbedtls/md.h"
33
+ #include "md_wrap.h"
34
+ #include "mbedtls/platform_util.h"
35
+ #include "mbedtls/error.h"
36
+
37
+ #include "mbedtls/md5.h"
38
+ #include "mbedtls/ripemd160.h"
39
+ #include "mbedtls/sha1.h"
40
+ #include "mbedtls/sha256.h"
41
+ #include "mbedtls/sha512.h"
42
+ #include "mbedtls/sha3.h"
43
+
44
+ #if defined(MBEDTLS_PSA_CRYPTO_C)
45
+ #include <psa/crypto.h>
46
+ #include "md_psa.h"
47
+ #include "psa_util_internal.h"
48
+ #endif
49
+
50
+ #if defined(MBEDTLS_MD_SOME_PSA)
51
+ #include "psa_crypto_core.h"
52
+ #endif
53
+
54
+ #include "mbedtls/platform.h"
55
+
56
+ #include <string.h>
57
+
58
+ #if defined(MBEDTLS_FS_IO)
59
+ #include <stdio.h>
60
+ #endif
61
+
62
+ /* See comment above MBEDTLS_MD_MAX_SIZE in md.h */
63
+ #if defined(MBEDTLS_PSA_CRYPTO_C) && MBEDTLS_MD_MAX_SIZE < PSA_HASH_MAX_SIZE
64
+ #error "Internal error: MBEDTLS_MD_MAX_SIZE < PSA_HASH_MAX_SIZE"
65
+ #endif
66
+
67
+ #if defined(MBEDTLS_MD_C)
68
+ #define MD_INFO(type, out_size, block_size) type, out_size, block_size,
69
+ #else
70
+ #define MD_INFO(type, out_size, block_size) type, out_size,
71
+ #endif
72
+
73
+ #if defined(MBEDTLS_MD_CAN_MD5)
74
+ static const mbedtls_md_info_t mbedtls_md5_info = {
75
+ MD_INFO(MBEDTLS_MD_MD5, 16, 64)
76
+ };
77
+ #endif
78
+
79
+ #if defined(MBEDTLS_MD_CAN_RIPEMD160)
80
+ static const mbedtls_md_info_t mbedtls_ripemd160_info = {
81
+ MD_INFO(MBEDTLS_MD_RIPEMD160, 20, 64)
82
+ };
83
+ #endif
84
+
85
+ #if defined(MBEDTLS_MD_CAN_SHA1)
86
+ static const mbedtls_md_info_t mbedtls_sha1_info = {
87
+ MD_INFO(MBEDTLS_MD_SHA1, 20, 64)
88
+ };
89
+ #endif
90
+
91
+ #if defined(MBEDTLS_MD_CAN_SHA224)
92
+ static const mbedtls_md_info_t mbedtls_sha224_info = {
93
+ MD_INFO(MBEDTLS_MD_SHA224, 28, 64)
94
+ };
95
+ #endif
96
+
97
+ #if defined(MBEDTLS_MD_CAN_SHA256)
98
+ static const mbedtls_md_info_t mbedtls_sha256_info = {
99
+ MD_INFO(MBEDTLS_MD_SHA256, 32, 64)
100
+ };
101
+ #endif
102
+
103
+ #if defined(MBEDTLS_MD_CAN_SHA384)
104
+ static const mbedtls_md_info_t mbedtls_sha384_info = {
105
+ MD_INFO(MBEDTLS_MD_SHA384, 48, 128)
106
+ };
107
+ #endif
108
+
109
+ #if defined(MBEDTLS_MD_CAN_SHA512)
110
+ static const mbedtls_md_info_t mbedtls_sha512_info = {
111
+ MD_INFO(MBEDTLS_MD_SHA512, 64, 128)
112
+ };
113
+ #endif
114
+
115
+ #if defined(MBEDTLS_MD_CAN_SHA3_224)
116
+ static const mbedtls_md_info_t mbedtls_sha3_224_info = {
117
+ MD_INFO(MBEDTLS_MD_SHA3_224, 28, 144)
118
+ };
119
+ #endif
120
+
121
+ #if defined(MBEDTLS_MD_CAN_SHA3_256)
122
+ static const mbedtls_md_info_t mbedtls_sha3_256_info = {
123
+ MD_INFO(MBEDTLS_MD_SHA3_256, 32, 136)
124
+ };
125
+ #endif
126
+
127
+ #if defined(MBEDTLS_MD_CAN_SHA3_384)
128
+ static const mbedtls_md_info_t mbedtls_sha3_384_info = {
129
+ MD_INFO(MBEDTLS_MD_SHA3_384, 48, 104)
130
+ };
131
+ #endif
132
+
133
+ #if defined(MBEDTLS_MD_CAN_SHA3_512)
134
+ static const mbedtls_md_info_t mbedtls_sha3_512_info = {
135
+ MD_INFO(MBEDTLS_MD_SHA3_512, 64, 72)
136
+ };
137
+ #endif
138
+
139
+ const mbedtls_md_info_t *mbedtls_md_info_from_type(mbedtls_md_type_t md_type)
140
+ {
141
+ switch (md_type) {
142
+ #if defined(MBEDTLS_MD_CAN_MD5)
143
+ case MBEDTLS_MD_MD5:
144
+ return &mbedtls_md5_info;
145
+ #endif
146
+ #if defined(MBEDTLS_MD_CAN_RIPEMD160)
147
+ case MBEDTLS_MD_RIPEMD160:
148
+ return &mbedtls_ripemd160_info;
149
+ #endif
150
+ #if defined(MBEDTLS_MD_CAN_SHA1)
151
+ case MBEDTLS_MD_SHA1:
152
+ return &mbedtls_sha1_info;
153
+ #endif
154
+ #if defined(MBEDTLS_MD_CAN_SHA224)
155
+ case MBEDTLS_MD_SHA224:
156
+ return &mbedtls_sha224_info;
157
+ #endif
158
+ #if defined(MBEDTLS_MD_CAN_SHA256)
159
+ case MBEDTLS_MD_SHA256:
160
+ return &mbedtls_sha256_info;
161
+ #endif
162
+ #if defined(MBEDTLS_MD_CAN_SHA384)
163
+ case MBEDTLS_MD_SHA384:
164
+ return &mbedtls_sha384_info;
165
+ #endif
166
+ #if defined(MBEDTLS_MD_CAN_SHA512)
167
+ case MBEDTLS_MD_SHA512:
168
+ return &mbedtls_sha512_info;
169
+ #endif
170
+ #if defined(MBEDTLS_MD_CAN_SHA3_224)
171
+ case MBEDTLS_MD_SHA3_224:
172
+ return &mbedtls_sha3_224_info;
173
+ #endif
174
+ #if defined(MBEDTLS_MD_CAN_SHA3_256)
175
+ case MBEDTLS_MD_SHA3_256:
176
+ return &mbedtls_sha3_256_info;
177
+ #endif
178
+ #if defined(MBEDTLS_MD_CAN_SHA3_384)
179
+ case MBEDTLS_MD_SHA3_384:
180
+ return &mbedtls_sha3_384_info;
181
+ #endif
182
+ #if defined(MBEDTLS_MD_CAN_SHA3_512)
183
+ case MBEDTLS_MD_SHA3_512:
184
+ return &mbedtls_sha3_512_info;
185
+ #endif
186
+ default:
187
+ return NULL;
188
+ }
189
+ }
190
+
191
+ #if defined(MBEDTLS_MD_SOME_PSA)
192
+ static psa_algorithm_t psa_alg_of_md(const mbedtls_md_info_t *info)
193
+ {
194
+ switch (info->type) {
195
+ #if defined(MBEDTLS_MD_MD5_VIA_PSA)
196
+ case MBEDTLS_MD_MD5:
197
+ return PSA_ALG_MD5;
198
+ #endif
199
+ #if defined(MBEDTLS_MD_RIPEMD160_VIA_PSA)
200
+ case MBEDTLS_MD_RIPEMD160:
201
+ return PSA_ALG_RIPEMD160;
202
+ #endif
203
+ #if defined(MBEDTLS_MD_SHA1_VIA_PSA)
204
+ case MBEDTLS_MD_SHA1:
205
+ return PSA_ALG_SHA_1;
206
+ #endif
207
+ #if defined(MBEDTLS_MD_SHA224_VIA_PSA)
208
+ case MBEDTLS_MD_SHA224:
209
+ return PSA_ALG_SHA_224;
210
+ #endif
211
+ #if defined(MBEDTLS_MD_SHA256_VIA_PSA)
212
+ case MBEDTLS_MD_SHA256:
213
+ return PSA_ALG_SHA_256;
214
+ #endif
215
+ #if defined(MBEDTLS_MD_SHA384_VIA_PSA)
216
+ case MBEDTLS_MD_SHA384:
217
+ return PSA_ALG_SHA_384;
218
+ #endif
219
+ #if defined(MBEDTLS_MD_SHA512_VIA_PSA)
220
+ case MBEDTLS_MD_SHA512:
221
+ return PSA_ALG_SHA_512;
222
+ #endif
223
+ #if defined(MBEDTLS_MD_SHA3_224_VIA_PSA)
224
+ case MBEDTLS_MD_SHA3_224:
225
+ return PSA_ALG_SHA3_224;
226
+ #endif
227
+ #if defined(MBEDTLS_MD_SHA3_256_VIA_PSA)
228
+ case MBEDTLS_MD_SHA3_256:
229
+ return PSA_ALG_SHA3_256;
230
+ #endif
231
+ #if defined(MBEDTLS_MD_SHA3_384_VIA_PSA)
232
+ case MBEDTLS_MD_SHA3_384:
233
+ return PSA_ALG_SHA3_384;
234
+ #endif
235
+ #if defined(MBEDTLS_MD_SHA3_512_VIA_PSA)
236
+ case MBEDTLS_MD_SHA3_512:
237
+ return PSA_ALG_SHA3_512;
238
+ #endif
239
+ default:
240
+ return PSA_ALG_NONE;
241
+ }
242
+ }
243
+
244
+ static int md_can_use_psa(const mbedtls_md_info_t *info)
245
+ {
246
+ psa_algorithm_t alg = psa_alg_of_md(info);
247
+ if (alg == PSA_ALG_NONE) {
248
+ return 0;
249
+ }
250
+
251
+ return psa_can_do_hash(alg);
252
+ }
253
+ #endif /* MBEDTLS_MD_SOME_PSA */
254
+
255
+ void mbedtls_md_init(mbedtls_md_context_t *ctx)
256
+ {
257
+ /* Note: this sets engine (if present) to MBEDTLS_MD_ENGINE_LEGACY */
258
+ memset(ctx, 0, sizeof(mbedtls_md_context_t));
259
+ }
260
+
261
+ void mbedtls_md_free(mbedtls_md_context_t *ctx)
262
+ {
263
+ if (ctx == NULL || ctx->md_info == NULL) {
264
+ return;
265
+ }
266
+
267
+ if (ctx->md_ctx != NULL) {
268
+ #if defined(MBEDTLS_MD_SOME_PSA)
269
+ if (ctx->engine == MBEDTLS_MD_ENGINE_PSA) {
270
+ psa_hash_abort(ctx->md_ctx);
271
+ } else
272
+ #endif
273
+ switch (ctx->md_info->type) {
274
+ #if defined(MBEDTLS_MD5_C)
275
+ case MBEDTLS_MD_MD5:
276
+ mbedtls_md5_free(ctx->md_ctx);
277
+ break;
278
+ #endif
279
+ #if defined(MBEDTLS_RIPEMD160_C)
280
+ case MBEDTLS_MD_RIPEMD160:
281
+ mbedtls_ripemd160_free(ctx->md_ctx);
282
+ break;
283
+ #endif
284
+ #if defined(MBEDTLS_SHA1_C)
285
+ case MBEDTLS_MD_SHA1:
286
+ mbedtls_sha1_free(ctx->md_ctx);
287
+ break;
288
+ #endif
289
+ #if defined(MBEDTLS_SHA224_C)
290
+ case MBEDTLS_MD_SHA224:
291
+ mbedtls_sha256_free(ctx->md_ctx);
292
+ break;
293
+ #endif
294
+ #if defined(MBEDTLS_SHA256_C)
295
+ case MBEDTLS_MD_SHA256:
296
+ mbedtls_sha256_free(ctx->md_ctx);
297
+ break;
298
+ #endif
299
+ #if defined(MBEDTLS_SHA384_C)
300
+ case MBEDTLS_MD_SHA384:
301
+ mbedtls_sha512_free(ctx->md_ctx);
302
+ break;
303
+ #endif
304
+ #if defined(MBEDTLS_SHA512_C)
305
+ case MBEDTLS_MD_SHA512:
306
+ mbedtls_sha512_free(ctx->md_ctx);
307
+ break;
308
+ #endif
309
+ #if defined(MBEDTLS_SHA3_C)
310
+ case MBEDTLS_MD_SHA3_224:
311
+ case MBEDTLS_MD_SHA3_256:
312
+ case MBEDTLS_MD_SHA3_384:
313
+ case MBEDTLS_MD_SHA3_512:
314
+ mbedtls_sha3_free(ctx->md_ctx);
315
+ break;
316
+ #endif
317
+ default:
318
+ /* Shouldn't happen */
319
+ break;
320
+ }
321
+ mbedtls_free(ctx->md_ctx);
322
+ }
323
+
324
+ #if defined(MBEDTLS_MD_C)
325
+ if (ctx->hmac_ctx != NULL) {
326
+ mbedtls_zeroize_and_free(ctx->hmac_ctx,
327
+ 2 * ctx->md_info->block_size);
328
+ }
329
+ #endif
330
+
331
+ mbedtls_platform_zeroize(ctx, sizeof(mbedtls_md_context_t));
332
+ }
333
+
334
+ int mbedtls_md_clone(mbedtls_md_context_t *dst,
335
+ const mbedtls_md_context_t *src)
336
+ {
337
+ if (dst == NULL || dst->md_info == NULL ||
338
+ src == NULL || src->md_info == NULL ||
339
+ dst->md_info != src->md_info) {
340
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
341
+ }
342
+
343
+ #if defined(MBEDTLS_MD_SOME_PSA)
344
+ if (src->engine != dst->engine) {
345
+ /* This can happen with src set to legacy because PSA wasn't ready
346
+ * yet, and dst to PSA because it became ready in the meantime.
347
+ * We currently don't support that case (we'd need to re-allocate
348
+ * md_ctx to the size of the appropriate MD context). */
349
+ return MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE;
350
+ }
351
+
352
+ if (src->engine == MBEDTLS_MD_ENGINE_PSA) {
353
+ psa_status_t status = psa_hash_clone(src->md_ctx, dst->md_ctx);
354
+ return mbedtls_md_error_from_psa(status);
355
+ }
356
+ #endif
357
+
358
+ switch (src->md_info->type) {
359
+ #if defined(MBEDTLS_MD5_C)
360
+ case MBEDTLS_MD_MD5:
361
+ mbedtls_md5_clone(dst->md_ctx, src->md_ctx);
362
+ break;
363
+ #endif
364
+ #if defined(MBEDTLS_RIPEMD160_C)
365
+ case MBEDTLS_MD_RIPEMD160:
366
+ mbedtls_ripemd160_clone(dst->md_ctx, src->md_ctx);
367
+ break;
368
+ #endif
369
+ #if defined(MBEDTLS_SHA1_C)
370
+ case MBEDTLS_MD_SHA1:
371
+ mbedtls_sha1_clone(dst->md_ctx, src->md_ctx);
372
+ break;
373
+ #endif
374
+ #if defined(MBEDTLS_SHA224_C)
375
+ case MBEDTLS_MD_SHA224:
376
+ mbedtls_sha256_clone(dst->md_ctx, src->md_ctx);
377
+ break;
378
+ #endif
379
+ #if defined(MBEDTLS_SHA256_C)
380
+ case MBEDTLS_MD_SHA256:
381
+ mbedtls_sha256_clone(dst->md_ctx, src->md_ctx);
382
+ break;
383
+ #endif
384
+ #if defined(MBEDTLS_SHA384_C)
385
+ case MBEDTLS_MD_SHA384:
386
+ mbedtls_sha512_clone(dst->md_ctx, src->md_ctx);
387
+ break;
388
+ #endif
389
+ #if defined(MBEDTLS_SHA512_C)
390
+ case MBEDTLS_MD_SHA512:
391
+ mbedtls_sha512_clone(dst->md_ctx, src->md_ctx);
392
+ break;
393
+ #endif
394
+ #if defined(MBEDTLS_SHA3_C)
395
+ case MBEDTLS_MD_SHA3_224:
396
+ case MBEDTLS_MD_SHA3_256:
397
+ case MBEDTLS_MD_SHA3_384:
398
+ case MBEDTLS_MD_SHA3_512:
399
+ mbedtls_sha3_clone(dst->md_ctx, src->md_ctx);
400
+ break;
401
+ #endif
402
+ default:
403
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
404
+ }
405
+
406
+ return 0;
407
+ }
408
+
409
+ #define ALLOC(type) \
410
+ do { \
411
+ ctx->md_ctx = mbedtls_calloc(1, sizeof(mbedtls_##type##_context)); \
412
+ if (ctx->md_ctx == NULL) \
413
+ return MBEDTLS_ERR_MD_ALLOC_FAILED; \
414
+ mbedtls_##type##_init(ctx->md_ctx); \
415
+ } \
416
+ while (0)
417
+
418
+ int mbedtls_md_setup(mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info, int hmac)
419
+ {
420
+ #if defined(MBEDTLS_MD_C)
421
+ if (ctx == NULL) {
422
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
423
+ }
424
+ #endif
425
+ if (md_info == NULL) {
426
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
427
+ }
428
+
429
+ ctx->md_info = md_info;
430
+ ctx->md_ctx = NULL;
431
+ #if defined(MBEDTLS_MD_C)
432
+ ctx->hmac_ctx = NULL;
433
+ #else
434
+ if (hmac != 0) {
435
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
436
+ }
437
+ #endif
438
+
439
+ #if defined(MBEDTLS_MD_SOME_PSA)
440
+ if (md_can_use_psa(ctx->md_info)) {
441
+ ctx->md_ctx = mbedtls_calloc(1, sizeof(psa_hash_operation_t));
442
+ if (ctx->md_ctx == NULL) {
443
+ return MBEDTLS_ERR_MD_ALLOC_FAILED;
444
+ }
445
+ ctx->engine = MBEDTLS_MD_ENGINE_PSA;
446
+ } else
447
+ #endif
448
+ switch (md_info->type) {
449
+ #if defined(MBEDTLS_MD5_C)
450
+ case MBEDTLS_MD_MD5:
451
+ ALLOC(md5);
452
+ break;
453
+ #endif
454
+ #if defined(MBEDTLS_RIPEMD160_C)
455
+ case MBEDTLS_MD_RIPEMD160:
456
+ ALLOC(ripemd160);
457
+ break;
458
+ #endif
459
+ #if defined(MBEDTLS_SHA1_C)
460
+ case MBEDTLS_MD_SHA1:
461
+ ALLOC(sha1);
462
+ break;
463
+ #endif
464
+ #if defined(MBEDTLS_SHA224_C)
465
+ case MBEDTLS_MD_SHA224:
466
+ ALLOC(sha256);
467
+ break;
468
+ #endif
469
+ #if defined(MBEDTLS_SHA256_C)
470
+ case MBEDTLS_MD_SHA256:
471
+ ALLOC(sha256);
472
+ break;
473
+ #endif
474
+ #if defined(MBEDTLS_SHA384_C)
475
+ case MBEDTLS_MD_SHA384:
476
+ ALLOC(sha512);
477
+ break;
478
+ #endif
479
+ #if defined(MBEDTLS_SHA512_C)
480
+ case MBEDTLS_MD_SHA512:
481
+ ALLOC(sha512);
482
+ break;
483
+ #endif
484
+ #if defined(MBEDTLS_SHA3_C)
485
+ case MBEDTLS_MD_SHA3_224:
486
+ case MBEDTLS_MD_SHA3_256:
487
+ case MBEDTLS_MD_SHA3_384:
488
+ case MBEDTLS_MD_SHA3_512:
489
+ ALLOC(sha3);
490
+ break;
491
+ #endif
492
+ default:
493
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
494
+ }
495
+
496
+ #if defined(MBEDTLS_MD_C)
497
+ if (hmac != 0) {
498
+ ctx->hmac_ctx = mbedtls_calloc(2, md_info->block_size);
499
+ if (ctx->hmac_ctx == NULL) {
500
+ mbedtls_md_free(ctx);
501
+ return MBEDTLS_ERR_MD_ALLOC_FAILED;
502
+ }
503
+ }
504
+ #endif
505
+
506
+ return 0;
507
+ }
508
+ #undef ALLOC
509
+
510
+ int mbedtls_md_starts(mbedtls_md_context_t *ctx)
511
+ {
512
+ #if defined(MBEDTLS_MD_C)
513
+ if (ctx == NULL || ctx->md_info == NULL) {
514
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
515
+ }
516
+ #endif
517
+
518
+ #if defined(MBEDTLS_MD_SOME_PSA)
519
+ if (ctx->engine == MBEDTLS_MD_ENGINE_PSA) {
520
+ psa_algorithm_t alg = psa_alg_of_md(ctx->md_info);
521
+ psa_hash_abort(ctx->md_ctx);
522
+ psa_status_t status = psa_hash_setup(ctx->md_ctx, alg);
523
+ return mbedtls_md_error_from_psa(status);
524
+ }
525
+ #endif
526
+
527
+ switch (ctx->md_info->type) {
528
+ #if defined(MBEDTLS_MD5_C)
529
+ case MBEDTLS_MD_MD5:
530
+ return mbedtls_md5_starts(ctx->md_ctx);
531
+ #endif
532
+ #if defined(MBEDTLS_RIPEMD160_C)
533
+ case MBEDTLS_MD_RIPEMD160:
534
+ return mbedtls_ripemd160_starts(ctx->md_ctx);
535
+ #endif
536
+ #if defined(MBEDTLS_SHA1_C)
537
+ case MBEDTLS_MD_SHA1:
538
+ return mbedtls_sha1_starts(ctx->md_ctx);
539
+ #endif
540
+ #if defined(MBEDTLS_SHA224_C)
541
+ case MBEDTLS_MD_SHA224:
542
+ return mbedtls_sha256_starts(ctx->md_ctx, 1);
543
+ #endif
544
+ #if defined(MBEDTLS_SHA256_C)
545
+ case MBEDTLS_MD_SHA256:
546
+ return mbedtls_sha256_starts(ctx->md_ctx, 0);
547
+ #endif
548
+ #if defined(MBEDTLS_SHA384_C)
549
+ case MBEDTLS_MD_SHA384:
550
+ return mbedtls_sha512_starts(ctx->md_ctx, 1);
551
+ #endif
552
+ #if defined(MBEDTLS_SHA512_C)
553
+ case MBEDTLS_MD_SHA512:
554
+ return mbedtls_sha512_starts(ctx->md_ctx, 0);
555
+ #endif
556
+ #if defined(MBEDTLS_SHA3_C)
557
+ case MBEDTLS_MD_SHA3_224:
558
+ return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_224);
559
+ case MBEDTLS_MD_SHA3_256:
560
+ return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_256);
561
+ case MBEDTLS_MD_SHA3_384:
562
+ return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_384);
563
+ case MBEDTLS_MD_SHA3_512:
564
+ return mbedtls_sha3_starts(ctx->md_ctx, MBEDTLS_SHA3_512);
565
+ #endif
566
+ default:
567
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
568
+ }
569
+ }
570
+
571
+ int mbedtls_md_update(mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen)
572
+ {
573
+ #if defined(MBEDTLS_MD_C)
574
+ if (ctx == NULL || ctx->md_info == NULL) {
575
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
576
+ }
577
+ #endif
578
+
579
+ #if defined(MBEDTLS_MD_SOME_PSA)
580
+ if (ctx->engine == MBEDTLS_MD_ENGINE_PSA) {
581
+ psa_status_t status = psa_hash_update(ctx->md_ctx, input, ilen);
582
+ return mbedtls_md_error_from_psa(status);
583
+ }
584
+ #endif
585
+
586
+ switch (ctx->md_info->type) {
587
+ #if defined(MBEDTLS_MD5_C)
588
+ case MBEDTLS_MD_MD5:
589
+ return mbedtls_md5_update(ctx->md_ctx, input, ilen);
590
+ #endif
591
+ #if defined(MBEDTLS_RIPEMD160_C)
592
+ case MBEDTLS_MD_RIPEMD160:
593
+ return mbedtls_ripemd160_update(ctx->md_ctx, input, ilen);
594
+ #endif
595
+ #if defined(MBEDTLS_SHA1_C)
596
+ case MBEDTLS_MD_SHA1:
597
+ return mbedtls_sha1_update(ctx->md_ctx, input, ilen);
598
+ #endif
599
+ #if defined(MBEDTLS_SHA224_C)
600
+ case MBEDTLS_MD_SHA224:
601
+ return mbedtls_sha256_update(ctx->md_ctx, input, ilen);
602
+ #endif
603
+ #if defined(MBEDTLS_SHA256_C)
604
+ case MBEDTLS_MD_SHA256:
605
+ return mbedtls_sha256_update(ctx->md_ctx, input, ilen);
606
+ #endif
607
+ #if defined(MBEDTLS_SHA384_C)
608
+ case MBEDTLS_MD_SHA384:
609
+ return mbedtls_sha512_update(ctx->md_ctx, input, ilen);
610
+ #endif
611
+ #if defined(MBEDTLS_SHA512_C)
612
+ case MBEDTLS_MD_SHA512:
613
+ return mbedtls_sha512_update(ctx->md_ctx, input, ilen);
614
+ #endif
615
+ #if defined(MBEDTLS_SHA3_C)
616
+ case MBEDTLS_MD_SHA3_224:
617
+ case MBEDTLS_MD_SHA3_256:
618
+ case MBEDTLS_MD_SHA3_384:
619
+ case MBEDTLS_MD_SHA3_512:
620
+ return mbedtls_sha3_update(ctx->md_ctx, input, ilen);
621
+ #endif
622
+ default:
623
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
624
+ }
625
+ }
626
+
627
+ int mbedtls_md_finish(mbedtls_md_context_t *ctx, unsigned char *output)
628
+ {
629
+ #if defined(MBEDTLS_MD_C)
630
+ if (ctx == NULL || ctx->md_info == NULL) {
631
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
632
+ }
633
+ #endif
634
+
635
+ #if defined(MBEDTLS_MD_SOME_PSA)
636
+ if (ctx->engine == MBEDTLS_MD_ENGINE_PSA) {
637
+ size_t size = ctx->md_info->size;
638
+ psa_status_t status = psa_hash_finish(ctx->md_ctx,
639
+ output, size, &size);
640
+ return mbedtls_md_error_from_psa(status);
641
+ }
642
+ #endif
643
+
644
+ switch (ctx->md_info->type) {
645
+ #if defined(MBEDTLS_MD5_C)
646
+ case MBEDTLS_MD_MD5:
647
+ return mbedtls_md5_finish(ctx->md_ctx, output);
648
+ #endif
649
+ #if defined(MBEDTLS_RIPEMD160_C)
650
+ case MBEDTLS_MD_RIPEMD160:
651
+ return mbedtls_ripemd160_finish(ctx->md_ctx, output);
652
+ #endif
653
+ #if defined(MBEDTLS_SHA1_C)
654
+ case MBEDTLS_MD_SHA1:
655
+ return mbedtls_sha1_finish(ctx->md_ctx, output);
656
+ #endif
657
+ #if defined(MBEDTLS_SHA224_C)
658
+ case MBEDTLS_MD_SHA224:
659
+ return mbedtls_sha256_finish(ctx->md_ctx, output);
660
+ #endif
661
+ #if defined(MBEDTLS_SHA256_C)
662
+ case MBEDTLS_MD_SHA256:
663
+ return mbedtls_sha256_finish(ctx->md_ctx, output);
664
+ #endif
665
+ #if defined(MBEDTLS_SHA384_C)
666
+ case MBEDTLS_MD_SHA384:
667
+ return mbedtls_sha512_finish(ctx->md_ctx, output);
668
+ #endif
669
+ #if defined(MBEDTLS_SHA512_C)
670
+ case MBEDTLS_MD_SHA512:
671
+ return mbedtls_sha512_finish(ctx->md_ctx, output);
672
+ #endif
673
+ #if defined(MBEDTLS_SHA3_C)
674
+ case MBEDTLS_MD_SHA3_224:
675
+ case MBEDTLS_MD_SHA3_256:
676
+ case MBEDTLS_MD_SHA3_384:
677
+ case MBEDTLS_MD_SHA3_512:
678
+ return mbedtls_sha3_finish(ctx->md_ctx, output, ctx->md_info->size);
679
+ #endif
680
+ default:
681
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
682
+ }
683
+ }
684
+
685
+ int mbedtls_md(const mbedtls_md_info_t *md_info, const unsigned char *input, size_t ilen,
686
+ unsigned char *output)
687
+ {
688
+ if (md_info == NULL) {
689
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
690
+ }
691
+
692
+ #if defined(MBEDTLS_MD_SOME_PSA)
693
+ if (md_can_use_psa(md_info)) {
694
+ size_t size = md_info->size;
695
+ psa_status_t status = psa_hash_compute(psa_alg_of_md(md_info),
696
+ input, ilen,
697
+ output, size, &size);
698
+ return mbedtls_md_error_from_psa(status);
699
+ }
700
+ #endif
701
+
702
+ switch (md_info->type) {
703
+ #if defined(MBEDTLS_MD5_C)
704
+ case MBEDTLS_MD_MD5:
705
+ return mbedtls_md5(input, ilen, output);
706
+ #endif
707
+ #if defined(MBEDTLS_RIPEMD160_C)
708
+ case MBEDTLS_MD_RIPEMD160:
709
+ return mbedtls_ripemd160(input, ilen, output);
710
+ #endif
711
+ #if defined(MBEDTLS_SHA1_C)
712
+ case MBEDTLS_MD_SHA1:
713
+ return mbedtls_sha1(input, ilen, output);
714
+ #endif
715
+ #if defined(MBEDTLS_SHA224_C)
716
+ case MBEDTLS_MD_SHA224:
717
+ return mbedtls_sha256(input, ilen, output, 1);
718
+ #endif
719
+ #if defined(MBEDTLS_SHA256_C)
720
+ case MBEDTLS_MD_SHA256:
721
+ return mbedtls_sha256(input, ilen, output, 0);
722
+ #endif
723
+ #if defined(MBEDTLS_SHA384_C)
724
+ case MBEDTLS_MD_SHA384:
725
+ return mbedtls_sha512(input, ilen, output, 1);
726
+ #endif
727
+ #if defined(MBEDTLS_SHA512_C)
728
+ case MBEDTLS_MD_SHA512:
729
+ return mbedtls_sha512(input, ilen, output, 0);
730
+ #endif
731
+ #if defined(MBEDTLS_SHA3_C)
732
+ case MBEDTLS_MD_SHA3_224:
733
+ return mbedtls_sha3(MBEDTLS_SHA3_224, input, ilen, output, md_info->size);
734
+ case MBEDTLS_MD_SHA3_256:
735
+ return mbedtls_sha3(MBEDTLS_SHA3_256, input, ilen, output, md_info->size);
736
+ case MBEDTLS_MD_SHA3_384:
737
+ return mbedtls_sha3(MBEDTLS_SHA3_384, input, ilen, output, md_info->size);
738
+ case MBEDTLS_MD_SHA3_512:
739
+ return mbedtls_sha3(MBEDTLS_SHA3_512, input, ilen, output, md_info->size);
740
+ #endif
741
+ default:
742
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
743
+ }
744
+ }
745
+
746
+ unsigned char mbedtls_md_get_size(const mbedtls_md_info_t *md_info)
747
+ {
748
+ if (md_info == NULL) {
749
+ return 0;
750
+ }
751
+
752
+ return md_info->size;
753
+ }
754
+
755
+ mbedtls_md_type_t mbedtls_md_get_type(const mbedtls_md_info_t *md_info)
756
+ {
757
+ if (md_info == NULL) {
758
+ return MBEDTLS_MD_NONE;
759
+ }
760
+
761
+ return md_info->type;
762
+ }
763
+
764
+ #if defined(MBEDTLS_PSA_CRYPTO_C)
765
+ int mbedtls_md_error_from_psa(psa_status_t status)
766
+ {
767
+ return PSA_TO_MBEDTLS_ERR_LIST(status, psa_to_md_errors,
768
+ psa_generic_status_to_mbedtls);
769
+ }
770
+ #endif /* MBEDTLS_PSA_CRYPTO_C */
771
+
772
+
773
+ /************************************************************************
774
+ * Functions above this separator are part of MBEDTLS_MD_LIGHT, *
775
+ * functions below are only available when MBEDTLS_MD_C is set. *
776
+ ************************************************************************/
777
+ #if defined(MBEDTLS_MD_C)
778
+
779
+ /*
780
+ * Reminder: update profiles in x509_crt.c when adding a new hash!
781
+ */
782
+ static const int supported_digests[] = {
783
+
784
+ #if defined(MBEDTLS_MD_CAN_SHA512)
785
+ MBEDTLS_MD_SHA512,
786
+ #endif
787
+
788
+ #if defined(MBEDTLS_MD_CAN_SHA384)
789
+ MBEDTLS_MD_SHA384,
790
+ #endif
791
+
792
+ #if defined(MBEDTLS_MD_CAN_SHA256)
793
+ MBEDTLS_MD_SHA256,
794
+ #endif
795
+ #if defined(MBEDTLS_MD_CAN_SHA224)
796
+ MBEDTLS_MD_SHA224,
797
+ #endif
798
+
799
+ #if defined(MBEDTLS_MD_CAN_SHA1)
800
+ MBEDTLS_MD_SHA1,
801
+ #endif
802
+
803
+ #if defined(MBEDTLS_MD_CAN_RIPEMD160)
804
+ MBEDTLS_MD_RIPEMD160,
805
+ #endif
806
+
807
+ #if defined(MBEDTLS_MD_CAN_MD5)
808
+ MBEDTLS_MD_MD5,
809
+ #endif
810
+
811
+ #if defined(MBEDTLS_MD_CAN_SHA3_224)
812
+ MBEDTLS_MD_SHA3_224,
813
+ #endif
814
+
815
+ #if defined(MBEDTLS_MD_CAN_SHA3_256)
816
+ MBEDTLS_MD_SHA3_256,
817
+ #endif
818
+
819
+ #if defined(MBEDTLS_MD_CAN_SHA3_384)
820
+ MBEDTLS_MD_SHA3_384,
821
+ #endif
822
+
823
+ #if defined(MBEDTLS_MD_CAN_SHA3_512)
824
+ MBEDTLS_MD_SHA3_512,
825
+ #endif
826
+
827
+ MBEDTLS_MD_NONE
828
+ };
829
+
830
+ const int *mbedtls_md_list(void)
831
+ {
832
+ return supported_digests;
833
+ }
834
+
835
+ typedef struct {
836
+ const char *md_name;
837
+ mbedtls_md_type_t md_type;
838
+ } md_name_entry;
839
+
840
+ static const md_name_entry md_names[] = {
841
+ #if defined(MBEDTLS_MD_CAN_MD5)
842
+ { "MD5", MBEDTLS_MD_MD5 },
843
+ #endif
844
+ #if defined(MBEDTLS_MD_CAN_RIPEMD160)
845
+ { "RIPEMD160", MBEDTLS_MD_RIPEMD160 },
846
+ #endif
847
+ #if defined(MBEDTLS_MD_CAN_SHA1)
848
+ { "SHA1", MBEDTLS_MD_SHA1 },
849
+ { "SHA", MBEDTLS_MD_SHA1 }, // compatibility fallback
850
+ #endif
851
+ #if defined(MBEDTLS_MD_CAN_SHA224)
852
+ { "SHA224", MBEDTLS_MD_SHA224 },
853
+ #endif
854
+ #if defined(MBEDTLS_MD_CAN_SHA256)
855
+ { "SHA256", MBEDTLS_MD_SHA256 },
856
+ #endif
857
+ #if defined(MBEDTLS_MD_CAN_SHA384)
858
+ { "SHA384", MBEDTLS_MD_SHA384 },
859
+ #endif
860
+ #if defined(MBEDTLS_MD_CAN_SHA512)
861
+ { "SHA512", MBEDTLS_MD_SHA512 },
862
+ #endif
863
+ #if defined(MBEDTLS_MD_CAN_SHA3_224)
864
+ { "SHA3-224", MBEDTLS_MD_SHA3_224 },
865
+ #endif
866
+ #if defined(MBEDTLS_MD_CAN_SHA3_256)
867
+ { "SHA3-256", MBEDTLS_MD_SHA3_256 },
868
+ #endif
869
+ #if defined(MBEDTLS_MD_CAN_SHA3_384)
870
+ { "SHA3-384", MBEDTLS_MD_SHA3_384 },
871
+ #endif
872
+ #if defined(MBEDTLS_MD_CAN_SHA3_512)
873
+ { "SHA3-512", MBEDTLS_MD_SHA3_512 },
874
+ #endif
875
+ { NULL, MBEDTLS_MD_NONE },
876
+ };
877
+
878
+ const mbedtls_md_info_t *mbedtls_md_info_from_string(const char *md_name)
879
+ {
880
+ if (NULL == md_name) {
881
+ return NULL;
882
+ }
883
+
884
+ const md_name_entry *entry = md_names;
885
+ while (entry->md_name != NULL &&
886
+ strcmp(entry->md_name, md_name) != 0) {
887
+ ++entry;
888
+ }
889
+
890
+ return mbedtls_md_info_from_type(entry->md_type);
891
+ }
892
+
893
+ const char *mbedtls_md_get_name(const mbedtls_md_info_t *md_info)
894
+ {
895
+ if (md_info == NULL) {
896
+ return NULL;
897
+ }
898
+
899
+ const md_name_entry *entry = md_names;
900
+ while (entry->md_type != MBEDTLS_MD_NONE &&
901
+ entry->md_type != md_info->type) {
902
+ ++entry;
903
+ }
904
+
905
+ return entry->md_name;
906
+ }
907
+
908
+ const mbedtls_md_info_t *mbedtls_md_info_from_ctx(
909
+ const mbedtls_md_context_t *ctx)
910
+ {
911
+ if (ctx == NULL) {
912
+ return NULL;
913
+ }
914
+
915
+ return ctx->MBEDTLS_PRIVATE(md_info);
916
+ }
917
+
918
+ #if defined(MBEDTLS_FS_IO)
919
+ int mbedtls_md_file(const mbedtls_md_info_t *md_info, const char *path, unsigned char *output)
920
+ {
921
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
922
+ FILE *f;
923
+ size_t n;
924
+ mbedtls_md_context_t ctx;
925
+ unsigned char buf[1024];
926
+
927
+ if (md_info == NULL) {
928
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
929
+ }
930
+
931
+ if ((f = fopen(path, "rb")) == NULL) {
932
+ return MBEDTLS_ERR_MD_FILE_IO_ERROR;
933
+ }
934
+
935
+ /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
936
+ mbedtls_setbuf(f, NULL);
937
+
938
+ mbedtls_md_init(&ctx);
939
+
940
+ if ((ret = mbedtls_md_setup(&ctx, md_info, 0)) != 0) {
941
+ goto cleanup;
942
+ }
943
+
944
+ if ((ret = mbedtls_md_starts(&ctx)) != 0) {
945
+ goto cleanup;
946
+ }
947
+
948
+ while ((n = fread(buf, 1, sizeof(buf), f)) > 0) {
949
+ if ((ret = mbedtls_md_update(&ctx, buf, n)) != 0) {
950
+ goto cleanup;
951
+ }
952
+ }
953
+
954
+ if (ferror(f) != 0) {
955
+ ret = MBEDTLS_ERR_MD_FILE_IO_ERROR;
956
+ } else {
957
+ ret = mbedtls_md_finish(&ctx, output);
958
+ }
959
+
960
+ cleanup:
961
+ mbedtls_platform_zeroize(buf, sizeof(buf));
962
+ fclose(f);
963
+ mbedtls_md_free(&ctx);
964
+
965
+ return ret;
966
+ }
967
+ #endif /* MBEDTLS_FS_IO */
968
+
969
+ int mbedtls_md_hmac_starts(mbedtls_md_context_t *ctx, const unsigned char *key, size_t keylen)
970
+ {
971
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
972
+ unsigned char sum[MBEDTLS_MD_MAX_SIZE];
973
+ unsigned char *ipad, *opad;
974
+
975
+ if (ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL) {
976
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
977
+ }
978
+
979
+ if (keylen > (size_t) ctx->md_info->block_size) {
980
+ if ((ret = mbedtls_md_starts(ctx)) != 0) {
981
+ goto cleanup;
982
+ }
983
+ if ((ret = mbedtls_md_update(ctx, key, keylen)) != 0) {
984
+ goto cleanup;
985
+ }
986
+ if ((ret = mbedtls_md_finish(ctx, sum)) != 0) {
987
+ goto cleanup;
988
+ }
989
+
990
+ keylen = ctx->md_info->size;
991
+ key = sum;
992
+ }
993
+
994
+ ipad = (unsigned char *) ctx->hmac_ctx;
995
+ opad = (unsigned char *) ctx->hmac_ctx + ctx->md_info->block_size;
996
+
997
+ memset(ipad, 0x36, ctx->md_info->block_size);
998
+ memset(opad, 0x5C, ctx->md_info->block_size);
999
+
1000
+ mbedtls_xor(ipad, ipad, key, keylen);
1001
+ mbedtls_xor(opad, opad, key, keylen);
1002
+
1003
+ if ((ret = mbedtls_md_starts(ctx)) != 0) {
1004
+ goto cleanup;
1005
+ }
1006
+ if ((ret = mbedtls_md_update(ctx, ipad,
1007
+ ctx->md_info->block_size)) != 0) {
1008
+ goto cleanup;
1009
+ }
1010
+
1011
+ cleanup:
1012
+ mbedtls_platform_zeroize(sum, sizeof(sum));
1013
+
1014
+ return ret;
1015
+ }
1016
+
1017
+ int mbedtls_md_hmac_update(mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen)
1018
+ {
1019
+ if (ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL) {
1020
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
1021
+ }
1022
+
1023
+ return mbedtls_md_update(ctx, input, ilen);
1024
+ }
1025
+
1026
+ int mbedtls_md_hmac_finish(mbedtls_md_context_t *ctx, unsigned char *output)
1027
+ {
1028
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
1029
+ unsigned char tmp[MBEDTLS_MD_MAX_SIZE];
1030
+ unsigned char *opad;
1031
+
1032
+ if (ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL) {
1033
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
1034
+ }
1035
+
1036
+ opad = (unsigned char *) ctx->hmac_ctx + ctx->md_info->block_size;
1037
+
1038
+ if ((ret = mbedtls_md_finish(ctx, tmp)) != 0) {
1039
+ return ret;
1040
+ }
1041
+ if ((ret = mbedtls_md_starts(ctx)) != 0) {
1042
+ return ret;
1043
+ }
1044
+ if ((ret = mbedtls_md_update(ctx, opad,
1045
+ ctx->md_info->block_size)) != 0) {
1046
+ return ret;
1047
+ }
1048
+ if ((ret = mbedtls_md_update(ctx, tmp,
1049
+ ctx->md_info->size)) != 0) {
1050
+ return ret;
1051
+ }
1052
+ return mbedtls_md_finish(ctx, output);
1053
+ }
1054
+
1055
+ int mbedtls_md_hmac_reset(mbedtls_md_context_t *ctx)
1056
+ {
1057
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
1058
+ unsigned char *ipad;
1059
+
1060
+ if (ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL) {
1061
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
1062
+ }
1063
+
1064
+ ipad = (unsigned char *) ctx->hmac_ctx;
1065
+
1066
+ if ((ret = mbedtls_md_starts(ctx)) != 0) {
1067
+ return ret;
1068
+ }
1069
+ return mbedtls_md_update(ctx, ipad, ctx->md_info->block_size);
1070
+ }
1071
+
1072
+ int mbedtls_md_hmac(const mbedtls_md_info_t *md_info,
1073
+ const unsigned char *key, size_t keylen,
1074
+ const unsigned char *input, size_t ilen,
1075
+ unsigned char *output)
1076
+ {
1077
+ mbedtls_md_context_t ctx;
1078
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
1079
+
1080
+ if (md_info == NULL) {
1081
+ return MBEDTLS_ERR_MD_BAD_INPUT_DATA;
1082
+ }
1083
+
1084
+ mbedtls_md_init(&ctx);
1085
+
1086
+ if ((ret = mbedtls_md_setup(&ctx, md_info, 1)) != 0) {
1087
+ goto cleanup;
1088
+ }
1089
+
1090
+ if ((ret = mbedtls_md_hmac_starts(&ctx, key, keylen)) != 0) {
1091
+ goto cleanup;
1092
+ }
1093
+ if ((ret = mbedtls_md_hmac_update(&ctx, input, ilen)) != 0) {
1094
+ goto cleanup;
1095
+ }
1096
+ if ((ret = mbedtls_md_hmac_finish(&ctx, output)) != 0) {
1097
+ goto cleanup;
1098
+ }
1099
+
1100
+ cleanup:
1101
+ mbedtls_md_free(&ctx);
1102
+
1103
+ return ret;
1104
+ }
1105
+
1106
+ #endif /* MBEDTLS_MD_C */
1107
+
1108
+ #endif /* MBEDTLS_MD_LIGHT */