python3-olm 3.2.19__tar.gz

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 (477) hide show
  1. python3_olm-3.2.19/MANIFEST.in +8 -0
  2. python3_olm-3.2.19/PKG-INFO +186 -0
  3. python3_olm-3.2.19/README.md +173 -0
  4. python3_olm-3.2.19/include/olm/base64.h +81 -0
  5. python3_olm-3.2.19/include/olm/cipher.h +142 -0
  6. python3_olm-3.2.19/include/olm/crypto.h +206 -0
  7. python3_olm-3.2.19/include/olm/error.h +80 -0
  8. python3_olm-3.2.19/include/olm/inbound_group_session.h +246 -0
  9. python3_olm-3.2.19/include/olm/megolm.h +99 -0
  10. python3_olm-3.2.19/include/olm/memory.h +41 -0
  11. python3_olm-3.2.19/include/olm/message.h +97 -0
  12. python3_olm-3.2.19/include/olm/olm.h +527 -0
  13. python3_olm-3.2.19/include/olm/olm_export.h +43 -0
  14. python3_olm-3.2.19/include/olm/outbound_group_session.h +192 -0
  15. python3_olm-3.2.19/include/olm/pickle.h +107 -0
  16. python3_olm-3.2.19/include/olm/pickle_encoding.h +80 -0
  17. python3_olm-3.2.19/include/olm/pk.h +298 -0
  18. python3_olm-3.2.19/include/olm/sas.h +197 -0
  19. python3_olm-3.2.19/libolm/.editorconfig +14 -0
  20. python3_olm-3.2.19/libolm/.gitignore +43 -0
  21. python3_olm-3.2.19/libolm/.gitlab-ci.yml +51 -0
  22. python3_olm-3.2.19/libolm/CHANGELOG.rst +459 -0
  23. python3_olm-3.2.19/libolm/CMakeLists.txt +142 -0
  24. python3_olm-3.2.19/libolm/CONTRIBUTING.md +67 -0
  25. python3_olm-3.2.19/libolm/LICENSE +177 -0
  26. python3_olm-3.2.19/libolm/Makefile +419 -0
  27. python3_olm-3.2.19/libolm/OLMKit.podspec +63 -0
  28. python3_olm-3.2.19/libolm/Package.swift +52 -0
  29. python3_olm-3.2.19/libolm/README.md +373 -0
  30. python3_olm-3.2.19/libolm/Windows64.cmake +29 -0
  31. python3_olm-3.2.19/libolm/cmake/OlmConfig.cmake.in +11 -0
  32. python3_olm-3.2.19/libolm/common.mk +4 -0
  33. python3_olm-3.2.19/libolm/exports.py +18 -0
  34. python3_olm-3.2.19/libolm/flake.lock +60 -0
  35. python3_olm-3.2.19/libolm/flake.nix +40 -0
  36. python3_olm-3.2.19/libolm/gitlab-math.lua +17 -0
  37. python3_olm-3.2.19/libolm/include/olm/account.hh +208 -0
  38. python3_olm-3.2.19/libolm/include/olm/base64.h +81 -0
  39. python3_olm-3.2.19/libolm/include/olm/base64.hh +71 -0
  40. python3_olm-3.2.19/libolm/include/olm/cipher.h +142 -0
  41. python3_olm-3.2.19/libolm/include/olm/crypto.h +206 -0
  42. python3_olm-3.2.19/libolm/include/olm/error.h +80 -0
  43. python3_olm-3.2.19/libolm/include/olm/inbound_group_session.h +246 -0
  44. python3_olm-3.2.19/libolm/include/olm/list.hh +119 -0
  45. python3_olm-3.2.19/libolm/include/olm/megolm.h +99 -0
  46. python3_olm-3.2.19/libolm/include/olm/memory.h +41 -0
  47. python3_olm-3.2.19/libolm/include/olm/memory.hh +90 -0
  48. python3_olm-3.2.19/libolm/include/olm/message.h +97 -0
  49. python3_olm-3.2.19/libolm/include/olm/message.hh +141 -0
  50. python3_olm-3.2.19/libolm/include/olm/olm.h +527 -0
  51. python3_olm-3.2.19/libolm/include/olm/olm.hh +4 -0
  52. python3_olm-3.2.19/libolm/include/olm/olm_export.h +43 -0
  53. python3_olm-3.2.19/libolm/include/olm/outbound_group_session.h +192 -0
  54. python3_olm-3.2.19/libolm/include/olm/pickle.h +107 -0
  55. python3_olm-3.2.19/libolm/include/olm/pickle.hh +182 -0
  56. python3_olm-3.2.19/libolm/include/olm/pickle_encoding.h +80 -0
  57. python3_olm-3.2.19/libolm/include/olm/pk.h +298 -0
  58. python3_olm-3.2.19/libolm/include/olm/ratchet.hh +188 -0
  59. python3_olm-3.2.19/libolm/include/olm/sas.h +197 -0
  60. python3_olm-3.2.19/libolm/include/olm/session.hh +168 -0
  61. python3_olm-3.2.19/libolm/include/olm/utility.hh +61 -0
  62. python3_olm-3.2.19/libolm/jenkins.sh +14 -0
  63. python3_olm-3.2.19/libolm/lib/crypto-algorithms/README.md +17 -0
  64. python3_olm-3.2.19/libolm/lib/crypto-algorithms/aes.c +1073 -0
  65. python3_olm-3.2.19/libolm/lib/crypto-algorithms/aes.h +123 -0
  66. python3_olm-3.2.19/libolm/lib/crypto-algorithms/aes_test.c +276 -0
  67. python3_olm-3.2.19/libolm/lib/crypto-algorithms/arcfour.c +45 -0
  68. python3_olm-3.2.19/libolm/lib/crypto-algorithms/arcfour.h +30 -0
  69. python3_olm-3.2.19/libolm/lib/crypto-algorithms/arcfour_test.c +47 -0
  70. python3_olm-3.2.19/libolm/lib/crypto-algorithms/base64.c +135 -0
  71. python3_olm-3.2.19/libolm/lib/crypto-algorithms/base64.h +27 -0
  72. python3_olm-3.2.19/libolm/lib/crypto-algorithms/base64_test.c +54 -0
  73. python3_olm-3.2.19/libolm/lib/crypto-algorithms/blowfish.c +269 -0
  74. python3_olm-3.2.19/libolm/lib/crypto-algorithms/blowfish.h +32 -0
  75. python3_olm-3.2.19/libolm/lib/crypto-algorithms/blowfish_test.c +68 -0
  76. python3_olm-3.2.19/libolm/lib/crypto-algorithms/des.c +269 -0
  77. python3_olm-3.2.19/libolm/lib/crypto-algorithms/des.h +37 -0
  78. python3_olm-3.2.19/libolm/lib/crypto-algorithms/des_test.c +83 -0
  79. python3_olm-3.2.19/libolm/lib/crypto-algorithms/md2.c +104 -0
  80. python3_olm-3.2.19/libolm/lib/crypto-algorithms/md2.h +33 -0
  81. python3_olm-3.2.19/libolm/lib/crypto-algorithms/md2_test.c +58 -0
  82. python3_olm-3.2.19/libolm/lib/crypto-algorithms/md5.c +189 -0
  83. python3_olm-3.2.19/libolm/lib/crypto-algorithms/md5.h +34 -0
  84. python3_olm-3.2.19/libolm/lib/crypto-algorithms/md5_test.c +60 -0
  85. python3_olm-3.2.19/libolm/lib/crypto-algorithms/rot-13.c +35 -0
  86. python3_olm-3.2.19/libolm/lib/crypto-algorithms/rot-13.h +20 -0
  87. python3_olm-3.2.19/libolm/lib/crypto-algorithms/rot-13_test.c +44 -0
  88. python3_olm-3.2.19/libolm/lib/crypto-algorithms/sha1.c +149 -0
  89. python3_olm-3.2.19/libolm/lib/crypto-algorithms/sha1.h +35 -0
  90. python3_olm-3.2.19/libolm/lib/crypto-algorithms/sha1_test.c +58 -0
  91. python3_olm-3.2.19/libolm/lib/crypto-algorithms/sha256.c +159 -0
  92. python3_olm-3.2.19/libolm/lib/crypto-algorithms/sha256.h +34 -0
  93. python3_olm-3.2.19/libolm/lib/crypto-algorithms/sha256_test.c +61 -0
  94. python3_olm-3.2.19/libolm/lib/curve25519-donna/.gitignore +12 -0
  95. python3_olm-3.2.19/libolm/lib/curve25519-donna/LICENSE.md +46 -0
  96. python3_olm-3.2.19/libolm/lib/curve25519-donna/Makefile +56 -0
  97. python3_olm-3.2.19/libolm/lib/curve25519-donna/README +40 -0
  98. python3_olm-3.2.19/libolm/lib/curve25519-donna/contrib/Curve25519Donna.c +118 -0
  99. python3_olm-3.2.19/libolm/lib/curve25519-donna/contrib/Curve25519Donna.h +53 -0
  100. python3_olm-3.2.19/libolm/lib/curve25519-donna/contrib/Curve25519Donna.java +77 -0
  101. python3_olm-3.2.19/libolm/lib/curve25519-donna/contrib/make-snippets +68 -0
  102. python3_olm-3.2.19/libolm/lib/curve25519-donna/curve25519-donna-c64.c +449 -0
  103. python3_olm-3.2.19/libolm/lib/curve25519-donna/curve25519-donna.c +860 -0
  104. python3_olm-3.2.19/libolm/lib/curve25519-donna/curve25519-donna.podspec +13 -0
  105. python3_olm-3.2.19/libolm/lib/curve25519-donna/python-src/curve25519/__init__.py +4 -0
  106. python3_olm-3.2.19/libolm/lib/curve25519-donna/python-src/curve25519/curve25519module.c +105 -0
  107. python3_olm-3.2.19/libolm/lib/curve25519-donna/python-src/curve25519/keys.py +46 -0
  108. python3_olm-3.2.19/libolm/lib/curve25519-donna/python-src/curve25519/test/__init__.py +0 -0
  109. python3_olm-3.2.19/libolm/lib/curve25519-donna/python-src/curve25519/test/test_curve25519.py +99 -0
  110. python3_olm-3.2.19/libolm/lib/curve25519-donna/python-src/curve25519/test/test_speed.py +46 -0
  111. python3_olm-3.2.19/libolm/lib/curve25519-donna/setup.py +38 -0
  112. python3_olm-3.2.19/libolm/lib/curve25519-donna/speed-curve25519.c +50 -0
  113. python3_olm-3.2.19/libolm/lib/curve25519-donna/test-curve25519.c +54 -0
  114. python3_olm-3.2.19/libolm/lib/curve25519-donna/test-noncanon.c +39 -0
  115. python3_olm-3.2.19/libolm/lib/curve25519-donna/test-sc-curve25519.c +72 -0
  116. python3_olm-3.2.19/libolm/lib/curve25519-donna/test-sc-curve25519.s +8 -0
  117. python3_olm-3.2.19/libolm/lib/curve25519-donna.h +18 -0
  118. python3_olm-3.2.19/libolm/lib/doctest/.clang-format +82 -0
  119. python3_olm-3.2.19/libolm/lib/doctest/.editorconfig +12 -0
  120. python3_olm-3.2.19/libolm/lib/doctest/.gitattributes +1 -0
  121. python3_olm-3.2.19/libolm/lib/doctest/.github/FUNDING.yml +4 -0
  122. python3_olm-3.2.19/libolm/lib/doctest/.github/issue_template.md +29 -0
  123. python3_olm-3.2.19/libolm/lib/doctest/.github/pull_request_template.md +26 -0
  124. python3_olm-3.2.19/libolm/lib/doctest/.github/workflows/codeql-analysis.yml +67 -0
  125. python3_olm-3.2.19/libolm/lib/doctest/.github/workflows/main.yml +490 -0
  126. python3_olm-3.2.19/libolm/lib/doctest/.github/workflows/vsenv.bat +17 -0
  127. python3_olm-3.2.19/libolm/lib/doctest/.gitignore +40 -0
  128. python3_olm-3.2.19/libolm/lib/doctest/.travis.yml +413 -0
  129. python3_olm-3.2.19/libolm/lib/doctest/CHANGELOG.md +743 -0
  130. python3_olm-3.2.19/libolm/lib/doctest/CMakeLists.txt +158 -0
  131. python3_olm-3.2.19/libolm/lib/doctest/CONTRIBUTING.md +30 -0
  132. python3_olm-3.2.19/libolm/lib/doctest/LICENSE.txt +21 -0
  133. python3_olm-3.2.19/libolm/lib/doctest/README.md +139 -0
  134. python3_olm-3.2.19/libolm/lib/doctest/WORKSPACE +0 -0
  135. python3_olm-3.2.19/libolm/lib/doctest/appveyor.yml +95 -0
  136. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/assertions.html +173 -0
  137. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/benchmarks.html +212 -0
  138. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/build-systems.html +93 -0
  139. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/commandline.html +143 -0
  140. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/configuration.html +256 -0
  141. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/extensions.html +158 -0
  142. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/faq.html +188 -0
  143. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/features.html +95 -0
  144. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/logging.html +80 -0
  145. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/main.html +72 -0
  146. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/parameterized-tests.html +187 -0
  147. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/readme.html +46 -0
  148. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/reporters.html +116 -0
  149. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/roadmap.html +173 -0
  150. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/strapdown.js/README.md +24 -0
  151. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/strapdown.js/index.html +154 -0
  152. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/strapdown.js/strapdown.css +96 -0
  153. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/strapdown.js/strapdown.js +476 -0
  154. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/strapdown.js/themes/bootstrap-responsive.min.css +9 -0
  155. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/strapdown.js/themes/bootstrap.min.css +9 -0
  156. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/strapdown.js/themes/cyborg.min.css +945 -0
  157. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/strapdown.js/themes/united.min.css +12 -0
  158. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/stringification.html +105 -0
  159. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/testcases.html +182 -0
  160. python3_olm-3.2.19/libolm/lib/doctest/doc/html_generated/tutorial.html +215 -0
  161. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/assertions.md +163 -0
  162. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/benchmarks.md +202 -0
  163. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/build-systems.md +83 -0
  164. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/commandline.md +133 -0
  165. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/configuration.md +246 -0
  166. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/extensions.md +148 -0
  167. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/faq.md +178 -0
  168. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/features.md +85 -0
  169. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/logging.md +70 -0
  170. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/main.md +62 -0
  171. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/parameterized-tests.md +177 -0
  172. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/readme.md +36 -0
  173. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/reporters.md +106 -0
  174. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/roadmap.md +163 -0
  175. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/stringification.md +95 -0
  176. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/testcases.md +172 -0
  177. python3_olm-3.2.19/libolm/lib/doctest/doc/markdown/tutorial.md +205 -0
  178. python3_olm-3.2.19/libolm/lib/doctest/doctest/BUILD.bazel +32 -0
  179. python3_olm-3.2.19/libolm/lib/doctest/doctest/doctest.h +6750 -0
  180. python3_olm-3.2.19/libolm/lib/doctest/doctest/extensions/doctest_mpi.h +120 -0
  181. python3_olm-3.2.19/libolm/lib/doctest/doctest/extensions/doctest_util.h +34 -0
  182. python3_olm-3.2.19/libolm/lib/doctest/doctest/extensions/mpi_reporter.h +236 -0
  183. python3_olm-3.2.19/libolm/lib/doctest/doctest/parts/doctest.cpp +3936 -0
  184. python3_olm-3.2.19/libolm/lib/doctest/doctest/parts/doctest_fwd.h +2806 -0
  185. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/CMakeLists.txt +131 -0
  186. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/alternative_macros.cpp +15 -0
  187. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/assertion_macros.cpp +193 -0
  188. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/asserts_used_outside_of_tests.cpp +74 -0
  189. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/concurrency.cpp +71 -0
  190. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/doctest_proxy.h +71 -0
  191. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/enums.cpp +109 -0
  192. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/header.h +65 -0
  193. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/logging.cpp +79 -0
  194. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/main.cpp +51 -0
  195. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/namespace1.cpp +27 -0
  196. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/namespace2.cpp +24 -0
  197. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/namespace3.cpp +22 -0
  198. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/namespace4.cpp +37 -0
  199. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/namespace5.cpp +39 -0
  200. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/namespace6.cpp +41 -0
  201. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/namespace7.cpp +41 -0
  202. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/namespace8.cpp +45 -0
  203. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/namespace9.cpp +44 -0
  204. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/no_failures.cpp +13 -0
  205. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/reporters_and_listeners.cpp +85 -0
  206. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/stringification.cpp +163 -0
  207. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/subcases.cpp +160 -0
  208. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/templated_test_cases.cpp +72 -0
  209. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_cases_and_suites.cpp +76 -0
  210. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/abort_after.txt +19 -0
  211. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/abort_after_junit.txt +22 -0
  212. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/abort_after_xml.txt +34 -0
  213. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/all_binary.txt +82 -0
  214. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/all_binary_junit.txt +7 -0
  215. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/all_binary_xml.txt +204 -0
  216. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/alternative_macros.cpp.txt +6 -0
  217. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/alternative_macros.cpp_junit.txt +8 -0
  218. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/alternative_macros.cpp_xml.txt +20 -0
  219. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/assertion_macros.cpp.txt +204 -0
  220. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/assertion_macros.cpp_junit.txt +322 -0
  221. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/assertion_macros.cpp_xml.txt +539 -0
  222. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/asserts_used_outside_of_tests.cpp.txt +16 -0
  223. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/asserts_used_outside_of_tests.cpp_junit.txt +15 -0
  224. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/asserts_used_outside_of_tests.cpp_xml.txt +17 -0
  225. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/count.txt +2 -0
  226. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/count_junit.txt +1 -0
  227. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/count_xml.txt +5 -0
  228. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/coverage_maxout.cpp.txt +61 -0
  229. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/coverage_maxout.cpp_junit.txt +80 -0
  230. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/coverage_maxout.cpp_xml.txt +113 -0
  231. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/disabled.txt +1 -0
  232. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/disabled_junit.txt +1 -0
  233. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/disabled_xml.txt +1 -0
  234. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/doctest_proxy.h.txt +6 -0
  235. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/doctest_proxy.h_junit.txt +5 -0
  236. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/doctest_proxy.h_xml.txt +7 -0
  237. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/enums.cpp.txt +65 -0
  238. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/enums.cpp_junit.txt +117 -0
  239. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/enums.cpp_xml.txt +159 -0
  240. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/filter_1.txt +6 -0
  241. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/filter_1_junit.txt +5 -0
  242. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/filter_1_xml.txt +7 -0
  243. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/filter_2.txt +6 -0
  244. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/filter_2_junit.txt +5 -0
  245. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/filter_2_xml.txt +139 -0
  246. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/filter_3.txt +33 -0
  247. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/filter_3_junit.txt +15 -0
  248. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/filter_3_xml.txt +51 -0
  249. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/first_last.txt +27 -0
  250. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/first_last_junit.txt +21 -0
  251. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/first_last_xml.txt +27 -0
  252. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/header.h.txt +25 -0
  253. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/header.h_junit.txt +10 -0
  254. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/header.h_xml.txt +32 -0
  255. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/help.txt +63 -0
  256. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/help_junit.txt +1 -0
  257. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/help_xml.txt +4 -0
  258. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/list_reporters.txt +7 -0
  259. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/list_reporters_junit.txt +1 -0
  260. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/list_reporters_xml.txt +9 -0
  261. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/list_test_cases.txt +8 -0
  262. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/list_test_cases_junit.txt +1 -0
  263. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/list_test_cases_xml.txt +9 -0
  264. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/list_test_suites.txt +6 -0
  265. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/list_test_suites_junit.txt +1 -0
  266. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/list_test_suites_xml.txt +7 -0
  267. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/logging.cpp.txt +84 -0
  268. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/logging.cpp_junit.txt +71 -0
  269. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/logging.cpp_xml.txt +159 -0
  270. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/main.cpp.txt +6 -0
  271. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/main.cpp_junit.txt +7 -0
  272. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/main.cpp_xml.txt +12 -0
  273. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/minimal.txt +100 -0
  274. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/minimal_junit.txt +32 -0
  275. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/minimal_no_fail.txt +9 -0
  276. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/minimal_no_fail_junit.txt +10 -0
  277. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/minimal_no_fail_xml.txt +31 -0
  278. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/minimal_xml.txt +114 -0
  279. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/order_1.txt +108 -0
  280. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/order_1_junit.txt +33 -0
  281. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/order_1_xml.txt +116 -0
  282. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/order_2.txt +101 -0
  283. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/order_2_junit.txt +32 -0
  284. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/order_2_xml.txt +114 -0
  285. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/order_3.txt +6 -0
  286. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/order_3_junit.txt +5 -0
  287. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/order_3_xml.txt +7 -0
  288. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/reporters_and_listeners.cpp.txt +6 -0
  289. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/reporters_and_listeners.cpp_junit.txt +5 -0
  290. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/reporters_and_listeners.cpp_xml.txt +7 -0
  291. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/stringification.cpp.txt +39 -0
  292. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/stringification.cpp_junit.txt +55 -0
  293. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/stringification.cpp_xml.txt +78 -0
  294. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/subcases.cpp.txt +200 -0
  295. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/subcases.cpp_junit.txt +86 -0
  296. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/subcases.cpp_xml.txt +241 -0
  297. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/templated_test_cases.cpp.txt +41 -0
  298. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/templated_test_cases.cpp_junit.txt +56 -0
  299. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/templated_test_cases.cpp_xml.txt +94 -0
  300. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/test_cases_and_suites.cpp.txt +101 -0
  301. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/test_cases_and_suites.cpp_junit.txt +32 -0
  302. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/test_cases_and_suites.cpp_xml.txt +114 -0
  303. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/version.txt +1 -0
  304. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/version_junit.txt +1 -0
  305. python3_olm-3.2.19/libolm/lib/doctest/examples/all_features/test_output/version_xml.txt +4 -0
  306. python3_olm-3.2.19/libolm/lib/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/CMakeLists.txt +63 -0
  307. python3_olm-3.2.19/libolm/lib/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/default.cpp +6 -0
  308. python3_olm-3.2.19/libolm/lib/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/foo.h +41 -0
  309. python3_olm-3.2.19/libolm/lib/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/main.cpp +24 -0
  310. python3_olm-3.2.19/libolm/lib/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/return42.cpp +7 -0
  311. python3_olm-3.2.19/libolm/lib/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/test_output/same_tests_multiple_configurations.txt +45 -0
  312. python3_olm-3.2.19/libolm/lib/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/test_output/same_tests_multiple_configurations_junit.txt +11 -0
  313. python3_olm-3.2.19/libolm/lib/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/test_output/same_tests_multiple_configurations_xml.txt +60 -0
  314. python3_olm-3.2.19/libolm/lib/doctest/examples/combining_the_same_tests_built_differently_in_multiple_shared_objects/test_runner.cpp +5 -0
  315. python3_olm-3.2.19/libolm/lib/doctest/examples/exe_with_static_libs/CMakeLists.txt +27 -0
  316. python3_olm-3.2.19/libolm/lib/doctest/examples/exe_with_static_libs/doctest_force_link_static_lib_in_target.cmake +131 -0
  317. python3_olm-3.2.19/libolm/lib/doctest/examples/exe_with_static_libs/lib_1_src1.cpp +6 -0
  318. python3_olm-3.2.19/libolm/lib/doctest/examples/exe_with_static_libs/lib_1_src2.cpp +6 -0
  319. python3_olm-3.2.19/libolm/lib/doctest/examples/exe_with_static_libs/lib_2_src.cpp +6 -0
  320. python3_olm-3.2.19/libolm/lib/doctest/examples/exe_with_static_libs/main.cpp +4 -0
  321. python3_olm-3.2.19/libolm/lib/doctest/examples/exe_with_static_libs/test_output/exe_with_static_libs.txt +9 -0
  322. python3_olm-3.2.19/libolm/lib/doctest/examples/exe_with_static_libs/test_output/exe_with_static_libs_junit.txt +13 -0
  323. python3_olm-3.2.19/libolm/lib/doctest/examples/exe_with_static_libs/test_output/exe_with_static_libs_xml.txt +24 -0
  324. python3_olm-3.2.19/libolm/lib/doctest/examples/executable_dll_and_plugin/CMakeLists.txt +27 -0
  325. python3_olm-3.2.19/libolm/lib/doctest/examples/executable_dll_and_plugin/dll.cpp +13 -0
  326. python3_olm-3.2.19/libolm/lib/doctest/examples/executable_dll_and_plugin/implementation.cpp +11 -0
  327. python3_olm-3.2.19/libolm/lib/doctest/examples/executable_dll_and_plugin/implementation_2.cpp +10 -0
  328. python3_olm-3.2.19/libolm/lib/doctest/examples/executable_dll_and_plugin/main.cpp +67 -0
  329. python3_olm-3.2.19/libolm/lib/doctest/examples/executable_dll_and_plugin/plugin.cpp +23 -0
  330. python3_olm-3.2.19/libolm/lib/doctest/examples/executable_dll_and_plugin/test_output/executable_dll_and_plugin.txt +31 -0
  331. python3_olm-3.2.19/libolm/lib/doctest/examples/executable_dll_and_plugin/test_output/executable_dll_and_plugin_junit.txt +26 -0
  332. python3_olm-3.2.19/libolm/lib/doctest/examples/executable_dll_and_plugin/test_output/executable_dll_and_plugin_xml.txt +61 -0
  333. python3_olm-3.2.19/libolm/lib/doctest/examples/installed_doctest_cmake/dll/CMakeLists.txt +14 -0
  334. python3_olm-3.2.19/libolm/lib/doctest/examples/installed_doctest_cmake/dll/dll.cpp +22 -0
  335. python3_olm-3.2.19/libolm/lib/doctest/examples/installed_doctest_cmake/dll/dll.h +7 -0
  336. python3_olm-3.2.19/libolm/lib/doctest/examples/installed_doctest_cmake/dll/exporting.h +15 -0
  337. python3_olm-3.2.19/libolm/lib/doctest/examples/installed_doctest_cmake/dll/main.cpp +34 -0
  338. python3_olm-3.2.19/libolm/lib/doctest/examples/installed_doctest_cmake/executable/CMakeLists.txt +9 -0
  339. python3_olm-3.2.19/libolm/lib/doctest/examples/installed_doctest_cmake/executable/main.cpp +35 -0
  340. python3_olm-3.2.19/libolm/lib/doctest/examples/mpi/CMakeLists.txt +7 -0
  341. python3_olm-3.2.19/libolm/lib/doctest/examples/mpi/main.cpp +19 -0
  342. python3_olm-3.2.19/libolm/lib/doctest/examples/mpi/mpi.cpp +36 -0
  343. python3_olm-3.2.19/libolm/lib/doctest/examples/range_based_execution.py +43 -0
  344. python3_olm-3.2.19/libolm/lib/doctest/meson.build +7 -0
  345. python3_olm-3.2.19/libolm/lib/doctest/scripts/bench/bench.py +237 -0
  346. python3_olm-3.2.19/libolm/lib/doctest/scripts/bench/run_all.py +65 -0
  347. python3_olm-3.2.19/libolm/lib/doctest/scripts/bench/tests.json +43 -0
  348. python3_olm-3.2.19/libolm/lib/doctest/scripts/cmake/Config.cmake.in +6 -0
  349. python3_olm-3.2.19/libolm/lib/doctest/scripts/cmake/assemble_single_header.cmake +13 -0
  350. python3_olm-3.2.19/libolm/lib/doctest/scripts/cmake/common.cmake +211 -0
  351. python3_olm-3.2.19/libolm/lib/doctest/scripts/cmake/doctest.cmake +189 -0
  352. python3_olm-3.2.19/libolm/lib/doctest/scripts/cmake/doctestAddTests.cmake +120 -0
  353. python3_olm-3.2.19/libolm/lib/doctest/scripts/cmake/exec_test.cmake +70 -0
  354. python3_olm-3.2.19/libolm/lib/doctest/scripts/coverage_maxout.cpp +149 -0
  355. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/article.txt +257 -0
  356. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/article2.txt +153 -0
  357. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/benchmarks/asserts.png +0 -0
  358. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/benchmarks/header.png +0 -0
  359. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/benchmarks/implement.png +0 -0
  360. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/benchmarks/runtime_assert.png +0 -0
  361. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/benchmarks/runtime_info.png +0 -0
  362. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/cover.png +0 -0
  363. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/cover_888px_wide.png +0 -0
  364. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/initial_release_traffic.png +0 -0
  365. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/icon_1.svg +27 -0
  366. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/icon_2.svg +32 -0
  367. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/icon_3.svg +37 -0
  368. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/icon_4.svg +25 -0
  369. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/icon_5.svg +32 -0
  370. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/icon_6.svg +32 -0
  371. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/logo_1.svg +35 -0
  372. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/logo_2.svg +33 -0
  373. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/logo_3.svg +33 -0
  374. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/logo_4.svg +33 -0
  375. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/logo_5.svg +34 -0
  376. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/logo_6.svg +34 -0
  377. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/logo/logo_7.svg +38 -0
  378. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/using_doctest_888px_wide.gif +0 -0
  379. python3_olm-3.2.19/libolm/lib/doctest/scripts/data/youtube-cppcon-talk-thumbnail.png +0 -0
  380. python3_olm-3.2.19/libolm/lib/doctest/scripts/development_only/doctest/doctest.h +5 -0
  381. python3_olm-3.2.19/libolm/lib/doctest/scripts/generate_html.py +33 -0
  382. python3_olm-3.2.19/libolm/lib/doctest/scripts/hello_world.cpp +14 -0
  383. python3_olm-3.2.19/libolm/lib/doctest/scripts/how_stuff_works/CMakeLists.txt +7 -0
  384. python3_olm-3.2.19/libolm/lib/doctest/scripts/how_stuff_works/how_captures_work.cpp +86 -0
  385. python3_olm-3.2.19/libolm/lib/doctest/scripts/how_stuff_works/how_exception_translators_work.cpp +90 -0
  386. python3_olm-3.2.19/libolm/lib/doctest/scripts/how_stuff_works/how_subcases_work.cpp +116 -0
  387. python3_olm-3.2.19/libolm/lib/doctest/scripts/how_stuff_works/testing_crash_scenarios.cpp +71 -0
  388. python3_olm-3.2.19/libolm/lib/doctest/scripts/playground/CMakeLists.txt +7 -0
  389. python3_olm-3.2.19/libolm/lib/doctest/scripts/playground/main.cpp +26 -0
  390. python3_olm-3.2.19/libolm/lib/doctest/scripts/playground/test.cpp +6 -0
  391. python3_olm-3.2.19/libolm/lib/doctest/scripts/random_dev_notes.md +72 -0
  392. python3_olm-3.2.19/libolm/lib/doctest/scripts/release_process.md +20 -0
  393. python3_olm-3.2.19/libolm/lib/doctest/scripts/update_changelog.py +13 -0
  394. python3_olm-3.2.19/libolm/lib/doctest/scripts/update_stuff.py +49 -0
  395. python3_olm-3.2.19/libolm/lib/doctest/scripts/version.txt +1 -0
  396. python3_olm-3.2.19/libolm/lib/ed25519/ed25519_32.dll +0 -0
  397. python3_olm-3.2.19/libolm/lib/ed25519/ed25519_64.dll +0 -0
  398. python3_olm-3.2.19/libolm/lib/ed25519/readme.md +166 -0
  399. python3_olm-3.2.19/libolm/lib/ed25519/src/add_scalar.c +56 -0
  400. python3_olm-3.2.19/libolm/lib/ed25519/src/ed25519.h +38 -0
  401. python3_olm-3.2.19/libolm/lib/ed25519/src/fe.c +1493 -0
  402. python3_olm-3.2.19/libolm/lib/ed25519/src/fe.h +41 -0
  403. python3_olm-3.2.19/libolm/lib/ed25519/src/fixedint.h +72 -0
  404. python3_olm-3.2.19/libolm/lib/ed25519/src/ge.c +467 -0
  405. python3_olm-3.2.19/libolm/lib/ed25519/src/ge.h +74 -0
  406. python3_olm-3.2.19/libolm/lib/ed25519/src/key_exchange.c +79 -0
  407. python3_olm-3.2.19/libolm/lib/ed25519/src/keypair.c +16 -0
  408. python3_olm-3.2.19/libolm/lib/ed25519/src/precomp_data.h +1391 -0
  409. python3_olm-3.2.19/libolm/lib/ed25519/src/sc.c +814 -0
  410. python3_olm-3.2.19/libolm/lib/ed25519/src/sc.h +12 -0
  411. python3_olm-3.2.19/libolm/lib/ed25519/src/seed.c +40 -0
  412. python3_olm-3.2.19/libolm/lib/ed25519/src/sha512.c +275 -0
  413. python3_olm-3.2.19/libolm/lib/ed25519/src/sha512.h +21 -0
  414. python3_olm-3.2.19/libolm/lib/ed25519/src/sign.c +31 -0
  415. python3_olm-3.2.19/libolm/lib/ed25519/src/verify.c +77 -0
  416. python3_olm-3.2.19/libolm/lib/ed25519/test.c +150 -0
  417. python3_olm-3.2.19/libolm/lib_exports.sh +3 -0
  418. python3_olm-3.2.19/libolm/libolm.version +4 -0
  419. python3_olm-3.2.19/libolm/olm.pc.in +10 -0
  420. python3_olm-3.2.19/libolm/src/account.cpp +580 -0
  421. python3_olm-3.2.19/libolm/src/base64.cpp +187 -0
  422. python3_olm-3.2.19/libolm/src/cipher.cpp +152 -0
  423. python3_olm-3.2.19/libolm/src/crypto.cpp +299 -0
  424. python3_olm-3.2.19/libolm/src/ed25519.c +22 -0
  425. python3_olm-3.2.19/libolm/src/error.c +46 -0
  426. python3_olm-3.2.19/libolm/src/inbound_group_session.c +540 -0
  427. python3_olm-3.2.19/libolm/src/megolm.c +154 -0
  428. python3_olm-3.2.19/libolm/src/memory.cpp +45 -0
  429. python3_olm-3.2.19/libolm/src/message.cpp +406 -0
  430. python3_olm-3.2.19/libolm/src/olm.cpp +846 -0
  431. python3_olm-3.2.19/libolm/src/outbound_group_session.c +390 -0
  432. python3_olm-3.2.19/libolm/src/pickle.cpp +274 -0
  433. python3_olm-3.2.19/libolm/src/pickle_encoding.c +92 -0
  434. python3_olm-3.2.19/libolm/src/pk.cpp +542 -0
  435. python3_olm-3.2.19/libolm/src/ratchet.cpp +625 -0
  436. python3_olm-3.2.19/libolm/src/sas.c +229 -0
  437. python3_olm-3.2.19/libolm/src/session.cpp +531 -0
  438. python3_olm-3.2.19/libolm/src/utility.cpp +57 -0
  439. python3_olm-3.2.19/libolm/tests/CMakeLists.txt +34 -0
  440. python3_olm-3.2.19/libolm/tests/include/doctest.h +6750 -0
  441. python3_olm-3.2.19/libolm/tests/include/testing.hh +42 -0
  442. python3_olm-3.2.19/libolm/tests/include/utils.hh +38 -0
  443. python3_olm-3.2.19/libolm/tests/test_base64.cpp +85 -0
  444. python3_olm-3.2.19/libolm/tests/test_crypto.cpp +248 -0
  445. python3_olm-3.2.19/libolm/tests/test_group_session.cpp +365 -0
  446. python3_olm-3.2.19/libolm/tests/test_list.cpp +89 -0
  447. python3_olm-3.2.19/libolm/tests/test_megolm.cpp +126 -0
  448. python3_olm-3.2.19/libolm/tests/test_message.cpp +108 -0
  449. python3_olm-3.2.19/libolm/tests/test_olm.cpp +671 -0
  450. python3_olm-3.2.19/libolm/tests/test_olm_decrypt.cpp +90 -0
  451. python3_olm-3.2.19/libolm/tests/test_olm_sha256.cpp +19 -0
  452. python3_olm-3.2.19/libolm/tests/test_olm_signature.cpp +89 -0
  453. python3_olm-3.2.19/libolm/tests/test_olm_using_malloc.cpp +208 -0
  454. python3_olm-3.2.19/libolm/tests/test_pk.cpp +262 -0
  455. python3_olm-3.2.19/libolm/tests/test_ratchet.cpp +222 -0
  456. python3_olm-3.2.19/libolm/tests/test_sas.cpp +116 -0
  457. python3_olm-3.2.19/libolm/tests/test_session.cpp +135 -0
  458. python3_olm-3.2.19/libolm/version_script.ver +9 -0
  459. python3_olm-3.2.19/olm/__init__.py +48 -0
  460. python3_olm-3.2.19/olm/_compat.py +67 -0
  461. python3_olm-3.2.19/olm/_finalize.py +64 -0
  462. python3_olm-3.2.19/olm/account.py +321 -0
  463. python3_olm-3.2.19/olm/group_session.py +531 -0
  464. python3_olm-3.2.19/olm/pk.py +453 -0
  465. python3_olm-3.2.19/olm/py.typed +0 -0
  466. python3_olm-3.2.19/olm/sas.py +276 -0
  467. python3_olm-3.2.19/olm/session.py +510 -0
  468. python3_olm-3.2.19/olm/utility.py +149 -0
  469. python3_olm-3.2.19/olm_build.py +104 -0
  470. python3_olm-3.2.19/pyproject.toml +23 -0
  471. python3_olm-3.2.19/python3_olm.egg-info/PKG-INFO +186 -0
  472. python3_olm-3.2.19/python3_olm.egg-info/SOURCES.txt +476 -0
  473. python3_olm-3.2.19/python3_olm.egg-info/dependency_links.txt +1 -0
  474. python3_olm-3.2.19/python3_olm.egg-info/requires.txt +1 -0
  475. python3_olm-3.2.19/python3_olm.egg-info/top_level.txt +2 -0
  476. python3_olm-3.2.19/setup.cfg +10 -0
  477. python3_olm-3.2.19/setup.py +17 -0
