edhoc 1.0.1 → 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 (657) 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 +1 -1
  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
@@ -0,0 +1,276 @@
1
+ /*
2
+ * Low-level modular bignum functions
3
+ *
4
+ * Copyright The Mbed TLS Contributors
5
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6
+ */
7
+
8
+ #include "common.h"
9
+
10
+ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_ECP_WITH_MPI_UINT)
11
+
12
+ #include <string.h>
13
+
14
+ #include "mbedtls/error.h"
15
+ #include "mbedtls/platform_util.h"
16
+
17
+ #include "mbedtls/platform.h"
18
+
19
+ #include "bignum_core.h"
20
+ #include "bignum_mod_raw.h"
21
+ #include "bignum_mod.h"
22
+ #include "constant_time_internal.h"
23
+
24
+ #include "bignum_mod_raw_invasive.h"
25
+
26
+ void mbedtls_mpi_mod_raw_cond_assign(mbedtls_mpi_uint *X,
27
+ const mbedtls_mpi_uint *A,
28
+ const mbedtls_mpi_mod_modulus *N,
29
+ unsigned char assign)
30
+ {
31
+ mbedtls_mpi_core_cond_assign(X, A, N->limbs, mbedtls_ct_bool(assign));
32
+ }
33
+
34
+ void mbedtls_mpi_mod_raw_cond_swap(mbedtls_mpi_uint *X,
35
+ mbedtls_mpi_uint *Y,
36
+ const mbedtls_mpi_mod_modulus *N,
37
+ unsigned char swap)
38
+ {
39
+ mbedtls_mpi_core_cond_swap(X, Y, N->limbs, mbedtls_ct_bool(swap));
40
+ }
41
+
42
+ int mbedtls_mpi_mod_raw_read(mbedtls_mpi_uint *X,
43
+ const mbedtls_mpi_mod_modulus *N,
44
+ const unsigned char *input,
45
+ size_t input_length,
46
+ mbedtls_mpi_mod_ext_rep ext_rep)
47
+ {
48
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
49
+
50
+ switch (ext_rep) {
51
+ case MBEDTLS_MPI_MOD_EXT_REP_LE:
52
+ ret = mbedtls_mpi_core_read_le(X, N->limbs,
53
+ input, input_length);
54
+ break;
55
+ case MBEDTLS_MPI_MOD_EXT_REP_BE:
56
+ ret = mbedtls_mpi_core_read_be(X, N->limbs,
57
+ input, input_length);
58
+ break;
59
+ default:
60
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
61
+ }
62
+
63
+ if (ret != 0) {
64
+ goto cleanup;
65
+ }
66
+
67
+ if (!mbedtls_mpi_core_lt_ct(X, N->p, N->limbs)) {
68
+ ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
69
+ goto cleanup;
70
+ }
71
+
72
+ cleanup:
73
+
74
+ return ret;
75
+ }
76
+
77
+ int mbedtls_mpi_mod_raw_write(const mbedtls_mpi_uint *A,
78
+ const mbedtls_mpi_mod_modulus *N,
79
+ unsigned char *output,
80
+ size_t output_length,
81
+ mbedtls_mpi_mod_ext_rep ext_rep)
82
+ {
83
+ switch (ext_rep) {
84
+ case MBEDTLS_MPI_MOD_EXT_REP_LE:
85
+ return mbedtls_mpi_core_write_le(A, N->limbs,
86
+ output, output_length);
87
+ case MBEDTLS_MPI_MOD_EXT_REP_BE:
88
+ return mbedtls_mpi_core_write_be(A, N->limbs,
89
+ output, output_length);
90
+ default:
91
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
92
+ }
93
+ }
94
+
95
+ void mbedtls_mpi_mod_raw_sub(mbedtls_mpi_uint *X,
96
+ const mbedtls_mpi_uint *A,
97
+ const mbedtls_mpi_uint *B,
98
+ const mbedtls_mpi_mod_modulus *N)
99
+ {
100
+ mbedtls_mpi_uint c = mbedtls_mpi_core_sub(X, A, B, N->limbs);
101
+
102
+ (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) c);
103
+ }
104
+
105
+ MBEDTLS_STATIC_TESTABLE
106
+ void mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X,
107
+ const mbedtls_mpi_mod_modulus *N)
108
+ {
109
+ mbedtls_mpi_uint c = mbedtls_mpi_core_sub(X, X, N->p, N->limbs);
110
+
111
+ (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) c);
112
+ }
113
+
114
+
115
+ void mbedtls_mpi_mod_raw_mul(mbedtls_mpi_uint *X,
116
+ const mbedtls_mpi_uint *A,
117
+ const mbedtls_mpi_uint *B,
118
+ const mbedtls_mpi_mod_modulus *N,
119
+ mbedtls_mpi_uint *T)
120
+ {
121
+ /* Standard (A * B) multiplication stored into pre-allocated T
122
+ * buffer of fixed limb size of (2N + 1).
123
+ *
124
+ * The space may not not fully filled by when
125
+ * MBEDTLS_MPI_MOD_REP_OPT_RED is used. */
126
+ const size_t T_limbs = BITS_TO_LIMBS(N->bits) * 2;
127
+ switch (N->int_rep) {
128
+ case MBEDTLS_MPI_MOD_REP_MONTGOMERY:
129
+ mbedtls_mpi_core_montmul(X, A, B, N->limbs, N->p, N->limbs,
130
+ N->rep.mont.mm, T);
131
+ break;
132
+ case MBEDTLS_MPI_MOD_REP_OPT_RED:
133
+ mbedtls_mpi_core_mul(T, A, N->limbs, B, N->limbs);
134
+
135
+ /* Optimised Reduction */
136
+ (*N->rep.ored.modp)(T, T_limbs);
137
+
138
+ /* Convert back to canonical representation */
139
+ mbedtls_mpi_mod_raw_fix_quasi_reduction(T, N);
140
+ memcpy(X, T, N->limbs * sizeof(mbedtls_mpi_uint));
141
+ break;
142
+ default:
143
+ break;
144
+ }
145
+
146
+ }
147
+
148
+ size_t mbedtls_mpi_mod_raw_inv_prime_working_limbs(size_t AN_limbs)
149
+ {
150
+ /* mbedtls_mpi_mod_raw_inv_prime() needs a temporary for the exponent,
151
+ * which will be the same size as the modulus and input (AN_limbs),
152
+ * and additional space to pass to mbedtls_mpi_core_exp_mod(). */
153
+ return AN_limbs +
154
+ mbedtls_mpi_core_exp_mod_working_limbs(AN_limbs, AN_limbs);
155
+ }
156
+
157
+ void mbedtls_mpi_mod_raw_inv_prime(mbedtls_mpi_uint *X,
158
+ const mbedtls_mpi_uint *A,
159
+ const mbedtls_mpi_uint *N,
160
+ size_t AN_limbs,
161
+ const mbedtls_mpi_uint *RR,
162
+ mbedtls_mpi_uint *T)
163
+ {
164
+ /* Inversion by power: g^|G| = 1 => g^(-1) = g^(|G|-1), and
165
+ * |G| = N - 1, so we want
166
+ * g^(|G|-1) = g^(N - 2)
167
+ */
168
+
169
+ /* Use the first AN_limbs of T to hold N - 2 */
170
+ mbedtls_mpi_uint *Nminus2 = T;
171
+ (void) mbedtls_mpi_core_sub_int(Nminus2, N, 2, AN_limbs);
172
+
173
+ /* Rest of T is given to exp_mod for its working space */
174
+ mbedtls_mpi_core_exp_mod(X,
175
+ A, N, AN_limbs, Nminus2, AN_limbs,
176
+ RR, T + AN_limbs);
177
+ }
178
+
179
+ void mbedtls_mpi_mod_raw_add(mbedtls_mpi_uint *X,
180
+ const mbedtls_mpi_uint *A,
181
+ const mbedtls_mpi_uint *B,
182
+ const mbedtls_mpi_mod_modulus *N)
183
+ {
184
+ mbedtls_mpi_uint carry, borrow;
185
+ carry = mbedtls_mpi_core_add(X, A, B, N->limbs);
186
+ borrow = mbedtls_mpi_core_sub(X, X, N->p, N->limbs);
187
+ (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) (carry ^ borrow));
188
+ }
189
+
190
+ int mbedtls_mpi_mod_raw_canonical_to_modulus_rep(
191
+ mbedtls_mpi_uint *X,
192
+ const mbedtls_mpi_mod_modulus *N)
193
+ {
194
+ switch (N->int_rep) {
195
+ case MBEDTLS_MPI_MOD_REP_MONTGOMERY:
196
+ return mbedtls_mpi_mod_raw_to_mont_rep(X, N);
197
+ case MBEDTLS_MPI_MOD_REP_OPT_RED:
198
+ return 0;
199
+ default:
200
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
201
+ }
202
+ }
203
+
204
+ int mbedtls_mpi_mod_raw_modulus_to_canonical_rep(
205
+ mbedtls_mpi_uint *X,
206
+ const mbedtls_mpi_mod_modulus *N)
207
+ {
208
+ switch (N->int_rep) {
209
+ case MBEDTLS_MPI_MOD_REP_MONTGOMERY:
210
+ return mbedtls_mpi_mod_raw_from_mont_rep(X, N);
211
+ case MBEDTLS_MPI_MOD_REP_OPT_RED:
212
+ return 0;
213
+ default:
214
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
215
+ }
216
+ }
217
+
218
+ int mbedtls_mpi_mod_raw_random(mbedtls_mpi_uint *X,
219
+ mbedtls_mpi_uint min,
220
+ const mbedtls_mpi_mod_modulus *N,
221
+ int (*f_rng)(void *, unsigned char *, size_t),
222
+ void *p_rng)
223
+ {
224
+ int ret = mbedtls_mpi_core_random(X, min, N->p, N->limbs, f_rng, p_rng);
225
+ if (ret != 0) {
226
+ return ret;
227
+ }
228
+ return mbedtls_mpi_mod_raw_canonical_to_modulus_rep(X, N);
229
+ }
230
+
231
+ int mbedtls_mpi_mod_raw_to_mont_rep(mbedtls_mpi_uint *X,
232
+ const mbedtls_mpi_mod_modulus *N)
233
+ {
234
+ mbedtls_mpi_uint *T;
235
+ const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs(N->limbs);
236
+
237
+ if ((T = (mbedtls_mpi_uint *) mbedtls_calloc(t_limbs, ciL)) == NULL) {
238
+ return MBEDTLS_ERR_MPI_ALLOC_FAILED;
239
+ }
240
+
241
+ mbedtls_mpi_core_to_mont_rep(X, X, N->p, N->limbs,
242
+ N->rep.mont.mm, N->rep.mont.rr, T);
243
+
244
+ mbedtls_zeroize_and_free(T, t_limbs * ciL);
245
+ return 0;
246
+ }
247
+
248
+ int mbedtls_mpi_mod_raw_from_mont_rep(mbedtls_mpi_uint *X,
249
+ const mbedtls_mpi_mod_modulus *N)
250
+ {
251
+ const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs(N->limbs);
252
+ mbedtls_mpi_uint *T;
253
+
254
+ if ((T = (mbedtls_mpi_uint *) mbedtls_calloc(t_limbs, ciL)) == NULL) {
255
+ return MBEDTLS_ERR_MPI_ALLOC_FAILED;
256
+ }
257
+
258
+ mbedtls_mpi_core_from_mont_rep(X, X, N->p, N->limbs, N->rep.mont.mm, T);
259
+
260
+ mbedtls_zeroize_and_free(T, t_limbs * ciL);
261
+ return 0;
262
+ }
263
+
264
+ void mbedtls_mpi_mod_raw_neg(mbedtls_mpi_uint *X,
265
+ const mbedtls_mpi_uint *A,
266
+ const mbedtls_mpi_mod_modulus *N)
267
+ {
268
+ mbedtls_mpi_core_sub(X, N->p, A, N->limbs);
269
+
270
+ /* If A=0 initially, then X=N now. Detect this by
271
+ * subtracting N and catching the carry. */
272
+ mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub(X, X, N->p, N->limbs);
273
+ (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) borrow);
274
+ }
275
+
276
+ #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ECP_WITH_MPI_UINT */
@@ -0,0 +1,416 @@
1
+ /**
2
+ * Low-level modular bignum functions
3
+ *
4
+ * This interface should only be used by the higher-level modular bignum
5
+ * module (bignum_mod.c) and the ECP module (ecp.c, ecp_curves.c). All other
6
+ * modules should use the high-level modular bignum interface (bignum_mod.h)
7
+ * or the legacy bignum interface (bignum.h).
8
+ *
9
+ * This is a low-level interface to operations on integers modulo which
10
+ * has no protection against passing invalid arguments such as arrays of
11
+ * the wrong size. The functions in bignum_mod.h provide a higher-level
12
+ * interface that includes protections against accidental misuse, at the
13
+ * expense of code size and sometimes more cumbersome memory management.
14
+ *
15
+ * The functions in this module obey the following conventions unless
16
+ * explicitly indicated otherwise:
17
+ * - **Modulus parameters**: the modulus is passed as a pointer to a structure
18
+ * of type #mbedtls_mpi_mod_modulus. The structure must be set up with an
19
+ * array of limbs storing the bignum value of the modulus. The modulus must
20
+ * be odd and is assumed to have no leading zeroes. The modulus is usually
21
+ * named \c N and is usually input-only.
22
+ * - **Bignum parameters**: Bignums are passed as pointers to an array of
23
+ * limbs. A limb has the type #mbedtls_mpi_uint. Unless otherwise specified:
24
+ * - Bignum parameters called \c A, \c B, ... are inputs, and are not
25
+ * modified by the function.
26
+ * - Bignum parameters called \c X, \c Y are outputs or input-output.
27
+ * The initial content of output-only parameters is ignored.
28
+ * - \c T is a temporary storage area. The initial content of such a
29
+ * parameter is ignored and the final content is unspecified.
30
+ * - **Bignum sizes**: bignum sizes are usually expressed by the \c limbs
31
+ * member of the modulus argument. All bignum parameters must have the same
32
+ * number of limbs as the modulus. All bignum sizes must be at least 1 and
33
+ * must be significantly less than #SIZE_MAX. The behavior if a size is 0 is
34
+ * undefined.
35
+ * - **Bignum representation**: the representation of inputs and outputs is
36
+ * specified by the \c int_rep field of the modulus for arithmetic
37
+ * functions. Utility functions may allow for different representation.
38
+ * - **Parameter ordering**: for bignum parameters, outputs come before inputs.
39
+ * The modulus is passed after other bignum input parameters. Temporaries
40
+ * come last.
41
+ * - **Aliasing**: in general, output bignums may be aliased to one or more
42
+ * inputs. Modulus values may not be aliased to any other parameter. Outputs
43
+ * may not be aliased to one another. Temporaries may not be aliased to any
44
+ * other parameter.
45
+ * - **Overlap**: apart from aliasing of limb array pointers (where two
46
+ * arguments are equal pointers), overlap is not supported and may result
47
+ * in undefined behavior.
48
+ * - **Error handling**: This is a low-level module. Functions generally do not
49
+ * try to protect against invalid arguments such as nonsensical sizes or
50
+ * null pointers. Note that passing bignums with a different size than the
51
+ * modulus may lead to buffer overflows. Some functions which allocate
52
+ * memory or handle reading/writing of bignums will return an error if
53
+ * memory allocation fails or if buffer sizes are invalid.
54
+ * - **Modular representatives**: all functions expect inputs to be in the
55
+ * range [0, \c N - 1] and guarantee outputs in the range [0, \c N - 1]. If
56
+ * an input is out of range, outputs are fully unspecified, though bignum
57
+ * values out of range should not cause buffer overflows (beware that this is
58
+ * not extensively tested).
59
+ */
60
+
61
+ /*
62
+ * Copyright The Mbed TLS Contributors
63
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
64
+ */
65
+
66
+ #ifndef MBEDTLS_BIGNUM_MOD_RAW_H
67
+ #define MBEDTLS_BIGNUM_MOD_RAW_H
68
+
69
+ #include "common.h"
70
+
71
+ #if defined(MBEDTLS_BIGNUM_C)
72
+ #include "mbedtls/bignum.h"
73
+ #endif
74
+
75
+ #include "bignum_mod.h"
76
+
77
+ /**
78
+ * \brief Perform a safe conditional copy of an MPI which doesn't reveal
79
+ * whether the assignment was done or not.
80
+ *
81
+ * The size to copy is determined by \p N.
82
+ *
83
+ * \param[out] X The address of the destination MPI.
84
+ * This must be initialized. Must have enough limbs to
85
+ * store the full value of \p A.
86
+ * \param[in] A The address of the source MPI. This must be initialized.
87
+ * \param[in] N The address of the modulus related to \p X and \p A.
88
+ * \param assign The condition deciding whether to perform the
89
+ * assignment or not. Must be either 0 or 1:
90
+ * * \c 1: Perform the assignment `X = A`.
91
+ * * \c 0: Keep the original value of \p X.
92
+ *
93
+ * \note This function avoids leaking any information about whether
94
+ * the assignment was done or not.
95
+ *
96
+ * \warning If \p assign is neither 0 nor 1, the result of this function
97
+ * is indeterminate, and the resulting value in \p X might be
98
+ * neither its original value nor the value in \p A.
99
+ */
100
+ void mbedtls_mpi_mod_raw_cond_assign(mbedtls_mpi_uint *X,
101
+ const mbedtls_mpi_uint *A,
102
+ const mbedtls_mpi_mod_modulus *N,
103
+ unsigned char assign);
104
+
105
+ /**
106
+ * \brief Perform a safe conditional swap of two MPIs which doesn't reveal
107
+ * whether the swap was done or not.
108
+ *
109
+ * The size to swap is determined by \p N.
110
+ *
111
+ * \param[in,out] X The address of the first MPI. This must be initialized.
112
+ * \param[in,out] Y The address of the second MPI. This must be initialized.
113
+ * \param[in] N The address of the modulus related to \p X and \p Y.
114
+ * \param swap The condition deciding whether to perform
115
+ * the swap or not. Must be either 0 or 1:
116
+ * * \c 1: Swap the values of \p X and \p Y.
117
+ * * \c 0: Keep the original values of \p X and \p Y.
118
+ *
119
+ * \note This function avoids leaking any information about whether
120
+ * the swap was done or not.
121
+ *
122
+ * \warning If \p swap is neither 0 nor 1, the result of this function
123
+ * is indeterminate, and both \p X and \p Y might end up with
124
+ * values different to either of the original ones.
125
+ */
126
+ void mbedtls_mpi_mod_raw_cond_swap(mbedtls_mpi_uint *X,
127
+ mbedtls_mpi_uint *Y,
128
+ const mbedtls_mpi_mod_modulus *N,
129
+ unsigned char swap);
130
+
131
+ /** Import X from unsigned binary data.
132
+ *
133
+ * The MPI needs to have enough limbs to store the full value (including any
134
+ * most significant zero bytes in the input).
135
+ *
136
+ * \param[out] X The address of the MPI. The size is determined by \p N.
137
+ * (In particular, it must have at least as many limbs as
138
+ * the modulus \p N.)
139
+ * \param[in] N The address of the modulus related to \p X.
140
+ * \param[in] input The input buffer to import from.
141
+ * \param input_length The length in bytes of \p input.
142
+ * \param ext_rep The endianness of the number in the input buffer.
143
+ *
144
+ * \return \c 0 if successful.
145
+ * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't
146
+ * large enough to hold the value in \p input.
147
+ * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation
148
+ * of \p N is invalid or \p X is not less than \p N.
149
+ */
150
+ int mbedtls_mpi_mod_raw_read(mbedtls_mpi_uint *X,
151
+ const mbedtls_mpi_mod_modulus *N,
152
+ const unsigned char *input,
153
+ size_t input_length,
154
+ mbedtls_mpi_mod_ext_rep ext_rep);
155
+
156
+ /** Export A into unsigned binary data.
157
+ *
158
+ * \param[in] A The address of the MPI. The size is determined by \p N.
159
+ * (In particular, it must have at least as many limbs as
160
+ * the modulus \p N.)
161
+ * \param[in] N The address of the modulus related to \p A.
162
+ * \param[out] output The output buffer to export to.
163
+ * \param output_length The length in bytes of \p output.
164
+ * \param ext_rep The endianness in which the number should be written into the output buffer.
165
+ *
166
+ * \return \c 0 if successful.
167
+ * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p output isn't
168
+ * large enough to hold the value of \p A.
169
+ * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation
170
+ * of \p N is invalid.
171
+ */
172
+ int mbedtls_mpi_mod_raw_write(const mbedtls_mpi_uint *A,
173
+ const mbedtls_mpi_mod_modulus *N,
174
+ unsigned char *output,
175
+ size_t output_length,
176
+ mbedtls_mpi_mod_ext_rep ext_rep);
177
+
178
+ /** \brief Subtract two MPIs, returning the residue modulo the specified
179
+ * modulus.
180
+ *
181
+ * The size of the operation is determined by \p N. \p A and \p B must have
182
+ * the same number of limbs as \p N.
183
+ *
184
+ * \p X may be aliased to \p A or \p B, or even both, but may not overlap
185
+ * either otherwise.
186
+ *
187
+ * \param[out] X The address of the result MPI.
188
+ * This must be initialized. Must have enough limbs to
189
+ * store the full value of the result.
190
+ * \param[in] A The address of the first MPI. This must be initialized.
191
+ * \param[in] B The address of the second MPI. This must be initialized.
192
+ * \param[in] N The address of the modulus. Used to perform a modulo
193
+ * operation on the result of the subtraction.
194
+ */
195
+ void mbedtls_mpi_mod_raw_sub(mbedtls_mpi_uint *X,
196
+ const mbedtls_mpi_uint *A,
197
+ const mbedtls_mpi_uint *B,
198
+ const mbedtls_mpi_mod_modulus *N);
199
+
200
+ /** \brief Multiply two MPIs, returning the residue modulo the specified
201
+ * modulus.
202
+ *
203
+ * \note Currently handles the case when `N->int_rep` is
204
+ * MBEDTLS_MPI_MOD_REP_MONTGOMERY.
205
+ *
206
+ * The size of the operation is determined by \p N. \p A, \p B and \p X must
207
+ * all be associated with the modulus \p N and must all have the same number
208
+ * of limbs as \p N.
209
+ *
210
+ * \p X may be aliased to \p A or \p B, or even both, but may not overlap
211
+ * either otherwise. They may not alias \p N (since they must be in canonical
212
+ * form, they cannot == \p N).
213
+ *
214
+ * \param[out] X The address of the result MPI. Must have the same
215
+ * number of limbs as \p N.
216
+ * On successful completion, \p X contains the result of
217
+ * the multiplication `A * B * R^-1` mod N where
218
+ * `R = 2^(biL * N->limbs)`.
219
+ * \param[in] A The address of the first MPI.
220
+ * \param[in] B The address of the second MPI.
221
+ * \param[in] N The address of the modulus. Used to perform a modulo
222
+ * operation on the result of the multiplication.
223
+ * \param[in,out] T Temporary storage of size at least 2 * N->limbs + 1
224
+ * limbs. Its initial content is unused and
225
+ * its final content is indeterminate.
226
+ * It must not alias or otherwise overlap any of the
227
+ * other parameters.
228
+ */
229
+ void mbedtls_mpi_mod_raw_mul(mbedtls_mpi_uint *X,
230
+ const mbedtls_mpi_uint *A,
231
+ const mbedtls_mpi_uint *B,
232
+ const mbedtls_mpi_mod_modulus *N,
233
+ mbedtls_mpi_uint *T);
234
+
235
+ /**
236
+ * \brief Returns the number of limbs of working memory required for
237
+ * a call to `mbedtls_mpi_mod_raw_inv_prime()`.
238
+ *
239
+ * \note This will always be at least
240
+ * `mbedtls_mpi_core_montmul_working_limbs(AN_limbs)`,
241
+ * i.e. sufficient for a call to `mbedtls_mpi_core_montmul()`.
242
+ *
243
+ * \param AN_limbs The number of limbs in the input `A` and the modulus `N`
244
+ * (they must be the same size) that will be given to
245
+ * `mbedtls_mpi_mod_raw_inv_prime()`.
246
+ *
247
+ * \return The number of limbs of working memory required by
248
+ * `mbedtls_mpi_mod_raw_inv_prime()`.
249
+ */
250
+ size_t mbedtls_mpi_mod_raw_inv_prime_working_limbs(size_t AN_limbs);
251
+
252
+ /**
253
+ * \brief Perform fixed-width modular inversion of a Montgomery-form MPI with
254
+ * respect to a modulus \p N that must be prime.
255
+ *
256
+ * \p X may be aliased to \p A, but not to \p N or \p RR.
257
+ *
258
+ * \param[out] X The modular inverse of \p A with respect to \p N.
259
+ * Will be in Montgomery form.
260
+ * \param[in] A The number to calculate the modular inverse of.
261
+ * Must be in Montgomery form. Must not be 0.
262
+ * \param[in] N The modulus, as a little-endian array of length \p AN_limbs.
263
+ * Must be prime.
264
+ * \param AN_limbs The number of limbs in \p A, \p N and \p RR.
265
+ * \param[in] RR The precomputed residue of 2^{2*biL} modulo N, as a little-
266
+ * endian array of length \p AN_limbs.
267
+ * \param[in,out] T Temporary storage of at least the number of limbs returned
268
+ * by `mbedtls_mpi_mod_raw_inv_prime_working_limbs()`.
269
+ * Its initial content is unused and its final content is
270
+ * indeterminate.
271
+ * It must not alias or otherwise overlap any of the other
272
+ * parameters.
273
+ * It is up to the caller to zeroize \p T when it is no
274
+ * longer needed, and before freeing it if it was dynamically
275
+ * allocated.
276
+ */
277
+ void mbedtls_mpi_mod_raw_inv_prime(mbedtls_mpi_uint *X,
278
+ const mbedtls_mpi_uint *A,
279
+ const mbedtls_mpi_uint *N,
280
+ size_t AN_limbs,
281
+ const mbedtls_mpi_uint *RR,
282
+ mbedtls_mpi_uint *T);
283
+
284
+ /**
285
+ * \brief Perform a known-size modular addition.
286
+ *
287
+ * Calculate `A + B modulo N`.
288
+ *
289
+ * The number of limbs in each operand, and the result, is given by the
290
+ * modulus \p N.
291
+ *
292
+ * \p X may be aliased to \p A or \p B, or even both, but may not overlap
293
+ * either otherwise.
294
+ *
295
+ * \param[out] X The result of the modular addition.
296
+ * \param[in] A Little-endian presentation of the left operand. This
297
+ * must be smaller than \p N.
298
+ * \param[in] B Little-endian presentation of the right operand. This
299
+ * must be smaller than \p N.
300
+ * \param[in] N The address of the modulus.
301
+ */
302
+ void mbedtls_mpi_mod_raw_add(mbedtls_mpi_uint *X,
303
+ const mbedtls_mpi_uint *A,
304
+ const mbedtls_mpi_uint *B,
305
+ const mbedtls_mpi_mod_modulus *N);
306
+
307
+ /** Convert an MPI from canonical representation (little-endian limb array)
308
+ * to the representation associated with the modulus.
309
+ *
310
+ * \param[in,out] X The limb array to convert.
311
+ * It must have as many limbs as \p N.
312
+ * It is converted in place.
313
+ * If this function returns an error, the content of \p X
314
+ * is unspecified.
315
+ * \param[in] N The modulus structure.
316
+ *
317
+ * \return \c 0 if successful.
318
+ * Otherwise an \c MBEDTLS_ERR_MPI_xxx error code.
319
+ */
320
+ int mbedtls_mpi_mod_raw_canonical_to_modulus_rep(
321
+ mbedtls_mpi_uint *X,
322
+ const mbedtls_mpi_mod_modulus *N);
323
+
324
+ /** Convert an MPI from the representation associated with the modulus
325
+ * to canonical representation (little-endian limb array).
326
+ *
327
+ * \param[in,out] X The limb array to convert.
328
+ * It must have as many limbs as \p N.
329
+ * It is converted in place.
330
+ * If this function returns an error, the content of \p X
331
+ * is unspecified.
332
+ * \param[in] N The modulus structure.
333
+ *
334
+ * \return \c 0 if successful.
335
+ * Otherwise an \c MBEDTLS_ERR_MPI_xxx error code.
336
+ */
337
+ int mbedtls_mpi_mod_raw_modulus_to_canonical_rep(
338
+ mbedtls_mpi_uint *X,
339
+ const mbedtls_mpi_mod_modulus *N);
340
+
341
+ /** Generate a random number uniformly in a range.
342
+ *
343
+ * This function generates a random number between \p min inclusive and
344
+ * \p N exclusive.
345
+ *
346
+ * The procedure complies with RFC 6979 §3.3 (deterministic ECDSA)
347
+ * when the RNG is a suitably parametrized instance of HMAC_DRBG
348
+ * and \p min is \c 1.
349
+ *
350
+ * \note There are `N - min` possible outputs. The lower bound
351
+ * \p min can be reached, but the upper bound \p N cannot.
352
+ *
353
+ * \param X The destination MPI, in canonical representation modulo \p N.
354
+ * It must not be aliased with \p N or otherwise overlap it.
355
+ * \param min The minimum value to return. It must be strictly smaller
356
+ * than \b N.
357
+ * \param N The modulus.
358
+ * This is the upper bound of the output range, exclusive.
359
+ * \param f_rng The RNG function to use. This must not be \c NULL.
360
+ * \param p_rng The RNG parameter to be passed to \p f_rng.
361
+ *
362
+ * \return \c 0 if successful.
363
+ * \return #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if the implementation was
364
+ * unable to find a suitable value within a limited number
365
+ * of attempts. This has a negligible probability if \p N
366
+ * is significantly larger than \p min, which is the case
367
+ * for all usual cryptographic applications.
368
+ */
369
+ int mbedtls_mpi_mod_raw_random(mbedtls_mpi_uint *X,
370
+ mbedtls_mpi_uint min,
371
+ const mbedtls_mpi_mod_modulus *N,
372
+ int (*f_rng)(void *, unsigned char *, size_t),
373
+ void *p_rng);
374
+
375
+ /** Convert an MPI into Montgomery form.
376
+ *
377
+ * \param X The address of the MPI.
378
+ * Must have the same number of limbs as \p N.
379
+ * \param N The address of the modulus, which gives the size of
380
+ * the base `R` = 2^(biL*N->limbs).
381
+ *
382
+ * \return \c 0 if successful.
383
+ */
384
+ int mbedtls_mpi_mod_raw_to_mont_rep(mbedtls_mpi_uint *X,
385
+ const mbedtls_mpi_mod_modulus *N);
386
+
387
+ /** Convert an MPI back from Montgomery representation.
388
+ *
389
+ * \param X The address of the MPI.
390
+ * Must have the same number of limbs as \p N.
391
+ * \param N The address of the modulus, which gives the size of
392
+ * the base `R`= 2^(biL*N->limbs).
393
+ *
394
+ * \return \c 0 if successful.
395
+ */
396
+ int mbedtls_mpi_mod_raw_from_mont_rep(mbedtls_mpi_uint *X,
397
+ const mbedtls_mpi_mod_modulus *N);
398
+
399
+ /** \brief Perform fixed width modular negation.
400
+ *
401
+ * The size of the operation is determined by \p N. \p A must have
402
+ * the same number of limbs as \p N.
403
+ *
404
+ * \p X may be aliased to \p A.
405
+ *
406
+ * \param[out] X The result of the modular negation.
407
+ * This must be initialized.
408
+ * \param[in] A Little-endian presentation of the input operand. This
409
+ * must be less than or equal to \p N.
410
+ * \param[in] N The modulus to use.
411
+ */
412
+ void mbedtls_mpi_mod_raw_neg(mbedtls_mpi_uint *X,
413
+ const mbedtls_mpi_uint *A,
414
+ const mbedtls_mpi_mod_modulus *N);
415
+
416
+ #endif /* MBEDTLS_BIGNUM_MOD_RAW_H */