hane 1.0.0

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 (488) hide show
  1. package/README.md +32 -0
  2. package/binding.gyp +87 -0
  3. package/dist/index.d.ts +34 -0
  4. package/dist/index.js +1 -0
  5. package/package.json +33 -0
  6. package/src/native/addon.cc +231 -0
  7. package/src/native/zsign_driver.cc +87 -0
  8. package/src/native/zsign_driver.h +38 -0
  9. package/vendor/zlib/.cmake-format.yaml +245 -0
  10. package/vendor/zlib/.github/workflows/c-std.yml +230 -0
  11. package/vendor/zlib/.github/workflows/cmake.yml +112 -0
  12. package/vendor/zlib/.github/workflows/configure.yml +136 -0
  13. package/vendor/zlib/.github/workflows/fuzz.yml +25 -0
  14. package/vendor/zlib/.github/workflows/msys-cygwin.yml +77 -0
  15. package/vendor/zlib/BUILD.bazel +134 -0
  16. package/vendor/zlib/CMakeLists.txt +330 -0
  17. package/vendor/zlib/ChangeLog +1621 -0
  18. package/vendor/zlib/FAQ +367 -0
  19. package/vendor/zlib/INDEX +68 -0
  20. package/vendor/zlib/LICENSE +22 -0
  21. package/vendor/zlib/MODULE.bazel +9 -0
  22. package/vendor/zlib/Makefile.in +419 -0
  23. package/vendor/zlib/README +115 -0
  24. package/vendor/zlib/README-cmake.md +83 -0
  25. package/vendor/zlib/adler32.c +164 -0
  26. package/vendor/zlib/amiga/Makefile.pup +69 -0
  27. package/vendor/zlib/amiga/Makefile.sas +68 -0
  28. package/vendor/zlib/compress.c +75 -0
  29. package/vendor/zlib/configure +966 -0
  30. package/vendor/zlib/contrib/README.contrib +57 -0
  31. package/vendor/zlib/contrib/ada/buffer_demo.adb +106 -0
  32. package/vendor/zlib/contrib/ada/mtest.adb +156 -0
  33. package/vendor/zlib/contrib/ada/read.adb +156 -0
  34. package/vendor/zlib/contrib/ada/readme.txt +65 -0
  35. package/vendor/zlib/contrib/ada/test.adb +463 -0
  36. package/vendor/zlib/contrib/ada/zlib-streams.adb +225 -0
  37. package/vendor/zlib/contrib/ada/zlib-streams.ads +114 -0
  38. package/vendor/zlib/contrib/ada/zlib-thin.adb +142 -0
  39. package/vendor/zlib/contrib/ada/zlib-thin.ads +450 -0
  40. package/vendor/zlib/contrib/ada/zlib.adb +701 -0
  41. package/vendor/zlib/contrib/ada/zlib.ads +328 -0
  42. package/vendor/zlib/contrib/ada/zlib.gpr +20 -0
  43. package/vendor/zlib/contrib/blast/Makefile +8 -0
  44. package/vendor/zlib/contrib/blast/README +4 -0
  45. package/vendor/zlib/contrib/blast/blast.c +466 -0
  46. package/vendor/zlib/contrib/blast/blast.h +83 -0
  47. package/vendor/zlib/contrib/blast/test.pk +0 -0
  48. package/vendor/zlib/contrib/blast/test.txt +1 -0
  49. package/vendor/zlib/contrib/delphi/ZLib.pas +557 -0
  50. package/vendor/zlib/contrib/delphi/ZLibConst.pas +11 -0
  51. package/vendor/zlib/contrib/delphi/readme.txt +76 -0
  52. package/vendor/zlib/contrib/delphi/zlibd32.mak +99 -0
  53. package/vendor/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
  54. package/vendor/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
  55. package/vendor/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
  56. package/vendor/zlib/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
  57. package/vendor/zlib/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
  58. package/vendor/zlib/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
  59. package/vendor/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
  60. package/vendor/zlib/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
  61. package/vendor/zlib/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
  62. package/vendor/zlib/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
  63. package/vendor/zlib/contrib/dotzlib/DotZLib.build +33 -0
  64. package/vendor/zlib/contrib/dotzlib/DotZLib.chm +0 -0
  65. package/vendor/zlib/contrib/dotzlib/DotZLib.sln +21 -0
  66. package/vendor/zlib/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  67. package/vendor/zlib/contrib/dotzlib/readme.txt +58 -0
  68. package/vendor/zlib/contrib/gcc_gvmat64/gvmat64.S +574 -0
  69. package/vendor/zlib/contrib/infback9/README +1 -0
  70. package/vendor/zlib/contrib/infback9/infback9.c +603 -0
  71. package/vendor/zlib/contrib/infback9/infback9.h +37 -0
  72. package/vendor/zlib/contrib/infback9/inffix9.h +107 -0
  73. package/vendor/zlib/contrib/infback9/inflate9.h +47 -0
  74. package/vendor/zlib/contrib/infback9/inftree9.c +319 -0
  75. package/vendor/zlib/contrib/infback9/inftree9.h +61 -0
  76. package/vendor/zlib/contrib/iostream/test.cpp +24 -0
  77. package/vendor/zlib/contrib/iostream/zfstream.cpp +329 -0
  78. package/vendor/zlib/contrib/iostream/zfstream.h +128 -0
  79. package/vendor/zlib/contrib/iostream2/zstream.h +307 -0
  80. package/vendor/zlib/contrib/iostream2/zstream_test.cpp +25 -0
  81. package/vendor/zlib/contrib/iostream3/README +35 -0
  82. package/vendor/zlib/contrib/iostream3/TODO +17 -0
  83. package/vendor/zlib/contrib/iostream3/test.cc +50 -0
  84. package/vendor/zlib/contrib/iostream3/zfstream.cc +479 -0
  85. package/vendor/zlib/contrib/iostream3/zfstream.h +466 -0
  86. package/vendor/zlib/contrib/minizip/CMakeLists.txt +380 -0
  87. package/vendor/zlib/contrib/minizip/Makefile +37 -0
  88. package/vendor/zlib/contrib/minizip/Makefile.am +45 -0
  89. package/vendor/zlib/contrib/minizip/MiniZip64_Changes.txt +6 -0
  90. package/vendor/zlib/contrib/minizip/MiniZip64_info.txt +74 -0
  91. package/vendor/zlib/contrib/minizip/configure.ac +32 -0
  92. package/vendor/zlib/contrib/minizip/crypt.h +128 -0
  93. package/vendor/zlib/contrib/minizip/ints.h +57 -0
  94. package/vendor/zlib/contrib/minizip/ioapi.c +231 -0
  95. package/vendor/zlib/contrib/minizip/ioapi.h +183 -0
  96. package/vendor/zlib/contrib/minizip/iowin32.c +448 -0
  97. package/vendor/zlib/contrib/minizip/iowin32.h +28 -0
  98. package/vendor/zlib/contrib/minizip/make_vms.com +25 -0
  99. package/vendor/zlib/contrib/minizip/miniunz.c +647 -0
  100. package/vendor/zlib/contrib/minizip/miniunzip.1 +63 -0
  101. package/vendor/zlib/contrib/minizip/minizip.1 +46 -0
  102. package/vendor/zlib/contrib/minizip/minizip.c +512 -0
  103. package/vendor/zlib/contrib/minizip/minizip.pc.in +12 -0
  104. package/vendor/zlib/contrib/minizip/minizip.pc.txt +13 -0
  105. package/vendor/zlib/contrib/minizip/minizipConfig.cmake.in +35 -0
  106. package/vendor/zlib/contrib/minizip/mztools.c +288 -0
  107. package/vendor/zlib/contrib/minizip/mztools.h +37 -0
  108. package/vendor/zlib/contrib/minizip/skipset.h +361 -0
  109. package/vendor/zlib/contrib/minizip/test/CMakeLists.txt +121 -0
  110. package/vendor/zlib/contrib/minizip/test/add_subdirectory_exclude_test.cmake.in +29 -0
  111. package/vendor/zlib/contrib/minizip/test/add_subdirectory_test.cmake.in +28 -0
  112. package/vendor/zlib/contrib/minizip/test/find_package_test.cmake.in +25 -0
  113. package/vendor/zlib/contrib/minizip/test/test_helper.cm +32 -0
  114. package/vendor/zlib/contrib/minizip/unzip.c +1981 -0
  115. package/vendor/zlib/contrib/minizip/unzip.h +441 -0
  116. package/vendor/zlib/contrib/minizip/zip.c +2199 -0
  117. package/vendor/zlib/contrib/minizip/zip.h +370 -0
  118. package/vendor/zlib/contrib/nuget/nuget.csproj +43 -0
  119. package/vendor/zlib/contrib/nuget/nuget.sln +22 -0
  120. package/vendor/zlib/contrib/pascal/example.pas +599 -0
  121. package/vendor/zlib/contrib/pascal/readme.txt +76 -0
  122. package/vendor/zlib/contrib/pascal/zlibd32.mak +99 -0
  123. package/vendor/zlib/contrib/pascal/zlibpas.pas +276 -0
  124. package/vendor/zlib/contrib/puff/Makefile +42 -0
  125. package/vendor/zlib/contrib/puff/README +63 -0
  126. package/vendor/zlib/contrib/puff/puff.c +840 -0
  127. package/vendor/zlib/contrib/puff/puff.h +35 -0
  128. package/vendor/zlib/contrib/puff/pufftest.c +169 -0
  129. package/vendor/zlib/contrib/puff/zeros.raw +0 -0
  130. package/vendor/zlib/contrib/testzlib/testzlib.c +275 -0
  131. package/vendor/zlib/contrib/testzlib/testzlib.txt +10 -0
  132. package/vendor/zlib/contrib/untgz/Makefile +14 -0
  133. package/vendor/zlib/contrib/untgz/Makefile.msc +17 -0
  134. package/vendor/zlib/contrib/untgz/untgz.c +667 -0
  135. package/vendor/zlib/contrib/vstudio/readme.txt +81 -0
  136. package/vendor/zlib/contrib/vstudio/vc10/miniunz.vcxproj +310 -0
  137. package/vendor/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters +22 -0
  138. package/vendor/zlib/contrib/vstudio/vc10/minizip.vcxproj +307 -0
  139. package/vendor/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters +22 -0
  140. package/vendor/zlib/contrib/vstudio/vc10/testzlib.vcxproj +412 -0
  141. package/vendor/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters +55 -0
  142. package/vendor/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj +310 -0
  143. package/vendor/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters +22 -0
  144. package/vendor/zlib/contrib/vstudio/vc10/zlib.rc +32 -0
  145. package/vendor/zlib/contrib/vstudio/vc10/zlibstat.vcxproj +449 -0
  146. package/vendor/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters +74 -0
  147. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.def +161 -0
  148. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.sln +135 -0
  149. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.vcxproj +633 -0
  150. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters +115 -0
  151. package/vendor/zlib/contrib/vstudio/vc11/miniunz.vcxproj +314 -0
  152. package/vendor/zlib/contrib/vstudio/vc11/minizip.vcxproj +311 -0
  153. package/vendor/zlib/contrib/vstudio/vc11/testzlib.vcxproj +418 -0
  154. package/vendor/zlib/contrib/vstudio/vc11/testzlibdll.vcxproj +314 -0
  155. package/vendor/zlib/contrib/vstudio/vc11/zlib.rc +32 -0
  156. package/vendor/zlib/contrib/vstudio/vc11/zlibstat.vcxproj +456 -0
  157. package/vendor/zlib/contrib/vstudio/vc11/zlibvc.def +161 -0
  158. package/vendor/zlib/contrib/vstudio/vc11/zlibvc.sln +117 -0
  159. package/vendor/zlib/contrib/vstudio/vc11/zlibvc.vcxproj +664 -0
  160. package/vendor/zlib/contrib/vstudio/vc12/miniunz.vcxproj +316 -0
  161. package/vendor/zlib/contrib/vstudio/vc12/minizip.vcxproj +313 -0
  162. package/vendor/zlib/contrib/vstudio/vc12/testzlib.vcxproj +422 -0
  163. package/vendor/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj +316 -0
  164. package/vendor/zlib/contrib/vstudio/vc12/zlib.rc +32 -0
  165. package/vendor/zlib/contrib/vstudio/vc12/zlibstat.vcxproj +459 -0
  166. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.def +161 -0
  167. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.sln +119 -0
  168. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.vcxproj +668 -0
  169. package/vendor/zlib/contrib/vstudio/vc14/miniunz.vcxproj +316 -0
  170. package/vendor/zlib/contrib/vstudio/vc14/minizip.vcxproj +313 -0
  171. package/vendor/zlib/contrib/vstudio/vc14/testzlib.vcxproj +422 -0
  172. package/vendor/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj +316 -0
  173. package/vendor/zlib/contrib/vstudio/vc14/zlib.rc +32 -0
  174. package/vendor/zlib/contrib/vstudio/vc14/zlibstat.vcxproj +459 -0
  175. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.def +161 -0
  176. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.sln +119 -0
  177. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.vcxproj +668 -0
  178. package/vendor/zlib/contrib/vstudio/vc17/miniunz.vcxproj +409 -0
  179. package/vendor/zlib/contrib/vstudio/vc17/minizip.vcxproj +405 -0
  180. package/vendor/zlib/contrib/vstudio/vc17/testzlib.vcxproj +473 -0
  181. package/vendor/zlib/contrib/vstudio/vc17/testzlibdll.vcxproj +409 -0
  182. package/vendor/zlib/contrib/vstudio/vc17/zlib.rc +32 -0
  183. package/vendor/zlib/contrib/vstudio/vc17/zlibstat.vcxproj +602 -0
  184. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.def +161 -0
  185. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.sln +179 -0
  186. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.vcxproj +875 -0
  187. package/vendor/zlib/contrib/vstudio/vc9/miniunz.vcproj +565 -0
  188. package/vendor/zlib/contrib/vstudio/vc9/minizip.vcproj +562 -0
  189. package/vendor/zlib/contrib/vstudio/vc9/testzlib.vcproj +796 -0
  190. package/vendor/zlib/contrib/vstudio/vc9/testzlibdll.vcproj +565 -0
  191. package/vendor/zlib/contrib/vstudio/vc9/zlib.rc +32 -0
  192. package/vendor/zlib/contrib/vstudio/vc9/zlibstat.vcproj +781 -0
  193. package/vendor/zlib/contrib/vstudio/vc9/zlibvc.def +161 -0
  194. package/vendor/zlib/contrib/vstudio/vc9/zlibvc.sln +144 -0
  195. package/vendor/zlib/contrib/vstudio/vc9/zlibvc.vcproj +1100 -0
  196. package/vendor/zlib/crc32.c +1049 -0
  197. package/vendor/zlib/crc32.h +9446 -0
  198. package/vendor/zlib/deflate.c +2152 -0
  199. package/vendor/zlib/deflate.h +380 -0
  200. package/vendor/zlib/doc/algorithm.txt +209 -0
  201. package/vendor/zlib/doc/crc-doc.1.0.pdf +0 -0
  202. package/vendor/zlib/doc/rfc1950.txt +619 -0
  203. package/vendor/zlib/doc/rfc1951.txt +955 -0
  204. package/vendor/zlib/doc/rfc1952.txt +675 -0
  205. package/vendor/zlib/doc/txtvsbin.txt +107 -0
  206. package/vendor/zlib/examples/README.examples +54 -0
  207. package/vendor/zlib/examples/enough.c +597 -0
  208. package/vendor/zlib/examples/fitblk.c +233 -0
  209. package/vendor/zlib/examples/gun.c +702 -0
  210. package/vendor/zlib/examples/gzappend.c +504 -0
  211. package/vendor/zlib/examples/gzjoin.c +449 -0
  212. package/vendor/zlib/examples/gzlog.c +1061 -0
  213. package/vendor/zlib/examples/gzlog.h +91 -0
  214. package/vendor/zlib/examples/gznorm.c +474 -0
  215. package/vendor/zlib/examples/zlib_how.html +549 -0
  216. package/vendor/zlib/examples/zpipe.c +209 -0
  217. package/vendor/zlib/examples/zran.c +550 -0
  218. package/vendor/zlib/examples/zran.h +53 -0
  219. package/vendor/zlib/gzclose.c +23 -0
  220. package/vendor/zlib/gzguts.h +215 -0
  221. package/vendor/zlib/gzlib.c +585 -0
  222. package/vendor/zlib/gzread.c +603 -0
  223. package/vendor/zlib/gzwrite.c +631 -0
  224. package/vendor/zlib/infback.c +628 -0
  225. package/vendor/zlib/inffast.c +320 -0
  226. package/vendor/zlib/inffast.h +11 -0
  227. package/vendor/zlib/inffixed.h +94 -0
  228. package/vendor/zlib/inflate.c +1526 -0
  229. package/vendor/zlib/inflate.h +126 -0
  230. package/vendor/zlib/inftrees.c +299 -0
  231. package/vendor/zlib/inftrees.h +62 -0
  232. package/vendor/zlib/make_vms.com +867 -0
  233. package/vendor/zlib/msdos/Makefile.bor +115 -0
  234. package/vendor/zlib/msdos/Makefile.dj2 +104 -0
  235. package/vendor/zlib/msdos/Makefile.emx +69 -0
  236. package/vendor/zlib/msdos/Makefile.msc +112 -0
  237. package/vendor/zlib/msdos/Makefile.tc +100 -0
  238. package/vendor/zlib/nintendods/Makefile +126 -0
  239. package/vendor/zlib/nintendods/README +5 -0
  240. package/vendor/zlib/old/Makefile.emx +69 -0
  241. package/vendor/zlib/old/Makefile.riscos +151 -0
  242. package/vendor/zlib/old/README +3 -0
  243. package/vendor/zlib/old/descrip.mms +48 -0
  244. package/vendor/zlib/old/os2/Makefile.os2 +136 -0
  245. package/vendor/zlib/old/os2/zlib.def +51 -0
  246. package/vendor/zlib/old/visual-basic.txt +160 -0
  247. package/vendor/zlib/os400/README400 +48 -0
  248. package/vendor/zlib/os400/bndsrc +133 -0
  249. package/vendor/zlib/os400/make.sh +366 -0
  250. package/vendor/zlib/os400/zlib.inc +531 -0
  251. package/vendor/zlib/qnx/package.qpg +141 -0
  252. package/vendor/zlib/test/CMakeLists.txt +265 -0
  253. package/vendor/zlib/test/add_subdirectory_exclude_test.cmake.in +29 -0
  254. package/vendor/zlib/test/add_subdirectory_test.cmake.in +28 -0
  255. package/vendor/zlib/test/example.c +552 -0
  256. package/vendor/zlib/test/find_package_test.cmake.in +26 -0
  257. package/vendor/zlib/test/infcover.c +672 -0
  258. package/vendor/zlib/test/minigzip.c +590 -0
  259. package/vendor/zlib/treebuild.xml +116 -0
  260. package/vendor/zlib/trees.c +1119 -0
  261. package/vendor/zlib/trees.h +128 -0
  262. package/vendor/zlib/uncompr.c +85 -0
  263. package/vendor/zlib/watcom/watcom_f.mak +43 -0
  264. package/vendor/zlib/watcom/watcom_l.mak +43 -0
  265. package/vendor/zlib/win32/DLL_FAQ.txt +381 -0
  266. package/vendor/zlib/win32/Makefile.bor +109 -0
  267. package/vendor/zlib/win32/Makefile.gcc +177 -0
  268. package/vendor/zlib/win32/Makefile.msc +159 -0
  269. package/vendor/zlib/win32/README-WIN32.txt +103 -0
  270. package/vendor/zlib/win32/VisualC.txt +3 -0
  271. package/vendor/zlib/win32/zlib.def +98 -0
  272. package/vendor/zlib/win32/zlib1.rc +37 -0
  273. package/vendor/zlib/zconf.h.in +544 -0
  274. package/vendor/zlib/zlib.3 +149 -0
  275. package/vendor/zlib/zlib.3.pdf +0 -0
  276. package/vendor/zlib/zlib.h +1957 -0
  277. package/vendor/zlib/zlib.map +104 -0
  278. package/vendor/zlib/zlib.pc.cmakein +13 -0
  279. package/vendor/zlib/zlib.pc.in +13 -0
  280. package/vendor/zlib/zlibConfig.cmake.in +26 -0
  281. package/vendor/zlib/zutil.c +299 -0
  282. package/vendor/zlib/zutil.h +257 -0
  283. package/vendor/zsign/.gitattributes +4 -0
  284. package/vendor/zsign/LICENSE +21 -0
  285. package/vendor/zsign/README.md +142 -0
  286. package/vendor/zsign/build/linux/Makefile +43 -0
  287. package/vendor/zsign/build/macos/Makefile +43 -0
  288. package/vendor/zsign/build/windows/vs2022/include/minizip/crypt.h +128 -0
  289. package/vendor/zsign/build/windows/vs2022/include/minizip/ioapi.h +216 -0
  290. package/vendor/zsign/build/windows/vs2022/include/minizip/iowin32.h +28 -0
  291. package/vendor/zsign/build/windows/vs2022/include/minizip/mztools.h +37 -0
  292. package/vendor/zsign/build/windows/vs2022/include/minizip/unzip.h +437 -0
  293. package/vendor/zsign/build/windows/vs2022/include/minizip/zip.h +364 -0
  294. package/vendor/zsign/build/windows/vs2022/include/openssl/__DECC_INCLUDE_EPILOGUE.H +22 -0
  295. package/vendor/zsign/build/windows/vs2022/include/openssl/__DECC_INCLUDE_PROLOGUE.H +26 -0
  296. package/vendor/zsign/build/windows/vs2022/include/openssl/aes.h +111 -0
  297. package/vendor/zsign/build/windows/vs2022/include/openssl/applink.c +153 -0
  298. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1.h +1133 -0
  299. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1_mac.h +10 -0
  300. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1err.h +142 -0
  301. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1t.h +946 -0
  302. package/vendor/zsign/build/windows/vs2022/include/openssl/async.h +104 -0
  303. package/vendor/zsign/build/windows/vs2022/include/openssl/asyncerr.h +29 -0
  304. package/vendor/zsign/build/windows/vs2022/include/openssl/bio.h +1015 -0
  305. package/vendor/zsign/build/windows/vs2022/include/openssl/bioerr.h +72 -0
  306. package/vendor/zsign/build/windows/vs2022/include/openssl/blowfish.h +78 -0
  307. package/vendor/zsign/build/windows/vs2022/include/openssl/bn.h +590 -0
  308. package/vendor/zsign/build/windows/vs2022/include/openssl/bnerr.h +47 -0
  309. package/vendor/zsign/build/windows/vs2022/include/openssl/buffer.h +62 -0
  310. package/vendor/zsign/build/windows/vs2022/include/openssl/buffererr.h +25 -0
  311. package/vendor/zsign/build/windows/vs2022/include/openssl/camellia.h +117 -0
  312. package/vendor/zsign/build/windows/vs2022/include/openssl/cast.h +71 -0
  313. package/vendor/zsign/build/windows/vs2022/include/openssl/cmac.h +52 -0
  314. package/vendor/zsign/build/windows/vs2022/include/openssl/cmp.h +727 -0
  315. package/vendor/zsign/build/windows/vs2022/include/openssl/cmp_util.h +56 -0
  316. package/vendor/zsign/build/windows/vs2022/include/openssl/cmperr.h +131 -0
  317. package/vendor/zsign/build/windows/vs2022/include/openssl/cms.h +508 -0
  318. package/vendor/zsign/build/windows/vs2022/include/openssl/cmserr.h +125 -0
  319. package/vendor/zsign/build/windows/vs2022/include/openssl/comp.h +98 -0
  320. package/vendor/zsign/build/windows/vs2022/include/openssl/comperr.h +38 -0
  321. package/vendor/zsign/build/windows/vs2022/include/openssl/conf.h +214 -0
  322. package/vendor/zsign/build/windows/vs2022/include/openssl/conf_api.h +46 -0
  323. package/vendor/zsign/build/windows/vs2022/include/openssl/conferr.h +52 -0
  324. package/vendor/zsign/build/windows/vs2022/include/openssl/configuration.h +188 -0
  325. package/vendor/zsign/build/windows/vs2022/include/openssl/conftypes.h +44 -0
  326. package/vendor/zsign/build/windows/vs2022/include/openssl/core.h +236 -0
  327. package/vendor/zsign/build/windows/vs2022/include/openssl/core_dispatch.h +1022 -0
  328. package/vendor/zsign/build/windows/vs2022/include/openssl/core_names.h +545 -0
  329. package/vendor/zsign/build/windows/vs2022/include/openssl/core_object.h +41 -0
  330. package/vendor/zsign/build/windows/vs2022/include/openssl/crmf.h +260 -0
  331. package/vendor/zsign/build/windows/vs2022/include/openssl/crmferr.h +50 -0
  332. package/vendor/zsign/build/windows/vs2022/include/openssl/crypto.h +580 -0
  333. package/vendor/zsign/build/windows/vs2022/include/openssl/cryptoerr.h +56 -0
  334. package/vendor/zsign/build/windows/vs2022/include/openssl/cryptoerr_legacy.h +1466 -0
  335. package/vendor/zsign/build/windows/vs2022/include/openssl/ct.h +573 -0
  336. package/vendor/zsign/build/windows/vs2022/include/openssl/cterr.h +45 -0
  337. package/vendor/zsign/build/windows/vs2022/include/openssl/decoder.h +133 -0
  338. package/vendor/zsign/build/windows/vs2022/include/openssl/decodererr.h +28 -0
  339. package/vendor/zsign/build/windows/vs2022/include/openssl/des.h +211 -0
  340. package/vendor/zsign/build/windows/vs2022/include/openssl/dh.h +339 -0
  341. package/vendor/zsign/build/windows/vs2022/include/openssl/dherr.h +59 -0
  342. package/vendor/zsign/build/windows/vs2022/include/openssl/dsa.h +280 -0
  343. package/vendor/zsign/build/windows/vs2022/include/openssl/dsaerr.h +44 -0
  344. package/vendor/zsign/build/windows/vs2022/include/openssl/dtls1.h +57 -0
  345. package/vendor/zsign/build/windows/vs2022/include/openssl/e_os2.h +310 -0
  346. package/vendor/zsign/build/windows/vs2022/include/openssl/e_ostime.h +38 -0
  347. package/vendor/zsign/build/windows/vs2022/include/openssl/ebcdic.h +39 -0
  348. package/vendor/zsign/build/windows/vs2022/include/openssl/ec.h +1588 -0
  349. package/vendor/zsign/build/windows/vs2022/include/openssl/ecdh.h +10 -0
  350. package/vendor/zsign/build/windows/vs2022/include/openssl/ecdsa.h +10 -0
  351. package/vendor/zsign/build/windows/vs2022/include/openssl/ecerr.h +104 -0
  352. package/vendor/zsign/build/windows/vs2022/include/openssl/encoder.h +124 -0
  353. package/vendor/zsign/build/windows/vs2022/include/openssl/encodererr.h +28 -0
  354. package/vendor/zsign/build/windows/vs2022/include/openssl/engine.h +833 -0
  355. package/vendor/zsign/build/windows/vs2022/include/openssl/engineerr.h +63 -0
  356. package/vendor/zsign/build/windows/vs2022/include/openssl/err.h +512 -0
  357. package/vendor/zsign/build/windows/vs2022/include/openssl/ess.h +128 -0
  358. package/vendor/zsign/build/windows/vs2022/include/openssl/esserr.h +32 -0
  359. package/vendor/zsign/build/windows/vs2022/include/openssl/evp.h +2231 -0
  360. package/vendor/zsign/build/windows/vs2022/include/openssl/evperr.h +140 -0
  361. package/vendor/zsign/build/windows/vs2022/include/openssl/fips_names.h +50 -0
  362. package/vendor/zsign/build/windows/vs2022/include/openssl/fipskey.h +41 -0
  363. package/vendor/zsign/build/windows/vs2022/include/openssl/hmac.h +62 -0
  364. package/vendor/zsign/build/windows/vs2022/include/openssl/hpke.h +169 -0
  365. package/vendor/zsign/build/windows/vs2022/include/openssl/http.h +118 -0
  366. package/vendor/zsign/build/windows/vs2022/include/openssl/httperr.h +56 -0
  367. package/vendor/zsign/build/windows/vs2022/include/openssl/idea.h +82 -0
  368. package/vendor/zsign/build/windows/vs2022/include/openssl/indicator.h +31 -0
  369. package/vendor/zsign/build/windows/vs2022/include/openssl/kdf.h +138 -0
  370. package/vendor/zsign/build/windows/vs2022/include/openssl/kdferr.h +16 -0
  371. package/vendor/zsign/build/windows/vs2022/include/openssl/lhash.h +398 -0
  372. package/vendor/zsign/build/windows/vs2022/include/openssl/macros.h +338 -0
  373. package/vendor/zsign/build/windows/vs2022/include/openssl/md2.h +56 -0
  374. package/vendor/zsign/build/windows/vs2022/include/openssl/md4.h +63 -0
  375. package/vendor/zsign/build/windows/vs2022/include/openssl/md5.h +62 -0
  376. package/vendor/zsign/build/windows/vs2022/include/openssl/mdc2.h +55 -0
  377. package/vendor/zsign/build/windows/vs2022/include/openssl/modes.h +219 -0
  378. package/vendor/zsign/build/windows/vs2022/include/openssl/obj_mac.h +5820 -0
  379. package/vendor/zsign/build/windows/vs2022/include/openssl/objects.h +184 -0
  380. package/vendor/zsign/build/windows/vs2022/include/openssl/objectserr.h +28 -0
  381. package/vendor/zsign/build/windows/vs2022/include/openssl/ocsp.h +483 -0
  382. package/vendor/zsign/build/windows/vs2022/include/openssl/ocsperr.h +53 -0
  383. package/vendor/zsign/build/windows/vs2022/include/openssl/opensslconf.h +17 -0
  384. package/vendor/zsign/build/windows/vs2022/include/openssl/opensslv.h +114 -0
  385. package/vendor/zsign/build/windows/vs2022/include/openssl/ossl_typ.h +16 -0
  386. package/vendor/zsign/build/windows/vs2022/include/openssl/param_build.h +63 -0
  387. package/vendor/zsign/build/windows/vs2022/include/openssl/params.h +160 -0
  388. package/vendor/zsign/build/windows/vs2022/include/openssl/pem.h +543 -0
  389. package/vendor/zsign/build/windows/vs2022/include/openssl/pem2.h +19 -0
  390. package/vendor/zsign/build/windows/vs2022/include/openssl/pemerr.h +58 -0
  391. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs12.h +366 -0
  392. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs12err.h +46 -0
  393. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs7.h +430 -0
  394. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs7err.h +63 -0
  395. package/vendor/zsign/build/windows/vs2022/include/openssl/prov_ssl.h +38 -0
  396. package/vendor/zsign/build/windows/vs2022/include/openssl/proverr.h +162 -0
  397. package/vendor/zsign/build/windows/vs2022/include/openssl/provider.h +66 -0
  398. package/vendor/zsign/build/windows/vs2022/include/openssl/quic.h +70 -0
  399. package/vendor/zsign/build/windows/vs2022/include/openssl/rand.h +125 -0
  400. package/vendor/zsign/build/windows/vs2022/include/openssl/randerr.h +69 -0
  401. package/vendor/zsign/build/windows/vs2022/include/openssl/rc2.h +68 -0
  402. package/vendor/zsign/build/windows/vs2022/include/openssl/rc4.h +47 -0
  403. package/vendor/zsign/build/windows/vs2022/include/openssl/rc5.h +79 -0
  404. package/vendor/zsign/build/windows/vs2022/include/openssl/ripemd.h +59 -0
  405. package/vendor/zsign/build/windows/vs2022/include/openssl/rsa.h +615 -0
  406. package/vendor/zsign/build/windows/vs2022/include/openssl/rsaerr.h +107 -0
  407. package/vendor/zsign/build/windows/vs2022/include/openssl/safestack.h +297 -0
  408. package/vendor/zsign/build/windows/vs2022/include/openssl/seed.h +113 -0
  409. package/vendor/zsign/build/windows/vs2022/include/openssl/self_test.h +98 -0
  410. package/vendor/zsign/build/windows/vs2022/include/openssl/sha.h +139 -0
  411. package/vendor/zsign/build/windows/vs2022/include/openssl/srp.h +285 -0
  412. package/vendor/zsign/build/windows/vs2022/include/openssl/srtp.h +68 -0
  413. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl.h +2878 -0
  414. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl2.h +30 -0
  415. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl3.h +357 -0
  416. package/vendor/zsign/build/windows/vs2022/include/openssl/sslerr.h +379 -0
  417. package/vendor/zsign/build/windows/vs2022/include/openssl/sslerr_legacy.h +467 -0
  418. package/vendor/zsign/build/windows/vs2022/include/openssl/stack.h +90 -0
  419. package/vendor/zsign/build/windows/vs2022/include/openssl/store.h +377 -0
  420. package/vendor/zsign/build/windows/vs2022/include/openssl/storeerr.h +49 -0
  421. package/vendor/zsign/build/windows/vs2022/include/openssl/symhacks.h +39 -0
  422. package/vendor/zsign/build/windows/vs2022/include/openssl/thread.h +31 -0
  423. package/vendor/zsign/build/windows/vs2022/include/openssl/tls1.h +1220 -0
  424. package/vendor/zsign/build/windows/vs2022/include/openssl/trace.h +320 -0
  425. package/vendor/zsign/build/windows/vs2022/include/openssl/ts.h +522 -0
  426. package/vendor/zsign/build/windows/vs2022/include/openssl/tserr.h +67 -0
  427. package/vendor/zsign/build/windows/vs2022/include/openssl/txt_db.h +63 -0
  428. package/vendor/zsign/build/windows/vs2022/include/openssl/types.h +245 -0
  429. package/vendor/zsign/build/windows/vs2022/include/openssl/ui.h +407 -0
  430. package/vendor/zsign/build/windows/vs2022/include/openssl/uierr.h +38 -0
  431. package/vendor/zsign/build/windows/vs2022/include/openssl/whrlpool.h +62 -0
  432. package/vendor/zsign/build/windows/vs2022/include/openssl/x509.h +1304 -0
  433. package/vendor/zsign/build/windows/vs2022/include/openssl/x509_acert.h +263 -0
  434. package/vendor/zsign/build/windows/vs2022/include/openssl/x509_vfy.h +902 -0
  435. package/vendor/zsign/build/windows/vs2022/include/openssl/x509err.h +70 -0
  436. package/vendor/zsign/build/windows/vs2022/include/openssl/x509v3.h +1500 -0
  437. package/vendor/zsign/build/windows/vs2022/include/openssl/x509v3err.h +96 -0
  438. package/vendor/zsign/build/windows/vs2022/include/zlib/zconf.h +553 -0
  439. package/vendor/zsign/build/windows/vs2022/include/zlib/zlib.h +1938 -0
  440. package/vendor/zsign/build/windows/vs2022/lib/minizip/x64/mt/minizip.lib +0 -0
  441. package/vendor/zsign/build/windows/vs2022/lib/openssl/x64/mt/libcrypto.lib +0 -0
  442. package/vendor/zsign/build/windows/vs2022/lib/openssl/x64/mt/libssl.lib +0 -0
  443. package/vendor/zsign/build/windows/vs2022/lib/zlib/x64/mt/zlib.lib +0 -0
  444. package/vendor/zsign/build/windows/vs2022/zsign/src/common_win32.h +44 -0
  445. package/vendor/zsign/build/windows/vs2022/zsign/src/getopt.cpp +69 -0
  446. package/vendor/zsign/build/windows/vs2022/zsign/src/getopt.h +20 -0
  447. package/vendor/zsign/build/windows/vs2022/zsign/src/iconv.cpp +138 -0
  448. package/vendor/zsign/build/windows/vs2022/zsign/src/iconv.h +38 -0
  449. package/vendor/zsign/build/windows/vs2022/zsign/zsign.vcxproj +177 -0
  450. package/vendor/zsign/build/windows/vs2022/zsign/zsign.vcxproj.filters +120 -0
  451. package/vendor/zsign/build/windows/vs2022/zsign.sln +28 -0
  452. package/vendor/zsign/src/archo.cpp +742 -0
  453. package/vendor/zsign/src/archo.h +61 -0
  454. package/vendor/zsign/src/bundle.cpp +589 -0
  455. package/vendor/zsign/src/bundle.h +46 -0
  456. package/vendor/zsign/src/common/archive.cpp +246 -0
  457. package/vendor/zsign/src/common/archive.h +22 -0
  458. package/vendor/zsign/src/common/base64.cpp +166 -0
  459. package/vendor/zsign/src/common/base64.h +30 -0
  460. package/vendor/zsign/src/common/common.h +56 -0
  461. package/vendor/zsign/src/common/fs.cpp +573 -0
  462. package/vendor/zsign/src/common/fs.h +50 -0
  463. package/vendor/zsign/src/common/json.cpp +3380 -0
  464. package/vendor/zsign/src/common/json.h +530 -0
  465. package/vendor/zsign/src/common/log.cpp +145 -0
  466. package/vendor/zsign/src/common/log.h +37 -0
  467. package/vendor/zsign/src/common/mach-o.h +585 -0
  468. package/vendor/zsign/src/common/sha.cpp +133 -0
  469. package/vendor/zsign/src/common/sha.h +24 -0
  470. package/vendor/zsign/src/common/timer.cpp +28 -0
  471. package/vendor/zsign/src/common/timer.h +17 -0
  472. package/vendor/zsign/src/common/util.cpp +185 -0
  473. package/vendor/zsign/src/common/util.h +25 -0
  474. package/vendor/zsign/src/macho.cpp +273 -0
  475. package/vendor/zsign/src/macho.h +38 -0
  476. package/vendor/zsign/src/openssl.cpp +698 -0
  477. package/vendor/zsign/src/openssl.h +71 -0
  478. package/vendor/zsign/src/signing.cpp +745 -0
  479. package/vendor/zsign/src/signing.h +59 -0
  480. package/vendor/zsign/src/zsign.cpp +317 -0
  481. package/vendor/zsign/test/dylib/bin/demo1.dylib +0 -0
  482. package/vendor/zsign/test/dylib/bin/demo2.dylib +0 -0
  483. package/vendor/zsign/test/dylib/demo/Makefile +12 -0
  484. package/vendor/zsign/test/dylib/demo/control +9 -0
  485. package/vendor/zsign/test/dylib/demo/demo.m +21 -0
  486. package/vendor/zsign/test/linux/test.sh +19 -0
  487. package/vendor/zsign/test/macos/test.sh +19 -0
  488. package/vendor/zsign/test/windows/test.ps1 +17 -0