@@ -0,0 +1,8 @@
1
+ include include/olm/*.h
2
+ include olm_build.py
3
+ include libolm/*
4
+ include libolm/cmake/*
5
+ include libolm/include/olm/*
6
+ recursive-include libolm/lib *
7
+ include libolm/src/*
8
+ recursive-include libolm/tests *
@@ -0,0 +1,186 @@
1
+ Metadata-Version: 2.4
2
+ Name: python3-olm
3
+ Version: 3.2.19
4
+ Summary: python CFFI bindings for the olm cryptographic ratchet library
5
+ Author-email: Damir Jelić <poljar@termina.org.uk>
6
+ License: Apache-2.0
7
+ Project-URL: homepage, https://gitlab.matrix.org/matrix-org/olm/-/tree/master/python
8
+ Classifier: License :: OSI Approved :: Apache Software License
9
+ Classifier: Topic :: Communications
10
+ Requires-Python: <4.0.0,>=3.9
11
+ Description-Content-Type: text/markdown
12
+ Requires-Dist: cffi>=1.0.0
13
+
14
+ python-olm
15
+ ==========
16
+
17
+ Python bindings for Olm.
18
+
19
+ The specification of the Olm cryptographic ratchet which is used for peer to
20
+ peer sessions of this library can be found [here][4].
21
+
22
+ The specification of the Megolm cryptographic ratchet which is used for group
23
+ sessions of this library can be found [here][5].
24
+
25
+ An example of the implementation of the Olm and Megolm cryptographic protocol
26
+ can be found in the Matrix protocol for which the implementation guide can be
27
+ found [here][6].
28
+
29
+ The full API reference can be found [here][7].
30
+
31
+ # Installation instructions
32
+
33
+ To install from the source package, you will need:
34
+
35
+ - cmake (recommended) or GNU make
36
+ - a C/C++ compiler
37
+
38
+ You can then run `pip install python-olm`.
39
+
40
+ This should work in UNIX-like environments, including macOS, and may work in
41
+ other environments too, but is known to not work yet in Windows.
42
+
43
+ # Accounts
44
+
45
+ Accounts create and hold the central identity of the Olm protocol, they consist of a fingerprint and identity
46
+ key pair. They also produce one time keys that are used to start peer to peer
47
+ encrypted communication channels.
48
+
49
+ ## Account Creation
50
+
51
+ A new account is created with the Account class, it creates a new Olm key pair.
52
+ The public parts of the key pair are available using the identity_keys property
53
+ of the class.
54
+
55
+ ```python
56
+ >>> alice = Account()
57
+ >>> alice.identity_keys
58
+ {'curve25519': '2PytGagXercwHjzQETLcMa3JOsaU2qkPIESaqoi59zE',
59
+ 'ed25519': 'HHpOuFYdHwoa54GxSttz9YmaTmbuVU3js92UTUjYJgM'}
60
+ ```
61
+
62
+
63
+ ## One Time keys
64
+
65
+ One time keys need to be generated before people can start an encrypted peer to
66
+ peer channel to an account.
67
+
68
+ ```python
69
+ >>> alice.generate_one_time_keys(1)
70
+ >>> alice.one_time_keys
71
+ {'curve25519': {'AAAAAQ': 'KiHoW6CIy905UC4V1Frmwr3VW8bTWkBL4uWtWFFllxM'}}
72
+ ```
73
+
74
+ After the one time keys are published they should be marked as such so they
75
+ aren't reused.
76
+
77
+ ```python
78
+ >>> alice.mark_keys_as_published()
79
+ >>> alice.one_time_keys
80
+ {'curve25519': {}}
81
+ ```
82
+
83
+ ## Pickling
84
+
85
+ Accounts should be stored for later reuse, storing an account is done with the
86
+ pickle method while the restoring step is done with the from_pickle class
87
+ method.
88
+
89
+ ```python
90
+ >>> pickle = alice.pickle()
91
+ >>> restored = Account.from_pickle(pickle)
92
+ ```
93
+
94
+ # Sessions
95
+
96
+ Sessions are used to create an encrypted peer to peer communication channel
97
+ between two accounts.
98
+
99
+ ## Session Creation
100
+ ```python
101
+ >>> alice = Account()
102
+ >>> bob = Account()
103
+ >>> bob.generate_one_time_keys(1)
104
+ >>> id_key = bob.identity_keys["curve25519"]
105
+ >>> one_time = list(bob.one_time_keys["curve25519"].values())[0]
106
+ >>> alice_session = OutboundSession(alice, id_key, one_time)
107
+ ```
108
+
109
+ ## Encryption
110
+
111
+ After an outbound session is created an encrypted message can be exchanged:
112
+
113
+ ```python
114
+ >>> message = alice_session.encrypt("It's a secret to everybody")
115
+ >>> message.ciphertext
116
+ 'AwogkL7RoakT9gnjcZMra+y39WXKRmnxBPEaEp6OSueIA0cSIJxGpBoP8YZ+CGweXQ10LujbXMgK88
117
+ xG/JZMQJ5ulK9ZGiC8TYrezNYr3qyIBLlecXr/9wnegvJaSFDmWDVOcf4XfyI/AwogqIZfAklRXGC5b
118
+ ZJcZxVxQGgJ8Dz4OQII8k0Dp8msUXwQACIQvagY1dO55Qvnk5PZ2GF+wdKnvj6Zxl2g'
119
+ >>> message.message_type
120
+ 0
121
+ ```
122
+
123
+ After the message is transfered, bob can create an InboundSession to decrypt the
124
+ message.
125
+
126
+ ```python
127
+ >>> bob_session = InboundSession(bob, message)
128
+ >>> bob_session.decrypt(message)
129
+ "It's a secret to everybody"
130
+ ```
131
+
132
+ ## Pickling
133
+
134
+ Sessions like accounts can be stored for later use the API is the same as for
135
+ accounts.
136
+
137
+ ```python
138
+ >>> pickle = session.pickle()
139
+ >>> restored = Session.from_pickle(pickle)
140
+ ```
141
+
142
+ # Group Sessions
143
+
144
+ Group Sessions are used to create a one-to-many encrypted communication channel.
145
+ The group session key needs to be shared with all participants that should be able
146
+ to decrypt the group messages. Another thing to notice is that, since the group
147
+ session key is ratcheted every time a message is encrypted, the session key should
148
+ be shared before any messages are encrypted.
149
+
150
+ ## Group Session Creation
151
+
152
+ Group sessions aren't bound to an account like peer-to-peer sessions so their
153
+ creation is straightforward.
154
+
155
+ ```python
156
+ >>> alice_group = OutboundGroupSession()
157
+ >>> bob_inbound_group = InboundGroupSession(alice_group.session_key)
158
+ ```
159
+
160
+ ## Group Encryption
161
+
162
+ Group encryption is pretty simple. The important part is to share the session
163
+ key with all participants over a secure channel (e.g. peer-to-peer Olm
164
+ sessions).
165
+
166
+ ```python
167
+ >>> message = alice_group.encrypt("It's a secret to everybody")
168
+ >>> bob_inbound_group.decrypt(message)
169
+ ("It's a secret to everybody", 0)
170
+ ```
171
+
172
+ ## Pickling
173
+
174
+ Pickling works the same way as for peer-to-peer Olm sessions.
175
+
176
+ ```python
177
+ >>> pickle = session.pickle()
178
+ >>> restored = InboundGroupSession.from_pickle(pickle)
179
+ ```
180
+ [1]: https://git.matrix.org/git/olm/about/
181
+ [2]: https://git.matrix.org/git/olm/tree/python?id=f8c61b8f8432d0b0b38d57f513c5048fb42f22ab
182
+ [3]: https://cffi.readthedocs.io/en/latest/
183
+ [4]: https://git.matrix.org/git/olm/about/docs/olm.rst
184
+ [5]: https://git.matrix.org/git/olm/about/docs/megolm.rst
185
+ [6]: https://matrix.org/docs/guides/end-to-end-encryption-implementation-guide
186
+ [7]: https://poljar.github.io/python-olm/html/index.html
@@ -0,0 +1,173 @@
1
+ python-olm
2
+ ==========
3
+
4
+ Python bindings for Olm.
5
+
6
+ The specification of the Olm cryptographic ratchet which is used for peer to
7
+ peer sessions of this library can be found [here][4].
8
+
9
+ The specification of the Megolm cryptographic ratchet which is used for group
10
+ sessions of this library can be found [here][5].
11
+
12
+ An example of the implementation of the Olm and Megolm cryptographic protocol
13
+ can be found in the Matrix protocol for which the implementation guide can be
14
+ found [here][6].
15
+
16
+ The full API reference can be found [here][7].
17
+
18
+ # Installation instructions
19
+
20
+ To install from the source package, you will need:
21
+
22
+ - cmake (recommended) or GNU make
23
+ - a C/C++ compiler
24
+
25
+ You can then run `pip install python-olm`.
26
+
27
+ This should work in UNIX-like environments, including macOS, and may work in
28
+ other environments too, but is known to not work yet in Windows.
29
+
30
+ # Accounts
31
+
32
+ Accounts create and hold the central identity of the Olm protocol, they consist of a fingerprint and identity
33
+ key pair. They also produce one time keys that are used to start peer to peer
34
+ encrypted communication channels.
35
+
36
+ ## Account Creation
37
+
38
+ A new account is created with the Account class, it creates a new Olm key pair.
39
+ The public parts of the key pair are available using the identity_keys property
40
+ of the class.
41
+
42
+ ```python
43
+ >>> alice = Account()
44
+ >>> alice.identity_keys
45
+ {'curve25519': '2PytGagXercwHjzQETLcMa3JOsaU2qkPIESaqoi59zE',
46
+ 'ed25519': 'HHpOuFYdHwoa54GxSttz9YmaTmbuVU3js92UTUjYJgM'}
47
+ ```
48
+
49
+
50
+ ## One Time keys
51
+
52
+ One time keys need to be generated before people can start an encrypted peer to
53
+ peer channel to an account.
54
+
55
+ ```python
56
+ >>> alice.generate_one_time_keys(1)
57
+ >>> alice.one_time_keys
58
+ {'curve25519': {'AAAAAQ': 'KiHoW6CIy905UC4V1Frmwr3VW8bTWkBL4uWtWFFllxM'}}
59
+ ```
60
+
61
+ After the one time keys are published they should be marked as such so they
62
+ aren't reused.
63
+
64
+ ```python
65
+ >>> alice.mark_keys_as_published()
66
+ >>> alice.one_time_keys
67
+ {'curve25519': {}}
68
+ ```
69
+
70
+ ## Pickling
71
+
72
+ Accounts should be stored for later reuse, storing an account is done with the
73
+ pickle method while the restoring step is done with the from_pickle class
74
+ method.
75
+
76
+ ```python
77
+ >>> pickle = alice.pickle()
78
+ >>> restored = Account.from_pickle(pickle)
79
+ ```
80
+
81
+ # Sessions
82
+
83
+ Sessions are used to create an encrypted peer to peer communication channel
84
+ between two accounts.
85
+
86
+ ## Session Creation
87
+ ```python
88
+ >>> alice = Account()
89
+ >>> bob = Account()
90
+ >>> bob.generate_one_time_keys(1)
91
+ >>> id_key = bob.identity_keys["curve25519"]
92
+ >>> one_time = list(bob.one_time_keys["curve25519"].values())[0]
93
+ >>> alice_session = OutboundSession(alice, id_key, one_time)
94
+ ```
95
+
96
+ ## Encryption
97
+
98
+ After an outbound session is created an encrypted message can be exchanged:
99
+
100
+ ```python
101
+ >>> message = alice_session.encrypt("It's a secret to everybody")
102
+ >>> message.ciphertext
103
+ 'AwogkL7RoakT9gnjcZMra+y39WXKRmnxBPEaEp6OSueIA0cSIJxGpBoP8YZ+CGweXQ10LujbXMgK88
104
+ xG/JZMQJ5ulK9ZGiC8TYrezNYr3qyIBLlecXr/9wnegvJaSFDmWDVOcf4XfyI/AwogqIZfAklRXGC5b
105
+ ZJcZxVxQGgJ8Dz4OQII8k0Dp8msUXwQACIQvagY1dO55Qvnk5PZ2GF+wdKnvj6Zxl2g'
106
+ >>> message.message_type
107
+ 0
108
+ ```
109
+
110
+ After the message is transfered, bob can create an InboundSession to decrypt the
111
+ message.
112
+
113
+ ```python
114
+ >>> bob_session = InboundSession(bob, message)
115
+ >>> bob_session.decrypt(message)
116
+ "It's a secret to everybody"
117
+ ```
118
+
119
+ ## Pickling
120
+
121
+ Sessions like accounts can be stored for later use the API is the same as for
122
+ accounts.
123
+
124
+ ```python
125
+ >>> pickle = session.pickle()
126
+ >>> restored = Session.from_pickle(pickle)
127
+ ```
128
+
129
+ # Group Sessions
130
+
131
+ Group Sessions are used to create a one-to-many encrypted communication channel.
132
+ The group session key needs to be shared with all participants that should be able
133
+ to decrypt the group messages. Another thing to notice is that, since the group
134
+ session key is ratcheted every time a message is encrypted, the session key should
135
+ be shared before any messages are encrypted.
136
+
137
+ ## Group Session Creation
138
+
139
+ Group sessions aren't bound to an account like peer-to-peer sessions so their
140
+ creation is straightforward.
141
+
142
+ ```python
143
+ >>> alice_group = OutboundGroupSession()
144
+ >>> bob_inbound_group = InboundGroupSession(alice_group.session_key)
145
+ ```
146
+
147
+ ## Group Encryption
148
+
149
+ Group encryption is pretty simple. The important part is to share the session
150
+ key with all participants over a secure channel (e.g. peer-to-peer Olm
151
+ sessions).
152
+
153
+ ```python
154
+ >>> message = alice_group.encrypt("It's a secret to everybody")
155
+ >>> bob_inbound_group.decrypt(message)
156
+ ("It's a secret to everybody", 0)
157
+ ```
158
+
159
+ ## Pickling
160
+
161
+ Pickling works the same way as for peer-to-peer Olm sessions.
162
+
163
+ ```python
164
+ >>> pickle = session.pickle()
165
+ >>> restored = InboundGroupSession.from_pickle(pickle)
166
+ ```
167
+ [1]: https://git.matrix.org/git/olm/about/
168
+ [2]: https://git.matrix.org/git/olm/tree/python?id=f8c61b8f8432d0b0b38d57f513c5048fb42f22ab
169
+ [3]: https://cffi.readthedocs.io/en/latest/
170
+ [4]: https://git.matrix.org/git/olm/about/docs/olm.rst
171
+ [5]: https://git.matrix.org/git/olm/about/docs/megolm.rst
172
+ [6]: https://matrix.org/docs/guides/end-to-end-encryption-implementation-guide
173
+ [7]: https://poljar.github.io/python-olm/html/index.html
@@ -0,0 +1,81 @@
1
+ /* Copyright 2015, 2016 OpenMarket Ltd
2
+ *
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+
16
+ /* C bindings for base64 functions */
17
+
18
+
19
+ #ifndef OLM_BASE64_H_
20
+ #define OLM_BASE64_H_
21
+
22
+ #include <stddef.h>
23
+ #include <stdint.h>
24
+
25
+ // Note: exports in this file are only for unit tests. Nobody else should be
26
+ // using this externally
27
+ #include "olm/olm_export.h"
28
+
29
+ #ifdef __cplusplus
30
+ extern "C" {
31
+ #endif
32
+
33
+
34
+ /**
35
+ * The number of bytes of unpadded base64 needed to encode a length of input.
36
+ */
37
+ OLM_EXPORT size_t _olm_encode_base64_length(
38
+ size_t input_length
39
+ );
40
+
41
+ /**
42
+ * Encode the raw input as unpadded base64.
43
+ * Writes encode_base64_length(input_length) bytes to the output buffer.
44
+ * The input can overlap with the last three quarters of the output buffer.
45
+ * That is, the input pointer may be output + output_length - input_length.
46
+ *
47
+ * Returns number of bytes encoded
48
+ */
49
+ OLM_EXPORT size_t _olm_encode_base64(
50
+ uint8_t const * input, size_t input_length,
51
+ uint8_t * output
52
+ );
53
+
54
+ /**
55
+ * The number of bytes of raw data a length of unpadded base64 will encode to.
56
+ * Returns size_t(-1) if the length is not a valid length for base64.
57
+ */
58
+ OLM_EXPORT size_t _olm_decode_base64_length(
59
+ size_t input_length
60
+ );
61
+
62
+ /**
63
+ * Decodes the unpadded base64 input to raw bytes.
64
+ * Writes decode_base64_length(input_length) bytes to the output buffer.
65
+ * The output can overlap with the first three quarters of the input buffer.
66
+ * That is, the input pointers and output pointer may be the same.
67
+ *
68
+ * Returns number of bytes decoded
69
+ */
70
+ OLM_EXPORT size_t _olm_decode_base64(
71
+ uint8_t const * input, size_t input_length,
72
+ uint8_t * output
73
+ );
74
+
75
+
76
+ #ifdef __cplusplus
77
+ } // extern "C"
78
+ #endif
79
+
80
+
81
+ #endif /* OLM_BASE64_H_ */
@@ -0,0 +1,142 @@
1
+ /* Copyright 2015 OpenMarket Ltd
2
+ *
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+
16
+ #ifndef OLM_CIPHER_H_
17
+ #define OLM_CIPHER_H_
18
+
19
+ #include <stdint.h>
20
+ #include <stdlib.h>
21
+
22
+ // Note: exports in this file are only for unit tests. Nobody else should be
23
+ // using this externally
24
+ #include "olm/olm_export.h"
25
+
26
+ #ifdef __cplusplus
27
+ extern "C" {
28
+ #endif
29
+
30
+ struct _olm_cipher;
31
+
32
+ struct _olm_cipher_ops {
33
+ /**
34
+ * Returns the length of the message authentication code that will be
35
+ * appended to the output.
36
+ */
37
+ size_t (*mac_length)(const struct _olm_cipher *cipher);
38
+
39
+ /**
40
+ * Returns the length of cipher-text for a given length of plain-text.
41
+ */
42
+ size_t (*encrypt_ciphertext_length)(
43
+ const struct _olm_cipher *cipher,
44
+ size_t plaintext_length
45
+ );
46
+
47
+ /*
48
+ * Encrypts the plain-text into the output buffer and authenticates the
49
+ * contents of the output buffer covering both cipher-text and any other
50
+ * associated data in the output buffer.
51
+ *
52
+ * |---------------------------------------output_length-->|
53
+ * output |--ciphertext_length-->| |---mac_length-->|
54
+ * ciphertext
55
+ *
56
+ * The plain-text pointers and cipher-text pointers may be the same.
57
+ *
58
+ * Returns size_t(-1) if the length of the cipher-text or the output
59
+ * buffer is too small. Otherwise returns the length of the output buffer.
60
+ */
61
+ size_t (*encrypt)(
62
+ const struct _olm_cipher *cipher,
63
+ uint8_t const * key, size_t key_length,
64
+ uint8_t const * plaintext, size_t plaintext_length,
65
+ uint8_t * ciphertext, size_t ciphertext_length,
66
+ uint8_t * output, size_t output_length
67
+ );
68
+
69
+ /**
70
+ * Returns the maximum length of plain-text that a given length of
71
+ * cipher-text can contain.
72
+ */
73
+ size_t (*decrypt_max_plaintext_length)(
74
+ const struct _olm_cipher *cipher,
75
+ size_t ciphertext_length
76
+ );
77
+
78
+ /**
79
+ * Authenticates the input and decrypts the cipher-text into the plain-text
80
+ * buffer.
81
+ *
82
+ * |----------------------------------------input_length-->|
83
+ * input |--ciphertext_length-->| |---mac_length-->|
84
+ * ciphertext
85
+ *
86
+ * The plain-text pointers and cipher-text pointers may be the same.
87
+ *
88
+ * Returns size_t(-1) if the length of the plain-text buffer is too
89
+ * small or if the authentication check fails. Otherwise returns the length
90
+ * of the plain text.
91
+ */
92
+ size_t (*decrypt)(
93
+ const struct _olm_cipher *cipher,
94
+ uint8_t const * key, size_t key_length,
95
+ uint8_t const * input, size_t input_length,
96
+ uint8_t const * ciphertext, size_t ciphertext_length,
97
+ uint8_t * plaintext, size_t max_plaintext_length
98
+ );
99
+ };
100
+
101
+ struct _olm_cipher {
102
+ const struct _olm_cipher_ops *ops;
103
+ /* cipher-specific fields follow */
104
+ };
105
+
106
+ struct _olm_cipher_aes_sha_256 {
107
+ struct _olm_cipher base_cipher;
108
+
109
+ /** context string for the HKDF used for deriving the AES256 key, HMAC key,
110
+ * and AES IV, from the key material passed to encrypt/decrypt.
111
+ */
112
+ uint8_t const * kdf_info;
113
+
114
+ /** length of context string kdf_info */
115
+ size_t kdf_info_length;
116
+ };
117
+
118
+ OLM_EXPORT extern const struct _olm_cipher_ops _olm_cipher_aes_sha_256_ops;
119
+
120
+ /**
121
+ * get an initializer for an instance of struct _olm_cipher_aes_sha_256.
122
+ *
123
+ * To use it, declare:
124
+ *
125
+ * struct _olm_cipher_aes_sha_256 MY_CIPHER =
126
+ * OLM_CIPHER_INIT_AES_SHA_256("MY_KDF");
127
+ * struct _olm_cipher *cipher = OLM_CIPHER_BASE(&MY_CIPHER);
128
+ */
129
+ #define OLM_CIPHER_INIT_AES_SHA_256(KDF_INFO) { \
130
+ /*.base_cipher = */{ &_olm_cipher_aes_sha_256_ops },\
131
+ /*.kdf_info = */(uint8_t *)(KDF_INFO), \
132
+ /*.kdf_info_length = */sizeof(KDF_INFO) - 1 \
133
+ }
134
+ #define OLM_CIPHER_BASE(CIPHER) \
135
+ (&((CIPHER)->base_cipher))
136
+
137
+
138
+ #ifdef __cplusplus
139
+ } /* extern "C" */
140
+ #endif
141
+
142
+ #endif /* OLM_CIPHER_H_ */