edhoc 1.0.1 → 1.0.3

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 (659) 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/darwin-arm64/edhoc.node +0 -0
  648. package/prebuilds/win32-ia32/edhoc.node +0 -0
  649. package/prebuilds/win32-x64/edhoc.node +0 -0
  650. package/src/EdhocComposeAsyncWorker.cpp +88 -0
  651. package/src/EdhocCredentialManager.cpp +360 -0
  652. package/src/EdhocCryptoManager.cpp +967 -0
  653. package/src/EdhocEadManager.cpp +156 -0
  654. package/src/EdhocExportAsyncWorker.cpp +82 -0
  655. package/src/EdhocProcessAsyncWorker.cpp +74 -0
  656. package/src/LibEDHOC.cpp +369 -0
  657. package/src/Suites.cpp +153 -0
  658. package/src/Utils.cpp +115 -0
  659. /package/prebuilds/{darwin-x64+arm64 → darwin-x64}/edhoc.node +0 -0
@@ -0,0 +1,1094 @@
1
+ /**
2
+ * \file bn_mul.h
3
+ *
4
+ * \brief Multi-precision integer library
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+ /*
11
+ * Multiply source vector [s] with b, add result
12
+ * to destination vector [d] and set carry c.
13
+ *
14
+ * Currently supports:
15
+ *
16
+ * . IA-32 (386+) . AMD64 / EM64T
17
+ * . IA-32 (SSE2) . Motorola 68000
18
+ * . PowerPC, 32-bit . MicroBlaze
19
+ * . PowerPC, 64-bit . TriCore
20
+ * . SPARC v8 . ARM v3+
21
+ * . Alpha . MIPS32
22
+ * . C, longlong . C, generic
23
+ */
24
+ #ifndef MBEDTLS_BN_MUL_H
25
+ #define MBEDTLS_BN_MUL_H
26
+
27
+ #include "mbedtls/build_info.h"
28
+
29
+ #include "mbedtls/bignum.h"
30
+
31
+
32
+ /*
33
+ * Conversion macros for embedded constants:
34
+ * build lists of mbedtls_mpi_uint's from lists of unsigned char's grouped by 8, 4 or 2
35
+ */
36
+ #if defined(MBEDTLS_HAVE_INT32)
37
+
38
+ #define MBEDTLS_BYTES_TO_T_UINT_4(a, b, c, d) \
39
+ ((mbedtls_mpi_uint) (a) << 0) | \
40
+ ((mbedtls_mpi_uint) (b) << 8) | \
41
+ ((mbedtls_mpi_uint) (c) << 16) | \
42
+ ((mbedtls_mpi_uint) (d) << 24)
43
+
44
+ #define MBEDTLS_BYTES_TO_T_UINT_2(a, b) \
45
+ MBEDTLS_BYTES_TO_T_UINT_4(a, b, 0, 0)
46
+
47
+ #define MBEDTLS_BYTES_TO_T_UINT_8(a, b, c, d, e, f, g, h) \
48
+ MBEDTLS_BYTES_TO_T_UINT_4(a, b, c, d), \
49
+ MBEDTLS_BYTES_TO_T_UINT_4(e, f, g, h)
50
+
51
+ #else /* 64-bits */
52
+
53
+ #define MBEDTLS_BYTES_TO_T_UINT_8(a, b, c, d, e, f, g, h) \
54
+ ((mbedtls_mpi_uint) (a) << 0) | \
55
+ ((mbedtls_mpi_uint) (b) << 8) | \
56
+ ((mbedtls_mpi_uint) (c) << 16) | \
57
+ ((mbedtls_mpi_uint) (d) << 24) | \
58
+ ((mbedtls_mpi_uint) (e) << 32) | \
59
+ ((mbedtls_mpi_uint) (f) << 40) | \
60
+ ((mbedtls_mpi_uint) (g) << 48) | \
61
+ ((mbedtls_mpi_uint) (h) << 56)
62
+
63
+ #define MBEDTLS_BYTES_TO_T_UINT_4(a, b, c, d) \
64
+ MBEDTLS_BYTES_TO_T_UINT_8(a, b, c, d, 0, 0, 0, 0)
65
+
66
+ #define MBEDTLS_BYTES_TO_T_UINT_2(a, b) \
67
+ MBEDTLS_BYTES_TO_T_UINT_8(a, b, 0, 0, 0, 0, 0, 0)
68
+
69
+ #endif /* bits in mbedtls_mpi_uint */
70
+
71
+ /* *INDENT-OFF* */
72
+ #if defined(MBEDTLS_HAVE_ASM)
73
+
74
+ /* armcc5 --gnu defines __GNUC__ but doesn't support GNU's extended asm */
75
+ #if defined(__GNUC__) && \
76
+ ( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 )
77
+
78
+ /*
79
+ * GCC < 5.0 treated the x86 ebx (which is used for the GOT) as a
80
+ * fixed reserved register when building as PIC, leading to errors
81
+ * like: bn_mul.h:46:13: error: PIC register clobbered by 'ebx' in 'asm'
82
+ *
83
+ * This is fixed by an improved register allocator in GCC 5+. From the
84
+ * release notes:
85
+ * Register allocation improvements: Reuse of the PIC hard register,
86
+ * instead of using a fixed register, was implemented on x86/x86-64
87
+ * targets. This improves generated PIC code performance as more hard
88
+ * registers can be used.
89
+ */
90
+ #if defined(__GNUC__) && __GNUC__ < 5 && defined(__PIC__)
91
+ #define MULADDC_CANNOT_USE_EBX
92
+ #endif
93
+
94
+ /*
95
+ * Disable use of the i386 assembly code below if option -O0, to disable all
96
+ * compiler optimisations, is passed, detected with __OPTIMIZE__
97
+ * This is done as the number of registers used in the assembly code doesn't
98
+ * work with the -O0 option.
99
+ */
100
+ #if defined(__i386__) && defined(__OPTIMIZE__) && !defined(MULADDC_CANNOT_USE_EBX)
101
+
102
+ #define MULADDC_X1_INIT \
103
+ { mbedtls_mpi_uint t; \
104
+ asm( \
105
+ "movl %%ebx, %0 \n\t" \
106
+ "movl %5, %%esi \n\t" \
107
+ "movl %6, %%edi \n\t" \
108
+ "movl %7, %%ecx \n\t" \
109
+ "movl %8, %%ebx \n\t"
110
+
111
+ #define MULADDC_X1_CORE \
112
+ "lodsl \n\t" \
113
+ "mull %%ebx \n\t" \
114
+ "addl %%ecx, %%eax \n\t" \
115
+ "adcl $0, %%edx \n\t" \
116
+ "addl (%%edi), %%eax \n\t" \
117
+ "adcl $0, %%edx \n\t" \
118
+ "movl %%edx, %%ecx \n\t" \
119
+ "stosl \n\t"
120
+
121
+ #define MULADDC_X1_STOP \
122
+ "movl %4, %%ebx \n\t" \
123
+ "movl %%ecx, %1 \n\t" \
124
+ "movl %%edi, %2 \n\t" \
125
+ "movl %%esi, %3 \n\t" \
126
+ : "=m" (t), "=m" (c), "=m" (d), "=m" (s) \
127
+ : "m" (t), "m" (s), "m" (d), "m" (c), "m" (b) \
128
+ : "eax", "ebx", "ecx", "edx", "esi", "edi" \
129
+ ); }
130
+
131
+ #if defined(MBEDTLS_HAVE_SSE2)
132
+
133
+ #define MULADDC_X8_INIT MULADDC_X1_INIT
134
+
135
+ #define MULADDC_X8_CORE \
136
+ "movd %%ecx, %%mm1 \n\t" \
137
+ "movd %%ebx, %%mm0 \n\t" \
138
+ "movd (%%edi), %%mm3 \n\t" \
139
+ "paddq %%mm3, %%mm1 \n\t" \
140
+ "movd (%%esi), %%mm2 \n\t" \
141
+ "pmuludq %%mm0, %%mm2 \n\t" \
142
+ "movd 4(%%esi), %%mm4 \n\t" \
143
+ "pmuludq %%mm0, %%mm4 \n\t" \
144
+ "movd 8(%%esi), %%mm6 \n\t" \
145
+ "pmuludq %%mm0, %%mm6 \n\t" \
146
+ "movd 12(%%esi), %%mm7 \n\t" \
147
+ "pmuludq %%mm0, %%mm7 \n\t" \
148
+ "paddq %%mm2, %%mm1 \n\t" \
149
+ "movd 4(%%edi), %%mm3 \n\t" \
150
+ "paddq %%mm4, %%mm3 \n\t" \
151
+ "movd 8(%%edi), %%mm5 \n\t" \
152
+ "paddq %%mm6, %%mm5 \n\t" \
153
+ "movd 12(%%edi), %%mm4 \n\t" \
154
+ "paddq %%mm4, %%mm7 \n\t" \
155
+ "movd %%mm1, (%%edi) \n\t" \
156
+ "movd 16(%%esi), %%mm2 \n\t" \
157
+ "pmuludq %%mm0, %%mm2 \n\t" \
158
+ "psrlq $32, %%mm1 \n\t" \
159
+ "movd 20(%%esi), %%mm4 \n\t" \
160
+ "pmuludq %%mm0, %%mm4 \n\t" \
161
+ "paddq %%mm3, %%mm1 \n\t" \
162
+ "movd 24(%%esi), %%mm6 \n\t" \
163
+ "pmuludq %%mm0, %%mm6 \n\t" \
164
+ "movd %%mm1, 4(%%edi) \n\t" \
165
+ "psrlq $32, %%mm1 \n\t" \
166
+ "movd 28(%%esi), %%mm3 \n\t" \
167
+ "pmuludq %%mm0, %%mm3 \n\t" \
168
+ "paddq %%mm5, %%mm1 \n\t" \
169
+ "movd 16(%%edi), %%mm5 \n\t" \
170
+ "paddq %%mm5, %%mm2 \n\t" \
171
+ "movd %%mm1, 8(%%edi) \n\t" \
172
+ "psrlq $32, %%mm1 \n\t" \
173
+ "paddq %%mm7, %%mm1 \n\t" \
174
+ "movd 20(%%edi), %%mm5 \n\t" \
175
+ "paddq %%mm5, %%mm4 \n\t" \
176
+ "movd %%mm1, 12(%%edi) \n\t" \
177
+ "psrlq $32, %%mm1 \n\t" \
178
+ "paddq %%mm2, %%mm1 \n\t" \
179
+ "movd 24(%%edi), %%mm5 \n\t" \
180
+ "paddq %%mm5, %%mm6 \n\t" \
181
+ "movd %%mm1, 16(%%edi) \n\t" \
182
+ "psrlq $32, %%mm1 \n\t" \
183
+ "paddq %%mm4, %%mm1 \n\t" \
184
+ "movd 28(%%edi), %%mm5 \n\t" \
185
+ "paddq %%mm5, %%mm3 \n\t" \
186
+ "movd %%mm1, 20(%%edi) \n\t" \
187
+ "psrlq $32, %%mm1 \n\t" \
188
+ "paddq %%mm6, %%mm1 \n\t" \
189
+ "movd %%mm1, 24(%%edi) \n\t" \
190
+ "psrlq $32, %%mm1 \n\t" \
191
+ "paddq %%mm3, %%mm1 \n\t" \
192
+ "movd %%mm1, 28(%%edi) \n\t" \
193
+ "addl $32, %%edi \n\t" \
194
+ "addl $32, %%esi \n\t" \
195
+ "psrlq $32, %%mm1 \n\t" \
196
+ "movd %%mm1, %%ecx \n\t"
197
+
198
+ #define MULADDC_X8_STOP \
199
+ "emms \n\t" \
200
+ "movl %4, %%ebx \n\t" \
201
+ "movl %%ecx, %1 \n\t" \
202
+ "movl %%edi, %2 \n\t" \
203
+ "movl %%esi, %3 \n\t" \
204
+ : "=m" (t), "=m" (c), "=m" (d), "=m" (s) \
205
+ : "m" (t), "m" (s), "m" (d), "m" (c), "m" (b) \
206
+ : "eax", "ebx", "ecx", "edx", "esi", "edi" \
207
+ ); } \
208
+
209
+ #endif /* SSE2 */
210
+
211
+ #endif /* i386 */
212
+
213
+ #if defined(__amd64__) || defined (__x86_64__)
214
+
215
+ #define MULADDC_X1_INIT \
216
+ asm( \
217
+ "xorq %%r8, %%r8\n"
218
+
219
+ #define MULADDC_X1_CORE \
220
+ "movq (%%rsi), %%rax\n" \
221
+ "mulq %%rbx\n" \
222
+ "addq $8, %%rsi\n" \
223
+ "addq %%rcx, %%rax\n" \
224
+ "movq %%r8, %%rcx\n" \
225
+ "adcq $0, %%rdx\n" \
226
+ "nop \n" \
227
+ "addq %%rax, (%%rdi)\n" \
228
+ "adcq %%rdx, %%rcx\n" \
229
+ "addq $8, %%rdi\n"
230
+
231
+ #define MULADDC_X1_STOP \
232
+ : "+c" (c), "+D" (d), "+S" (s), "+m" (*(uint64_t (*)[16]) d) \
233
+ : "b" (b), "m" (*(const uint64_t (*)[16]) s) \
234
+ : "rax", "rdx", "r8" \
235
+ );
236
+
237
+ #endif /* AMD64 */
238
+
239
+ // The following assembly code assumes that a pointer will fit in a 64-bit register
240
+ // (including ILP32 __aarch64__ ABIs such as on watchOS, hence the 2^32 - 1)
241
+ #if defined(__aarch64__) && (UINTPTR_MAX == 0xfffffffful || UINTPTR_MAX == 0xfffffffffffffffful)
242
+
243
+ /*
244
+ * There are some issues around different compilers requiring different constraint
245
+ * syntax for updating pointers from assembly code (see notes for
246
+ * MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT in common.h), especially on aarch64_32 (aka ILP32).
247
+ *
248
+ * For this reason we cast the pointers to/from uintptr_t here.
249
+ */
250
+ #define MULADDC_X1_INIT \
251
+ do { uintptr_t muladdc_d = (uintptr_t) d, muladdc_s = (uintptr_t) s; asm(
252
+
253
+ #define MULADDC_X1_CORE \
254
+ "ldr x4, [%x2], #8 \n\t" \
255
+ "ldr x5, [%x1] \n\t" \
256
+ "mul x6, x4, %4 \n\t" \
257
+ "umulh x7, x4, %4 \n\t" \
258
+ "adds x5, x5, x6 \n\t" \
259
+ "adc x7, x7, xzr \n\t" \
260
+ "adds x5, x5, %0 \n\t" \
261
+ "adc %0, x7, xzr \n\t" \
262
+ "str x5, [%x1], #8 \n\t"
263
+
264
+ #define MULADDC_X1_STOP \
265
+ : "+r" (c), \
266
+ "+r" (muladdc_d), \
267
+ "+r" (muladdc_s), \
268
+ "+m" (*(uint64_t (*)[16]) d) \
269
+ : "r" (b), "m" (*(const uint64_t (*)[16]) s) \
270
+ : "x4", "x5", "x6", "x7", "cc" \
271
+ ); d = (mbedtls_mpi_uint *)muladdc_d; s = (mbedtls_mpi_uint *)muladdc_s; } while (0);
272
+
273
+ #endif /* Aarch64 */
274
+
275
+ #if defined(__mc68020__) || defined(__mcpu32__)
276
+
277
+ #define MULADDC_X1_INIT \
278
+ asm( \
279
+ "movl %3, %%a2 \n\t" \
280
+ "movl %4, %%a3 \n\t" \
281
+ "movl %5, %%d3 \n\t" \
282
+ "movl %6, %%d2 \n\t" \
283
+ "moveq #0, %%d0 \n\t"
284
+
285
+ #define MULADDC_X1_CORE \
286
+ "movel %%a2@+, %%d1 \n\t" \
287
+ "mulul %%d2, %%d4:%%d1 \n\t" \
288
+ "addl %%d3, %%d1 \n\t" \
289
+ "addxl %%d0, %%d4 \n\t" \
290
+ "moveq #0, %%d3 \n\t" \
291
+ "addl %%d1, %%a3@+ \n\t" \
292
+ "addxl %%d4, %%d3 \n\t"
293
+
294
+ #define MULADDC_X1_STOP \
295
+ "movl %%d3, %0 \n\t" \
296
+ "movl %%a3, %1 \n\t" \
297
+ "movl %%a2, %2 \n\t" \
298
+ : "=m" (c), "=m" (d), "=m" (s) \
299
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
300
+ : "d0", "d1", "d2", "d3", "d4", "a2", "a3" \
301
+ );
302
+
303
+ #define MULADDC_X8_INIT MULADDC_X1_INIT
304
+
305
+ #define MULADDC_X8_CORE \
306
+ "movel %%a2@+, %%d1 \n\t" \
307
+ "mulul %%d2, %%d4:%%d1 \n\t" \
308
+ "addxl %%d3, %%d1 \n\t" \
309
+ "addxl %%d0, %%d4 \n\t" \
310
+ "addl %%d1, %%a3@+ \n\t" \
311
+ "movel %%a2@+, %%d1 \n\t" \
312
+ "mulul %%d2, %%d3:%%d1 \n\t" \
313
+ "addxl %%d4, %%d1 \n\t" \
314
+ "addxl %%d0, %%d3 \n\t" \
315
+ "addl %%d1, %%a3@+ \n\t" \
316
+ "movel %%a2@+, %%d1 \n\t" \
317
+ "mulul %%d2, %%d4:%%d1 \n\t" \
318
+ "addxl %%d3, %%d1 \n\t" \
319
+ "addxl %%d0, %%d4 \n\t" \
320
+ "addl %%d1, %%a3@+ \n\t" \
321
+ "movel %%a2@+, %%d1 \n\t" \
322
+ "mulul %%d2, %%d3:%%d1 \n\t" \
323
+ "addxl %%d4, %%d1 \n\t" \
324
+ "addxl %%d0, %%d3 \n\t" \
325
+ "addl %%d1, %%a3@+ \n\t" \
326
+ "movel %%a2@+, %%d1 \n\t" \
327
+ "mulul %%d2, %%d4:%%d1 \n\t" \
328
+ "addxl %%d3, %%d1 \n\t" \
329
+ "addxl %%d0, %%d4 \n\t" \
330
+ "addl %%d1, %%a3@+ \n\t" \
331
+ "movel %%a2@+, %%d1 \n\t" \
332
+ "mulul %%d2, %%d3:%%d1 \n\t" \
333
+ "addxl %%d4, %%d1 \n\t" \
334
+ "addxl %%d0, %%d3 \n\t" \
335
+ "addl %%d1, %%a3@+ \n\t" \
336
+ "movel %%a2@+, %%d1 \n\t" \
337
+ "mulul %%d2, %%d4:%%d1 \n\t" \
338
+ "addxl %%d3, %%d1 \n\t" \
339
+ "addxl %%d0, %%d4 \n\t" \
340
+ "addl %%d1, %%a3@+ \n\t" \
341
+ "movel %%a2@+, %%d1 \n\t" \
342
+ "mulul %%d2, %%d3:%%d1 \n\t" \
343
+ "addxl %%d4, %%d1 \n\t" \
344
+ "addxl %%d0, %%d3 \n\t" \
345
+ "addl %%d1, %%a3@+ \n\t" \
346
+ "addxl %%d0, %%d3 \n\t"
347
+
348
+ #define MULADDC_X8_STOP MULADDC_X1_STOP
349
+
350
+ #endif /* MC68000 */
351
+
352
+ #if defined(__powerpc64__) || defined(__ppc64__)
353
+
354
+ #if defined(__MACH__) && defined(__APPLE__)
355
+
356
+ #define MULADDC_X1_INIT \
357
+ asm( \
358
+ "ld r3, %3 \n\t" \
359
+ "ld r4, %4 \n\t" \
360
+ "ld r5, %5 \n\t" \
361
+ "ld r6, %6 \n\t" \
362
+ "addi r3, r3, -8 \n\t" \
363
+ "addi r4, r4, -8 \n\t" \
364
+ "addic r5, r5, 0 \n\t"
365
+
366
+ #define MULADDC_X1_CORE \
367
+ "ldu r7, 8(r3) \n\t" \
368
+ "mulld r8, r7, r6 \n\t" \
369
+ "mulhdu r9, r7, r6 \n\t" \
370
+ "adde r8, r8, r5 \n\t" \
371
+ "ld r7, 8(r4) \n\t" \
372
+ "addze r5, r9 \n\t" \
373
+ "addc r8, r8, r7 \n\t" \
374
+ "stdu r8, 8(r4) \n\t"
375
+
376
+ #define MULADDC_X1_STOP \
377
+ "addze r5, r5 \n\t" \
378
+ "addi r4, r4, 8 \n\t" \
379
+ "addi r3, r3, 8 \n\t" \
380
+ "std r5, %0 \n\t" \
381
+ "std r4, %1 \n\t" \
382
+ "std r3, %2 \n\t" \
383
+ : "=m" (c), "=m" (d), "=m" (s) \
384
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
385
+ : "r3", "r4", "r5", "r6", "r7", "r8", "r9" \
386
+ );
387
+
388
+
389
+ #else /* __MACH__ && __APPLE__ */
390
+
391
+ #define MULADDC_X1_INIT \
392
+ asm( \
393
+ "ld %%r3, %3 \n\t" \
394
+ "ld %%r4, %4 \n\t" \
395
+ "ld %%r5, %5 \n\t" \
396
+ "ld %%r6, %6 \n\t" \
397
+ "addi %%r3, %%r3, -8 \n\t" \
398
+ "addi %%r4, %%r4, -8 \n\t" \
399
+ "addic %%r5, %%r5, 0 \n\t"
400
+
401
+ #define MULADDC_X1_CORE \
402
+ "ldu %%r7, 8(%%r3) \n\t" \
403
+ "mulld %%r8, %%r7, %%r6 \n\t" \
404
+ "mulhdu %%r9, %%r7, %%r6 \n\t" \
405
+ "adde %%r8, %%r8, %%r5 \n\t" \
406
+ "ld %%r7, 8(%%r4) \n\t" \
407
+ "addze %%r5, %%r9 \n\t" \
408
+ "addc %%r8, %%r8, %%r7 \n\t" \
409
+ "stdu %%r8, 8(%%r4) \n\t"
410
+
411
+ #define MULADDC_X1_STOP \
412
+ "addze %%r5, %%r5 \n\t" \
413
+ "addi %%r4, %%r4, 8 \n\t" \
414
+ "addi %%r3, %%r3, 8 \n\t" \
415
+ "std %%r5, %0 \n\t" \
416
+ "std %%r4, %1 \n\t" \
417
+ "std %%r3, %2 \n\t" \
418
+ : "=m" (c), "=m" (d), "=m" (s) \
419
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
420
+ : "r3", "r4", "r5", "r6", "r7", "r8", "r9" \
421
+ );
422
+
423
+ #endif /* __MACH__ && __APPLE__ */
424
+
425
+ #elif defined(__powerpc__) || defined(__ppc__) /* end PPC64/begin PPC32 */
426
+
427
+ #if defined(__MACH__) && defined(__APPLE__)
428
+
429
+ #define MULADDC_X1_INIT \
430
+ asm( \
431
+ "lwz r3, %3 \n\t" \
432
+ "lwz r4, %4 \n\t" \
433
+ "lwz r5, %5 \n\t" \
434
+ "lwz r6, %6 \n\t" \
435
+ "addi r3, r3, -4 \n\t" \
436
+ "addi r4, r4, -4 \n\t" \
437
+ "addic r5, r5, 0 \n\t"
438
+
439
+ #define MULADDC_X1_CORE \
440
+ "lwzu r7, 4(r3) \n\t" \
441
+ "mullw r8, r7, r6 \n\t" \
442
+ "mulhwu r9, r7, r6 \n\t" \
443
+ "adde r8, r8, r5 \n\t" \
444
+ "lwz r7, 4(r4) \n\t" \
445
+ "addze r5, r9 \n\t" \
446
+ "addc r8, r8, r7 \n\t" \
447
+ "stwu r8, 4(r4) \n\t"
448
+
449
+ #define MULADDC_X1_STOP \
450
+ "addze r5, r5 \n\t" \
451
+ "addi r4, r4, 4 \n\t" \
452
+ "addi r3, r3, 4 \n\t" \
453
+ "stw r5, %0 \n\t" \
454
+ "stw r4, %1 \n\t" \
455
+ "stw r3, %2 \n\t" \
456
+ : "=m" (c), "=m" (d), "=m" (s) \
457
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
458
+ : "r3", "r4", "r5", "r6", "r7", "r8", "r9" \
459
+ );
460
+
461
+ #else /* __MACH__ && __APPLE__ */
462
+
463
+ #define MULADDC_X1_INIT \
464
+ asm( \
465
+ "lwz %%r3, %3 \n\t" \
466
+ "lwz %%r4, %4 \n\t" \
467
+ "lwz %%r5, %5 \n\t" \
468
+ "lwz %%r6, %6 \n\t" \
469
+ "addi %%r3, %%r3, -4 \n\t" \
470
+ "addi %%r4, %%r4, -4 \n\t" \
471
+ "addic %%r5, %%r5, 0 \n\t"
472
+
473
+ #define MULADDC_X1_CORE \
474
+ "lwzu %%r7, 4(%%r3) \n\t" \
475
+ "mullw %%r8, %%r7, %%r6 \n\t" \
476
+ "mulhwu %%r9, %%r7, %%r6 \n\t" \
477
+ "adde %%r8, %%r8, %%r5 \n\t" \
478
+ "lwz %%r7, 4(%%r4) \n\t" \
479
+ "addze %%r5, %%r9 \n\t" \
480
+ "addc %%r8, %%r8, %%r7 \n\t" \
481
+ "stwu %%r8, 4(%%r4) \n\t"
482
+
483
+ #define MULADDC_X1_STOP \
484
+ "addze %%r5, %%r5 \n\t" \
485
+ "addi %%r4, %%r4, 4 \n\t" \
486
+ "addi %%r3, %%r3, 4 \n\t" \
487
+ "stw %%r5, %0 \n\t" \
488
+ "stw %%r4, %1 \n\t" \
489
+ "stw %%r3, %2 \n\t" \
490
+ : "=m" (c), "=m" (d), "=m" (s) \
491
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
492
+ : "r3", "r4", "r5", "r6", "r7", "r8", "r9" \
493
+ );
494
+
495
+ #endif /* __MACH__ && __APPLE__ */
496
+
497
+ #endif /* PPC32 */
498
+
499
+ /*
500
+ * The Sparc(64) assembly is reported to be broken.
501
+ * Disable it for now, until we're able to fix it.
502
+ */
503
+ #if 0 && defined(__sparc__)
504
+ #if defined(__sparc64__)
505
+
506
+ #define MULADDC_X1_INIT \
507
+ asm( \
508
+ "ldx %3, %%o0 \n\t" \
509
+ "ldx %4, %%o1 \n\t" \
510
+ "ld %5, %%o2 \n\t" \
511
+ "ld %6, %%o3 \n\t"
512
+
513
+ #define MULADDC_X1_CORE \
514
+ "ld [%%o0], %%o4 \n\t" \
515
+ "inc 4, %%o0 \n\t" \
516
+ "ld [%%o1], %%o5 \n\t" \
517
+ "umul %%o3, %%o4, %%o4 \n\t" \
518
+ "addcc %%o4, %%o2, %%o4 \n\t" \
519
+ "rd %%y, %%g1 \n\t" \
520
+ "addx %%g1, 0, %%g1 \n\t" \
521
+ "addcc %%o4, %%o5, %%o4 \n\t" \
522
+ "st %%o4, [%%o1] \n\t" \
523
+ "addx %%g1, 0, %%o2 \n\t" \
524
+ "inc 4, %%o1 \n\t"
525
+
526
+ #define MULADDC_X1_STOP \
527
+ "st %%o2, %0 \n\t" \
528
+ "stx %%o1, %1 \n\t" \
529
+ "stx %%o0, %2 \n\t" \
530
+ : "=m" (c), "=m" (d), "=m" (s) \
531
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
532
+ : "g1", "o0", "o1", "o2", "o3", "o4", \
533
+ "o5" \
534
+ );
535
+
536
+ #else /* __sparc64__ */
537
+
538
+ #define MULADDC_X1_INIT \
539
+ asm( \
540
+ "ld %3, %%o0 \n\t" \
541
+ "ld %4, %%o1 \n\t" \
542
+ "ld %5, %%o2 \n\t" \
543
+ "ld %6, %%o3 \n\t"
544
+
545
+ #define MULADDC_X1_CORE \
546
+ "ld [%%o0], %%o4 \n\t" \
547
+ "inc 4, %%o0 \n\t" \
548
+ "ld [%%o1], %%o5 \n\t" \
549
+ "umul %%o3, %%o4, %%o4 \n\t" \
550
+ "addcc %%o4, %%o2, %%o4 \n\t" \
551
+ "rd %%y, %%g1 \n\t" \
552
+ "addx %%g1, 0, %%g1 \n\t" \
553
+ "addcc %%o4, %%o5, %%o4 \n\t" \
554
+ "st %%o4, [%%o1] \n\t" \
555
+ "addx %%g1, 0, %%o2 \n\t" \
556
+ "inc 4, %%o1 \n\t"
557
+
558
+ #define MULADDC_X1_STOP \
559
+ "st %%o2, %0 \n\t" \
560
+ "st %%o1, %1 \n\t" \
561
+ "st %%o0, %2 \n\t" \
562
+ : "=m" (c), "=m" (d), "=m" (s) \
563
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
564
+ : "g1", "o0", "o1", "o2", "o3", "o4", \
565
+ "o5" \
566
+ );
567
+
568
+ #endif /* __sparc64__ */
569
+ #endif /* __sparc__ */
570
+
571
+ #if defined(__microblaze__) || defined(microblaze)
572
+
573
+ #define MULADDC_X1_INIT \
574
+ asm( \
575
+ "lwi r3, %3 \n\t" \
576
+ "lwi r4, %4 \n\t" \
577
+ "lwi r5, %5 \n\t" \
578
+ "lwi r6, %6 \n\t" \
579
+ "andi r7, r6, 0xffff \n\t" \
580
+ "bsrli r6, r6, 16 \n\t"
581
+
582
+ #if(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
583
+ #define MULADDC_LHUI \
584
+ "lhui r9, r3, 0 \n\t" \
585
+ "addi r3, r3, 2 \n\t" \
586
+ "lhui r8, r3, 0 \n\t"
587
+ #else
588
+ #define MULADDC_LHUI \
589
+ "lhui r8, r3, 0 \n\t" \
590
+ "addi r3, r3, 2 \n\t" \
591
+ "lhui r9, r3, 0 \n\t"
592
+ #endif
593
+
594
+ #define MULADDC_X1_CORE \
595
+ MULADDC_LHUI \
596
+ "addi r3, r3, 2 \n\t" \
597
+ "mul r10, r9, r6 \n\t" \
598
+ "mul r11, r8, r7 \n\t" \
599
+ "mul r12, r9, r7 \n\t" \
600
+ "mul r13, r8, r6 \n\t" \
601
+ "bsrli r8, r10, 16 \n\t" \
602
+ "bsrli r9, r11, 16 \n\t" \
603
+ "add r13, r13, r8 \n\t" \
604
+ "add r13, r13, r9 \n\t" \
605
+ "bslli r10, r10, 16 \n\t" \
606
+ "bslli r11, r11, 16 \n\t" \
607
+ "add r12, r12, r10 \n\t" \
608
+ "addc r13, r13, r0 \n\t" \
609
+ "add r12, r12, r11 \n\t" \
610
+ "addc r13, r13, r0 \n\t" \
611
+ "lwi r10, r4, 0 \n\t" \
612
+ "add r12, r12, r10 \n\t" \
613
+ "addc r13, r13, r0 \n\t" \
614
+ "add r12, r12, r5 \n\t" \
615
+ "addc r5, r13, r0 \n\t" \
616
+ "swi r12, r4, 0 \n\t" \
617
+ "addi r4, r4, 4 \n\t"
618
+
619
+ #define MULADDC_X1_STOP \
620
+ "swi r5, %0 \n\t" \
621
+ "swi r4, %1 \n\t" \
622
+ "swi r3, %2 \n\t" \
623
+ : "=m" (c), "=m" (d), "=m" (s) \
624
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
625
+ : "r3", "r4", "r5", "r6", "r7", "r8", \
626
+ "r9", "r10", "r11", "r12", "r13" \
627
+ );
628
+
629
+ #endif /* MicroBlaze */
630
+
631
+ #if defined(__tricore__)
632
+
633
+ #define MULADDC_X1_INIT \
634
+ asm( \
635
+ "ld.a %%a2, %3 \n\t" \
636
+ "ld.a %%a3, %4 \n\t" \
637
+ "ld.w %%d4, %5 \n\t" \
638
+ "ld.w %%d1, %6 \n\t" \
639
+ "xor %%d5, %%d5 \n\t"
640
+
641
+ #define MULADDC_X1_CORE \
642
+ "ld.w %%d0, [%%a2+] \n\t" \
643
+ "madd.u %%e2, %%e4, %%d0, %%d1 \n\t" \
644
+ "ld.w %%d0, [%%a3] \n\t" \
645
+ "addx %%d2, %%d2, %%d0 \n\t" \
646
+ "addc %%d3, %%d3, 0 \n\t" \
647
+ "mov %%d4, %%d3 \n\t" \
648
+ "st.w [%%a3+], %%d2 \n\t"
649
+
650
+ #define MULADDC_X1_STOP \
651
+ "st.w %0, %%d4 \n\t" \
652
+ "st.a %1, %%a3 \n\t" \
653
+ "st.a %2, %%a2 \n\t" \
654
+ : "=m" (c), "=m" (d), "=m" (s) \
655
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
656
+ : "d0", "d1", "e2", "d4", "a2", "a3" \
657
+ );
658
+
659
+ #endif /* TriCore */
660
+
661
+ #if defined(__arm__)
662
+
663
+ #if defined(__thumb__) && !defined(__thumb2__)
664
+ #if defined(MBEDTLS_COMPILER_IS_GCC)
665
+ /*
666
+ * Thumb 1 ISA. This code path has only been tested successfully on gcc;
667
+ * it does not compile on clang or armclang.
668
+ */
669
+
670
+ #if !defined(__OPTIMIZE__) && defined(__GNUC__)
671
+ /*
672
+ * Note, gcc -O0 by default uses r7 for the frame pointer, so it complains about
673
+ * our use of r7 below, unless -fomit-frame-pointer is passed.
674
+ *
675
+ * On the other hand, -fomit-frame-pointer is implied by any -Ox options with
676
+ * x !=0, which we can detect using __OPTIMIZE__ (which is also defined by
677
+ * clang and armcc5 under the same conditions).
678
+ *
679
+ * If gcc needs to use r7, we use r1 as a scratch register and have a few extra
680
+ * instructions to preserve/restore it; otherwise, we can use r7 and avoid
681
+ * the preserve/restore overhead.
682
+ */
683
+ #define MULADDC_SCRATCH "RS .req r1 \n\t"
684
+ #define MULADDC_PRESERVE_SCRATCH "mov r10, r1 \n\t"
685
+ #define MULADDC_RESTORE_SCRATCH "mov r1, r10 \n\t"
686
+ #define MULADDC_SCRATCH_CLOBBER "r10"
687
+ #else /* !defined(__OPTIMIZE__) && defined(__GNUC__) */
688
+ #define MULADDC_SCRATCH "RS .req r7 \n\t"
689
+ #define MULADDC_PRESERVE_SCRATCH ""
690
+ #define MULADDC_RESTORE_SCRATCH ""
691
+ #define MULADDC_SCRATCH_CLOBBER "r7"
692
+ #endif /* !defined(__OPTIMIZE__) && defined(__GNUC__) */
693
+
694
+ #define MULADDC_X1_INIT \
695
+ asm( \
696
+ MULADDC_SCRATCH \
697
+ "ldr r0, %3 \n\t" \
698
+ "ldr r1, %4 \n\t" \
699
+ "ldr r2, %5 \n\t" \
700
+ "ldr r3, %6 \n\t" \
701
+ "lsr r4, r3, #16 \n\t" \
702
+ "mov r9, r4 \n\t" \
703
+ "lsl r4, r3, #16 \n\t" \
704
+ "lsr r4, r4, #16 \n\t" \
705
+ "mov r8, r4 \n\t" \
706
+
707
+
708
+ #define MULADDC_X1_CORE \
709
+ MULADDC_PRESERVE_SCRATCH \
710
+ "ldmia r0!, {r6} \n\t" \
711
+ "lsr RS, r6, #16 \n\t" \
712
+ "lsl r6, r6, #16 \n\t" \
713
+ "lsr r6, r6, #16 \n\t" \
714
+ "mov r4, r8 \n\t" \
715
+ "mul r4, r6 \n\t" \
716
+ "mov r3, r9 \n\t" \
717
+ "mul r6, r3 \n\t" \
718
+ "mov r5, r9 \n\t" \
719
+ "mul r5, RS \n\t" \
720
+ "mov r3, r8 \n\t" \
721
+ "mul RS, r3 \n\t" \
722
+ "lsr r3, r6, #16 \n\t" \
723
+ "add r5, r5, r3 \n\t" \
724
+ "lsr r3, RS, #16 \n\t" \
725
+ "add r5, r5, r3 \n\t" \
726
+ "add r4, r4, r2 \n\t" \
727
+ "mov r2, #0 \n\t" \
728
+ "adc r5, r2 \n\t" \
729
+ "lsl r3, r6, #16 \n\t" \
730
+ "add r4, r4, r3 \n\t" \
731
+ "adc r5, r2 \n\t" \
732
+ "lsl r3, RS, #16 \n\t" \
733
+ "add r4, r4, r3 \n\t" \
734
+ "adc r5, r2 \n\t" \
735
+ MULADDC_RESTORE_SCRATCH \
736
+ "ldr r3, [r1] \n\t" \
737
+ "add r4, r4, r3 \n\t" \
738
+ "adc r2, r5 \n\t" \
739
+ "stmia r1!, {r4} \n\t"
740
+
741
+ #define MULADDC_X1_STOP \
742
+ "str r2, %0 \n\t" \
743
+ "str r1, %1 \n\t" \
744
+ "str r0, %2 \n\t" \
745
+ : "=m" (c), "=m" (d), "=m" (s) \
746
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
747
+ : "r0", "r1", "r2", "r3", "r4", "r5", \
748
+ "r6", MULADDC_SCRATCH_CLOBBER, "r8", "r9", "cc" \
749
+ );
750
+ #endif /* !defined(__ARMCC_VERSION) && !defined(__clang__) */
751
+
752
+ #elif (__ARM_ARCH >= 6) && \
753
+ defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)
754
+ /* Armv6-M (or later) with DSP Instruction Set Extensions.
755
+ * Requires support for either Thumb 2 or Arm ISA.
756
+ */
757
+
758
+ #define MULADDC_X1_INIT \
759
+ { \
760
+ mbedtls_mpi_uint tmp_a, tmp_b; \
761
+ asm volatile (
762
+
763
+ #define MULADDC_X1_CORE \
764
+ ".p2align 2 \n\t" \
765
+ "ldr %[a], [%[in]], #4 \n\t" \
766
+ "ldr %[b], [%[acc]] \n\t" \
767
+ "umaal %[b], %[carry], %[scalar], %[a] \n\t" \
768
+ "str %[b], [%[acc]], #4 \n\t"
769
+
770
+ #define MULADDC_X1_STOP \
771
+ : [a] "=&r" (tmp_a), \
772
+ [b] "=&r" (tmp_b), \
773
+ [in] "+r" (s), \
774
+ [acc] "+r" (d), \
775
+ [carry] "+l" (c) \
776
+ : [scalar] "r" (b) \
777
+ : "memory" \
778
+ ); \
779
+ }
780
+
781
+ #define MULADDC_X2_INIT \
782
+ { \
783
+ mbedtls_mpi_uint tmp_a0, tmp_b0; \
784
+ mbedtls_mpi_uint tmp_a1, tmp_b1; \
785
+ asm volatile (
786
+
787
+ /* - Make sure loop is 4-byte aligned to avoid stalls
788
+ * upon repeated non-word aligned instructions in
789
+ * some microarchitectures.
790
+ * - Don't use ldm with post-increment or back-to-back
791
+ * loads with post-increment and same address register
792
+ * to avoid stalls on some microarchitectures.
793
+ * - Bunch loads and stores to reduce latency on some
794
+ * microarchitectures. E.g., on Cortex-M4, the first
795
+ * in a series of load/store operations has latency
796
+ * 2 cycles, while subsequent loads/stores are single-cycle. */
797
+ #define MULADDC_X2_CORE \
798
+ ".p2align 2 \n\t" \
799
+ "ldr %[a0], [%[in]], #+8 \n\t" \
800
+ "ldr %[b0], [%[acc]], #+8 \n\t" \
801
+ "ldr %[a1], [%[in], #-4] \n\t" \
802
+ "ldr %[b1], [%[acc], #-4] \n\t" \
803
+ "umaal %[b0], %[carry], %[scalar], %[a0] \n\t" \
804
+ "umaal %[b1], %[carry], %[scalar], %[a1] \n\t" \
805
+ "str %[b0], [%[acc], #-8] \n\t" \
806
+ "str %[b1], [%[acc], #-4] \n\t"
807
+
808
+ #define MULADDC_X2_STOP \
809
+ : [a0] "=&r" (tmp_a0), \
810
+ [b0] "=&r" (tmp_b0), \
811
+ [a1] "=&r" (tmp_a1), \
812
+ [b1] "=&r" (tmp_b1), \
813
+ [in] "+r" (s), \
814
+ [acc] "+r" (d), \
815
+ [carry] "+l" (c) \
816
+ : [scalar] "r" (b) \
817
+ : "memory" \
818
+ ); \
819
+ }
820
+
821
+ #else /* Thumb 2 or Arm ISA, without DSP extensions */
822
+
823
+ #define MULADDC_X1_INIT \
824
+ asm( \
825
+ "ldr r0, %3 \n\t" \
826
+ "ldr r1, %4 \n\t" \
827
+ "ldr r2, %5 \n\t" \
828
+ "ldr r3, %6 \n\t"
829
+
830
+ #define MULADDC_X1_CORE \
831
+ "ldr r4, [r0], #4 \n\t" \
832
+ "mov r5, #0 \n\t" \
833
+ "ldr r6, [r1] \n\t" \
834
+ "umlal r2, r5, r3, r4 \n\t" \
835
+ "adds r4, r6, r2 \n\t" \
836
+ "adc r2, r5, #0 \n\t" \
837
+ "str r4, [r1], #4 \n\t"
838
+
839
+ #define MULADDC_X1_STOP \
840
+ "str r2, %0 \n\t" \
841
+ "str r1, %1 \n\t" \
842
+ "str r0, %2 \n\t" \
843
+ : "=m" (c), "=m" (d), "=m" (s) \
844
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
845
+ : "r0", "r1", "r2", "r3", "r4", "r5", \
846
+ "r6", "cc" \
847
+ );
848
+
849
+ #endif /* ISA codepath selection */
850
+
851
+ #endif /* defined(__arm__) */
852
+
853
+ #if defined(__alpha__)
854
+
855
+ #define MULADDC_X1_INIT \
856
+ asm( \
857
+ "ldq $1, %3 \n\t" \
858
+ "ldq $2, %4 \n\t" \
859
+ "ldq $3, %5 \n\t" \
860
+ "ldq $4, %6 \n\t"
861
+
862
+ #define MULADDC_X1_CORE \
863
+ "ldq $6, 0($1) \n\t" \
864
+ "addq $1, 8, $1 \n\t" \
865
+ "mulq $6, $4, $7 \n\t" \
866
+ "umulh $6, $4, $6 \n\t" \
867
+ "addq $7, $3, $7 \n\t" \
868
+ "cmpult $7, $3, $3 \n\t" \
869
+ "ldq $5, 0($2) \n\t" \
870
+ "addq $7, $5, $7 \n\t" \
871
+ "cmpult $7, $5, $5 \n\t" \
872
+ "stq $7, 0($2) \n\t" \
873
+ "addq $2, 8, $2 \n\t" \
874
+ "addq $6, $3, $3 \n\t" \
875
+ "addq $5, $3, $3 \n\t"
876
+
877
+ #define MULADDC_X1_STOP \
878
+ "stq $3, %0 \n\t" \
879
+ "stq $2, %1 \n\t" \
880
+ "stq $1, %2 \n\t" \
881
+ : "=m" (c), "=m" (d), "=m" (s) \
882
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
883
+ : "$1", "$2", "$3", "$4", "$5", "$6", "$7" \
884
+ );
885
+ #endif /* Alpha */
886
+
887
+ #if defined(__mips__) && !defined(__mips64)
888
+
889
+ #define MULADDC_X1_INIT \
890
+ asm( \
891
+ "lw $10, %3 \n\t" \
892
+ "lw $11, %4 \n\t" \
893
+ "lw $12, %5 \n\t" \
894
+ "lw $13, %6 \n\t"
895
+
896
+ #define MULADDC_X1_CORE \
897
+ "lw $14, 0($10) \n\t" \
898
+ "multu $13, $14 \n\t" \
899
+ "addi $10, $10, 4 \n\t" \
900
+ "mflo $14 \n\t" \
901
+ "mfhi $9 \n\t" \
902
+ "addu $14, $12, $14 \n\t" \
903
+ "lw $15, 0($11) \n\t" \
904
+ "sltu $12, $14, $12 \n\t" \
905
+ "addu $15, $14, $15 \n\t" \
906
+ "sltu $14, $15, $14 \n\t" \
907
+ "addu $12, $12, $9 \n\t" \
908
+ "sw $15, 0($11) \n\t" \
909
+ "addu $12, $12, $14 \n\t" \
910
+ "addi $11, $11, 4 \n\t"
911
+
912
+ #define MULADDC_X1_STOP \
913
+ "sw $12, %0 \n\t" \
914
+ "sw $11, %1 \n\t" \
915
+ "sw $10, %2 \n\t" \
916
+ : "=m" (c), "=m" (d), "=m" (s) \
917
+ : "m" (s), "m" (d), "m" (c), "m" (b) \
918
+ : "$9", "$10", "$11", "$12", "$13", "$14", "$15", "lo", "hi" \
919
+ );
920
+
921
+ #endif /* MIPS */
922
+ #endif /* GNUC */
923
+
924
+ #if (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__)
925
+
926
+ #define MULADDC_X1_INIT \
927
+ __asm mov esi, s \
928
+ __asm mov edi, d \
929
+ __asm mov ecx, c \
930
+ __asm mov ebx, b
931
+
932
+ #define MULADDC_X1_CORE \
933
+ __asm lodsd \
934
+ __asm mul ebx \
935
+ __asm add eax, ecx \
936
+ __asm adc edx, 0 \
937
+ __asm add eax, [edi] \
938
+ __asm adc edx, 0 \
939
+ __asm mov ecx, edx \
940
+ __asm stosd
941
+
942
+ #define MULADDC_X1_STOP \
943
+ __asm mov c, ecx \
944
+ __asm mov d, edi \
945
+ __asm mov s, esi
946
+
947
+ #if defined(MBEDTLS_HAVE_SSE2)
948
+
949
+ #define EMIT __asm _emit
950
+
951
+ #define MULADDC_X8_INIT MULADDC_X1_INIT
952
+
953
+ #define MULADDC_X8_CORE \
954
+ EMIT 0x0F EMIT 0x6E EMIT 0xC9 \
955
+ EMIT 0x0F EMIT 0x6E EMIT 0xC3 \
956
+ EMIT 0x0F EMIT 0x6E EMIT 0x1F \
957
+ EMIT 0x0F EMIT 0xD4 EMIT 0xCB \
958
+ EMIT 0x0F EMIT 0x6E EMIT 0x16 \
959
+ EMIT 0x0F EMIT 0xF4 EMIT 0xD0 \
960
+ EMIT 0x0F EMIT 0x6E EMIT 0x66 EMIT 0x04 \
961
+ EMIT 0x0F EMIT 0xF4 EMIT 0xE0 \
962
+ EMIT 0x0F EMIT 0x6E EMIT 0x76 EMIT 0x08 \
963
+ EMIT 0x0F EMIT 0xF4 EMIT 0xF0 \
964
+ EMIT 0x0F EMIT 0x6E EMIT 0x7E EMIT 0x0C \
965
+ EMIT 0x0F EMIT 0xF4 EMIT 0xF8 \
966
+ EMIT 0x0F EMIT 0xD4 EMIT 0xCA \
967
+ EMIT 0x0F EMIT 0x6E EMIT 0x5F EMIT 0x04 \
968
+ EMIT 0x0F EMIT 0xD4 EMIT 0xDC \
969
+ EMIT 0x0F EMIT 0x6E EMIT 0x6F EMIT 0x08 \
970
+ EMIT 0x0F EMIT 0xD4 EMIT 0xEE \
971
+ EMIT 0x0F EMIT 0x6E EMIT 0x67 EMIT 0x0C \
972
+ EMIT 0x0F EMIT 0xD4 EMIT 0xFC \
973
+ EMIT 0x0F EMIT 0x7E EMIT 0x0F \
974
+ EMIT 0x0F EMIT 0x6E EMIT 0x56 EMIT 0x10 \
975
+ EMIT 0x0F EMIT 0xF4 EMIT 0xD0 \
976
+ EMIT 0x0F EMIT 0x73 EMIT 0xD1 EMIT 0x20 \
977
+ EMIT 0x0F EMIT 0x6E EMIT 0x66 EMIT 0x14 \
978
+ EMIT 0x0F EMIT 0xF4 EMIT 0xE0 \
979
+ EMIT 0x0F EMIT 0xD4 EMIT 0xCB \
980
+ EMIT 0x0F EMIT 0x6E EMIT 0x76 EMIT 0x18 \
981
+ EMIT 0x0F EMIT 0xF4 EMIT 0xF0 \
982
+ EMIT 0x0F EMIT 0x7E EMIT 0x4F EMIT 0x04 \
983
+ EMIT 0x0F EMIT 0x73 EMIT 0xD1 EMIT 0x20 \
984
+ EMIT 0x0F EMIT 0x6E EMIT 0x5E EMIT 0x1C \
985
+ EMIT 0x0F EMIT 0xF4 EMIT 0xD8 \
986
+ EMIT 0x0F EMIT 0xD4 EMIT 0xCD \
987
+ EMIT 0x0F EMIT 0x6E EMIT 0x6F EMIT 0x10 \
988
+ EMIT 0x0F EMIT 0xD4 EMIT 0xD5 \
989
+ EMIT 0x0F EMIT 0x7E EMIT 0x4F EMIT 0x08 \
990
+ EMIT 0x0F EMIT 0x73 EMIT 0xD1 EMIT 0x20 \
991
+ EMIT 0x0F EMIT 0xD4 EMIT 0xCF \
992
+ EMIT 0x0F EMIT 0x6E EMIT 0x6F EMIT 0x14 \
993
+ EMIT 0x0F EMIT 0xD4 EMIT 0xE5 \
994
+ EMIT 0x0F EMIT 0x7E EMIT 0x4F EMIT 0x0C \
995
+ EMIT 0x0F EMIT 0x73 EMIT 0xD1 EMIT 0x20 \
996
+ EMIT 0x0F EMIT 0xD4 EMIT 0xCA \
997
+ EMIT 0x0F EMIT 0x6E EMIT 0x6F EMIT 0x18 \
998
+ EMIT 0x0F EMIT 0xD4 EMIT 0xF5 \
999
+ EMIT 0x0F EMIT 0x7E EMIT 0x4F EMIT 0x10 \
1000
+ EMIT 0x0F EMIT 0x73 EMIT 0xD1 EMIT 0x20 \
1001
+ EMIT 0x0F EMIT 0xD4 EMIT 0xCC \
1002
+ EMIT 0x0F EMIT 0x6E EMIT 0x6F EMIT 0x1C \
1003
+ EMIT 0x0F EMIT 0xD4 EMIT 0xDD \
1004
+ EMIT 0x0F EMIT 0x7E EMIT 0x4F EMIT 0x14 \
1005
+ EMIT 0x0F EMIT 0x73 EMIT 0xD1 EMIT 0x20 \
1006
+ EMIT 0x0F EMIT 0xD4 EMIT 0xCE \
1007
+ EMIT 0x0F EMIT 0x7E EMIT 0x4F EMIT 0x18 \
1008
+ EMIT 0x0F EMIT 0x73 EMIT 0xD1 EMIT 0x20 \
1009
+ EMIT 0x0F EMIT 0xD4 EMIT 0xCB \
1010
+ EMIT 0x0F EMIT 0x7E EMIT 0x4F EMIT 0x1C \
1011
+ EMIT 0x83 EMIT 0xC7 EMIT 0x20 \
1012
+ EMIT 0x83 EMIT 0xC6 EMIT 0x20 \
1013
+ EMIT 0x0F EMIT 0x73 EMIT 0xD1 EMIT 0x20 \
1014
+ EMIT 0x0F EMIT 0x7E EMIT 0xC9
1015
+
1016
+ #define MULADDC_X8_STOP \
1017
+ EMIT 0x0F EMIT 0x77 \
1018
+ __asm mov c, ecx \
1019
+ __asm mov d, edi \
1020
+ __asm mov s, esi
1021
+
1022
+ #endif /* SSE2 */
1023
+ #endif /* MSVC */
1024
+
1025
+ #endif /* MBEDTLS_HAVE_ASM */
1026
+
1027
+ #if !defined(MULADDC_X1_CORE)
1028
+ #if defined(MBEDTLS_HAVE_UDBL)
1029
+
1030
+ #define MULADDC_X1_INIT \
1031
+ { \
1032
+ mbedtls_t_udbl r; \
1033
+ mbedtls_mpi_uint r0, r1;
1034
+
1035
+ #define MULADDC_X1_CORE \
1036
+ r = *(s++) * (mbedtls_t_udbl) b; \
1037
+ r0 = (mbedtls_mpi_uint) r; \
1038
+ r1 = (mbedtls_mpi_uint)( r >> biL ); \
1039
+ r0 += c; r1 += (r0 < c); \
1040
+ r0 += *d; r1 += (r0 < *d); \
1041
+ c = r1; *(d++) = r0;
1042
+
1043
+ #define MULADDC_X1_STOP \
1044
+ }
1045
+
1046
+ #else /* MBEDTLS_HAVE_UDBL */
1047
+
1048
+ #define MULADDC_X1_INIT \
1049
+ { \
1050
+ mbedtls_mpi_uint s0, s1, b0, b1; \
1051
+ mbedtls_mpi_uint r0, r1, rx, ry; \
1052
+ b0 = ( b << biH ) >> biH; \
1053
+ b1 = ( b >> biH );
1054
+
1055
+ #define MULADDC_X1_CORE \
1056
+ s0 = ( *s << biH ) >> biH; \
1057
+ s1 = ( *s >> biH ); s++; \
1058
+ rx = s0 * b1; r0 = s0 * b0; \
1059
+ ry = s1 * b0; r1 = s1 * b1; \
1060
+ r1 += ( rx >> biH ); \
1061
+ r1 += ( ry >> biH ); \
1062
+ rx <<= biH; ry <<= biH; \
1063
+ r0 += rx; r1 += (r0 < rx); \
1064
+ r0 += ry; r1 += (r0 < ry); \
1065
+ r0 += c; r1 += (r0 < c); \
1066
+ r0 += *d; r1 += (r0 < *d); \
1067
+ c = r1; *(d++) = r0;
1068
+
1069
+ #define MULADDC_X1_STOP \
1070
+ }
1071
+
1072
+ #endif /* C (longlong) */
1073
+ #endif /* C (generic) */
1074
+
1075
+ #if !defined(MULADDC_X2_CORE)
1076
+ #define MULADDC_X2_INIT MULADDC_X1_INIT
1077
+ #define MULADDC_X2_STOP MULADDC_X1_STOP
1078
+ #define MULADDC_X2_CORE MULADDC_X1_CORE MULADDC_X1_CORE
1079
+ #endif /* MULADDC_X2_CORE */
1080
+
1081
+ #if !defined(MULADDC_X4_CORE)
1082
+ #define MULADDC_X4_INIT MULADDC_X2_INIT
1083
+ #define MULADDC_X4_STOP MULADDC_X2_STOP
1084
+ #define MULADDC_X4_CORE MULADDC_X2_CORE MULADDC_X2_CORE
1085
+ #endif /* MULADDC_X4_CORE */
1086
+
1087
+ #if !defined(MULADDC_X8_CORE)
1088
+ #define MULADDC_X8_INIT MULADDC_X4_INIT
1089
+ #define MULADDC_X8_STOP MULADDC_X4_STOP
1090
+ #define MULADDC_X8_CORE MULADDC_X4_CORE MULADDC_X4_CORE
1091
+ #endif /* MULADDC_X8_CORE */
1092
+
1093
+ /* *INDENT-ON* */
1094
+ #endif /* bn_mul.h */