edhoc 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (657) hide show
  1. package/binding.gyp +64 -0
  2. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_decode.h +35 -0
  3. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_encode.h +35 -0
  4. package/external/libedhoc/backends/cbor/include/backend_cbor_bstr_type_types.h +34 -0
  5. package/external/libedhoc/backends/cbor/include/backend_cbor_ead_decode.h +35 -0
  6. package/external/libedhoc/backends/cbor/include/backend_cbor_ead_encode.h +35 -0
  7. package/external/libedhoc/backends/cbor/include/backend_cbor_edhoc_types.h +97 -0
  8. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_decode.h +35 -0
  9. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_encode.h +35 -0
  10. package/external/libedhoc/backends/cbor/include/backend_cbor_enc_structure_types.h +37 -0
  11. package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_decode.h +35 -0
  12. package/external/libedhoc/backends/cbor/include/backend_cbor_id_cred_x_encode.h +35 -0
  13. package/external/libedhoc/backends/cbor/include/backend_cbor_info_decode.h +35 -0
  14. package/external/libedhoc/backends/cbor/include/backend_cbor_info_encode.h +35 -0
  15. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_decode.h +35 -0
  16. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_encode.h +35 -0
  17. package/external/libedhoc/backends/cbor/include/backend_cbor_int_type_types.h +34 -0
  18. package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_decode.h +35 -0
  19. package/external/libedhoc/backends/cbor/include/backend_cbor_message_1_encode.h +35 -0
  20. package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_decode.h +35 -0
  21. package/external/libedhoc/backends/cbor/include/backend_cbor_message_2_encode.h +35 -0
  22. package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_decode.h +35 -0
  23. package/external/libedhoc/backends/cbor/include/backend_cbor_message_3_encode.h +35 -0
  24. package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_decode.h +35 -0
  25. package/external/libedhoc/backends/cbor/include/backend_cbor_message_4_encode.h +35 -0
  26. package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_decode.h +35 -0
  27. package/external/libedhoc/backends/cbor/include/backend_cbor_message_error_encode.h +35 -0
  28. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_decode.h +35 -0
  29. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_2_encode.h +35 -0
  30. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_decode.h +35 -0
  31. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_3_encode.h +35 -0
  32. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_decode.h +35 -0
  33. package/external/libedhoc/backends/cbor/include/backend_cbor_plaintext_4_encode.h +35 -0
  34. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_decode.h +35 -0
  35. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_encode.h +35 -0
  36. package/external/libedhoc/backends/cbor/include/backend_cbor_sig_structure_types.h +38 -0
  37. package/external/libedhoc/backends/cbor/include/backend_cbor_x509_types.h +170 -0
  38. package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_decode.c +59 -0
  39. package/external/libedhoc/backends/cbor/src/backend_cbor_bstr_type_encode.c +59 -0
  40. package/external/libedhoc/backends/cbor/src/backend_cbor_ead_decode.c +74 -0
  41. package/external/libedhoc/backends/cbor/src/backend_cbor_ead_encode.c +74 -0
  42. package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_decode.c +62 -0
  43. package/external/libedhoc/backends/cbor/src/backend_cbor_enc_structure_encode.c +62 -0
  44. package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_decode.c +141 -0
  45. package/external/libedhoc/backends/cbor/src/backend_cbor_id_cred_x_encode.c +141 -0
  46. package/external/libedhoc/backends/cbor/src/backend_cbor_info_decode.c +61 -0
  47. package/external/libedhoc/backends/cbor/src/backend_cbor_info_encode.c +61 -0
  48. package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_decode.c +59 -0
  49. package/external/libedhoc/backends/cbor/src/backend_cbor_int_type_encode.c +59 -0
  50. package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_decode.c +112 -0
  51. package/external/libedhoc/backends/cbor/src/backend_cbor_message_1_encode.c +112 -0
  52. package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_decode.c +59 -0
  53. package/external/libedhoc/backends/cbor/src/backend_cbor_message_2_encode.c +59 -0
  54. package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_decode.c +59 -0
  55. package/external/libedhoc/backends/cbor/src/backend_cbor_message_3_encode.c +59 -0
  56. package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_decode.c +59 -0
  57. package/external/libedhoc/backends/cbor/src/backend_cbor_message_4_encode.c +59 -0
  58. package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_decode.c +93 -0
  59. package/external/libedhoc/backends/cbor/src/backend_cbor_message_error_encode.c +93 -0
  60. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_decode.c +193 -0
  61. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_2_encode.c +194 -0
  62. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_decode.c +189 -0
  63. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_3_encode.c +189 -0
  64. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_decode.c +88 -0
  65. package/external/libedhoc/backends/cbor/src/backend_cbor_plaintext_4_encode.c +88 -0
  66. package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_decode.c +63 -0
  67. package/external/libedhoc/backends/cbor/src/backend_cbor_sig_structure_encode.c +63 -0
  68. package/external/libedhoc/externals/compact25519/src/c25519/c25519.c +126 -0
  69. package/external/libedhoc/externals/compact25519/src/c25519/c25519.h +49 -0
  70. package/external/libedhoc/externals/compact25519/src/c25519/ed25519.c +323 -0
  71. package/external/libedhoc/externals/compact25519/src/c25519/ed25519.h +84 -0
  72. package/external/libedhoc/externals/compact25519/src/c25519/edsign.c +171 -0
  73. package/external/libedhoc/externals/compact25519/src/c25519/edsign.h +53 -0
  74. package/external/libedhoc/externals/compact25519/src/c25519/f25519.c +330 -0
  75. package/external/libedhoc/externals/compact25519/src/c25519/f25519.h +98 -0
  76. package/external/libedhoc/externals/compact25519/src/c25519/fprime.c +226 -0
  77. package/external/libedhoc/externals/compact25519/src/c25519/fprime.h +81 -0
  78. package/external/libedhoc/externals/compact25519/src/c25519/sha512.c +230 -0
  79. package/external/libedhoc/externals/compact25519/src/c25519/sha512.h +54 -0
  80. package/external/libedhoc/externals/compact25519/src/compact_ed25519.c +46 -0
  81. package/external/libedhoc/externals/compact25519/src/compact_ed25519.h +110 -0
  82. package/external/libedhoc/externals/compact25519/src/compact_wipe.c +12 -0
  83. package/external/libedhoc/externals/compact25519/src/compact_wipe.h +14 -0
  84. package/external/libedhoc/externals/compact25519/src/compact_x25519.c +68 -0
  85. package/external/libedhoc/externals/compact25519/src/compact_x25519.h +101 -0
  86. package/external/libedhoc/externals/compact25519/test/pcg_random.h +25 -0
  87. package/external/libedhoc/externals/compact25519/test/run-all.c +178 -0
  88. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/Hacl_Curve25519.h +21 -0
  89. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/everest.h +234 -0
  90. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlib/FStar_UInt128.h +124 -0
  91. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.h +280 -0
  92. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlib.h +29 -0
  93. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/c_endianness.h +204 -0
  94. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/builtin.h +16 -0
  95. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/callconv.h +46 -0
  96. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/compat.h +34 -0
  97. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/debug.h +57 -0
  98. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/target.h +102 -0
  99. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/types.h +61 -0
  100. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/kremlin/internal/wasmsupport.h +5 -0
  101. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/vs2013/Hacl_Curve25519.h +21 -0
  102. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/vs2013/inttypes.h +36 -0
  103. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/vs2013/stdbool.h +31 -0
  104. package/external/libedhoc/externals/mbedtls/3rdparty/everest/include/everest/x25519.h +190 -0
  105. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/Hacl_Curve25519.c +760 -0
  106. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/Hacl_Curve25519_joined.c +50 -0
  107. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/everest.c +102 -0
  108. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/kremlib/FStar_UInt128_extracted.c +413 -0
  109. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/kremlib/FStar_UInt64_FStar_UInt32_FStar_UInt16_FStar_UInt8.c +100 -0
  110. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/legacy/Hacl_Curve25519.c +805 -0
  111. package/external/libedhoc/externals/mbedtls/3rdparty/everest/library/x25519.c +186 -0
  112. package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m/p256-m.c +1514 -0
  113. package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m/p256-m.h +135 -0
  114. package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m_driver_entrypoints.c +312 -0
  115. package/external/libedhoc/externals/mbedtls/3rdparty/p256-m/p256-m_driver_entrypoints.h +219 -0
  116. package/external/libedhoc/externals/mbedtls/configs/config-ccm-psk-dtls1_2.h +92 -0
  117. package/external/libedhoc/externals/mbedtls/configs/config-ccm-psk-tls1_2.h +83 -0
  118. package/external/libedhoc/externals/mbedtls/configs/config-no-entropy.h +73 -0
  119. package/external/libedhoc/externals/mbedtls/configs/config-suite-b.h +106 -0
  120. package/external/libedhoc/externals/mbedtls/configs/config-symmetric-only.h +77 -0
  121. package/external/libedhoc/externals/mbedtls/configs/config-thread.h +76 -0
  122. package/external/libedhoc/externals/mbedtls/configs/crypto-config-ccm-aes-sha256.h +25 -0
  123. package/external/libedhoc/externals/mbedtls/configs/crypto_config_profile_medium.h +136 -0
  124. package/external/libedhoc/externals/mbedtls/configs/tfm_mbedcrypto_config_profile_medium.h +609 -0
  125. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_encdec.h +54 -0
  126. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_hashing.h +30 -0
  127. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_mainpage.h +19 -0
  128. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_rng.h +27 -0
  129. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_ssltls.h +37 -0
  130. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_tcpip.h +32 -0
  131. package/external/libedhoc/externals/mbedtls/doxygen/input/doc_x509.h +31 -0
  132. package/external/libedhoc/externals/mbedtls/include/mbedtls/aes.h +627 -0
  133. package/external/libedhoc/externals/mbedtls/include/mbedtls/aria.h +341 -0
  134. package/external/libedhoc/externals/mbedtls/include/mbedtls/asn1.h +641 -0
  135. package/external/libedhoc/externals/mbedtls/include/mbedtls/asn1write.h +389 -0
  136. package/external/libedhoc/externals/mbedtls/include/mbedtls/base64.h +82 -0
  137. package/external/libedhoc/externals/mbedtls/include/mbedtls/bignum.h +1084 -0
  138. package/external/libedhoc/externals/mbedtls/include/mbedtls/build_info.h +146 -0
  139. package/external/libedhoc/externals/mbedtls/include/mbedtls/camellia.h +303 -0
  140. package/external/libedhoc/externals/mbedtls/include/mbedtls/ccm.h +518 -0
  141. package/external/libedhoc/externals/mbedtls/include/mbedtls/chacha20.h +202 -0
  142. package/external/libedhoc/externals/mbedtls/include/mbedtls/chachapoly.h +342 -0
  143. package/external/libedhoc/externals/mbedtls/include/mbedtls/check_config.h +1206 -0
  144. package/external/libedhoc/externals/mbedtls/include/mbedtls/cipher.h +1183 -0
  145. package/external/libedhoc/externals/mbedtls/include/mbedtls/cmac.h +246 -0
  146. package/external/libedhoc/externals/mbedtls/include/mbedtls/compat-2.x.h +46 -0
  147. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h +183 -0
  148. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h +877 -0
  149. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h +334 -0
  150. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h +142 -0
  151. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_ssl.h +76 -0
  152. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_adjust_x509.h +25 -0
  153. package/external/libedhoc/externals/mbedtls/include/mbedtls/config_psa.h +55 -0
  154. package/external/libedhoc/externals/mbedtls/include/mbedtls/constant_time.h +36 -0
  155. package/external/libedhoc/externals/mbedtls/include/mbedtls/ctr_drbg.h +564 -0
  156. package/external/libedhoc/externals/mbedtls/include/mbedtls/debug.h +308 -0
  157. package/external/libedhoc/externals/mbedtls/include/mbedtls/des.h +385 -0
  158. package/external/libedhoc/externals/mbedtls/include/mbedtls/dhm.h +972 -0
  159. package/external/libedhoc/externals/mbedtls/include/mbedtls/ecdh.h +441 -0
  160. package/external/libedhoc/externals/mbedtls/include/mbedtls/ecdsa.h +671 -0
  161. package/external/libedhoc/externals/mbedtls/include/mbedtls/ecjpake.h +298 -0
  162. package/external/libedhoc/externals/mbedtls/include/mbedtls/ecp.h +1362 -0
  163. package/external/libedhoc/externals/mbedtls/include/mbedtls/entropy.h +273 -0
  164. package/external/libedhoc/externals/mbedtls/include/mbedtls/error.h +201 -0
  165. package/external/libedhoc/externals/mbedtls/include/mbedtls/gcm.h +370 -0
  166. package/external/libedhoc/externals/mbedtls/include/mbedtls/hkdf.h +124 -0
  167. package/external/libedhoc/externals/mbedtls/include/mbedtls/hmac_drbg.h +434 -0
  168. package/external/libedhoc/externals/mbedtls/include/mbedtls/lms.h +440 -0
  169. package/external/libedhoc/externals/mbedtls/include/mbedtls/mbedtls_config.h +4116 -0
  170. package/external/libedhoc/externals/mbedtls/include/mbedtls/md.h +640 -0
  171. package/external/libedhoc/externals/mbedtls/include/mbedtls/md5.h +190 -0
  172. package/external/libedhoc/externals/mbedtls/include/mbedtls/memory_buffer_alloc.h +142 -0
  173. package/external/libedhoc/externals/mbedtls/include/mbedtls/net_sockets.h +299 -0
  174. package/external/libedhoc/externals/mbedtls/include/mbedtls/nist_kw.h +166 -0
  175. package/external/libedhoc/externals/mbedtls/include/mbedtls/oid.h +722 -0
  176. package/external/libedhoc/externals/mbedtls/include/mbedtls/pem.h +160 -0
  177. package/external/libedhoc/externals/mbedtls/include/mbedtls/pk.h +1091 -0
  178. package/external/libedhoc/externals/mbedtls/include/mbedtls/pkcs12.h +186 -0
  179. package/external/libedhoc/externals/mbedtls/include/mbedtls/pkcs5.h +197 -0
  180. package/external/libedhoc/externals/mbedtls/include/mbedtls/pkcs7.h +241 -0
  181. package/external/libedhoc/externals/mbedtls/include/mbedtls/platform.h +485 -0
  182. package/external/libedhoc/externals/mbedtls/include/mbedtls/platform_time.h +79 -0
  183. package/external/libedhoc/externals/mbedtls/include/mbedtls/platform_util.h +201 -0
  184. package/external/libedhoc/externals/mbedtls/include/mbedtls/poly1305.h +168 -0
  185. package/external/libedhoc/externals/mbedtls/include/mbedtls/private_access.h +20 -0
  186. package/external/libedhoc/externals/mbedtls/include/mbedtls/psa_util.h +104 -0
  187. package/external/libedhoc/externals/mbedtls/include/mbedtls/ripemd160.h +136 -0
  188. package/external/libedhoc/externals/mbedtls/include/mbedtls/rsa.h +1143 -0
  189. package/external/libedhoc/externals/mbedtls/include/mbedtls/sha1.h +219 -0
  190. package/external/libedhoc/externals/mbedtls/include/mbedtls/sha256.h +198 -0
  191. package/external/libedhoc/externals/mbedtls/include/mbedtls/sha3.h +172 -0
  192. package/external/libedhoc/externals/mbedtls/include/mbedtls/sha512.h +208 -0
  193. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl.h +5369 -0
  194. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_cache.h +187 -0
  195. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_ciphersuites.h +616 -0
  196. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_cookie.h +106 -0
  197. package/external/libedhoc/externals/mbedtls/include/mbedtls/ssl_ticket.h +181 -0
  198. package/external/libedhoc/externals/mbedtls/include/mbedtls/threading.h +105 -0
  199. package/external/libedhoc/externals/mbedtls/include/mbedtls/timing.h +94 -0
  200. package/external/libedhoc/externals/mbedtls/include/mbedtls/version.h +78 -0
  201. package/external/libedhoc/externals/mbedtls/include/mbedtls/x509.h +550 -0
  202. package/external/libedhoc/externals/mbedtls/include/mbedtls/x509_crl.h +184 -0
  203. package/external/libedhoc/externals/mbedtls/include/mbedtls/x509_crt.h +1196 -0
  204. package/external/libedhoc/externals/mbedtls/include/mbedtls/x509_csr.h +319 -0
  205. package/external/libedhoc/externals/mbedtls/include/psa/build_info.h +20 -0
  206. package/external/libedhoc/externals/mbedtls/include/psa/crypto.h +4685 -0
  207. package/external/libedhoc/externals/mbedtls/include/psa/crypto_adjust_auto_enabled.h +21 -0
  208. package/external/libedhoc/externals/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h +91 -0
  209. package/external/libedhoc/externals/mbedtls/include/psa/crypto_adjust_config_synonyms.h +45 -0
  210. package/external/libedhoc/externals/mbedtls/include/psa/crypto_builtin_composites.h +210 -0
  211. package/external/libedhoc/externals/mbedtls/include/psa/crypto_builtin_key_derivation.h +118 -0
  212. package/external/libedhoc/externals/mbedtls/include/psa/crypto_builtin_primitives.h +114 -0
  213. package/external/libedhoc/externals/mbedtls/include/psa/crypto_compat.h +153 -0
  214. package/external/libedhoc/externals/mbedtls/include/psa/crypto_config.h +153 -0
  215. package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_common.h +44 -0
  216. package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_contexts_composites.h +151 -0
  217. package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h +52 -0
  218. package/external/libedhoc/externals/mbedtls/include/psa/crypto_driver_contexts_primitives.h +105 -0
  219. package/external/libedhoc/externals/mbedtls/include/psa/crypto_extra.h +2064 -0
  220. package/external/libedhoc/externals/mbedtls/include/psa/crypto_legacy.h +88 -0
  221. package/external/libedhoc/externals/mbedtls/include/psa/crypto_platform.h +92 -0
  222. package/external/libedhoc/externals/mbedtls/include/psa/crypto_se_driver.h +1383 -0
  223. package/external/libedhoc/externals/mbedtls/include/psa/crypto_sizes.h +1282 -0
  224. package/external/libedhoc/externals/mbedtls/include/psa/crypto_struct.h +460 -0
  225. package/external/libedhoc/externals/mbedtls/include/psa/crypto_types.h +453 -0
  226. package/external/libedhoc/externals/mbedtls/include/psa/crypto_values.h +2756 -0
  227. package/external/libedhoc/externals/mbedtls/library/aes.c +2315 -0
  228. package/external/libedhoc/externals/mbedtls/library/aesce.c +503 -0
  229. package/external/libedhoc/externals/mbedtls/library/aesce.h +121 -0
  230. package/external/libedhoc/externals/mbedtls/library/aesni.c +802 -0
  231. package/external/libedhoc/externals/mbedtls/library/aesni.h +158 -0
  232. package/external/libedhoc/externals/mbedtls/library/alignment.h +509 -0
  233. package/external/libedhoc/externals/mbedtls/library/aria.c +991 -0
  234. package/external/libedhoc/externals/mbedtls/library/asn1parse.c +467 -0
  235. package/external/libedhoc/externals/mbedtls/library/asn1write.c +436 -0
  236. package/external/libedhoc/externals/mbedtls/library/base64.c +299 -0
  237. package/external/libedhoc/externals/mbedtls/library/base64_internal.h +45 -0
  238. package/external/libedhoc/externals/mbedtls/library/bignum.c +2806 -0
  239. package/external/libedhoc/externals/mbedtls/library/bignum_core.c +894 -0
  240. package/external/libedhoc/externals/mbedtls/library/bignum_core.h +763 -0
  241. package/external/libedhoc/externals/mbedtls/library/bignum_mod.c +394 -0
  242. package/external/libedhoc/externals/mbedtls/library/bignum_mod.h +452 -0
  243. package/external/libedhoc/externals/mbedtls/library/bignum_mod_raw.c +276 -0
  244. package/external/libedhoc/externals/mbedtls/library/bignum_mod_raw.h +416 -0
  245. package/external/libedhoc/externals/mbedtls/library/bignum_mod_raw_invasive.h +34 -0
  246. package/external/libedhoc/externals/mbedtls/library/bn_mul.h +1094 -0
  247. package/external/libedhoc/externals/mbedtls/library/camellia.c +1044 -0
  248. package/external/libedhoc/externals/mbedtls/library/ccm.c +712 -0
  249. package/external/libedhoc/externals/mbedtls/library/chacha20.c +497 -0
  250. package/external/libedhoc/externals/mbedtls/library/chachapoly.c +478 -0
  251. package/external/libedhoc/externals/mbedtls/library/check_crypto_config.h +141 -0
  252. package/external/libedhoc/externals/mbedtls/library/cipher.c +1664 -0
  253. package/external/libedhoc/externals/mbedtls/library/cipher_wrap.c +2422 -0
  254. package/external/libedhoc/externals/mbedtls/library/cipher_wrap.h +132 -0
  255. package/external/libedhoc/externals/mbedtls/library/cmac.c +1067 -0
  256. package/external/libedhoc/externals/mbedtls/library/common.h +325 -0
  257. package/external/libedhoc/externals/mbedtls/library/constant_time.c +261 -0
  258. package/external/libedhoc/externals/mbedtls/library/constant_time_impl.h +554 -0
  259. package/external/libedhoc/externals/mbedtls/library/constant_time_internal.h +579 -0
  260. package/external/libedhoc/externals/mbedtls/library/ctr_drbg.c +881 -0
  261. package/external/libedhoc/externals/mbedtls/library/debug.c +465 -0
  262. package/external/libedhoc/externals/mbedtls/library/des.c +1042 -0
  263. package/external/libedhoc/externals/mbedtls/library/dhm.c +712 -0
  264. package/external/libedhoc/externals/mbedtls/library/ecdh.c +685 -0
  265. package/external/libedhoc/externals/mbedtls/library/ecdsa.c +867 -0
  266. package/external/libedhoc/externals/mbedtls/library/ecjpake.c +1216 -0
  267. package/external/libedhoc/externals/mbedtls/library/ecp.c +3631 -0
  268. package/external/libedhoc/externals/mbedtls/library/ecp_curves.c +5467 -0
  269. package/external/libedhoc/externals/mbedtls/library/ecp_curves_new.c +6043 -0
  270. package/external/libedhoc/externals/mbedtls/library/ecp_internal_alt.h +287 -0
  271. package/external/libedhoc/externals/mbedtls/library/ecp_invasive.h +325 -0
  272. package/external/libedhoc/externals/mbedtls/library/entropy.c +676 -0
  273. package/external/libedhoc/externals/mbedtls/library/entropy_poll.c +229 -0
  274. package/external/libedhoc/externals/mbedtls/library/entropy_poll.h +64 -0
  275. package/external/libedhoc/externals/mbedtls/library/error.c +878 -0
  276. package/external/libedhoc/externals/mbedtls/library/gcm.c +1168 -0
  277. package/external/libedhoc/externals/mbedtls/library/hkdf.c +161 -0
  278. package/external/libedhoc/externals/mbedtls/library/hmac_drbg.c +633 -0
  279. package/external/libedhoc/externals/mbedtls/library/lmots.c +821 -0
  280. package/external/libedhoc/externals/mbedtls/library/lmots.h +311 -0
  281. package/external/libedhoc/externals/mbedtls/library/lms.c +779 -0
  282. package/external/libedhoc/externals/mbedtls/library/md.c +1108 -0
  283. package/external/libedhoc/externals/mbedtls/library/md5.c +426 -0
  284. package/external/libedhoc/externals/mbedtls/library/md_psa.h +63 -0
  285. package/external/libedhoc/externals/mbedtls/library/md_wrap.h +46 -0
  286. package/external/libedhoc/externals/mbedtls/library/memory_buffer_alloc.c +745 -0
  287. package/external/libedhoc/externals/mbedtls/library/mps_common.h +181 -0
  288. package/external/libedhoc/externals/mbedtls/library/mps_error.h +89 -0
  289. package/external/libedhoc/externals/mbedtls/library/mps_reader.c +538 -0
  290. package/external/libedhoc/externals/mbedtls/library/mps_reader.h +366 -0
  291. package/external/libedhoc/externals/mbedtls/library/mps_trace.c +112 -0
  292. package/external/libedhoc/externals/mbedtls/library/mps_trace.h +154 -0
  293. package/external/libedhoc/externals/mbedtls/library/net_sockets.c +696 -0
  294. package/external/libedhoc/externals/mbedtls/library/nist_kw.c +725 -0
  295. package/external/libedhoc/externals/mbedtls/library/oid.c +1154 -0
  296. package/external/libedhoc/externals/mbedtls/library/padlock.c +155 -0
  297. package/external/libedhoc/externals/mbedtls/library/padlock.h +111 -0
  298. package/external/libedhoc/externals/mbedtls/library/pem.c +520 -0
  299. package/external/libedhoc/externals/mbedtls/library/pk.c +970 -0
  300. package/external/libedhoc/externals/mbedtls/library/pk_internal.h +118 -0
  301. package/external/libedhoc/externals/mbedtls/library/pk_wrap.c +1834 -0
  302. package/external/libedhoc/externals/mbedtls/library/pk_wrap.h +156 -0
  303. package/external/libedhoc/externals/mbedtls/library/pkcs12.c +447 -0
  304. package/external/libedhoc/externals/mbedtls/library/pkcs5.c +496 -0
  305. package/external/libedhoc/externals/mbedtls/library/pkcs7.c +773 -0
  306. package/external/libedhoc/externals/mbedtls/library/pkparse.c +1845 -0
  307. package/external/libedhoc/externals/mbedtls/library/pkwrite.c +836 -0
  308. package/external/libedhoc/externals/mbedtls/library/pkwrite.h +112 -0
  309. package/external/libedhoc/externals/mbedtls/library/platform.c +402 -0
  310. package/external/libedhoc/externals/mbedtls/library/platform_util.c +285 -0
  311. package/external/libedhoc/externals/mbedtls/library/poly1305.c +492 -0
  312. package/external/libedhoc/externals/mbedtls/library/psa_crypto.c +8432 -0
  313. package/external/libedhoc/externals/mbedtls/library/psa_crypto_aead.c +653 -0
  314. package/external/libedhoc/externals/mbedtls/library/psa_crypto_aead.h +499 -0
  315. package/external/libedhoc/externals/mbedtls/library/psa_crypto_cipher.c +590 -0
  316. package/external/libedhoc/externals/mbedtls/library/psa_crypto_cipher.h +293 -0
  317. package/external/libedhoc/externals/mbedtls/library/psa_crypto_client.c +67 -0
  318. package/external/libedhoc/externals/mbedtls/library/psa_crypto_core.h +838 -0
  319. package/external/libedhoc/externals/mbedtls/library/psa_crypto_core_common.h +52 -0
  320. package/external/libedhoc/externals/mbedtls/library/psa_crypto_driver_wrappers.h +2871 -0
  321. package/external/libedhoc/externals/mbedtls/library/psa_crypto_driver_wrappers_no_static.c +256 -0
  322. package/external/libedhoc/externals/mbedtls/library/psa_crypto_driver_wrappers_no_static.h +31 -0
  323. package/external/libedhoc/externals/mbedtls/library/psa_crypto_ecp.c +561 -0
  324. package/external/libedhoc/externals/mbedtls/library/psa_crypto_ecp.h +267 -0
  325. package/external/libedhoc/externals/mbedtls/library/psa_crypto_ffdh.c +295 -0
  326. package/external/libedhoc/externals/mbedtls/library/psa_crypto_ffdh.h +132 -0
  327. package/external/libedhoc/externals/mbedtls/library/psa_crypto_hash.c +470 -0
  328. package/external/libedhoc/externals/mbedtls/library/psa_crypto_hash.h +211 -0
  329. package/external/libedhoc/externals/mbedtls/library/psa_crypto_invasive.h +70 -0
  330. package/external/libedhoc/externals/mbedtls/library/psa_crypto_its.h +131 -0
  331. package/external/libedhoc/externals/mbedtls/library/psa_crypto_mac.c +496 -0
  332. package/external/libedhoc/externals/mbedtls/library/psa_crypto_mac.h +264 -0
  333. package/external/libedhoc/externals/mbedtls/library/psa_crypto_pake.c +571 -0
  334. package/external/libedhoc/externals/mbedtls/library/psa_crypto_pake.h +159 -0
  335. package/external/libedhoc/externals/mbedtls/library/psa_crypto_random_impl.h +192 -0
  336. package/external/libedhoc/externals/mbedtls/library/psa_crypto_rsa.c +727 -0
  337. package/external/libedhoc/externals/mbedtls/library/psa_crypto_rsa.h +317 -0
  338. package/external/libedhoc/externals/mbedtls/library/psa_crypto_se.c +373 -0
  339. package/external/libedhoc/externals/mbedtls/library/psa_crypto_se.h +185 -0
  340. package/external/libedhoc/externals/mbedtls/library/psa_crypto_slot_management.c +559 -0
  341. package/external/libedhoc/externals/mbedtls/library/psa_crypto_slot_management.h +213 -0
  342. package/external/libedhoc/externals/mbedtls/library/psa_crypto_storage.c +481 -0
  343. package/external/libedhoc/externals/mbedtls/library/psa_crypto_storage.h +384 -0
  344. package/external/libedhoc/externals/mbedtls/library/psa_its_file.c +259 -0
  345. package/external/libedhoc/externals/mbedtls/library/psa_util.c +160 -0
  346. package/external/libedhoc/externals/mbedtls/library/psa_util_internal.h +96 -0
  347. package/external/libedhoc/externals/mbedtls/library/ripemd160.c +490 -0
  348. package/external/libedhoc/externals/mbedtls/library/rsa.c +2640 -0
  349. package/external/libedhoc/externals/mbedtls/library/rsa_alt_helpers.c +447 -0
  350. package/external/libedhoc/externals/mbedtls/library/rsa_alt_helpers.h +208 -0
  351. package/external/libedhoc/externals/mbedtls/library/sha1.c +480 -0
  352. package/external/libedhoc/externals/mbedtls/library/sha256.c +946 -0
  353. package/external/libedhoc/externals/mbedtls/library/sha3.c +626 -0
  354. package/external/libedhoc/externals/mbedtls/library/sha512.c +1111 -0
  355. package/external/libedhoc/externals/mbedtls/library/ssl_cache.c +410 -0
  356. package/external/libedhoc/externals/mbedtls/library/ssl_ciphersuites.c +2050 -0
  357. package/external/libedhoc/externals/mbedtls/library/ssl_client.c +1017 -0
  358. package/external/libedhoc/externals/mbedtls/library/ssl_client.h +22 -0
  359. package/external/libedhoc/externals/mbedtls/library/ssl_cookie.c +380 -0
  360. package/external/libedhoc/externals/mbedtls/library/ssl_debug_helpers.h +78 -0
  361. package/external/libedhoc/externals/mbedtls/library/ssl_debug_helpers_generated.c +234 -0
  362. package/external/libedhoc/externals/mbedtls/library/ssl_misc.h +2847 -0
  363. package/external/libedhoc/externals/mbedtls/library/ssl_msg.c +6155 -0
  364. package/external/libedhoc/externals/mbedtls/library/ssl_ticket.c +540 -0
  365. package/external/libedhoc/externals/mbedtls/library/ssl_tls.c +9577 -0
  366. package/external/libedhoc/externals/mbedtls/library/ssl_tls12_client.c +3607 -0
  367. package/external/libedhoc/externals/mbedtls/library/ssl_tls12_server.c +4403 -0
  368. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_client.c +3046 -0
  369. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_generic.c +1740 -0
  370. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_invasive.h +23 -0
  371. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_keys.c +1897 -0
  372. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_keys.h +651 -0
  373. package/external/libedhoc/externals/mbedtls/library/ssl_tls13_server.c +3146 -0
  374. package/external/libedhoc/externals/mbedtls/library/threading.c +181 -0
  375. package/external/libedhoc/externals/mbedtls/library/timing.c +154 -0
  376. package/external/libedhoc/externals/mbedtls/library/version.c +32 -0
  377. package/external/libedhoc/externals/mbedtls/library/version_features.c +826 -0
  378. package/external/libedhoc/externals/mbedtls/library/x509.c +1776 -0
  379. package/external/libedhoc/externals/mbedtls/library/x509_create.c +557 -0
  380. package/external/libedhoc/externals/mbedtls/library/x509_crl.c +712 -0
  381. package/external/libedhoc/externals/mbedtls/library/x509_crt.c +3292 -0
  382. package/external/libedhoc/externals/mbedtls/library/x509_csr.c +574 -0
  383. package/external/libedhoc/externals/mbedtls/library/x509write.c +174 -0
  384. package/external/libedhoc/externals/mbedtls/library/x509write_crt.c +681 -0
  385. package/external/libedhoc/externals/mbedtls/library/x509write_csr.c +331 -0
  386. package/external/libedhoc/externals/mbedtls/programs/aes/crypt_and_hash.c +573 -0
  387. package/external/libedhoc/externals/mbedtls/programs/cipher/cipher_aead_demo.c +259 -0
  388. package/external/libedhoc/externals/mbedtls/programs/fuzz/common.c +105 -0
  389. package/external/libedhoc/externals/mbedtls/programs/fuzz/common.h +25 -0
  390. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_client.c +195 -0
  391. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_dtlsclient.c +138 -0
  392. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_dtlsserver.c +183 -0
  393. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_pkcs7.c +20 -0
  394. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_privkey.c +106 -0
  395. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_pubkey.c +86 -0
  396. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_server.c +218 -0
  397. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_x509crl.c +41 -0
  398. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_x509crt.c +41 -0
  399. package/external/libedhoc/externals/mbedtls/programs/fuzz/fuzz_x509csr.c +41 -0
  400. package/external/libedhoc/externals/mbedtls/programs/fuzz/onefile.c +69 -0
  401. package/external/libedhoc/externals/mbedtls/programs/hash/generic_sum.c +209 -0
  402. package/external/libedhoc/externals/mbedtls/programs/hash/hello.c +45 -0
  403. package/external/libedhoc/externals/mbedtls/programs/hash/md_hmac_demo.c +136 -0
  404. package/external/libedhoc/externals/mbedtls/programs/pkey/dh_client.c +274 -0
  405. package/external/libedhoc/externals/mbedtls/programs/pkey/dh_genprime.c +161 -0
  406. package/external/libedhoc/externals/mbedtls/programs/pkey/dh_server.c +296 -0
  407. package/external/libedhoc/externals/mbedtls/programs/pkey/ecdh_curve25519.c +189 -0
  408. package/external/libedhoc/externals/mbedtls/programs/pkey/ecdsa.c +217 -0
  409. package/external/libedhoc/externals/mbedtls/programs/pkey/gen_key.c +419 -0
  410. package/external/libedhoc/externals/mbedtls/programs/pkey/key_app.c +316 -0
  411. package/external/libedhoc/externals/mbedtls/programs/pkey/key_app_writer.c +435 -0
  412. package/external/libedhoc/externals/mbedtls/programs/pkey/mpi_demo.c +84 -0
  413. package/external/libedhoc/externals/mbedtls/programs/pkey/pk_decrypt.c +153 -0
  414. package/external/libedhoc/externals/mbedtls/programs/pkey/pk_encrypt.c +154 -0
  415. package/external/libedhoc/externals/mbedtls/programs/pkey/pk_sign.c +155 -0
  416. package/external/libedhoc/externals/mbedtls/programs/pkey/pk_verify.c +128 -0
  417. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_decrypt.c +172 -0
  418. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_encrypt.c +149 -0
  419. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_genkey.c +141 -0
  420. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_sign.c +155 -0
  421. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_sign_pss.c +161 -0
  422. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_verify.c +131 -0
  423. package/external/libedhoc/externals/mbedtls/programs/pkey/rsa_verify_pss.c +136 -0
  424. package/external/libedhoc/externals/mbedtls/programs/psa/aead_demo.c +281 -0
  425. package/external/libedhoc/externals/mbedtls/programs/psa/crypto_examples.c +321 -0
  426. package/external/libedhoc/externals/mbedtls/programs/psa/hmac_demo.c +159 -0
  427. package/external/libedhoc/externals/mbedtls/programs/psa/key_ladder_demo.c +691 -0
  428. package/external/libedhoc/externals/mbedtls/programs/psa/psa_constant_names.c +310 -0
  429. package/external/libedhoc/externals/mbedtls/programs/psa/psa_constant_names_generated.c +474 -0
  430. package/external/libedhoc/externals/mbedtls/programs/random/gen_entropy.c +75 -0
  431. package/external/libedhoc/externals/mbedtls/programs/random/gen_random_ctr_drbg.c +107 -0
  432. package/external/libedhoc/externals/mbedtls/programs/ssl/dtls_client.c +342 -0
  433. package/external/libedhoc/externals/mbedtls/programs/ssl/dtls_server.c +408 -0
  434. package/external/libedhoc/externals/mbedtls/programs/ssl/mini_client.c +274 -0
  435. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_client1.c +288 -0
  436. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_client2.c +3118 -0
  437. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_context_info.c +1009 -0
  438. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_fork_server.c +381 -0
  439. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_mail_client.c +804 -0
  440. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_pthread_server.c +489 -0
  441. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_server.c +362 -0
  442. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_server2.c +4268 -0
  443. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_test_common_source.c +375 -0
  444. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_test_lib.c +601 -0
  445. package/external/libedhoc/externals/mbedtls/programs/ssl/ssl_test_lib.h +306 -0
  446. package/external/libedhoc/externals/mbedtls/programs/test/benchmark.c +1284 -0
  447. package/external/libedhoc/externals/mbedtls/programs/test/cmake_package/cmake_package.c +27 -0
  448. package/external/libedhoc/externals/mbedtls/programs/test/cmake_package_install/cmake_package_install.c +28 -0
  449. package/external/libedhoc/externals/mbedtls/programs/test/cmake_subproject/cmake_subproject.c +28 -0
  450. package/external/libedhoc/externals/mbedtls/programs/test/dlopen.c +92 -0
  451. package/external/libedhoc/externals/mbedtls/programs/test/query_compile_time_config.c +66 -0
  452. package/external/libedhoc/externals/mbedtls/programs/test/query_config.c +5137 -0
  453. package/external/libedhoc/externals/mbedtls/programs/test/query_config.h +34 -0
  454. package/external/libedhoc/externals/mbedtls/programs/test/query_included_headers.c +29 -0
  455. package/external/libedhoc/externals/mbedtls/programs/test/selftest.c +583 -0
  456. package/external/libedhoc/externals/mbedtls/programs/test/udp_proxy.c +967 -0
  457. package/external/libedhoc/externals/mbedtls/programs/test/zeroize.c +72 -0
  458. package/external/libedhoc/externals/mbedtls/programs/util/pem2der.c +265 -0
  459. package/external/libedhoc/externals/mbedtls/programs/util/strerror.c +61 -0
  460. package/external/libedhoc/externals/mbedtls/programs/wince_main.c +31 -0
  461. package/external/libedhoc/externals/mbedtls/programs/x509/cert_app.c +456 -0
  462. package/external/libedhoc/externals/mbedtls/programs/x509/cert_req.c +509 -0
  463. package/external/libedhoc/externals/mbedtls/programs/x509/cert_write.c +1012 -0
  464. package/external/libedhoc/externals/mbedtls/programs/x509/crl_app.c +132 -0
  465. package/external/libedhoc/externals/mbedtls/programs/x509/load_roots.c +165 -0
  466. package/external/libedhoc/externals/mbedtls/programs/x509/req_app.c +132 -0
  467. package/external/libedhoc/externals/mbedtls/tests/configs/tls13-only.h +31 -0
  468. package/external/libedhoc/externals/mbedtls/tests/configs/user-config-for-test.h +89 -0
  469. package/external/libedhoc/externals/mbedtls/tests/configs/user-config-malloc-0-null.h +22 -0
  470. package/external/libedhoc/externals/mbedtls/tests/configs/user-config-zeroize-memset.h +17 -0
  471. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/aes_alt.h +23 -0
  472. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/aria_alt.h +16 -0
  473. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/camellia_alt.h +16 -0
  474. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ccm_alt.h +16 -0
  475. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/chacha20_alt.h +16 -0
  476. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/chachapoly_alt.h +18 -0
  477. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/cmac_alt.h +15 -0
  478. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/des_alt.h +22 -0
  479. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/dhm_alt.h +16 -0
  480. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ecjpake_alt.h +15 -0
  481. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ecp_alt.h +22 -0
  482. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/gcm_alt.h +16 -0
  483. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/md5_alt.h +16 -0
  484. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/nist_kw_alt.h +15 -0
  485. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/platform_alt.h +16 -0
  486. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/poly1305_alt.h +16 -0
  487. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/ripemd160_alt.h +16 -0
  488. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/rsa_alt.h +16 -0
  489. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/sha1_alt.h +16 -0
  490. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/sha256_alt.h +16 -0
  491. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/sha512_alt.h +16 -0
  492. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/threading_alt.h +14 -0
  493. package/external/libedhoc/externals/mbedtls/tests/include/alt-dummy/timing_alt.h +19 -0
  494. package/external/libedhoc/externals/mbedtls/tests/include/alt-extra/psa/crypto.h +7 -0
  495. package/external/libedhoc/externals/mbedtls/tests/include/baremetal-override/time.h +6 -0
  496. package/external/libedhoc/externals/mbedtls/tests/include/spe/crypto_spe.h +131 -0
  497. package/external/libedhoc/externals/mbedtls/tests/include/test/arguments.h +26 -0
  498. package/external/libedhoc/externals/mbedtls/tests/include/test/asn1_helpers.h +38 -0
  499. package/external/libedhoc/externals/mbedtls/tests/include/test/bignum_helpers.h +106 -0
  500. package/external/libedhoc/externals/mbedtls/tests/include/test/certs.h +234 -0
  501. package/external/libedhoc/externals/mbedtls/tests/include/test/constant_flow.h +71 -0
  502. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/aead.h +121 -0
  503. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/asymmetric_encryption.h +67 -0
  504. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/cipher.h +130 -0
  505. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/config_test_driver.h +44 -0
  506. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/crypto_config_test_driver_extension.h +430 -0
  507. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/hash.h +64 -0
  508. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/key_agreement.h +62 -0
  509. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/key_management.h +123 -0
  510. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/mac.h +125 -0
  511. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/pake.h +75 -0
  512. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/signature.h +112 -0
  513. package/external/libedhoc/externals/mbedtls/tests/include/test/drivers/test_driver.h +32 -0
  514. package/external/libedhoc/externals/mbedtls/tests/include/test/fake_external_rng_for_test.h +40 -0
  515. package/external/libedhoc/externals/mbedtls/tests/include/test/helpers.h +268 -0
  516. package/external/libedhoc/externals/mbedtls/tests/include/test/macros.h +250 -0
  517. package/external/libedhoc/externals/mbedtls/tests/include/test/psa_crypto_helpers.h +398 -0
  518. package/external/libedhoc/externals/mbedtls/tests/include/test/psa_exercise_key.h +223 -0
  519. package/external/libedhoc/externals/mbedtls/tests/include/test/psa_helpers.h +24 -0
  520. package/external/libedhoc/externals/mbedtls/tests/include/test/random.h +91 -0
  521. package/external/libedhoc/externals/mbedtls/tests/include/test/ssl_helpers.h +628 -0
  522. package/external/libedhoc/externals/mbedtls/tests/src/asn1_helpers.c +62 -0
  523. package/external/libedhoc/externals/mbedtls/tests/src/bignum_helpers.c +145 -0
  524. package/external/libedhoc/externals/mbedtls/tests/src/certs.c +480 -0
  525. package/external/libedhoc/externals/mbedtls/tests/src/drivers/hash.c +199 -0
  526. package/external/libedhoc/externals/mbedtls/tests/src/drivers/platform_builtin_keys.c +78 -0
  527. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_aead.c +462 -0
  528. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_asymmetric_encryption.c +151 -0
  529. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_cipher.c +424 -0
  530. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_key_agreement.c +147 -0
  531. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_key_management.c +783 -0
  532. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_mac.c +422 -0
  533. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_pake.c +202 -0
  534. package/external/libedhoc/externals/mbedtls/tests/src/drivers/test_driver_signature.c +405 -0
  535. package/external/libedhoc/externals/mbedtls/tests/src/fake_external_rng_for_test.c +45 -0
  536. package/external/libedhoc/externals/mbedtls/tests/src/helpers.c +353 -0
  537. package/external/libedhoc/externals/mbedtls/tests/src/psa_crypto_helpers.c +196 -0
  538. package/external/libedhoc/externals/mbedtls/tests/src/psa_exercise_key.c +989 -0
  539. package/external/libedhoc/externals/mbedtls/tests/src/random.c +136 -0
  540. package/external/libedhoc/externals/mbedtls/tests/src/test_certs.h +1226 -0
  541. package/external/libedhoc/externals/mbedtls/tests/src/test_helpers/ssl_helpers.c +2292 -0
  542. package/external/libedhoc/externals/mbedtls/tests/src/threading_helpers.c +210 -0
  543. package/external/libedhoc/externals/zcbor/include/zcbor_common.h +422 -0
  544. package/external/libedhoc/externals/zcbor/include/zcbor_debug.h +69 -0
  545. package/external/libedhoc/externals/zcbor/include/zcbor_decode.h +358 -0
  546. package/external/libedhoc/externals/zcbor/include/zcbor_encode.h +296 -0
  547. package/external/libedhoc/externals/zcbor/include/zcbor_tags.h +94 -0
  548. package/external/libedhoc/externals/zcbor/samples/hello_world/src/main.c +41 -0
  549. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_decode.h +39 -0
  550. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_encode.h +39 -0
  551. package/external/libedhoc/externals/zcbor/samples/pet/include/pet_types.h +47 -0
  552. package/external/libedhoc/externals/zcbor/samples/pet/src/main.c +128 -0
  553. package/external/libedhoc/externals/zcbor/samples/pet/src/pet_decode.c +69 -0
  554. package/external/libedhoc/externals/zcbor/samples/pet/src/pet_encode.c +70 -0
  555. package/external/libedhoc/externals/zcbor/src/zcbor_common.c +257 -0
  556. package/external/libedhoc/externals/zcbor/src/zcbor_decode.c +1107 -0
  557. package/external/libedhoc/externals/zcbor/src/zcbor_encode.c +722 -0
  558. package/external/libedhoc/externals/zcbor/tests/decode/test1_suit_old_formats/src/main.c +368 -0
  559. package/external/libedhoc/externals/zcbor/tests/decode/test2_suit/src/main.c +189 -0
  560. package/external/libedhoc/externals/zcbor/tests/decode/test3_simple/src/main.c +529 -0
  561. package/external/libedhoc/externals/zcbor/tests/decode/test5_corner_cases/src/main.c +2010 -0
  562. package/external/libedhoc/externals/zcbor/tests/decode/test7_suit9_simple/src/main.c +134 -0
  563. package/external/libedhoc/externals/zcbor/tests/decode/test8_suit12/src/main.c +863 -0
  564. package/external/libedhoc/externals/zcbor/tests/decode/test9_manifest14/src/main.c +364 -0
  565. package/external/libedhoc/externals/zcbor/tests/encode/test1_suit/src/main.c +453 -0
  566. package/external/libedhoc/externals/zcbor/tests/encode/test2_simple/src/main.c +123 -0
  567. package/external/libedhoc/externals/zcbor/tests/encode/test3_corner_cases/src/main.c +1527 -0
  568. package/external/libedhoc/externals/zcbor/tests/encode/test4_senml/src/main.c +66 -0
  569. package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_manifest12.c +136 -0
  570. package/external/libedhoc/externals/zcbor/tests/fuzz/fuzz_pet.c +12 -0
  571. package/external/libedhoc/externals/zcbor/tests/fuzz/main_entry.c +60 -0
  572. package/external/libedhoc/externals/zcbor/tests/fuzz/main_entry.h +5 -0
  573. package/external/libedhoc/externals/zcbor/tests/unit/test1_unit_tests/src/main.c +1044 -0
  574. package/external/libedhoc/externals/zcbor/tests/unit/test3_float16/src/main.c +202 -0
  575. package/external/libedhoc/include/edhoc.h +393 -0
  576. package/external/libedhoc/include/edhoc_context.h +318 -0
  577. package/external/libedhoc/include/edhoc_credentials.h +217 -0
  578. package/external/libedhoc/include/edhoc_crypto.h +331 -0
  579. package/external/libedhoc/include/edhoc_ead.h +99 -0
  580. package/external/libedhoc/include/edhoc_macros.h +51 -0
  581. package/external/libedhoc/include/edhoc_values.h +181 -0
  582. package/external/libedhoc/library/edhoc.c +219 -0
  583. package/external/libedhoc/library/edhoc_exporter.c +543 -0
  584. package/external/libedhoc/library/edhoc_message_1.c +439 -0
  585. package/external/libedhoc/library/edhoc_message_2.c +2994 -0
  586. package/external/libedhoc/library/edhoc_message_3.c +2658 -0
  587. package/external/libedhoc/library/edhoc_message_4.c +826 -0
  588. package/external/libedhoc/library/edhoc_message_error.c +238 -0
  589. package/external/libedhoc/tests/include/cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.h +37 -0
  590. package/external/libedhoc/tests/include/cipher_suites/cipher_suite_0.h +134 -0
  591. package/external/libedhoc/tests/include/cipher_suites/cipher_suite_2.h +140 -0
  592. package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_0.h +48 -0
  593. package/external/libedhoc/tests/include/cipher_suites/test_cipher_suite_2.h +48 -0
  594. package/external/libedhoc/tests/include/edhoc_trace_1/authentication_credentials_1.h +60 -0
  595. package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_1.h +208 -0
  596. package/external/libedhoc/tests/include/edhoc_trace_1/test_edhoc_handshake_ead_1.h +59 -0
  597. package/external/libedhoc/tests/include/edhoc_trace_1/test_vector_1.h +738 -0
  598. package/external/libedhoc/tests/include/edhoc_trace_2/authentication_credentials_2.h +60 -0
  599. package/external/libedhoc/tests/include/edhoc_trace_2/test_edhoc_handshake_2.h +199 -0
  600. package/external/libedhoc/tests/include/edhoc_trace_2/test_vector_2.h +525 -0
  601. package/external/libedhoc/tests/include/error_message/test_edhoc_error_message.h +48 -0
  602. package/external/libedhoc/tests/include/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.h +92 -0
  603. package/external/libedhoc/tests/include/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.h +96 -0
  604. package/external/libedhoc/tests/include/x509_chain_cs_0/test_vector_x5chain_cs_0.h +140 -0
  605. package/external/libedhoc/tests/include/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.h +58 -0
  606. package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.h +56 -0
  607. package/external/libedhoc/tests/include/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.h +57 -0
  608. package/external/libedhoc/tests/include/x509_chain_cs_2/test_vector_x5chain_cs_2.h +169 -0
  609. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.h +59 -0
  610. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.h +57 -0
  611. package/external/libedhoc/tests/include/x509_chain_cs_2_static_dh/test_vector_x5chain_cs_2_static_dh.h +163 -0
  612. package/external/libedhoc/tests/include/x509_hash_cs_2/authentication_credentials_x5t_cs_2.h +60 -0
  613. package/external/libedhoc/tests/include/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.h +57 -0
  614. package/external/libedhoc/tests/include/x509_hash_cs_2/test_vector_x5t_cs_2.h +181 -0
  615. package/external/libedhoc/tests/src/cipher_suite_negotiation/test_edhoc_cipher_suite_negotiation.c +544 -0
  616. package/external/libedhoc/tests/src/cipher_suites/cipher_suite_0.c +447 -0
  617. package/external/libedhoc/tests/src/cipher_suites/cipher_suite_2.c +600 -0
  618. package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_0.c +475 -0
  619. package/external/libedhoc/tests/src/cipher_suites/test_cipher_suite_2.c +473 -0
  620. package/external/libedhoc/tests/src/edhoc_trace_1/authentication_credentials_1.c +252 -0
  621. package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_1.c +1829 -0
  622. package/external/libedhoc/tests/src/edhoc_trace_1/test_edhoc_handshake_ead_1.c +1247 -0
  623. package/external/libedhoc/tests/src/edhoc_trace_2/authentication_credentials_2.c +170 -0
  624. package/external/libedhoc/tests/src/edhoc_trace_2/test_edhoc_handshake_2.c +1783 -0
  625. package/external/libedhoc/tests/src/error_message/test_edhoc_error_message.c +226 -0
  626. package/external/libedhoc/tests/src/tests.c +228 -0
  627. package/external/libedhoc/tests/src/x509_chain_cs_0/authentication_credentials_x5chain_cs_0.c +332 -0
  628. package/external/libedhoc/tests/src/x509_chain_cs_0/test_edhoc_handshake_x5chain_cs_0.c +936 -0
  629. package/external/libedhoc/tests/src/x509_chain_cs_2/authentication_credentials_x5chain_cs_2.c +166 -0
  630. package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2.c +587 -0
  631. package/external/libedhoc/tests/src/x509_chain_cs_2/test_edhoc_handshake_x5chain_cs_2_ead.c +917 -0
  632. package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/authentication_credentials_x5chain_cs_2_static_dh.c +186 -0
  633. package/external/libedhoc/tests/src/x509_chain_cs_2_static_dh/test_edhoc_handshake_x5chain_cs_2_static_dh_ead.c +743 -0
  634. package/external/libedhoc/tests/src/x509_hash_cs_2/authentication_credentials_x5t_cs_2.c +261 -0
  635. package/external/libedhoc/tests/src/x509_hash_cs_2/test_edhoc_handshake_x5t_cs_2_ead.c +854 -0
  636. package/include/EdhocComposeAsyncWorker.h +61 -0
  637. package/include/EdhocCredentialManager.h +100 -0
  638. package/include/EdhocCryptoManager.h +504 -0
  639. package/include/EdhocEadManager.h +151 -0
  640. package/include/EdhocExportAsyncWorker.h +71 -0
  641. package/include/EdhocProcessAsyncWorker.h +76 -0
  642. package/include/LibEDHOC.h +304 -0
  643. package/include/Suites.h +27 -0
  644. package/include/UserContext.h +79 -0
  645. package/include/Utils.h +110 -0
  646. package/package.json +1 -1
  647. package/prebuilds/win32-ia32/edhoc.node +0 -0
  648. package/prebuilds/win32-x64/edhoc.node +0 -0
  649. package/src/EdhocComposeAsyncWorker.cpp +88 -0
  650. package/src/EdhocCredentialManager.cpp +360 -0
  651. package/src/EdhocCryptoManager.cpp +967 -0
  652. package/src/EdhocEadManager.cpp +156 -0
  653. package/src/EdhocExportAsyncWorker.cpp +82 -0
  654. package/src/EdhocProcessAsyncWorker.cpp +74 -0
  655. package/src/LibEDHOC.cpp +369 -0
  656. package/src/Suites.cpp +153 -0
  657. package/src/Utils.cpp +115 -0