@@ -0,0 +1,2231 @@
1
+ /*
2
+ * Copyright 1995-2024 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
+
10
+ #ifndef OPENSSL_EVP_H
11
+ # define OPENSSL_EVP_H
12
+ # pragma once
13
+
14
+ # include <openssl/macros.h>
15
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
16
+ # define HEADER_ENVELOPE_H
17
+ # endif
18
+
19
+ # include <stdarg.h>
20
+
21
+ # ifndef OPENSSL_NO_STDIO
22
+ # include <stdio.h>
23
+ # endif
24
+
25
+ # include <openssl/opensslconf.h>
26
+ # include <openssl/types.h>
27
+ # include <openssl/core.h>
28
+ # include <openssl/core_dispatch.h>
29
+ # include <openssl/symhacks.h>
30
+ # include <openssl/bio.h>
31
+ # include <openssl/evperr.h>
32
+ # include <openssl/params.h>
33
+
34
+ # define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */
35
+ # define EVP_MAX_KEY_LENGTH 64
36
+ # define EVP_MAX_IV_LENGTH 16
37
+ # define EVP_MAX_BLOCK_LENGTH 32
38
+ # define EVP_MAX_AEAD_TAG_LENGTH 16
39
+
40
+ # define PKCS5_SALT_LEN 8
41
+ /* Default PKCS#5 iteration count */
42
+ # define PKCS5_DEFAULT_ITER 2048
43
+
44
+ # include <openssl/objects.h>
45
+
46
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
47
+ # define EVP_PK_RSA 0x0001
48
+ # define EVP_PK_DSA 0x0002
49
+ # define EVP_PK_DH 0x0004
50
+ # define EVP_PK_EC 0x0008
51
+ # define EVP_PKT_SIGN 0x0010
52
+ # define EVP_PKT_ENC 0x0020
53
+ # define EVP_PKT_EXCH 0x0040
54
+ # define EVP_PKS_RSA 0x0100
55
+ # define EVP_PKS_DSA 0x0200
56
+ # define EVP_PKS_EC 0x0400
57
+ # endif
58
+
59
+ # define EVP_PKEY_NONE NID_undef
60
+ # define EVP_PKEY_RSA NID_rsaEncryption
61
+ # define EVP_PKEY_RSA2 NID_rsa
62
+ # define EVP_PKEY_RSA_PSS NID_rsassaPss
63
+ # define EVP_PKEY_DSA NID_dsa
64
+ # define EVP_PKEY_DSA1 NID_dsa_2
65
+ # define EVP_PKEY_DSA2 NID_dsaWithSHA
66
+ # define EVP_PKEY_DSA3 NID_dsaWithSHA1
67
+ # define EVP_PKEY_DSA4 NID_dsaWithSHA1_2
68
+ # define EVP_PKEY_DH NID_dhKeyAgreement
69
+ # define EVP_PKEY_DHX NID_dhpublicnumber
70
+ # define EVP_PKEY_EC NID_X9_62_id_ecPublicKey
71
+ # define EVP_PKEY_SM2 NID_sm2
72
+ # define EVP_PKEY_HMAC NID_hmac
73
+ # define EVP_PKEY_CMAC NID_cmac
74
+ # define EVP_PKEY_SCRYPT NID_id_scrypt
75
+ # define EVP_PKEY_TLS1_PRF NID_tls1_prf
76
+ # define EVP_PKEY_HKDF NID_hkdf
77
+ # define EVP_PKEY_POLY1305 NID_poly1305
78
+ # define EVP_PKEY_SIPHASH NID_siphash
79
+ # define EVP_PKEY_X25519 NID_X25519
80
+ # define EVP_PKEY_ED25519 NID_ED25519
81
+ # define EVP_PKEY_X448 NID_X448
82
+ # define EVP_PKEY_ED448 NID_ED448
83
+ /* Special indicator that the object is uniquely provider side */
84
+ # define EVP_PKEY_KEYMGMT -1
85
+
86
+ /* Easy to use macros for EVP_PKEY related selections */
87
+ # define EVP_PKEY_KEY_PARAMETERS \
88
+ ( OSSL_KEYMGMT_SELECT_ALL_PARAMETERS )
89
+ # define EVP_PKEY_PRIVATE_KEY \
90
+ ( EVP_PKEY_KEY_PARAMETERS | OSSL_KEYMGMT_SELECT_PRIVATE_KEY )
91
+ # define EVP_PKEY_PUBLIC_KEY \
92
+ ( EVP_PKEY_KEY_PARAMETERS | OSSL_KEYMGMT_SELECT_PUBLIC_KEY )
93
+ # define EVP_PKEY_KEYPAIR \
94
+ ( EVP_PKEY_PUBLIC_KEY | OSSL_KEYMGMT_SELECT_PRIVATE_KEY )
95
+
96
+ #ifdef __cplusplus
97
+ extern "C" {
98
+ #endif
99
+
100
+ int EVP_set_default_properties(OSSL_LIB_CTX *libctx, const char *propq);
101
+ int EVP_default_properties_is_fips_enabled(OSSL_LIB_CTX *libctx);
102
+ int EVP_default_properties_enable_fips(OSSL_LIB_CTX *libctx, int enable);
103
+
104
+ # define EVP_PKEY_MO_SIGN 0x0001
105
+ # define EVP_PKEY_MO_VERIFY 0x0002
106
+ # define EVP_PKEY_MO_ENCRYPT 0x0004
107
+ # define EVP_PKEY_MO_DECRYPT 0x0008
108
+
109
+ # ifndef EVP_MD
110
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
111
+ OSSL_DEPRECATEDIN_3_0 EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type);
112
+ OSSL_DEPRECATEDIN_3_0 EVP_MD *EVP_MD_meth_dup(const EVP_MD *md);
113
+ OSSL_DEPRECATEDIN_3_0 void EVP_MD_meth_free(EVP_MD *md);
114
+ OSSL_DEPRECATEDIN_3_0
115
+ int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize);
116
+ OSSL_DEPRECATEDIN_3_0
117
+ int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize);
118
+ OSSL_DEPRECATEDIN_3_0
119
+ int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize);
120
+ OSSL_DEPRECATEDIN_3_0
121
+ int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags);
122
+ OSSL_DEPRECATEDIN_3_0
123
+ int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx));
124
+ OSSL_DEPRECATEDIN_3_0
125
+ int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx,
126
+ const void *data,
127
+ size_t count));
128
+ OSSL_DEPRECATEDIN_3_0
129
+ int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx,
130
+ unsigned char *md));
131
+ OSSL_DEPRECATEDIN_3_0
132
+ int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to,
133
+ const EVP_MD_CTX *from));
134
+ OSSL_DEPRECATEDIN_3_0
135
+ int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx));
136
+ OSSL_DEPRECATEDIN_3_0
137
+ int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd,
138
+ int p1, void *p2));
139
+ OSSL_DEPRECATEDIN_3_0 int EVP_MD_meth_get_input_blocksize(const EVP_MD *md);
140
+ OSSL_DEPRECATEDIN_3_0 int EVP_MD_meth_get_result_size(const EVP_MD *md);
141
+ OSSL_DEPRECATEDIN_3_0 int EVP_MD_meth_get_app_datasize(const EVP_MD *md);
142
+ OSSL_DEPRECATEDIN_3_0 unsigned long EVP_MD_meth_get_flags(const EVP_MD *md);
143
+ OSSL_DEPRECATEDIN_3_0
144
+ int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx);
145
+ OSSL_DEPRECATEDIN_3_0
146
+ int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx,
147
+ const void *data, size_t count);
148
+ OSSL_DEPRECATEDIN_3_0
149
+ int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx,
150
+ unsigned char *md);
151
+ OSSL_DEPRECATEDIN_3_0
152
+ int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to,
153
+ const EVP_MD_CTX *from);
154
+ OSSL_DEPRECATEDIN_3_0
155
+ int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx);
156
+ OSSL_DEPRECATEDIN_3_0
157
+ int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd,
158
+ int p1, void *p2);
159
+ # endif
160
+ /* digest can only handle a single block */
161
+ # define EVP_MD_FLAG_ONESHOT 0x0001
162
+
163
+ /* digest is extensible-output function, XOF */
164
+ # define EVP_MD_FLAG_XOF 0x0002
165
+
166
+ /* DigestAlgorithmIdentifier flags... */
167
+
168
+ # define EVP_MD_FLAG_DIGALGID_MASK 0x0018
169
+
170
+ /* NULL or absent parameter accepted. Use NULL */
171
+
172
+ # define EVP_MD_FLAG_DIGALGID_NULL 0x0000
173
+
174
+ /* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */
175
+
176
+ # define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008
177
+
178
+ /* Custom handling via ctrl */
179
+
180
+ # define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018
181
+
182
+ /* Note if suitable for use in FIPS mode */
183
+ # define EVP_MD_FLAG_FIPS 0x0400
184
+
185
+ /* Digest ctrls */
186
+
187
+ # define EVP_MD_CTRL_DIGALGID 0x1
188
+ # define EVP_MD_CTRL_MICALG 0x2
189
+ # define EVP_MD_CTRL_XOF_LEN 0x3
190
+ # define EVP_MD_CTRL_TLSTREE 0x4
191
+
192
+ /* Minimum Algorithm specific ctrl value */
193
+
194
+ # define EVP_MD_CTRL_ALG_CTRL 0x1000
195
+
196
+ # endif /* !EVP_MD */
197
+
198
+ /* values for EVP_MD_CTX flags */
199
+
200
+ # define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be
201
+ * called once only */
202
+ # define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been
203
+ * cleaned */
204
+ # define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data
205
+ * in EVP_MD_CTX_reset */
206
+ /*
207
+ * FIPS and pad options are ignored in 1.0.0, definitions are here so we
208
+ * don't accidentally reuse the values for other purposes.
209
+ */
210
+
211
+ /* This flag has no effect from openssl-3.0 onwards */
212
+ # define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008
213
+
214
+ /*
215
+ * The following PAD options are also currently ignored in 1.0.0, digest
216
+ * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*()
217
+ * instead.
218
+ */
219
+ # define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */
220
+ # define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */
221
+ # define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */
222
+ # define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */
223
+
224
+ # define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */
225
+ /*
226
+ * Some functions such as EVP_DigestSign only finalise copies of internal
227
+ * contexts so additional data can be included after the finalisation call.
228
+ * This is inefficient if this functionality is not required: it is disabled
229
+ * if the following flag is set.
230
+ */
231
+ # define EVP_MD_CTX_FLAG_FINALISE 0x0200
232
+ /* NOTE: 0x0400 and 0x0800 are reserved for internal usage */
233
+
234
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
235
+ OSSL_DEPRECATEDIN_3_0
236
+ EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len);
237
+ OSSL_DEPRECATEDIN_3_0
238
+ EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher);
239
+ OSSL_DEPRECATEDIN_3_0
240
+ void EVP_CIPHER_meth_free(EVP_CIPHER *cipher);
241
+ OSSL_DEPRECATEDIN_3_0
242
+ int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len);
243
+ OSSL_DEPRECATEDIN_3_0
244
+ int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags);
245
+ OSSL_DEPRECATEDIN_3_0
246
+ int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size);
247
+ OSSL_DEPRECATEDIN_3_0
248
+ int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher,
249
+ int (*init) (EVP_CIPHER_CTX *ctx,
250
+ const unsigned char *key,
251
+ const unsigned char *iv,
252
+ int enc));
253
+ OSSL_DEPRECATEDIN_3_0
254
+ int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher,
255
+ int (*do_cipher) (EVP_CIPHER_CTX *ctx,
256
+ unsigned char *out,
257
+ const unsigned char *in,
258
+ size_t inl));
259
+ OSSL_DEPRECATEDIN_3_0
260
+ int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher,
261
+ int (*cleanup) (EVP_CIPHER_CTX *));
262
+ OSSL_DEPRECATEDIN_3_0
263
+ int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher,
264
+ int (*set_asn1_parameters) (EVP_CIPHER_CTX *,
265
+ ASN1_TYPE *));
266
+ OSSL_DEPRECATEDIN_3_0
267
+ int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher,
268
+ int (*get_asn1_parameters) (EVP_CIPHER_CTX *,
269
+ ASN1_TYPE *));
270
+ OSSL_DEPRECATEDIN_3_0
271
+ int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher,
272
+ int (*ctrl) (EVP_CIPHER_CTX *, int type,
273
+ int arg, void *ptr));
274
+ OSSL_DEPRECATEDIN_3_0 int
275
+ (*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx,
276
+ const unsigned char *key,
277
+ const unsigned char *iv,
278
+ int enc);
279
+ OSSL_DEPRECATEDIN_3_0 int
280
+ (*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx,
281
+ unsigned char *out,
282
+ const unsigned char *in,
283
+ size_t inl);
284
+ OSSL_DEPRECATEDIN_3_0 int
285
+ (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *);
286
+ OSSL_DEPRECATEDIN_3_0 int
287
+ (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *,
288
+ ASN1_TYPE *);
289
+ OSSL_DEPRECATEDIN_3_0 int
290
+ (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *,
291
+ ASN1_TYPE *);
292
+ OSSL_DEPRECATEDIN_3_0 int
293
+ (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, int type,
294
+ int arg, void *ptr);
295
+ # endif
296
+
297
+ /* Values for cipher flags */
298
+
299
+ /* Modes for ciphers */
300
+
301
+ # define EVP_CIPH_STREAM_CIPHER 0x0
302
+ # define EVP_CIPH_ECB_MODE 0x1
303
+ # define EVP_CIPH_CBC_MODE 0x2
304
+ # define EVP_CIPH_CFB_MODE 0x3
305
+ # define EVP_CIPH_OFB_MODE 0x4
306
+ # define EVP_CIPH_CTR_MODE 0x5
307
+ # define EVP_CIPH_GCM_MODE 0x6
308
+ # define EVP_CIPH_CCM_MODE 0x7
309
+ # define EVP_CIPH_XTS_MODE 0x10001
310
+ # define EVP_CIPH_WRAP_MODE 0x10002
311
+ # define EVP_CIPH_OCB_MODE 0x10003
312
+ # define EVP_CIPH_SIV_MODE 0x10004
313
+ # define EVP_CIPH_GCM_SIV_MODE 0x10005
314
+ # define EVP_CIPH_MODE 0xF0007
315
+ /* Set if variable length cipher */
316
+ # define EVP_CIPH_VARIABLE_LENGTH 0x8
317
+ /* Set if the iv handling should be done by the cipher itself */
318
+ # define EVP_CIPH_CUSTOM_IV 0x10
319
+ /* Set if the cipher's init() function should be called if key is NULL */
320
+ # define EVP_CIPH_ALWAYS_CALL_INIT 0x20
321
+ /* Call ctrl() to init cipher parameters */
322
+ # define EVP_CIPH_CTRL_INIT 0x40
323
+ /* Don't use standard key length function */
324
+ # define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80
325
+ /* Don't use standard block padding */
326
+ # define EVP_CIPH_NO_PADDING 0x100
327
+ /* cipher handles random key generation */
328
+ # define EVP_CIPH_RAND_KEY 0x200
329
+ /* cipher has its own additional copying logic */
330
+ # define EVP_CIPH_CUSTOM_COPY 0x400
331
+ /* Don't use standard iv length function */
332
+ # define EVP_CIPH_CUSTOM_IV_LENGTH 0x800
333
+ /* Legacy and no longer relevant: Allow use default ASN1 get/set iv */
334
+ # define EVP_CIPH_FLAG_DEFAULT_ASN1 0
335
+ /* Free: 0x1000 */
336
+ /* Buffer length in bits not bytes: CFB1 mode only */
337
+ # define EVP_CIPH_FLAG_LENGTH_BITS 0x2000
338
+ /* Deprecated FIPS flag: was 0x4000 */
339
+ # define EVP_CIPH_FLAG_FIPS 0
340
+ /* Deprecated FIPS flag: was 0x8000 */
341
+ # define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0
342
+
343
+ /*
344
+ * Cipher handles any and all padding logic as well as finalisation.
345
+ */
346
+ # define EVP_CIPH_FLAG_CTS 0x4000
347
+ # define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000
348
+ # define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000
349
+ # define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000
350
+ /* Cipher can handle pipeline operations */
351
+ # define EVP_CIPH_FLAG_PIPELINE 0X800000
352
+ /* For provider implementations that handle ASN1 get/set param themselves */
353
+ # define EVP_CIPH_FLAG_CUSTOM_ASN1 0x1000000
354
+ /* For ciphers generating unprotected CMS attributes */
355
+ # define EVP_CIPH_FLAG_CIPHER_WITH_MAC 0x2000000
356
+ /* For supplementary wrap cipher support */
357
+ # define EVP_CIPH_FLAG_GET_WRAP_CIPHER 0x4000000
358
+ # define EVP_CIPH_FLAG_INVERSE_CIPHER 0x8000000
359
+
360
+ /*
361
+ * Cipher context flag to indicate we can handle wrap mode: if allowed in
362
+ * older applications it could overflow buffers.
363
+ */
364
+
365
+ # define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1
366
+
367
+ /* ctrl() values */
368
+
369
+ # define EVP_CTRL_INIT 0x0
370
+ # define EVP_CTRL_SET_KEY_LENGTH 0x1
371
+ # define EVP_CTRL_GET_RC2_KEY_BITS 0x2
372
+ # define EVP_CTRL_SET_RC2_KEY_BITS 0x3
373
+ # define EVP_CTRL_GET_RC5_ROUNDS 0x4
374
+ # define EVP_CTRL_SET_RC5_ROUNDS 0x5
375
+ # define EVP_CTRL_RAND_KEY 0x6
376
+ # define EVP_CTRL_PBE_PRF_NID 0x7
377
+ # define EVP_CTRL_COPY 0x8
378
+ # define EVP_CTRL_AEAD_SET_IVLEN 0x9
379
+ # define EVP_CTRL_AEAD_GET_TAG 0x10
380
+ # define EVP_CTRL_AEAD_SET_TAG 0x11
381
+ # define EVP_CTRL_AEAD_SET_IV_FIXED 0x12
382
+ # define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN
383
+ # define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG
384
+ # define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG
385
+ # define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED
386
+ # define EVP_CTRL_GCM_IV_GEN 0x13
387
+ # define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN
388
+ # define EVP_CTRL_CCM_GET_TAG EVP_CTRL_AEAD_GET_TAG
389
+ # define EVP_CTRL_CCM_SET_TAG EVP_CTRL_AEAD_SET_TAG
390
+ # define EVP_CTRL_CCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED
391
+ # define EVP_CTRL_CCM_SET_L 0x14
392
+ # define EVP_CTRL_CCM_SET_MSGLEN 0x15
393
+ /*
394
+ * AEAD cipher deduces payload length and returns number of bytes required to
395
+ * store MAC and eventual padding. Subsequent call to EVP_Cipher even
396
+ * appends/verifies MAC.
397
+ */
398
+ # define EVP_CTRL_AEAD_TLS1_AAD 0x16
399
+ /* Used by composite AEAD ciphers, no-op in GCM, CCM... */
400
+ # define EVP_CTRL_AEAD_SET_MAC_KEY 0x17
401
+ /* Set the GCM invocation field, decrypt only */
402
+ # define EVP_CTRL_GCM_SET_IV_INV 0x18
403
+
404
+ # define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19
405
+ # define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a
406
+ # define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b
407
+ # define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c
408
+
409
+ # define EVP_CTRL_SSL3_MASTER_SECRET 0x1d
410
+
411
+ /* EVP_CTRL_SET_SBOX takes the char * specifying S-boxes */
412
+ # define EVP_CTRL_SET_SBOX 0x1e
413
+ /*
414
+ * EVP_CTRL_SBOX_USED takes a 'size_t' and 'char *', pointing at a
415
+ * pre-allocated buffer with specified size
416
+ */
417
+ # define EVP_CTRL_SBOX_USED 0x1f
418
+ /* EVP_CTRL_KEY_MESH takes 'size_t' number of bytes to mesh the key after,
419
+ * 0 switches meshing off
420
+ */
421
+ # define EVP_CTRL_KEY_MESH 0x20
422
+ /* EVP_CTRL_BLOCK_PADDING_MODE takes the padding mode */
423
+ # define EVP_CTRL_BLOCK_PADDING_MODE 0x21
424
+
425
+ /* Set the output buffers to use for a pipelined operation */
426
+ # define EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS 0x22
427
+ /* Set the input buffers to use for a pipelined operation */
428
+ # define EVP_CTRL_SET_PIPELINE_INPUT_BUFS 0x23
429
+ /* Set the input buffer lengths to use for a pipelined operation */
430
+ # define EVP_CTRL_SET_PIPELINE_INPUT_LENS 0x24
431
+ /* Get the IV length used by the cipher */
432
+ # define EVP_CTRL_GET_IVLEN 0x25
433
+ /* 0x26 is unused */
434
+ /* Tell the cipher it's doing a speed test (SIV disallows multiple ops) */
435
+ # define EVP_CTRL_SET_SPEED 0x27
436
+ /* Get the unprotectedAttrs from cipher ctx */
437
+ # define EVP_CTRL_PROCESS_UNPROTECTED 0x28
438
+ /* Get the supplementary wrap cipher */
439
+ #define EVP_CTRL_GET_WRAP_CIPHER 0x29
440
+ /* TLSTREE key diversification */
441
+ #define EVP_CTRL_TLSTREE 0x2A
442
+
443
+ /* Padding modes */
444
+ #define EVP_PADDING_PKCS7 1
445
+ #define EVP_PADDING_ISO7816_4 2
446
+ #define EVP_PADDING_ANSI923 3
447
+ #define EVP_PADDING_ISO10126 4
448
+ #define EVP_PADDING_ZERO 5
449
+
450
+ /* RFC 5246 defines additional data to be 13 bytes in length */
451
+ # define EVP_AEAD_TLS1_AAD_LEN 13
452
+
453
+ typedef struct {
454
+ unsigned char *out;
455
+ const unsigned char *inp;
456
+ size_t len;
457
+ unsigned int interleave;
458
+ } EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM;
459
+
460
+ /* GCM TLS constants */
461
+ /* Length of fixed part of IV derived from PRF */
462
+ # define EVP_GCM_TLS_FIXED_IV_LEN 4
463
+ /* Length of explicit part of IV part of TLS records */
464
+ # define EVP_GCM_TLS_EXPLICIT_IV_LEN 8
465
+ /* Length of tag for TLS */
466
+ # define EVP_GCM_TLS_TAG_LEN 16
467
+
468
+ /* CCM TLS constants */
469
+ /* Length of fixed part of IV derived from PRF */
470
+ # define EVP_CCM_TLS_FIXED_IV_LEN 4
471
+ /* Length of explicit part of IV part of TLS records */
472
+ # define EVP_CCM_TLS_EXPLICIT_IV_LEN 8
473
+ /* Total length of CCM IV length for TLS */
474
+ # define EVP_CCM_TLS_IV_LEN 12
475
+ /* Length of tag for TLS */
476
+ # define EVP_CCM_TLS_TAG_LEN 16
477
+ /* Length of CCM8 tag for TLS */
478
+ # define EVP_CCM8_TLS_TAG_LEN 8
479
+
480
+ /* Length of tag for TLS */
481
+ # define EVP_CHACHAPOLY_TLS_TAG_LEN 16
482
+
483
+ typedef struct evp_cipher_info_st {
484
+ const EVP_CIPHER *cipher;
485
+ unsigned char iv[EVP_MAX_IV_LENGTH];
486
+ } EVP_CIPHER_INFO;
487
+
488
+
489
+ /* Password based encryption function */
490
+ typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass,
491
+ int passlen, ASN1_TYPE *param,
492
+ const EVP_CIPHER *cipher, const EVP_MD *md,
493
+ int en_de);
494
+
495
+ typedef int (EVP_PBE_KEYGEN_EX) (EVP_CIPHER_CTX *ctx, const char *pass,
496
+ int passlen, ASN1_TYPE *param,
497
+ const EVP_CIPHER *cipher, const EVP_MD *md,
498
+ int en_de, OSSL_LIB_CTX *libctx, const char *propq);
499
+
500
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
501
+ # define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
502
+ (rsa))
503
+ # endif
504
+
505
+ # ifndef OPENSSL_NO_DSA
506
+ # define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
507
+ (dsa))
508
+ # endif
509
+
510
+ # if !defined(OPENSSL_NO_DH) && !defined(OPENSSL_NO_DEPRECATED_3_0)
511
+ # define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,(dh))
512
+ # endif
513
+
514
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
515
+ # ifndef OPENSSL_NO_EC
516
+ # define EVP_PKEY_assign_EC_KEY(pkey,eckey) \
517
+ EVP_PKEY_assign((pkey), EVP_PKEY_EC, (eckey))
518
+ # endif
519
+ # endif
520
+ # ifndef OPENSSL_NO_SIPHASH
521
+ # define EVP_PKEY_assign_SIPHASH(pkey,shkey) EVP_PKEY_assign((pkey),\
522
+ EVP_PKEY_SIPHASH,(shkey))
523
+ # endif
524
+
525
+ # ifndef OPENSSL_NO_POLY1305
526
+ # define EVP_PKEY_assign_POLY1305(pkey,polykey) EVP_PKEY_assign((pkey),\
527
+ EVP_PKEY_POLY1305,(polykey))
528
+ # endif
529
+
530
+ /* Add some extra combinations */
531
+ # define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a))
532
+ # define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a))
533
+ # define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a))
534
+ # define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a))
535
+
536
+ int EVP_MD_get_type(const EVP_MD *md);
537
+ # define EVP_MD_type EVP_MD_get_type
538
+ # define EVP_MD_nid EVP_MD_get_type
539
+ const char *EVP_MD_get0_name(const EVP_MD *md);
540
+ # define EVP_MD_name EVP_MD_get0_name
541
+ const char *EVP_MD_get0_description(const EVP_MD *md);
542
+ int EVP_MD_is_a(const EVP_MD *md, const char *name);
543
+ int EVP_MD_names_do_all(const EVP_MD *md,
544
+ void (*fn)(const char *name, void *data),
545
+ void *data);
546
+ const OSSL_PROVIDER *EVP_MD_get0_provider(const EVP_MD *md);
547
+ int EVP_MD_get_pkey_type(const EVP_MD *md);
548
+ # define EVP_MD_pkey_type EVP_MD_get_pkey_type
549
+ int EVP_MD_get_size(const EVP_MD *md);
550
+ # define EVP_MD_size EVP_MD_get_size
551
+ int EVP_MD_get_block_size(const EVP_MD *md);
552
+ # define EVP_MD_block_size EVP_MD_get_block_size
553
+ unsigned long EVP_MD_get_flags(const EVP_MD *md);
554
+ # define EVP_MD_flags EVP_MD_get_flags
555
+ int EVP_MD_xof(const EVP_MD *md);
556
+
557
+ const EVP_MD *EVP_MD_CTX_get0_md(const EVP_MD_CTX *ctx);
558
+ EVP_MD *EVP_MD_CTX_get1_md(EVP_MD_CTX *ctx);
559
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
560
+ OSSL_DEPRECATEDIN_3_0
561
+ const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx);
562
+ OSSL_DEPRECATEDIN_3_0
563
+ int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx,
564
+ const void *data, size_t count);
565
+ OSSL_DEPRECATEDIN_3_0
566
+ void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx,
567
+ int (*update) (EVP_MD_CTX *ctx,
568
+ const void *data, size_t count));
569
+ # endif
570
+ int EVP_MD_CTX_get_size_ex(const EVP_MD_CTX *ctx);
571
+
572
+ # define EVP_MD_CTX_get0_name(e) EVP_MD_get0_name(EVP_MD_CTX_get0_md(e))
573
+ # define EVP_MD_CTX_get_size(e) EVP_MD_CTX_get_size_ex(e)
574
+ # define EVP_MD_CTX_size EVP_MD_CTX_get_size_ex
575
+ # define EVP_MD_CTX_get_block_size(e) EVP_MD_get_block_size(EVP_MD_CTX_get0_md(e))
576
+ # define EVP_MD_CTX_block_size EVP_MD_CTX_get_block_size
577
+ # define EVP_MD_CTX_get_type(e) EVP_MD_get_type(EVP_MD_CTX_get0_md(e))
578
+ # define EVP_MD_CTX_type EVP_MD_CTX_get_type
579
+ EVP_PKEY_CTX *EVP_MD_CTX_get_pkey_ctx(const EVP_MD_CTX *ctx);
580
+ # define EVP_MD_CTX_pkey_ctx EVP_MD_CTX_get_pkey_ctx
581
+ void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx);
582
+ void *EVP_MD_CTX_get0_md_data(const EVP_MD_CTX *ctx);
583
+ # define EVP_MD_CTX_md_data EVP_MD_CTX_get0_md_data
584
+
585
+ int EVP_CIPHER_get_nid(const EVP_CIPHER *cipher);
586
+ # define EVP_CIPHER_nid EVP_CIPHER_get_nid
587
+ const char *EVP_CIPHER_get0_name(const EVP_CIPHER *cipher);
588
+ # define EVP_CIPHER_name EVP_CIPHER_get0_name
589
+ const char *EVP_CIPHER_get0_description(const EVP_CIPHER *cipher);
590
+ int EVP_CIPHER_is_a(const EVP_CIPHER *cipher, const char *name);
591
+ int EVP_CIPHER_names_do_all(const EVP_CIPHER *cipher,
592
+ void (*fn)(const char *name, void *data),
593
+ void *data);
594
+ const OSSL_PROVIDER *EVP_CIPHER_get0_provider(const EVP_CIPHER *cipher);
595
+ int EVP_CIPHER_get_block_size(const EVP_CIPHER *cipher);
596
+ # define EVP_CIPHER_block_size EVP_CIPHER_get_block_size
597
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
598
+ OSSL_DEPRECATEDIN_3_0
599
+ int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher);
600
+ # endif
601
+ int EVP_CIPHER_get_key_length(const EVP_CIPHER *cipher);
602
+ # define EVP_CIPHER_key_length EVP_CIPHER_get_key_length
603
+ int EVP_CIPHER_get_iv_length(const EVP_CIPHER *cipher);
604
+ # define EVP_CIPHER_iv_length EVP_CIPHER_get_iv_length
605
+ unsigned long EVP_CIPHER_get_flags(const EVP_CIPHER *cipher);
606
+ # define EVP_CIPHER_flags EVP_CIPHER_get_flags
607
+ int EVP_CIPHER_get_mode(const EVP_CIPHER *cipher);
608
+ # define EVP_CIPHER_mode EVP_CIPHER_get_mode
609
+ int EVP_CIPHER_get_type(const EVP_CIPHER *cipher);
610
+ # define EVP_CIPHER_type EVP_CIPHER_get_type
611
+ EVP_CIPHER *EVP_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
612
+ const char *properties);
613
+ int EVP_CIPHER_up_ref(EVP_CIPHER *cipher);
614
+ void EVP_CIPHER_free(EVP_CIPHER *cipher);
615
+
616
+ const EVP_CIPHER *EVP_CIPHER_CTX_get0_cipher(const EVP_CIPHER_CTX *ctx);
617
+ EVP_CIPHER *EVP_CIPHER_CTX_get1_cipher(EVP_CIPHER_CTX *ctx);
618
+ int EVP_CIPHER_CTX_is_encrypting(const EVP_CIPHER_CTX *ctx);
619
+ # define EVP_CIPHER_CTX_encrypting EVP_CIPHER_CTX_is_encrypting
620
+ int EVP_CIPHER_CTX_get_nid(const EVP_CIPHER_CTX *ctx);
621
+ # define EVP_CIPHER_CTX_nid EVP_CIPHER_CTX_get_nid
622
+ int EVP_CIPHER_CTX_get_block_size(const EVP_CIPHER_CTX *ctx);
623
+ # define EVP_CIPHER_CTX_block_size EVP_CIPHER_CTX_get_block_size
624
+ int EVP_CIPHER_CTX_get_key_length(const EVP_CIPHER_CTX *ctx);
625
+ # define EVP_CIPHER_CTX_key_length EVP_CIPHER_CTX_get_key_length
626
+ int EVP_CIPHER_CTX_get_iv_length(const EVP_CIPHER_CTX *ctx);
627
+ # define EVP_CIPHER_CTX_iv_length EVP_CIPHER_CTX_get_iv_length
628
+ int EVP_CIPHER_CTX_get_tag_length(const EVP_CIPHER_CTX *ctx);
629
+ # define EVP_CIPHER_CTX_tag_length EVP_CIPHER_CTX_get_tag_length
630
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
631
+ const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx);
632
+ OSSL_DEPRECATEDIN_3_0 const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx);
633
+ OSSL_DEPRECATEDIN_3_0 const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx);
634
+ OSSL_DEPRECATEDIN_3_0 unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx);
635
+ # endif
636
+ int EVP_CIPHER_CTX_get_updated_iv(EVP_CIPHER_CTX *ctx, void *buf, size_t len);
637
+ int EVP_CIPHER_CTX_get_original_iv(EVP_CIPHER_CTX *ctx, void *buf, size_t len);
638
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
639
+ OSSL_DEPRECATEDIN_3_0
640
+ unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx);
641
+ # endif
642
+ int EVP_CIPHER_CTX_get_num(const EVP_CIPHER_CTX *ctx);
643
+ # define EVP_CIPHER_CTX_num EVP_CIPHER_CTX_get_num
644
+ int EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num);
645
+ EVP_CIPHER_CTX *EVP_CIPHER_CTX_dup(const EVP_CIPHER_CTX *in);
646
+ int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in);
647
+ void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx);
648
+ void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data);
649
+ void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx);
650
+ void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data);
651
+ # define EVP_CIPHER_CTX_get0_name(c) EVP_CIPHER_get0_name(EVP_CIPHER_CTX_get0_cipher(c))
652
+ # define EVP_CIPHER_CTX_get_type(c) EVP_CIPHER_get_type(EVP_CIPHER_CTX_get0_cipher(c))
653
+ # define EVP_CIPHER_CTX_type EVP_CIPHER_CTX_get_type
654
+ # ifndef OPENSSL_NO_DEPRECATED_1_1_0
655
+ # define EVP_CIPHER_CTX_flags(c) EVP_CIPHER_get_flags(EVP_CIPHER_CTX_get0_cipher(c))
656
+ # endif
657
+ # define EVP_CIPHER_CTX_get_mode(c) EVP_CIPHER_get_mode(EVP_CIPHER_CTX_get0_cipher(c))
658
+ # define EVP_CIPHER_CTX_mode EVP_CIPHER_CTX_get_mode
659
+
660
+ # define EVP_ENCODE_LENGTH(l) ((((l)+2)/3*4)+((l)/48+1)*2+80)
661
+ # define EVP_DECODE_LENGTH(l) (((l)+3)/4*3+80)
662
+
663
+ # define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c)
664
+ # define EVP_SignInit(a,b) EVP_DigestInit(a,b)
665
+ # define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c)
666
+ # define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c)
667
+ # define EVP_VerifyInit(a,b) EVP_DigestInit(a,b)
668
+ # define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c)
669
+ # define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e)
670
+ # define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e)
671
+
672
+ # ifdef CONST_STRICT
673
+ void BIO_set_md(BIO *, const EVP_MD *md);
674
+ # else
675
+ # define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(void *)(md))
676
+ # endif
677
+ # define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(mdp))
678
+ # define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(mdcp))
679
+ # define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(mdcp))
680
+ # define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL)
681
+ # define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(c_pp))
682
+
683
+ __owur int EVP_Cipher(EVP_CIPHER_CTX *c,
684
+ unsigned char *out,
685
+ const unsigned char *in, unsigned int inl);
686
+
687
+ # define EVP_add_cipher_alias(n,alias) \
688
+ OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n))
689
+ # define EVP_add_digest_alias(n,alias) \
690
+ OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n))
691
+ # define EVP_delete_cipher_alias(alias) \
692
+ OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS);
693
+ # define EVP_delete_digest_alias(alias) \
694
+ OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS);
695
+
696
+ int EVP_MD_get_params(const EVP_MD *digest, OSSL_PARAM params[]);
697
+ int EVP_MD_CTX_set_params(EVP_MD_CTX *ctx, const OSSL_PARAM params[]);
698
+ int EVP_MD_CTX_get_params(EVP_MD_CTX *ctx, OSSL_PARAM params[]);
699
+ const OSSL_PARAM *EVP_MD_gettable_params(const EVP_MD *digest);
700
+ const OSSL_PARAM *EVP_MD_settable_ctx_params(const EVP_MD *md);
701
+ const OSSL_PARAM *EVP_MD_gettable_ctx_params(const EVP_MD *md);
702
+ const OSSL_PARAM *EVP_MD_CTX_settable_params(EVP_MD_CTX *ctx);
703
+ const OSSL_PARAM *EVP_MD_CTX_gettable_params(EVP_MD_CTX *ctx);
704
+ int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2);
705
+ EVP_MD_CTX *EVP_MD_CTX_new(void);
706
+ int EVP_MD_CTX_reset(EVP_MD_CTX *ctx);
707
+ void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
708
+ # define EVP_MD_CTX_create() EVP_MD_CTX_new()
709
+ # define EVP_MD_CTX_init(ctx) EVP_MD_CTX_reset((ctx))
710
+ # define EVP_MD_CTX_destroy(ctx) EVP_MD_CTX_free((ctx))
711
+ __owur EVP_MD_CTX *EVP_MD_CTX_dup(const EVP_MD_CTX *in);
712
+ __owur int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in);
713
+ void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags);
714
+ void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags);
715
+ int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags);
716
+ __owur int EVP_DigestInit_ex2(EVP_MD_CTX *ctx, const EVP_MD *type,
717
+ const OSSL_PARAM params[]);
718
+ __owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type,
719
+ ENGINE *impl);
720
+ __owur int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d,
721
+ size_t cnt);
722
+ __owur int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md,
723
+ unsigned int *s);
724
+ __owur int EVP_Digest(const void *data, size_t count,
725
+ unsigned char *md, unsigned int *size,
726
+ const EVP_MD *type, ENGINE *impl);
727
+ __owur int EVP_Q_digest(OSSL_LIB_CTX *libctx, const char *name,
728
+ const char *propq, const void *data, size_t datalen,
729
+ unsigned char *md, size_t *mdlen);
730
+
731
+ __owur int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in);
732
+ __owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
733
+ __owur int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md,
734
+ unsigned int *s);
735
+ __owur int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *out,
736
+ size_t outlen);
737
+ __owur int EVP_DigestSqueeze(EVP_MD_CTX *ctx, unsigned char *out,
738
+ size_t outlen);
739
+
740
+ __owur EVP_MD *EVP_MD_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
741
+ const char *properties);
742
+
743
+ int EVP_MD_up_ref(EVP_MD *md);
744
+ void EVP_MD_free(EVP_MD *md);
745
+
746
+ int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify);
747
+ int EVP_read_pw_string_min(char *buf, int minlen, int maxlen,
748
+ const char *prompt, int verify);
749
+ void EVP_set_pw_prompt(const char *prompt);
750
+ char *EVP_get_pw_prompt(void);
751
+
752
+ __owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
753
+ const unsigned char *salt,
754
+ const unsigned char *data, int datal, int count,
755
+ unsigned char *key, unsigned char *iv);
756
+
757
+ void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags);
758
+ void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags);
759
+ int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags);
760
+
761
+ __owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
762
+ const unsigned char *key, const unsigned char *iv);
763
+ __owur int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,
764
+ const EVP_CIPHER *cipher, ENGINE *impl,
765
+ const unsigned char *key,
766
+ const unsigned char *iv);
767
+ __owur int EVP_EncryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
768
+ const unsigned char *key,
769
+ const unsigned char *iv,
770
+ const OSSL_PARAM params[]);
771
+ __owur int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
772
+ int *outl, const unsigned char *in, int inl);
773
+ __owur int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out,
774
+ int *outl);
775
+ __owur int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out,
776
+ int *outl);
777
+
778
+ __owur int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
779
+ const unsigned char *key, const unsigned char *iv);
780
+ __owur int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,
781
+ const EVP_CIPHER *cipher, ENGINE *impl,
782
+ const unsigned char *key,
783
+ const unsigned char *iv);
784
+ __owur int EVP_DecryptInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
785
+ const unsigned char *key,
786
+ const unsigned char *iv,
787
+ const OSSL_PARAM params[]);
788
+ __owur int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
789
+ int *outl, const unsigned char *in, int inl);
790
+ __owur int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm,
791
+ int *outl);
792
+ __owur int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm,
793
+ int *outl);
794
+
795
+ __owur int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
796
+ const unsigned char *key, const unsigned char *iv,
797
+ int enc);
798
+ __owur int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,
799
+ const EVP_CIPHER *cipher, ENGINE *impl,
800
+ const unsigned char *key,
801
+ const unsigned char *iv, int enc);
802
+ __owur int EVP_CipherInit_ex2(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
803
+ const unsigned char *key, const unsigned char *iv,
804
+ int enc, const OSSL_PARAM params[]);
805
+ __owur int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
806
+ int *outl, const unsigned char *in, int inl);
807
+ __owur int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm,
808
+ int *outl);
809
+ __owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm,
810
+ int *outl);
811
+
812
+ __owur int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s,
813
+ EVP_PKEY *pkey);
814
+ __owur int EVP_SignFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s,
815
+ EVP_PKEY *pkey, OSSL_LIB_CTX *libctx,
816
+ const char *propq);
817
+
818
+ __owur int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret,
819
+ size_t *siglen, const unsigned char *tbs,
820
+ size_t tbslen);
821
+
822
+ __owur int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf,
823
+ unsigned int siglen, EVP_PKEY *pkey);
824
+ __owur int EVP_VerifyFinal_ex(EVP_MD_CTX *ctx, const unsigned char *sigbuf,
825
+ unsigned int siglen, EVP_PKEY *pkey,
826
+ OSSL_LIB_CTX *libctx, const char *propq);
827
+
828
+ __owur int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret,
829
+ size_t siglen, const unsigned char *tbs,
830
+ size_t tbslen);
831
+
832
+ __owur int EVP_DigestSignInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
833
+ const char *mdname, OSSL_LIB_CTX *libctx,
834
+ const char *props, EVP_PKEY *pkey,
835
+ const OSSL_PARAM params[]);
836
+ __owur int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
837
+ const EVP_MD *type, ENGINE *e,
838
+ EVP_PKEY *pkey);
839
+ __owur int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize);
840
+ __owur int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret,
841
+ size_t *siglen);
842
+
843
+ __owur int EVP_DigestVerifyInit_ex(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
844
+ const char *mdname, OSSL_LIB_CTX *libctx,
845
+ const char *props, EVP_PKEY *pkey,
846
+ const OSSL_PARAM params[]);
847
+ __owur int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
848
+ const EVP_MD *type, ENGINE *e,
849
+ EVP_PKEY *pkey);
850
+ int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data, size_t dsize);
851
+ __owur int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig,
852
+ size_t siglen);
853
+
854
+ __owur int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
855
+ const unsigned char *ek, int ekl,
856
+ const unsigned char *iv, EVP_PKEY *priv);
857
+ __owur int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
858
+
859
+ __owur int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
860
+ unsigned char **ek, int *ekl, unsigned char *iv,
861
+ EVP_PKEY **pubk, int npubk);
862
+ __owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
863
+
864
+ EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void);
865
+ void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx);
866
+ int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, const EVP_ENCODE_CTX *sctx);
867
+ int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx);
868
+ void EVP_EncodeInit(EVP_ENCODE_CTX *ctx);
869
+ int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
870
+ const unsigned char *in, int inl);
871
+ void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl);
872
+ int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n);
873
+
874
+ void EVP_DecodeInit(EVP_ENCODE_CTX *ctx);
875
+ int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
876
+ const unsigned char *in, int inl);
877
+ int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned
878
+ char *out, int *outl);
879
+ int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n);
880
+
881
+ # ifndef OPENSSL_NO_DEPRECATED_1_1_0
882
+ # define EVP_CIPHER_CTX_init(c) EVP_CIPHER_CTX_reset(c)
883
+ # define EVP_CIPHER_CTX_cleanup(c) EVP_CIPHER_CTX_reset(c)
884
+ # endif
885
+ EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
886
+ int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c);
887
+ void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c);
888
+ int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
889
+ int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad);
890
+ int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
891
+ int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key);
892
+ int EVP_CIPHER_get_params(EVP_CIPHER *cipher, OSSL_PARAM params[]);
893
+ int EVP_CIPHER_CTX_set_params(EVP_CIPHER_CTX *ctx, const OSSL_PARAM params[]);
894
+ int EVP_CIPHER_CTX_get_params(EVP_CIPHER_CTX *ctx, OSSL_PARAM params[]);
895
+ const OSSL_PARAM *EVP_CIPHER_gettable_params(const EVP_CIPHER *cipher);
896
+ const OSSL_PARAM *EVP_CIPHER_settable_ctx_params(const EVP_CIPHER *cipher);
897
+ const OSSL_PARAM *EVP_CIPHER_gettable_ctx_params(const EVP_CIPHER *cipher);
898
+ const OSSL_PARAM *EVP_CIPHER_CTX_settable_params(EVP_CIPHER_CTX *ctx);
899
+ const OSSL_PARAM *EVP_CIPHER_CTX_gettable_params(EVP_CIPHER_CTX *ctx);
900
+
901
+ int EVP_CIPHER_CTX_set_algor_params(EVP_CIPHER_CTX *ctx, const X509_ALGOR *alg);
902
+ int EVP_CIPHER_CTX_get_algor_params(EVP_CIPHER_CTX *ctx, X509_ALGOR *alg);
903
+ int EVP_CIPHER_CTX_get_algor(EVP_CIPHER_CTX *ctx, X509_ALGOR **alg);
904
+
905
+ const BIO_METHOD *BIO_f_md(void);
906
+ const BIO_METHOD *BIO_f_base64(void);
907
+ const BIO_METHOD *BIO_f_cipher(void);
908
+ const BIO_METHOD *BIO_f_reliable(void);
909
+ __owur int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k,
910
+ const unsigned char *i, int enc);
911
+
912
+ const EVP_MD *EVP_md_null(void);
913
+ # ifndef OPENSSL_NO_MD2
914
+ const EVP_MD *EVP_md2(void);
915
+ # endif
916
+ # ifndef OPENSSL_NO_MD4
917
+ const EVP_MD *EVP_md4(void);
918
+ # endif
919
+ # ifndef OPENSSL_NO_MD5
920
+ const EVP_MD *EVP_md5(void);
921
+ const EVP_MD *EVP_md5_sha1(void);
922
+ # endif
923
+ # ifndef OPENSSL_NO_BLAKE2
924
+ const EVP_MD *EVP_blake2b512(void);
925
+ const EVP_MD *EVP_blake2s256(void);
926
+ # endif
927
+ const EVP_MD *EVP_sha1(void);
928
+ const EVP_MD *EVP_sha224(void);
929
+ const EVP_MD *EVP_sha256(void);
930
+ const EVP_MD *EVP_sha384(void);
931
+ const EVP_MD *EVP_sha512(void);
932
+ const EVP_MD *EVP_sha512_224(void);
933
+ const EVP_MD *EVP_sha512_256(void);
934
+ const EVP_MD *EVP_sha3_224(void);
935
+ const EVP_MD *EVP_sha3_256(void);
936
+ const EVP_MD *EVP_sha3_384(void);
937
+ const EVP_MD *EVP_sha3_512(void);
938
+ const EVP_MD *EVP_shake128(void);
939
+ const EVP_MD *EVP_shake256(void);
940
+
941
+ # ifndef OPENSSL_NO_MDC2
942
+ const EVP_MD *EVP_mdc2(void);
943
+ # endif
944
+ # ifndef OPENSSL_NO_RMD160
945
+ const EVP_MD *EVP_ripemd160(void);
946
+ # endif
947
+ # ifndef OPENSSL_NO_WHIRLPOOL
948
+ const EVP_MD *EVP_whirlpool(void);
949
+ # endif
950
+ # ifndef OPENSSL_NO_SM3
951
+ const EVP_MD *EVP_sm3(void);
952
+ # endif
953
+ const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */
954
+ # ifndef OPENSSL_NO_DES
955
+ const EVP_CIPHER *EVP_des_ecb(void);
956
+ const EVP_CIPHER *EVP_des_ede(void);
957
+ const EVP_CIPHER *EVP_des_ede3(void);
958
+ const EVP_CIPHER *EVP_des_ede_ecb(void);
959
+ const EVP_CIPHER *EVP_des_ede3_ecb(void);
960
+ const EVP_CIPHER *EVP_des_cfb64(void);
961
+ # define EVP_des_cfb EVP_des_cfb64
962
+ const EVP_CIPHER *EVP_des_cfb1(void);
963
+ const EVP_CIPHER *EVP_des_cfb8(void);
964
+ const EVP_CIPHER *EVP_des_ede_cfb64(void);
965
+ # define EVP_des_ede_cfb EVP_des_ede_cfb64
966
+ const EVP_CIPHER *EVP_des_ede3_cfb64(void);
967
+ # define EVP_des_ede3_cfb EVP_des_ede3_cfb64
968
+ const EVP_CIPHER *EVP_des_ede3_cfb1(void);
969
+ const EVP_CIPHER *EVP_des_ede3_cfb8(void);
970
+ const EVP_CIPHER *EVP_des_ofb(void);
971
+ const EVP_CIPHER *EVP_des_ede_ofb(void);
972
+ const EVP_CIPHER *EVP_des_ede3_ofb(void);
973
+ const EVP_CIPHER *EVP_des_cbc(void);
974
+ const EVP_CIPHER *EVP_des_ede_cbc(void);
975
+ const EVP_CIPHER *EVP_des_ede3_cbc(void);
976
+ const EVP_CIPHER *EVP_desx_cbc(void);
977
+ const EVP_CIPHER *EVP_des_ede3_wrap(void);
978
+ /*
979
+ * This should now be supported through the dev_crypto ENGINE. But also, why
980
+ * are rc4 and md5 declarations made here inside a "NO_DES" precompiler
981
+ * branch?
982
+ */
983
+ # endif
984
+ # ifndef OPENSSL_NO_RC4
985
+ const EVP_CIPHER *EVP_rc4(void);
986
+ const EVP_CIPHER *EVP_rc4_40(void);
987
+ # ifndef OPENSSL_NO_MD5
988
+ const EVP_CIPHER *EVP_rc4_hmac_md5(void);
989
+ # endif
990
+ # endif
991
+ # ifndef OPENSSL_NO_IDEA
992
+ const EVP_CIPHER *EVP_idea_ecb(void);
993
+ const EVP_CIPHER *EVP_idea_cfb64(void);
994
+ # define EVP_idea_cfb EVP_idea_cfb64
995
+ const EVP_CIPHER *EVP_idea_ofb(void);
996
+ const EVP_CIPHER *EVP_idea_cbc(void);
997
+ # endif
998
+ # ifndef OPENSSL_NO_RC2
999
+ const EVP_CIPHER *EVP_rc2_ecb(void);
1000
+ const EVP_CIPHER *EVP_rc2_cbc(void);
1001
+ const EVP_CIPHER *EVP_rc2_40_cbc(void);
1002
+ const EVP_CIPHER *EVP_rc2_64_cbc(void);
1003
+ const EVP_CIPHER *EVP_rc2_cfb64(void);
1004
+ # define EVP_rc2_cfb EVP_rc2_cfb64
1005
+ const EVP_CIPHER *EVP_rc2_ofb(void);
1006
+ # endif
1007
+ # ifndef OPENSSL_NO_BF
1008
+ const EVP_CIPHER *EVP_bf_ecb(void);
1009
+ const EVP_CIPHER *EVP_bf_cbc(void);
1010
+ const EVP_CIPHER *EVP_bf_cfb64(void);
1011
+ # define EVP_bf_cfb EVP_bf_cfb64
1012
+ const EVP_CIPHER *EVP_bf_ofb(void);
1013
+ # endif
1014
+ # ifndef OPENSSL_NO_CAST
1015
+ const EVP_CIPHER *EVP_cast5_ecb(void);
1016
+ const EVP_CIPHER *EVP_cast5_cbc(void);
1017
+ const EVP_CIPHER *EVP_cast5_cfb64(void);
1018
+ # define EVP_cast5_cfb EVP_cast5_cfb64
1019
+ const EVP_CIPHER *EVP_cast5_ofb(void);
1020
+ # endif
1021
+ # ifndef OPENSSL_NO_RC5
1022
+ const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void);
1023
+ const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void);
1024
+ const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void);
1025
+ # define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64
1026
+ const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void);
1027
+ # endif
1028
+ const EVP_CIPHER *EVP_aes_128_ecb(void);
1029
+ const EVP_CIPHER *EVP_aes_128_cbc(void);
1030
+ const EVP_CIPHER *EVP_aes_128_cfb1(void);
1031
+ const EVP_CIPHER *EVP_aes_128_cfb8(void);
1032
+ const EVP_CIPHER *EVP_aes_128_cfb128(void);
1033
+ # define EVP_aes_128_cfb EVP_aes_128_cfb128
1034
+ const EVP_CIPHER *EVP_aes_128_ofb(void);
1035
+ const EVP_CIPHER *EVP_aes_128_ctr(void);
1036
+ const EVP_CIPHER *EVP_aes_128_ccm(void);
1037
+ const EVP_CIPHER *EVP_aes_128_gcm(void);
1038
+ const EVP_CIPHER *EVP_aes_128_xts(void);
1039
+ const EVP_CIPHER *EVP_aes_128_wrap(void);
1040
+ const EVP_CIPHER *EVP_aes_128_wrap_pad(void);
1041
+ # ifndef OPENSSL_NO_OCB
1042
+ const EVP_CIPHER *EVP_aes_128_ocb(void);
1043
+ # endif
1044
+ const EVP_CIPHER *EVP_aes_192_ecb(void);
1045
+ const EVP_CIPHER *EVP_aes_192_cbc(void);
1046
+ const EVP_CIPHER *EVP_aes_192_cfb1(void);
1047
+ const EVP_CIPHER *EVP_aes_192_cfb8(void);
1048
+ const EVP_CIPHER *EVP_aes_192_cfb128(void);
1049
+ # define EVP_aes_192_cfb EVP_aes_192_cfb128
1050
+ const EVP_CIPHER *EVP_aes_192_ofb(void);
1051
+ const EVP_CIPHER *EVP_aes_192_ctr(void);
1052
+ const EVP_CIPHER *EVP_aes_192_ccm(void);
1053
+ const EVP_CIPHER *EVP_aes_192_gcm(void);
1054
+ const EVP_CIPHER *EVP_aes_192_wrap(void);
1055
+ const EVP_CIPHER *EVP_aes_192_wrap_pad(void);
1056
+ # ifndef OPENSSL_NO_OCB
1057
+ const EVP_CIPHER *EVP_aes_192_ocb(void);
1058
+ # endif
1059
+ const EVP_CIPHER *EVP_aes_256_ecb(void);
1060
+ const EVP_CIPHER *EVP_aes_256_cbc(void);
1061
+ const EVP_CIPHER *EVP_aes_256_cfb1(void);
1062
+ const EVP_CIPHER *EVP_aes_256_cfb8(void);
1063
+ const EVP_CIPHER *EVP_aes_256_cfb128(void);
1064
+ # define EVP_aes_256_cfb EVP_aes_256_cfb128
1065
+ const EVP_CIPHER *EVP_aes_256_ofb(void);
1066
+ const EVP_CIPHER *EVP_aes_256_ctr(void);
1067
+ const EVP_CIPHER *EVP_aes_256_ccm(void);
1068
+ const EVP_CIPHER *EVP_aes_256_gcm(void);
1069
+ const EVP_CIPHER *EVP_aes_256_xts(void);
1070
+ const EVP_CIPHER *EVP_aes_256_wrap(void);
1071
+ const EVP_CIPHER *EVP_aes_256_wrap_pad(void);
1072
+ # ifndef OPENSSL_NO_OCB
1073
+ const EVP_CIPHER *EVP_aes_256_ocb(void);
1074
+ # endif
1075
+ const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void);
1076
+ const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void);
1077
+ const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void);
1078
+ const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void);
1079
+ # ifndef OPENSSL_NO_ARIA
1080
+ const EVP_CIPHER *EVP_aria_128_ecb(void);
1081
+ const EVP_CIPHER *EVP_aria_128_cbc(void);
1082
+ const EVP_CIPHER *EVP_aria_128_cfb1(void);
1083
+ const EVP_CIPHER *EVP_aria_128_cfb8(void);
1084
+ const EVP_CIPHER *EVP_aria_128_cfb128(void);
1085
+ # define EVP_aria_128_cfb EVP_aria_128_cfb128
1086
+ const EVP_CIPHER *EVP_aria_128_ctr(void);
1087
+ const EVP_CIPHER *EVP_aria_128_ofb(void);
1088
+ const EVP_CIPHER *EVP_aria_128_gcm(void);
1089
+ const EVP_CIPHER *EVP_aria_128_ccm(void);
1090
+ const EVP_CIPHER *EVP_aria_192_ecb(void);
1091
+ const EVP_CIPHER *EVP_aria_192_cbc(void);
1092
+ const EVP_CIPHER *EVP_aria_192_cfb1(void);
1093
+ const EVP_CIPHER *EVP_aria_192_cfb8(void);
1094
+ const EVP_CIPHER *EVP_aria_192_cfb128(void);
1095
+ # define EVP_aria_192_cfb EVP_aria_192_cfb128
1096
+ const EVP_CIPHER *EVP_aria_192_ctr(void);
1097
+ const EVP_CIPHER *EVP_aria_192_ofb(void);
1098
+ const EVP_CIPHER *EVP_aria_192_gcm(void);
1099
+ const EVP_CIPHER *EVP_aria_192_ccm(void);
1100
+ const EVP_CIPHER *EVP_aria_256_ecb(void);
1101
+ const EVP_CIPHER *EVP_aria_256_cbc(void);
1102
+ const EVP_CIPHER *EVP_aria_256_cfb1(void);
1103
+ const EVP_CIPHER *EVP_aria_256_cfb8(void);
1104
+ const EVP_CIPHER *EVP_aria_256_cfb128(void);
1105
+ # define EVP_aria_256_cfb EVP_aria_256_cfb128
1106
+ const EVP_CIPHER *EVP_aria_256_ctr(void);
1107
+ const EVP_CIPHER *EVP_aria_256_ofb(void);
1108
+ const EVP_CIPHER *EVP_aria_256_gcm(void);
1109
+ const EVP_CIPHER *EVP_aria_256_ccm(void);
1110
+ # endif
1111
+ # ifndef OPENSSL_NO_CAMELLIA
1112
+ const EVP_CIPHER *EVP_camellia_128_ecb(void);
1113
+ const EVP_CIPHER *EVP_camellia_128_cbc(void);
1114
+ const EVP_CIPHER *EVP_camellia_128_cfb1(void);
1115
+ const EVP_CIPHER *EVP_camellia_128_cfb8(void);
1116
+ const EVP_CIPHER *EVP_camellia_128_cfb128(void);
1117
+ # define EVP_camellia_128_cfb EVP_camellia_128_cfb128
1118
+ const EVP_CIPHER *EVP_camellia_128_ofb(void);
1119
+ const EVP_CIPHER *EVP_camellia_128_ctr(void);
1120
+ const EVP_CIPHER *EVP_camellia_192_ecb(void);
1121
+ const EVP_CIPHER *EVP_camellia_192_cbc(void);
1122
+ const EVP_CIPHER *EVP_camellia_192_cfb1(void);
1123
+ const EVP_CIPHER *EVP_camellia_192_cfb8(void);
1124
+ const EVP_CIPHER *EVP_camellia_192_cfb128(void);
1125
+ # define EVP_camellia_192_cfb EVP_camellia_192_cfb128
1126
+ const EVP_CIPHER *EVP_camellia_192_ofb(void);
1127
+ const EVP_CIPHER *EVP_camellia_192_ctr(void);
1128
+ const EVP_CIPHER *EVP_camellia_256_ecb(void);
1129
+ const EVP_CIPHER *EVP_camellia_256_cbc(void);
1130
+ const EVP_CIPHER *EVP_camellia_256_cfb1(void);
1131
+ const EVP_CIPHER *EVP_camellia_256_cfb8(void);
1132
+ const EVP_CIPHER *EVP_camellia_256_cfb128(void);
1133
+ # define EVP_camellia_256_cfb EVP_camellia_256_cfb128
1134
+ const EVP_CIPHER *EVP_camellia_256_ofb(void);
1135
+ const EVP_CIPHER *EVP_camellia_256_ctr(void);
1136
+ # endif
1137
+ # ifndef OPENSSL_NO_CHACHA
1138
+ const EVP_CIPHER *EVP_chacha20(void);
1139
+ # ifndef OPENSSL_NO_POLY1305
1140
+ const EVP_CIPHER *EVP_chacha20_poly1305(void);
1141
+ # endif
1142
+ # endif
1143
+
1144
+ # ifndef OPENSSL_NO_SEED
1145
+ const EVP_CIPHER *EVP_seed_ecb(void);
1146
+ const EVP_CIPHER *EVP_seed_cbc(void);
1147
+ const EVP_CIPHER *EVP_seed_cfb128(void);
1148
+ # define EVP_seed_cfb EVP_seed_cfb128
1149
+ const EVP_CIPHER *EVP_seed_ofb(void);
1150
+ # endif
1151
+
1152
+ # ifndef OPENSSL_NO_SM4
1153
+ const EVP_CIPHER *EVP_sm4_ecb(void);
1154
+ const EVP_CIPHER *EVP_sm4_cbc(void);
1155
+ const EVP_CIPHER *EVP_sm4_cfb128(void);
1156
+ # define EVP_sm4_cfb EVP_sm4_cfb128
1157
+ const EVP_CIPHER *EVP_sm4_ofb(void);
1158
+ const EVP_CIPHER *EVP_sm4_ctr(void);
1159
+ # endif
1160
+
1161
+ # ifndef OPENSSL_NO_DEPRECATED_1_1_0
1162
+ # define OPENSSL_add_all_algorithms_conf() \
1163
+ OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
1164
+ | OPENSSL_INIT_ADD_ALL_DIGESTS \
1165
+ | OPENSSL_INIT_LOAD_CONFIG, NULL)
1166
+ # define OPENSSL_add_all_algorithms_noconf() \
1167
+ OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \
1168
+ | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
1169
+
1170
+ # ifdef OPENSSL_LOAD_CONF
1171
+ # define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_conf()
1172
+ # else
1173
+ # define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf()
1174
+ # endif
1175
+
1176
+ # define OpenSSL_add_all_ciphers() \
1177
+ OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL)
1178
+ # define OpenSSL_add_all_digests() \
1179
+ OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL)
1180
+
1181
+ # define EVP_cleanup() while(0) continue
1182
+ # endif
1183
+
1184
+ int EVP_add_cipher(const EVP_CIPHER *cipher);
1185
+ int EVP_add_digest(const EVP_MD *digest);
1186
+
1187
+ const EVP_CIPHER *EVP_get_cipherbyname(const char *name);
1188
+ const EVP_MD *EVP_get_digestbyname(const char *name);
1189
+
1190
+ void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph,
1191
+ const char *from, const char *to, void *x),
1192
+ void *arg);
1193
+ void EVP_CIPHER_do_all_sorted(void (*fn)
1194
+ (const EVP_CIPHER *ciph, const char *from,
1195
+ const char *to, void *x), void *arg);
1196
+ void EVP_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx,
1197
+ void (*fn)(EVP_CIPHER *cipher, void *arg),
1198
+ void *arg);
1199
+
1200
+ void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph,
1201
+ const char *from, const char *to, void *x),
1202
+ void *arg);
1203
+ void EVP_MD_do_all_sorted(void (*fn)
1204
+ (const EVP_MD *ciph, const char *from,
1205
+ const char *to, void *x), void *arg);
1206
+ void EVP_MD_do_all_provided(OSSL_LIB_CTX *libctx,
1207
+ void (*fn)(EVP_MD *md, void *arg),
1208
+ void *arg);
1209
+
1210
+ /* MAC stuff */
1211
+
1212
+ EVP_MAC *EVP_MAC_fetch(OSSL_LIB_CTX *libctx, const char *algorithm,
1213
+ const char *properties);
1214
+ int EVP_MAC_up_ref(EVP_MAC *mac);
1215
+ void EVP_MAC_free(EVP_MAC *mac);
1216
+ const char *EVP_MAC_get0_name(const EVP_MAC *mac);
1217
+ const char *EVP_MAC_get0_description(const EVP_MAC *mac);
1218
+ int EVP_MAC_is_a(const EVP_MAC *mac, const char *name);
1219
+ const OSSL_PROVIDER *EVP_MAC_get0_provider(const EVP_MAC *mac);
1220
+ int EVP_MAC_get_params(EVP_MAC *mac, OSSL_PARAM params[]);
1221
+
1222
+ EVP_MAC_CTX *EVP_MAC_CTX_new(EVP_MAC *mac);
1223
+ void EVP_MAC_CTX_free(EVP_MAC_CTX *ctx);
1224
+ EVP_MAC_CTX *EVP_MAC_CTX_dup(const EVP_MAC_CTX *src);
1225
+ EVP_MAC *EVP_MAC_CTX_get0_mac(EVP_MAC_CTX *ctx);
1226
+ int EVP_MAC_CTX_get_params(EVP_MAC_CTX *ctx, OSSL_PARAM params[]);
1227
+ int EVP_MAC_CTX_set_params(EVP_MAC_CTX *ctx, const OSSL_PARAM params[]);
1228
+
1229
+ size_t EVP_MAC_CTX_get_mac_size(EVP_MAC_CTX *ctx);
1230
+ size_t EVP_MAC_CTX_get_block_size(EVP_MAC_CTX *ctx);
1231
+ unsigned char *EVP_Q_mac(OSSL_LIB_CTX *libctx, const char *name, const char *propq,
1232
+ const char *subalg, const OSSL_PARAM *params,
1233
+ const void *key, size_t keylen,
1234
+ const unsigned char *data, size_t datalen,
1235
+ unsigned char *out, size_t outsize, size_t *outlen);
1236
+ int EVP_MAC_init(EVP_MAC_CTX *ctx, const unsigned char *key, size_t keylen,
1237
+ const OSSL_PARAM params[]);
1238
+ int EVP_MAC_update(EVP_MAC_CTX *ctx, const unsigned char *data, size_t datalen);
1239
+ int EVP_MAC_final(EVP_MAC_CTX *ctx,
1240
+ unsigned char *out, size_t *outl, size_t outsize);
1241
+ int EVP_MAC_finalXOF(EVP_MAC_CTX *ctx, unsigned char *out, size_t outsize);
1242
+ const OSSL_PARAM *EVP_MAC_gettable_params(const EVP_MAC *mac);
1243
+ const OSSL_PARAM *EVP_MAC_gettable_ctx_params(const EVP_MAC *mac);
1244
+ const OSSL_PARAM *EVP_MAC_settable_ctx_params(const EVP_MAC *mac);
1245
+ const OSSL_PARAM *EVP_MAC_CTX_gettable_params(EVP_MAC_CTX *ctx);
1246
+ const OSSL_PARAM *EVP_MAC_CTX_settable_params(EVP_MAC_CTX *ctx);
1247
+
1248
+ void EVP_MAC_do_all_provided(OSSL_LIB_CTX *libctx,
1249
+ void (*fn)(EVP_MAC *mac, void *arg),
1250
+ void *arg);
1251
+ int EVP_MAC_names_do_all(const EVP_MAC *mac,
1252
+ void (*fn)(const char *name, void *data),
1253
+ void *data);
1254
+
1255
+ /* RAND stuff */
1256
+ EVP_RAND *EVP_RAND_fetch(OSSL_LIB_CTX *libctx, const char *algorithm,
1257
+ const char *properties);
1258
+ int EVP_RAND_up_ref(EVP_RAND *rand);
1259
+ void EVP_RAND_free(EVP_RAND *rand);
1260
+ const char *EVP_RAND_get0_name(const EVP_RAND *rand);
1261
+ const char *EVP_RAND_get0_description(const EVP_RAND *md);
1262
+ int EVP_RAND_is_a(const EVP_RAND *rand, const char *name);
1263
+ const OSSL_PROVIDER *EVP_RAND_get0_provider(const EVP_RAND *rand);
1264
+ int EVP_RAND_get_params(EVP_RAND *rand, OSSL_PARAM params[]);
1265
+
1266
+ EVP_RAND_CTX *EVP_RAND_CTX_new(EVP_RAND *rand, EVP_RAND_CTX *parent);
1267
+ int EVP_RAND_CTX_up_ref(EVP_RAND_CTX *ctx);
1268
+ void EVP_RAND_CTX_free(EVP_RAND_CTX *ctx);
1269
+ EVP_RAND *EVP_RAND_CTX_get0_rand(EVP_RAND_CTX *ctx);
1270
+ int EVP_RAND_CTX_get_params(EVP_RAND_CTX *ctx, OSSL_PARAM params[]);
1271
+ int EVP_RAND_CTX_set_params(EVP_RAND_CTX *ctx, const OSSL_PARAM params[]);
1272
+ const OSSL_PARAM *EVP_RAND_gettable_params(const EVP_RAND *rand);
1273
+ const OSSL_PARAM *EVP_RAND_gettable_ctx_params(const EVP_RAND *rand);
1274
+ const OSSL_PARAM *EVP_RAND_settable_ctx_params(const EVP_RAND *rand);
1275
+ const OSSL_PARAM *EVP_RAND_CTX_gettable_params(EVP_RAND_CTX *ctx);
1276
+ const OSSL_PARAM *EVP_RAND_CTX_settable_params(EVP_RAND_CTX *ctx);
1277
+
1278
+ void EVP_RAND_do_all_provided(OSSL_LIB_CTX *libctx,
1279
+ void (*fn)(EVP_RAND *rand, void *arg),
1280
+ void *arg);
1281
+ int EVP_RAND_names_do_all(const EVP_RAND *rand,
1282
+ void (*fn)(const char *name, void *data),
1283
+ void *data);
1284
+
1285
+ __owur int EVP_RAND_instantiate(EVP_RAND_CTX *ctx, unsigned int strength,
1286
+ int prediction_resistance,
1287
+ const unsigned char *pstr, size_t pstr_len,
1288
+ const OSSL_PARAM params[]);
1289
+ int EVP_RAND_uninstantiate(EVP_RAND_CTX *ctx);
1290
+ __owur int EVP_RAND_generate(EVP_RAND_CTX *ctx, unsigned char *out,
1291
+ size_t outlen, unsigned int strength,
1292
+ int prediction_resistance,
1293
+ const unsigned char *addin, size_t addin_len);
1294
+ int EVP_RAND_reseed(EVP_RAND_CTX *ctx, int prediction_resistance,
1295
+ const unsigned char *ent, size_t ent_len,
1296
+ const unsigned char *addin, size_t addin_len);
1297
+ __owur int EVP_RAND_nonce(EVP_RAND_CTX *ctx, unsigned char *out, size_t outlen);
1298
+ __owur int EVP_RAND_enable_locking(EVP_RAND_CTX *ctx);
1299
+
1300
+ int EVP_RAND_verify_zeroization(EVP_RAND_CTX *ctx);
1301
+ unsigned int EVP_RAND_get_strength(EVP_RAND_CTX *ctx);
1302
+ int EVP_RAND_get_state(EVP_RAND_CTX *ctx);
1303
+
1304
+ # define EVP_RAND_STATE_UNINITIALISED 0
1305
+ # define EVP_RAND_STATE_READY 1
1306
+ # define EVP_RAND_STATE_ERROR 2
1307
+
1308
+ /* PKEY stuff */
1309
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
1310
+ OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_decrypt_old(unsigned char *dec_key,
1311
+ const unsigned char *enc_key,
1312
+ int enc_key_len,
1313
+ EVP_PKEY *private_key);
1314
+ OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_encrypt_old(unsigned char *enc_key,
1315
+ const unsigned char *key,
1316
+ int key_len, EVP_PKEY *pub_key);
1317
+ # endif
1318
+ int EVP_PKEY_is_a(const EVP_PKEY *pkey, const char *name);
1319
+ int EVP_PKEY_type_names_do_all(const EVP_PKEY *pkey,
1320
+ void (*fn)(const char *name, void *data),
1321
+ void *data);
1322
+ int EVP_PKEY_type(int type);
1323
+ int EVP_PKEY_get_id(const EVP_PKEY *pkey);
1324
+ # define EVP_PKEY_id EVP_PKEY_get_id
1325
+ int EVP_PKEY_get_base_id(const EVP_PKEY *pkey);
1326
+ # define EVP_PKEY_base_id EVP_PKEY_get_base_id
1327
+ int EVP_PKEY_get_bits(const EVP_PKEY *pkey);
1328
+ # define EVP_PKEY_bits EVP_PKEY_get_bits
1329
+ int EVP_PKEY_get_security_bits(const EVP_PKEY *pkey);
1330
+ # define EVP_PKEY_security_bits EVP_PKEY_get_security_bits
1331
+ int EVP_PKEY_get_size(const EVP_PKEY *pkey);
1332
+ # define EVP_PKEY_size EVP_PKEY_get_size
1333
+ int EVP_PKEY_can_sign(const EVP_PKEY *pkey);
1334
+ int EVP_PKEY_set_type(EVP_PKEY *pkey, int type);
1335
+ int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len);
1336
+ int EVP_PKEY_set_type_by_keymgmt(EVP_PKEY *pkey, EVP_KEYMGMT *keymgmt);
1337
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
1338
+ # ifndef OPENSSL_NO_ENGINE
1339
+ OSSL_DEPRECATEDIN_3_0
1340
+ int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e);
1341
+ OSSL_DEPRECATEDIN_3_0
1342
+ ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey);
1343
+ # endif
1344
+ OSSL_DEPRECATEDIN_3_0
1345
+ int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key);
1346
+ OSSL_DEPRECATEDIN_3_0
1347
+ void *EVP_PKEY_get0(const EVP_PKEY *pkey);
1348
+ OSSL_DEPRECATEDIN_3_0
1349
+ const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len);
1350
+ # ifndef OPENSSL_NO_POLY1305
1351
+ OSSL_DEPRECATEDIN_3_0
1352
+ const unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t *len);
1353
+ # endif
1354
+ # ifndef OPENSSL_NO_SIPHASH
1355
+ OSSL_DEPRECATEDIN_3_0
1356
+ const unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len);
1357
+ # endif
1358
+
1359
+ struct rsa_st;
1360
+ OSSL_DEPRECATEDIN_3_0
1361
+ int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key);
1362
+ OSSL_DEPRECATEDIN_3_0
1363
+ const struct rsa_st *EVP_PKEY_get0_RSA(const EVP_PKEY *pkey);
1364
+ OSSL_DEPRECATEDIN_3_0
1365
+ struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey);
1366
+
1367
+ # ifndef OPENSSL_NO_DSA
1368
+ struct dsa_st;
1369
+ OSSL_DEPRECATEDIN_3_0
1370
+ int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key);
1371
+ OSSL_DEPRECATEDIN_3_0
1372
+ const struct dsa_st *EVP_PKEY_get0_DSA(const EVP_PKEY *pkey);
1373
+ OSSL_DEPRECATEDIN_3_0
1374
+ struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey);
1375
+ # endif
1376
+
1377
+ # ifndef OPENSSL_NO_DH
1378
+ struct dh_st;
1379
+ OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key);
1380
+ OSSL_DEPRECATEDIN_3_0 const struct dh_st *EVP_PKEY_get0_DH(const EVP_PKEY *pkey);
1381
+ OSSL_DEPRECATEDIN_3_0 struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey);
1382
+ # endif
1383
+
1384
+ # ifndef OPENSSL_NO_EC
1385
+ struct ec_key_st;
1386
+ OSSL_DEPRECATEDIN_3_0
1387
+ int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key);
1388
+ OSSL_DEPRECATEDIN_3_0
1389
+ const struct ec_key_st *EVP_PKEY_get0_EC_KEY(const EVP_PKEY *pkey);
1390
+ OSSL_DEPRECATEDIN_3_0
1391
+ struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey);
1392
+ # endif
1393
+ # endif /* OPENSSL_NO_DEPRECATED_3_0 */
1394
+
1395
+ EVP_PKEY *EVP_PKEY_new(void);
1396
+ int EVP_PKEY_up_ref(EVP_PKEY *pkey);
1397
+ EVP_PKEY *EVP_PKEY_dup(EVP_PKEY *pkey);
1398
+ void EVP_PKEY_free(EVP_PKEY *pkey);
1399
+ const char *EVP_PKEY_get0_description(const EVP_PKEY *pkey);
1400
+ const OSSL_PROVIDER *EVP_PKEY_get0_provider(const EVP_PKEY *key);
1401
+
1402
+ EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp,
1403
+ long length);
1404
+ int i2d_PublicKey(const EVP_PKEY *a, unsigned char **pp);
1405
+
1406
+
1407
+ EVP_PKEY *d2i_PrivateKey_ex(int type, EVP_PKEY **a, const unsigned char **pp,
1408
+ long length, OSSL_LIB_CTX *libctx,
1409
+ const char *propq);
1410
+ EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp,
1411
+ long length);
1412
+ EVP_PKEY *d2i_AutoPrivateKey_ex(EVP_PKEY **a, const unsigned char **pp,
1413
+ long length, OSSL_LIB_CTX *libctx,
1414
+ const char *propq);
1415
+ EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp,
1416
+ long length);
1417
+ int i2d_PrivateKey(const EVP_PKEY *a, unsigned char **pp);
1418
+
1419
+ int i2d_KeyParams(const EVP_PKEY *a, unsigned char **pp);
1420
+ EVP_PKEY *d2i_KeyParams(int type, EVP_PKEY **a, const unsigned char **pp,
1421
+ long length);
1422
+ int i2d_KeyParams_bio(BIO *bp, const EVP_PKEY *pkey);
1423
+ EVP_PKEY *d2i_KeyParams_bio(int type, EVP_PKEY **a, BIO *in);
1424
+
1425
+ int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from);
1426
+ int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey);
1427
+ int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode);
1428
+ int EVP_PKEY_parameters_eq(const EVP_PKEY *a, const EVP_PKEY *b);
1429
+ int EVP_PKEY_eq(const EVP_PKEY *a, const EVP_PKEY *b);
1430
+
1431
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
1432
+ OSSL_DEPRECATEDIN_3_0
1433
+ int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b);
1434
+ OSSL_DEPRECATEDIN_3_0
1435
+ int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b);
1436
+ # endif
1437
+
1438
+ int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey,
1439
+ int indent, ASN1_PCTX *pctx);
1440
+ int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey,
1441
+ int indent, ASN1_PCTX *pctx);
1442
+ int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey,
1443
+ int indent, ASN1_PCTX *pctx);
1444
+ # ifndef OPENSSL_NO_STDIO
1445
+ int EVP_PKEY_print_public_fp(FILE *fp, const EVP_PKEY *pkey,
1446
+ int indent, ASN1_PCTX *pctx);
1447
+ int EVP_PKEY_print_private_fp(FILE *fp, const EVP_PKEY *pkey,
1448
+ int indent, ASN1_PCTX *pctx);
1449
+ int EVP_PKEY_print_params_fp(FILE *fp, const EVP_PKEY *pkey,
1450
+ int indent, ASN1_PCTX *pctx);
1451
+ # endif
1452
+
1453
+ int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid);
1454
+ int EVP_PKEY_get_default_digest_name(EVP_PKEY *pkey,
1455
+ char *mdname, size_t mdname_sz);
1456
+ int EVP_PKEY_digestsign_supports_digest(EVP_PKEY *pkey, OSSL_LIB_CTX *libctx,
1457
+ const char *name, const char *propq);
1458
+
1459
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
1460
+ /*
1461
+ * For backwards compatibility. Use EVP_PKEY_set1_encoded_public_key in
1462
+ * preference
1463
+ */
1464
+ # define EVP_PKEY_set1_tls_encodedpoint(pkey, pt, ptlen) \
1465
+ EVP_PKEY_set1_encoded_public_key((pkey), (pt), (ptlen))
1466
+ # endif
1467
+
1468
+ int EVP_PKEY_set1_encoded_public_key(EVP_PKEY *pkey,
1469
+ const unsigned char *pub, size_t publen);
1470
+
1471
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
1472
+ /*
1473
+ * For backwards compatibility. Use EVP_PKEY_get1_encoded_public_key in
1474
+ * preference
1475
+ */
1476
+ # define EVP_PKEY_get1_tls_encodedpoint(pkey, ppt) \
1477
+ EVP_PKEY_get1_encoded_public_key((pkey), (ppt))
1478
+ # endif
1479
+
1480
+ size_t EVP_PKEY_get1_encoded_public_key(EVP_PKEY *pkey, unsigned char **ppub);
1481
+
1482
+ /* calls methods */
1483
+ int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
1484
+ int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
1485
+
1486
+ /* These are used by EVP_CIPHER methods */
1487
+ int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
1488
+ int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type);
1489
+
1490
+ /* PKCS5 password based encryption */
1491
+ int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
1492
+ ASN1_TYPE *param, const EVP_CIPHER *cipher,
1493
+ const EVP_MD *md, int en_de);
1494
+ int PKCS5_PBE_keyivgen_ex(EVP_CIPHER_CTX *cctx, const char *pass, int passlen,
1495
+ ASN1_TYPE *param, const EVP_CIPHER *cipher,
1496
+ const EVP_MD *md, int en_de, OSSL_LIB_CTX *libctx,
1497
+ const char *propq);
1498
+ int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen,
1499
+ const unsigned char *salt, int saltlen, int iter,
1500
+ int keylen, unsigned char *out);
1501
+ int PKCS5_PBKDF2_HMAC(const char *pass, int passlen,
1502
+ const unsigned char *salt, int saltlen, int iter,
1503
+ const EVP_MD *digest, int keylen, unsigned char *out);
1504
+ int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
1505
+ ASN1_TYPE *param, const EVP_CIPHER *cipher,
1506
+ const EVP_MD *md, int en_de);
1507
+ int PKCS5_v2_PBE_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass, int passlen,
1508
+ ASN1_TYPE *param, const EVP_CIPHER *cipher,
1509
+ const EVP_MD *md, int en_de,
1510
+ OSSL_LIB_CTX *libctx, const char *propq);
1511
+
1512
+ #ifndef OPENSSL_NO_SCRYPT
1513
+ int EVP_PBE_scrypt(const char *pass, size_t passlen,
1514
+ const unsigned char *salt, size_t saltlen,
1515
+ uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem,
1516
+ unsigned char *key, size_t keylen);
1517
+ int EVP_PBE_scrypt_ex(const char *pass, size_t passlen,
1518
+ const unsigned char *salt, size_t saltlen,
1519
+ uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem,
1520
+ unsigned char *key, size_t keylen,
1521
+ OSSL_LIB_CTX *ctx, const char *propq);
1522
+
1523
+ int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass,
1524
+ int passlen, ASN1_TYPE *param,
1525
+ const EVP_CIPHER *c, const EVP_MD *md, int en_de);
1526
+ int PKCS5_v2_scrypt_keyivgen_ex(EVP_CIPHER_CTX *ctx, const char *pass,
1527
+ int passlen, ASN1_TYPE *param,
1528
+ const EVP_CIPHER *c, const EVP_MD *md, int en_de,
1529
+ OSSL_LIB_CTX *libctx, const char *propq);
1530
+ #endif
1531
+
1532
+ void PKCS5_PBE_add(void);
1533
+
1534
+ int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen,
1535
+ ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de);
1536
+
1537
+ int EVP_PBE_CipherInit_ex(ASN1_OBJECT *pbe_obj, const char *pass, int passlen,
1538
+ ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de,
1539
+ OSSL_LIB_CTX *libctx, const char *propq);
1540
+
1541
+ /* PBE type */
1542
+
1543
+ /* Can appear as the outermost AlgorithmIdentifier */
1544
+ # define EVP_PBE_TYPE_OUTER 0x0
1545
+ /* Is an PRF type OID */
1546
+ # define EVP_PBE_TYPE_PRF 0x1
1547
+ /* Is a PKCS#5 v2.0 KDF */
1548
+ # define EVP_PBE_TYPE_KDF 0x2
1549
+
1550
+ int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid,
1551
+ int md_nid, EVP_PBE_KEYGEN *keygen);
1552
+ int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md,
1553
+ EVP_PBE_KEYGEN *keygen);
1554
+ int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid,
1555
+ EVP_PBE_KEYGEN **pkeygen);
1556
+ int EVP_PBE_find_ex(int type, int pbe_nid, int *pcnid, int *pmnid,
1557
+ EVP_PBE_KEYGEN **pkeygen, EVP_PBE_KEYGEN_EX **pkeygen_ex);
1558
+ void EVP_PBE_cleanup(void);
1559
+ int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num);
1560
+
1561
+ # define ASN1_PKEY_ALIAS 0x1
1562
+ # define ASN1_PKEY_DYNAMIC 0x2
1563
+ # define ASN1_PKEY_SIGPARAM_NULL 0x4
1564
+
1565
+ # define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1
1566
+ # define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2
1567
+ # define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3
1568
+ # define ASN1_PKEY_CTRL_CMS_SIGN 0x5
1569
+ # define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7
1570
+ # define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8
1571
+
1572
+ # define ASN1_PKEY_CTRL_SET1_TLS_ENCPT 0x9
1573
+ # define ASN1_PKEY_CTRL_GET1_TLS_ENCPT 0xa
1574
+ # define ASN1_PKEY_CTRL_CMS_IS_RI_TYPE_SUPPORTED 0xb
1575
+
1576
+ int EVP_PKEY_asn1_get_count(void);
1577
+ const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx);
1578
+ const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type);
1579
+ const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe,
1580
+ const char *str, int len);
1581
+ int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth);
1582
+ int EVP_PKEY_asn1_add_alias(int to, int from);
1583
+ int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id,
1584
+ int *ppkey_flags, const char **pinfo,
1585
+ const char **ppem_str,
1586
+ const EVP_PKEY_ASN1_METHOD *ameth);
1587
+
1588
+ const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey);
1589
+ EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags,
1590
+ const char *pem_str,
1591
+ const char *info);
1592
+ void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst,
1593
+ const EVP_PKEY_ASN1_METHOD *src);
1594
+ void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth);
1595
+ void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth,
1596
+ int (*pub_decode) (EVP_PKEY *pk,
1597
+ const X509_PUBKEY *pub),
1598
+ int (*pub_encode) (X509_PUBKEY *pub,
1599
+ const EVP_PKEY *pk),
1600
+ int (*pub_cmp) (const EVP_PKEY *a,
1601
+ const EVP_PKEY *b),
1602
+ int (*pub_print) (BIO *out,
1603
+ const EVP_PKEY *pkey,
1604
+ int indent, ASN1_PCTX *pctx),
1605
+ int (*pkey_size) (const EVP_PKEY *pk),
1606
+ int (*pkey_bits) (const EVP_PKEY *pk));
1607
+ void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth,
1608
+ int (*priv_decode) (EVP_PKEY *pk,
1609
+ const PKCS8_PRIV_KEY_INFO
1610
+ *p8inf),
1611
+ int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8,
1612
+ const EVP_PKEY *pk),
1613
+ int (*priv_print) (BIO *out,
1614
+ const EVP_PKEY *pkey,
1615
+ int indent,
1616
+ ASN1_PCTX *pctx));
1617
+ void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth,
1618
+ int (*param_decode) (EVP_PKEY *pkey,
1619
+ const unsigned char **pder,
1620
+ int derlen),
1621
+ int (*param_encode) (const EVP_PKEY *pkey,
1622
+ unsigned char **pder),
1623
+ int (*param_missing) (const EVP_PKEY *pk),
1624
+ int (*param_copy) (EVP_PKEY *to,
1625
+ const EVP_PKEY *from),
1626
+ int (*param_cmp) (const EVP_PKEY *a,
1627
+ const EVP_PKEY *b),
1628
+ int (*param_print) (BIO *out,
1629
+ const EVP_PKEY *pkey,
1630
+ int indent,
1631
+ ASN1_PCTX *pctx));
1632
+
1633
+ void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth,
1634
+ void (*pkey_free) (EVP_PKEY *pkey));
1635
+ void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth,
1636
+ int (*pkey_ctrl) (EVP_PKEY *pkey, int op,
1637
+ long arg1, void *arg2));
1638
+ void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth,
1639
+ int (*item_verify) (EVP_MD_CTX *ctx,
1640
+ const ASN1_ITEM *it,
1641
+ const void *data,
1642
+ const X509_ALGOR *a,
1643
+ const ASN1_BIT_STRING *sig,
1644
+ EVP_PKEY *pkey),
1645
+ int (*item_sign) (EVP_MD_CTX *ctx,
1646
+ const ASN1_ITEM *it,
1647
+ const void *data,
1648
+ X509_ALGOR *alg1,
1649
+ X509_ALGOR *alg2,
1650
+ ASN1_BIT_STRING *sig));
1651
+
1652
+ void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth,
1653
+ int (*siginf_set) (X509_SIG_INFO *siginf,
1654
+ const X509_ALGOR *alg,
1655
+ const ASN1_STRING *sig));
1656
+
1657
+ void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth,
1658
+ int (*pkey_check) (const EVP_PKEY *pk));
1659
+
1660
+ void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth,
1661
+ int (*pkey_pub_check) (const EVP_PKEY *pk));
1662
+
1663
+ void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth,
1664
+ int (*pkey_param_check) (const EVP_PKEY *pk));
1665
+
1666
+ void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth,
1667
+ int (*set_priv_key) (EVP_PKEY *pk,
1668
+ const unsigned char
1669
+ *priv,
1670
+ size_t len));
1671
+ void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth,
1672
+ int (*set_pub_key) (EVP_PKEY *pk,
1673
+ const unsigned char *pub,
1674
+ size_t len));
1675
+ void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth,
1676
+ int (*get_priv_key) (const EVP_PKEY *pk,
1677
+ unsigned char *priv,
1678
+ size_t *len));
1679
+ void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth,
1680
+ int (*get_pub_key) (const EVP_PKEY *pk,
1681
+ unsigned char *pub,
1682
+ size_t *len));
1683
+
1684
+ void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth,
1685
+ int (*pkey_security_bits) (const EVP_PKEY
1686
+ *pk));
1687
+
1688
+ int EVP_PKEY_CTX_get_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD **md);
1689
+ int EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md);
1690
+
1691
+ int EVP_PKEY_CTX_set1_id(EVP_PKEY_CTX *ctx, const void *id, int len);
1692
+ int EVP_PKEY_CTX_get1_id(EVP_PKEY_CTX *ctx, void *id);
1693
+ int EVP_PKEY_CTX_get1_id_len(EVP_PKEY_CTX *ctx, size_t *id_len);
1694
+
1695
+ int EVP_PKEY_CTX_set_kem_op(EVP_PKEY_CTX *ctx, const char *op);
1696
+
1697
+ const char *EVP_PKEY_get0_type_name(const EVP_PKEY *key);
1698
+
1699
+ # define EVP_PKEY_OP_UNDEFINED 0
1700
+ # define EVP_PKEY_OP_PARAMGEN (1 << 1)
1701
+ # define EVP_PKEY_OP_KEYGEN (1 << 2)
1702
+ # define EVP_PKEY_OP_FROMDATA (1 << 3)
1703
+ # define EVP_PKEY_OP_SIGN (1 << 4)
1704
+ # define EVP_PKEY_OP_VERIFY (1 << 5)
1705
+ # define EVP_PKEY_OP_VERIFYRECOVER (1 << 6)
1706
+ # define EVP_PKEY_OP_SIGNCTX (1 << 7)
1707
+ # define EVP_PKEY_OP_VERIFYCTX (1 << 8)
1708
+ # define EVP_PKEY_OP_ENCRYPT (1 << 9)
1709
+ # define EVP_PKEY_OP_DECRYPT (1 << 10)
1710
+ # define EVP_PKEY_OP_DERIVE (1 << 11)
1711
+ # define EVP_PKEY_OP_ENCAPSULATE (1 << 12)
1712
+ # define EVP_PKEY_OP_DECAPSULATE (1 << 13)
1713
+ # define EVP_PKEY_OP_SIGNMSG (1 << 14)
1714
+ # define EVP_PKEY_OP_VERIFYMSG (1 << 15)
1715
+ /* Update the following when adding new EVP_PKEY_OPs */
1716
+ # define EVP_PKEY_OP_ALL ((1 << 16) - 1)
1717
+
1718
+ # define EVP_PKEY_OP_TYPE_SIG \
1719
+ (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_SIGNMSG \
1720
+ | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYMSG \
1721
+ | EVP_PKEY_OP_VERIFYRECOVER \
1722
+ | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX)
1723
+
1724
+ # define EVP_PKEY_OP_TYPE_CRYPT \
1725
+ (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT)
1726
+
1727
+ # define EVP_PKEY_OP_TYPE_DERIVE \
1728
+ (EVP_PKEY_OP_DERIVE)
1729
+
1730
+ # define EVP_PKEY_OP_TYPE_DATA \
1731
+ (EVP_PKEY_OP_FROMDATA)
1732
+
1733
+ # define EVP_PKEY_OP_TYPE_KEM \
1734
+ (EVP_PKEY_OP_ENCAPSULATE | EVP_PKEY_OP_DECAPSULATE)
1735
+
1736
+ # define EVP_PKEY_OP_TYPE_GEN \
1737
+ (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN)
1738
+
1739
+ # define EVP_PKEY_OP_TYPE_NOGEN \
1740
+ (EVP_PKEY_OP_ALL & ~EVP_PKEY_OP_TYPE_GEN)
1741
+
1742
+ int EVP_PKEY_CTX_set_mac_key(EVP_PKEY_CTX *ctx, const unsigned char *key,
1743
+ int keylen);
1744
+
1745
+ # define EVP_PKEY_CTRL_MD 1
1746
+ # define EVP_PKEY_CTRL_PEER_KEY 2
1747
+ # define EVP_PKEY_CTRL_SET_MAC_KEY 6
1748
+ # define EVP_PKEY_CTRL_DIGESTINIT 7
1749
+ /* Used by GOST key encryption in TLS */
1750
+ # define EVP_PKEY_CTRL_SET_IV 8
1751
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
1752
+ # define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3
1753
+ # define EVP_PKEY_CTRL_PKCS7_DECRYPT 4
1754
+ # define EVP_PKEY_CTRL_PKCS7_SIGN 5
1755
+ # define EVP_PKEY_CTRL_CMS_ENCRYPT 9
1756
+ # define EVP_PKEY_CTRL_CMS_DECRYPT 10
1757
+ # define EVP_PKEY_CTRL_CMS_SIGN 11
1758
+ # endif
1759
+ # define EVP_PKEY_CTRL_CIPHER 12
1760
+ # define EVP_PKEY_CTRL_GET_MD 13
1761
+ # define EVP_PKEY_CTRL_SET_DIGEST_SIZE 14
1762
+ # define EVP_PKEY_CTRL_SET1_ID 15
1763
+ # define EVP_PKEY_CTRL_GET1_ID 16
1764
+ # define EVP_PKEY_CTRL_GET1_ID_LEN 17
1765
+
1766
+ # define EVP_PKEY_ALG_CTRL 0x1000
1767
+
1768
+ # define EVP_PKEY_FLAG_AUTOARGLEN 2
1769
+ /*
1770
+ * Method handles all operations: don't assume any digest related defaults.
1771
+ */
1772
+ # define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4
1773
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
1774
+ OSSL_DEPRECATEDIN_3_0 const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type);
1775
+ OSSL_DEPRECATEDIN_3_0 EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags);
1776
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags,
1777
+ const EVP_PKEY_METHOD *meth);
1778
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst,
1779
+ const EVP_PKEY_METHOD *src);
1780
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth);
1781
+ OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth);
1782
+ OSSL_DEPRECATEDIN_3_0 int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth);
1783
+ OSSL_DEPRECATEDIN_3_0 size_t EVP_PKEY_meth_get_count(void);
1784
+ OSSL_DEPRECATEDIN_3_0 const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx);
1785
+ # endif
1786
+
1787
+ EVP_KEYMGMT *EVP_KEYMGMT_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
1788
+ const char *properties);
1789
+ int EVP_KEYMGMT_up_ref(EVP_KEYMGMT *keymgmt);
1790
+ void EVP_KEYMGMT_free(EVP_KEYMGMT *keymgmt);
1791
+ const OSSL_PROVIDER *EVP_KEYMGMT_get0_provider(const EVP_KEYMGMT *keymgmt);
1792
+ const char *EVP_KEYMGMT_get0_name(const EVP_KEYMGMT *keymgmt);
1793
+ const char *EVP_KEYMGMT_get0_description(const EVP_KEYMGMT *keymgmt);
1794
+ int EVP_KEYMGMT_is_a(const EVP_KEYMGMT *keymgmt, const char *name);
1795
+ void EVP_KEYMGMT_do_all_provided(OSSL_LIB_CTX *libctx,
1796
+ void (*fn)(EVP_KEYMGMT *keymgmt, void *arg),
1797
+ void *arg);
1798
+ int EVP_KEYMGMT_names_do_all(const EVP_KEYMGMT *keymgmt,
1799
+ void (*fn)(const char *name, void *data),
1800
+ void *data);
1801
+ const OSSL_PARAM *EVP_KEYMGMT_gettable_params(const EVP_KEYMGMT *keymgmt);
1802
+ const OSSL_PARAM *EVP_KEYMGMT_settable_params(const EVP_KEYMGMT *keymgmt);
1803
+ const OSSL_PARAM *EVP_KEYMGMT_gen_settable_params(const EVP_KEYMGMT *keymgmt);
1804
+ const OSSL_PARAM *EVP_KEYMGMT_gen_gettable_params(const EVP_KEYMGMT *keymgmt);
1805
+
1806
+ EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);
1807
+ EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e);
1808
+ EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_name(OSSL_LIB_CTX *libctx,
1809
+ const char *name,
1810
+ const char *propquery);
1811
+ EVP_PKEY_CTX *EVP_PKEY_CTX_new_from_pkey(OSSL_LIB_CTX *libctx,
1812
+ EVP_PKEY *pkey, const char *propquery);
1813
+ EVP_PKEY_CTX *EVP_PKEY_CTX_dup(const EVP_PKEY_CTX *ctx);
1814
+ void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx);
1815
+ int EVP_PKEY_CTX_is_a(EVP_PKEY_CTX *ctx, const char *keytype);
1816
+
1817
+ int EVP_PKEY_CTX_get_params(EVP_PKEY_CTX *ctx, OSSL_PARAM *params);
1818
+ const OSSL_PARAM *EVP_PKEY_CTX_gettable_params(const EVP_PKEY_CTX *ctx);
1819
+ int EVP_PKEY_CTX_set_params(EVP_PKEY_CTX *ctx, const OSSL_PARAM *params);
1820
+ const OSSL_PARAM *EVP_PKEY_CTX_settable_params(const EVP_PKEY_CTX *ctx);
1821
+
1822
+ int EVP_PKEY_CTX_set_algor_params(EVP_PKEY_CTX *ctx, const X509_ALGOR *alg);
1823
+ int EVP_PKEY_CTX_get_algor_params(EVP_PKEY_CTX *ctx, X509_ALGOR *alg);
1824
+ int EVP_PKEY_CTX_get_algor(EVP_PKEY_CTX *ctx, X509_ALGOR **alg);
1825
+
1826
+ int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype,
1827
+ int cmd, int p1, void *p2);
1828
+ int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type,
1829
+ const char *value);
1830
+ int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype,
1831
+ int cmd, uint64_t value);
1832
+
1833
+ int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str);
1834
+ int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex);
1835
+
1836
+ int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md);
1837
+
1838
+ int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx);
1839
+ void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen);
1840
+
1841
+ EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e,
1842
+ const unsigned char *key, int keylen);
1843
+ EVP_PKEY *EVP_PKEY_new_raw_private_key_ex(OSSL_LIB_CTX *libctx,
1844
+ const char *keytype,
1845
+ const char *propq,
1846
+ const unsigned char *priv, size_t len);
1847
+ EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e,
1848
+ const unsigned char *priv,
1849
+ size_t len);
1850
+ EVP_PKEY *EVP_PKEY_new_raw_public_key_ex(OSSL_LIB_CTX *libctx,
1851
+ const char *keytype, const char *propq,
1852
+ const unsigned char *pub, size_t len);
1853
+ EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e,
1854
+ const unsigned char *pub,
1855
+ size_t len);
1856
+ int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv,
1857
+ size_t *len);
1858
+ int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub,
1859
+ size_t *len);
1860
+
1861
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
1862
+ OSSL_DEPRECATEDIN_3_0
1863
+ EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv,
1864
+ size_t len, const EVP_CIPHER *cipher);
1865
+ # endif
1866
+
1867
+ void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data);
1868
+ void *EVP_PKEY_CTX_get_data(const EVP_PKEY_CTX *ctx);
1869
+ EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx);
1870
+
1871
+ EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx);
1872
+
1873
+ void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data);
1874
+ void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx);
1875
+
1876
+ int EVP_PKEY_CTX_set_signature(EVP_PKEY_CTX *pctx,
1877
+ const unsigned char *sig, size_t siglen);
1878
+
1879
+ void EVP_SIGNATURE_free(EVP_SIGNATURE *signature);
1880
+ int EVP_SIGNATURE_up_ref(EVP_SIGNATURE *signature);
1881
+ OSSL_PROVIDER *EVP_SIGNATURE_get0_provider(const EVP_SIGNATURE *signature);
1882
+ EVP_SIGNATURE *EVP_SIGNATURE_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
1883
+ const char *properties);
1884
+ int EVP_SIGNATURE_is_a(const EVP_SIGNATURE *signature, const char *name);
1885
+ const char *EVP_SIGNATURE_get0_name(const EVP_SIGNATURE *signature);
1886
+ const char *EVP_SIGNATURE_get0_description(const EVP_SIGNATURE *signature);
1887
+ void EVP_SIGNATURE_do_all_provided(OSSL_LIB_CTX *libctx,
1888
+ void (*fn)(EVP_SIGNATURE *signature,
1889
+ void *data),
1890
+ void *data);
1891
+ int EVP_SIGNATURE_names_do_all(const EVP_SIGNATURE *signature,
1892
+ void (*fn)(const char *name, void *data),
1893
+ void *data);
1894
+ const OSSL_PARAM *EVP_SIGNATURE_gettable_ctx_params(const EVP_SIGNATURE *sig);
1895
+ const OSSL_PARAM *EVP_SIGNATURE_settable_ctx_params(const EVP_SIGNATURE *sig);
1896
+
1897
+ void EVP_ASYM_CIPHER_free(EVP_ASYM_CIPHER *cipher);
1898
+ int EVP_ASYM_CIPHER_up_ref(EVP_ASYM_CIPHER *cipher);
1899
+ OSSL_PROVIDER *EVP_ASYM_CIPHER_get0_provider(const EVP_ASYM_CIPHER *cipher);
1900
+ EVP_ASYM_CIPHER *EVP_ASYM_CIPHER_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
1901
+ const char *properties);
1902
+ int EVP_ASYM_CIPHER_is_a(const EVP_ASYM_CIPHER *cipher, const char *name);
1903
+ const char *EVP_ASYM_CIPHER_get0_name(const EVP_ASYM_CIPHER *cipher);
1904
+ const char *EVP_ASYM_CIPHER_get0_description(const EVP_ASYM_CIPHER *cipher);
1905
+ void EVP_ASYM_CIPHER_do_all_provided(OSSL_LIB_CTX *libctx,
1906
+ void (*fn)(EVP_ASYM_CIPHER *cipher,
1907
+ void *arg),
1908
+ void *arg);
1909
+ int EVP_ASYM_CIPHER_names_do_all(const EVP_ASYM_CIPHER *cipher,
1910
+ void (*fn)(const char *name, void *data),
1911
+ void *data);
1912
+ const OSSL_PARAM *EVP_ASYM_CIPHER_gettable_ctx_params(const EVP_ASYM_CIPHER *ciph);
1913
+ const OSSL_PARAM *EVP_ASYM_CIPHER_settable_ctx_params(const EVP_ASYM_CIPHER *ciph);
1914
+
1915
+ void EVP_KEM_free(EVP_KEM *wrap);
1916
+ int EVP_KEM_up_ref(EVP_KEM *wrap);
1917
+ OSSL_PROVIDER *EVP_KEM_get0_provider(const EVP_KEM *wrap);
1918
+ EVP_KEM *EVP_KEM_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
1919
+ const char *properties);
1920
+ int EVP_KEM_is_a(const EVP_KEM *wrap, const char *name);
1921
+ const char *EVP_KEM_get0_name(const EVP_KEM *wrap);
1922
+ const char *EVP_KEM_get0_description(const EVP_KEM *wrap);
1923
+ void EVP_KEM_do_all_provided(OSSL_LIB_CTX *libctx,
1924
+ void (*fn)(EVP_KEM *wrap, void *arg), void *arg);
1925
+ int EVP_KEM_names_do_all(const EVP_KEM *wrap,
1926
+ void (*fn)(const char *name, void *data), void *data);
1927
+ const OSSL_PARAM *EVP_KEM_gettable_ctx_params(const EVP_KEM *kem);
1928
+ const OSSL_PARAM *EVP_KEM_settable_ctx_params(const EVP_KEM *kem);
1929
+
1930
+ int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx);
1931
+ int EVP_PKEY_sign_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]);
1932
+ int EVP_PKEY_sign_init_ex2(EVP_PKEY_CTX *ctx,
1933
+ EVP_SIGNATURE *algo, const OSSL_PARAM params[]);
1934
+ int EVP_PKEY_sign(EVP_PKEY_CTX *ctx,
1935
+ unsigned char *sig, size_t *siglen,
1936
+ const unsigned char *tbs, size_t tbslen);
1937
+ int EVP_PKEY_sign_message_init(EVP_PKEY_CTX *ctx,
1938
+ EVP_SIGNATURE *algo, const OSSL_PARAM params[]);
1939
+ int EVP_PKEY_sign_message_update(EVP_PKEY_CTX *ctx,
1940
+ const unsigned char *in, size_t inlen);
1941
+ int EVP_PKEY_sign_message_final(EVP_PKEY_CTX *ctx,
1942
+ unsigned char *sig, size_t *siglen);
1943
+ int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx);
1944
+ int EVP_PKEY_verify_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]);
1945
+ int EVP_PKEY_verify_init_ex2(EVP_PKEY_CTX *ctx,
1946
+ EVP_SIGNATURE *algo, const OSSL_PARAM params[]);
1947
+ int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,
1948
+ const unsigned char *sig, size_t siglen,
1949
+ const unsigned char *tbs, size_t tbslen);
1950
+ int EVP_PKEY_verify_message_init(EVP_PKEY_CTX *ctx,
1951
+ EVP_SIGNATURE *algo, const OSSL_PARAM params[]);
1952
+ int EVP_PKEY_verify_message_update(EVP_PKEY_CTX *ctx,
1953
+ const unsigned char *in, size_t inlen);
1954
+ int EVP_PKEY_verify_message_final(EVP_PKEY_CTX *ctx);
1955
+ int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx);
1956
+ int EVP_PKEY_verify_recover_init_ex(EVP_PKEY_CTX *ctx,
1957
+ const OSSL_PARAM params[]);
1958
+ int EVP_PKEY_verify_recover_init_ex2(EVP_PKEY_CTX *ctx,
1959
+ EVP_SIGNATURE *algo,
1960
+ const OSSL_PARAM params[]);
1961
+ int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,
1962
+ unsigned char *rout, size_t *routlen,
1963
+ const unsigned char *sig, size_t siglen);
1964
+ int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx);
1965
+ int EVP_PKEY_encrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]);
1966
+ int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx,
1967
+ unsigned char *out, size_t *outlen,
1968
+ const unsigned char *in, size_t inlen);
1969
+ int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx);
1970
+ int EVP_PKEY_decrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]);
1971
+ int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx,
1972
+ unsigned char *out, size_t *outlen,
1973
+ const unsigned char *in, size_t inlen);
1974
+
1975
+ int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx);
1976
+ int EVP_PKEY_derive_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]);
1977
+ int EVP_PKEY_derive_set_peer_ex(EVP_PKEY_CTX *ctx, EVP_PKEY *peer,
1978
+ int validate_peer);
1979
+ int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer);
1980
+ int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen);
1981
+
1982
+ int EVP_PKEY_encapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]);
1983
+ int EVP_PKEY_auth_encapsulate_init(EVP_PKEY_CTX *ctx, EVP_PKEY *authpriv,
1984
+ const OSSL_PARAM params[]);
1985
+ int EVP_PKEY_encapsulate(EVP_PKEY_CTX *ctx,
1986
+ unsigned char *wrappedkey, size_t *wrappedkeylen,
1987
+ unsigned char *genkey, size_t *genkeylen);
1988
+ int EVP_PKEY_decapsulate_init(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]);
1989
+ int EVP_PKEY_auth_decapsulate_init(EVP_PKEY_CTX *ctx, EVP_PKEY *authpub,
1990
+ const OSSL_PARAM params[]);
1991
+ int EVP_PKEY_decapsulate(EVP_PKEY_CTX *ctx,
1992
+ unsigned char *unwrapped, size_t *unwrappedlen,
1993
+ const unsigned char *wrapped, size_t wrappedlen);
1994
+ typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx);
1995
+
1996
+ int EVP_PKEY_fromdata_init(EVP_PKEY_CTX *ctx);
1997
+ int EVP_PKEY_fromdata(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey, int selection,
1998
+ OSSL_PARAM param[]);
1999
+ const OSSL_PARAM *EVP_PKEY_fromdata_settable(EVP_PKEY_CTX *ctx, int selection);
2000
+
2001
+ int EVP_PKEY_todata(const EVP_PKEY *pkey, int selection, OSSL_PARAM **params);
2002
+ int EVP_PKEY_export(const EVP_PKEY *pkey, int selection,
2003
+ OSSL_CALLBACK *export_cb, void *export_cbarg);
2004
+
2005
+ const OSSL_PARAM *EVP_PKEY_gettable_params(const EVP_PKEY *pkey);
2006
+ int EVP_PKEY_get_params(const EVP_PKEY *pkey, OSSL_PARAM params[]);
2007
+ int EVP_PKEY_get_int_param(const EVP_PKEY *pkey, const char *key_name,
2008
+ int *out);
2009
+ int EVP_PKEY_get_size_t_param(const EVP_PKEY *pkey, const char *key_name,
2010
+ size_t *out);
2011
+ int EVP_PKEY_get_bn_param(const EVP_PKEY *pkey, const char *key_name,
2012
+ BIGNUM **bn);
2013
+ int EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey, const char *key_name,
2014
+ char *str, size_t max_buf_sz, size_t *out_sz);
2015
+ int EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey, const char *key_name,
2016
+ unsigned char *buf, size_t max_buf_sz,
2017
+ size_t *out_sz);
2018
+
2019
+ const OSSL_PARAM *EVP_PKEY_settable_params(const EVP_PKEY *pkey);
2020
+ int EVP_PKEY_set_params(EVP_PKEY *pkey, OSSL_PARAM params[]);
2021
+ int EVP_PKEY_set_int_param(EVP_PKEY *pkey, const char *key_name, int in);
2022
+ int EVP_PKEY_set_size_t_param(EVP_PKEY *pkey, const char *key_name, size_t in);
2023
+ int EVP_PKEY_set_bn_param(EVP_PKEY *pkey, const char *key_name,
2024
+ const BIGNUM *bn);
2025
+ int EVP_PKEY_set_utf8_string_param(EVP_PKEY *pkey, const char *key_name,
2026
+ const char *str);
2027
+ int EVP_PKEY_set_octet_string_param(EVP_PKEY *pkey, const char *key_name,
2028
+ const unsigned char *buf, size_t bsize);
2029
+
2030
+ int EVP_PKEY_get_ec_point_conv_form(const EVP_PKEY *pkey);
2031
+ int EVP_PKEY_get_field_type(const EVP_PKEY *pkey);
2032
+
2033
+ EVP_PKEY *EVP_PKEY_Q_keygen(OSSL_LIB_CTX *libctx, const char *propq,
2034
+ const char *type, ...);
2035
+ int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx);
2036
+ int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);
2037
+ int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx);
2038
+ int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);
2039
+ int EVP_PKEY_generate(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey);
2040
+ int EVP_PKEY_check(EVP_PKEY_CTX *ctx);
2041
+ int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx);
2042
+ int EVP_PKEY_public_check_quick(EVP_PKEY_CTX *ctx);
2043
+ int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx);
2044
+ int EVP_PKEY_param_check_quick(EVP_PKEY_CTX *ctx);
2045
+ int EVP_PKEY_private_check(EVP_PKEY_CTX *ctx);
2046
+ int EVP_PKEY_pairwise_check(EVP_PKEY_CTX *ctx);
2047
+
2048
+ # define EVP_PKEY_get_ex_new_index(l, p, newf, dupf, freef) \
2049
+ CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EVP_PKEY, l, p, newf, dupf, freef)
2050
+ int EVP_PKEY_set_ex_data(EVP_PKEY *key, int idx, void *arg);
2051
+ void *EVP_PKEY_get_ex_data(const EVP_PKEY *key, int idx);
2052
+
2053
+ void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb);
2054
+ EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx);
2055
+
2056
+ int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx);
2057
+ # ifndef OPENSSL_NO_DEPRECATED_3_0
2058
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth,
2059
+ int (*init) (EVP_PKEY_CTX *ctx));
2060
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_copy
2061
+ (EVP_PKEY_METHOD *pmeth, int (*copy) (EVP_PKEY_CTX *dst,
2062
+ const EVP_PKEY_CTX *src));
2063
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_cleanup
2064
+ (EVP_PKEY_METHOD *pmeth, void (*cleanup) (EVP_PKEY_CTX *ctx));
2065
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_paramgen
2066
+ (EVP_PKEY_METHOD *pmeth, int (*paramgen_init) (EVP_PKEY_CTX *ctx),
2067
+ int (*paramgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey));
2068
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_keygen
2069
+ (EVP_PKEY_METHOD *pmeth, int (*keygen_init) (EVP_PKEY_CTX *ctx),
2070
+ int (*keygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey));
2071
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_sign
2072
+ (EVP_PKEY_METHOD *pmeth, int (*sign_init) (EVP_PKEY_CTX *ctx),
2073
+ int (*sign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
2074
+ const unsigned char *tbs, size_t tbslen));
2075
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_verify
2076
+ (EVP_PKEY_METHOD *pmeth, int (*verify_init) (EVP_PKEY_CTX *ctx),
2077
+ int (*verify) (EVP_PKEY_CTX *ctx, const unsigned char *sig, size_t siglen,
2078
+ const unsigned char *tbs, size_t tbslen));
2079
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_verify_recover
2080
+ (EVP_PKEY_METHOD *pmeth, int (*verify_recover_init) (EVP_PKEY_CTX *ctx),
2081
+ int (*verify_recover) (EVP_PKEY_CTX *ctx, unsigned char *sig,
2082
+ size_t *siglen, const unsigned char *tbs,
2083
+ size_t tbslen));
2084
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_signctx
2085
+ (EVP_PKEY_METHOD *pmeth, int (*signctx_init) (EVP_PKEY_CTX *ctx,
2086
+ EVP_MD_CTX *mctx),
2087
+ int (*signctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
2088
+ EVP_MD_CTX *mctx));
2089
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_verifyctx
2090
+ (EVP_PKEY_METHOD *pmeth, int (*verifyctx_init) (EVP_PKEY_CTX *ctx,
2091
+ EVP_MD_CTX *mctx),
2092
+ int (*verifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, int siglen,
2093
+ EVP_MD_CTX *mctx));
2094
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_encrypt
2095
+ (EVP_PKEY_METHOD *pmeth, int (*encrypt_init) (EVP_PKEY_CTX *ctx),
2096
+ int (*encryptfn) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
2097
+ const unsigned char *in, size_t inlen));
2098
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_decrypt
2099
+ (EVP_PKEY_METHOD *pmeth, int (*decrypt_init) (EVP_PKEY_CTX *ctx),
2100
+ int (*decrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
2101
+ const unsigned char *in, size_t inlen));
2102
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_derive
2103
+ (EVP_PKEY_METHOD *pmeth, int (*derive_init) (EVP_PKEY_CTX *ctx),
2104
+ int (*derive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen));
2105
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_ctrl
2106
+ (EVP_PKEY_METHOD *pmeth, int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1,
2107
+ void *p2),
2108
+ int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value));
2109
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_digestsign
2110
+ (EVP_PKEY_METHOD *pmeth,
2111
+ int (*digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen,
2112
+ const unsigned char *tbs, size_t tbslen));
2113
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_digestverify
2114
+ (EVP_PKEY_METHOD *pmeth,
2115
+ int (*digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig,
2116
+ size_t siglen, const unsigned char *tbs,
2117
+ size_t tbslen));
2118
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_check
2119
+ (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey));
2120
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_public_check
2121
+ (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey));
2122
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_param_check
2123
+ (EVP_PKEY_METHOD *pmeth, int (*check) (EVP_PKEY *pkey));
2124
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_set_digest_custom
2125
+ (EVP_PKEY_METHOD *pmeth, int (*digest_custom) (EVP_PKEY_CTX *ctx,
2126
+ EVP_MD_CTX *mctx));
2127
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_init
2128
+ (const EVP_PKEY_METHOD *pmeth, int (**pinit) (EVP_PKEY_CTX *ctx));
2129
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_copy
2130
+ (const EVP_PKEY_METHOD *pmeth, int (**pcopy) (EVP_PKEY_CTX *dst,
2131
+ const EVP_PKEY_CTX *src));
2132
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_cleanup
2133
+ (const EVP_PKEY_METHOD *pmeth, void (**pcleanup) (EVP_PKEY_CTX *ctx));
2134
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_paramgen
2135
+ (const EVP_PKEY_METHOD *pmeth, int (**pparamgen_init) (EVP_PKEY_CTX *ctx),
2136
+ int (**pparamgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey));
2137
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_keygen
2138
+ (const EVP_PKEY_METHOD *pmeth, int (**pkeygen_init) (EVP_PKEY_CTX *ctx),
2139
+ int (**pkeygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey));
2140
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_sign
2141
+ (const EVP_PKEY_METHOD *pmeth, int (**psign_init) (EVP_PKEY_CTX *ctx),
2142
+ int (**psign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
2143
+ const unsigned char *tbs, size_t tbslen));
2144
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_verify
2145
+ (const EVP_PKEY_METHOD *pmeth, int (**pverify_init) (EVP_PKEY_CTX *ctx),
2146
+ int (**pverify) (EVP_PKEY_CTX *ctx, const unsigned char *sig,
2147
+ size_t siglen, const unsigned char *tbs, size_t tbslen));
2148
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_verify_recover
2149
+ (const EVP_PKEY_METHOD *pmeth,
2150
+ int (**pverify_recover_init) (EVP_PKEY_CTX *ctx),
2151
+ int (**pverify_recover) (EVP_PKEY_CTX *ctx, unsigned char *sig,
2152
+ size_t *siglen, const unsigned char *tbs,
2153
+ size_t tbslen));
2154
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_signctx
2155
+ (const EVP_PKEY_METHOD *pmeth,
2156
+ int (**psignctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx),
2157
+ int (**psignctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
2158
+ EVP_MD_CTX *mctx));
2159
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_verifyctx
2160
+ (const EVP_PKEY_METHOD *pmeth,
2161
+ int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx),
2162
+ int (**pverifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig,
2163
+ int siglen, EVP_MD_CTX *mctx));
2164
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_encrypt
2165
+ (const EVP_PKEY_METHOD *pmeth, int (**pencrypt_init) (EVP_PKEY_CTX *ctx),
2166
+ int (**pencryptfn) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
2167
+ const unsigned char *in, size_t inlen));
2168
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_decrypt
2169
+ (const EVP_PKEY_METHOD *pmeth, int (**pdecrypt_init) (EVP_PKEY_CTX *ctx),
2170
+ int (**pdecrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
2171
+ const unsigned char *in, size_t inlen));
2172
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_derive
2173
+ (const EVP_PKEY_METHOD *pmeth, int (**pderive_init) (EVP_PKEY_CTX *ctx),
2174
+ int (**pderive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen));
2175
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_ctrl
2176
+ (const EVP_PKEY_METHOD *pmeth,
2177
+ int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, void *p2),
2178
+ int (**pctrl_str) (EVP_PKEY_CTX *ctx, const char *type,
2179
+ const char *value));
2180
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_digestsign
2181
+ (const EVP_PKEY_METHOD *pmeth,
2182
+ int (**digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen,
2183
+ const unsigned char *tbs, size_t tbslen));
2184
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_digestverify
2185
+ (const EVP_PKEY_METHOD *pmeth,
2186
+ int (**digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig,
2187
+ size_t siglen, const unsigned char *tbs,
2188
+ size_t tbslen));
2189
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_check
2190
+ (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey));
2191
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_public_check
2192
+ (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey));
2193
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_param_check
2194
+ (const EVP_PKEY_METHOD *pmeth, int (**pcheck) (EVP_PKEY *pkey));
2195
+ OSSL_DEPRECATEDIN_3_0 void EVP_PKEY_meth_get_digest_custom
2196
+ (const EVP_PKEY_METHOD *pmeth,
2197
+ int (**pdigest_custom) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx));
2198
+ # endif
2199
+
2200
+ void EVP_KEYEXCH_free(EVP_KEYEXCH *exchange);
2201
+ int EVP_KEYEXCH_up_ref(EVP_KEYEXCH *exchange);
2202
+ EVP_KEYEXCH *EVP_KEYEXCH_fetch(OSSL_LIB_CTX *ctx, const char *algorithm,
2203
+ const char *properties);
2204
+ OSSL_PROVIDER *EVP_KEYEXCH_get0_provider(const EVP_KEYEXCH *exchange);
2205
+ int EVP_KEYEXCH_is_a(const EVP_KEYEXCH *keyexch, const char *name);
2206
+ const char *EVP_KEYEXCH_get0_name(const EVP_KEYEXCH *keyexch);
2207
+ const char *EVP_KEYEXCH_get0_description(const EVP_KEYEXCH *keyexch);
2208
+ void EVP_KEYEXCH_do_all_provided(OSSL_LIB_CTX *libctx,
2209
+ void (*fn)(EVP_KEYEXCH *keyexch, void *data),
2210
+ void *data);
2211
+ int EVP_KEYEXCH_names_do_all(const EVP_KEYEXCH *keyexch,
2212
+ void (*fn)(const char *name, void *data),
2213
+ void *data);
2214
+ const OSSL_PARAM *EVP_KEYEXCH_gettable_ctx_params(const EVP_KEYEXCH *keyexch);
2215
+ const OSSL_PARAM *EVP_KEYEXCH_settable_ctx_params(const EVP_KEYEXCH *keyexch);
2216
+
2217
+ void EVP_add_alg_module(void);
2218
+
2219
+ int EVP_PKEY_CTX_set_group_name(EVP_PKEY_CTX *ctx, const char *name);
2220
+ int EVP_PKEY_CTX_get_group_name(EVP_PKEY_CTX *ctx, char *name, size_t namelen);
2221
+ int EVP_PKEY_get_group_name(const EVP_PKEY *pkey, char *name, size_t name_sz,
2222
+ size_t *gname_len);
2223
+
2224
+ OSSL_LIB_CTX *EVP_PKEY_CTX_get0_libctx(EVP_PKEY_CTX *ctx);
2225
+ const char *EVP_PKEY_CTX_get0_propq(const EVP_PKEY_CTX *ctx);
2226
+ const OSSL_PROVIDER *EVP_PKEY_CTX_get0_provider(const EVP_PKEY_CTX *ctx);
2227
+
2228
+ # ifdef __cplusplus
2229
+ }
2230
+ # endif
2231
+ #endif