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,1143 @@
1
+ /**
2
+ * \file rsa.h
3
+ *
4
+ * \brief This file provides an API for the RSA public-key cryptosystem.
5
+ *
6
+ * The RSA public-key cryptosystem is defined in <em>Public-Key
7
+ * Cryptography Standards (PKCS) #1 v1.5: RSA Encryption</em>
8
+ * and <em>Public-Key Cryptography Standards (PKCS) #1 v2.1:
9
+ * RSA Cryptography Specifications</em>.
10
+ *
11
+ */
12
+ /*
13
+ * Copyright The Mbed TLS Contributors
14
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
15
+ */
16
+ #ifndef MBEDTLS_RSA_H
17
+ #define MBEDTLS_RSA_H
18
+ #include "mbedtls/private_access.h"
19
+
20
+ #include "mbedtls/build_info.h"
21
+
22
+ #include "mbedtls/bignum.h"
23
+ #include "mbedtls/md.h"
24
+
25
+ #if defined(MBEDTLS_THREADING_C)
26
+ #include "mbedtls/threading.h"
27
+ #endif
28
+
29
+ /*
30
+ * RSA Error codes
31
+ */
32
+ /** Bad input parameters to function. */
33
+ #define MBEDTLS_ERR_RSA_BAD_INPUT_DATA -0x4080
34
+ /** Input data contains invalid padding and is rejected. */
35
+ #define MBEDTLS_ERR_RSA_INVALID_PADDING -0x4100
36
+ /** Something failed during generation of a key. */
37
+ #define MBEDTLS_ERR_RSA_KEY_GEN_FAILED -0x4180
38
+ /** Key failed to pass the validity check of the library. */
39
+ #define MBEDTLS_ERR_RSA_KEY_CHECK_FAILED -0x4200
40
+ /** The public key operation failed. */
41
+ #define MBEDTLS_ERR_RSA_PUBLIC_FAILED -0x4280
42
+ /** The private key operation failed. */
43
+ #define MBEDTLS_ERR_RSA_PRIVATE_FAILED -0x4300
44
+ /** The PKCS#1 verification failed. */
45
+ #define MBEDTLS_ERR_RSA_VERIFY_FAILED -0x4380
46
+ /** The output buffer for decryption is not large enough. */
47
+ #define MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE -0x4400
48
+ /** The random generator failed to generate non-zeros. */
49
+ #define MBEDTLS_ERR_RSA_RNG_FAILED -0x4480
50
+
51
+ /*
52
+ * RSA constants
53
+ */
54
+
55
+ #define MBEDTLS_RSA_PKCS_V15 0 /**< Use PKCS#1 v1.5 encoding. */
56
+ #define MBEDTLS_RSA_PKCS_V21 1 /**< Use PKCS#1 v2.1 encoding. */
57
+
58
+ #define MBEDTLS_RSA_SIGN 1 /**< Identifier for RSA signature operations. */
59
+ #define MBEDTLS_RSA_CRYPT 2 /**< Identifier for RSA encryption and decryption operations. */
60
+
61
+ #define MBEDTLS_RSA_SALT_LEN_ANY -1
62
+
63
+ /*
64
+ * The above constants may be used even if the RSA module is compile out,
65
+ * eg for alternative (PKCS#11) RSA implementations in the PK layers.
66
+ */
67
+
68
+ #ifdef __cplusplus
69
+ extern "C" {
70
+ #endif
71
+
72
+ #if !defined(MBEDTLS_RSA_ALT)
73
+ // Regular implementation
74
+ //
75
+
76
+ #if !defined(MBEDTLS_RSA_GEN_KEY_MIN_BITS)
77
+ #define MBEDTLS_RSA_GEN_KEY_MIN_BITS 1024
78
+ #elif MBEDTLS_RSA_GEN_KEY_MIN_BITS < 128
79
+ #error "MBEDTLS_RSA_GEN_KEY_MIN_BITS must be at least 128 bits"
80
+ #endif
81
+
82
+ /**
83
+ * \brief The RSA context structure.
84
+ */
85
+ typedef struct mbedtls_rsa_context {
86
+ int MBEDTLS_PRIVATE(ver); /*!< Reserved for internal purposes.
87
+ * Do not set this field in application
88
+ * code. Its meaning might change without
89
+ * notice. */
90
+ size_t MBEDTLS_PRIVATE(len); /*!< The size of \p N in Bytes. */
91
+
92
+ mbedtls_mpi MBEDTLS_PRIVATE(N); /*!< The public modulus. */
93
+ mbedtls_mpi MBEDTLS_PRIVATE(E); /*!< The public exponent. */
94
+
95
+ mbedtls_mpi MBEDTLS_PRIVATE(D); /*!< The private exponent. */
96
+ mbedtls_mpi MBEDTLS_PRIVATE(P); /*!< The first prime factor. */
97
+ mbedtls_mpi MBEDTLS_PRIVATE(Q); /*!< The second prime factor. */
98
+
99
+ mbedtls_mpi MBEDTLS_PRIVATE(DP); /*!< <code>D % (P - 1)</code>. */
100
+ mbedtls_mpi MBEDTLS_PRIVATE(DQ); /*!< <code>D % (Q - 1)</code>. */
101
+ mbedtls_mpi MBEDTLS_PRIVATE(QP); /*!< <code>1 / (Q % P)</code>. */
102
+
103
+ mbedtls_mpi MBEDTLS_PRIVATE(RN); /*!< cached <code>R^2 mod N</code>. */
104
+
105
+ mbedtls_mpi MBEDTLS_PRIVATE(RP); /*!< cached <code>R^2 mod P</code>. */
106
+ mbedtls_mpi MBEDTLS_PRIVATE(RQ); /*!< cached <code>R^2 mod Q</code>. */
107
+
108
+ mbedtls_mpi MBEDTLS_PRIVATE(Vi); /*!< The cached blinding value. */
109
+ mbedtls_mpi MBEDTLS_PRIVATE(Vf); /*!< The cached un-blinding value. */
110
+
111
+ int MBEDTLS_PRIVATE(padding); /*!< Selects padding mode:
112
+ #MBEDTLS_RSA_PKCS_V15 for 1.5 padding and
113
+ #MBEDTLS_RSA_PKCS_V21 for OAEP or PSS. */
114
+ int MBEDTLS_PRIVATE(hash_id); /*!< Hash identifier of mbedtls_md_type_t type,
115
+ as specified in md.h for use in the MGF
116
+ mask generating function used in the
117
+ EME-OAEP and EMSA-PSS encodings. */
118
+ #if defined(MBEDTLS_THREADING_C)
119
+ /* Invariant: the mutex is initialized iff ver != 0. */
120
+ mbedtls_threading_mutex_t MBEDTLS_PRIVATE(mutex); /*!< Thread-safety mutex. */
121
+ #endif
122
+ }
123
+ mbedtls_rsa_context;
124
+
125
+ #else /* MBEDTLS_RSA_ALT */
126
+ #include "rsa_alt.h"
127
+ #endif /* MBEDTLS_RSA_ALT */
128
+
129
+ /**
130
+ * \brief This function initializes an RSA context.
131
+ *
132
+ * \note This function initializes the padding and the hash
133
+ * identifier to respectively #MBEDTLS_RSA_PKCS_V15 and
134
+ * #MBEDTLS_MD_NONE. See mbedtls_rsa_set_padding() for more
135
+ * information about those parameters.
136
+ *
137
+ * \param ctx The RSA context to initialize. This must not be \c NULL.
138
+ */
139
+ void mbedtls_rsa_init(mbedtls_rsa_context *ctx);
140
+
141
+ /**
142
+ * \brief This function sets padding for an already initialized RSA
143
+ * context.
144
+ *
145
+ * \note Set padding to #MBEDTLS_RSA_PKCS_V21 for the RSAES-OAEP
146
+ * encryption scheme and the RSASSA-PSS signature scheme.
147
+ *
148
+ * \note The \p hash_id parameter is ignored when using
149
+ * #MBEDTLS_RSA_PKCS_V15 padding.
150
+ *
151
+ * \note The choice of padding mode is strictly enforced for private
152
+ * key operations, since there might be security concerns in
153
+ * mixing padding modes. For public key operations it is
154
+ * a default value, which can be overridden by calling specific
155
+ * \c mbedtls_rsa_rsaes_xxx or \c mbedtls_rsa_rsassa_xxx
156
+ * functions.
157
+ *
158
+ * \note The hash selected in \p hash_id is always used for OEAP
159
+ * encryption. For PSS signatures, it is always used for
160
+ * making signatures, but can be overridden for verifying them.
161
+ * If set to #MBEDTLS_MD_NONE, it is always overridden.
162
+ *
163
+ * \param ctx The initialized RSA context to be configured.
164
+ * \param padding The padding mode to use. This must be either
165
+ * #MBEDTLS_RSA_PKCS_V15 or #MBEDTLS_RSA_PKCS_V21.
166
+ * \param hash_id The hash identifier for PSS or OAEP, if \p padding is
167
+ * #MBEDTLS_RSA_PKCS_V21. #MBEDTLS_MD_NONE is accepted by this
168
+ * function but may be not suitable for some operations.
169
+ * Ignored if \p padding is #MBEDTLS_RSA_PKCS_V15.
170
+ *
171
+ * \return \c 0 on success.
172
+ * \return #MBEDTLS_ERR_RSA_INVALID_PADDING failure:
173
+ * \p padding or \p hash_id is invalid.
174
+ */
175
+ int mbedtls_rsa_set_padding(mbedtls_rsa_context *ctx, int padding,
176
+ mbedtls_md_type_t hash_id);
177
+
178
+ /**
179
+ * \brief This function retrieves padding mode of initialized
180
+ * RSA context.
181
+ *
182
+ * \param ctx The initialized RSA context.
183
+ *
184
+ * \return RSA padding mode.
185
+ *
186
+ */
187
+ int mbedtls_rsa_get_padding_mode(const mbedtls_rsa_context *ctx);
188
+
189
+ /**
190
+ * \brief This function retrieves hash identifier of mbedtls_md_type_t
191
+ * type.
192
+ *
193
+ * \param ctx The initialized RSA context.
194
+ *
195
+ * \return Hash identifier of mbedtls_md_type_t type.
196
+ *
197
+ */
198
+ int mbedtls_rsa_get_md_alg(const mbedtls_rsa_context *ctx);
199
+
200
+ /**
201
+ * \brief This function imports a set of core parameters into an
202
+ * RSA context.
203
+ *
204
+ * \note This function can be called multiple times for successive
205
+ * imports, if the parameters are not simultaneously present.
206
+ *
207
+ * Any sequence of calls to this function should be followed
208
+ * by a call to mbedtls_rsa_complete(), which checks and
209
+ * completes the provided information to a ready-for-use
210
+ * public or private RSA key.
211
+ *
212
+ * \note See mbedtls_rsa_complete() for more information on which
213
+ * parameters are necessary to set up a private or public
214
+ * RSA key.
215
+ *
216
+ * \note The imported parameters are copied and need not be preserved
217
+ * for the lifetime of the RSA context being set up.
218
+ *
219
+ * \param ctx The initialized RSA context to store the parameters in.
220
+ * \param N The RSA modulus. This may be \c NULL.
221
+ * \param P The first prime factor of \p N. This may be \c NULL.
222
+ * \param Q The second prime factor of \p N. This may be \c NULL.
223
+ * \param D The private exponent. This may be \c NULL.
224
+ * \param E The public exponent. This may be \c NULL.
225
+ *
226
+ * \return \c 0 on success.
227
+ * \return A non-zero error code on failure.
228
+ */
229
+ int mbedtls_rsa_import(mbedtls_rsa_context *ctx,
230
+ const mbedtls_mpi *N,
231
+ const mbedtls_mpi *P, const mbedtls_mpi *Q,
232
+ const mbedtls_mpi *D, const mbedtls_mpi *E);
233
+
234
+ /**
235
+ * \brief This function imports core RSA parameters, in raw big-endian
236
+ * binary format, into an RSA context.
237
+ *
238
+ * \note This function can be called multiple times for successive
239
+ * imports, if the parameters are not simultaneously present.
240
+ *
241
+ * Any sequence of calls to this function should be followed
242
+ * by a call to mbedtls_rsa_complete(), which checks and
243
+ * completes the provided information to a ready-for-use
244
+ * public or private RSA key.
245
+ *
246
+ * \note See mbedtls_rsa_complete() for more information on which
247
+ * parameters are necessary to set up a private or public
248
+ * RSA key.
249
+ *
250
+ * \note The imported parameters are copied and need not be preserved
251
+ * for the lifetime of the RSA context being set up.
252
+ *
253
+ * \param ctx The initialized RSA context to store the parameters in.
254
+ * \param N The RSA modulus. This may be \c NULL.
255
+ * \param N_len The Byte length of \p N; it is ignored if \p N == NULL.
256
+ * \param P The first prime factor of \p N. This may be \c NULL.
257
+ * \param P_len The Byte length of \p P; it is ignored if \p P == NULL.
258
+ * \param Q The second prime factor of \p N. This may be \c NULL.
259
+ * \param Q_len The Byte length of \p Q; it is ignored if \p Q == NULL.
260
+ * \param D The private exponent. This may be \c NULL.
261
+ * \param D_len The Byte length of \p D; it is ignored if \p D == NULL.
262
+ * \param E The public exponent. This may be \c NULL.
263
+ * \param E_len The Byte length of \p E; it is ignored if \p E == NULL.
264
+ *
265
+ * \return \c 0 on success.
266
+ * \return A non-zero error code on failure.
267
+ */
268
+ int mbedtls_rsa_import_raw(mbedtls_rsa_context *ctx,
269
+ unsigned char const *N, size_t N_len,
270
+ unsigned char const *P, size_t P_len,
271
+ unsigned char const *Q, size_t Q_len,
272
+ unsigned char const *D, size_t D_len,
273
+ unsigned char const *E, size_t E_len);
274
+
275
+ /**
276
+ * \brief This function completes an RSA context from
277
+ * a set of imported core parameters.
278
+ *
279
+ * To setup an RSA public key, precisely \c N and \c E
280
+ * must have been imported.
281
+ *
282
+ * To setup an RSA private key, sufficient information must
283
+ * be present for the other parameters to be derivable.
284
+ *
285
+ * The default implementation supports the following:
286
+ * <ul><li>Derive \c P, \c Q from \c N, \c D, \c E.</li>
287
+ * <li>Derive \c N, \c D from \c P, \c Q, \c E.</li></ul>
288
+ * Alternative implementations need not support these.
289
+ *
290
+ * If this function runs successfully, it guarantees that
291
+ * the RSA context can be used for RSA operations without
292
+ * the risk of failure or crash.
293
+ *
294
+ * \warning This function need not perform consistency checks
295
+ * for the imported parameters. In particular, parameters that
296
+ * are not needed by the implementation might be silently
297
+ * discarded and left unchecked. To check the consistency
298
+ * of the key material, see mbedtls_rsa_check_privkey().
299
+ *
300
+ * \param ctx The initialized RSA context holding imported parameters.
301
+ *
302
+ * \return \c 0 on success.
303
+ * \return #MBEDTLS_ERR_RSA_BAD_INPUT_DATA if the attempted derivations
304
+ * failed.
305
+ *
306
+ */
307
+ int mbedtls_rsa_complete(mbedtls_rsa_context *ctx);
308
+
309
+ /**
310
+ * \brief This function exports the core parameters of an RSA key.
311
+ *
312
+ * If this function runs successfully, the non-NULL buffers
313
+ * pointed to by \p N, \p P, \p Q, \p D, and \p E are fully
314
+ * written, with additional unused space filled leading by
315
+ * zero Bytes.
316
+ *
317
+ * Possible reasons for returning
318
+ * #MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED:<ul>
319
+ * <li>An alternative RSA implementation is in use, which
320
+ * stores the key externally, and either cannot or should
321
+ * not export it into RAM.</li>
322
+ * <li>A SW or HW implementation might not support a certain
323
+ * deduction. For example, \p P, \p Q from \p N, \p D,
324
+ * and \p E if the former are not part of the
325
+ * implementation.</li></ul>
326
+ *
327
+ * If the function fails due to an unsupported operation,
328
+ * the RSA context stays intact and remains usable.
329
+ *
330
+ * \param ctx The initialized RSA context.
331
+ * \param N The MPI to hold the RSA modulus.
332
+ * This may be \c NULL if this field need not be exported.
333
+ * \param P The MPI to hold the first prime factor of \p N.
334
+ * This may be \c NULL if this field need not be exported.
335
+ * \param Q The MPI to hold the second prime factor of \p N.
336
+ * This may be \c NULL if this field need not be exported.
337
+ * \param D The MPI to hold the private exponent.
338
+ * This may be \c NULL if this field need not be exported.
339
+ * \param E The MPI to hold the public exponent.
340
+ * This may be \c NULL if this field need not be exported.
341
+ *
342
+ * \return \c 0 on success.
343
+ * \return #MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED if exporting the
344
+ * requested parameters cannot be done due to missing
345
+ * functionality or because of security policies.
346
+ * \return A non-zero return code on any other failure.
347
+ *
348
+ */
349
+ int mbedtls_rsa_export(const mbedtls_rsa_context *ctx,
350
+ mbedtls_mpi *N, mbedtls_mpi *P, mbedtls_mpi *Q,
351
+ mbedtls_mpi *D, mbedtls_mpi *E);
352
+
353
+ /**
354
+ * \brief This function exports core parameters of an RSA key
355
+ * in raw big-endian binary format.
356
+ *
357
+ * If this function runs successfully, the non-NULL buffers
358
+ * pointed to by \p N, \p P, \p Q, \p D, and \p E are fully
359
+ * written, with additional unused space filled leading by
360
+ * zero Bytes.
361
+ *
362
+ * Possible reasons for returning
363
+ * #MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED:<ul>
364
+ * <li>An alternative RSA implementation is in use, which
365
+ * stores the key externally, and either cannot or should
366
+ * not export it into RAM.</li>
367
+ * <li>A SW or HW implementation might not support a certain
368
+ * deduction. For example, \p P, \p Q from \p N, \p D,
369
+ * and \p E if the former are not part of the
370
+ * implementation.</li></ul>
371
+ * If the function fails due to an unsupported operation,
372
+ * the RSA context stays intact and remains usable.
373
+ *
374
+ * \note The length parameters are ignored if the corresponding
375
+ * buffer pointers are NULL.
376
+ *
377
+ * \param ctx The initialized RSA context.
378
+ * \param N The Byte array to store the RSA modulus,
379
+ * or \c NULL if this field need not be exported.
380
+ * \param N_len The size of the buffer for the modulus.
381
+ * \param P The Byte array to hold the first prime factor of \p N,
382
+ * or \c NULL if this field need not be exported.
383
+ * \param P_len The size of the buffer for the first prime factor.
384
+ * \param Q The Byte array to hold the second prime factor of \p N,
385
+ * or \c NULL if this field need not be exported.
386
+ * \param Q_len The size of the buffer for the second prime factor.
387
+ * \param D The Byte array to hold the private exponent,
388
+ * or \c NULL if this field need not be exported.
389
+ * \param D_len The size of the buffer for the private exponent.
390
+ * \param E The Byte array to hold the public exponent,
391
+ * or \c NULL if this field need not be exported.
392
+ * \param E_len The size of the buffer for the public exponent.
393
+ *
394
+ * \return \c 0 on success.
395
+ * \return #MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED if exporting the
396
+ * requested parameters cannot be done due to missing
397
+ * functionality or because of security policies.
398
+ * \return A non-zero return code on any other failure.
399
+ */
400
+ int mbedtls_rsa_export_raw(const mbedtls_rsa_context *ctx,
401
+ unsigned char *N, size_t N_len,
402
+ unsigned char *P, size_t P_len,
403
+ unsigned char *Q, size_t Q_len,
404
+ unsigned char *D, size_t D_len,
405
+ unsigned char *E, size_t E_len);
406
+
407
+ /**
408
+ * \brief This function exports CRT parameters of a private RSA key.
409
+ *
410
+ * \note Alternative RSA implementations not using CRT-parameters
411
+ * internally can implement this function based on
412
+ * mbedtls_rsa_deduce_opt().
413
+ *
414
+ * \param ctx The initialized RSA context.
415
+ * \param DP The MPI to hold \c D modulo `P-1`,
416
+ * or \c NULL if it need not be exported.
417
+ * \param DQ The MPI to hold \c D modulo `Q-1`,
418
+ * or \c NULL if it need not be exported.
419
+ * \param QP The MPI to hold modular inverse of \c Q modulo \c P,
420
+ * or \c NULL if it need not be exported.
421
+ *
422
+ * \return \c 0 on success.
423
+ * \return A non-zero error code on failure.
424
+ *
425
+ */
426
+ int mbedtls_rsa_export_crt(const mbedtls_rsa_context *ctx,
427
+ mbedtls_mpi *DP, mbedtls_mpi *DQ, mbedtls_mpi *QP);
428
+
429
+ /**
430
+ * \brief This function retrieves the length of RSA modulus in Bytes.
431
+ *
432
+ * \param ctx The initialized RSA context.
433
+ *
434
+ * \return The length of the RSA modulus in Bytes.
435
+ *
436
+ */
437
+ size_t mbedtls_rsa_get_len(const mbedtls_rsa_context *ctx);
438
+
439
+ /**
440
+ * \brief This function generates an RSA keypair.
441
+ *
442
+ * \note mbedtls_rsa_init() must be called before this function,
443
+ * to set up the RSA context.
444
+ *
445
+ * \param ctx The initialized RSA context used to hold the key.
446
+ * \param f_rng The RNG function to be used for key generation.
447
+ * This is mandatory and must not be \c NULL.
448
+ * \param p_rng The RNG context to be passed to \p f_rng.
449
+ * This may be \c NULL if \p f_rng doesn't need a context.
450
+ * \param nbits The size of the public key in bits.
451
+ * \param exponent The public exponent to use. For example, \c 65537.
452
+ * This must be odd and greater than \c 1.
453
+ *
454
+ * \return \c 0 on success.
455
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
456
+ */
457
+ int mbedtls_rsa_gen_key(mbedtls_rsa_context *ctx,
458
+ int (*f_rng)(void *, unsigned char *, size_t),
459
+ void *p_rng,
460
+ unsigned int nbits, int exponent);
461
+
462
+ /**
463
+ * \brief This function checks if a context contains at least an RSA
464
+ * public key.
465
+ *
466
+ * If the function runs successfully, it is guaranteed that
467
+ * enough information is present to perform an RSA public key
468
+ * operation using mbedtls_rsa_public().
469
+ *
470
+ * \param ctx The initialized RSA context to check.
471
+ *
472
+ * \return \c 0 on success.
473
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
474
+ *
475
+ */
476
+ int mbedtls_rsa_check_pubkey(const mbedtls_rsa_context *ctx);
477
+
478
+ /**
479
+ * \brief This function checks if a context contains an RSA private key
480
+ * and perform basic consistency checks.
481
+ *
482
+ * \note The consistency checks performed by this function not only
483
+ * ensure that mbedtls_rsa_private() can be called successfully
484
+ * on the given context, but that the various parameters are
485
+ * mutually consistent with high probability, in the sense that
486
+ * mbedtls_rsa_public() and mbedtls_rsa_private() are inverses.
487
+ *
488
+ * \warning This function should catch accidental misconfigurations
489
+ * like swapping of parameters, but it cannot establish full
490
+ * trust in neither the quality nor the consistency of the key
491
+ * material that was used to setup the given RSA context:
492
+ * <ul><li>Consistency: Imported parameters that are irrelevant
493
+ * for the implementation might be silently dropped. If dropped,
494
+ * the current function does not have access to them,
495
+ * and therefore cannot check them. See mbedtls_rsa_complete().
496
+ * If you want to check the consistency of the entire
497
+ * content of a PKCS1-encoded RSA private key, for example, you
498
+ * should use mbedtls_rsa_validate_params() before setting
499
+ * up the RSA context.
500
+ * Additionally, if the implementation performs empirical checks,
501
+ * these checks substantiate but do not guarantee consistency.</li>
502
+ * <li>Quality: This function is not expected to perform
503
+ * extended quality assessments like checking that the prime
504
+ * factors are safe. Additionally, it is the responsibility of the
505
+ * user to ensure the trustworthiness of the source of his RSA
506
+ * parameters, which goes beyond what is effectively checkable
507
+ * by the library.</li></ul>
508
+ *
509
+ * \param ctx The initialized RSA context to check.
510
+ *
511
+ * \return \c 0 on success.
512
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
513
+ */
514
+ int mbedtls_rsa_check_privkey(const mbedtls_rsa_context *ctx);
515
+
516
+ /**
517
+ * \brief This function checks a public-private RSA key pair.
518
+ *
519
+ * It checks each of the contexts, and makes sure they match.
520
+ *
521
+ * \param pub The initialized RSA context holding the public key.
522
+ * \param prv The initialized RSA context holding the private key.
523
+ *
524
+ * \return \c 0 on success.
525
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
526
+ */
527
+ int mbedtls_rsa_check_pub_priv(const mbedtls_rsa_context *pub,
528
+ const mbedtls_rsa_context *prv);
529
+
530
+ /**
531
+ * \brief This function performs an RSA public key operation.
532
+ *
533
+ * \param ctx The initialized RSA context to use.
534
+ * \param input The input buffer. This must be a readable buffer
535
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
536
+ * for an 2048-bit RSA modulus.
537
+ * \param output The output buffer. This must be a writable buffer
538
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
539
+ * for an 2048-bit RSA modulus.
540
+ *
541
+ * \note This function does not handle message padding.
542
+ *
543
+ * \note Make sure to set \p input[0] = 0 or ensure that
544
+ * input is smaller than \c N.
545
+ *
546
+ * \return \c 0 on success.
547
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
548
+ */
549
+ int mbedtls_rsa_public(mbedtls_rsa_context *ctx,
550
+ const unsigned char *input,
551
+ unsigned char *output);
552
+
553
+ /**
554
+ * \brief This function performs an RSA private key operation.
555
+ *
556
+ * \note Blinding is used if and only if a PRNG is provided.
557
+ *
558
+ * \note If blinding is used, both the base of exponentiation
559
+ * and the exponent are blinded, providing protection
560
+ * against some side-channel attacks.
561
+ *
562
+ * \warning It is deprecated and a security risk to not provide
563
+ * a PRNG here and thereby prevent the use of blinding.
564
+ * Future versions of the library may enforce the presence
565
+ * of a PRNG.
566
+ *
567
+ * \param ctx The initialized RSA context to use.
568
+ * \param f_rng The RNG function, used for blinding. It is mandatory.
569
+ * \param p_rng The RNG context to pass to \p f_rng. This may be \c NULL
570
+ * if \p f_rng doesn't need a context.
571
+ * \param input The input buffer. This must be a readable buffer
572
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
573
+ * for an 2048-bit RSA modulus.
574
+ * \param output The output buffer. This must be a writable buffer
575
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
576
+ * for an 2048-bit RSA modulus.
577
+ *
578
+ * \return \c 0 on success.
579
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
580
+ *
581
+ */
582
+ int mbedtls_rsa_private(mbedtls_rsa_context *ctx,
583
+ int (*f_rng)(void *, unsigned char *, size_t),
584
+ void *p_rng,
585
+ const unsigned char *input,
586
+ unsigned char *output);
587
+
588
+ /**
589
+ * \brief This function adds the message padding, then performs an RSA
590
+ * operation.
591
+ *
592
+ * It is the generic wrapper for performing a PKCS#1 encryption
593
+ * operation.
594
+ *
595
+ * \param ctx The initialized RSA context to use.
596
+ * \param f_rng The RNG to use. It is used for padding generation
597
+ * and it is mandatory.
598
+ * \param p_rng The RNG context to be passed to \p f_rng. May be
599
+ * \c NULL if \p f_rng doesn't need a context argument.
600
+ * \param ilen The length of the plaintext in Bytes.
601
+ * \param input The input data to encrypt. This must be a readable
602
+ * buffer of size \p ilen Bytes. It may be \c NULL if
603
+ * `ilen == 0`.
604
+ * \param output The output buffer. This must be a writable buffer
605
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
606
+ * for an 2048-bit RSA modulus.
607
+ *
608
+ * \return \c 0 on success.
609
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
610
+ */
611
+ int mbedtls_rsa_pkcs1_encrypt(mbedtls_rsa_context *ctx,
612
+ int (*f_rng)(void *, unsigned char *, size_t),
613
+ void *p_rng,
614
+ size_t ilen,
615
+ const unsigned char *input,
616
+ unsigned char *output);
617
+
618
+ /**
619
+ * \brief This function performs a PKCS#1 v1.5 encryption operation
620
+ * (RSAES-PKCS1-v1_5-ENCRYPT).
621
+ *
622
+ * \param ctx The initialized RSA context to use.
623
+ * \param f_rng The RNG function to use. It is mandatory and used for
624
+ * padding generation.
625
+ * \param p_rng The RNG context to be passed to \p f_rng. This may
626
+ * be \c NULL if \p f_rng doesn't need a context argument.
627
+ * \param ilen The length of the plaintext in Bytes.
628
+ * \param input The input data to encrypt. This must be a readable
629
+ * buffer of size \p ilen Bytes. It may be \c NULL if
630
+ * `ilen == 0`.
631
+ * \param output The output buffer. This must be a writable buffer
632
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
633
+ * for an 2048-bit RSA modulus.
634
+ *
635
+ * \return \c 0 on success.
636
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
637
+ */
638
+ int mbedtls_rsa_rsaes_pkcs1_v15_encrypt(mbedtls_rsa_context *ctx,
639
+ int (*f_rng)(void *, unsigned char *, size_t),
640
+ void *p_rng,
641
+ size_t ilen,
642
+ const unsigned char *input,
643
+ unsigned char *output);
644
+
645
+ /**
646
+ * \brief This function performs a PKCS#1 v2.1 OAEP encryption
647
+ * operation (RSAES-OAEP-ENCRYPT).
648
+ *
649
+ * \note The output buffer must be as large as the size
650
+ * of ctx->N. For example, 128 Bytes if RSA-1024 is used.
651
+ *
652
+ * \param ctx The initialized RSA context to use.
653
+ * \param f_rng The RNG function to use. This is needed for padding
654
+ * generation and is mandatory.
655
+ * \param p_rng The RNG context to be passed to \p f_rng. This may
656
+ * be \c NULL if \p f_rng doesn't need a context argument.
657
+ * \param label The buffer holding the custom label to use.
658
+ * This must be a readable buffer of length \p label_len
659
+ * Bytes. It may be \c NULL if \p label_len is \c 0.
660
+ * \param label_len The length of the label in Bytes.
661
+ * \param ilen The length of the plaintext buffer \p input in Bytes.
662
+ * \param input The input data to encrypt. This must be a readable
663
+ * buffer of size \p ilen Bytes. It may be \c NULL if
664
+ * `ilen == 0`.
665
+ * \param output The output buffer. This must be a writable buffer
666
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
667
+ * for an 2048-bit RSA modulus.
668
+ *
669
+ * \return \c 0 on success.
670
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
671
+ */
672
+ int mbedtls_rsa_rsaes_oaep_encrypt(mbedtls_rsa_context *ctx,
673
+ int (*f_rng)(void *, unsigned char *, size_t),
674
+ void *p_rng,
675
+ const unsigned char *label, size_t label_len,
676
+ size_t ilen,
677
+ const unsigned char *input,
678
+ unsigned char *output);
679
+
680
+ /**
681
+ * \brief This function performs an RSA operation, then removes the
682
+ * message padding.
683
+ *
684
+ * It is the generic wrapper for performing a PKCS#1 decryption
685
+ * operation.
686
+ *
687
+ * \note The output buffer length \c output_max_len should be
688
+ * as large as the size \p ctx->len of \p ctx->N (for example,
689
+ * 128 Bytes if RSA-1024 is used) to be able to hold an
690
+ * arbitrary decrypted message. If it is not large enough to
691
+ * hold the decryption of the particular ciphertext provided,
692
+ * the function returns \c MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE.
693
+ *
694
+ * \param ctx The initialized RSA context to use.
695
+ * \param f_rng The RNG function. This is used for blinding and is
696
+ * mandatory; see mbedtls_rsa_private() for more.
697
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be
698
+ * \c NULL if \p f_rng doesn't need a context.
699
+ * \param olen The address at which to store the length of
700
+ * the plaintext. This must not be \c NULL.
701
+ * \param input The ciphertext buffer. This must be a readable buffer
702
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
703
+ * for an 2048-bit RSA modulus.
704
+ * \param output The buffer used to hold the plaintext. This must
705
+ * be a writable buffer of length \p output_max_len Bytes.
706
+ * \param output_max_len The length in Bytes of the output buffer \p output.
707
+ *
708
+ * \return \c 0 on success.
709
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
710
+ */
711
+ int mbedtls_rsa_pkcs1_decrypt(mbedtls_rsa_context *ctx,
712
+ int (*f_rng)(void *, unsigned char *, size_t),
713
+ void *p_rng,
714
+ size_t *olen,
715
+ const unsigned char *input,
716
+ unsigned char *output,
717
+ size_t output_max_len);
718
+
719
+ /**
720
+ * \brief This function performs a PKCS#1 v1.5 decryption
721
+ * operation (RSAES-PKCS1-v1_5-DECRYPT).
722
+ *
723
+ * \note The output buffer length \c output_max_len should be
724
+ * as large as the size \p ctx->len of \p ctx->N, for example,
725
+ * 128 Bytes if RSA-1024 is used, to be able to hold an
726
+ * arbitrary decrypted message. If it is not large enough to
727
+ * hold the decryption of the particular ciphertext provided,
728
+ * the function returns #MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE.
729
+ *
730
+ * \param ctx The initialized RSA context to use.
731
+ * \param f_rng The RNG function. This is used for blinding and is
732
+ * mandatory; see mbedtls_rsa_private() for more.
733
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be
734
+ * \c NULL if \p f_rng doesn't need a context.
735
+ * \param olen The address at which to store the length of
736
+ * the plaintext. This must not be \c NULL.
737
+ * \param input The ciphertext buffer. This must be a readable buffer
738
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
739
+ * for an 2048-bit RSA modulus.
740
+ * \param output The buffer used to hold the plaintext. This must
741
+ * be a writable buffer of length \p output_max_len Bytes.
742
+ * \param output_max_len The length in Bytes of the output buffer \p output.
743
+ *
744
+ * \return \c 0 on success.
745
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
746
+ *
747
+ */
748
+ int mbedtls_rsa_rsaes_pkcs1_v15_decrypt(mbedtls_rsa_context *ctx,
749
+ int (*f_rng)(void *, unsigned char *, size_t),
750
+ void *p_rng,
751
+ size_t *olen,
752
+ const unsigned char *input,
753
+ unsigned char *output,
754
+ size_t output_max_len);
755
+
756
+ /**
757
+ * \brief This function performs a PKCS#1 v2.1 OAEP decryption
758
+ * operation (RSAES-OAEP-DECRYPT).
759
+ *
760
+ * \note The output buffer length \c output_max_len should be
761
+ * as large as the size \p ctx->len of \p ctx->N, for
762
+ * example, 128 Bytes if RSA-1024 is used, to be able to
763
+ * hold an arbitrary decrypted message. If it is not
764
+ * large enough to hold the decryption of the particular
765
+ * ciphertext provided, the function returns
766
+ * #MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE.
767
+ *
768
+ * \param ctx The initialized RSA context to use.
769
+ * \param f_rng The RNG function. This is used for blinding and is
770
+ * mandatory.
771
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be
772
+ * \c NULL if \p f_rng doesn't need a context.
773
+ * \param label The buffer holding the custom label to use.
774
+ * This must be a readable buffer of length \p label_len
775
+ * Bytes. It may be \c NULL if \p label_len is \c 0.
776
+ * \param label_len The length of the label in Bytes.
777
+ * \param olen The address at which to store the length of
778
+ * the plaintext. This must not be \c NULL.
779
+ * \param input The ciphertext buffer. This must be a readable buffer
780
+ * of length \c ctx->len Bytes. For example, \c 256 Bytes
781
+ * for an 2048-bit RSA modulus.
782
+ * \param output The buffer used to hold the plaintext. This must
783
+ * be a writable buffer of length \p output_max_len Bytes.
784
+ * \param output_max_len The length in Bytes of the output buffer \p output.
785
+ *
786
+ * \return \c 0 on success.
787
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
788
+ */
789
+ int mbedtls_rsa_rsaes_oaep_decrypt(mbedtls_rsa_context *ctx,
790
+ int (*f_rng)(void *, unsigned char *, size_t),
791
+ void *p_rng,
792
+ const unsigned char *label, size_t label_len,
793
+ size_t *olen,
794
+ const unsigned char *input,
795
+ unsigned char *output,
796
+ size_t output_max_len);
797
+
798
+ /**
799
+ * \brief This function performs a private RSA operation to sign
800
+ * a message digest using PKCS#1.
801
+ *
802
+ * It is the generic wrapper for performing a PKCS#1
803
+ * signature.
804
+ *
805
+ * \note The \p sig buffer must be as large as the size
806
+ * of \p ctx->N. For example, 128 Bytes if RSA-1024 is used.
807
+ *
808
+ * \note For PKCS#1 v2.1 encoding, see comments on
809
+ * mbedtls_rsa_rsassa_pss_sign() for details on
810
+ * \p md_alg and \p hash_id.
811
+ *
812
+ * \param ctx The initialized RSA context to use.
813
+ * \param f_rng The RNG function to use. This is mandatory and
814
+ * must not be \c NULL.
815
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be \c NULL
816
+ * if \p f_rng doesn't need a context argument.
817
+ * \param md_alg The message-digest algorithm used to hash the original data.
818
+ * Use #MBEDTLS_MD_NONE for signing raw data.
819
+ * \param hashlen The length of the message digest or raw data in Bytes.
820
+ * If \p md_alg is not #MBEDTLS_MD_NONE, this must match the
821
+ * output length of the corresponding hash algorithm.
822
+ * \param hash The buffer holding the message digest or raw data.
823
+ * This must be a readable buffer of at least \p hashlen Bytes.
824
+ * \param sig The buffer to hold the signature. This must be a writable
825
+ * buffer of length \c ctx->len Bytes. For example, \c 256 Bytes
826
+ * for an 2048-bit RSA modulus. A buffer length of
827
+ * #MBEDTLS_MPI_MAX_SIZE is always safe.
828
+ *
829
+ * \return \c 0 if the signing operation was successful.
830
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
831
+ */
832
+ int mbedtls_rsa_pkcs1_sign(mbedtls_rsa_context *ctx,
833
+ int (*f_rng)(void *, unsigned char *, size_t),
834
+ void *p_rng,
835
+ mbedtls_md_type_t md_alg,
836
+ unsigned int hashlen,
837
+ const unsigned char *hash,
838
+ unsigned char *sig);
839
+
840
+ /**
841
+ * \brief This function performs a PKCS#1 v1.5 signature
842
+ * operation (RSASSA-PKCS1-v1_5-SIGN).
843
+ *
844
+ * \param ctx The initialized RSA context to use.
845
+ * \param f_rng The RNG function. This is used for blinding and is
846
+ * mandatory; see mbedtls_rsa_private() for more.
847
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be \c NULL
848
+ * if \p f_rng doesn't need a context argument.
849
+ * \param md_alg The message-digest algorithm used to hash the original data.
850
+ * Use #MBEDTLS_MD_NONE for signing raw data.
851
+ * \param hashlen The length of the message digest or raw data in Bytes.
852
+ * If \p md_alg is not #MBEDTLS_MD_NONE, this must match the
853
+ * output length of the corresponding hash algorithm.
854
+ * \param hash The buffer holding the message digest or raw data.
855
+ * This must be a readable buffer of at least \p hashlen Bytes.
856
+ * \param sig The buffer to hold the signature. This must be a writable
857
+ * buffer of length \c ctx->len Bytes. For example, \c 256 Bytes
858
+ * for an 2048-bit RSA modulus. A buffer length of
859
+ * #MBEDTLS_MPI_MAX_SIZE is always safe.
860
+ *
861
+ * \return \c 0 if the signing operation was successful.
862
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
863
+ */
864
+ int mbedtls_rsa_rsassa_pkcs1_v15_sign(mbedtls_rsa_context *ctx,
865
+ int (*f_rng)(void *, unsigned char *, size_t),
866
+ void *p_rng,
867
+ mbedtls_md_type_t md_alg,
868
+ unsigned int hashlen,
869
+ const unsigned char *hash,
870
+ unsigned char *sig);
871
+
872
+ /**
873
+ * \brief This function performs a PKCS#1 v2.1 PSS signature
874
+ * operation (RSASSA-PSS-SIGN).
875
+ *
876
+ * \note The \c hash_id set in \p ctx by calling
877
+ * mbedtls_rsa_set_padding() selects the hash used for the
878
+ * encoding operation and for the mask generation function
879
+ * (MGF1). For more details on the encoding operation and the
880
+ * mask generation function, consult <em>RFC-3447: Public-Key
881
+ * Cryptography Standards (PKCS) #1 v2.1: RSA Cryptography
882
+ * Specifications</em>.
883
+ *
884
+ * \note This function enforces that the provided salt length complies
885
+ * with FIPS 186-4 §5.5 (e) and RFC 8017 (PKCS#1 v2.2) §9.1.1
886
+ * step 3. The constraint is that the hash length plus the salt
887
+ * length plus 2 bytes must be at most the key length. If this
888
+ * constraint is not met, this function returns
889
+ * #MBEDTLS_ERR_RSA_BAD_INPUT_DATA.
890
+ *
891
+ * \param ctx The initialized RSA context to use.
892
+ * \param f_rng The RNG function. It is mandatory and must not be \c NULL.
893
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be \c NULL
894
+ * if \p f_rng doesn't need a context argument.
895
+ * \param md_alg The message-digest algorithm used to hash the original data.
896
+ * Use #MBEDTLS_MD_NONE for signing raw data.
897
+ * \param hashlen The length of the message digest or raw data in Bytes.
898
+ * If \p md_alg is not #MBEDTLS_MD_NONE, this must match the
899
+ * output length of the corresponding hash algorithm.
900
+ * \param hash The buffer holding the message digest or raw data.
901
+ * This must be a readable buffer of at least \p hashlen Bytes.
902
+ * \param saltlen The length of the salt that should be used.
903
+ * If passed #MBEDTLS_RSA_SALT_LEN_ANY, the function will use
904
+ * the largest possible salt length up to the hash length,
905
+ * which is the largest permitted by some standards including
906
+ * FIPS 186-4 §5.5.
907
+ * \param sig The buffer to hold the signature. This must be a writable
908
+ * buffer of length \c ctx->len Bytes. For example, \c 256 Bytes
909
+ * for an 2048-bit RSA modulus. A buffer length of
910
+ * #MBEDTLS_MPI_MAX_SIZE is always safe.
911
+ *
912
+ * \return \c 0 if the signing operation was successful.
913
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
914
+ */
915
+ int mbedtls_rsa_rsassa_pss_sign_ext(mbedtls_rsa_context *ctx,
916
+ int (*f_rng)(void *, unsigned char *, size_t),
917
+ void *p_rng,
918
+ mbedtls_md_type_t md_alg,
919
+ unsigned int hashlen,
920
+ const unsigned char *hash,
921
+ int saltlen,
922
+ unsigned char *sig);
923
+
924
+ /**
925
+ * \brief This function performs a PKCS#1 v2.1 PSS signature
926
+ * operation (RSASSA-PSS-SIGN).
927
+ *
928
+ * \note The \c hash_id set in \p ctx by calling
929
+ * mbedtls_rsa_set_padding() selects the hash used for the
930
+ * encoding operation and for the mask generation function
931
+ * (MGF1). For more details on the encoding operation and the
932
+ * mask generation function, consult <em>RFC-3447: Public-Key
933
+ * Cryptography Standards (PKCS) #1 v2.1: RSA Cryptography
934
+ * Specifications</em>.
935
+ *
936
+ * \note This function always uses the maximum possible salt size,
937
+ * up to the length of the payload hash. This choice of salt
938
+ * size complies with FIPS 186-4 §5.5 (e) and RFC 8017 (PKCS#1
939
+ * v2.2) §9.1.1 step 3. Furthermore this function enforces a
940
+ * minimum salt size which is the hash size minus 2 bytes. If
941
+ * this minimum size is too large given the key size (the salt
942
+ * size, plus the hash size, plus 2 bytes must be no more than
943
+ * the key size in bytes), this function returns
944
+ * #MBEDTLS_ERR_RSA_BAD_INPUT_DATA.
945
+ *
946
+ * \param ctx The initialized RSA context to use.
947
+ * \param f_rng The RNG function. It is mandatory and must not be \c NULL.
948
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be \c NULL
949
+ * if \p f_rng doesn't need a context argument.
950
+ * \param md_alg The message-digest algorithm used to hash the original data.
951
+ * Use #MBEDTLS_MD_NONE for signing raw data.
952
+ * \param hashlen The length of the message digest or raw data in Bytes.
953
+ * If \p md_alg is not #MBEDTLS_MD_NONE, this must match the
954
+ * output length of the corresponding hash algorithm.
955
+ * \param hash The buffer holding the message digest or raw data.
956
+ * This must be a readable buffer of at least \p hashlen Bytes.
957
+ * \param sig The buffer to hold the signature. This must be a writable
958
+ * buffer of length \c ctx->len Bytes. For example, \c 256 Bytes
959
+ * for an 2048-bit RSA modulus. A buffer length of
960
+ * #MBEDTLS_MPI_MAX_SIZE is always safe.
961
+ *
962
+ * \return \c 0 if the signing operation was successful.
963
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
964
+ */
965
+ int mbedtls_rsa_rsassa_pss_sign(mbedtls_rsa_context *ctx,
966
+ int (*f_rng)(void *, unsigned char *, size_t),
967
+ void *p_rng,
968
+ mbedtls_md_type_t md_alg,
969
+ unsigned int hashlen,
970
+ const unsigned char *hash,
971
+ unsigned char *sig);
972
+
973
+ /**
974
+ * \brief This function performs a public RSA operation and checks
975
+ * the message digest.
976
+ *
977
+ * This is the generic wrapper for performing a PKCS#1
978
+ * verification.
979
+ *
980
+ * \note For PKCS#1 v2.1 encoding, see comments on
981
+ * mbedtls_rsa_rsassa_pss_verify() about \c md_alg and
982
+ * \c hash_id.
983
+ *
984
+ * \param ctx The initialized RSA public key context to use.
985
+ * \param md_alg The message-digest algorithm used to hash the original data.
986
+ * Use #MBEDTLS_MD_NONE for signing raw data.
987
+ * \param hashlen The length of the message digest or raw data in Bytes.
988
+ * If \p md_alg is not #MBEDTLS_MD_NONE, this must match the
989
+ * output length of the corresponding hash algorithm.
990
+ * \param hash The buffer holding the message digest or raw data.
991
+ * This must be a readable buffer of at least \p hashlen Bytes.
992
+ * \param sig The buffer holding the signature. This must be a readable
993
+ * buffer of length \c ctx->len Bytes. For example, \c 256 Bytes
994
+ * for an 2048-bit RSA modulus.
995
+ *
996
+ * \return \c 0 if the verify operation was successful.
997
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
998
+ */
999
+ int mbedtls_rsa_pkcs1_verify(mbedtls_rsa_context *ctx,
1000
+ mbedtls_md_type_t md_alg,
1001
+ unsigned int hashlen,
1002
+ const unsigned char *hash,
1003
+ const unsigned char *sig);
1004
+
1005
+ /**
1006
+ * \brief This function performs a PKCS#1 v1.5 verification
1007
+ * operation (RSASSA-PKCS1-v1_5-VERIFY).
1008
+ *
1009
+ * \param ctx The initialized RSA public key context to use.
1010
+ * \param md_alg The message-digest algorithm used to hash the original data.
1011
+ * Use #MBEDTLS_MD_NONE for signing raw data.
1012
+ * \param hashlen The length of the message digest or raw data in Bytes.
1013
+ * If \p md_alg is not #MBEDTLS_MD_NONE, this must match the
1014
+ * output length of the corresponding hash algorithm.
1015
+ * \param hash The buffer holding the message digest or raw data.
1016
+ * This must be a readable buffer of at least \p hashlen Bytes.
1017
+ * \param sig The buffer holding the signature. This must be a readable
1018
+ * buffer of length \c ctx->len Bytes. For example, \c 256 Bytes
1019
+ * for an 2048-bit RSA modulus.
1020
+ *
1021
+ * \return \c 0 if the verify operation was successful.
1022
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
1023
+ */
1024
+ int mbedtls_rsa_rsassa_pkcs1_v15_verify(mbedtls_rsa_context *ctx,
1025
+ mbedtls_md_type_t md_alg,
1026
+ unsigned int hashlen,
1027
+ const unsigned char *hash,
1028
+ const unsigned char *sig);
1029
+
1030
+ /**
1031
+ * \brief This function performs a PKCS#1 v2.1 PSS verification
1032
+ * operation (RSASSA-PSS-VERIFY).
1033
+ *
1034
+ * \note The \c hash_id set in \p ctx by calling
1035
+ * mbedtls_rsa_set_padding() selects the hash used for the
1036
+ * encoding operation and for the mask generation function
1037
+ * (MGF1). For more details on the encoding operation and the
1038
+ * mask generation function, consult <em>RFC-3447: Public-Key
1039
+ * Cryptography Standards (PKCS) #1 v2.1: RSA Cryptography
1040
+ * Specifications</em>. If the \c hash_id set in \p ctx by
1041
+ * mbedtls_rsa_set_padding() is #MBEDTLS_MD_NONE, the \p md_alg
1042
+ * parameter is used.
1043
+ *
1044
+ * \param ctx The initialized RSA public key context to use.
1045
+ * \param md_alg The message-digest algorithm used to hash the original data.
1046
+ * Use #MBEDTLS_MD_NONE for signing raw data.
1047
+ * \param hashlen The length of the message digest or raw data in Bytes.
1048
+ * If \p md_alg is not #MBEDTLS_MD_NONE, this must match the
1049
+ * output length of the corresponding hash algorithm.
1050
+ * \param hash The buffer holding the message digest or raw data.
1051
+ * This must be a readable buffer of at least \p hashlen Bytes.
1052
+ * \param sig The buffer holding the signature. This must be a readable
1053
+ * buffer of length \c ctx->len Bytes. For example, \c 256 Bytes
1054
+ * for an 2048-bit RSA modulus.
1055
+ *
1056
+ * \return \c 0 if the verify operation was successful.
1057
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
1058
+ */
1059
+ int mbedtls_rsa_rsassa_pss_verify(mbedtls_rsa_context *ctx,
1060
+ mbedtls_md_type_t md_alg,
1061
+ unsigned int hashlen,
1062
+ const unsigned char *hash,
1063
+ const unsigned char *sig);
1064
+
1065
+ /**
1066
+ * \brief This function performs a PKCS#1 v2.1 PSS verification
1067
+ * operation (RSASSA-PSS-VERIFY).
1068
+ *
1069
+ * \note The \p sig buffer must be as large as the size
1070
+ * of \p ctx->N. For example, 128 Bytes if RSA-1024 is used.
1071
+ *
1072
+ * \note The \c hash_id set in \p ctx by mbedtls_rsa_set_padding() is
1073
+ * ignored.
1074
+ *
1075
+ * \param ctx The initialized RSA public key context to use.
1076
+ * \param md_alg The message-digest algorithm used to hash the original data.
1077
+ * Use #MBEDTLS_MD_NONE for signing raw data.
1078
+ * \param hashlen The length of the message digest or raw data in Bytes.
1079
+ * If \p md_alg is not #MBEDTLS_MD_NONE, this must match the
1080
+ * output length of the corresponding hash algorithm.
1081
+ * \param hash The buffer holding the message digest or raw data.
1082
+ * This must be a readable buffer of at least \p hashlen Bytes.
1083
+ * \param mgf1_hash_id The message digest algorithm used for the
1084
+ * verification operation and the mask generation
1085
+ * function (MGF1). For more details on the encoding
1086
+ * operation and the mask generation function, consult
1087
+ * <em>RFC-3447: Public-Key Cryptography Standards
1088
+ * (PKCS) #1 v2.1: RSA Cryptography
1089
+ * Specifications</em>.
1090
+ * \param expected_salt_len The length of the salt used in padding. Use
1091
+ * #MBEDTLS_RSA_SALT_LEN_ANY to accept any salt length.
1092
+ * \param sig The buffer holding the signature. This must be a readable
1093
+ * buffer of length \c ctx->len Bytes. For example, \c 256 Bytes
1094
+ * for an 2048-bit RSA modulus.
1095
+ *
1096
+ * \return \c 0 if the verify operation was successful.
1097
+ * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure.
1098
+ */
1099
+ int mbedtls_rsa_rsassa_pss_verify_ext(mbedtls_rsa_context *ctx,
1100
+ mbedtls_md_type_t md_alg,
1101
+ unsigned int hashlen,
1102
+ const unsigned char *hash,
1103
+ mbedtls_md_type_t mgf1_hash_id,
1104
+ int expected_salt_len,
1105
+ const unsigned char *sig);
1106
+
1107
+ /**
1108
+ * \brief This function copies the components of an RSA context.
1109
+ *
1110
+ * \param dst The destination context. This must be initialized.
1111
+ * \param src The source context. This must be initialized.
1112
+ *
1113
+ * \return \c 0 on success.
1114
+ * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory allocation failure.
1115
+ */
1116
+ int mbedtls_rsa_copy(mbedtls_rsa_context *dst, const mbedtls_rsa_context *src);
1117
+
1118
+ /**
1119
+ * \brief This function frees the components of an RSA key.
1120
+ *
1121
+ * \param ctx The RSA context to free. May be \c NULL, in which case
1122
+ * this function is a no-op. If it is not \c NULL, it must
1123
+ * point to an initialized RSA context.
1124
+ */
1125
+ void mbedtls_rsa_free(mbedtls_rsa_context *ctx);
1126
+
1127
+ #if defined(MBEDTLS_SELF_TEST)
1128
+
1129
+ /**
1130
+ * \brief The RSA checkup routine.
1131
+ *
1132
+ * \return \c 0 on success.
1133
+ * \return \c 1 on failure.
1134
+ */
1135
+ int mbedtls_rsa_self_test(int verbose);
1136
+
1137
+ #endif /* MBEDTLS_SELF_TEST */
1138
+
1139
+ #ifdef __cplusplus
1140
+ }
1141
+ #endif
1142
+
1143
+ #endif /* rsa.h */