implementations.h 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  1. /*
  2. * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved.
  3. *
  4. * Licensed under the Apache License 2.0 (the "License"). You may not use
  5. * this file except in compliance with the License. You can obtain a copy
  6. * in the file LICENSE in the source distribution or at
  7. * https://www.openssl.org/source/license.html
  8. */
  9. #include <openssl/core.h>
  10. #include <openssl/types.h>
  11. /* Digests */
  12. extern const OSSL_DISPATCH ossl_sha1_functions[];
  13. extern const OSSL_DISPATCH ossl_sha224_functions[];
  14. extern const OSSL_DISPATCH ossl_sha256_functions[];
  15. extern const OSSL_DISPATCH ossl_sha384_functions[];
  16. extern const OSSL_DISPATCH ossl_sha512_functions[];
  17. extern const OSSL_DISPATCH ossl_sha512_224_functions[];
  18. extern const OSSL_DISPATCH ossl_sha512_256_functions[];
  19. extern const OSSL_DISPATCH ossl_sha3_224_functions[];
  20. extern const OSSL_DISPATCH ossl_sha3_256_functions[];
  21. extern const OSSL_DISPATCH ossl_sha3_384_functions[];
  22. extern const OSSL_DISPATCH ossl_sha3_512_functions[];
  23. extern const OSSL_DISPATCH ossl_keccak_224_functions[];
  24. extern const OSSL_DISPATCH ossl_keccak_256_functions[];
  25. extern const OSSL_DISPATCH ossl_keccak_384_functions[];
  26. extern const OSSL_DISPATCH ossl_keccak_512_functions[];
  27. extern const OSSL_DISPATCH ossl_keccak_kmac_128_functions[];
  28. extern const OSSL_DISPATCH ossl_keccak_kmac_256_functions[];
  29. extern const OSSL_DISPATCH ossl_shake_128_functions[];
  30. extern const OSSL_DISPATCH ossl_shake_256_functions[];
  31. extern const OSSL_DISPATCH ossl_blake2s256_functions[];
  32. extern const OSSL_DISPATCH ossl_blake2b512_functions[];
  33. extern const OSSL_DISPATCH ossl_md5_functions[];
  34. extern const OSSL_DISPATCH ossl_md5_sha1_functions[];
  35. extern const OSSL_DISPATCH ossl_sm3_functions[];
  36. extern const OSSL_DISPATCH ossl_md2_functions[];
  37. extern const OSSL_DISPATCH ossl_md4_functions[];
  38. extern const OSSL_DISPATCH ossl_mdc2_functions[];
  39. extern const OSSL_DISPATCH ossl_wp_functions[];
  40. extern const OSSL_DISPATCH ossl_ripemd160_functions[];
  41. extern const OSSL_DISPATCH ossl_nullmd_functions[];
  42. /* Ciphers */
  43. extern const OSSL_DISPATCH ossl_null_functions[];
  44. extern const OSSL_DISPATCH ossl_aes256ecb_functions[];
  45. extern const OSSL_DISPATCH ossl_aes192ecb_functions[];
  46. extern const OSSL_DISPATCH ossl_aes128ecb_functions[];
  47. extern const OSSL_DISPATCH ossl_aes256cbc_functions[];
  48. extern const OSSL_DISPATCH ossl_aes192cbc_functions[];
  49. extern const OSSL_DISPATCH ossl_aes128cbc_functions[];
  50. extern const OSSL_DISPATCH ossl_aes256cbc_cts_functions[];
  51. extern const OSSL_DISPATCH ossl_aes192cbc_cts_functions[];
  52. extern const OSSL_DISPATCH ossl_aes128cbc_cts_functions[];
  53. extern const OSSL_DISPATCH ossl_aes256ofb_functions[];
  54. extern const OSSL_DISPATCH ossl_aes192ofb_functions[];
  55. extern const OSSL_DISPATCH ossl_aes128ofb_functions[];
  56. extern const OSSL_DISPATCH ossl_aes256cfb_functions[];
  57. extern const OSSL_DISPATCH ossl_aes192cfb_functions[];
  58. extern const OSSL_DISPATCH ossl_aes128cfb_functions[];
  59. extern const OSSL_DISPATCH ossl_aes256cfb1_functions[];
  60. extern const OSSL_DISPATCH ossl_aes192cfb1_functions[];
  61. extern const OSSL_DISPATCH ossl_aes128cfb1_functions[];
  62. extern const OSSL_DISPATCH ossl_aes256cfb8_functions[];
  63. extern const OSSL_DISPATCH ossl_aes192cfb8_functions[];
  64. extern const OSSL_DISPATCH ossl_aes128cfb8_functions[];
  65. extern const OSSL_DISPATCH ossl_aes256ctr_functions[];
  66. extern const OSSL_DISPATCH ossl_aes192ctr_functions[];
  67. extern const OSSL_DISPATCH ossl_aes128ctr_functions[];
  68. extern const OSSL_DISPATCH ossl_aes256xts_functions[];
  69. extern const OSSL_DISPATCH ossl_aes128xts_functions[];
  70. #ifndef OPENSSL_NO_OCB
  71. extern const OSSL_DISPATCH ossl_aes256ocb_functions[];
  72. extern const OSSL_DISPATCH ossl_aes192ocb_functions[];
  73. extern const OSSL_DISPATCH ossl_aes128ocb_functions[];
  74. #endif /* OPENSSL_NO_OCB */
  75. extern const OSSL_DISPATCH ossl_aes256gcm_functions[];
  76. extern const OSSL_DISPATCH ossl_aes192gcm_functions[];
  77. extern const OSSL_DISPATCH ossl_aes128gcm_functions[];
  78. extern const OSSL_DISPATCH ossl_aes256ccm_functions[];
  79. extern const OSSL_DISPATCH ossl_aes192ccm_functions[];
  80. extern const OSSL_DISPATCH ossl_aes128ccm_functions[];
  81. extern const OSSL_DISPATCH ossl_aes256wrap_functions[];
  82. extern const OSSL_DISPATCH ossl_aes192wrap_functions[];
  83. extern const OSSL_DISPATCH ossl_aes128wrap_functions[];
  84. extern const OSSL_DISPATCH ossl_aes256wrappad_functions[];
  85. extern const OSSL_DISPATCH ossl_aes192wrappad_functions[];
  86. extern const OSSL_DISPATCH ossl_aes128wrappad_functions[];
  87. extern const OSSL_DISPATCH ossl_aes256wrapinv_functions[];
  88. extern const OSSL_DISPATCH ossl_aes192wrapinv_functions[];
  89. extern const OSSL_DISPATCH ossl_aes128wrapinv_functions[];
  90. extern const OSSL_DISPATCH ossl_aes256wrappadinv_functions[];
  91. extern const OSSL_DISPATCH ossl_aes192wrappadinv_functions[];
  92. extern const OSSL_DISPATCH ossl_aes128wrappadinv_functions[];
  93. extern const OSSL_DISPATCH ossl_aes256cbc_hmac_sha1_functions[];
  94. extern const OSSL_DISPATCH ossl_aes128cbc_hmac_sha1_functions[];
  95. extern const OSSL_DISPATCH ossl_aes256cbc_hmac_sha256_functions[];
  96. extern const OSSL_DISPATCH ossl_aes128cbc_hmac_sha256_functions[];
  97. #ifndef OPENSSL_NO_ARIA
  98. extern const OSSL_DISPATCH ossl_aria256gcm_functions[];
  99. extern const OSSL_DISPATCH ossl_aria192gcm_functions[];
  100. extern const OSSL_DISPATCH ossl_aria128gcm_functions[];
  101. extern const OSSL_DISPATCH ossl_aria256ccm_functions[];
  102. extern const OSSL_DISPATCH ossl_aria192ccm_functions[];
  103. extern const OSSL_DISPATCH ossl_aria128ccm_functions[];
  104. extern const OSSL_DISPATCH ossl_aria256ecb_functions[];
  105. extern const OSSL_DISPATCH ossl_aria192ecb_functions[];
  106. extern const OSSL_DISPATCH ossl_aria128ecb_functions[];
  107. extern const OSSL_DISPATCH ossl_aria256cbc_functions[];
  108. extern const OSSL_DISPATCH ossl_aria192cbc_functions[];
  109. extern const OSSL_DISPATCH ossl_aria128cbc_functions[];
  110. extern const OSSL_DISPATCH ossl_aria256ofb_functions[];
  111. extern const OSSL_DISPATCH ossl_aria192ofb_functions[];
  112. extern const OSSL_DISPATCH ossl_aria128ofb_functions[];
  113. extern const OSSL_DISPATCH ossl_aria256cfb_functions[];
  114. extern const OSSL_DISPATCH ossl_aria192cfb_functions[];
  115. extern const OSSL_DISPATCH ossl_aria128cfb_functions[];
  116. extern const OSSL_DISPATCH ossl_aria256cfb1_functions[];
  117. extern const OSSL_DISPATCH ossl_aria192cfb1_functions[];
  118. extern const OSSL_DISPATCH ossl_aria128cfb1_functions[];
  119. extern const OSSL_DISPATCH ossl_aria256cfb8_functions[];
  120. extern const OSSL_DISPATCH ossl_aria192cfb8_functions[];
  121. extern const OSSL_DISPATCH ossl_aria128cfb8_functions[];
  122. extern const OSSL_DISPATCH ossl_aria256ctr_functions[];
  123. extern const OSSL_DISPATCH ossl_aria192ctr_functions[];
  124. extern const OSSL_DISPATCH ossl_aria128ctr_functions[];
  125. #endif /* OPENSSL_NO_ARIA */
  126. #ifndef OPENSSL_NO_CAMELLIA
  127. extern const OSSL_DISPATCH ossl_camellia256ecb_functions[];
  128. extern const OSSL_DISPATCH ossl_camellia192ecb_functions[];
  129. extern const OSSL_DISPATCH ossl_camellia128ecb_functions[];
  130. extern const OSSL_DISPATCH ossl_camellia256cbc_functions[];
  131. extern const OSSL_DISPATCH ossl_camellia192cbc_functions[];
  132. extern const OSSL_DISPATCH ossl_camellia128cbc_functions[];
  133. extern const OSSL_DISPATCH ossl_camellia256cbc_cts_functions[];
  134. extern const OSSL_DISPATCH ossl_camellia192cbc_cts_functions[];
  135. extern const OSSL_DISPATCH ossl_camellia128cbc_cts_functions[];
  136. extern const OSSL_DISPATCH ossl_camellia256ofb_functions[];
  137. extern const OSSL_DISPATCH ossl_camellia192ofb_functions[];
  138. extern const OSSL_DISPATCH ossl_camellia128ofb_functions[];
  139. extern const OSSL_DISPATCH ossl_camellia256cfb_functions[];
  140. extern const OSSL_DISPATCH ossl_camellia192cfb_functions[];
  141. extern const OSSL_DISPATCH ossl_camellia128cfb_functions[];
  142. extern const OSSL_DISPATCH ossl_camellia256cfb1_functions[];
  143. extern const OSSL_DISPATCH ossl_camellia192cfb1_functions[];
  144. extern const OSSL_DISPATCH ossl_camellia128cfb1_functions[];
  145. extern const OSSL_DISPATCH ossl_camellia256cfb8_functions[];
  146. extern const OSSL_DISPATCH ossl_camellia192cfb8_functions[];
  147. extern const OSSL_DISPATCH ossl_camellia128cfb8_functions[];
  148. extern const OSSL_DISPATCH ossl_camellia256ctr_functions[];
  149. extern const OSSL_DISPATCH ossl_camellia192ctr_functions[];
  150. extern const OSSL_DISPATCH ossl_camellia128ctr_functions[];
  151. #endif /* OPENSSL_NO_CAMELLIA */
  152. #ifndef OPENSSL_NO_BF
  153. extern const OSSL_DISPATCH ossl_blowfish128ecb_functions[];
  154. extern const OSSL_DISPATCH ossl_blowfish128cbc_functions[];
  155. extern const OSSL_DISPATCH ossl_blowfish128ofb64_functions[];
  156. extern const OSSL_DISPATCH ossl_blowfish128cfb64_functions[];
  157. #endif /* OPENSSL_NO_BF */
  158. #ifndef OPENSSL_NO_IDEA
  159. extern const OSSL_DISPATCH ossl_idea128ecb_functions[];
  160. extern const OSSL_DISPATCH ossl_idea128cbc_functions[];
  161. extern const OSSL_DISPATCH ossl_idea128ofb64_functions[];
  162. extern const OSSL_DISPATCH ossl_idea128cfb64_functions[];
  163. #endif /* OPENSSL_NO_IDEA */
  164. #ifndef OPENSSL_NO_CAST
  165. extern const OSSL_DISPATCH ossl_cast5128ecb_functions[];
  166. extern const OSSL_DISPATCH ossl_cast5128cbc_functions[];
  167. extern const OSSL_DISPATCH ossl_cast5128ofb64_functions[];
  168. extern const OSSL_DISPATCH ossl_cast5128cfb64_functions[];
  169. #endif /* OPENSSL_NO_CAST */
  170. #ifndef OPENSSL_NO_SEED
  171. extern const OSSL_DISPATCH ossl_seed128ecb_functions[];
  172. extern const OSSL_DISPATCH ossl_seed128cbc_functions[];
  173. extern const OSSL_DISPATCH ossl_seed128ofb128_functions[];
  174. extern const OSSL_DISPATCH ossl_seed128cfb128_functions[];
  175. #endif /* OPENSSL_NO_SEED */
  176. #ifndef OPENSSL_NO_SM4
  177. extern const OSSL_DISPATCH ossl_sm4128gcm_functions[];
  178. extern const OSSL_DISPATCH ossl_sm4128ccm_functions[];
  179. extern const OSSL_DISPATCH ossl_sm4128ecb_functions[];
  180. extern const OSSL_DISPATCH ossl_sm4128cbc_functions[];
  181. extern const OSSL_DISPATCH ossl_sm4128ctr_functions[];
  182. extern const OSSL_DISPATCH ossl_sm4128ofb128_functions[];
  183. extern const OSSL_DISPATCH ossl_sm4128cfb128_functions[];
  184. #endif /* OPENSSL_NO_SM4 */
  185. #ifndef OPENSSL_NO_RC5
  186. extern const OSSL_DISPATCH ossl_rc5128ecb_functions[];
  187. extern const OSSL_DISPATCH ossl_rc5128cbc_functions[];
  188. extern const OSSL_DISPATCH ossl_rc5128ofb64_functions[];
  189. extern const OSSL_DISPATCH ossl_rc5128cfb64_functions[];
  190. #endif /* OPENSSL_NO_RC5 */
  191. #ifndef OPENSSL_NO_RC2
  192. extern const OSSL_DISPATCH ossl_rc2128ecb_functions[];
  193. extern const OSSL_DISPATCH ossl_rc2128cbc_functions[];
  194. extern const OSSL_DISPATCH ossl_rc240cbc_functions[];
  195. extern const OSSL_DISPATCH ossl_rc264cbc_functions[];
  196. extern const OSSL_DISPATCH ossl_rc2128cfb128_functions[];
  197. extern const OSSL_DISPATCH ossl_rc2128ofb128_functions[];
  198. #endif /* OPENSSL_NO_RC2 */
  199. #ifndef OPENSSL_NO_DES
  200. extern const OSSL_DISPATCH ossl_tdes_ede3_ecb_functions[];
  201. extern const OSSL_DISPATCH ossl_tdes_ede3_cbc_functions[];
  202. # ifndef FIPS_MODULE
  203. extern const OSSL_DISPATCH ossl_tdes_ede3_ofb_functions[];
  204. extern const OSSL_DISPATCH ossl_tdes_ede3_cfb_functions[];
  205. extern const OSSL_DISPATCH ossl_tdes_ede3_cfb8_functions[];
  206. extern const OSSL_DISPATCH ossl_tdes_ede3_cfb1_functions[];
  207. extern const OSSL_DISPATCH ossl_tdes_ede2_ecb_functions[];
  208. extern const OSSL_DISPATCH ossl_tdes_ede2_cbc_functions[];
  209. extern const OSSL_DISPATCH ossl_tdes_ede2_ofb_functions[];
  210. extern const OSSL_DISPATCH ossl_tdes_ede2_cfb_functions[];
  211. extern const OSSL_DISPATCH ossl_tdes_desx_cbc_functions[];
  212. extern const OSSL_DISPATCH ossl_tdes_wrap_cbc_functions[];
  213. extern const OSSL_DISPATCH ossl_des_ecb_functions[];
  214. extern const OSSL_DISPATCH ossl_des_cbc_functions[];
  215. extern const OSSL_DISPATCH ossl_des_ofb64_functions[];
  216. extern const OSSL_DISPATCH ossl_des_cfb64_functions[];
  217. extern const OSSL_DISPATCH ossl_des_cfb1_functions[];
  218. extern const OSSL_DISPATCH ossl_des_cfb8_functions[];
  219. # endif /* FIPS_MODULE */
  220. #endif /* OPENSSL_NO_DES */
  221. #ifndef OPENSSL_NO_RC4
  222. extern const OSSL_DISPATCH ossl_rc440_functions[];
  223. extern const OSSL_DISPATCH ossl_rc4128_functions[];
  224. # ifndef OPENSSL_NO_MD5
  225. extern const OSSL_DISPATCH ossl_rc4_hmac_ossl_md5_functions[];
  226. # endif /* OPENSSL_NO_MD5 */
  227. #endif /* OPENSSL_NO_RC4 */
  228. #ifndef OPENSSL_NO_CHACHA
  229. extern const OSSL_DISPATCH ossl_chacha20_functions[];
  230. # ifndef OPENSSL_NO_POLY1305
  231. extern const OSSL_DISPATCH ossl_chacha20_ossl_poly1305_functions[];
  232. # endif /* OPENSSL_NO_POLY1305 */
  233. #endif /* OPENSSL_NO_CHACHA */
  234. #ifndef OPENSSL_NO_SIV
  235. extern const OSSL_DISPATCH ossl_aes128siv_functions[];
  236. extern const OSSL_DISPATCH ossl_aes192siv_functions[];
  237. extern const OSSL_DISPATCH ossl_aes256siv_functions[];
  238. extern const OSSL_DISPATCH ossl_aes128gcm_siv_functions[];
  239. extern const OSSL_DISPATCH ossl_aes192gcm_siv_functions[];
  240. extern const OSSL_DISPATCH ossl_aes256gcm_siv_functions[];
  241. #endif /* OPENSSL_NO_SIV */
  242. /* MACs */
  243. extern const OSSL_DISPATCH ossl_blake2bmac_functions[];
  244. extern const OSSL_DISPATCH ossl_blake2smac_functions[];
  245. extern const OSSL_DISPATCH ossl_cmac_functions[];
  246. extern const OSSL_DISPATCH ossl_gmac_functions[];
  247. extern const OSSL_DISPATCH ossl_hmac_functions[];
  248. extern const OSSL_DISPATCH ossl_kmac128_functions[];
  249. extern const OSSL_DISPATCH ossl_kmac256_functions[];
  250. extern const OSSL_DISPATCH ossl_siphash_functions[];
  251. extern const OSSL_DISPATCH ossl_poly1305_functions[];
  252. /* KDFs / PRFs */
  253. extern const OSSL_DISPATCH ossl_kdf_pbkdf1_functions[];
  254. extern const OSSL_DISPATCH ossl_kdf_pbkdf2_functions[];
  255. extern const OSSL_DISPATCH ossl_kdf_pvk_functions[];
  256. extern const OSSL_DISPATCH ossl_kdf_pkcs12_functions[];
  257. #ifndef OPENSSL_NO_SCRYPT
  258. extern const OSSL_DISPATCH ossl_kdf_scrypt_functions[];
  259. #endif
  260. extern const OSSL_DISPATCH ossl_kdf_tls1_prf_functions[];
  261. extern const OSSL_DISPATCH ossl_kdf_hkdf_functions[];
  262. extern const OSSL_DISPATCH ossl_kdf_tls1_3_kdf_functions[];
  263. extern const OSSL_DISPATCH ossl_kdf_sshkdf_functions[];
  264. extern const OSSL_DISPATCH ossl_kdf_sskdf_functions[];
  265. extern const OSSL_DISPATCH ossl_kdf_x963_kdf_functions[];
  266. extern const OSSL_DISPATCH ossl_kdf_kbkdf_functions[];
  267. extern const OSSL_DISPATCH ossl_kdf_x942_kdf_functions[];
  268. extern const OSSL_DISPATCH ossl_kdf_krb5kdf_functions[];
  269. /* RNGs */
  270. extern const OSSL_DISPATCH ossl_test_rng_functions[];
  271. extern const OSSL_DISPATCH ossl_seed_src_functions[];
  272. extern const OSSL_DISPATCH ossl_drbg_hash_functions[];
  273. extern const OSSL_DISPATCH ossl_drbg_ossl_hmac_functions[];
  274. extern const OSSL_DISPATCH ossl_drbg_ctr_functions[];
  275. extern const OSSL_DISPATCH crngt_functions[];
  276. /* Key management */
  277. extern const OSSL_DISPATCH ossl_dh_keymgmt_functions[];
  278. extern const OSSL_DISPATCH ossl_dhx_keymgmt_functions[];
  279. extern const OSSL_DISPATCH ossl_dsa_keymgmt_functions[];
  280. extern const OSSL_DISPATCH ossl_rsa_keymgmt_functions[];
  281. extern const OSSL_DISPATCH ossl_rsapss_keymgmt_functions[];
  282. extern const OSSL_DISPATCH ossl_x25519_keymgmt_functions[];
  283. extern const OSSL_DISPATCH ossl_x448_keymgmt_functions[];
  284. extern const OSSL_DISPATCH ossl_ed25519_keymgmt_functions[];
  285. extern const OSSL_DISPATCH ossl_ed448_keymgmt_functions[];
  286. extern const OSSL_DISPATCH ossl_ec_keymgmt_functions[];
  287. extern const OSSL_DISPATCH ossl_kdf_keymgmt_functions[];
  288. extern const OSSL_DISPATCH ossl_mac_legacy_keymgmt_functions[];
  289. extern const OSSL_DISPATCH ossl_cmac_legacy_keymgmt_functions[];
  290. #ifndef OPENSSL_NO_SM2
  291. extern const OSSL_DISPATCH ossl_sm2_keymgmt_functions[];
  292. #endif
  293. /* Key Exchange */
  294. extern const OSSL_DISPATCH ossl_dh_keyexch_functions[];
  295. extern const OSSL_DISPATCH ossl_x25519_keyexch_functions[];
  296. extern const OSSL_DISPATCH ossl_x448_keyexch_functions[];
  297. extern const OSSL_DISPATCH ossl_ecdh_keyexch_functions[];
  298. extern const OSSL_DISPATCH ossl_kdf_tls1_prf_keyexch_functions[];
  299. extern const OSSL_DISPATCH ossl_kdf_hkdf_keyexch_functions[];
  300. extern const OSSL_DISPATCH ossl_kdf_scrypt_keyexch_functions[];
  301. /* Signature */
  302. extern const OSSL_DISPATCH ossl_dsa_signature_functions[];
  303. extern const OSSL_DISPATCH ossl_rsa_signature_functions[];
  304. extern const OSSL_DISPATCH ossl_ed25519_signature_functions[];
  305. extern const OSSL_DISPATCH ossl_ed448_signature_functions[];
  306. extern const OSSL_DISPATCH ossl_ecdsa_signature_functions[];
  307. extern const OSSL_DISPATCH ossl_mac_legacy_hmac_signature_functions[];
  308. extern const OSSL_DISPATCH ossl_mac_legacy_siphash_signature_functions[];
  309. extern const OSSL_DISPATCH ossl_mac_legacy_poly1305_signature_functions[];
  310. extern const OSSL_DISPATCH ossl_mac_legacy_cmac_signature_functions[];
  311. extern const OSSL_DISPATCH ossl_sm2_signature_functions[];
  312. /* Asym Cipher */
  313. extern const OSSL_DISPATCH ossl_rsa_asym_cipher_functions[];
  314. #ifndef OPENSSL_NO_SM2
  315. extern const OSSL_DISPATCH ossl_sm2_asym_cipher_functions[];
  316. #endif
  317. /* Asym Key encapsulation */
  318. extern const OSSL_DISPATCH ossl_rsa_asym_kem_functions[];
  319. /* Encoders */
  320. extern const OSSL_DISPATCH ossl_rsa_to_PKCS1_der_encoder_functions[];
  321. extern const OSSL_DISPATCH ossl_rsa_to_PKCS1_pem_encoder_functions[];
  322. extern const OSSL_DISPATCH ossl_rsa_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  323. extern const OSSL_DISPATCH ossl_rsa_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  324. extern const OSSL_DISPATCH ossl_rsa_to_PrivateKeyInfo_der_encoder_functions[];
  325. extern const OSSL_DISPATCH ossl_rsa_to_PrivateKeyInfo_pem_encoder_functions[];
  326. extern const OSSL_DISPATCH ossl_rsa_to_RSA_der_encoder_functions[];
  327. extern const OSSL_DISPATCH ossl_rsa_to_RSA_pem_encoder_functions[];
  328. extern const OSSL_DISPATCH ossl_rsa_to_SubjectPublicKeyInfo_der_encoder_functions[];
  329. extern const OSSL_DISPATCH ossl_rsa_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  330. extern const OSSL_DISPATCH ossl_rsa_to_msblob_encoder_functions[];
  331. extern const OSSL_DISPATCH ossl_rsa_to_pvk_encoder_functions[];
  332. extern const OSSL_DISPATCH ossl_rsa_to_text_encoder_functions[];
  333. extern const OSSL_DISPATCH ossl_rsa_to_type_specific_keypair_der_encoder_functions[];
  334. extern const OSSL_DISPATCH ossl_rsa_to_type_specific_keypair_pem_encoder_functions[];
  335. extern const OSSL_DISPATCH ossl_rsapss_to_PKCS1_der_encoder_functions[];
  336. extern const OSSL_DISPATCH ossl_rsapss_to_PKCS1_pem_encoder_functions[];
  337. extern const OSSL_DISPATCH ossl_rsapss_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  338. extern const OSSL_DISPATCH ossl_rsapss_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  339. extern const OSSL_DISPATCH ossl_rsapss_to_PrivateKeyInfo_der_encoder_functions[];
  340. extern const OSSL_DISPATCH ossl_rsapss_to_PrivateKeyInfo_pem_encoder_functions[];
  341. extern const OSSL_DISPATCH ossl_rsapss_to_SubjectPublicKeyInfo_der_encoder_functions[];
  342. extern const OSSL_DISPATCH ossl_rsapss_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  343. extern const OSSL_DISPATCH ossl_rsapss_to_text_encoder_functions[];
  344. extern const OSSL_DISPATCH ossl_dh_to_DH_der_encoder_functions[];
  345. extern const OSSL_DISPATCH ossl_dh_to_DH_pem_encoder_functions[];
  346. extern const OSSL_DISPATCH ossl_dh_to_PKCS3_der_encoder_functions[];
  347. extern const OSSL_DISPATCH ossl_dh_to_PKCS3_pem_encoder_functions[];
  348. extern const OSSL_DISPATCH ossl_dh_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  349. extern const OSSL_DISPATCH ossl_dh_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  350. extern const OSSL_DISPATCH ossl_dh_to_PrivateKeyInfo_der_encoder_functions[];
  351. extern const OSSL_DISPATCH ossl_dh_to_PrivateKeyInfo_pem_encoder_functions[];
  352. extern const OSSL_DISPATCH ossl_dh_to_SubjectPublicKeyInfo_der_encoder_functions[];
  353. extern const OSSL_DISPATCH ossl_dh_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  354. extern const OSSL_DISPATCH ossl_dh_to_type_specific_params_der_encoder_functions[];
  355. extern const OSSL_DISPATCH ossl_dh_to_type_specific_params_pem_encoder_functions[];
  356. extern const OSSL_DISPATCH ossl_dh_to_text_encoder_functions[];
  357. extern const OSSL_DISPATCH ossl_dhx_to_DHX_der_encoder_functions[];
  358. extern const OSSL_DISPATCH ossl_dhx_to_DHX_pem_encoder_functions[];
  359. extern const OSSL_DISPATCH ossl_dhx_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  360. extern const OSSL_DISPATCH ossl_dhx_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  361. extern const OSSL_DISPATCH ossl_dhx_to_PrivateKeyInfo_der_encoder_functions[];
  362. extern const OSSL_DISPATCH ossl_dhx_to_PrivateKeyInfo_pem_encoder_functions[];
  363. extern const OSSL_DISPATCH ossl_dhx_to_SubjectPublicKeyInfo_der_encoder_functions[];
  364. extern const OSSL_DISPATCH ossl_dhx_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  365. extern const OSSL_DISPATCH ossl_dhx_to_X9_42_der_encoder_functions[];
  366. extern const OSSL_DISPATCH ossl_dhx_to_X9_42_pem_encoder_functions[];
  367. extern const OSSL_DISPATCH ossl_dhx_to_type_specific_params_der_encoder_functions[];
  368. extern const OSSL_DISPATCH ossl_dhx_to_type_specific_params_pem_encoder_functions[];
  369. extern const OSSL_DISPATCH ossl_dhx_to_text_encoder_functions[];
  370. extern const OSSL_DISPATCH ossl_dsa_to_DSA_der_encoder_functions[];
  371. extern const OSSL_DISPATCH ossl_dsa_to_DSA_pem_encoder_functions[];
  372. extern const OSSL_DISPATCH ossl_dsa_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  373. extern const OSSL_DISPATCH ossl_dsa_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  374. extern const OSSL_DISPATCH ossl_dsa_to_PrivateKeyInfo_der_encoder_functions[];
  375. extern const OSSL_DISPATCH ossl_dsa_to_PrivateKeyInfo_pem_encoder_functions[];
  376. extern const OSSL_DISPATCH ossl_dsa_to_SubjectPublicKeyInfo_der_encoder_functions[];
  377. extern const OSSL_DISPATCH ossl_dsa_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  378. extern const OSSL_DISPATCH ossl_dsa_to_type_specific_pem_encoder_functions[];
  379. extern const OSSL_DISPATCH ossl_dsa_to_type_specific_der_encoder_functions[];
  380. extern const OSSL_DISPATCH ossl_dsa_to_msblob_encoder_functions[];
  381. extern const OSSL_DISPATCH ossl_dsa_to_pvk_encoder_functions[];
  382. extern const OSSL_DISPATCH ossl_dsa_to_text_encoder_functions[];
  383. extern const OSSL_DISPATCH ossl_ec_to_EC_der_encoder_functions[];
  384. extern const OSSL_DISPATCH ossl_ec_to_EC_pem_encoder_functions[];
  385. extern const OSSL_DISPATCH ossl_ec_to_blob_encoder_functions[];
  386. extern const OSSL_DISPATCH ossl_ec_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  387. extern const OSSL_DISPATCH ossl_ec_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  388. extern const OSSL_DISPATCH ossl_ec_to_PrivateKeyInfo_der_encoder_functions[];
  389. extern const OSSL_DISPATCH ossl_ec_to_PrivateKeyInfo_pem_encoder_functions[];
  390. extern const OSSL_DISPATCH ossl_ec_to_SubjectPublicKeyInfo_der_encoder_functions[];
  391. extern const OSSL_DISPATCH ossl_ec_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  392. extern const OSSL_DISPATCH ossl_ec_to_X9_62_der_encoder_functions[];
  393. extern const OSSL_DISPATCH ossl_ec_to_X9_62_pem_encoder_functions[];
  394. extern const OSSL_DISPATCH ossl_ec_to_type_specific_no_pub_pem_encoder_functions[];
  395. extern const OSSL_DISPATCH ossl_ec_to_type_specific_no_pub_der_encoder_functions[];
  396. extern const OSSL_DISPATCH ossl_ec_to_text_encoder_functions[];
  397. #ifndef OPENSSL_NO_SM2
  398. extern const OSSL_DISPATCH ossl_sm2_to_SM2_der_encoder_functions[];
  399. extern const OSSL_DISPATCH ossl_sm2_to_SM2_pem_encoder_functions[];
  400. extern const OSSL_DISPATCH ossl_sm2_to_blob_encoder_functions[];
  401. extern const OSSL_DISPATCH ossl_sm2_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  402. extern const OSSL_DISPATCH ossl_sm2_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  403. extern const OSSL_DISPATCH ossl_sm2_to_PrivateKeyInfo_der_encoder_functions[];
  404. extern const OSSL_DISPATCH ossl_sm2_to_PrivateKeyInfo_pem_encoder_functions[];
  405. extern const OSSL_DISPATCH ossl_sm2_to_SubjectPublicKeyInfo_der_encoder_functions[];
  406. extern const OSSL_DISPATCH ossl_sm2_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  407. extern const OSSL_DISPATCH ossl_sm2_to_type_specific_no_pub_pem_encoder_functions[];
  408. extern const OSSL_DISPATCH ossl_sm2_to_type_specific_no_pub_der_encoder_functions[];
  409. extern const OSSL_DISPATCH ossl_sm2_to_text_encoder_functions[];
  410. #endif
  411. extern const OSSL_DISPATCH ossl_ed25519_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  412. extern const OSSL_DISPATCH ossl_ed25519_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  413. extern const OSSL_DISPATCH ossl_ed25519_to_PrivateKeyInfo_der_encoder_functions[];
  414. extern const OSSL_DISPATCH ossl_ed25519_to_PrivateKeyInfo_pem_encoder_functions[];
  415. extern const OSSL_DISPATCH ossl_ed25519_to_SubjectPublicKeyInfo_der_encoder_functions[];
  416. extern const OSSL_DISPATCH ossl_ed25519_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  417. extern const OSSL_DISPATCH ossl_ed25519_to_OSSL_current_der_encoder_functions[];
  418. extern const OSSL_DISPATCH ossl_ed25519_to_text_encoder_functions[];
  419. extern const OSSL_DISPATCH ossl_ed448_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  420. extern const OSSL_DISPATCH ossl_ed448_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  421. extern const OSSL_DISPATCH ossl_ed448_to_PrivateKeyInfo_der_encoder_functions[];
  422. extern const OSSL_DISPATCH ossl_ed448_to_PrivateKeyInfo_pem_encoder_functions[];
  423. extern const OSSL_DISPATCH ossl_ed448_to_SubjectPublicKeyInfo_der_encoder_functions[];
  424. extern const OSSL_DISPATCH ossl_ed448_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  425. extern const OSSL_DISPATCH ossl_ed448_to_OSSL_current_der_encoder_functions[];
  426. extern const OSSL_DISPATCH ossl_ed448_to_text_encoder_functions[];
  427. extern const OSSL_DISPATCH ossl_x25519_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  428. extern const OSSL_DISPATCH ossl_x25519_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  429. extern const OSSL_DISPATCH ossl_x25519_to_PrivateKeyInfo_der_encoder_functions[];
  430. extern const OSSL_DISPATCH ossl_x25519_to_PrivateKeyInfo_pem_encoder_functions[];
  431. extern const OSSL_DISPATCH ossl_x25519_to_SubjectPublicKeyInfo_der_encoder_functions[];
  432. extern const OSSL_DISPATCH ossl_x25519_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  433. extern const OSSL_DISPATCH ossl_x25519_to_OSSL_current_der_encoder_functions[];
  434. extern const OSSL_DISPATCH ossl_x25519_to_text_encoder_functions[];
  435. extern const OSSL_DISPATCH ossl_x448_to_EncryptedPrivateKeyInfo_der_encoder_functions[];
  436. extern const OSSL_DISPATCH ossl_x448_to_EncryptedPrivateKeyInfo_pem_encoder_functions[];
  437. extern const OSSL_DISPATCH ossl_x448_to_PrivateKeyInfo_der_encoder_functions[];
  438. extern const OSSL_DISPATCH ossl_x448_to_PrivateKeyInfo_pem_encoder_functions[];
  439. extern const OSSL_DISPATCH ossl_x448_to_SubjectPublicKeyInfo_der_encoder_functions[];
  440. extern const OSSL_DISPATCH ossl_x448_to_SubjectPublicKeyInfo_pem_encoder_functions[];
  441. extern const OSSL_DISPATCH ossl_x448_to_OSSL_current_der_encoder_functions[];
  442. extern const OSSL_DISPATCH ossl_x448_to_text_encoder_functions[];
  443. /* Decoders */
  444. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_dh_decoder_functions[];
  445. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_dh_decoder_functions[];
  446. extern const OSSL_DISPATCH ossl_type_specific_params_der_to_dh_decoder_functions[];
  447. extern const OSSL_DISPATCH ossl_DH_der_to_dh_decoder_functions[];
  448. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_dhx_decoder_functions[];
  449. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_dhx_decoder_functions[];
  450. extern const OSSL_DISPATCH ossl_type_specific_params_der_to_dhx_decoder_functions[];
  451. extern const OSSL_DISPATCH ossl_DHX_der_to_dhx_decoder_functions[];
  452. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_dsa_decoder_functions[];
  453. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_dsa_decoder_functions[];
  454. extern const OSSL_DISPATCH ossl_type_specific_der_to_dsa_decoder_functions[];
  455. extern const OSSL_DISPATCH ossl_DSA_der_to_dsa_decoder_functions[];
  456. extern const OSSL_DISPATCH ossl_msblob_to_dsa_decoder_functions[];
  457. extern const OSSL_DISPATCH ossl_pvk_to_dsa_decoder_functions[];
  458. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_ec_decoder_functions[];
  459. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_ec_decoder_functions[];
  460. extern const OSSL_DISPATCH ossl_type_specific_no_pub_der_to_ec_decoder_functions[];
  461. extern const OSSL_DISPATCH ossl_EC_der_to_ec_decoder_functions[];
  462. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_x25519_decoder_functions[];
  463. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_x25519_decoder_functions[];
  464. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_x448_decoder_functions[];
  465. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_x448_decoder_functions[];
  466. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_ed25519_decoder_functions[];
  467. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_ed25519_decoder_functions[];
  468. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_ed448_decoder_functions[];
  469. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_ed448_decoder_functions[];
  470. #ifndef OPENSSL_NO_SM2
  471. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_sm2_decoder_functions[];
  472. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_sm2_decoder_functions[];
  473. extern const OSSL_DISPATCH ossl_type_specific_no_pub_der_to_sm2_decoder_functions[];
  474. #endif
  475. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_rsa_decoder_functions[];
  476. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_rsa_decoder_functions[];
  477. extern const OSSL_DISPATCH ossl_type_specific_keypair_der_to_rsa_decoder_functions[];
  478. extern const OSSL_DISPATCH ossl_RSA_der_to_rsa_decoder_functions[];
  479. extern const OSSL_DISPATCH ossl_msblob_to_rsa_decoder_functions[];
  480. extern const OSSL_DISPATCH ossl_pvk_to_rsa_decoder_functions[];
  481. extern const OSSL_DISPATCH ossl_PrivateKeyInfo_der_to_rsapss_decoder_functions[];
  482. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_rsapss_decoder_functions[];
  483. extern const OSSL_DISPATCH ossl_EncryptedPrivateKeyInfo_der_to_der_decoder_functions[];
  484. extern const OSSL_DISPATCH ossl_SubjectPublicKeyInfo_der_to_der_decoder_functions[];
  485. extern const OSSL_DISPATCH ossl_pem_to_der_decoder_functions[];
  486. extern const OSSL_DISPATCH ossl_file_store_functions[];
  487. extern const OSSL_DISPATCH ossl_winstore_store_functions[];