@@ -0,0 +1,1012 @@
1
+ /*
2
+ * Certificate generation and signing
3
+ *
4
+ * Copyright The Mbed TLS Contributors
5
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6
+ */
7
+
8
+ #include "mbedtls/build_info.h"
9
+
10
+ #include "mbedtls/platform.h"
11
+ /* md.h is included this early since MD_CAN_XXX macros are defined there. */
12
+ #include "mbedtls/md.h"
13
+
14
+ #if !defined(MBEDTLS_X509_CRT_WRITE_C) || \
15
+ !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) || \
16
+ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
17
+ !defined(MBEDTLS_ERROR_C) || !defined(MBEDTLS_MD_CAN_SHA256) || \
18
+ !defined(MBEDTLS_PEM_WRITE_C)
19
+ int main(void)
20
+ {
21
+ mbedtls_printf("MBEDTLS_X509_CRT_WRITE_C and/or MBEDTLS_X509_CRT_PARSE_C and/or "
22
+ "MBEDTLS_FS_IO and/or MBEDTLS_MD_CAN_SHA256 and/or "
23
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
24
+ "MBEDTLS_ERROR_C not defined.\n");
25
+ mbedtls_exit(0);
26
+ }
27
+ #else
28
+
29
+ #include "mbedtls/x509_crt.h"
30
+ #include "mbedtls/x509_csr.h"
31
+ #include "mbedtls/oid.h"
32
+ #include "mbedtls/entropy.h"
33
+ #include "mbedtls/ctr_drbg.h"
34
+ #include "mbedtls/error.h"
35
+ #include "test/helpers.h"
36
+
37
+ #include <stdio.h>
38
+ #include <stdlib.h>
39
+ #include <string.h>
40
+ #include <errno.h>
41
+
42
+ #define SET_OID(x, oid) \
43
+ do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char *) oid; } while (0)
44
+
45
+ #if defined(MBEDTLS_X509_CSR_PARSE_C)
46
+ #define USAGE_CSR \
47
+ " request_file=%%s default: (empty)\n" \
48
+ " If request_file is specified, subject_key,\n" \
49
+ " subject_pwd and subject_name are ignored!\n"
50
+ #else
51
+ #define USAGE_CSR ""
52
+ #endif /* MBEDTLS_X509_CSR_PARSE_C */
53
+
54
+ #define FORMAT_PEM 0
55
+ #define FORMAT_DER 1
56
+
57
+ #define DFL_ISSUER_CRT ""
58
+ #define DFL_REQUEST_FILE ""
59
+ #define DFL_SUBJECT_KEY "subject.key"
60
+ #define DFL_ISSUER_KEY "ca.key"
61
+ #define DFL_SUBJECT_PWD ""
62
+ #define DFL_ISSUER_PWD ""
63
+ #define DFL_OUTPUT_FILENAME "cert.crt"
64
+ #define DFL_SUBJECT_NAME "CN=Cert,O=mbed TLS,C=UK"
65
+ #define DFL_ISSUER_NAME "CN=CA,O=mbed TLS,C=UK"
66
+ #define DFL_NOT_BEFORE "20010101000000"
67
+ #define DFL_NOT_AFTER "20301231235959"
68
+ #define DFL_SERIAL "1"
69
+ #define DFL_SERIAL_HEX "1"
70
+ #define DFL_EXT_SUBJECTALTNAME ""
71
+ #define DFL_SELFSIGN 0
72
+ #define DFL_IS_CA 0
73
+ #define DFL_MAX_PATHLEN -1
74
+ #define DFL_SIG_ALG MBEDTLS_MD_SHA256
75
+ #define DFL_KEY_USAGE 0
76
+ #define DFL_EXT_KEY_USAGE NULL
77
+ #define DFL_NS_CERT_TYPE 0
78
+ #define DFL_VERSION 3
79
+ #define DFL_AUTH_IDENT 1
80
+ #define DFL_SUBJ_IDENT 1
81
+ #define DFL_CONSTRAINTS 1
82
+ #define DFL_DIGEST MBEDTLS_MD_SHA256
83
+ #define DFL_FORMAT FORMAT_PEM
84
+
85
+ #define USAGE \
86
+ "\n usage: cert_write param=<>...\n" \
87
+ "\n acceptable parameters:\n" \
88
+ USAGE_CSR \
89
+ " subject_key=%%s default: subject.key\n" \
90
+ " subject_pwd=%%s default: (empty)\n" \
91
+ " subject_name=%%s default: CN=Cert,O=mbed TLS,C=UK\n" \
92
+ "\n" \
93
+ " issuer_crt=%%s default: (empty)\n" \
94
+ " If issuer_crt is specified, issuer_name is\n" \
95
+ " ignored!\n" \
96
+ " issuer_name=%%s default: CN=CA,O=mbed TLS,C=UK\n" \
97
+ "\n" \
98
+ " selfsign=%%d default: 0 (false)\n" \
99
+ " If selfsign is enabled, issuer_name and\n" \
100
+ " issuer_key are required (issuer_crt and\n" \
101
+ " subject_* are ignored\n" \
102
+ " issuer_key=%%s default: ca.key\n" \
103
+ " issuer_pwd=%%s default: (empty)\n" \
104
+ " output_file=%%s default: cert.crt\n" \
105
+ " serial=%%s default: 1\n" \
106
+ " In decimal format; it can be used as\n" \
107
+ " alternative to serial_hex, but it's\n" \
108
+ " limited in max length to\n" \
109
+ " unsigned long long int\n" \
110
+ " serial_hex=%%s default: 1\n" \
111
+ " In hex format; it can be used as\n" \
112
+ " alternative to serial\n" \
113
+ " not_before=%%s default: 20010101000000\n" \
114
+ " not_after=%%s default: 20301231235959\n" \
115
+ " is_ca=%%d default: 0 (disabled)\n" \
116
+ " max_pathlen=%%d default: -1 (none)\n" \
117
+ " md=%%s default: SHA256\n" \
118
+ " Supported values (if enabled):\n" \
119
+ " MD5, RIPEMD160, SHA1,\n" \
120
+ " SHA224, SHA256, SHA384, SHA512\n" \
121
+ " version=%%d default: 3\n" \
122
+ " Possible values: 1, 2, 3\n" \
123
+ " subject_identifier=%%s default: 1\n" \
124
+ " Possible values: 0, 1\n" \
125
+ " (Considered for v3 only)\n" \
126
+ " san=%%s default: (none)\n" \
127
+ " Semicolon-separated-list of values:\n" \
128
+ " DNS:value\n" \
129
+ " URI:value\n" \
130
+ " RFC822:value\n" \
131
+ " IP:value (Only IPv4 is supported)\n" \
132
+ " DN:list of comma separated key=value pairs\n" \
133
+ " authority_identifier=%%s default: 1\n" \
134
+ " Possible values: 0, 1\n" \
135
+ " (Considered for v3 only)\n" \
136
+ " basic_constraints=%%d default: 1\n" \
137
+ " Possible values: 0, 1\n" \
138
+ " (Considered for v3 only)\n" \
139
+ " key_usage=%%s default: (empty)\n" \
140
+ " Comma-separated-list of values:\n" \
141
+ " digital_signature\n" \
142
+ " non_repudiation\n" \
143
+ " key_encipherment\n" \
144
+ " data_encipherment\n" \
145
+ " key_agreement\n" \
146
+ " key_cert_sign\n" \
147
+ " crl_sign\n" \
148
+ " (Considered for v3 only)\n" \
149
+ " ext_key_usage=%%s default: (empty)\n" \
150
+ " Comma-separated-list of values:\n" \
151
+ " serverAuth\n" \
152
+ " clientAuth\n" \
153
+ " codeSigning\n" \
154
+ " emailProtection\n" \
155
+ " timeStamping\n" \
156
+ " OCSPSigning\n" \
157
+ " ns_cert_type=%%s default: (empty)\n" \
158
+ " Comma-separated-list of values:\n" \
159
+ " ssl_client\n" \
160
+ " ssl_server\n" \
161
+ " email\n" \
162
+ " object_signing\n" \
163
+ " ssl_ca\n" \
164
+ " email_ca\n" \
165
+ " object_signing_ca\n" \
166
+ " format=pem|der default: pem\n" \
167
+ "\n"
168
+
169
+ typedef enum {
170
+ SERIAL_FRMT_UNSPEC,
171
+ SERIAL_FRMT_DEC,
172
+ SERIAL_FRMT_HEX
173
+ } serial_format_t;
174
+
175
+ /*
176
+ * global options
177
+ */
178
+ struct options {
179
+ const char *issuer_crt; /* filename of the issuer certificate */
180
+ const char *request_file; /* filename of the certificate request */
181
+ const char *subject_key; /* filename of the subject key file */
182
+ const char *issuer_key; /* filename of the issuer key file */
183
+ const char *subject_pwd; /* password for the subject key file */
184
+ const char *issuer_pwd; /* password for the issuer key file */
185
+ const char *output_file; /* where to store the constructed CRT */
186
+ const char *subject_name; /* subject name for certificate */
187
+ mbedtls_x509_san_list *san_list; /* subjectAltName for certificate */
188
+ const char *issuer_name; /* issuer name for certificate */
189
+ const char *not_before; /* validity period not before */
190
+ const char *not_after; /* validity period not after */
191
+ const char *serial; /* serial number string (decimal) */
192
+ const char *serial_hex; /* serial number string (hex) */
193
+ int selfsign; /* selfsign the certificate */
194
+ int is_ca; /* is a CA certificate */
195
+ int max_pathlen; /* maximum CA path length */
196
+ int authority_identifier; /* add authority identifier to CRT */
197
+ int subject_identifier; /* add subject identifier to CRT */
198
+ int basic_constraints; /* add basic constraints ext to CRT */
199
+ int version; /* CRT version */
200
+ mbedtls_md_type_t md; /* Hash used for signing */
201
+ unsigned char key_usage; /* key usage flags */
202
+ mbedtls_asn1_sequence *ext_key_usage; /* extended key usages */
203
+ unsigned char ns_cert_type; /* NS cert type */
204
+ int format; /* format */
205
+ } opt;
206
+
207
+ int write_certificate(mbedtls_x509write_cert *crt, const char *output_file,
208
+ int (*f_rng)(void *, unsigned char *, size_t),
209
+ void *p_rng)
210
+ {
211
+ int ret;
212
+ FILE *f;
213
+ unsigned char output_buf[4096];
214
+ unsigned char *output_start;
215
+ size_t len = 0;
216
+
217
+ memset(output_buf, 0, 4096);
218
+ if (opt.format == FORMAT_DER) {
219
+ ret = mbedtls_x509write_crt_der(crt, output_buf, 4096,
220
+ f_rng, p_rng);
221
+ if (ret < 0) {
222
+ return ret;
223
+ }
224
+
225
+ len = ret;
226
+ output_start = output_buf + 4096 - len;
227
+ } else {
228
+ ret = mbedtls_x509write_crt_pem(crt, output_buf, 4096,
229
+ f_rng, p_rng);
230
+ if (ret < 0) {
231
+ return ret;
232
+ }
233
+
234
+ len = strlen((char *) output_buf);
235
+ output_start = output_buf;
236
+ }
237
+
238
+ if ((f = fopen(output_file, "w")) == NULL) {
239
+ return -1;
240
+ }
241
+
242
+ if (fwrite(output_start, 1, len, f) != len) {
243
+ fclose(f);
244
+ return -1;
245
+ }
246
+
247
+ fclose(f);
248
+
249
+ return 0;
250
+ }
251
+
252
+ int parse_serial_decimal_format(unsigned char *obuf, size_t obufmax,
253
+ const char *ibuf, size_t *len)
254
+ {
255
+ unsigned long long int dec;
256
+ unsigned int remaining_bytes = sizeof(dec);
257
+ unsigned char *p = obuf;
258
+ unsigned char val;
259
+ char *end_ptr = NULL;
260
+
261
+ errno = 0;
262
+ dec = strtoull(ibuf, &end_ptr, 10);
263
+
264
+ if ((errno != 0) || (end_ptr == ibuf)) {
265
+ return -1;
266
+ }
267
+
268
+ *len = 0;
269
+
270
+ while (remaining_bytes > 0) {
271
+ if (obufmax < (*len + 1)) {
272
+ return -1;
273
+ }
274
+
275
+ val = (dec >> ((remaining_bytes - 1) * 8)) & 0xFF;
276
+
277
+ /* Skip leading zeros */
278
+ if ((val != 0) || (*len != 0)) {
279
+ *p = val;
280
+ (*len)++;
281
+ p++;
282
+ }
283
+
284
+ remaining_bytes--;
285
+ }
286
+
287
+ return 0;
288
+ }
289
+
290
+ int main(int argc, char *argv[])
291
+ {
292
+ int ret = 1;
293
+ int exit_code = MBEDTLS_EXIT_FAILURE;
294
+ mbedtls_x509_crt issuer_crt;
295
+ mbedtls_pk_context loaded_issuer_key, loaded_subject_key;
296
+ mbedtls_pk_context *issuer_key = &loaded_issuer_key,
297
+ *subject_key = &loaded_subject_key;
298
+ char buf[1024];
299
+ char issuer_name[256];
300
+ int i;
301
+ char *p, *q, *r;
302
+ #if defined(MBEDTLS_X509_CSR_PARSE_C)
303
+ char subject_name[256];
304
+ mbedtls_x509_csr csr;
305
+ #endif
306
+ mbedtls_x509write_cert crt;
307
+ serial_format_t serial_frmt = SERIAL_FRMT_UNSPEC;
308
+ unsigned char serial[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN];
309
+ size_t serial_len;
310
+ mbedtls_asn1_sequence *ext_key_usage;
311
+ mbedtls_entropy_context entropy;
312
+ mbedtls_ctr_drbg_context ctr_drbg;
313
+ const char *pers = "crt example app";
314
+ mbedtls_x509_san_list *cur, *prev;
315
+ mbedtls_asn1_named_data *ext_san_dirname = NULL;
316
+ uint8_t ip[4] = { 0 };
317
+ /*
318
+ * Set to sane values
319
+ */
320
+ mbedtls_x509write_crt_init(&crt);
321
+ mbedtls_pk_init(&loaded_issuer_key);
322
+ mbedtls_pk_init(&loaded_subject_key);
323
+ mbedtls_ctr_drbg_init(&ctr_drbg);
324
+ mbedtls_entropy_init(&entropy);
325
+ #if defined(MBEDTLS_X509_CSR_PARSE_C)
326
+ mbedtls_x509_csr_init(&csr);
327
+ #endif
328
+ mbedtls_x509_crt_init(&issuer_crt);
329
+ memset(buf, 0, sizeof(buf));
330
+ memset(serial, 0, sizeof(serial));
331
+
332
+ #if defined(MBEDTLS_USE_PSA_CRYPTO)
333
+ psa_status_t status = psa_crypto_init();
334
+ if (status != PSA_SUCCESS) {
335
+ mbedtls_fprintf(stderr, "Failed to initialize PSA Crypto implementation: %d\n",
336
+ (int) status);
337
+ goto exit;
338
+ }
339
+ #endif /* MBEDTLS_USE_PSA_CRYPTO */
340
+
341
+ if (argc < 2) {
342
+ usage:
343
+ mbedtls_printf(USAGE);
344
+ goto exit;
345
+ }
346
+
347
+ opt.issuer_crt = DFL_ISSUER_CRT;
348
+ opt.request_file = DFL_REQUEST_FILE;
349
+ opt.subject_key = DFL_SUBJECT_KEY;
350
+ opt.issuer_key = DFL_ISSUER_KEY;
351
+ opt.subject_pwd = DFL_SUBJECT_PWD;
352
+ opt.issuer_pwd = DFL_ISSUER_PWD;
353
+ opt.output_file = DFL_OUTPUT_FILENAME;
354
+ opt.subject_name = DFL_SUBJECT_NAME;
355
+ opt.issuer_name = DFL_ISSUER_NAME;
356
+ opt.not_before = DFL_NOT_BEFORE;
357
+ opt.not_after = DFL_NOT_AFTER;
358
+ opt.serial = DFL_SERIAL;
359
+ opt.serial_hex = DFL_SERIAL_HEX;
360
+ opt.selfsign = DFL_SELFSIGN;
361
+ opt.is_ca = DFL_IS_CA;
362
+ opt.max_pathlen = DFL_MAX_PATHLEN;
363
+ opt.key_usage = DFL_KEY_USAGE;
364
+ opt.ext_key_usage = DFL_EXT_KEY_USAGE;
365
+ opt.ns_cert_type = DFL_NS_CERT_TYPE;
366
+ opt.version = DFL_VERSION - 1;
367
+ opt.md = DFL_DIGEST;
368
+ opt.subject_identifier = DFL_SUBJ_IDENT;
369
+ opt.authority_identifier = DFL_AUTH_IDENT;
370
+ opt.basic_constraints = DFL_CONSTRAINTS;
371
+ opt.format = DFL_FORMAT;
372
+ opt.san_list = NULL;
373
+
374
+ for (i = 1; i < argc; i++) {
375
+
376
+ p = argv[i];
377
+ if ((q = strchr(p, '=')) == NULL) {
378
+ goto usage;
379
+ }
380
+ *q++ = '\0';
381
+
382
+ if (strcmp(p, "request_file") == 0) {
383
+ opt.request_file = q;
384
+ } else if (strcmp(p, "subject_key") == 0) {
385
+ opt.subject_key = q;
386
+ } else if (strcmp(p, "issuer_key") == 0) {
387
+ opt.issuer_key = q;
388
+ } else if (strcmp(p, "subject_pwd") == 0) {
389
+ opt.subject_pwd = q;
390
+ } else if (strcmp(p, "issuer_pwd") == 0) {
391
+ opt.issuer_pwd = q;
392
+ } else if (strcmp(p, "issuer_crt") == 0) {
393
+ opt.issuer_crt = q;
394
+ } else if (strcmp(p, "output_file") == 0) {
395
+ opt.output_file = q;
396
+ } else if (strcmp(p, "subject_name") == 0) {
397
+ opt.subject_name = q;
398
+ } else if (strcmp(p, "issuer_name") == 0) {
399
+ opt.issuer_name = q;
400
+ } else if (strcmp(p, "not_before") == 0) {
401
+ opt.not_before = q;
402
+ } else if (strcmp(p, "not_after") == 0) {
403
+ opt.not_after = q;
404
+ } else if (strcmp(p, "serial") == 0) {
405
+ if (serial_frmt != SERIAL_FRMT_UNSPEC) {
406
+ mbedtls_printf("Invalid attempt to set the serial more than once\n");
407
+ goto usage;
408
+ }
409
+ serial_frmt = SERIAL_FRMT_DEC;
410
+ opt.serial = q;
411
+ } else if (strcmp(p, "serial_hex") == 0) {
412
+ if (serial_frmt != SERIAL_FRMT_UNSPEC) {
413
+ mbedtls_printf("Invalid attempt to set the serial more than once\n");
414
+ goto usage;
415
+ }
416
+ serial_frmt = SERIAL_FRMT_HEX;
417
+ opt.serial_hex = q;
418
+ } else if (strcmp(p, "authority_identifier") == 0) {
419
+ opt.authority_identifier = atoi(q);
420
+ if (opt.authority_identifier != 0 &&
421
+ opt.authority_identifier != 1) {
422
+ mbedtls_printf("Invalid argument for option %s\n", p);
423
+ goto usage;
424
+ }
425
+ } else if (strcmp(p, "subject_identifier") == 0) {
426
+ opt.subject_identifier = atoi(q);
427
+ if (opt.subject_identifier != 0 &&
428
+ opt.subject_identifier != 1) {
429
+ mbedtls_printf("Invalid argument for option %s\n", p);
430
+ goto usage;
431
+ }
432
+ } else if (strcmp(p, "basic_constraints") == 0) {
433
+ opt.basic_constraints = atoi(q);
434
+ if (opt.basic_constraints != 0 &&
435
+ opt.basic_constraints != 1) {
436
+ mbedtls_printf("Invalid argument for option %s\n", p);
437
+ goto usage;
438
+ }
439
+ } else if (strcmp(p, "md") == 0) {
440
+ const mbedtls_md_info_t *md_info =
441
+ mbedtls_md_info_from_string(q);
442
+ if (md_info == NULL) {
443
+ mbedtls_printf("Invalid argument for option %s\n", p);
444
+ goto usage;
445
+ }
446
+ opt.md = mbedtls_md_get_type(md_info);
447
+ } else if (strcmp(p, "version") == 0) {
448
+ opt.version = atoi(q);
449
+ if (opt.version < 1 || opt.version > 3) {
450
+ mbedtls_printf("Invalid argument for option %s\n", p);
451
+ goto usage;
452
+ }
453
+ opt.version--;
454
+ } else if (strcmp(p, "selfsign") == 0) {
455
+ opt.selfsign = atoi(q);
456
+ if (opt.selfsign < 0 || opt.selfsign > 1) {
457
+ mbedtls_printf("Invalid argument for option %s\n", p);
458
+ goto usage;
459
+ }
460
+ } else if (strcmp(p, "is_ca") == 0) {
461
+ opt.is_ca = atoi(q);
462
+ if (opt.is_ca < 0 || opt.is_ca > 1) {
463
+ mbedtls_printf("Invalid argument for option %s\n", p);
464
+ goto usage;
465
+ }
466
+ } else if (strcmp(p, "max_pathlen") == 0) {
467
+ opt.max_pathlen = atoi(q);
468
+ if (opt.max_pathlen < -1 || opt.max_pathlen > 127) {
469
+ mbedtls_printf("Invalid argument for option %s\n", p);
470
+ goto usage;
471
+ }
472
+ } else if (strcmp(p, "key_usage") == 0) {
473
+ while (q != NULL) {
474
+ if ((r = strchr(q, ',')) != NULL) {
475
+ *r++ = '\0';
476
+ }
477
+
478
+ if (strcmp(q, "digital_signature") == 0) {
479
+ opt.key_usage |= MBEDTLS_X509_KU_DIGITAL_SIGNATURE;
480
+ } else if (strcmp(q, "non_repudiation") == 0) {
481
+ opt.key_usage |= MBEDTLS_X509_KU_NON_REPUDIATION;
482
+ } else if (strcmp(q, "key_encipherment") == 0) {
483
+ opt.key_usage |= MBEDTLS_X509_KU_KEY_ENCIPHERMENT;
484
+ } else if (strcmp(q, "data_encipherment") == 0) {
485
+ opt.key_usage |= MBEDTLS_X509_KU_DATA_ENCIPHERMENT;
486
+ } else if (strcmp(q, "key_agreement") == 0) {
487
+ opt.key_usage |= MBEDTLS_X509_KU_KEY_AGREEMENT;
488
+ } else if (strcmp(q, "key_cert_sign") == 0) {
489
+ opt.key_usage |= MBEDTLS_X509_KU_KEY_CERT_SIGN;
490
+ } else if (strcmp(q, "crl_sign") == 0) {
491
+ opt.key_usage |= MBEDTLS_X509_KU_CRL_SIGN;
492
+ } else {
493
+ mbedtls_printf("Invalid argument for option %s\n", p);
494
+ goto usage;
495
+ }
496
+
497
+ q = r;
498
+ }
499
+ } else if (strcmp(p, "ext_key_usage") == 0) {
500
+ mbedtls_asn1_sequence **tail = &opt.ext_key_usage;
501
+
502
+ while (q != NULL) {
503
+ if ((r = strchr(q, ',')) != NULL) {
504
+ *r++ = '\0';
505
+ }
506
+
507
+ ext_key_usage = mbedtls_calloc(1, sizeof(mbedtls_asn1_sequence));
508
+ ext_key_usage->buf.tag = MBEDTLS_ASN1_OID;
509
+ if (strcmp(q, "serverAuth") == 0) {
510
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_SERVER_AUTH);
511
+ } else if (strcmp(q, "clientAuth") == 0) {
512
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_CLIENT_AUTH);
513
+ } else if (strcmp(q, "codeSigning") == 0) {
514
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_CODE_SIGNING);
515
+ } else if (strcmp(q, "emailProtection") == 0) {
516
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_EMAIL_PROTECTION);
517
+ } else if (strcmp(q, "timeStamping") == 0) {
518
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_TIME_STAMPING);
519
+ } else if (strcmp(q, "OCSPSigning") == 0) {
520
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING);
521
+ } else if (strcmp(q, "any") == 0) {
522
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_ANY_EXTENDED_KEY_USAGE);
523
+ } else {
524
+ mbedtls_printf("Invalid argument for option %s\n", p);
525
+ goto usage;
526
+ }
527
+
528
+ *tail = ext_key_usage;
529
+ tail = &ext_key_usage->next;
530
+
531
+ q = r;
532
+ }
533
+ } else if (strcmp(p, "san") == 0) {
534
+ char *subtype_value;
535
+ prev = NULL;
536
+
537
+ while (q != NULL) {
538
+ char *semicolon;
539
+ r = q;
540
+
541
+ /* Find the first non-escaped ; occurrence and remove escaped ones */
542
+ do {
543
+ if ((semicolon = strchr(r, ';')) != NULL) {
544
+ if (*(semicolon-1) != '\\') {
545
+ r = semicolon;
546
+ break;
547
+ }
548
+ /* Remove the escape character */
549
+ size_t size_left = strlen(semicolon);
550
+ memmove(semicolon-1, semicolon, size_left);
551
+ *(semicolon + size_left - 1) = '\0';
552
+ /* r will now point at the character after the semicolon */
553
+ r = semicolon;
554
+ }
555
+
556
+ } while (semicolon != NULL);
557
+
558
+ if (semicolon != NULL) {
559
+ *r++ = '\0';
560
+ } else {
561
+ r = NULL;
562
+ }
563
+
564
+ cur = mbedtls_calloc(1, sizeof(mbedtls_x509_san_list));
565
+ if (cur == NULL) {
566
+ mbedtls_printf("Not enough memory for subjectAltName list\n");
567
+ goto usage;
568
+ }
569
+
570
+ cur->next = NULL;
571
+
572
+ if ((subtype_value = strchr(q, ':')) != NULL) {
573
+ *subtype_value++ = '\0';
574
+ }
575
+ if (strcmp(q, "RFC822") == 0) {
576
+ cur->node.type = MBEDTLS_X509_SAN_RFC822_NAME;
577
+ } else if (strcmp(q, "URI") == 0) {
578
+ cur->node.type = MBEDTLS_X509_SAN_UNIFORM_RESOURCE_IDENTIFIER;
579
+ } else if (strcmp(q, "DNS") == 0) {
580
+ cur->node.type = MBEDTLS_X509_SAN_DNS_NAME;
581
+ } else if (strcmp(q, "IP") == 0) {
582
+ size_t ip_len = 0;
583
+ cur->node.type = MBEDTLS_X509_SAN_IP_ADDRESS;
584
+ ip_len = mbedtls_x509_crt_parse_cn_inet_pton(subtype_value, ip);
585
+ if (ip_len == 0) {
586
+ mbedtls_printf("mbedtls_x509_crt_parse_cn_inet_pton failed to parse %s\n",
587
+ subtype_value);
588
+ goto exit;
589
+ }
590
+ cur->node.san.unstructured_name.p = (unsigned char *) ip;
591
+ cur->node.san.unstructured_name.len = sizeof(ip);
592
+ } else if (strcmp(q, "DN") == 0) {
593
+ cur->node.type = MBEDTLS_X509_SAN_DIRECTORY_NAME;
594
+ if ((ret = mbedtls_x509_string_to_names(&ext_san_dirname,
595
+ subtype_value)) != 0) {
596
+ mbedtls_strerror(ret, buf, sizeof(buf));
597
+ mbedtls_printf(
598
+ " failed\n ! mbedtls_x509_string_to_names "
599
+ "returned -0x%04x - %s\n\n",
600
+ (unsigned int) -ret, buf);
601
+ goto exit;
602
+ }
603
+ cur->node.san.directory_name = *ext_san_dirname;
604
+ } else {
605
+ mbedtls_free(cur);
606
+ goto usage;
607
+ }
608
+
609
+ if (cur->node.type == MBEDTLS_X509_SAN_RFC822_NAME ||
610
+ cur->node.type == MBEDTLS_X509_SAN_UNIFORM_RESOURCE_IDENTIFIER ||
611
+ cur->node.type == MBEDTLS_X509_SAN_DNS_NAME) {
612
+ q = subtype_value;
613
+ cur->node.san.unstructured_name.p = (unsigned char *) q;
614
+ cur->node.san.unstructured_name.len = strlen(q);
615
+ }
616
+
617
+ if (prev == NULL) {
618
+ opt.san_list = cur;
619
+ } else {
620
+ prev->next = cur;
621
+ }
622
+
623
+ prev = cur;
624
+ q = r;
625
+ }
626
+ } else if (strcmp(p, "ns_cert_type") == 0) {
627
+ while (q != NULL) {
628
+ if ((r = strchr(q, ',')) != NULL) {
629
+ *r++ = '\0';
630
+ }
631
+
632
+ if (strcmp(q, "ssl_client") == 0) {
633
+ opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT;
634
+ } else if (strcmp(q, "ssl_server") == 0) {
635
+ opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER;
636
+ } else if (strcmp(q, "email") == 0) {
637
+ opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL;
638
+ } else if (strcmp(q, "object_signing") == 0) {
639
+ opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING;
640
+ } else if (strcmp(q, "ssl_ca") == 0) {
641
+ opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CA;
642
+ } else if (strcmp(q, "email_ca") == 0) {
643
+ opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA;
644
+ } else if (strcmp(q, "object_signing_ca") == 0) {
645
+ opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA;
646
+ } else {
647
+ mbedtls_printf("Invalid argument for option %s\n", p);
648
+ goto usage;
649
+ }
650
+
651
+ q = r;
652
+ }
653
+ } else if (strcmp(p, "format") == 0) {
654
+ if (strcmp(q, "der") == 0) {
655
+ opt.format = FORMAT_DER;
656
+ } else if (strcmp(q, "pem") == 0) {
657
+ opt.format = FORMAT_PEM;
658
+ } else {
659
+ mbedtls_printf("Invalid argument for option %s\n", p);
660
+ goto usage;
661
+ }
662
+ } else {
663
+ goto usage;
664
+ }
665
+ }
666
+
667
+ mbedtls_printf("\n");
668
+
669
+ /*
670
+ * 0. Seed the PRNG
671
+ */
672
+ mbedtls_printf(" . Seeding the random number generator...");
673
+ fflush(stdout);
674
+
675
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
676
+ (const unsigned char *) pers,
677
+ strlen(pers))) != 0) {
678
+ mbedtls_strerror(ret, buf, sizeof(buf));
679
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d - %s\n",
680
+ ret, buf);
681
+ goto exit;
682
+ }
683
+
684
+ mbedtls_printf(" ok\n");
685
+
686
+ // Parse serial to MPI
687
+ //
688
+ mbedtls_printf(" . Reading serial number...");
689
+ fflush(stdout);
690
+
691
+ if (serial_frmt == SERIAL_FRMT_HEX) {
692
+ ret = mbedtls_test_unhexify(serial, sizeof(serial),
693
+ opt.serial_hex, &serial_len);
694
+ } else { // SERIAL_FRMT_DEC || SERIAL_FRMT_UNSPEC
695
+ ret = parse_serial_decimal_format(serial, sizeof(serial),
696
+ opt.serial, &serial_len);
697
+ }
698
+
699
+ if (ret != 0) {
700
+ mbedtls_printf(" failed\n ! Unable to parse serial\n");
701
+ goto exit;
702
+ }
703
+
704
+ mbedtls_printf(" ok\n");
705
+
706
+ // Parse issuer certificate if present
707
+ //
708
+ if (!opt.selfsign && strlen(opt.issuer_crt)) {
709
+ /*
710
+ * 1.0.a. Load the certificates
711
+ */
712
+ mbedtls_printf(" . Loading the issuer certificate ...");
713
+ fflush(stdout);
714
+
715
+ if ((ret = mbedtls_x509_crt_parse_file(&issuer_crt, opt.issuer_crt)) != 0) {
716
+ mbedtls_strerror(ret, buf, sizeof(buf));
717
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file "
718
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
719
+ goto exit;
720
+ }
721
+
722
+ ret = mbedtls_x509_dn_gets(issuer_name, sizeof(issuer_name),
723
+ &issuer_crt.subject);
724
+ if (ret < 0) {
725
+ mbedtls_strerror(ret, buf, sizeof(buf));
726
+ mbedtls_printf(" failed\n ! mbedtls_x509_dn_gets "
727
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
728
+ goto exit;
729
+ }
730
+
731
+ opt.issuer_name = issuer_name;
732
+
733
+ mbedtls_printf(" ok\n");
734
+ }
735
+
736
+ #if defined(MBEDTLS_X509_CSR_PARSE_C)
737
+ // Parse certificate request if present
738
+ //
739
+ if (!opt.selfsign && strlen(opt.request_file)) {
740
+ /*
741
+ * 1.0.b. Load the CSR
742
+ */
743
+ mbedtls_printf(" . Loading the certificate request ...");
744
+ fflush(stdout);
745
+
746
+ if ((ret = mbedtls_x509_csr_parse_file(&csr, opt.request_file)) != 0) {
747
+ mbedtls_strerror(ret, buf, sizeof(buf));
748
+ mbedtls_printf(" failed\n ! mbedtls_x509_csr_parse_file "
749
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
750
+ goto exit;
751
+ }
752
+
753
+ ret = mbedtls_x509_dn_gets(subject_name, sizeof(subject_name),
754
+ &csr.subject);
755
+ if (ret < 0) {
756
+ mbedtls_strerror(ret, buf, sizeof(buf));
757
+ mbedtls_printf(" failed\n ! mbedtls_x509_dn_gets "
758
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
759
+ goto exit;
760
+ }
761
+
762
+ opt.subject_name = subject_name;
763
+ subject_key = &csr.pk;
764
+
765
+ mbedtls_printf(" ok\n");
766
+ }
767
+ #endif /* MBEDTLS_X509_CSR_PARSE_C */
768
+
769
+ /*
770
+ * 1.1. Load the keys
771
+ */
772
+ if (!opt.selfsign && !strlen(opt.request_file)) {
773
+ mbedtls_printf(" . Loading the subject key ...");
774
+ fflush(stdout);
775
+
776
+ ret = mbedtls_pk_parse_keyfile(&loaded_subject_key, opt.subject_key,
777
+ opt.subject_pwd, mbedtls_ctr_drbg_random, &ctr_drbg);
778
+ if (ret != 0) {
779
+ mbedtls_strerror(ret, buf, sizeof(buf));
780
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile "
781
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
782
+ goto exit;
783
+ }
784
+
785
+ mbedtls_printf(" ok\n");
786
+ }
787
+
788
+ mbedtls_printf(" . Loading the issuer key ...");
789
+ fflush(stdout);
790
+
791
+ ret = mbedtls_pk_parse_keyfile(&loaded_issuer_key, opt.issuer_key,
792
+ opt.issuer_pwd, mbedtls_ctr_drbg_random, &ctr_drbg);
793
+ if (ret != 0) {
794
+ mbedtls_strerror(ret, buf, sizeof(buf));
795
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile "
796
+ "returned -x%02x - %s\n\n", (unsigned int) -ret, buf);
797
+ goto exit;
798
+ }
799
+
800
+ // Check if key and issuer certificate match
801
+ //
802
+ if (strlen(opt.issuer_crt)) {
803
+ if (mbedtls_pk_check_pair(&issuer_crt.pk, issuer_key,
804
+ mbedtls_ctr_drbg_random, &ctr_drbg) != 0) {
805
+ mbedtls_printf(" failed\n ! issuer_key does not match "
806
+ "issuer certificate\n\n");
807
+ goto exit;
808
+ }
809
+ }
810
+
811
+ mbedtls_printf(" ok\n");
812
+
813
+ if (opt.selfsign) {
814
+ opt.subject_name = opt.issuer_name;
815
+ subject_key = issuer_key;
816
+ }
817
+
818
+ mbedtls_x509write_crt_set_subject_key(&crt, subject_key);
819
+ mbedtls_x509write_crt_set_issuer_key(&crt, issuer_key);
820
+
821
+ /*
822
+ * 1.0. Check the names for validity
823
+ */
824
+ if ((ret = mbedtls_x509write_crt_set_subject_name(&crt, opt.subject_name)) != 0) {
825
+ mbedtls_strerror(ret, buf, sizeof(buf));
826
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_subject_name "
827
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
828
+ goto exit;
829
+ }
830
+
831
+ if ((ret = mbedtls_x509write_crt_set_issuer_name(&crt, opt.issuer_name)) != 0) {
832
+ mbedtls_strerror(ret, buf, sizeof(buf));
833
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_issuer_name "
834
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
835
+ goto exit;
836
+ }
837
+
838
+ mbedtls_printf(" . Setting certificate values ...");
839
+ fflush(stdout);
840
+
841
+ mbedtls_x509write_crt_set_version(&crt, opt.version);
842
+ mbedtls_x509write_crt_set_md_alg(&crt, opt.md);
843
+
844
+ ret = mbedtls_x509write_crt_set_serial_raw(&crt, serial, serial_len);
845
+ if (ret != 0) {
846
+ mbedtls_strerror(ret, buf, sizeof(buf));
847
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_serial_raw "
848
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
849
+ goto exit;
850
+ }
851
+
852
+ ret = mbedtls_x509write_crt_set_validity(&crt, opt.not_before, opt.not_after);
853
+ if (ret != 0) {
854
+ mbedtls_strerror(ret, buf, sizeof(buf));
855
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_validity "
856
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
857
+ goto exit;
858
+ }
859
+
860
+ mbedtls_printf(" ok\n");
861
+
862
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
863
+ opt.basic_constraints != 0) {
864
+ mbedtls_printf(" . Adding the Basic Constraints extension ...");
865
+ fflush(stdout);
866
+
867
+ ret = mbedtls_x509write_crt_set_basic_constraints(&crt, opt.is_ca,
868
+ opt.max_pathlen);
869
+ if (ret != 0) {
870
+ mbedtls_strerror(ret, buf, sizeof(buf));
871
+ mbedtls_printf(" failed\n ! x509write_crt_set_basic_constraints "
872
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
873
+ goto exit;
874
+ }
875
+
876
+ mbedtls_printf(" ok\n");
877
+ }
878
+
879
+ #if defined(MBEDTLS_MD_CAN_SHA1)
880
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
881
+ opt.subject_identifier != 0) {
882
+ mbedtls_printf(" . Adding the Subject Key Identifier ...");
883
+ fflush(stdout);
884
+
885
+ ret = mbedtls_x509write_crt_set_subject_key_identifier(&crt);
886
+ if (ret != 0) {
887
+ mbedtls_strerror(ret, buf, sizeof(buf));
888
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_subject"
889
+ "_key_identifier returned -0x%04x - %s\n\n",
890
+ (unsigned int) -ret, buf);
891
+ goto exit;
892
+ }
893
+
894
+ mbedtls_printf(" ok\n");
895
+ }
896
+
897
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
898
+ opt.authority_identifier != 0) {
899
+ mbedtls_printf(" . Adding the Authority Key Identifier ...");
900
+ fflush(stdout);
901
+
902
+ ret = mbedtls_x509write_crt_set_authority_key_identifier(&crt);
903
+ if (ret != 0) {
904
+ mbedtls_strerror(ret, buf, sizeof(buf));
905
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_authority_"
906
+ "key_identifier returned -0x%04x - %s\n\n",
907
+ (unsigned int) -ret, buf);
908
+ goto exit;
909
+ }
910
+
911
+ mbedtls_printf(" ok\n");
912
+ }
913
+ #endif /* MBEDTLS_MD_CAN_SHA1 */
914
+
915
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
916
+ opt.key_usage != 0) {
917
+ mbedtls_printf(" . Adding the Key Usage extension ...");
918
+ fflush(stdout);
919
+
920
+ ret = mbedtls_x509write_crt_set_key_usage(&crt, opt.key_usage);
921
+ if (ret != 0) {
922
+ mbedtls_strerror(ret, buf, sizeof(buf));
923
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_key_usage "
924
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
925
+ goto exit;
926
+ }
927
+
928
+ mbedtls_printf(" ok\n");
929
+ }
930
+
931
+ if (opt.san_list != NULL) {
932
+ ret = mbedtls_x509write_crt_set_subject_alternative_name(&crt, opt.san_list);
933
+
934
+ if (ret != 0) {
935
+ mbedtls_printf(
936
+ " failed\n ! mbedtls_x509write_crt_set_subject_alternative_name returned %d",
937
+ ret);
938
+ goto exit;
939
+ }
940
+ }
941
+
942
+ if (opt.ext_key_usage) {
943
+ mbedtls_printf(" . Adding the Extended Key Usage extension ...");
944
+ fflush(stdout);
945
+
946
+ ret = mbedtls_x509write_crt_set_ext_key_usage(&crt, opt.ext_key_usage);
947
+ if (ret != 0) {
948
+ mbedtls_strerror(ret, buf, sizeof(buf));
949
+ mbedtls_printf(
950
+ " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n",
951
+ (unsigned int) -ret,
952
+ buf);
953
+ goto exit;
954
+ }
955
+
956
+ mbedtls_printf(" ok\n");
957
+ }
958
+
959
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
960
+ opt.ns_cert_type != 0) {
961
+ mbedtls_printf(" . Adding the NS Cert Type extension ...");
962
+ fflush(stdout);
963
+
964
+ ret = mbedtls_x509write_crt_set_ns_cert_type(&crt, opt.ns_cert_type);
965
+ if (ret != 0) {
966
+ mbedtls_strerror(ret, buf, sizeof(buf));
967
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_ns_cert_type "
968
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
969
+ goto exit;
970
+ }
971
+
972
+ mbedtls_printf(" ok\n");
973
+ }
974
+
975
+ /*
976
+ * 1.2. Writing the certificate
977
+ */
978
+ mbedtls_printf(" . Writing the certificate...");
979
+ fflush(stdout);
980
+
981
+ if ((ret = write_certificate(&crt, opt.output_file,
982
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
983
+ mbedtls_strerror(ret, buf, sizeof(buf));
984
+ mbedtls_printf(" failed\n ! write_certificate -0x%04x - %s\n\n",
985
+ (unsigned int) -ret, buf);
986
+ goto exit;
987
+ }
988
+
989
+ mbedtls_printf(" ok\n");
990
+
991
+ exit_code = MBEDTLS_EXIT_SUCCESS;
992
+
993
+ exit:
994
+ #if defined(MBEDTLS_X509_CSR_PARSE_C)
995
+ mbedtls_x509_csr_free(&csr);
996
+ #endif /* MBEDTLS_X509_CSR_PARSE_C */
997
+ mbedtls_asn1_free_named_data_list(&ext_san_dirname);
998
+ mbedtls_x509_crt_free(&issuer_crt);
999
+ mbedtls_x509write_crt_free(&crt);
1000
+ mbedtls_pk_free(&loaded_subject_key);
1001
+ mbedtls_pk_free(&loaded_issuer_key);
1002
+ mbedtls_ctr_drbg_free(&ctr_drbg);
1003
+ mbedtls_entropy_free(&entropy);
1004
+ #if defined(MBEDTLS_USE_PSA_CRYPTO)
1005
+ mbedtls_psa_crypto_free();
1006
+ #endif /* MBEDTLS_USE_PSA_CRYPTO */
1007
+
1008
+ mbedtls_exit(exit_code);
1009
+ }
1010
+ #endif /* MBEDTLS_X509_CRT_WRITE_C && MBEDTLS_X509_CRT_PARSE_C &&
1011
+ MBEDTLS_FS_IO && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C &&
1012
+ MBEDTLS_ERROR_C && MBEDTLS_PEM_WRITE_C */