@scriptc/runtime 0.0.0 → 0.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 (416) hide show
  1. package/LICENSE +202 -0
  2. package/package.json +16 -6
  3. package/src/scr_array.c +488 -0
  4. package/src/scr_assert.c +1393 -0
  5. package/src/scr_async.c +2593 -0
  6. package/src/scr_async_dyn.c +607 -0
  7. package/src/scr_bytes.c +1425 -0
  8. package/src/scr_bytes_io.c +161 -0
  9. package/src/scr_child.c +3587 -0
  10. package/src/scr_closure.c +214 -0
  11. package/src/scr_console.c +143 -0
  12. package/src/scr_cycle.c +218 -0
  13. package/src/scr_dc.c +805 -0
  14. package/src/scr_dgram.c +1007 -0
  15. package/src/scr_dyn_handle.c +154 -0
  16. package/src/scr_dyn_invoke.c +644 -0
  17. package/src/scr_error.c +332 -0
  18. package/src/scr_events.c +714 -0
  19. package/src/scr_events_emitter.c +699 -0
  20. package/src/scr_exception.c +242 -0
  21. package/src/scr_fetch.c +1130 -0
  22. package/src/scr_fetch_curl.c +654 -0
  23. package/src/scr_http.c +3482 -0
  24. package/src/scr_http2.c +3030 -0
  25. package/src/scr_inspect.c +803 -0
  26. package/src/scr_inspect_island.c +51 -0
  27. package/src/scr_island.c +9363 -0
  28. package/src/scr_json.c +2151 -0
  29. package/src/scr_lib.c +3612 -0
  30. package/src/scr_loop_epoll.c +241 -0
  31. package/src/scr_loop_kqueue.c +121 -0
  32. package/src/scr_loop_wsapoll.c +208 -0
  33. package/src/scr_map.c +591 -0
  34. package/src/scr_net.c +3017 -0
  35. package/src/scr_net_island.c +458 -0
  36. package/src/scr_number.c +115 -0
  37. package/src/scr_object.c +25 -0
  38. package/src/scr_path.c +1266 -0
  39. package/src/scr_platform.h +119 -0
  40. package/src/scr_readline.c +287 -0
  41. package/src/scr_regex.c +1080 -0
  42. package/src/scr_runtime.h +5046 -0
  43. package/src/scr_stream.c +2877 -0
  44. package/src/scr_string.c +1264 -0
  45. package/src/scr_symbol.c +132 -0
  46. package/src/scr_test.c +662 -0
  47. package/src/scr_tls.c +1520 -0
  48. package/src/scr_union.c +105 -0
  49. package/src/scr_url.c +911 -0
  50. package/src/scr_url_internal.h +29 -0
  51. package/src/scr_url_params.c +561 -0
  52. package/src/scr_watch.c +568 -0
  53. package/src/scr_web.c +1778 -0
  54. package/src/scr_win.c +76 -0
  55. package/src/scr_zlib.c +197 -0
  56. package/src/scr_zlib_island.c +15 -0
  57. package/vendor/README.md +52 -0
  58. package/vendor/curl/COPYRIGHT +534 -0
  59. package/vendor/curl/include/curl/curl.h +3214 -0
  60. package/vendor/curl/include/curl/curlver.h +79 -0
  61. package/vendor/curl/include/curl/easy.h +125 -0
  62. package/vendor/curl/include/curl/header.h +74 -0
  63. package/vendor/curl/include/curl/mprintf.h +52 -0
  64. package/vendor/curl/include/curl/multi.h +460 -0
  65. package/vendor/curl/include/curl/options.h +70 -0
  66. package/vendor/curl/include/curl/stdcheaders.h +35 -0
  67. package/vendor/curl/include/curl/system.h +508 -0
  68. package/vendor/curl/include/curl/typecheck-gcc.h +716 -0
  69. package/vendor/curl/include/curl/urlapi.h +149 -0
  70. package/vendor/curl/include/curl/websockets.h +84 -0
  71. package/vendor/mbedtls/LICENSE +553 -0
  72. package/vendor/mbedtls/include/CMakeLists.txt +22 -0
  73. package/vendor/mbedtls/include/mbedtls/aes.h +631 -0
  74. package/vendor/mbedtls/include/mbedtls/aria.h +343 -0
  75. package/vendor/mbedtls/include/mbedtls/asn1.h +642 -0
  76. package/vendor/mbedtls/include/mbedtls/asn1write.h +390 -0
  77. package/vendor/mbedtls/include/mbedtls/base64.h +82 -0
  78. package/vendor/mbedtls/include/mbedtls/bignum.h +1088 -0
  79. package/vendor/mbedtls/include/mbedtls/block_cipher.h +76 -0
  80. package/vendor/mbedtls/include/mbedtls/build_info.h +194 -0
  81. package/vendor/mbedtls/include/mbedtls/camellia.h +305 -0
  82. package/vendor/mbedtls/include/mbedtls/ccm.h +526 -0
  83. package/vendor/mbedtls/include/mbedtls/chacha20.h +209 -0
  84. package/vendor/mbedtls/include/mbedtls/chachapoly.h +351 -0
  85. package/vendor/mbedtls/include/mbedtls/check_config.h +1149 -0
  86. package/vendor/mbedtls/include/mbedtls/cipher.h +1250 -0
  87. package/vendor/mbedtls/include/mbedtls/cmac.h +246 -0
  88. package/vendor/mbedtls/include/mbedtls/compat-2.x.h +46 -0
  89. package/vendor/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h +578 -0
  90. package/vendor/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h +873 -0
  91. package/vendor/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h +359 -0
  92. package/vendor/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h +145 -0
  93. package/vendor/mbedtls/include/mbedtls/config_adjust_ssl.h +91 -0
  94. package/vendor/mbedtls/include/mbedtls/config_adjust_x509.h +35 -0
  95. package/vendor/mbedtls/include/mbedtls/config_psa.h +61 -0
  96. package/vendor/mbedtls/include/mbedtls/constant_time.h +36 -0
  97. package/vendor/mbedtls/include/mbedtls/ctr_drbg.h +596 -0
  98. package/vendor/mbedtls/include/mbedtls/debug.h +156 -0
  99. package/vendor/mbedtls/include/mbedtls/des.h +385 -0
  100. package/vendor/mbedtls/include/mbedtls/dhm.h +972 -0
  101. package/vendor/mbedtls/include/mbedtls/ecdh.h +455 -0
  102. package/vendor/mbedtls/include/mbedtls/ecdsa.h +674 -0
  103. package/vendor/mbedtls/include/mbedtls/ecjpake.h +298 -0
  104. package/vendor/mbedtls/include/mbedtls/ecp.h +1517 -0
  105. package/vendor/mbedtls/include/mbedtls/entropy.h +274 -0
  106. package/vendor/mbedtls/include/mbedtls/error.h +201 -0
  107. package/vendor/mbedtls/include/mbedtls/gcm.h +387 -0
  108. package/vendor/mbedtls/include/mbedtls/hkdf.h +124 -0
  109. package/vendor/mbedtls/include/mbedtls/hmac_drbg.h +434 -0
  110. package/vendor/mbedtls/include/mbedtls/lms.h +440 -0
  111. package/vendor/mbedtls/include/mbedtls/mbedtls_config.h +4446 -0
  112. package/vendor/mbedtls/include/mbedtls/md.h +526 -0
  113. package/vendor/mbedtls/include/mbedtls/md5.h +190 -0
  114. package/vendor/mbedtls/include/mbedtls/memory_buffer_alloc.h +142 -0
  115. package/vendor/mbedtls/include/mbedtls/net_sockets.h +299 -0
  116. package/vendor/mbedtls/include/mbedtls/nist_kw.h +166 -0
  117. package/vendor/mbedtls/include/mbedtls/oid.h +727 -0
  118. package/vendor/mbedtls/include/mbedtls/pem.h +160 -0
  119. package/vendor/mbedtls/include/mbedtls/pk.h +1303 -0
  120. package/vendor/mbedtls/include/mbedtls/pkcs12.h +186 -0
  121. package/vendor/mbedtls/include/mbedtls/pkcs5.h +198 -0
  122. package/vendor/mbedtls/include/mbedtls/pkcs7.h +252 -0
  123. package/vendor/mbedtls/include/mbedtls/platform.h +516 -0
  124. package/vendor/mbedtls/include/mbedtls/platform_time.h +79 -0
  125. package/vendor/mbedtls/include/mbedtls/platform_util.h +247 -0
  126. package/vendor/mbedtls/include/mbedtls/poly1305.h +168 -0
  127. package/vendor/mbedtls/include/mbedtls/private_access.h +20 -0
  128. package/vendor/mbedtls/include/mbedtls/psa_util.h +207 -0
  129. package/vendor/mbedtls/include/mbedtls/ripemd160.h +136 -0
  130. package/vendor/mbedtls/include/mbedtls/rsa.h +1170 -0
  131. package/vendor/mbedtls/include/mbedtls/sha1.h +219 -0
  132. package/vendor/mbedtls/include/mbedtls/sha256.h +200 -0
  133. package/vendor/mbedtls/include/mbedtls/sha3.h +172 -0
  134. package/vendor/mbedtls/include/mbedtls/sha512.h +208 -0
  135. package/vendor/mbedtls/include/mbedtls/ssl.h +5887 -0
  136. package/vendor/mbedtls/include/mbedtls/ssl_cache.h +187 -0
  137. package/vendor/mbedtls/include/mbedtls/ssl_ciphersuites.h +482 -0
  138. package/vendor/mbedtls/include/mbedtls/ssl_cookie.h +106 -0
  139. package/vendor/mbedtls/include/mbedtls/ssl_ticket.h +199 -0
  140. package/vendor/mbedtls/include/mbedtls/threading.h +167 -0
  141. package/vendor/mbedtls/include/mbedtls/timing.h +94 -0
  142. package/vendor/mbedtls/include/mbedtls/version.h +78 -0
  143. package/vendor/mbedtls/include/mbedtls/x509.h +500 -0
  144. package/vendor/mbedtls/include/mbedtls/x509_crl.h +184 -0
  145. package/vendor/mbedtls/include/mbedtls/x509_crt.h +1208 -0
  146. package/vendor/mbedtls/include/mbedtls/x509_csr.h +382 -0
  147. package/vendor/mbedtls/include/psa/build_info.h +20 -0
  148. package/vendor/mbedtls/include/psa/crypto.h +4998 -0
  149. package/vendor/mbedtls/include/psa/crypto_adjust_auto_enabled.h +31 -0
  150. package/vendor/mbedtls/include/psa/crypto_adjust_config_dependencies.h +51 -0
  151. package/vendor/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h +101 -0
  152. package/vendor/mbedtls/include/psa/crypto_adjust_config_synonyms.h +49 -0
  153. package/vendor/mbedtls/include/psa/crypto_builtin_composites.h +214 -0
  154. package/vendor/mbedtls/include/psa/crypto_builtin_key_derivation.h +118 -0
  155. package/vendor/mbedtls/include/psa/crypto_builtin_primitives.h +114 -0
  156. package/vendor/mbedtls/include/psa/crypto_compat.h +230 -0
  157. package/vendor/mbedtls/include/psa/crypto_config.h +145 -0
  158. package/vendor/mbedtls/include/psa/crypto_driver_common.h +44 -0
  159. package/vendor/mbedtls/include/psa/crypto_driver_contexts_composites.h +151 -0
  160. package/vendor/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h +52 -0
  161. package/vendor/mbedtls/include/psa/crypto_driver_contexts_primitives.h +105 -0
  162. package/vendor/mbedtls/include/psa/crypto_extra.h +2145 -0
  163. package/vendor/mbedtls/include/psa/crypto_legacy.h +88 -0
  164. package/vendor/mbedtls/include/psa/crypto_platform.h +102 -0
  165. package/vendor/mbedtls/include/psa/crypto_se_driver.h +1383 -0
  166. package/vendor/mbedtls/include/psa/crypto_sizes.h +1319 -0
  167. package/vendor/mbedtls/include/psa/crypto_struct.h +527 -0
  168. package/vendor/mbedtls/include/psa/crypto_types.h +508 -0
  169. package/vendor/mbedtls/include/psa/crypto_values.h +2782 -0
  170. package/vendor/mbedtls/library/aes.c +2294 -0
  171. package/vendor/mbedtls/library/aesce.c +624 -0
  172. package/vendor/mbedtls/library/aesce.h +136 -0
  173. package/vendor/mbedtls/library/aesni.c +846 -0
  174. package/vendor/mbedtls/library/aesni.h +162 -0
  175. package/vendor/mbedtls/library/alignment.h +704 -0
  176. package/vendor/mbedtls/library/aria.c +969 -0
  177. package/vendor/mbedtls/library/asn1parse.c +468 -0
  178. package/vendor/mbedtls/library/asn1write.c +440 -0
  179. package/vendor/mbedtls/library/base64.c +322 -0
  180. package/vendor/mbedtls/library/base64_internal.h +45 -0
  181. package/vendor/mbedtls/library/bignum.c +2583 -0
  182. package/vendor/mbedtls/library/bignum_core.c +1240 -0
  183. package/vendor/mbedtls/library/bignum_core.h +872 -0
  184. package/vendor/mbedtls/library/bignum_core_invasive.h +38 -0
  185. package/vendor/mbedtls/library/bignum_internal.h +122 -0
  186. package/vendor/mbedtls/library/bignum_mod.c +394 -0
  187. package/vendor/mbedtls/library/bignum_mod.h +452 -0
  188. package/vendor/mbedtls/library/bignum_mod_raw.c +276 -0
  189. package/vendor/mbedtls/library/bignum_mod_raw.h +416 -0
  190. package/vendor/mbedtls/library/bignum_mod_raw_invasive.h +34 -0
  191. package/vendor/mbedtls/library/block_cipher.c +207 -0
  192. package/vendor/mbedtls/library/block_cipher_internal.h +99 -0
  193. package/vendor/mbedtls/library/bn_mul.h +1094 -0
  194. package/vendor/mbedtls/library/camellia.c +1058 -0
  195. package/vendor/mbedtls/library/ccm.c +777 -0
  196. package/vendor/mbedtls/library/chacha20.c +563 -0
  197. package/vendor/mbedtls/library/chacha20_internal.h +23 -0
  198. package/vendor/mbedtls/library/chachapoly.c +487 -0
  199. package/vendor/mbedtls/library/check_crypto_config.h +136 -0
  200. package/vendor/mbedtls/library/cipher.c +1712 -0
  201. package/vendor/mbedtls/library/cipher_invasive.h +28 -0
  202. package/vendor/mbedtls/library/cipher_wrap.c +2482 -0
  203. package/vendor/mbedtls/library/cipher_wrap.h +178 -0
  204. package/vendor/mbedtls/library/cmac.c +1067 -0
  205. package/vendor/mbedtls/library/common.h +487 -0
  206. package/vendor/mbedtls/library/constant_time.c +247 -0
  207. package/vendor/mbedtls/library/constant_time_impl.h +541 -0
  208. package/vendor/mbedtls/library/constant_time_internal.h +579 -0
  209. package/vendor/mbedtls/library/ctr.h +35 -0
  210. package/vendor/mbedtls/library/ctr_drbg.c +1016 -0
  211. package/vendor/mbedtls/library/debug.c +475 -0
  212. package/vendor/mbedtls/library/debug_internal.h +185 -0
  213. package/vendor/mbedtls/library/des.c +1042 -0
  214. package/vendor/mbedtls/library/dhm.c +700 -0
  215. package/vendor/mbedtls/library/ecdh.c +696 -0
  216. package/vendor/mbedtls/library/ecdsa.c +858 -0
  217. package/vendor/mbedtls/library/ecjpake.c +1216 -0
  218. package/vendor/mbedtls/library/ecp.c +3674 -0
  219. package/vendor/mbedtls/library/ecp_curves.c +6125 -0
  220. package/vendor/mbedtls/library/ecp_curves_new.c +9 -0
  221. package/vendor/mbedtls/library/ecp_internal_alt.h +287 -0
  222. package/vendor/mbedtls/library/ecp_invasive.h +305 -0
  223. package/vendor/mbedtls/library/entropy.c +680 -0
  224. package/vendor/mbedtls/library/entropy_poll.c +233 -0
  225. package/vendor/mbedtls/library/entropy_poll.h +64 -0
  226. package/vendor/mbedtls/library/error.c +878 -0
  227. package/vendor/mbedtls/library/gcm.c +1330 -0
  228. package/vendor/mbedtls/library/hkdf.c +161 -0
  229. package/vendor/mbedtls/library/hmac_drbg.c +633 -0
  230. package/vendor/mbedtls/library/lmots.c +789 -0
  231. package/vendor/mbedtls/library/lmots.h +288 -0
  232. package/vendor/mbedtls/library/lms.c +778 -0
  233. package/vendor/mbedtls/library/md.c +1108 -0
  234. package/vendor/mbedtls/library/md5.c +426 -0
  235. package/vendor/mbedtls/library/md_psa.h +26 -0
  236. package/vendor/mbedtls/library/md_wrap.h +46 -0
  237. package/vendor/mbedtls/library/memory_buffer_alloc.c +751 -0
  238. package/vendor/mbedtls/library/mps_common.h +181 -0
  239. package/vendor/mbedtls/library/mps_error.h +89 -0
  240. package/vendor/mbedtls/library/mps_reader.c +538 -0
  241. package/vendor/mbedtls/library/mps_reader.h +366 -0
  242. package/vendor/mbedtls/library/mps_trace.c +112 -0
  243. package/vendor/mbedtls/library/mps_trace.h +154 -0
  244. package/vendor/mbedtls/library/net_sockets.c +694 -0
  245. package/vendor/mbedtls/library/nist_kw.c +729 -0
  246. package/vendor/mbedtls/library/oid.c +1166 -0
  247. package/vendor/mbedtls/library/padlock.c +157 -0
  248. package/vendor/mbedtls/library/padlock.h +111 -0
  249. package/vendor/mbedtls/library/pem.c +554 -0
  250. package/vendor/mbedtls/library/pk.c +1602 -0
  251. package/vendor/mbedtls/library/pk_ecc.c +261 -0
  252. package/vendor/mbedtls/library/pk_internal.h +241 -0
  253. package/vendor/mbedtls/library/pk_wrap.c +1618 -0
  254. package/vendor/mbedtls/library/pk_wrap.h +138 -0
  255. package/vendor/mbedtls/library/pkcs12.c +437 -0
  256. package/vendor/mbedtls/library/pkcs5.c +500 -0
  257. package/vendor/mbedtls/library/pkcs7.c +787 -0
  258. package/vendor/mbedtls/library/pkparse.c +1392 -0
  259. package/vendor/mbedtls/library/pkwrite.c +631 -0
  260. package/vendor/mbedtls/library/pkwrite.h +121 -0
  261. package/vendor/mbedtls/library/platform.c +402 -0
  262. package/vendor/mbedtls/library/platform_util.c +258 -0
  263. package/vendor/mbedtls/library/poly1305.c +492 -0
  264. package/vendor/mbedtls/library/psa_crypto.c +9532 -0
  265. package/vendor/mbedtls/library/psa_crypto_aead.c +646 -0
  266. package/vendor/mbedtls/library/psa_crypto_aead.h +499 -0
  267. package/vendor/mbedtls/library/psa_crypto_cipher.c +747 -0
  268. package/vendor/mbedtls/library/psa_crypto_cipher.h +316 -0
  269. package/vendor/mbedtls/library/psa_crypto_client.c +22 -0
  270. package/vendor/mbedtls/library/psa_crypto_core.h +983 -0
  271. package/vendor/mbedtls/library/psa_crypto_core_common.h +52 -0
  272. package/vendor/mbedtls/library/psa_crypto_driver_wrappers.h +2896 -0
  273. package/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.c +256 -0
  274. package/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.h +31 -0
  275. package/vendor/mbedtls/library/psa_crypto_ecp.c +594 -0
  276. package/vendor/mbedtls/library/psa_crypto_ecp.h +267 -0
  277. package/vendor/mbedtls/library/psa_crypto_ffdh.c +361 -0
  278. package/vendor/mbedtls/library/psa_crypto_ffdh.h +131 -0
  279. package/vendor/mbedtls/library/psa_crypto_hash.c +470 -0
  280. package/vendor/mbedtls/library/psa_crypto_hash.h +211 -0
  281. package/vendor/mbedtls/library/psa_crypto_invasive.h +92 -0
  282. package/vendor/mbedtls/library/psa_crypto_its.h +131 -0
  283. package/vendor/mbedtls/library/psa_crypto_mac.c +505 -0
  284. package/vendor/mbedtls/library/psa_crypto_mac.h +264 -0
  285. package/vendor/mbedtls/library/psa_crypto_pake.c +571 -0
  286. package/vendor/mbedtls/library/psa_crypto_pake.h +159 -0
  287. package/vendor/mbedtls/library/psa_crypto_random.c +181 -0
  288. package/vendor/mbedtls/library/psa_crypto_random.h +72 -0
  289. package/vendor/mbedtls/library/psa_crypto_random_impl.h +200 -0
  290. package/vendor/mbedtls/library/psa_crypto_rsa.c +714 -0
  291. package/vendor/mbedtls/library/psa_crypto_rsa.h +321 -0
  292. package/vendor/mbedtls/library/psa_crypto_se.c +373 -0
  293. package/vendor/mbedtls/library/psa_crypto_se.h +192 -0
  294. package/vendor/mbedtls/library/psa_crypto_slot_management.c +1137 -0
  295. package/vendor/mbedtls/library/psa_crypto_slot_management.h +344 -0
  296. package/vendor/mbedtls/library/psa_crypto_storage.c +481 -0
  297. package/vendor/mbedtls/library/psa_crypto_storage.h +392 -0
  298. package/vendor/mbedtls/library/psa_its_file.c +254 -0
  299. package/vendor/mbedtls/library/psa_util.c +614 -0
  300. package/vendor/mbedtls/library/psa_util_internal.h +100 -0
  301. package/vendor/mbedtls/library/ripemd160.c +490 -0
  302. package/vendor/mbedtls/library/rsa.c +3121 -0
  303. package/vendor/mbedtls/library/rsa_alt_helpers.c +455 -0
  304. package/vendor/mbedtls/library/rsa_alt_helpers.h +209 -0
  305. package/vendor/mbedtls/library/rsa_internal.h +188 -0
  306. package/vendor/mbedtls/library/sha1.c +480 -0
  307. package/vendor/mbedtls/library/sha256.c +983 -0
  308. package/vendor/mbedtls/library/sha3.c +721 -0
  309. package/vendor/mbedtls/library/sha512.c +1115 -0
  310. package/vendor/mbedtls/library/ssl_cache.c +410 -0
  311. package/vendor/mbedtls/library/ssl_ciphersuites.c +2050 -0
  312. package/vendor/mbedtls/library/ssl_ciphersuites_internal.h +154 -0
  313. package/vendor/mbedtls/library/ssl_client.c +1023 -0
  314. package/vendor/mbedtls/library/ssl_client.h +22 -0
  315. package/vendor/mbedtls/library/ssl_cookie.c +384 -0
  316. package/vendor/mbedtls/library/ssl_debug_helpers.h +85 -0
  317. package/vendor/mbedtls/library/ssl_debug_helpers_generated.c +251 -0
  318. package/vendor/mbedtls/library/ssl_misc.h +3198 -0
  319. package/vendor/mbedtls/library/ssl_msg.c +6619 -0
  320. package/vendor/mbedtls/library/ssl_ticket.c +556 -0
  321. package/vendor/mbedtls/library/ssl_tls.c +10234 -0
  322. package/vendor/mbedtls/library/ssl_tls12_client.c +3688 -0
  323. package/vendor/mbedtls/library/ssl_tls12_server.c +4311 -0
  324. package/vendor/mbedtls/library/ssl_tls13_client.c +3208 -0
  325. package/vendor/mbedtls/library/ssl_tls13_generic.c +1793 -0
  326. package/vendor/mbedtls/library/ssl_tls13_invasive.h +23 -0
  327. package/vendor/mbedtls/library/ssl_tls13_keys.c +1918 -0
  328. package/vendor/mbedtls/library/ssl_tls13_keys.h +668 -0
  329. package/vendor/mbedtls/library/ssl_tls13_server.c +3624 -0
  330. package/vendor/mbedtls/library/threading.c +193 -0
  331. package/vendor/mbedtls/library/threading_internal.h +28 -0
  332. package/vendor/mbedtls/library/timing.c +152 -0
  333. package/vendor/mbedtls/library/version.c +32 -0
  334. package/vendor/mbedtls/library/version_features.c +856 -0
  335. package/vendor/mbedtls/library/x509.c +1776 -0
  336. package/vendor/mbedtls/library/x509_create.c +570 -0
  337. package/vendor/mbedtls/library/x509_crl.c +708 -0
  338. package/vendor/mbedtls/library/x509_crt.c +3311 -0
  339. package/vendor/mbedtls/library/x509_csr.c +648 -0
  340. package/vendor/mbedtls/library/x509_internal.h +101 -0
  341. package/vendor/mbedtls/library/x509write.c +174 -0
  342. package/vendor/mbedtls/library/x509write_crt.c +688 -0
  343. package/vendor/mbedtls/library/x509write_csr.c +336 -0
  344. package/vendor/quickjs-ng/CMakeLists.txt +566 -0
  345. package/vendor/quickjs-ng/LICENSE +24 -0
  346. package/vendor/quickjs-ng/README.md +24 -0
  347. package/vendor/quickjs-ng/api-test.c +1195 -0
  348. package/vendor/quickjs-ng/builtin-array-fromasync.h +119 -0
  349. package/vendor/quickjs-ng/builtin-iterator-zip-keyed.h +332 -0
  350. package/vendor/quickjs-ng/builtin-iterator-zip.h +337 -0
  351. package/vendor/quickjs-ng/cutils.h +1998 -0
  352. package/vendor/quickjs-ng/dtoa.c +1619 -0
  353. package/vendor/quickjs-ng/dtoa.h +87 -0
  354. package/vendor/quickjs-ng/gen/function_source.c +81 -0
  355. package/vendor/quickjs-ng/gen/hello.c +53 -0
  356. package/vendor/quickjs-ng/gen/hello_module.c +106 -0
  357. package/vendor/quickjs-ng/gen/repl.c +3036 -0
  358. package/vendor/quickjs-ng/gen/standalone.c +323 -0
  359. package/vendor/quickjs-ng/gen/test_fib.c +81 -0
  360. package/vendor/quickjs-ng/libregexp-opcode.h +73 -0
  361. package/vendor/quickjs-ng/libregexp.c +3474 -0
  362. package/vendor/quickjs-ng/libregexp.h +101 -0
  363. package/vendor/quickjs-ng/libunicode-table.h +5173 -0
  364. package/vendor/quickjs-ng/libunicode.c +2069 -0
  365. package/vendor/quickjs-ng/libunicode.h +172 -0
  366. package/vendor/quickjs-ng/list.h +107 -0
  367. package/vendor/quickjs-ng/lre-test.c +52 -0
  368. package/vendor/quickjs-ng/qjs.c +762 -0
  369. package/vendor/quickjs-ng/qjsc.c +673 -0
  370. package/vendor/quickjs-ng/quickjs-atom.h +280 -0
  371. package/vendor/quickjs-ng/quickjs-c-atomics.h +54 -0
  372. package/vendor/quickjs-ng/quickjs-libc.c +5037 -0
  373. package/vendor/quickjs-ng/quickjs-libc.h +87 -0
  374. package/vendor/quickjs-ng/quickjs-opcode.h +377 -0
  375. package/vendor/quickjs-ng/quickjs.c +64041 -0
  376. package/vendor/quickjs-ng/quickjs.h +1447 -0
  377. package/vendor/quickjs-ng/run-test262.c +2374 -0
  378. package/vendor/quickjs-ng/unicode_gen.c +3121 -0
  379. package/vendor/quickjs-ng/unicode_gen_def.h +310 -0
  380. package/vendor/ryu/LICENSE-Boost +23 -0
  381. package/vendor/ryu/common.h +114 -0
  382. package/vendor/ryu/d2s.c +509 -0
  383. package/vendor/ryu/d2s_full_table.h +367 -0
  384. package/vendor/ryu/d2s_intrinsics.h +357 -0
  385. package/vendor/ryu/d2s_small_table.h +186 -0
  386. package/vendor/ryu/digit_table.h +35 -0
  387. package/vendor/ryu/ryu.h +46 -0
  388. package/vendor/zlib/LICENSE +22 -0
  389. package/vendor/zlib/adler32.c +164 -0
  390. package/vendor/zlib/compress.c +75 -0
  391. package/vendor/zlib/crc32.c +1049 -0
  392. package/vendor/zlib/crc32.h +9446 -0
  393. package/vendor/zlib/deflate.c +2139 -0
  394. package/vendor/zlib/deflate.h +377 -0
  395. package/vendor/zlib/gzclose.c +23 -0
  396. package/vendor/zlib/gzguts.h +214 -0
  397. package/vendor/zlib/gzlib.c +582 -0
  398. package/vendor/zlib/gzread.c +602 -0
  399. package/vendor/zlib/gzwrite.c +631 -0
  400. package/vendor/zlib/infback.c +628 -0
  401. package/vendor/zlib/inffast.c +320 -0
  402. package/vendor/zlib/inffast.h +11 -0
  403. package/vendor/zlib/inffixed.h +94 -0
  404. package/vendor/zlib/inflate.c +1526 -0
  405. package/vendor/zlib/inflate.h +126 -0
  406. package/vendor/zlib/inftrees.c +299 -0
  407. package/vendor/zlib/inftrees.h +62 -0
  408. package/vendor/zlib/trees.c +1117 -0
  409. package/vendor/zlib/trees.h +128 -0
  410. package/vendor/zlib/uncompr.c +85 -0
  411. package/vendor/zlib/zconf.h +543 -0
  412. package/vendor/zlib/zlib.h +1938 -0
  413. package/vendor/zlib/zutil.c +299 -0
  414. package/vendor/zlib/zutil.h +254 -0
  415. package/README.md +0 -3
  416. package/index.js +0 -2
