@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,2482 @@
1
+ /**
2
+ * \file cipher_wrap.c
3
+ *
4
+ * \brief Generic cipher wrapper for Mbed TLS
5
+ *
6
+ * \author Adriaan de Jong <dejong@fox-it.com>
7
+ *
8
+ * Copyright The Mbed TLS Contributors
9
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
10
+ */
11
+
12
+ #include "common.h"
13
+
14
+ #if defined(MBEDTLS_CIPHER_C)
15
+
16
+ #include "cipher_wrap.h"
17
+ #include "mbedtls/error.h"
18
+
19
+ #if defined(MBEDTLS_CHACHAPOLY_C)
20
+ #include "mbedtls/chachapoly.h"
21
+ #endif
22
+
23
+ #if defined(MBEDTLS_AES_C)
24
+ #include "mbedtls/aes.h"
25
+ #endif
26
+
27
+ #if defined(MBEDTLS_CAMELLIA_C)
28
+ #include "mbedtls/camellia.h"
29
+ #endif
30
+
31
+ #if defined(MBEDTLS_ARIA_C)
32
+ #include "mbedtls/aria.h"
33
+ #endif
34
+
35
+ #if defined(MBEDTLS_DES_C)
36
+ #include "mbedtls/des.h"
37
+ #endif
38
+
39
+ #if defined(MBEDTLS_CHACHA20_C)
40
+ #include "mbedtls/chacha20.h"
41
+ #endif
42
+
43
+ #if defined(MBEDTLS_GCM_C)
44
+ #include "mbedtls/gcm.h"
45
+ #endif
46
+
47
+ #if defined(MBEDTLS_CCM_C)
48
+ #include "mbedtls/ccm.h"
49
+ #endif
50
+
51
+ #if defined(MBEDTLS_NIST_KW_C)
52
+ #include "mbedtls/nist_kw.h"
53
+ #endif
54
+
55
+ #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
56
+ #include <string.h>
57
+ #endif
58
+
59
+ #include "mbedtls/platform.h"
60
+
61
+ enum mbedtls_cipher_base_index {
62
+ #if defined(MBEDTLS_AES_C)
63
+ MBEDTLS_CIPHER_BASE_INDEX_AES,
64
+ #endif
65
+ #if defined(MBEDTLS_ARIA_C)
66
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA,
67
+ #endif
68
+ #if defined(MBEDTLS_CAMELLIA_C)
69
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA,
70
+ #endif
71
+ #if defined(MBEDTLS_CIPHER_HAVE_CCM_AES_VIA_LEGACY_OR_USE_PSA)
72
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_AES,
73
+ #endif
74
+ #if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_ARIA_C)
75
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA,
76
+ #endif
77
+ #if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_CAMELLIA_C)
78
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA,
79
+ #endif
80
+ #if defined(MBEDTLS_CHACHA20_C)
81
+ MBEDTLS_CIPHER_BASE_INDEX_CHACHA20_BASE,
82
+ #endif
83
+ #if defined(MBEDTLS_CHACHAPOLY_C)
84
+ MBEDTLS_CIPHER_BASE_INDEX_CHACHAPOLY_BASE,
85
+ #endif
86
+ #if defined(MBEDTLS_DES_C)
87
+ MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3,
88
+ #endif
89
+ #if defined(MBEDTLS_DES_C)
90
+ MBEDTLS_CIPHER_BASE_INDEX_DES_EDE,
91
+ #endif
92
+ #if defined(MBEDTLS_DES_C)
93
+ MBEDTLS_CIPHER_BASE_INDEX_DES,
94
+ #endif
95
+ #if defined(MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA)
96
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_AES,
97
+ #endif
98
+ #if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_ARIA_C)
99
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA,
100
+ #endif
101
+ #if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_CAMELLIA_C)
102
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA,
103
+ #endif
104
+ #if defined(MBEDTLS_NIST_KW_C)
105
+ MBEDTLS_CIPHER_BASE_INDEX_KW_AES,
106
+ #endif
107
+ #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
108
+ MBEDTLS_CIPHER_BASE_INDEX_NULL_BASE,
109
+ #endif
110
+ #if defined(MBEDTLS_CIPHER_MODE_XTS) && defined(MBEDTLS_AES_C)
111
+ MBEDTLS_CIPHER_BASE_INDEX_XTS_AES,
112
+ #endif
113
+ /* Prevent compile failure due to empty enum */
114
+ MBEDTLS_CIPHER_BASE_PREVENT_EMPTY_ENUM
115
+ };
116
+
117
+ #if defined(MBEDTLS_GCM_C) && \
118
+ (defined(MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA) || \
119
+ defined(MBEDTLS_ARIA_C) || defined(MBEDTLS_CAMELLIA_C))
120
+ /* shared by all GCM ciphers */
121
+ static void *gcm_ctx_alloc(void)
122
+ {
123
+ void *ctx = mbedtls_calloc(1, sizeof(mbedtls_gcm_context));
124
+
125
+ if (ctx != NULL) {
126
+ mbedtls_gcm_init((mbedtls_gcm_context *) ctx);
127
+ }
128
+
129
+ return ctx;
130
+ }
131
+
132
+ static void gcm_ctx_free(void *ctx)
133
+ {
134
+ mbedtls_gcm_free(ctx);
135
+ mbedtls_free(ctx);
136
+ }
137
+ #endif /* MBEDTLS_GCM_C */
138
+
139
+ #if defined(MBEDTLS_CCM_C) && \
140
+ (defined(MBEDTLS_CIPHER_HAVE_CCM_AES_VIA_LEGACY_OR_USE_PSA) || \
141
+ defined(MBEDTLS_ARIA_C) || defined(MBEDTLS_CAMELLIA_C))
142
+ /* shared by all CCM ciphers */
143
+ static void *ccm_ctx_alloc(void)
144
+ {
145
+ void *ctx = mbedtls_calloc(1, sizeof(mbedtls_ccm_context));
146
+
147
+ if (ctx != NULL) {
148
+ mbedtls_ccm_init((mbedtls_ccm_context *) ctx);
149
+ }
150
+
151
+ return ctx;
152
+ }
153
+
154
+ static void ccm_ctx_free(void *ctx)
155
+ {
156
+ mbedtls_ccm_free(ctx);
157
+ mbedtls_free(ctx);
158
+ }
159
+ #endif /* MBEDTLS_CCM_C */
160
+
161
+ #if defined(MBEDTLS_AES_C)
162
+
163
+ static int aes_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation,
164
+ const unsigned char *input, unsigned char *output)
165
+ {
166
+ return mbedtls_aes_crypt_ecb((mbedtls_aes_context *) ctx, operation, input, output);
167
+ }
168
+
169
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
170
+ static int aes_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, size_t length,
171
+ unsigned char *iv, const unsigned char *input, unsigned char *output)
172
+ {
173
+ return mbedtls_aes_crypt_cbc((mbedtls_aes_context *) ctx, operation, length, iv, input,
174
+ output);
175
+ }
176
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
177
+
178
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
179
+ static int aes_crypt_cfb128_wrap(void *ctx, mbedtls_operation_t operation,
180
+ size_t length, size_t *iv_off, unsigned char *iv,
181
+ const unsigned char *input, unsigned char *output)
182
+ {
183
+ return mbedtls_aes_crypt_cfb128((mbedtls_aes_context *) ctx, operation, length, iv_off, iv,
184
+ input, output);
185
+ }
186
+ #endif /* MBEDTLS_CIPHER_MODE_CFB */
187
+
188
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
189
+ static int aes_crypt_ofb_wrap(void *ctx, size_t length, size_t *iv_off,
190
+ unsigned char *iv, const unsigned char *input, unsigned char *output)
191
+ {
192
+ return mbedtls_aes_crypt_ofb((mbedtls_aes_context *) ctx, length, iv_off,
193
+ iv, input, output);
194
+ }
195
+ #endif /* MBEDTLS_CIPHER_MODE_OFB */
196
+
197
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
198
+ static int aes_crypt_ctr_wrap(void *ctx, size_t length, size_t *nc_off,
199
+ unsigned char *nonce_counter, unsigned char *stream_block,
200
+ const unsigned char *input, unsigned char *output)
201
+ {
202
+ return mbedtls_aes_crypt_ctr((mbedtls_aes_context *) ctx, length, nc_off, nonce_counter,
203
+ stream_block, input, output);
204
+ }
205
+ #endif /* MBEDTLS_CIPHER_MODE_CTR */
206
+
207
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
208
+ static int aes_crypt_xts_wrap(void *ctx, mbedtls_operation_t operation,
209
+ size_t length,
210
+ const unsigned char data_unit[16],
211
+ const unsigned char *input,
212
+ unsigned char *output)
213
+ {
214
+ mbedtls_aes_xts_context *xts_ctx = ctx;
215
+ int mode;
216
+
217
+ switch (operation) {
218
+ case MBEDTLS_ENCRYPT:
219
+ mode = MBEDTLS_AES_ENCRYPT;
220
+ break;
221
+ case MBEDTLS_DECRYPT:
222
+ mode = MBEDTLS_AES_DECRYPT;
223
+ break;
224
+ default:
225
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
226
+ }
227
+
228
+ return mbedtls_aes_crypt_xts(xts_ctx, mode, length,
229
+ data_unit, input, output);
230
+ }
231
+ #endif /* MBEDTLS_CIPHER_MODE_XTS */
232
+
233
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
234
+ static int aes_setkey_dec_wrap(void *ctx, const unsigned char *key,
235
+ unsigned int key_bitlen)
236
+ {
237
+ return mbedtls_aes_setkey_dec((mbedtls_aes_context *) ctx, key, key_bitlen);
238
+ }
239
+ #endif
240
+
241
+ static int aes_setkey_enc_wrap(void *ctx, const unsigned char *key,
242
+ unsigned int key_bitlen)
243
+ {
244
+ return mbedtls_aes_setkey_enc((mbedtls_aes_context *) ctx, key, key_bitlen);
245
+ }
246
+
247
+ static void *aes_ctx_alloc(void)
248
+ {
249
+ mbedtls_aes_context *aes = mbedtls_calloc(1, sizeof(mbedtls_aes_context));
250
+
251
+ if (aes == NULL) {
252
+ return NULL;
253
+ }
254
+
255
+ mbedtls_aes_init(aes);
256
+
257
+ return aes;
258
+ }
259
+
260
+ static void aes_ctx_free(void *ctx)
261
+ {
262
+ mbedtls_aes_free((mbedtls_aes_context *) ctx);
263
+ mbedtls_free(ctx);
264
+ }
265
+
266
+ static const mbedtls_cipher_base_t aes_info = {
267
+ MBEDTLS_CIPHER_ID_AES,
268
+ aes_crypt_ecb_wrap,
269
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
270
+ aes_crypt_cbc_wrap,
271
+ #endif
272
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
273
+ aes_crypt_cfb128_wrap,
274
+ #endif
275
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
276
+ aes_crypt_ofb_wrap,
277
+ #endif
278
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
279
+ aes_crypt_ctr_wrap,
280
+ #endif
281
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
282
+ NULL,
283
+ #endif
284
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
285
+ NULL,
286
+ #endif
287
+ aes_setkey_enc_wrap,
288
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
289
+ aes_setkey_dec_wrap,
290
+ #endif
291
+ aes_ctx_alloc,
292
+ aes_ctx_free
293
+ };
294
+
295
+ static const mbedtls_cipher_info_t aes_128_ecb_info = {
296
+ "AES-128-ECB",
297
+ 16,
298
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
299
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
300
+ MBEDTLS_MODE_ECB,
301
+ MBEDTLS_CIPHER_AES_128_ECB,
302
+ 0,
303
+ MBEDTLS_CIPHER_BASE_INDEX_AES
304
+ };
305
+
306
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
307
+ static const mbedtls_cipher_info_t aes_192_ecb_info = {
308
+ "AES-192-ECB",
309
+ 16,
310
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
311
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
312
+ MBEDTLS_MODE_ECB,
313
+ MBEDTLS_CIPHER_AES_192_ECB,
314
+ 0,
315
+ MBEDTLS_CIPHER_BASE_INDEX_AES
316
+ };
317
+
318
+ static const mbedtls_cipher_info_t aes_256_ecb_info = {
319
+ "AES-256-ECB",
320
+ 16,
321
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
322
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
323
+ MBEDTLS_MODE_ECB,
324
+ MBEDTLS_CIPHER_AES_256_ECB,
325
+ 0,
326
+ MBEDTLS_CIPHER_BASE_INDEX_AES
327
+ };
328
+ #endif
329
+
330
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
331
+ static const mbedtls_cipher_info_t aes_128_cbc_info = {
332
+ "AES-128-CBC",
333
+ 16,
334
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
335
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
336
+ MBEDTLS_MODE_CBC,
337
+ MBEDTLS_CIPHER_AES_128_CBC,
338
+ 0,
339
+ MBEDTLS_CIPHER_BASE_INDEX_AES
340
+ };
341
+
342
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
343
+ static const mbedtls_cipher_info_t aes_192_cbc_info = {
344
+ "AES-192-CBC",
345
+ 16,
346
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
347
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
348
+ MBEDTLS_MODE_CBC,
349
+ MBEDTLS_CIPHER_AES_192_CBC,
350
+ 0,
351
+ MBEDTLS_CIPHER_BASE_INDEX_AES
352
+ };
353
+
354
+ static const mbedtls_cipher_info_t aes_256_cbc_info = {
355
+ "AES-256-CBC",
356
+ 16,
357
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
358
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
359
+ MBEDTLS_MODE_CBC,
360
+ MBEDTLS_CIPHER_AES_256_CBC,
361
+ 0,
362
+ MBEDTLS_CIPHER_BASE_INDEX_AES
363
+ };
364
+ #endif
365
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
366
+
367
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
368
+ static const mbedtls_cipher_info_t aes_128_cfb128_info = {
369
+ "AES-128-CFB128",
370
+ 16,
371
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
372
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
373
+ MBEDTLS_MODE_CFB,
374
+ MBEDTLS_CIPHER_AES_128_CFB128,
375
+ 0,
376
+ MBEDTLS_CIPHER_BASE_INDEX_AES
377
+ };
378
+
379
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
380
+ static const mbedtls_cipher_info_t aes_192_cfb128_info = {
381
+ "AES-192-CFB128",
382
+ 16,
383
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
384
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
385
+ MBEDTLS_MODE_CFB,
386
+ MBEDTLS_CIPHER_AES_192_CFB128,
387
+ 0,
388
+ MBEDTLS_CIPHER_BASE_INDEX_AES
389
+ };
390
+
391
+ static const mbedtls_cipher_info_t aes_256_cfb128_info = {
392
+ "AES-256-CFB128",
393
+ 16,
394
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
395
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
396
+ MBEDTLS_MODE_CFB,
397
+ MBEDTLS_CIPHER_AES_256_CFB128,
398
+ 0,
399
+ MBEDTLS_CIPHER_BASE_INDEX_AES
400
+ };
401
+ #endif
402
+ #endif /* MBEDTLS_CIPHER_MODE_CFB */
403
+
404
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
405
+ static const mbedtls_cipher_info_t aes_128_ofb_info = {
406
+ "AES-128-OFB",
407
+ 16,
408
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
409
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
410
+ MBEDTLS_MODE_OFB,
411
+ MBEDTLS_CIPHER_AES_128_OFB,
412
+ 0,
413
+ MBEDTLS_CIPHER_BASE_INDEX_AES
414
+ };
415
+
416
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
417
+ static const mbedtls_cipher_info_t aes_192_ofb_info = {
418
+ "AES-192-OFB",
419
+ 16,
420
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
421
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
422
+ MBEDTLS_MODE_OFB,
423
+ MBEDTLS_CIPHER_AES_192_OFB,
424
+ 0,
425
+ MBEDTLS_CIPHER_BASE_INDEX_AES
426
+ };
427
+
428
+ static const mbedtls_cipher_info_t aes_256_ofb_info = {
429
+ "AES-256-OFB",
430
+ 16,
431
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
432
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
433
+ MBEDTLS_MODE_OFB,
434
+ MBEDTLS_CIPHER_AES_256_OFB,
435
+ 0,
436
+ MBEDTLS_CIPHER_BASE_INDEX_AES
437
+ };
438
+ #endif
439
+ #endif /* MBEDTLS_CIPHER_MODE_OFB */
440
+
441
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
442
+ static const mbedtls_cipher_info_t aes_128_ctr_info = {
443
+ "AES-128-CTR",
444
+ 16,
445
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
446
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
447
+ MBEDTLS_MODE_CTR,
448
+ MBEDTLS_CIPHER_AES_128_CTR,
449
+ 0,
450
+ MBEDTLS_CIPHER_BASE_INDEX_AES
451
+ };
452
+
453
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
454
+ static const mbedtls_cipher_info_t aes_192_ctr_info = {
455
+ "AES-192-CTR",
456
+ 16,
457
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
458
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
459
+ MBEDTLS_MODE_CTR,
460
+ MBEDTLS_CIPHER_AES_192_CTR,
461
+ 0,
462
+ MBEDTLS_CIPHER_BASE_INDEX_AES
463
+ };
464
+
465
+ static const mbedtls_cipher_info_t aes_256_ctr_info = {
466
+ "AES-256-CTR",
467
+ 16,
468
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
469
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
470
+ MBEDTLS_MODE_CTR,
471
+ MBEDTLS_CIPHER_AES_256_CTR,
472
+ 0,
473
+ MBEDTLS_CIPHER_BASE_INDEX_AES
474
+ };
475
+ #endif
476
+ #endif /* MBEDTLS_CIPHER_MODE_CTR */
477
+
478
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
479
+ static int xts_aes_setkey_enc_wrap(void *ctx, const unsigned char *key,
480
+ unsigned int key_bitlen)
481
+ {
482
+ mbedtls_aes_xts_context *xts_ctx = ctx;
483
+ return mbedtls_aes_xts_setkey_enc(xts_ctx, key, key_bitlen);
484
+ }
485
+
486
+ static int xts_aes_setkey_dec_wrap(void *ctx, const unsigned char *key,
487
+ unsigned int key_bitlen)
488
+ {
489
+ mbedtls_aes_xts_context *xts_ctx = ctx;
490
+ return mbedtls_aes_xts_setkey_dec(xts_ctx, key, key_bitlen);
491
+ }
492
+
493
+ static void *xts_aes_ctx_alloc(void)
494
+ {
495
+ mbedtls_aes_xts_context *xts_ctx = mbedtls_calloc(1, sizeof(*xts_ctx));
496
+
497
+ if (xts_ctx != NULL) {
498
+ mbedtls_aes_xts_init(xts_ctx);
499
+ }
500
+
501
+ return xts_ctx;
502
+ }
503
+
504
+ static void xts_aes_ctx_free(void *ctx)
505
+ {
506
+ mbedtls_aes_xts_context *xts_ctx = ctx;
507
+
508
+ if (xts_ctx == NULL) {
509
+ return;
510
+ }
511
+
512
+ mbedtls_aes_xts_free(xts_ctx);
513
+ mbedtls_free(xts_ctx);
514
+ }
515
+
516
+ static const mbedtls_cipher_base_t xts_aes_info = {
517
+ MBEDTLS_CIPHER_ID_AES,
518
+ NULL,
519
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
520
+ NULL,
521
+ #endif
522
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
523
+ NULL,
524
+ #endif
525
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
526
+ NULL,
527
+ #endif
528
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
529
+ NULL,
530
+ #endif
531
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
532
+ aes_crypt_xts_wrap,
533
+ #endif
534
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
535
+ NULL,
536
+ #endif
537
+ xts_aes_setkey_enc_wrap,
538
+ xts_aes_setkey_dec_wrap,
539
+ xts_aes_ctx_alloc,
540
+ xts_aes_ctx_free
541
+ };
542
+
543
+ static const mbedtls_cipher_info_t aes_128_xts_info = {
544
+ "AES-128-XTS",
545
+ 16,
546
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
547
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
548
+ MBEDTLS_MODE_XTS,
549
+ MBEDTLS_CIPHER_AES_128_XTS,
550
+ 0,
551
+ MBEDTLS_CIPHER_BASE_INDEX_XTS_AES
552
+ };
553
+
554
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
555
+ static const mbedtls_cipher_info_t aes_256_xts_info = {
556
+ "AES-256-XTS",
557
+ 16,
558
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
559
+ 512 >> MBEDTLS_KEY_BITLEN_SHIFT,
560
+ MBEDTLS_MODE_XTS,
561
+ MBEDTLS_CIPHER_AES_256_XTS,
562
+ 0,
563
+ MBEDTLS_CIPHER_BASE_INDEX_XTS_AES
564
+ };
565
+ #endif
566
+ #endif /* MBEDTLS_CIPHER_MODE_XTS */
567
+ #endif /* MBEDTLS_AES_C */
568
+
569
+ #if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_CCM_GCM_CAN_AES)
570
+ static int gcm_aes_setkey_wrap(void *ctx, const unsigned char *key,
571
+ unsigned int key_bitlen)
572
+ {
573
+ return mbedtls_gcm_setkey((mbedtls_gcm_context *) ctx, MBEDTLS_CIPHER_ID_AES,
574
+ key, key_bitlen);
575
+ }
576
+ #endif /* MBEDTLS_GCM_C && MBEDTLS_CCM_GCM_CAN_AES */
577
+
578
+ #if defined(MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA)
579
+ static const mbedtls_cipher_base_t gcm_aes_info = {
580
+ MBEDTLS_CIPHER_ID_AES,
581
+ NULL,
582
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
583
+ NULL,
584
+ #endif
585
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
586
+ NULL,
587
+ #endif
588
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
589
+ NULL,
590
+ #endif
591
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
592
+ NULL,
593
+ #endif
594
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
595
+ NULL,
596
+ #endif
597
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
598
+ NULL,
599
+ #endif
600
+ #if defined(MBEDTLS_GCM_C)
601
+ gcm_aes_setkey_wrap,
602
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
603
+ gcm_aes_setkey_wrap,
604
+ #endif
605
+ gcm_ctx_alloc,
606
+ gcm_ctx_free,
607
+ #else
608
+ NULL,
609
+ NULL,
610
+ NULL,
611
+ NULL,
612
+ #endif /* MBEDTLS_GCM_C */
613
+ };
614
+ #endif /* MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA */
615
+
616
+ #if defined(MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA)
617
+ static const mbedtls_cipher_info_t aes_128_gcm_info = {
618
+ "AES-128-GCM",
619
+ 16,
620
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
621
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
622
+ MBEDTLS_MODE_GCM,
623
+ MBEDTLS_CIPHER_AES_128_GCM,
624
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
625
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_AES
626
+ };
627
+
628
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
629
+ static const mbedtls_cipher_info_t aes_192_gcm_info = {
630
+ "AES-192-GCM",
631
+ 16,
632
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
633
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
634
+ MBEDTLS_MODE_GCM,
635
+ MBEDTLS_CIPHER_AES_192_GCM,
636
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
637
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_AES
638
+ };
639
+
640
+ static const mbedtls_cipher_info_t aes_256_gcm_info = {
641
+ "AES-256-GCM",
642
+ 16,
643
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
644
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
645
+ MBEDTLS_MODE_GCM,
646
+ MBEDTLS_CIPHER_AES_256_GCM,
647
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
648
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_AES
649
+ };
650
+ #endif
651
+ #endif /* MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA */
652
+
653
+ #if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_CCM_GCM_CAN_AES)
654
+ static int ccm_aes_setkey_wrap(void *ctx, const unsigned char *key,
655
+ unsigned int key_bitlen)
656
+ {
657
+ return mbedtls_ccm_setkey((mbedtls_ccm_context *) ctx, MBEDTLS_CIPHER_ID_AES,
658
+ key, key_bitlen);
659
+ }
660
+ #endif /* MBEDTLS_CCM_C && MBEDTLS_CCM_GCM_CAN_AES */
661
+
662
+ #if defined(MBEDTLS_CIPHER_HAVE_CCM_AES_VIA_LEGACY_OR_USE_PSA)
663
+ static const mbedtls_cipher_base_t ccm_aes_info = {
664
+ MBEDTLS_CIPHER_ID_AES,
665
+ NULL,
666
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
667
+ NULL,
668
+ #endif
669
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
670
+ NULL,
671
+ #endif
672
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
673
+ NULL,
674
+ #endif
675
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
676
+ NULL,
677
+ #endif
678
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
679
+ NULL,
680
+ #endif
681
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
682
+ NULL,
683
+ #endif
684
+ #if defined(MBEDTLS_CCM_C)
685
+ ccm_aes_setkey_wrap,
686
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
687
+ ccm_aes_setkey_wrap,
688
+ #endif
689
+ ccm_ctx_alloc,
690
+ ccm_ctx_free,
691
+ #else
692
+ NULL,
693
+ NULL,
694
+ NULL,
695
+ NULL,
696
+ #endif
697
+ };
698
+ #endif /* MBEDTLS_CIPHER_HAVE_CCM_AES_VIA_LEGACY_OR_USE_PSA */
699
+
700
+ #if defined(MBEDTLS_CIPHER_HAVE_CCM_AES_VIA_LEGACY_OR_USE_PSA)
701
+ static const mbedtls_cipher_info_t aes_128_ccm_info = {
702
+ "AES-128-CCM",
703
+ 16,
704
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
705
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
706
+ MBEDTLS_MODE_CCM,
707
+ MBEDTLS_CIPHER_AES_128_CCM,
708
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
709
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
710
+ };
711
+
712
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
713
+ static const mbedtls_cipher_info_t aes_192_ccm_info = {
714
+ "AES-192-CCM",
715
+ 16,
716
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
717
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
718
+ MBEDTLS_MODE_CCM,
719
+ MBEDTLS_CIPHER_AES_192_CCM,
720
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
721
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
722
+ };
723
+
724
+ static const mbedtls_cipher_info_t aes_256_ccm_info = {
725
+ "AES-256-CCM",
726
+ 16,
727
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
728
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
729
+ MBEDTLS_MODE_CCM,
730
+ MBEDTLS_CIPHER_AES_256_CCM,
731
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
732
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
733
+ };
734
+ #endif
735
+ #endif /* MBEDTLS_CIPHER_HAVE_CCM_AES_VIA_LEGACY_OR_USE_PSA */
736
+
737
+ #if defined(MBEDTLS_CIPHER_HAVE_CCM_STAR_NO_TAG_AES_VIA_LEGACY_OR_USE_PSA)
738
+ static const mbedtls_cipher_info_t aes_128_ccm_star_no_tag_info = {
739
+ "AES-128-CCM*-NO-TAG",
740
+ 16,
741
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
742
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
743
+ MBEDTLS_MODE_CCM_STAR_NO_TAG,
744
+ MBEDTLS_CIPHER_AES_128_CCM_STAR_NO_TAG,
745
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
746
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
747
+ };
748
+
749
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
750
+ static const mbedtls_cipher_info_t aes_192_ccm_star_no_tag_info = {
751
+ "AES-192-CCM*-NO-TAG",
752
+ 16,
753
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
754
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
755
+ MBEDTLS_MODE_CCM_STAR_NO_TAG,
756
+ MBEDTLS_CIPHER_AES_192_CCM_STAR_NO_TAG,
757
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
758
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
759
+ };
760
+
761
+ static const mbedtls_cipher_info_t aes_256_ccm_star_no_tag_info = {
762
+ "AES-256-CCM*-NO-TAG",
763
+ 16,
764
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
765
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
766
+ MBEDTLS_MODE_CCM_STAR_NO_TAG,
767
+ MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG,
768
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
769
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_AES
770
+ };
771
+ #endif
772
+ #endif /* MBEDTLS_CIPHER_HAVE_CCM_STAR_NO_TAG_AES_VIA_LEGACY_OR_USE_PSA */
773
+
774
+
775
+ #if defined(MBEDTLS_CAMELLIA_C)
776
+
777
+ static int camellia_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation,
778
+ const unsigned char *input, unsigned char *output)
779
+ {
780
+ return mbedtls_camellia_crypt_ecb((mbedtls_camellia_context *) ctx, operation, input,
781
+ output);
782
+ }
783
+
784
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
785
+ static int camellia_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation,
786
+ size_t length, unsigned char *iv,
787
+ const unsigned char *input, unsigned char *output)
788
+ {
789
+ return mbedtls_camellia_crypt_cbc((mbedtls_camellia_context *) ctx, operation, length, iv,
790
+ input, output);
791
+ }
792
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
793
+
794
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
795
+ static int camellia_crypt_cfb128_wrap(void *ctx, mbedtls_operation_t operation,
796
+ size_t length, size_t *iv_off, unsigned char *iv,
797
+ const unsigned char *input, unsigned char *output)
798
+ {
799
+ return mbedtls_camellia_crypt_cfb128((mbedtls_camellia_context *) ctx, operation, length,
800
+ iv_off, iv, input, output);
801
+ }
802
+ #endif /* MBEDTLS_CIPHER_MODE_CFB */
803
+
804
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
805
+ static int camellia_crypt_ctr_wrap(void *ctx, size_t length, size_t *nc_off,
806
+ unsigned char *nonce_counter, unsigned char *stream_block,
807
+ const unsigned char *input, unsigned char *output)
808
+ {
809
+ return mbedtls_camellia_crypt_ctr((mbedtls_camellia_context *) ctx, length, nc_off,
810
+ nonce_counter, stream_block, input, output);
811
+ }
812
+ #endif /* MBEDTLS_CIPHER_MODE_CTR */
813
+
814
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
815
+ static int camellia_setkey_dec_wrap(void *ctx, const unsigned char *key,
816
+ unsigned int key_bitlen)
817
+ {
818
+ return mbedtls_camellia_setkey_dec((mbedtls_camellia_context *) ctx, key, key_bitlen);
819
+ }
820
+ #endif
821
+
822
+ static int camellia_setkey_enc_wrap(void *ctx, const unsigned char *key,
823
+ unsigned int key_bitlen)
824
+ {
825
+ return mbedtls_camellia_setkey_enc((mbedtls_camellia_context *) ctx, key, key_bitlen);
826
+ }
827
+
828
+ static void *camellia_ctx_alloc(void)
829
+ {
830
+ mbedtls_camellia_context *ctx;
831
+ ctx = mbedtls_calloc(1, sizeof(mbedtls_camellia_context));
832
+
833
+ if (ctx == NULL) {
834
+ return NULL;
835
+ }
836
+
837
+ mbedtls_camellia_init(ctx);
838
+
839
+ return ctx;
840
+ }
841
+
842
+ static void camellia_ctx_free(void *ctx)
843
+ {
844
+ mbedtls_camellia_free((mbedtls_camellia_context *) ctx);
845
+ mbedtls_free(ctx);
846
+ }
847
+
848
+ static const mbedtls_cipher_base_t camellia_info = {
849
+ MBEDTLS_CIPHER_ID_CAMELLIA,
850
+ camellia_crypt_ecb_wrap,
851
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
852
+ camellia_crypt_cbc_wrap,
853
+ #endif
854
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
855
+ camellia_crypt_cfb128_wrap,
856
+ #endif
857
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
858
+ NULL,
859
+ #endif
860
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
861
+ camellia_crypt_ctr_wrap,
862
+ #endif
863
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
864
+ NULL,
865
+ #endif
866
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
867
+ NULL,
868
+ #endif
869
+ camellia_setkey_enc_wrap,
870
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
871
+ camellia_setkey_dec_wrap,
872
+ #endif
873
+ camellia_ctx_alloc,
874
+ camellia_ctx_free
875
+ };
876
+
877
+ static const mbedtls_cipher_info_t camellia_128_ecb_info = {
878
+ "CAMELLIA-128-ECB",
879
+ 16,
880
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
881
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
882
+ MBEDTLS_MODE_ECB,
883
+ MBEDTLS_CIPHER_CAMELLIA_128_ECB,
884
+ 0,
885
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
886
+ };
887
+
888
+ static const mbedtls_cipher_info_t camellia_192_ecb_info = {
889
+ "CAMELLIA-192-ECB",
890
+ 16,
891
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
892
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
893
+ MBEDTLS_MODE_ECB,
894
+ MBEDTLS_CIPHER_CAMELLIA_192_ECB,
895
+ 0,
896
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
897
+ };
898
+
899
+ static const mbedtls_cipher_info_t camellia_256_ecb_info = {
900
+ "CAMELLIA-256-ECB",
901
+ 16,
902
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
903
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
904
+ MBEDTLS_MODE_ECB,
905
+ MBEDTLS_CIPHER_CAMELLIA_256_ECB,
906
+ 0,
907
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
908
+ };
909
+
910
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
911
+ static const mbedtls_cipher_info_t camellia_128_cbc_info = {
912
+ "CAMELLIA-128-CBC",
913
+ 16,
914
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
915
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
916
+ MBEDTLS_MODE_CBC,
917
+ MBEDTLS_CIPHER_CAMELLIA_128_CBC,
918
+ 0,
919
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
920
+ };
921
+
922
+ static const mbedtls_cipher_info_t camellia_192_cbc_info = {
923
+ "CAMELLIA-192-CBC",
924
+ 16,
925
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
926
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
927
+ MBEDTLS_MODE_CBC,
928
+ MBEDTLS_CIPHER_CAMELLIA_192_CBC,
929
+ 0,
930
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
931
+ };
932
+
933
+ static const mbedtls_cipher_info_t camellia_256_cbc_info = {
934
+ "CAMELLIA-256-CBC",
935
+ 16,
936
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
937
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
938
+ MBEDTLS_MODE_CBC,
939
+ MBEDTLS_CIPHER_CAMELLIA_256_CBC,
940
+ 0,
941
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
942
+ };
943
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
944
+
945
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
946
+ static const mbedtls_cipher_info_t camellia_128_cfb128_info = {
947
+ "CAMELLIA-128-CFB128",
948
+ 16,
949
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
950
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
951
+ MBEDTLS_MODE_CFB,
952
+ MBEDTLS_CIPHER_CAMELLIA_128_CFB128,
953
+ 0,
954
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
955
+ };
956
+
957
+ static const mbedtls_cipher_info_t camellia_192_cfb128_info = {
958
+ "CAMELLIA-192-CFB128",
959
+ 16,
960
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
961
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
962
+ MBEDTLS_MODE_CFB,
963
+ MBEDTLS_CIPHER_CAMELLIA_192_CFB128,
964
+ 0,
965
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
966
+ };
967
+
968
+ static const mbedtls_cipher_info_t camellia_256_cfb128_info = {
969
+ "CAMELLIA-256-CFB128",
970
+ 16,
971
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
972
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
973
+ MBEDTLS_MODE_CFB,
974
+ MBEDTLS_CIPHER_CAMELLIA_256_CFB128,
975
+ 0,
976
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
977
+ };
978
+ #endif /* MBEDTLS_CIPHER_MODE_CFB */
979
+
980
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
981
+ static const mbedtls_cipher_info_t camellia_128_ctr_info = {
982
+ "CAMELLIA-128-CTR",
983
+ 16,
984
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
985
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
986
+ MBEDTLS_MODE_CTR,
987
+ MBEDTLS_CIPHER_CAMELLIA_128_CTR,
988
+ 0,
989
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
990
+ };
991
+
992
+ static const mbedtls_cipher_info_t camellia_192_ctr_info = {
993
+ "CAMELLIA-192-CTR",
994
+ 16,
995
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
996
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
997
+ MBEDTLS_MODE_CTR,
998
+ MBEDTLS_CIPHER_CAMELLIA_192_CTR,
999
+ 0,
1000
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
1001
+ };
1002
+
1003
+ static const mbedtls_cipher_info_t camellia_256_ctr_info = {
1004
+ "CAMELLIA-256-CTR",
1005
+ 16,
1006
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1007
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1008
+ MBEDTLS_MODE_CTR,
1009
+ MBEDTLS_CIPHER_CAMELLIA_256_CTR,
1010
+ 0,
1011
+ MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA
1012
+ };
1013
+ #endif /* MBEDTLS_CIPHER_MODE_CTR */
1014
+
1015
+ #if defined(MBEDTLS_GCM_C)
1016
+ static int gcm_camellia_setkey_wrap(void *ctx, const unsigned char *key,
1017
+ unsigned int key_bitlen)
1018
+ {
1019
+ return mbedtls_gcm_setkey((mbedtls_gcm_context *) ctx, MBEDTLS_CIPHER_ID_CAMELLIA,
1020
+ key, key_bitlen);
1021
+ }
1022
+
1023
+ static const mbedtls_cipher_base_t gcm_camellia_info = {
1024
+ MBEDTLS_CIPHER_ID_CAMELLIA,
1025
+ NULL,
1026
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1027
+ NULL,
1028
+ #endif
1029
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1030
+ NULL,
1031
+ #endif
1032
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
1033
+ NULL,
1034
+ #endif
1035
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1036
+ NULL,
1037
+ #endif
1038
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
1039
+ NULL,
1040
+ #endif
1041
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
1042
+ NULL,
1043
+ #endif
1044
+ gcm_camellia_setkey_wrap,
1045
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
1046
+ gcm_camellia_setkey_wrap,
1047
+ #endif
1048
+ gcm_ctx_alloc,
1049
+ gcm_ctx_free,
1050
+ };
1051
+
1052
+ static const mbedtls_cipher_info_t camellia_128_gcm_info = {
1053
+ "CAMELLIA-128-GCM",
1054
+ 16,
1055
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1056
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1057
+ MBEDTLS_MODE_GCM,
1058
+ MBEDTLS_CIPHER_CAMELLIA_128_GCM,
1059
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1060
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA
1061
+ };
1062
+
1063
+ static const mbedtls_cipher_info_t camellia_192_gcm_info = {
1064
+ "CAMELLIA-192-GCM",
1065
+ 16,
1066
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1067
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1068
+ MBEDTLS_MODE_GCM,
1069
+ MBEDTLS_CIPHER_CAMELLIA_192_GCM,
1070
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1071
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA
1072
+ };
1073
+
1074
+ static const mbedtls_cipher_info_t camellia_256_gcm_info = {
1075
+ "CAMELLIA-256-GCM",
1076
+ 16,
1077
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1078
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1079
+ MBEDTLS_MODE_GCM,
1080
+ MBEDTLS_CIPHER_CAMELLIA_256_GCM,
1081
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1082
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA
1083
+ };
1084
+ #endif /* MBEDTLS_GCM_C */
1085
+
1086
+ #if defined(MBEDTLS_CCM_C)
1087
+ static int ccm_camellia_setkey_wrap(void *ctx, const unsigned char *key,
1088
+ unsigned int key_bitlen)
1089
+ {
1090
+ return mbedtls_ccm_setkey((mbedtls_ccm_context *) ctx, MBEDTLS_CIPHER_ID_CAMELLIA,
1091
+ key, key_bitlen);
1092
+ }
1093
+
1094
+ static const mbedtls_cipher_base_t ccm_camellia_info = {
1095
+ MBEDTLS_CIPHER_ID_CAMELLIA,
1096
+ NULL,
1097
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1098
+ NULL,
1099
+ #endif
1100
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1101
+ NULL,
1102
+ #endif
1103
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
1104
+ NULL,
1105
+ #endif
1106
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1107
+ NULL,
1108
+ #endif
1109
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
1110
+ NULL,
1111
+ #endif
1112
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
1113
+ NULL,
1114
+ #endif
1115
+ ccm_camellia_setkey_wrap,
1116
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
1117
+ ccm_camellia_setkey_wrap,
1118
+ #endif
1119
+ ccm_ctx_alloc,
1120
+ ccm_ctx_free,
1121
+ };
1122
+
1123
+ static const mbedtls_cipher_info_t camellia_128_ccm_info = {
1124
+ "CAMELLIA-128-CCM",
1125
+ 16,
1126
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1127
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1128
+ MBEDTLS_MODE_CCM,
1129
+ MBEDTLS_CIPHER_CAMELLIA_128_CCM,
1130
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1131
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
1132
+ };
1133
+
1134
+ static const mbedtls_cipher_info_t camellia_192_ccm_info = {
1135
+ "CAMELLIA-192-CCM",
1136
+ 16,
1137
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1138
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1139
+ MBEDTLS_MODE_CCM,
1140
+ MBEDTLS_CIPHER_CAMELLIA_192_CCM,
1141
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1142
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
1143
+ };
1144
+
1145
+ static const mbedtls_cipher_info_t camellia_256_ccm_info = {
1146
+ "CAMELLIA-256-CCM",
1147
+ 16,
1148
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1149
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1150
+ MBEDTLS_MODE_CCM,
1151
+ MBEDTLS_CIPHER_CAMELLIA_256_CCM,
1152
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1153
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
1154
+ };
1155
+
1156
+ static const mbedtls_cipher_info_t camellia_128_ccm_star_no_tag_info = {
1157
+ "CAMELLIA-128-CCM*-NO-TAG",
1158
+ 16,
1159
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1160
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1161
+ MBEDTLS_MODE_CCM_STAR_NO_TAG,
1162
+ MBEDTLS_CIPHER_CAMELLIA_128_CCM_STAR_NO_TAG,
1163
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1164
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
1165
+ };
1166
+
1167
+ static const mbedtls_cipher_info_t camellia_192_ccm_star_no_tag_info = {
1168
+ "CAMELLIA-192-CCM*-NO-TAG",
1169
+ 16,
1170
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1171
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1172
+ MBEDTLS_MODE_CCM_STAR_NO_TAG,
1173
+ MBEDTLS_CIPHER_CAMELLIA_192_CCM_STAR_NO_TAG,
1174
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1175
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
1176
+ };
1177
+
1178
+ static const mbedtls_cipher_info_t camellia_256_ccm_star_no_tag_info = {
1179
+ "CAMELLIA-256-CCM*-NO-TAG",
1180
+ 16,
1181
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1182
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1183
+ MBEDTLS_MODE_CCM_STAR_NO_TAG,
1184
+ MBEDTLS_CIPHER_CAMELLIA_256_CCM_STAR_NO_TAG,
1185
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1186
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA
1187
+ };
1188
+ #endif /* MBEDTLS_CCM_C */
1189
+
1190
+ #endif /* MBEDTLS_CAMELLIA_C */
1191
+
1192
+ #if defined(MBEDTLS_ARIA_C)
1193
+
1194
+ static int aria_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation,
1195
+ const unsigned char *input, unsigned char *output)
1196
+ {
1197
+ (void) operation;
1198
+ return mbedtls_aria_crypt_ecb((mbedtls_aria_context *) ctx, input,
1199
+ output);
1200
+ }
1201
+
1202
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1203
+ static int aria_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation,
1204
+ size_t length, unsigned char *iv,
1205
+ const unsigned char *input, unsigned char *output)
1206
+ {
1207
+ return mbedtls_aria_crypt_cbc((mbedtls_aria_context *) ctx, operation, length, iv,
1208
+ input, output);
1209
+ }
1210
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
1211
+
1212
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1213
+ static int aria_crypt_cfb128_wrap(void *ctx, mbedtls_operation_t operation,
1214
+ size_t length, size_t *iv_off, unsigned char *iv,
1215
+ const unsigned char *input, unsigned char *output)
1216
+ {
1217
+ return mbedtls_aria_crypt_cfb128((mbedtls_aria_context *) ctx, operation, length,
1218
+ iv_off, iv, input, output);
1219
+ }
1220
+ #endif /* MBEDTLS_CIPHER_MODE_CFB */
1221
+
1222
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1223
+ static int aria_crypt_ctr_wrap(void *ctx, size_t length, size_t *nc_off,
1224
+ unsigned char *nonce_counter, unsigned char *stream_block,
1225
+ const unsigned char *input, unsigned char *output)
1226
+ {
1227
+ return mbedtls_aria_crypt_ctr((mbedtls_aria_context *) ctx, length, nc_off,
1228
+ nonce_counter, stream_block, input, output);
1229
+ }
1230
+ #endif /* MBEDTLS_CIPHER_MODE_CTR */
1231
+
1232
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
1233
+ static int aria_setkey_dec_wrap(void *ctx, const unsigned char *key,
1234
+ unsigned int key_bitlen)
1235
+ {
1236
+ return mbedtls_aria_setkey_dec((mbedtls_aria_context *) ctx, key, key_bitlen);
1237
+ }
1238
+ #endif
1239
+
1240
+ static int aria_setkey_enc_wrap(void *ctx, const unsigned char *key,
1241
+ unsigned int key_bitlen)
1242
+ {
1243
+ return mbedtls_aria_setkey_enc((mbedtls_aria_context *) ctx, key, key_bitlen);
1244
+ }
1245
+
1246
+ static void *aria_ctx_alloc(void)
1247
+ {
1248
+ mbedtls_aria_context *ctx;
1249
+ ctx = mbedtls_calloc(1, sizeof(mbedtls_aria_context));
1250
+
1251
+ if (ctx == NULL) {
1252
+ return NULL;
1253
+ }
1254
+
1255
+ mbedtls_aria_init(ctx);
1256
+
1257
+ return ctx;
1258
+ }
1259
+
1260
+ static void aria_ctx_free(void *ctx)
1261
+ {
1262
+ mbedtls_aria_free((mbedtls_aria_context *) ctx);
1263
+ mbedtls_free(ctx);
1264
+ }
1265
+
1266
+ static const mbedtls_cipher_base_t aria_info = {
1267
+ MBEDTLS_CIPHER_ID_ARIA,
1268
+ aria_crypt_ecb_wrap,
1269
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1270
+ aria_crypt_cbc_wrap,
1271
+ #endif
1272
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1273
+ aria_crypt_cfb128_wrap,
1274
+ #endif
1275
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
1276
+ NULL,
1277
+ #endif
1278
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1279
+ aria_crypt_ctr_wrap,
1280
+ #endif
1281
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
1282
+ NULL,
1283
+ #endif
1284
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
1285
+ NULL,
1286
+ #endif
1287
+ aria_setkey_enc_wrap,
1288
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
1289
+ aria_setkey_dec_wrap,
1290
+ #endif
1291
+ aria_ctx_alloc,
1292
+ aria_ctx_free
1293
+ };
1294
+
1295
+ static const mbedtls_cipher_info_t aria_128_ecb_info = {
1296
+ "ARIA-128-ECB",
1297
+ 16,
1298
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
1299
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1300
+ MBEDTLS_MODE_ECB,
1301
+ MBEDTLS_CIPHER_ARIA_128_ECB,
1302
+ 0,
1303
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1304
+ };
1305
+
1306
+ static const mbedtls_cipher_info_t aria_192_ecb_info = {
1307
+ "ARIA-192-ECB",
1308
+ 16,
1309
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
1310
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1311
+ MBEDTLS_MODE_ECB,
1312
+ MBEDTLS_CIPHER_ARIA_192_ECB,
1313
+ 0,
1314
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1315
+ };
1316
+
1317
+ static const mbedtls_cipher_info_t aria_256_ecb_info = {
1318
+ "ARIA-256-ECB",
1319
+ 16,
1320
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
1321
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1322
+ MBEDTLS_MODE_ECB,
1323
+ MBEDTLS_CIPHER_ARIA_256_ECB,
1324
+ 0,
1325
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1326
+ };
1327
+
1328
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1329
+ static const mbedtls_cipher_info_t aria_128_cbc_info = {
1330
+ "ARIA-128-CBC",
1331
+ 16,
1332
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1333
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1334
+ MBEDTLS_MODE_CBC,
1335
+ MBEDTLS_CIPHER_ARIA_128_CBC,
1336
+ 0,
1337
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1338
+ };
1339
+
1340
+ static const mbedtls_cipher_info_t aria_192_cbc_info = {
1341
+ "ARIA-192-CBC",
1342
+ 16,
1343
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1344
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1345
+ MBEDTLS_MODE_CBC,
1346
+ MBEDTLS_CIPHER_ARIA_192_CBC,
1347
+ 0,
1348
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1349
+ };
1350
+
1351
+ static const mbedtls_cipher_info_t aria_256_cbc_info = {
1352
+ "ARIA-256-CBC",
1353
+ 16,
1354
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1355
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1356
+ MBEDTLS_MODE_CBC,
1357
+ MBEDTLS_CIPHER_ARIA_256_CBC,
1358
+ 0,
1359
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1360
+ };
1361
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
1362
+
1363
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1364
+ static const mbedtls_cipher_info_t aria_128_cfb128_info = {
1365
+ "ARIA-128-CFB128",
1366
+ 16,
1367
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1368
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1369
+ MBEDTLS_MODE_CFB,
1370
+ MBEDTLS_CIPHER_ARIA_128_CFB128,
1371
+ 0,
1372
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1373
+ };
1374
+
1375
+ static const mbedtls_cipher_info_t aria_192_cfb128_info = {
1376
+ "ARIA-192-CFB128",
1377
+ 16,
1378
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1379
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1380
+ MBEDTLS_MODE_CFB,
1381
+ MBEDTLS_CIPHER_ARIA_192_CFB128,
1382
+ 0,
1383
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1384
+ };
1385
+
1386
+ static const mbedtls_cipher_info_t aria_256_cfb128_info = {
1387
+ "ARIA-256-CFB128",
1388
+ 16,
1389
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1390
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1391
+ MBEDTLS_MODE_CFB,
1392
+ MBEDTLS_CIPHER_ARIA_256_CFB128,
1393
+ 0,
1394
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1395
+ };
1396
+ #endif /* MBEDTLS_CIPHER_MODE_CFB */
1397
+
1398
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1399
+ static const mbedtls_cipher_info_t aria_128_ctr_info = {
1400
+ "ARIA-128-CTR",
1401
+ 16,
1402
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1403
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1404
+ MBEDTLS_MODE_CTR,
1405
+ MBEDTLS_CIPHER_ARIA_128_CTR,
1406
+ 0,
1407
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1408
+ };
1409
+
1410
+ static const mbedtls_cipher_info_t aria_192_ctr_info = {
1411
+ "ARIA-192-CTR",
1412
+ 16,
1413
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1414
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1415
+ MBEDTLS_MODE_CTR,
1416
+ MBEDTLS_CIPHER_ARIA_192_CTR,
1417
+ 0,
1418
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1419
+ };
1420
+
1421
+ static const mbedtls_cipher_info_t aria_256_ctr_info = {
1422
+ "ARIA-256-CTR",
1423
+ 16,
1424
+ 16 >> MBEDTLS_IV_SIZE_SHIFT,
1425
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1426
+ MBEDTLS_MODE_CTR,
1427
+ MBEDTLS_CIPHER_ARIA_256_CTR,
1428
+ 0,
1429
+ MBEDTLS_CIPHER_BASE_INDEX_ARIA
1430
+ };
1431
+ #endif /* MBEDTLS_CIPHER_MODE_CTR */
1432
+
1433
+ #if defined(MBEDTLS_GCM_C)
1434
+ static int gcm_aria_setkey_wrap(void *ctx, const unsigned char *key,
1435
+ unsigned int key_bitlen)
1436
+ {
1437
+ return mbedtls_gcm_setkey((mbedtls_gcm_context *) ctx, MBEDTLS_CIPHER_ID_ARIA,
1438
+ key, key_bitlen);
1439
+ }
1440
+
1441
+ static const mbedtls_cipher_base_t gcm_aria_info = {
1442
+ MBEDTLS_CIPHER_ID_ARIA,
1443
+ NULL,
1444
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1445
+ NULL,
1446
+ #endif
1447
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1448
+ NULL,
1449
+ #endif
1450
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
1451
+ NULL,
1452
+ #endif
1453
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1454
+ NULL,
1455
+ #endif
1456
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
1457
+ NULL,
1458
+ #endif
1459
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
1460
+ NULL,
1461
+ #endif
1462
+ gcm_aria_setkey_wrap,
1463
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
1464
+ gcm_aria_setkey_wrap,
1465
+ #endif
1466
+ gcm_ctx_alloc,
1467
+ gcm_ctx_free,
1468
+ };
1469
+
1470
+ static const mbedtls_cipher_info_t aria_128_gcm_info = {
1471
+ "ARIA-128-GCM",
1472
+ 16,
1473
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1474
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1475
+ MBEDTLS_MODE_GCM,
1476
+ MBEDTLS_CIPHER_ARIA_128_GCM,
1477
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1478
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA
1479
+ };
1480
+
1481
+ static const mbedtls_cipher_info_t aria_192_gcm_info = {
1482
+ "ARIA-192-GCM",
1483
+ 16,
1484
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1485
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1486
+ MBEDTLS_MODE_GCM,
1487
+ MBEDTLS_CIPHER_ARIA_192_GCM,
1488
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1489
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA
1490
+ };
1491
+
1492
+ static const mbedtls_cipher_info_t aria_256_gcm_info = {
1493
+ "ARIA-256-GCM",
1494
+ 16,
1495
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1496
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1497
+ MBEDTLS_MODE_GCM,
1498
+ MBEDTLS_CIPHER_ARIA_256_GCM,
1499
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1500
+ MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA
1501
+ };
1502
+ #endif /* MBEDTLS_GCM_C */
1503
+
1504
+ #if defined(MBEDTLS_CCM_C)
1505
+ static int ccm_aria_setkey_wrap(void *ctx, const unsigned char *key,
1506
+ unsigned int key_bitlen)
1507
+ {
1508
+ return mbedtls_ccm_setkey((mbedtls_ccm_context *) ctx, MBEDTLS_CIPHER_ID_ARIA,
1509
+ key, key_bitlen);
1510
+ }
1511
+
1512
+ static const mbedtls_cipher_base_t ccm_aria_info = {
1513
+ MBEDTLS_CIPHER_ID_ARIA,
1514
+ NULL,
1515
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1516
+ NULL,
1517
+ #endif
1518
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1519
+ NULL,
1520
+ #endif
1521
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
1522
+ NULL,
1523
+ #endif
1524
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1525
+ NULL,
1526
+ #endif
1527
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
1528
+ NULL,
1529
+ #endif
1530
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
1531
+ NULL,
1532
+ #endif
1533
+ ccm_aria_setkey_wrap,
1534
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
1535
+ ccm_aria_setkey_wrap,
1536
+ #endif
1537
+ ccm_ctx_alloc,
1538
+ ccm_ctx_free,
1539
+ };
1540
+
1541
+ static const mbedtls_cipher_info_t aria_128_ccm_info = {
1542
+ "ARIA-128-CCM",
1543
+ 16,
1544
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1545
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1546
+ MBEDTLS_MODE_CCM,
1547
+ MBEDTLS_CIPHER_ARIA_128_CCM,
1548
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1549
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
1550
+ };
1551
+
1552
+ static const mbedtls_cipher_info_t aria_192_ccm_info = {
1553
+ "ARIA-192-CCM",
1554
+ 16,
1555
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1556
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1557
+ MBEDTLS_MODE_CCM,
1558
+ MBEDTLS_CIPHER_ARIA_192_CCM,
1559
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1560
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
1561
+ };
1562
+
1563
+ static const mbedtls_cipher_info_t aria_256_ccm_info = {
1564
+ "ARIA-256-CCM",
1565
+ 16,
1566
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1567
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1568
+ MBEDTLS_MODE_CCM,
1569
+ MBEDTLS_CIPHER_ARIA_256_CCM,
1570
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1571
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
1572
+ };
1573
+
1574
+ static const mbedtls_cipher_info_t aria_128_ccm_star_no_tag_info = {
1575
+ "ARIA-128-CCM*-NO-TAG",
1576
+ 16,
1577
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1578
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
1579
+ MBEDTLS_MODE_CCM_STAR_NO_TAG,
1580
+ MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG,
1581
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1582
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
1583
+ };
1584
+
1585
+ static const mbedtls_cipher_info_t aria_192_ccm_star_no_tag_info = {
1586
+ "ARIA-192-CCM*-NO-TAG",
1587
+ 16,
1588
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1589
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
1590
+ MBEDTLS_MODE_CCM_STAR_NO_TAG,
1591
+ MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG,
1592
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1593
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
1594
+ };
1595
+
1596
+ static const mbedtls_cipher_info_t aria_256_ccm_star_no_tag_info = {
1597
+ "ARIA-256-CCM*-NO-TAG",
1598
+ 16,
1599
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1600
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1601
+ MBEDTLS_MODE_CCM_STAR_NO_TAG,
1602
+ MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG,
1603
+ MBEDTLS_CIPHER_VARIABLE_IV_LEN,
1604
+ MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA
1605
+ };
1606
+ #endif /* MBEDTLS_CCM_C */
1607
+
1608
+ #endif /* MBEDTLS_ARIA_C */
1609
+
1610
+ #if defined(MBEDTLS_DES_C)
1611
+
1612
+ static int des_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation,
1613
+ const unsigned char *input, unsigned char *output)
1614
+ {
1615
+ ((void) operation);
1616
+ return mbedtls_des_crypt_ecb((mbedtls_des_context *) ctx, input, output);
1617
+ }
1618
+
1619
+ static int des3_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation,
1620
+ const unsigned char *input, unsigned char *output)
1621
+ {
1622
+ ((void) operation);
1623
+ return mbedtls_des3_crypt_ecb((mbedtls_des3_context *) ctx, input, output);
1624
+ }
1625
+
1626
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1627
+ static int des_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, size_t length,
1628
+ unsigned char *iv, const unsigned char *input, unsigned char *output)
1629
+ {
1630
+ return mbedtls_des_crypt_cbc((mbedtls_des_context *) ctx, operation, length, iv, input,
1631
+ output);
1632
+ }
1633
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
1634
+
1635
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1636
+ static int des3_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, size_t length,
1637
+ unsigned char *iv, const unsigned char *input, unsigned char *output)
1638
+ {
1639
+ return mbedtls_des3_crypt_cbc((mbedtls_des3_context *) ctx, operation, length, iv, input,
1640
+ output);
1641
+ }
1642
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
1643
+
1644
+ static int des_setkey_dec_wrap(void *ctx, const unsigned char *key,
1645
+ unsigned int key_bitlen)
1646
+ {
1647
+ ((void) key_bitlen);
1648
+
1649
+ return mbedtls_des_setkey_dec((mbedtls_des_context *) ctx, key);
1650
+ }
1651
+
1652
+ static int des_setkey_enc_wrap(void *ctx, const unsigned char *key,
1653
+ unsigned int key_bitlen)
1654
+ {
1655
+ ((void) key_bitlen);
1656
+
1657
+ return mbedtls_des_setkey_enc((mbedtls_des_context *) ctx, key);
1658
+ }
1659
+
1660
+ static int des3_set2key_dec_wrap(void *ctx, const unsigned char *key,
1661
+ unsigned int key_bitlen)
1662
+ {
1663
+ ((void) key_bitlen);
1664
+
1665
+ return mbedtls_des3_set2key_dec((mbedtls_des3_context *) ctx, key);
1666
+ }
1667
+
1668
+ static int des3_set2key_enc_wrap(void *ctx, const unsigned char *key,
1669
+ unsigned int key_bitlen)
1670
+ {
1671
+ ((void) key_bitlen);
1672
+
1673
+ return mbedtls_des3_set2key_enc((mbedtls_des3_context *) ctx, key);
1674
+ }
1675
+
1676
+ static int des3_set3key_dec_wrap(void *ctx, const unsigned char *key,
1677
+ unsigned int key_bitlen)
1678
+ {
1679
+ ((void) key_bitlen);
1680
+
1681
+ return mbedtls_des3_set3key_dec((mbedtls_des3_context *) ctx, key);
1682
+ }
1683
+
1684
+ static int des3_set3key_enc_wrap(void *ctx, const unsigned char *key,
1685
+ unsigned int key_bitlen)
1686
+ {
1687
+ ((void) key_bitlen);
1688
+
1689
+ return mbedtls_des3_set3key_enc((mbedtls_des3_context *) ctx, key);
1690
+ }
1691
+
1692
+ static void *des_ctx_alloc(void)
1693
+ {
1694
+ mbedtls_des_context *des = mbedtls_calloc(1, sizeof(mbedtls_des_context));
1695
+
1696
+ if (des == NULL) {
1697
+ return NULL;
1698
+ }
1699
+
1700
+ mbedtls_des_init(des);
1701
+
1702
+ return des;
1703
+ }
1704
+
1705
+ static void des_ctx_free(void *ctx)
1706
+ {
1707
+ mbedtls_des_free((mbedtls_des_context *) ctx);
1708
+ mbedtls_free(ctx);
1709
+ }
1710
+
1711
+ static void *des3_ctx_alloc(void)
1712
+ {
1713
+ mbedtls_des3_context *des3;
1714
+ des3 = mbedtls_calloc(1, sizeof(mbedtls_des3_context));
1715
+
1716
+ if (des3 == NULL) {
1717
+ return NULL;
1718
+ }
1719
+
1720
+ mbedtls_des3_init(des3);
1721
+
1722
+ return des3;
1723
+ }
1724
+
1725
+ static void des3_ctx_free(void *ctx)
1726
+ {
1727
+ mbedtls_des3_free((mbedtls_des3_context *) ctx);
1728
+ mbedtls_free(ctx);
1729
+ }
1730
+
1731
+ static const mbedtls_cipher_base_t des_info = {
1732
+ MBEDTLS_CIPHER_ID_DES,
1733
+ des_crypt_ecb_wrap,
1734
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1735
+ des_crypt_cbc_wrap,
1736
+ #endif
1737
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1738
+ NULL,
1739
+ #endif
1740
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
1741
+ NULL,
1742
+ #endif
1743
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1744
+ NULL,
1745
+ #endif
1746
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
1747
+ NULL,
1748
+ #endif
1749
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
1750
+ NULL,
1751
+ #endif
1752
+ des_setkey_enc_wrap,
1753
+ des_setkey_dec_wrap,
1754
+ des_ctx_alloc,
1755
+ des_ctx_free
1756
+ };
1757
+
1758
+ static const mbedtls_cipher_info_t des_ecb_info = {
1759
+ "DES-ECB",
1760
+ 8,
1761
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
1762
+ MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
1763
+ MBEDTLS_MODE_ECB,
1764
+ MBEDTLS_CIPHER_DES_ECB,
1765
+ 0,
1766
+ MBEDTLS_CIPHER_BASE_INDEX_DES
1767
+ };
1768
+
1769
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1770
+ static const mbedtls_cipher_info_t des_cbc_info = {
1771
+ "DES-CBC",
1772
+ 8,
1773
+ 8 >> MBEDTLS_IV_SIZE_SHIFT,
1774
+ MBEDTLS_KEY_LENGTH_DES >> MBEDTLS_KEY_BITLEN_SHIFT,
1775
+ MBEDTLS_MODE_CBC,
1776
+ MBEDTLS_CIPHER_DES_CBC,
1777
+ 0,
1778
+ MBEDTLS_CIPHER_BASE_INDEX_DES
1779
+ };
1780
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
1781
+
1782
+ static const mbedtls_cipher_base_t des_ede_info = {
1783
+ MBEDTLS_CIPHER_ID_DES,
1784
+ des3_crypt_ecb_wrap,
1785
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1786
+ des3_crypt_cbc_wrap,
1787
+ #endif
1788
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1789
+ NULL,
1790
+ #endif
1791
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
1792
+ NULL,
1793
+ #endif
1794
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1795
+ NULL,
1796
+ #endif
1797
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
1798
+ NULL,
1799
+ #endif
1800
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
1801
+ NULL,
1802
+ #endif
1803
+ des3_set2key_enc_wrap,
1804
+ des3_set2key_dec_wrap,
1805
+ des3_ctx_alloc,
1806
+ des3_ctx_free
1807
+ };
1808
+
1809
+ static const mbedtls_cipher_info_t des_ede_ecb_info = {
1810
+ "DES-EDE-ECB",
1811
+ 8,
1812
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
1813
+ MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
1814
+ MBEDTLS_MODE_ECB,
1815
+ MBEDTLS_CIPHER_DES_EDE_ECB,
1816
+ 0,
1817
+ MBEDTLS_CIPHER_BASE_INDEX_DES_EDE
1818
+ };
1819
+
1820
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1821
+ static const mbedtls_cipher_info_t des_ede_cbc_info = {
1822
+ "DES-EDE-CBC",
1823
+ 8,
1824
+ 8 >> MBEDTLS_IV_SIZE_SHIFT,
1825
+ MBEDTLS_KEY_LENGTH_DES_EDE >> MBEDTLS_KEY_BITLEN_SHIFT,
1826
+ MBEDTLS_MODE_CBC,
1827
+ MBEDTLS_CIPHER_DES_EDE_CBC,
1828
+ 0,
1829
+ MBEDTLS_CIPHER_BASE_INDEX_DES_EDE
1830
+ };
1831
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
1832
+
1833
+ static const mbedtls_cipher_base_t des_ede3_info = {
1834
+ MBEDTLS_CIPHER_ID_3DES,
1835
+ des3_crypt_ecb_wrap,
1836
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1837
+ des3_crypt_cbc_wrap,
1838
+ #endif
1839
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1840
+ NULL,
1841
+ #endif
1842
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
1843
+ NULL,
1844
+ #endif
1845
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1846
+ NULL,
1847
+ #endif
1848
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
1849
+ NULL,
1850
+ #endif
1851
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
1852
+ NULL,
1853
+ #endif
1854
+ des3_set3key_enc_wrap,
1855
+ des3_set3key_dec_wrap,
1856
+ des3_ctx_alloc,
1857
+ des3_ctx_free
1858
+ };
1859
+
1860
+ static const mbedtls_cipher_info_t des_ede3_ecb_info = {
1861
+ "DES-EDE3-ECB",
1862
+ 8,
1863
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
1864
+ MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
1865
+ MBEDTLS_MODE_ECB,
1866
+ MBEDTLS_CIPHER_DES_EDE3_ECB,
1867
+ 0,
1868
+ MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3
1869
+ };
1870
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1871
+ static const mbedtls_cipher_info_t des_ede3_cbc_info = {
1872
+ "DES-EDE3-CBC",
1873
+ 8,
1874
+ 8 >> MBEDTLS_IV_SIZE_SHIFT,
1875
+ MBEDTLS_KEY_LENGTH_DES_EDE3 >> MBEDTLS_KEY_BITLEN_SHIFT,
1876
+ MBEDTLS_MODE_CBC,
1877
+ MBEDTLS_CIPHER_DES_EDE3_CBC,
1878
+ 0,
1879
+ MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3
1880
+ };
1881
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
1882
+ #endif /* MBEDTLS_DES_C */
1883
+
1884
+ #if defined(MBEDTLS_CHACHA20_C)
1885
+
1886
+ static int chacha20_setkey_wrap(void *ctx, const unsigned char *key,
1887
+ unsigned int key_bitlen)
1888
+ {
1889
+ if (key_bitlen != 256U) {
1890
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
1891
+ }
1892
+
1893
+ if (0 != mbedtls_chacha20_setkey((mbedtls_chacha20_context *) ctx, key)) {
1894
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
1895
+ }
1896
+
1897
+ return 0;
1898
+ }
1899
+
1900
+ static int chacha20_stream_wrap(void *ctx, size_t length,
1901
+ const unsigned char *input,
1902
+ unsigned char *output)
1903
+ {
1904
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
1905
+
1906
+ ret = mbedtls_chacha20_update(ctx, length, input, output);
1907
+ if (ret == MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA) {
1908
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
1909
+ }
1910
+
1911
+ return ret;
1912
+ }
1913
+
1914
+ static void *chacha20_ctx_alloc(void)
1915
+ {
1916
+ mbedtls_chacha20_context *ctx;
1917
+ ctx = mbedtls_calloc(1, sizeof(mbedtls_chacha20_context));
1918
+
1919
+ if (ctx == NULL) {
1920
+ return NULL;
1921
+ }
1922
+
1923
+ mbedtls_chacha20_init(ctx);
1924
+
1925
+ return ctx;
1926
+ }
1927
+
1928
+ static void chacha20_ctx_free(void *ctx)
1929
+ {
1930
+ mbedtls_chacha20_free((mbedtls_chacha20_context *) ctx);
1931
+ mbedtls_free(ctx);
1932
+ }
1933
+
1934
+ static const mbedtls_cipher_base_t chacha20_base_info = {
1935
+ MBEDTLS_CIPHER_ID_CHACHA20,
1936
+ NULL,
1937
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
1938
+ NULL,
1939
+ #endif
1940
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
1941
+ NULL,
1942
+ #endif
1943
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
1944
+ NULL,
1945
+ #endif
1946
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
1947
+ NULL,
1948
+ #endif
1949
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
1950
+ NULL,
1951
+ #endif
1952
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
1953
+ chacha20_stream_wrap,
1954
+ #endif
1955
+ chacha20_setkey_wrap,
1956
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
1957
+ chacha20_setkey_wrap,
1958
+ #endif
1959
+ chacha20_ctx_alloc,
1960
+ chacha20_ctx_free
1961
+ };
1962
+ static const mbedtls_cipher_info_t chacha20_info = {
1963
+ "CHACHA20",
1964
+ 1,
1965
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
1966
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
1967
+ MBEDTLS_MODE_STREAM,
1968
+ MBEDTLS_CIPHER_CHACHA20,
1969
+ 0,
1970
+ MBEDTLS_CIPHER_BASE_INDEX_CHACHA20_BASE
1971
+ };
1972
+ #endif /* MBEDTLS_CHACHA20_C */
1973
+
1974
+ #if defined(MBEDTLS_CHACHAPOLY_C)
1975
+
1976
+ static int chachapoly_setkey_wrap(void *ctx,
1977
+ const unsigned char *key,
1978
+ unsigned int key_bitlen)
1979
+ {
1980
+ if (key_bitlen != 256U) {
1981
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
1982
+ }
1983
+
1984
+ if (0 != mbedtls_chachapoly_setkey((mbedtls_chachapoly_context *) ctx, key)) {
1985
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
1986
+ }
1987
+
1988
+ return 0;
1989
+ }
1990
+
1991
+ static void *chachapoly_ctx_alloc(void)
1992
+ {
1993
+ mbedtls_chachapoly_context *ctx;
1994
+ ctx = mbedtls_calloc(1, sizeof(mbedtls_chachapoly_context));
1995
+
1996
+ if (ctx == NULL) {
1997
+ return NULL;
1998
+ }
1999
+
2000
+ mbedtls_chachapoly_init(ctx);
2001
+
2002
+ return ctx;
2003
+ }
2004
+
2005
+ static void chachapoly_ctx_free(void *ctx)
2006
+ {
2007
+ mbedtls_chachapoly_free((mbedtls_chachapoly_context *) ctx);
2008
+ mbedtls_free(ctx);
2009
+ }
2010
+
2011
+ static const mbedtls_cipher_base_t chachapoly_base_info = {
2012
+ MBEDTLS_CIPHER_ID_CHACHA20,
2013
+ NULL,
2014
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
2015
+ NULL,
2016
+ #endif
2017
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
2018
+ NULL,
2019
+ #endif
2020
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
2021
+ NULL,
2022
+ #endif
2023
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
2024
+ NULL,
2025
+ #endif
2026
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
2027
+ NULL,
2028
+ #endif
2029
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
2030
+ NULL,
2031
+ #endif
2032
+ chachapoly_setkey_wrap,
2033
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
2034
+ chachapoly_setkey_wrap,
2035
+ #endif
2036
+ chachapoly_ctx_alloc,
2037
+ chachapoly_ctx_free
2038
+ };
2039
+ static const mbedtls_cipher_info_t chachapoly_info = {
2040
+ "CHACHA20-POLY1305",
2041
+ 1,
2042
+ 12 >> MBEDTLS_IV_SIZE_SHIFT,
2043
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
2044
+ MBEDTLS_MODE_CHACHAPOLY,
2045
+ MBEDTLS_CIPHER_CHACHA20_POLY1305,
2046
+ 0,
2047
+ MBEDTLS_CIPHER_BASE_INDEX_CHACHAPOLY_BASE
2048
+ };
2049
+ #endif /* MBEDTLS_CHACHAPOLY_C */
2050
+
2051
+ #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
2052
+ static int null_crypt_stream(void *ctx, size_t length,
2053
+ const unsigned char *input,
2054
+ unsigned char *output)
2055
+ {
2056
+ ((void) ctx);
2057
+ memmove(output, input, length);
2058
+ return 0;
2059
+ }
2060
+
2061
+ static int null_setkey(void *ctx, const unsigned char *key,
2062
+ unsigned int key_bitlen)
2063
+ {
2064
+ ((void) ctx);
2065
+ ((void) key);
2066
+ ((void) key_bitlen);
2067
+
2068
+ return 0;
2069
+ }
2070
+
2071
+ static void *null_ctx_alloc(void)
2072
+ {
2073
+ return (void *) 1;
2074
+ }
2075
+
2076
+ static void null_ctx_free(void *ctx)
2077
+ {
2078
+ ((void) ctx);
2079
+ }
2080
+
2081
+ static const mbedtls_cipher_base_t null_base_info = {
2082
+ MBEDTLS_CIPHER_ID_NULL,
2083
+ NULL,
2084
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
2085
+ NULL,
2086
+ #endif
2087
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
2088
+ NULL,
2089
+ #endif
2090
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
2091
+ NULL,
2092
+ #endif
2093
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
2094
+ NULL,
2095
+ #endif
2096
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
2097
+ NULL,
2098
+ #endif
2099
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
2100
+ null_crypt_stream,
2101
+ #endif
2102
+ null_setkey,
2103
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
2104
+ null_setkey,
2105
+ #endif
2106
+ null_ctx_alloc,
2107
+ null_ctx_free
2108
+ };
2109
+
2110
+ static const mbedtls_cipher_info_t null_cipher_info = {
2111
+ "NULL",
2112
+ 1,
2113
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
2114
+ 0 >> MBEDTLS_KEY_BITLEN_SHIFT,
2115
+ MBEDTLS_MODE_STREAM,
2116
+ MBEDTLS_CIPHER_NULL,
2117
+ 0,
2118
+ MBEDTLS_CIPHER_BASE_INDEX_NULL_BASE
2119
+ };
2120
+ #endif /* defined(MBEDTLS_CIPHER_NULL_CIPHER) */
2121
+
2122
+ #if defined(MBEDTLS_NIST_KW_C)
2123
+ static void *kw_ctx_alloc(void)
2124
+ {
2125
+ void *ctx = mbedtls_calloc(1, sizeof(mbedtls_nist_kw_context));
2126
+
2127
+ if (ctx != NULL) {
2128
+ mbedtls_nist_kw_init((mbedtls_nist_kw_context *) ctx);
2129
+ }
2130
+
2131
+ return ctx;
2132
+ }
2133
+
2134
+ static void kw_ctx_free(void *ctx)
2135
+ {
2136
+ mbedtls_nist_kw_free(ctx);
2137
+ mbedtls_free(ctx);
2138
+ }
2139
+
2140
+ static int kw_aes_setkey_wrap(void *ctx, const unsigned char *key,
2141
+ unsigned int key_bitlen)
2142
+ {
2143
+ return mbedtls_nist_kw_setkey((mbedtls_nist_kw_context *) ctx,
2144
+ MBEDTLS_CIPHER_ID_AES, key, key_bitlen, 1);
2145
+ }
2146
+
2147
+ static int kw_aes_setkey_unwrap(void *ctx, const unsigned char *key,
2148
+ unsigned int key_bitlen)
2149
+ {
2150
+ return mbedtls_nist_kw_setkey((mbedtls_nist_kw_context *) ctx,
2151
+ MBEDTLS_CIPHER_ID_AES, key, key_bitlen, 0);
2152
+ }
2153
+
2154
+ static const mbedtls_cipher_base_t kw_aes_info = {
2155
+ MBEDTLS_CIPHER_ID_AES,
2156
+ NULL,
2157
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
2158
+ NULL,
2159
+ #endif
2160
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
2161
+ NULL,
2162
+ #endif
2163
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
2164
+ NULL,
2165
+ #endif
2166
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
2167
+ NULL,
2168
+ #endif
2169
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
2170
+ NULL,
2171
+ #endif
2172
+ #if defined(MBEDTLS_CIPHER_MODE_STREAM)
2173
+ NULL,
2174
+ #endif
2175
+ kw_aes_setkey_wrap,
2176
+ kw_aes_setkey_unwrap,
2177
+ kw_ctx_alloc,
2178
+ kw_ctx_free,
2179
+ };
2180
+
2181
+ static const mbedtls_cipher_info_t aes_128_nist_kw_info = {
2182
+ "AES-128-KW",
2183
+ 16,
2184
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
2185
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
2186
+ MBEDTLS_MODE_KW,
2187
+ MBEDTLS_CIPHER_AES_128_KW,
2188
+ 0,
2189
+ MBEDTLS_CIPHER_BASE_INDEX_KW_AES
2190
+ };
2191
+
2192
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2193
+ static const mbedtls_cipher_info_t aes_192_nist_kw_info = {
2194
+ "AES-192-KW",
2195
+ 16,
2196
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
2197
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
2198
+ MBEDTLS_MODE_KW,
2199
+ MBEDTLS_CIPHER_AES_192_KW,
2200
+ 0,
2201
+ MBEDTLS_CIPHER_BASE_INDEX_KW_AES
2202
+ };
2203
+
2204
+ static const mbedtls_cipher_info_t aes_256_nist_kw_info = {
2205
+ "AES-256-KW",
2206
+ 16,
2207
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
2208
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
2209
+ MBEDTLS_MODE_KW,
2210
+ MBEDTLS_CIPHER_AES_256_KW,
2211
+ 0,
2212
+ MBEDTLS_CIPHER_BASE_INDEX_KW_AES
2213
+ };
2214
+ #endif
2215
+
2216
+ static const mbedtls_cipher_info_t aes_128_nist_kwp_info = {
2217
+ "AES-128-KWP",
2218
+ 16,
2219
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
2220
+ 128 >> MBEDTLS_KEY_BITLEN_SHIFT,
2221
+ MBEDTLS_MODE_KWP,
2222
+ MBEDTLS_CIPHER_AES_128_KWP,
2223
+ 0,
2224
+ MBEDTLS_CIPHER_BASE_INDEX_KW_AES
2225
+ };
2226
+
2227
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2228
+ static const mbedtls_cipher_info_t aes_192_nist_kwp_info = {
2229
+ "AES-192-KWP",
2230
+ 16,
2231
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
2232
+ 192 >> MBEDTLS_KEY_BITLEN_SHIFT,
2233
+ MBEDTLS_MODE_KWP,
2234
+ MBEDTLS_CIPHER_AES_192_KWP,
2235
+ 0,
2236
+ MBEDTLS_CIPHER_BASE_INDEX_KW_AES
2237
+ };
2238
+
2239
+ static const mbedtls_cipher_info_t aes_256_nist_kwp_info = {
2240
+ "AES-256-KWP",
2241
+ 16,
2242
+ 0 >> MBEDTLS_IV_SIZE_SHIFT,
2243
+ 256 >> MBEDTLS_KEY_BITLEN_SHIFT,
2244
+ MBEDTLS_MODE_KWP,
2245
+ MBEDTLS_CIPHER_AES_256_KWP,
2246
+ 0,
2247
+ MBEDTLS_CIPHER_BASE_INDEX_KW_AES
2248
+ };
2249
+ #endif
2250
+ #endif /* MBEDTLS_NIST_KW_C */
2251
+
2252
+ const mbedtls_cipher_definition_t mbedtls_cipher_definitions[] =
2253
+ {
2254
+ #if defined(MBEDTLS_AES_C)
2255
+ { MBEDTLS_CIPHER_AES_128_ECB, &aes_128_ecb_info },
2256
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2257
+ { MBEDTLS_CIPHER_AES_192_ECB, &aes_192_ecb_info },
2258
+ { MBEDTLS_CIPHER_AES_256_ECB, &aes_256_ecb_info },
2259
+ #endif
2260
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
2261
+ { MBEDTLS_CIPHER_AES_128_CBC, &aes_128_cbc_info },
2262
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2263
+ { MBEDTLS_CIPHER_AES_192_CBC, &aes_192_cbc_info },
2264
+ { MBEDTLS_CIPHER_AES_256_CBC, &aes_256_cbc_info },
2265
+ #endif
2266
+ #endif
2267
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
2268
+ { MBEDTLS_CIPHER_AES_128_CFB128, &aes_128_cfb128_info },
2269
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2270
+ { MBEDTLS_CIPHER_AES_192_CFB128, &aes_192_cfb128_info },
2271
+ { MBEDTLS_CIPHER_AES_256_CFB128, &aes_256_cfb128_info },
2272
+ #endif
2273
+ #endif
2274
+ #if defined(MBEDTLS_CIPHER_MODE_OFB)
2275
+ { MBEDTLS_CIPHER_AES_128_OFB, &aes_128_ofb_info },
2276
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2277
+ { MBEDTLS_CIPHER_AES_192_OFB, &aes_192_ofb_info },
2278
+ { MBEDTLS_CIPHER_AES_256_OFB, &aes_256_ofb_info },
2279
+ #endif
2280
+ #endif
2281
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
2282
+ { MBEDTLS_CIPHER_AES_128_CTR, &aes_128_ctr_info },
2283
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2284
+ { MBEDTLS_CIPHER_AES_192_CTR, &aes_192_ctr_info },
2285
+ { MBEDTLS_CIPHER_AES_256_CTR, &aes_256_ctr_info },
2286
+ #endif
2287
+ #endif
2288
+ #if defined(MBEDTLS_CIPHER_MODE_XTS)
2289
+ { MBEDTLS_CIPHER_AES_128_XTS, &aes_128_xts_info },
2290
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2291
+ { MBEDTLS_CIPHER_AES_256_XTS, &aes_256_xts_info },
2292
+ #endif
2293
+ #endif
2294
+ #endif /* MBEDTLS_AES_C */
2295
+ #if defined(MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA)
2296
+ { MBEDTLS_CIPHER_AES_128_GCM, &aes_128_gcm_info },
2297
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2298
+ { MBEDTLS_CIPHER_AES_192_GCM, &aes_192_gcm_info },
2299
+ { MBEDTLS_CIPHER_AES_256_GCM, &aes_256_gcm_info },
2300
+ #endif
2301
+ #endif
2302
+ #if defined(MBEDTLS_CIPHER_HAVE_CCM_AES_VIA_LEGACY_OR_USE_PSA)
2303
+ { MBEDTLS_CIPHER_AES_128_CCM, &aes_128_ccm_info },
2304
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2305
+ { MBEDTLS_CIPHER_AES_192_CCM, &aes_192_ccm_info },
2306
+ { MBEDTLS_CIPHER_AES_256_CCM, &aes_256_ccm_info },
2307
+ #endif
2308
+ #endif
2309
+ #if defined(MBEDTLS_CIPHER_HAVE_CCM_STAR_NO_TAG_AES_VIA_LEGACY_OR_USE_PSA)
2310
+ { MBEDTLS_CIPHER_AES_128_CCM_STAR_NO_TAG, &aes_128_ccm_star_no_tag_info },
2311
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2312
+ { MBEDTLS_CIPHER_AES_192_CCM_STAR_NO_TAG, &aes_192_ccm_star_no_tag_info },
2313
+ { MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG, &aes_256_ccm_star_no_tag_info },
2314
+ #endif
2315
+ #endif
2316
+
2317
+ #if defined(MBEDTLS_CAMELLIA_C)
2318
+ { MBEDTLS_CIPHER_CAMELLIA_128_ECB, &camellia_128_ecb_info },
2319
+ { MBEDTLS_CIPHER_CAMELLIA_192_ECB, &camellia_192_ecb_info },
2320
+ { MBEDTLS_CIPHER_CAMELLIA_256_ECB, &camellia_256_ecb_info },
2321
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
2322
+ { MBEDTLS_CIPHER_CAMELLIA_128_CBC, &camellia_128_cbc_info },
2323
+ { MBEDTLS_CIPHER_CAMELLIA_192_CBC, &camellia_192_cbc_info },
2324
+ { MBEDTLS_CIPHER_CAMELLIA_256_CBC, &camellia_256_cbc_info },
2325
+ #endif
2326
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
2327
+ { MBEDTLS_CIPHER_CAMELLIA_128_CFB128, &camellia_128_cfb128_info },
2328
+ { MBEDTLS_CIPHER_CAMELLIA_192_CFB128, &camellia_192_cfb128_info },
2329
+ { MBEDTLS_CIPHER_CAMELLIA_256_CFB128, &camellia_256_cfb128_info },
2330
+ #endif
2331
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
2332
+ { MBEDTLS_CIPHER_CAMELLIA_128_CTR, &camellia_128_ctr_info },
2333
+ { MBEDTLS_CIPHER_CAMELLIA_192_CTR, &camellia_192_ctr_info },
2334
+ { MBEDTLS_CIPHER_CAMELLIA_256_CTR, &camellia_256_ctr_info },
2335
+ #endif
2336
+ #if defined(MBEDTLS_GCM_C)
2337
+ { MBEDTLS_CIPHER_CAMELLIA_128_GCM, &camellia_128_gcm_info },
2338
+ { MBEDTLS_CIPHER_CAMELLIA_192_GCM, &camellia_192_gcm_info },
2339
+ { MBEDTLS_CIPHER_CAMELLIA_256_GCM, &camellia_256_gcm_info },
2340
+ #endif
2341
+ #if defined(MBEDTLS_CCM_C)
2342
+ { MBEDTLS_CIPHER_CAMELLIA_128_CCM, &camellia_128_ccm_info },
2343
+ { MBEDTLS_CIPHER_CAMELLIA_192_CCM, &camellia_192_ccm_info },
2344
+ { MBEDTLS_CIPHER_CAMELLIA_256_CCM, &camellia_256_ccm_info },
2345
+ { MBEDTLS_CIPHER_CAMELLIA_128_CCM_STAR_NO_TAG, &camellia_128_ccm_star_no_tag_info },
2346
+ { MBEDTLS_CIPHER_CAMELLIA_192_CCM_STAR_NO_TAG, &camellia_192_ccm_star_no_tag_info },
2347
+ { MBEDTLS_CIPHER_CAMELLIA_256_CCM_STAR_NO_TAG, &camellia_256_ccm_star_no_tag_info },
2348
+ #endif
2349
+ #endif /* MBEDTLS_CAMELLIA_C */
2350
+
2351
+ #if defined(MBEDTLS_ARIA_C)
2352
+ { MBEDTLS_CIPHER_ARIA_128_ECB, &aria_128_ecb_info },
2353
+ { MBEDTLS_CIPHER_ARIA_192_ECB, &aria_192_ecb_info },
2354
+ { MBEDTLS_CIPHER_ARIA_256_ECB, &aria_256_ecb_info },
2355
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
2356
+ { MBEDTLS_CIPHER_ARIA_128_CBC, &aria_128_cbc_info },
2357
+ { MBEDTLS_CIPHER_ARIA_192_CBC, &aria_192_cbc_info },
2358
+ { MBEDTLS_CIPHER_ARIA_256_CBC, &aria_256_cbc_info },
2359
+ #endif
2360
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
2361
+ { MBEDTLS_CIPHER_ARIA_128_CFB128, &aria_128_cfb128_info },
2362
+ { MBEDTLS_CIPHER_ARIA_192_CFB128, &aria_192_cfb128_info },
2363
+ { MBEDTLS_CIPHER_ARIA_256_CFB128, &aria_256_cfb128_info },
2364
+ #endif
2365
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
2366
+ { MBEDTLS_CIPHER_ARIA_128_CTR, &aria_128_ctr_info },
2367
+ { MBEDTLS_CIPHER_ARIA_192_CTR, &aria_192_ctr_info },
2368
+ { MBEDTLS_CIPHER_ARIA_256_CTR, &aria_256_ctr_info },
2369
+ #endif
2370
+ #if defined(MBEDTLS_GCM_C)
2371
+ { MBEDTLS_CIPHER_ARIA_128_GCM, &aria_128_gcm_info },
2372
+ { MBEDTLS_CIPHER_ARIA_192_GCM, &aria_192_gcm_info },
2373
+ { MBEDTLS_CIPHER_ARIA_256_GCM, &aria_256_gcm_info },
2374
+ #endif
2375
+ #if defined(MBEDTLS_CCM_C)
2376
+ { MBEDTLS_CIPHER_ARIA_128_CCM, &aria_128_ccm_info },
2377
+ { MBEDTLS_CIPHER_ARIA_192_CCM, &aria_192_ccm_info },
2378
+ { MBEDTLS_CIPHER_ARIA_256_CCM, &aria_256_ccm_info },
2379
+ { MBEDTLS_CIPHER_ARIA_128_CCM_STAR_NO_TAG, &aria_128_ccm_star_no_tag_info },
2380
+ { MBEDTLS_CIPHER_ARIA_192_CCM_STAR_NO_TAG, &aria_192_ccm_star_no_tag_info },
2381
+ { MBEDTLS_CIPHER_ARIA_256_CCM_STAR_NO_TAG, &aria_256_ccm_star_no_tag_info },
2382
+ #endif
2383
+ #endif /* MBEDTLS_ARIA_C */
2384
+
2385
+ #if defined(MBEDTLS_DES_C)
2386
+ { MBEDTLS_CIPHER_DES_ECB, &des_ecb_info },
2387
+ { MBEDTLS_CIPHER_DES_EDE_ECB, &des_ede_ecb_info },
2388
+ { MBEDTLS_CIPHER_DES_EDE3_ECB, &des_ede3_ecb_info },
2389
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
2390
+ { MBEDTLS_CIPHER_DES_CBC, &des_cbc_info },
2391
+ { MBEDTLS_CIPHER_DES_EDE_CBC, &des_ede_cbc_info },
2392
+ { MBEDTLS_CIPHER_DES_EDE3_CBC, &des_ede3_cbc_info },
2393
+ #endif
2394
+ #endif /* MBEDTLS_DES_C */
2395
+
2396
+ #if defined(MBEDTLS_CHACHA20_C)
2397
+ { MBEDTLS_CIPHER_CHACHA20, &chacha20_info },
2398
+ #endif
2399
+
2400
+ #if defined(MBEDTLS_CHACHAPOLY_C)
2401
+ { MBEDTLS_CIPHER_CHACHA20_POLY1305, &chachapoly_info },
2402
+ #endif
2403
+
2404
+ #if defined(MBEDTLS_NIST_KW_C)
2405
+ { MBEDTLS_CIPHER_AES_128_KW, &aes_128_nist_kw_info },
2406
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2407
+ { MBEDTLS_CIPHER_AES_192_KW, &aes_192_nist_kw_info },
2408
+ { MBEDTLS_CIPHER_AES_256_KW, &aes_256_nist_kw_info },
2409
+ #endif
2410
+ { MBEDTLS_CIPHER_AES_128_KWP, &aes_128_nist_kwp_info },
2411
+ #if !defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
2412
+ { MBEDTLS_CIPHER_AES_192_KWP, &aes_192_nist_kwp_info },
2413
+ { MBEDTLS_CIPHER_AES_256_KWP, &aes_256_nist_kwp_info },
2414
+ #endif
2415
+ #endif
2416
+
2417
+ #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
2418
+ { MBEDTLS_CIPHER_NULL, &null_cipher_info },
2419
+ #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
2420
+
2421
+ { MBEDTLS_CIPHER_NONE, NULL }
2422
+ };
2423
+
2424
+ #define NUM_CIPHERS (sizeof(mbedtls_cipher_definitions) / \
2425
+ sizeof(mbedtls_cipher_definitions[0]))
2426
+ int mbedtls_cipher_supported[NUM_CIPHERS];
2427
+
2428
+ const mbedtls_cipher_base_t * const mbedtls_cipher_base_lookup_table[] = {
2429
+ #if defined(MBEDTLS_AES_C)
2430
+ [MBEDTLS_CIPHER_BASE_INDEX_AES] = &aes_info,
2431
+ #endif
2432
+ #if defined(MBEDTLS_ARIA_C)
2433
+ [MBEDTLS_CIPHER_BASE_INDEX_ARIA] = &aria_info,
2434
+ #endif
2435
+ #if defined(MBEDTLS_CAMELLIA_C)
2436
+ [MBEDTLS_CIPHER_BASE_INDEX_CAMELLIA] = &camellia_info,
2437
+ #endif
2438
+ #if defined(MBEDTLS_CIPHER_HAVE_CCM_AES_VIA_LEGACY_OR_USE_PSA)
2439
+ [MBEDTLS_CIPHER_BASE_INDEX_CCM_AES] = &ccm_aes_info,
2440
+ #endif
2441
+ #if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_ARIA_C)
2442
+ [MBEDTLS_CIPHER_BASE_INDEX_CCM_ARIA] = &ccm_aria_info,
2443
+ #endif
2444
+ #if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_CAMELLIA_C)
2445
+ [MBEDTLS_CIPHER_BASE_INDEX_CCM_CAMELLIA] = &ccm_camellia_info,
2446
+ #endif
2447
+ #if defined(MBEDTLS_CHACHA20_C)
2448
+ [MBEDTLS_CIPHER_BASE_INDEX_CHACHA20_BASE] = &chacha20_base_info,
2449
+ #endif
2450
+ #if defined(MBEDTLS_CHACHAPOLY_C)
2451
+ [MBEDTLS_CIPHER_BASE_INDEX_CHACHAPOLY_BASE] = &chachapoly_base_info,
2452
+ #endif
2453
+ #if defined(MBEDTLS_DES_C)
2454
+ [MBEDTLS_CIPHER_BASE_INDEX_DES_EDE3] = &des_ede3_info,
2455
+ #endif
2456
+ #if defined(MBEDTLS_DES_C)
2457
+ [MBEDTLS_CIPHER_BASE_INDEX_DES_EDE] = &des_ede_info,
2458
+ #endif
2459
+ #if defined(MBEDTLS_DES_C)
2460
+ [MBEDTLS_CIPHER_BASE_INDEX_DES] = &des_info,
2461
+ #endif
2462
+ #if defined(MBEDTLS_CIPHER_HAVE_GCM_AES_VIA_LEGACY_OR_USE_PSA)
2463
+ [MBEDTLS_CIPHER_BASE_INDEX_GCM_AES] = &gcm_aes_info,
2464
+ #endif
2465
+ #if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_ARIA_C)
2466
+ [MBEDTLS_CIPHER_BASE_INDEX_GCM_ARIA] = &gcm_aria_info,
2467
+ #endif
2468
+ #if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_CAMELLIA_C)
2469
+ [MBEDTLS_CIPHER_BASE_INDEX_GCM_CAMELLIA] = &gcm_camellia_info,
2470
+ #endif
2471
+ #if defined(MBEDTLS_NIST_KW_C)
2472
+ [MBEDTLS_CIPHER_BASE_INDEX_KW_AES] = &kw_aes_info,
2473
+ #endif
2474
+ #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
2475
+ [MBEDTLS_CIPHER_BASE_INDEX_NULL_BASE] = &null_base_info,
2476
+ #endif
2477
+ #if defined(MBEDTLS_CIPHER_MODE_XTS) && defined(MBEDTLS_AES_C)
2478
+ [MBEDTLS_CIPHER_BASE_INDEX_XTS_AES] = &xts_aes_info
2479
+ #endif
2480
+ };
2481
+
2482
+ #endif /* MBEDTLS_CIPHER_C */