@@ -0,0 +1,1166 @@
1
+ /**
2
+ * \file oid.c
3
+ *
4
+ * \brief Object Identifier (OID) database
5
+ *
6
+ * Copyright The Mbed TLS Contributors
7
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
8
+ */
9
+
10
+ #include "common.h"
11
+
12
+ #if defined(MBEDTLS_OID_C)
13
+
14
+ #include "mbedtls/oid.h"
15
+ #include "mbedtls/rsa.h"
16
+ #include "mbedtls/error.h"
17
+ #include "mbedtls/pk.h"
18
+
19
+ #include <stdio.h>
20
+ #include <string.h>
21
+
22
+ #include "mbedtls/platform.h"
23
+
24
+ /*
25
+ * Macro to automatically add the size of #define'd OIDs
26
+ */
27
+ #define ADD_LEN(s) s, MBEDTLS_OID_SIZE(s)
28
+
29
+ /*
30
+ * Macro to generate mbedtls_oid_descriptor_t
31
+ */
32
+ #if !defined(MBEDTLS_X509_REMOVE_INFO)
33
+ #define OID_DESCRIPTOR(s, name, description) { ADD_LEN(s), name, description }
34
+ #define NULL_OID_DESCRIPTOR { NULL, 0, NULL, NULL }
35
+ #else
36
+ #define OID_DESCRIPTOR(s, name, description) { ADD_LEN(s) }
37
+ #define NULL_OID_DESCRIPTOR { NULL, 0 }
38
+ #endif
39
+
40
+ /*
41
+ * Macro to generate an internal function for oid_XXX_from_asn1() (used by
42
+ * the other functions)
43
+ */
44
+ #define FN_OID_TYPED_FROM_ASN1(TYPE_T, NAME, LIST) \
45
+ static const TYPE_T *oid_ ## NAME ## _from_asn1( \
46
+ const mbedtls_asn1_buf *oid) \
47
+ { \
48
+ const TYPE_T *p = (LIST); \
49
+ const mbedtls_oid_descriptor_t *cur = \
50
+ (const mbedtls_oid_descriptor_t *) p; \
51
+ if (p == NULL || oid == NULL) return NULL; \
52
+ while (cur->asn1 != NULL) { \
53
+ if (cur->asn1_len == oid->len && \
54
+ memcmp(cur->asn1, oid->p, oid->len) == 0) { \
55
+ return p; \
56
+ } \
57
+ p++; \
58
+ cur = (const mbedtls_oid_descriptor_t *) p; \
59
+ } \
60
+ return NULL; \
61
+ }
62
+
63
+ #if !defined(MBEDTLS_X509_REMOVE_INFO)
64
+ /*
65
+ * Macro to generate a function for retrieving a single attribute from the
66
+ * descriptor of an mbedtls_oid_descriptor_t wrapper.
67
+ */
68
+ #define FN_OID_GET_DESCRIPTOR_ATTR1(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1) \
69
+ int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1) \
70
+ { \
71
+ const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid); \
72
+ if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND; \
73
+ *ATTR1 = data->descriptor.ATTR1; \
74
+ return 0; \
75
+ }
76
+ #endif /* MBEDTLS_X509_REMOVE_INFO */
77
+
78
+ /*
79
+ * Macro to generate a function for retrieving a single attribute from an
80
+ * mbedtls_oid_descriptor_t wrapper.
81
+ */
82
+ #define FN_OID_GET_ATTR1(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1) \
83
+ int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1) \
84
+ { \
85
+ const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid); \
86
+ if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND; \
87
+ *ATTR1 = data->ATTR1; \
88
+ return 0; \
89
+ }
90
+
91
+ /*
92
+ * Macro to generate a function for retrieving two attributes from an
93
+ * mbedtls_oid_descriptor_t wrapper.
94
+ */
95
+ #define FN_OID_GET_ATTR2(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1, \
96
+ ATTR2_TYPE, ATTR2) \
97
+ int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1, \
98
+ ATTR2_TYPE * ATTR2) \
99
+ { \
100
+ const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid); \
101
+ if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND; \
102
+ *(ATTR1) = data->ATTR1; \
103
+ *(ATTR2) = data->ATTR2; \
104
+ return 0; \
105
+ }
106
+
107
+ /*
108
+ * Macro to generate a function for retrieving the OID based on a single
109
+ * attribute from a mbedtls_oid_descriptor_t wrapper.
110
+ */
111
+ #define FN_OID_GET_OID_BY_ATTR1(FN_NAME, TYPE_T, LIST, ATTR1_TYPE, ATTR1) \
112
+ int FN_NAME(ATTR1_TYPE ATTR1, const char **oid, size_t *olen) \
113
+ { \
114
+ const TYPE_T *cur = (LIST); \
115
+ while (cur->descriptor.asn1 != NULL) { \
116
+ if (cur->ATTR1 == (ATTR1)) { \
117
+ *oid = cur->descriptor.asn1; \
118
+ *olen = cur->descriptor.asn1_len; \
119
+ return 0; \
120
+ } \
121
+ cur++; \
122
+ } \
123
+ return MBEDTLS_ERR_OID_NOT_FOUND; \
124
+ }
125
+
126
+ /*
127
+ * Macro to generate a function for retrieving the OID based on two
128
+ * attributes from a mbedtls_oid_descriptor_t wrapper.
129
+ */
130
+ #define FN_OID_GET_OID_BY_ATTR2(FN_NAME, TYPE_T, LIST, ATTR1_TYPE, ATTR1, \
131
+ ATTR2_TYPE, ATTR2) \
132
+ int FN_NAME(ATTR1_TYPE ATTR1, ATTR2_TYPE ATTR2, const char **oid, \
133
+ size_t *olen) \
134
+ { \
135
+ const TYPE_T *cur = (LIST); \
136
+ while (cur->descriptor.asn1 != NULL) { \
137
+ if (cur->ATTR1 == (ATTR1) && cur->ATTR2 == (ATTR2)) { \
138
+ *oid = cur->descriptor.asn1; \
139
+ *olen = cur->descriptor.asn1_len; \
140
+ return 0; \
141
+ } \
142
+ cur++; \
143
+ } \
144
+ return MBEDTLS_ERR_OID_NOT_FOUND; \
145
+ }
146
+
147
+ /*
148
+ * For X520 attribute types
149
+ */
150
+ typedef struct {
151
+ mbedtls_oid_descriptor_t descriptor;
152
+ const char *short_name;
153
+ } oid_x520_attr_t;
154
+
155
+ static const oid_x520_attr_t oid_x520_attr_type[] =
156
+ {
157
+ {
158
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_CN, "id-at-commonName", "Common Name"),
159
+ "CN",
160
+ },
161
+ {
162
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_COUNTRY, "id-at-countryName", "Country"),
163
+ "C",
164
+ },
165
+ {
166
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_LOCALITY, "id-at-locality", "Locality"),
167
+ "L",
168
+ },
169
+ {
170
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_STATE, "id-at-state", "State"),
171
+ "ST",
172
+ },
173
+ {
174
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_ORGANIZATION, "id-at-organizationName",
175
+ "Organization"),
176
+ "O",
177
+ },
178
+ {
179
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_ORG_UNIT, "id-at-organizationalUnitName", "Org Unit"),
180
+ "OU",
181
+ },
182
+ {
183
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS9_EMAIL,
184
+ "emailAddress",
185
+ "E-mail address"),
186
+ "emailAddress",
187
+ },
188
+ {
189
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_SERIAL_NUMBER,
190
+ "id-at-serialNumber",
191
+ "Serial number"),
192
+ "serialNumber",
193
+ },
194
+ {
195
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_POSTAL_ADDRESS,
196
+ "id-at-postalAddress",
197
+ "Postal address"),
198
+ "postalAddress",
199
+ },
200
+ {
201
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_POSTAL_CODE, "id-at-postalCode", "Postal code"),
202
+ "postalCode",
203
+ },
204
+ {
205
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_SUR_NAME, "id-at-surName", "Surname"),
206
+ "SN",
207
+ },
208
+ {
209
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_GIVEN_NAME, "id-at-givenName", "Given name"),
210
+ "GN",
211
+ },
212
+ {
213
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_INITIALS, "id-at-initials", "Initials"),
214
+ "initials",
215
+ },
216
+ {
217
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_GENERATION_QUALIFIER,
218
+ "id-at-generationQualifier",
219
+ "Generation qualifier"),
220
+ "generationQualifier",
221
+ },
222
+ {
223
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_TITLE, "id-at-title", "Title"),
224
+ "title",
225
+ },
226
+ {
227
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_DN_QUALIFIER,
228
+ "id-at-dnQualifier",
229
+ "Distinguished Name qualifier"),
230
+ "dnQualifier",
231
+ },
232
+ {
233
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_PSEUDONYM, "id-at-pseudonym", "Pseudonym"),
234
+ "pseudonym",
235
+ },
236
+ {
237
+ OID_DESCRIPTOR(MBEDTLS_OID_UID, "id-uid", "User Id"),
238
+ "uid",
239
+ },
240
+ {
241
+ OID_DESCRIPTOR(MBEDTLS_OID_DOMAIN_COMPONENT,
242
+ "id-domainComponent",
243
+ "Domain component"),
244
+ "DC",
245
+ },
246
+ {
247
+ OID_DESCRIPTOR(MBEDTLS_OID_AT_UNIQUE_IDENTIFIER,
248
+ "id-at-uniqueIdentifier",
249
+ "Unique Identifier"),
250
+ "uniqueIdentifier",
251
+ },
252
+ {
253
+ NULL_OID_DESCRIPTOR,
254
+ NULL,
255
+ }
256
+ };
257
+
258
+ FN_OID_TYPED_FROM_ASN1(oid_x520_attr_t, x520_attr, oid_x520_attr_type)
259
+ FN_OID_GET_ATTR1(mbedtls_oid_get_attr_short_name,
260
+ oid_x520_attr_t,
261
+ x520_attr,
262
+ const char *,
263
+ short_name)
264
+
265
+ /*
266
+ * For X509 extensions
267
+ */
268
+ typedef struct {
269
+ mbedtls_oid_descriptor_t descriptor;
270
+ int ext_type;
271
+ } oid_x509_ext_t;
272
+
273
+ static const oid_x509_ext_t oid_x509_ext[] =
274
+ {
275
+ {
276
+ OID_DESCRIPTOR(MBEDTLS_OID_BASIC_CONSTRAINTS,
277
+ "id-ce-basicConstraints",
278
+ "Basic Constraints"),
279
+ MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS,
280
+ },
281
+ {
282
+ OID_DESCRIPTOR(MBEDTLS_OID_KEY_USAGE, "id-ce-keyUsage", "Key Usage"),
283
+ MBEDTLS_OID_X509_EXT_KEY_USAGE,
284
+ },
285
+ {
286
+ OID_DESCRIPTOR(MBEDTLS_OID_EXTENDED_KEY_USAGE,
287
+ "id-ce-extKeyUsage",
288
+ "Extended Key Usage"),
289
+ MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE,
290
+ },
291
+ {
292
+ OID_DESCRIPTOR(MBEDTLS_OID_SUBJECT_ALT_NAME,
293
+ "id-ce-subjectAltName",
294
+ "Subject Alt Name"),
295
+ MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME,
296
+ },
297
+ {
298
+ OID_DESCRIPTOR(MBEDTLS_OID_NS_CERT_TYPE,
299
+ "id-netscape-certtype",
300
+ "Netscape Certificate Type"),
301
+ MBEDTLS_OID_X509_EXT_NS_CERT_TYPE,
302
+ },
303
+ {
304
+ OID_DESCRIPTOR(MBEDTLS_OID_CERTIFICATE_POLICIES,
305
+ "id-ce-certificatePolicies",
306
+ "Certificate Policies"),
307
+ MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES,
308
+ },
309
+ {
310
+ OID_DESCRIPTOR(MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER,
311
+ "id-ce-subjectKeyIdentifier",
312
+ "Subject Key Identifier"),
313
+ MBEDTLS_OID_X509_EXT_SUBJECT_KEY_IDENTIFIER,
314
+ },
315
+ {
316
+ OID_DESCRIPTOR(MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER,
317
+ "id-ce-authorityKeyIdentifier",
318
+ "Authority Key Identifier"),
319
+ MBEDTLS_OID_X509_EXT_AUTHORITY_KEY_IDENTIFIER,
320
+ },
321
+ {
322
+ NULL_OID_DESCRIPTOR,
323
+ 0,
324
+ },
325
+ };
326
+
327
+ FN_OID_TYPED_FROM_ASN1(oid_x509_ext_t, x509_ext, oid_x509_ext)
328
+ FN_OID_GET_ATTR1(mbedtls_oid_get_x509_ext_type, oid_x509_ext_t, x509_ext, int, ext_type)
329
+
330
+ #if !defined(MBEDTLS_X509_REMOVE_INFO)
331
+ static const mbedtls_oid_descriptor_t oid_ext_key_usage[] =
332
+ {
333
+ OID_DESCRIPTOR(MBEDTLS_OID_SERVER_AUTH,
334
+ "id-kp-serverAuth",
335
+ "TLS Web Server Authentication"),
336
+ OID_DESCRIPTOR(MBEDTLS_OID_CLIENT_AUTH,
337
+ "id-kp-clientAuth",
338
+ "TLS Web Client Authentication"),
339
+ OID_DESCRIPTOR(MBEDTLS_OID_CODE_SIGNING, "id-kp-codeSigning", "Code Signing"),
340
+ OID_DESCRIPTOR(MBEDTLS_OID_EMAIL_PROTECTION, "id-kp-emailProtection", "E-mail Protection"),
341
+ OID_DESCRIPTOR(MBEDTLS_OID_TIME_STAMPING, "id-kp-timeStamping", "Time Stamping"),
342
+ OID_DESCRIPTOR(MBEDTLS_OID_OCSP_SIGNING, "id-kp-OCSPSigning", "OCSP Signing"),
343
+ OID_DESCRIPTOR(MBEDTLS_OID_WISUN_FAN,
344
+ "id-kp-wisun-fan-device",
345
+ "Wi-SUN Alliance Field Area Network (FAN)"),
346
+ NULL_OID_DESCRIPTOR,
347
+ };
348
+
349
+ FN_OID_TYPED_FROM_ASN1(mbedtls_oid_descriptor_t, ext_key_usage, oid_ext_key_usage)
350
+ FN_OID_GET_ATTR1(mbedtls_oid_get_extended_key_usage,
351
+ mbedtls_oid_descriptor_t,
352
+ ext_key_usage,
353
+ const char *,
354
+ description)
355
+
356
+ static const mbedtls_oid_descriptor_t oid_certificate_policies[] =
357
+ {
358
+ OID_DESCRIPTOR(MBEDTLS_OID_ANY_POLICY, "anyPolicy", "Any Policy"),
359
+ NULL_OID_DESCRIPTOR,
360
+ };
361
+
362
+ FN_OID_TYPED_FROM_ASN1(mbedtls_oid_descriptor_t, certificate_policies, oid_certificate_policies)
363
+ FN_OID_GET_ATTR1(mbedtls_oid_get_certificate_policies,
364
+ mbedtls_oid_descriptor_t,
365
+ certificate_policies,
366
+ const char *,
367
+ description)
368
+ #endif /* MBEDTLS_X509_REMOVE_INFO */
369
+
370
+ /*
371
+ * For SignatureAlgorithmIdentifier
372
+ */
373
+ typedef struct {
374
+ mbedtls_oid_descriptor_t descriptor;
375
+ mbedtls_md_type_t md_alg;
376
+ mbedtls_pk_type_t pk_alg;
377
+ } oid_sig_alg_t;
378
+
379
+ static const oid_sig_alg_t oid_sig_alg[] =
380
+ {
381
+ #if defined(MBEDTLS_RSA_C)
382
+ #if defined(MBEDTLS_MD_CAN_MD5)
383
+ {
384
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_MD5, "md5WithRSAEncryption", "RSA with MD5"),
385
+ MBEDTLS_MD_MD5, MBEDTLS_PK_RSA,
386
+ },
387
+ #endif /* MBEDTLS_MD_CAN_MD5 */
388
+ #if defined(MBEDTLS_MD_CAN_SHA1)
389
+ {
390
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA1, "sha-1WithRSAEncryption", "RSA with SHA1"),
391
+ MBEDTLS_MD_SHA1, MBEDTLS_PK_RSA,
392
+ },
393
+ #endif /* MBEDTLS_MD_CAN_SHA1 */
394
+ #if defined(MBEDTLS_MD_CAN_SHA224)
395
+ {
396
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA224, "sha224WithRSAEncryption",
397
+ "RSA with SHA-224"),
398
+ MBEDTLS_MD_SHA224, MBEDTLS_PK_RSA,
399
+ },
400
+ #endif /* MBEDTLS_MD_CAN_SHA224 */
401
+ #if defined(MBEDTLS_MD_CAN_SHA256)
402
+ {
403
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA256, "sha256WithRSAEncryption",
404
+ "RSA with SHA-256"),
405
+ MBEDTLS_MD_SHA256, MBEDTLS_PK_RSA,
406
+ },
407
+ #endif /* MBEDTLS_MD_CAN_SHA256 */
408
+ #if defined(MBEDTLS_MD_CAN_SHA384)
409
+ {
410
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA384, "sha384WithRSAEncryption",
411
+ "RSA with SHA-384"),
412
+ MBEDTLS_MD_SHA384, MBEDTLS_PK_RSA,
413
+ },
414
+ #endif /* MBEDTLS_MD_CAN_SHA384 */
415
+ #if defined(MBEDTLS_MD_CAN_SHA512)
416
+ {
417
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA512, "sha512WithRSAEncryption",
418
+ "RSA with SHA-512"),
419
+ MBEDTLS_MD_SHA512, MBEDTLS_PK_RSA,
420
+ },
421
+ #endif /* MBEDTLS_MD_CAN_SHA512 */
422
+ #if defined(MBEDTLS_MD_CAN_SHA1)
423
+ {
424
+ OID_DESCRIPTOR(MBEDTLS_OID_RSA_SHA_OBS, "sha-1WithRSAEncryption", "RSA with SHA1"),
425
+ MBEDTLS_MD_SHA1, MBEDTLS_PK_RSA,
426
+ },
427
+ #endif /* MBEDTLS_MD_CAN_SHA1 */
428
+ #endif /* MBEDTLS_RSA_C */
429
+ #if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
430
+ #if defined(MBEDTLS_MD_CAN_SHA1)
431
+ {
432
+ OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA1, "ecdsa-with-SHA1", "ECDSA with SHA1"),
433
+ MBEDTLS_MD_SHA1, MBEDTLS_PK_ECDSA,
434
+ },
435
+ #endif /* MBEDTLS_MD_CAN_SHA1 */
436
+ #if defined(MBEDTLS_MD_CAN_SHA224)
437
+ {
438
+ OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA224, "ecdsa-with-SHA224", "ECDSA with SHA224"),
439
+ MBEDTLS_MD_SHA224, MBEDTLS_PK_ECDSA,
440
+ },
441
+ #endif
442
+ #if defined(MBEDTLS_MD_CAN_SHA256)
443
+ {
444
+ OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA256, "ecdsa-with-SHA256", "ECDSA with SHA256"),
445
+ MBEDTLS_MD_SHA256, MBEDTLS_PK_ECDSA,
446
+ },
447
+ #endif /* MBEDTLS_MD_CAN_SHA256 */
448
+ #if defined(MBEDTLS_MD_CAN_SHA384)
449
+ {
450
+ OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA384, "ecdsa-with-SHA384", "ECDSA with SHA384"),
451
+ MBEDTLS_MD_SHA384, MBEDTLS_PK_ECDSA,
452
+ },
453
+ #endif /* MBEDTLS_MD_CAN_SHA384 */
454
+ #if defined(MBEDTLS_MD_CAN_SHA512)
455
+ {
456
+ OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA512, "ecdsa-with-SHA512", "ECDSA with SHA512"),
457
+ MBEDTLS_MD_SHA512, MBEDTLS_PK_ECDSA,
458
+ },
459
+ #endif /* MBEDTLS_MD_CAN_SHA512 */
460
+ #endif /* MBEDTLS_PK_CAN_ECDSA_SOME */
461
+ #if defined(MBEDTLS_RSA_C)
462
+ {
463
+ OID_DESCRIPTOR(MBEDTLS_OID_RSASSA_PSS, "RSASSA-PSS", "RSASSA-PSS"),
464
+ MBEDTLS_MD_NONE, MBEDTLS_PK_RSASSA_PSS,
465
+ },
466
+ #endif /* MBEDTLS_RSA_C */
467
+ {
468
+ NULL_OID_DESCRIPTOR,
469
+ MBEDTLS_MD_NONE, MBEDTLS_PK_NONE,
470
+ },
471
+ };
472
+
473
+ FN_OID_TYPED_FROM_ASN1(oid_sig_alg_t, sig_alg, oid_sig_alg)
474
+
475
+ #if !defined(MBEDTLS_X509_REMOVE_INFO)
476
+ FN_OID_GET_DESCRIPTOR_ATTR1(mbedtls_oid_get_sig_alg_desc,
477
+ oid_sig_alg_t,
478
+ sig_alg,
479
+ const char *,
480
+ description)
481
+ #endif
482
+
483
+ FN_OID_GET_ATTR2(mbedtls_oid_get_sig_alg,
484
+ oid_sig_alg_t,
485
+ sig_alg,
486
+ mbedtls_md_type_t,
487
+ md_alg,
488
+ mbedtls_pk_type_t,
489
+ pk_alg)
490
+ FN_OID_GET_OID_BY_ATTR2(mbedtls_oid_get_oid_by_sig_alg,
491
+ oid_sig_alg_t,
492
+ oid_sig_alg,
493
+ mbedtls_pk_type_t,
494
+ pk_alg,
495
+ mbedtls_md_type_t,
496
+ md_alg)
497
+
498
+ /*
499
+ * For PublicKeyInfo (PKCS1, RFC 5480)
500
+ */
501
+ typedef struct {
502
+ mbedtls_oid_descriptor_t descriptor;
503
+ mbedtls_pk_type_t pk_alg;
504
+ } oid_pk_alg_t;
505
+
506
+ static const oid_pk_alg_t oid_pk_alg[] =
507
+ {
508
+ {
509
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_RSA, "rsaEncryption", "RSA"),
510
+ MBEDTLS_PK_RSA,
511
+ },
512
+ {
513
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_ALG_UNRESTRICTED, "id-ecPublicKey", "Generic EC key"),
514
+ MBEDTLS_PK_ECKEY,
515
+ },
516
+ {
517
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_ALG_ECDH, "id-ecDH", "EC key for ECDH"),
518
+ MBEDTLS_PK_ECKEY_DH,
519
+ },
520
+ {
521
+ NULL_OID_DESCRIPTOR,
522
+ MBEDTLS_PK_NONE,
523
+ },
524
+ };
525
+
526
+ FN_OID_TYPED_FROM_ASN1(oid_pk_alg_t, pk_alg, oid_pk_alg)
527
+ FN_OID_GET_ATTR1(mbedtls_oid_get_pk_alg, oid_pk_alg_t, pk_alg, mbedtls_pk_type_t, pk_alg)
528
+ FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_pk_alg,
529
+ oid_pk_alg_t,
530
+ oid_pk_alg,
531
+ mbedtls_pk_type_t,
532
+ pk_alg)
533
+
534
+ #if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
535
+ /*
536
+ * For elliptic curves that use namedCurve inside ECParams (RFC 5480)
537
+ */
538
+ typedef struct {
539
+ mbedtls_oid_descriptor_t descriptor;
540
+ mbedtls_ecp_group_id grp_id;
541
+ } oid_ecp_grp_t;
542
+
543
+ static const oid_ecp_grp_t oid_ecp_grp[] =
544
+ {
545
+ #if defined(MBEDTLS_ECP_HAVE_SECP192R1)
546
+ {
547
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP192R1, "secp192r1", "secp192r1"),
548
+ MBEDTLS_ECP_DP_SECP192R1,
549
+ },
550
+ #endif /* MBEDTLS_ECP_HAVE_SECP192R1 */
551
+ #if defined(MBEDTLS_ECP_HAVE_SECP224R1)
552
+ {
553
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP224R1, "secp224r1", "secp224r1"),
554
+ MBEDTLS_ECP_DP_SECP224R1,
555
+ },
556
+ #endif /* MBEDTLS_ECP_HAVE_SECP224R1 */
557
+ #if defined(MBEDTLS_ECP_HAVE_SECP256R1)
558
+ {
559
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP256R1, "secp256r1", "secp256r1"),
560
+ MBEDTLS_ECP_DP_SECP256R1,
561
+ },
562
+ #endif /* MBEDTLS_ECP_HAVE_SECP256R1 */
563
+ #if defined(MBEDTLS_ECP_HAVE_SECP384R1)
564
+ {
565
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP384R1, "secp384r1", "secp384r1"),
566
+ MBEDTLS_ECP_DP_SECP384R1,
567
+ },
568
+ #endif /* MBEDTLS_ECP_HAVE_SECP384R1 */
569
+ #if defined(MBEDTLS_ECP_HAVE_SECP521R1)
570
+ {
571
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP521R1, "secp521r1", "secp521r1"),
572
+ MBEDTLS_ECP_DP_SECP521R1,
573
+ },
574
+ #endif /* MBEDTLS_ECP_HAVE_SECP521R1 */
575
+ #if defined(MBEDTLS_ECP_HAVE_SECP192K1)
576
+ {
577
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP192K1, "secp192k1", "secp192k1"),
578
+ MBEDTLS_ECP_DP_SECP192K1,
579
+ },
580
+ #endif /* MBEDTLS_ECP_HAVE_SECP192K1 */
581
+ #if defined(MBEDTLS_ECP_HAVE_SECP224K1)
582
+ {
583
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP224K1, "secp224k1", "secp224k1"),
584
+ MBEDTLS_ECP_DP_SECP224K1,
585
+ },
586
+ #endif /* MBEDTLS_ECP_HAVE_SECP224K1 */
587
+ #if defined(MBEDTLS_ECP_HAVE_SECP256K1)
588
+ {
589
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP256K1, "secp256k1", "secp256k1"),
590
+ MBEDTLS_ECP_DP_SECP256K1,
591
+ },
592
+ #endif /* MBEDTLS_ECP_HAVE_SECP256K1 */
593
+ #if defined(MBEDTLS_ECP_HAVE_BP256R1)
594
+ {
595
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP256R1, "brainpoolP256r1", "brainpool256r1"),
596
+ MBEDTLS_ECP_DP_BP256R1,
597
+ },
598
+ #endif /* MBEDTLS_ECP_HAVE_BP256R1 */
599
+ #if defined(MBEDTLS_ECP_HAVE_BP384R1)
600
+ {
601
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP384R1, "brainpoolP384r1", "brainpool384r1"),
602
+ MBEDTLS_ECP_DP_BP384R1,
603
+ },
604
+ #endif /* MBEDTLS_ECP_HAVE_BP384R1 */
605
+ #if defined(MBEDTLS_ECP_HAVE_BP512R1)
606
+ {
607
+ OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP512R1, "brainpoolP512r1", "brainpool512r1"),
608
+ MBEDTLS_ECP_DP_BP512R1,
609
+ },
610
+ #endif /* MBEDTLS_ECP_HAVE_BP512R1 */
611
+ {
612
+ NULL_OID_DESCRIPTOR,
613
+ MBEDTLS_ECP_DP_NONE,
614
+ },
615
+ };
616
+
617
+ FN_OID_TYPED_FROM_ASN1(oid_ecp_grp_t, grp_id, oid_ecp_grp)
618
+ FN_OID_GET_ATTR1(mbedtls_oid_get_ec_grp, oid_ecp_grp_t, grp_id, mbedtls_ecp_group_id, grp_id)
619
+ FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp,
620
+ oid_ecp_grp_t,
621
+ oid_ecp_grp,
622
+ mbedtls_ecp_group_id,
623
+ grp_id)
624
+
625
+ /*
626
+ * For Elliptic Curve algorithms that are directly
627
+ * encoded in the AlgorithmIdentifier (RFC 8410)
628
+ */
629
+ typedef struct {
630
+ mbedtls_oid_descriptor_t descriptor;
631
+ mbedtls_ecp_group_id grp_id;
632
+ } oid_ecp_grp_algid_t;
633
+
634
+ static const oid_ecp_grp_algid_t oid_ecp_grp_algid[] =
635
+ {
636
+ #if defined(MBEDTLS_ECP_HAVE_CURVE25519)
637
+ {
638
+ OID_DESCRIPTOR(MBEDTLS_OID_X25519, "X25519", "X25519"),
639
+ MBEDTLS_ECP_DP_CURVE25519,
640
+ },
641
+ #endif /* MBEDTLS_ECP_HAVE_CURVE25519 */
642
+ #if defined(MBEDTLS_ECP_HAVE_CURVE448)
643
+ {
644
+ OID_DESCRIPTOR(MBEDTLS_OID_X448, "X448", "X448"),
645
+ MBEDTLS_ECP_DP_CURVE448,
646
+ },
647
+ #endif /* MBEDTLS_ECP_HAVE_CURVE448 */
648
+ {
649
+ NULL_OID_DESCRIPTOR,
650
+ MBEDTLS_ECP_DP_NONE,
651
+ },
652
+ };
653
+
654
+ FN_OID_TYPED_FROM_ASN1(oid_ecp_grp_algid_t, grp_id_algid, oid_ecp_grp_algid)
655
+ FN_OID_GET_ATTR1(mbedtls_oid_get_ec_grp_algid,
656
+ oid_ecp_grp_algid_t,
657
+ grp_id_algid,
658
+ mbedtls_ecp_group_id,
659
+ grp_id)
660
+ FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp_algid,
661
+ oid_ecp_grp_algid_t,
662
+ oid_ecp_grp_algid,
663
+ mbedtls_ecp_group_id,
664
+ grp_id)
665
+ #endif /* MBEDTLS_PK_HAVE_ECC_KEYS */
666
+
667
+ #if defined(MBEDTLS_CIPHER_C)
668
+ /*
669
+ * For PKCS#5 PBES2 encryption algorithm
670
+ */
671
+ typedef struct {
672
+ mbedtls_oid_descriptor_t descriptor;
673
+ mbedtls_cipher_type_t cipher_alg;
674
+ } oid_cipher_alg_t;
675
+
676
+ static const oid_cipher_alg_t oid_cipher_alg[] =
677
+ {
678
+ {
679
+ OID_DESCRIPTOR(MBEDTLS_OID_DES_CBC, "desCBC", "DES-CBC"),
680
+ MBEDTLS_CIPHER_DES_CBC,
681
+ },
682
+ {
683
+ OID_DESCRIPTOR(MBEDTLS_OID_DES_EDE3_CBC, "des-ede3-cbc", "DES-EDE3-CBC"),
684
+ MBEDTLS_CIPHER_DES_EDE3_CBC,
685
+ },
686
+ {
687
+ OID_DESCRIPTOR(MBEDTLS_OID_AES_128_CBC, "aes128-cbc", "AES128-CBC"),
688
+ MBEDTLS_CIPHER_AES_128_CBC,
689
+ },
690
+ {
691
+ OID_DESCRIPTOR(MBEDTLS_OID_AES_192_CBC, "aes192-cbc", "AES192-CBC"),
692
+ MBEDTLS_CIPHER_AES_192_CBC,
693
+ },
694
+ {
695
+ OID_DESCRIPTOR(MBEDTLS_OID_AES_256_CBC, "aes256-cbc", "AES256-CBC"),
696
+ MBEDTLS_CIPHER_AES_256_CBC,
697
+ },
698
+ {
699
+ NULL_OID_DESCRIPTOR,
700
+ MBEDTLS_CIPHER_NONE,
701
+ },
702
+ };
703
+
704
+ FN_OID_TYPED_FROM_ASN1(oid_cipher_alg_t, cipher_alg, oid_cipher_alg)
705
+ FN_OID_GET_ATTR1(mbedtls_oid_get_cipher_alg,
706
+ oid_cipher_alg_t,
707
+ cipher_alg,
708
+ mbedtls_cipher_type_t,
709
+ cipher_alg)
710
+ #endif /* MBEDTLS_CIPHER_C */
711
+
712
+ /*
713
+ * For digestAlgorithm
714
+ */
715
+ typedef struct {
716
+ mbedtls_oid_descriptor_t descriptor;
717
+ mbedtls_md_type_t md_alg;
718
+ } oid_md_alg_t;
719
+
720
+ static const oid_md_alg_t oid_md_alg[] =
721
+ {
722
+ #if defined(MBEDTLS_MD_CAN_MD5)
723
+ {
724
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_MD5, "id-md5", "MD5"),
725
+ MBEDTLS_MD_MD5,
726
+ },
727
+ #endif
728
+ #if defined(MBEDTLS_MD_CAN_SHA1)
729
+ {
730
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA1, "id-sha1", "SHA-1"),
731
+ MBEDTLS_MD_SHA1,
732
+ },
733
+ #endif
734
+ #if defined(MBEDTLS_MD_CAN_SHA224)
735
+ {
736
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA224, "id-sha224", "SHA-224"),
737
+ MBEDTLS_MD_SHA224,
738
+ },
739
+ #endif
740
+ #if defined(MBEDTLS_MD_CAN_SHA256)
741
+ {
742
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA256, "id-sha256", "SHA-256"),
743
+ MBEDTLS_MD_SHA256,
744
+ },
745
+ #endif
746
+ #if defined(MBEDTLS_MD_CAN_SHA384)
747
+ {
748
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA384, "id-sha384", "SHA-384"),
749
+ MBEDTLS_MD_SHA384,
750
+ },
751
+ #endif
752
+ #if defined(MBEDTLS_MD_CAN_SHA512)
753
+ {
754
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA512, "id-sha512", "SHA-512"),
755
+ MBEDTLS_MD_SHA512,
756
+ },
757
+ #endif
758
+ #if defined(MBEDTLS_MD_CAN_RIPEMD160)
759
+ {
760
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_RIPEMD160, "id-ripemd160", "RIPEMD-160"),
761
+ MBEDTLS_MD_RIPEMD160,
762
+ },
763
+ #endif
764
+ #if defined(MBEDTLS_MD_CAN_SHA3_224)
765
+ {
766
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_224, "id-sha3-224", "SHA-3-224"),
767
+ MBEDTLS_MD_SHA3_224,
768
+ },
769
+ #endif
770
+ #if defined(MBEDTLS_MD_CAN_SHA3_256)
771
+ {
772
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_256, "id-sha3-256", "SHA-3-256"),
773
+ MBEDTLS_MD_SHA3_256,
774
+ },
775
+ #endif
776
+ #if defined(MBEDTLS_MD_CAN_SHA3_384)
777
+ {
778
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_384, "id-sha3-384", "SHA-3-384"),
779
+ MBEDTLS_MD_SHA3_384,
780
+ },
781
+ #endif
782
+ #if defined(MBEDTLS_MD_CAN_SHA3_512)
783
+ {
784
+ OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA3_512, "id-sha3-512", "SHA-3-512"),
785
+ MBEDTLS_MD_SHA3_512,
786
+ },
787
+ #endif
788
+ {
789
+ NULL_OID_DESCRIPTOR,
790
+ MBEDTLS_MD_NONE,
791
+ },
792
+ };
793
+
794
+ FN_OID_TYPED_FROM_ASN1(oid_md_alg_t, md_alg, oid_md_alg)
795
+ FN_OID_GET_ATTR1(mbedtls_oid_get_md_alg, oid_md_alg_t, md_alg, mbedtls_md_type_t, md_alg)
796
+ FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_md,
797
+ oid_md_alg_t,
798
+ oid_md_alg,
799
+ mbedtls_md_type_t,
800
+ md_alg)
801
+
802
+ /*
803
+ * For HMAC digestAlgorithm
804
+ */
805
+ typedef struct {
806
+ mbedtls_oid_descriptor_t descriptor;
807
+ mbedtls_md_type_t md_hmac;
808
+ } oid_md_hmac_t;
809
+
810
+ static const oid_md_hmac_t oid_md_hmac[] =
811
+ {
812
+ #if defined(MBEDTLS_MD_CAN_SHA1)
813
+ {
814
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA1, "hmacSHA1", "HMAC-SHA-1"),
815
+ MBEDTLS_MD_SHA1,
816
+ },
817
+ #endif /* MBEDTLS_MD_CAN_SHA1 */
818
+ #if defined(MBEDTLS_MD_CAN_SHA224)
819
+ {
820
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA224, "hmacSHA224", "HMAC-SHA-224"),
821
+ MBEDTLS_MD_SHA224,
822
+ },
823
+ #endif /* MBEDTLS_MD_CAN_SHA224 */
824
+ #if defined(MBEDTLS_MD_CAN_SHA256)
825
+ {
826
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA256, "hmacSHA256", "HMAC-SHA-256"),
827
+ MBEDTLS_MD_SHA256,
828
+ },
829
+ #endif /* MBEDTLS_MD_CAN_SHA256 */
830
+ #if defined(MBEDTLS_MD_CAN_SHA384)
831
+ {
832
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA384, "hmacSHA384", "HMAC-SHA-384"),
833
+ MBEDTLS_MD_SHA384,
834
+ },
835
+ #endif /* MBEDTLS_MD_CAN_SHA384 */
836
+ #if defined(MBEDTLS_MD_CAN_SHA512)
837
+ {
838
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA512, "hmacSHA512", "HMAC-SHA-512"),
839
+ MBEDTLS_MD_SHA512,
840
+ },
841
+ #endif /* MBEDTLS_MD_CAN_SHA512 */
842
+ #if defined(MBEDTLS_MD_CAN_SHA3_224)
843
+ {
844
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_224, "hmacSHA3-224", "HMAC-SHA3-224"),
845
+ MBEDTLS_MD_SHA3_224,
846
+ },
847
+ #endif /* MBEDTLS_MD_CAN_SHA3_224 */
848
+ #if defined(MBEDTLS_MD_CAN_SHA3_256)
849
+ {
850
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_256, "hmacSHA3-256", "HMAC-SHA3-256"),
851
+ MBEDTLS_MD_SHA3_256,
852
+ },
853
+ #endif /* MBEDTLS_MD_CAN_SHA3_256 */
854
+ #if defined(MBEDTLS_MD_CAN_SHA3_384)
855
+ {
856
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_384, "hmacSHA3-384", "HMAC-SHA3-384"),
857
+ MBEDTLS_MD_SHA3_384,
858
+ },
859
+ #endif /* MBEDTLS_MD_CAN_SHA3_384 */
860
+ #if defined(MBEDTLS_MD_CAN_SHA3_512)
861
+ {
862
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA3_512, "hmacSHA3-512", "HMAC-SHA3-512"),
863
+ MBEDTLS_MD_SHA3_512,
864
+ },
865
+ #endif /* MBEDTLS_MD_CAN_SHA3_512 */
866
+ #if defined(MBEDTLS_MD_CAN_RIPEMD160)
867
+ {
868
+ OID_DESCRIPTOR(MBEDTLS_OID_HMAC_RIPEMD160, "hmacRIPEMD160", "HMAC-RIPEMD160"),
869
+ MBEDTLS_MD_RIPEMD160,
870
+ },
871
+ #endif /* MBEDTLS_MD_CAN_RIPEMD160 */
872
+ {
873
+ NULL_OID_DESCRIPTOR,
874
+ MBEDTLS_MD_NONE,
875
+ },
876
+ };
877
+
878
+ FN_OID_TYPED_FROM_ASN1(oid_md_hmac_t, md_hmac, oid_md_hmac)
879
+ FN_OID_GET_ATTR1(mbedtls_oid_get_md_hmac, oid_md_hmac_t, md_hmac, mbedtls_md_type_t, md_hmac)
880
+
881
+ #if defined(MBEDTLS_PKCS12_C) && defined(MBEDTLS_CIPHER_C)
882
+ /*
883
+ * For PKCS#12 PBEs
884
+ */
885
+ typedef struct {
886
+ mbedtls_oid_descriptor_t descriptor;
887
+ mbedtls_md_type_t md_alg;
888
+ mbedtls_cipher_type_t cipher_alg;
889
+ } oid_pkcs12_pbe_alg_t;
890
+
891
+ static const oid_pkcs12_pbe_alg_t oid_pkcs12_pbe_alg[] =
892
+ {
893
+ {
894
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS12_PBE_SHA1_DES3_EDE_CBC,
895
+ "pbeWithSHAAnd3-KeyTripleDES-CBC",
896
+ "PBE with SHA1 and 3-Key 3DES"),
897
+ MBEDTLS_MD_SHA1, MBEDTLS_CIPHER_DES_EDE3_CBC,
898
+ },
899
+ {
900
+ OID_DESCRIPTOR(MBEDTLS_OID_PKCS12_PBE_SHA1_DES2_EDE_CBC,
901
+ "pbeWithSHAAnd2-KeyTripleDES-CBC",
902
+ "PBE with SHA1 and 2-Key 3DES"),
903
+ MBEDTLS_MD_SHA1, MBEDTLS_CIPHER_DES_EDE_CBC,
904
+ },
905
+ {
906
+ NULL_OID_DESCRIPTOR,
907
+ MBEDTLS_MD_NONE, MBEDTLS_CIPHER_NONE,
908
+ },
909
+ };
910
+
911
+ FN_OID_TYPED_FROM_ASN1(oid_pkcs12_pbe_alg_t, pkcs12_pbe_alg, oid_pkcs12_pbe_alg)
912
+ FN_OID_GET_ATTR2(mbedtls_oid_get_pkcs12_pbe_alg,
913
+ oid_pkcs12_pbe_alg_t,
914
+ pkcs12_pbe_alg,
915
+ mbedtls_md_type_t,
916
+ md_alg,
917
+ mbedtls_cipher_type_t,
918
+ cipher_alg)
919
+ #endif /* MBEDTLS_PKCS12_C && MBEDTLS_CIPHER_C */
920
+
921
+ /* Return the x.y.z.... style numeric string for the given OID */
922
+ int mbedtls_oid_get_numeric_string(char *buf, size_t size,
923
+ const mbedtls_asn1_buf *oid)
924
+ {
925
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
926
+ char *p = buf;
927
+ size_t n = size;
928
+ unsigned int value = 0;
929
+
930
+ if (size > INT_MAX) {
931
+ /* Avoid overflow computing return value */
932
+ return MBEDTLS_ERR_ASN1_INVALID_LENGTH;
933
+ }
934
+
935
+ if (oid->len <= 0) {
936
+ /* OID must not be empty */
937
+ return MBEDTLS_ERR_ASN1_OUT_OF_DATA;
938
+ }
939
+
940
+ for (size_t i = 0; i < oid->len; i++) {
941
+ /* Prevent overflow in value. */
942
+ if (value > (UINT_MAX >> 7)) {
943
+ return MBEDTLS_ERR_ASN1_INVALID_DATA;
944
+ }
945
+ if ((value == 0) && ((oid->p[i]) == 0x80)) {
946
+ /* Overlong encoding is not allowed */
947
+ return MBEDTLS_ERR_ASN1_INVALID_DATA;
948
+ }
949
+
950
+ value <<= 7;
951
+ value |= oid->p[i] & 0x7F;
952
+
953
+ if (!(oid->p[i] & 0x80)) {
954
+ /* Last byte */
955
+ if (n == size) {
956
+ int component1;
957
+ unsigned int component2;
958
+ /* First subidentifier contains first two OID components */
959
+ if (value >= 80) {
960
+ component1 = '2';
961
+ component2 = value - 80;
962
+ } else if (value >= 40) {
963
+ component1 = '1';
964
+ component2 = value - 40;
965
+ } else {
966
+ component1 = '0';
967
+ component2 = value;
968
+ }
969
+ ret = mbedtls_snprintf(p, n, "%c.%u", component1, component2);
970
+ } else {
971
+ ret = mbedtls_snprintf(p, n, ".%u", value);
972
+ }
973
+ if (ret < 2 || (size_t) ret >= n) {
974
+ return MBEDTLS_ERR_OID_BUF_TOO_SMALL;
975
+ }
976
+ n -= (size_t) ret;
977
+ p += ret;
978
+ value = 0;
979
+ }
980
+ }
981
+
982
+ if (value != 0) {
983
+ /* Unterminated subidentifier */
984
+ return MBEDTLS_ERR_ASN1_OUT_OF_DATA;
985
+ }
986
+
987
+ return (int) (size - n);
988
+ }
989
+
990
+ static int oid_parse_number(unsigned int *num, const char **p, const char *bound)
991
+ {
992
+ int ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
993
+
994
+ *num = 0;
995
+
996
+ while (*p < bound && **p >= '0' && **p <= '9') {
997
+ ret = 0;
998
+ if (*num > (UINT_MAX / 10)) {
999
+ return MBEDTLS_ERR_ASN1_INVALID_DATA;
1000
+ }
1001
+ *num *= 10;
1002
+ *num += **p - '0';
1003
+ (*p)++;
1004
+ }
1005
+ return ret;
1006
+ }
1007
+
1008
+ static size_t oid_subidentifier_num_bytes(unsigned int value)
1009
+ {
1010
+ size_t num_bytes = 0;
1011
+
1012
+ do {
1013
+ value >>= 7;
1014
+ num_bytes++;
1015
+ } while (value != 0);
1016
+
1017
+ return num_bytes;
1018
+ }
1019
+
1020
+ static int oid_subidentifier_encode_into(unsigned char **p,
1021
+ unsigned char *bound,
1022
+ unsigned int value)
1023
+ {
1024
+ size_t num_bytes = oid_subidentifier_num_bytes(value);
1025
+
1026
+ if ((size_t) (bound - *p) < num_bytes) {
1027
+ return MBEDTLS_ERR_OID_BUF_TOO_SMALL;
1028
+ }
1029
+ (*p)[num_bytes - 1] = (unsigned char) (value & 0x7f);
1030
+ value >>= 7;
1031
+
1032
+ for (size_t i = 2; i <= num_bytes; i++) {
1033
+ (*p)[num_bytes - i] = 0x80 | (unsigned char) (value & 0x7f);
1034
+ value >>= 7;
1035
+ }
1036
+ *p += num_bytes;
1037
+
1038
+ return 0;
1039
+ }
1040
+
1041
+ /* Return the OID for the given x.y.z.... style numeric string */
1042
+ int mbedtls_oid_from_numeric_string(mbedtls_asn1_buf *oid,
1043
+ const char *oid_str, size_t size)
1044
+ {
1045
+ int ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
1046
+ const char *str_ptr = oid_str;
1047
+ const char *str_bound = oid_str + size;
1048
+ unsigned int val = 0;
1049
+ unsigned int component1, component2;
1050
+ size_t encoded_len;
1051
+ unsigned char *resized_mem;
1052
+
1053
+ /* Count the number of dots to get a worst-case allocation size. */
1054
+ size_t num_dots = 0;
1055
+ for (size_t i = 0; i < size; i++) {
1056
+ if (oid_str[i] == '.') {
1057
+ num_dots++;
1058
+ }
1059
+ }
1060
+ /* Allocate maximum possible required memory:
1061
+ * There are (num_dots + 1) integer components, but the first 2 share the
1062
+ * same subidentifier, so we only need num_dots subidentifiers maximum. */
1063
+ if (num_dots == 0 || (num_dots > MBEDTLS_OID_MAX_COMPONENTS - 1)) {
1064
+ return MBEDTLS_ERR_ASN1_INVALID_DATA;
1065
+ }
1066
+ /* Each byte can store 7 bits, calculate number of bytes for a
1067
+ * subidentifier:
1068
+ *
1069
+ * bytes = ceil(subidentifer_size * 8 / 7)
1070
+ */
1071
+ size_t bytes_per_subidentifier = (((sizeof(unsigned int) * 8) - 1) / 7)
1072
+ + 1;
1073
+ size_t max_possible_bytes = num_dots * bytes_per_subidentifier;
1074
+ oid->p = mbedtls_calloc(max_possible_bytes, 1);
1075
+ if (oid->p == NULL) {
1076
+ return MBEDTLS_ERR_ASN1_ALLOC_FAILED;
1077
+ }
1078
+ unsigned char *out_ptr = oid->p;
1079
+ unsigned char *out_bound = oid->p + max_possible_bytes;
1080
+
1081
+ ret = oid_parse_number(&component1, &str_ptr, str_bound);
1082
+ if (ret != 0) {
1083
+ goto error;
1084
+ }
1085
+ if (component1 > 2) {
1086
+ /* First component can't be > 2 */
1087
+ ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
1088
+ goto error;
1089
+ }
1090
+ if (str_ptr >= str_bound || *str_ptr != '.') {
1091
+ ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
1092
+ goto error;
1093
+ }
1094
+ str_ptr++;
1095
+
1096
+ ret = oid_parse_number(&component2, &str_ptr, str_bound);
1097
+ if (ret != 0) {
1098
+ goto error;
1099
+ }
1100
+ if ((component1 < 2) && (component2 > 39)) {
1101
+ /* Root nodes 0 and 1 may have up to 40 children, numbered 0-39 */
1102
+ ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
1103
+ goto error;
1104
+ }
1105
+ if (str_ptr < str_bound) {
1106
+ if (*str_ptr == '.') {
1107
+ str_ptr++;
1108
+ } else {
1109
+ ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
1110
+ goto error;
1111
+ }
1112
+ }
1113
+
1114
+ if (component2 > (UINT_MAX - (component1 * 40))) {
1115
+ ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
1116
+ goto error;
1117
+ }
1118
+ ret = oid_subidentifier_encode_into(&out_ptr, out_bound,
1119
+ (component1 * 40) + component2);
1120
+ if (ret != 0) {
1121
+ goto error;
1122
+ }
1123
+
1124
+ while (str_ptr < str_bound) {
1125
+ ret = oid_parse_number(&val, &str_ptr, str_bound);
1126
+ if (ret != 0) {
1127
+ goto error;
1128
+ }
1129
+ if (str_ptr < str_bound) {
1130
+ if (*str_ptr == '.') {
1131
+ str_ptr++;
1132
+ } else {
1133
+ ret = MBEDTLS_ERR_ASN1_INVALID_DATA;
1134
+ goto error;
1135
+ }
1136
+ }
1137
+
1138
+ ret = oid_subidentifier_encode_into(&out_ptr, out_bound, val);
1139
+ if (ret != 0) {
1140
+ goto error;
1141
+ }
1142
+ }
1143
+
1144
+ encoded_len = (size_t) (out_ptr - oid->p);
1145
+ resized_mem = mbedtls_calloc(encoded_len, 1);
1146
+ if (resized_mem == NULL) {
1147
+ ret = MBEDTLS_ERR_ASN1_ALLOC_FAILED;
1148
+ goto error;
1149
+ }
1150
+ memcpy(resized_mem, oid->p, encoded_len);
1151
+ mbedtls_free(oid->p);
1152
+ oid->p = resized_mem;
1153
+ oid->len = encoded_len;
1154
+
1155
+ oid->tag = MBEDTLS_ASN1_OID;
1156
+
1157
+ return 0;
1158
+
1159
+ error:
1160
+ mbedtls_free(oid->p);
1161
+ oid->p = NULL;
1162
+ oid->len = 0;
1163
+ return ret;
1164
+ }
1165
+
1166
+ #endif /* MBEDTLS_OID_C */