cryptoparser 1.0.0__tar.gz → 1.0.2__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 (204) hide show
  1. cryptoparser-1.0.2/.coveragerc +11 -0
  2. cryptoparser-1.0.2/.flake8 +2 -0
  3. cryptoparser-1.0.2/.gitignore +17 -0
  4. cryptoparser-1.0.2/.gitlab-ci.yml +101 -0
  5. cryptoparser-1.0.2/.gitmodules +3 -0
  6. cryptoparser-1.0.2/.pylintrc +20 -0
  7. cryptoparser-1.0.2/.readthedocs.yaml +17 -0
  8. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/CHANGELOG.rst +22 -0
  9. {cryptoparser-1.0.0 → cryptoparser-1.0.2/CryptoParser.egg-info}/PKG-INFO +5 -5
  10. cryptoparser-1.0.2/CryptoParser.egg-info/SOURCES.txt +105 -0
  11. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/CryptoParser.egg-info/requires.txt +1 -2
  12. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/CryptoParser.egg-info/top_level.txt +1 -0
  13. cryptoparser-1.0.2/MANIFEST.in +2 -0
  14. {cryptoparser-1.0.0/CryptoParser.egg-info → cryptoparser-1.0.2}/PKG-INFO +5 -5
  15. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/common/parse.py +10 -8
  16. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/subprotocol.py +2 -2
  17. cryptoparser-1.0.2/docs/.gitignore +2 -0
  18. cryptoparser-1.0.2/docs/changelog.rst +1 -0
  19. cryptoparser-1.0.2/docs/development.rst +11 -0
  20. cryptoparser-1.0.2/docs/features.rst +132 -0
  21. cryptoparser-1.0.2/docs/index.rst +54 -0
  22. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/pyproject.toml +4 -7
  23. cryptoparser-1.0.2/test/common/certs/ecc256.badssl.com.pem +26 -0
  24. cryptoparser-1.0.2/test/common/certs/rsa8192.badssl.com.pem +51 -0
  25. cryptoparser-1.0.2/test/common/certs/rsa8192.badssl.com_certificate.crt +51 -0
  26. cryptoparser-1.0.2/test/common/certs/rsa8192.badssl.com_root_ca.crt +22 -0
  27. cryptoparser-1.0.2/test/common/certs/snakeoil_cert.pem +23 -0
  28. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/common/classes.py +1 -2
  29. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/common/test_field.py +3 -4
  30. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/common/test_parse.py +10 -12
  31. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/dnsrec/test_record.py +4 -6
  32. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/httpx/test_header.py +4 -5
  33. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/ssh/test_key.py +12 -14
  34. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_extension.py +1 -3
  35. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_handshake.py +3 -3
  36. cryptoparser-1.0.0/CryptoParser.egg-info/SOURCES.txt +0 -183
  37. cryptoparser-1.0.0/MANIFEST.in +0 -1
  38. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/__setup__.py +0 -14
  39. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/common/algorithm.py +0 -163
  40. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/common/entity.py +0 -111
  41. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/common/exception.py +0 -27
  42. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/common/grade.py +0 -199
  43. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/common/key.py +0 -567
  44. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/common/parameter.py +0 -149
  45. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/common/stores.py +0 -317
  46. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/common/types.py +0 -520
  47. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/common/utils.py +0 -111
  48. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/dnsrec/algorithm.py +0 -86
  49. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/ssh/algorithm.py +0 -193
  50. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/tls/algorithm.py +0 -323
  51. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/tls/client.py +0 -217
  52. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/tls/version.py +0 -17
  53. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/docs/conf.py +0 -78
  54. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/__init__.py +0 -0
  55. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/classes.py +0 -252
  56. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/test_algorithm.py +0 -77
  57. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/test_entity.py +0 -26
  58. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/test_exception.py +0 -27
  59. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/test_grade.py +0 -88
  60. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/test_key.py +0 -563
  61. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/test_parameter.py +0 -69
  62. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/test_stores.py +0 -332
  63. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/test_types.py +0 -565
  64. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/common/test_utils.py +0 -105
  65. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/dnssec/__init__.py +0 -0
  66. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/dnssec/test_algorithm.py +0 -32
  67. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/ssh/__init__.py +0 -0
  68. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/ssh/test_algorithm.py +0 -52
  69. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/tls/__init__.py +0 -0
  70. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/tls/test_algorithm.py +0 -154
  71. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/tls/test_client.py +0 -21
  72. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/tls/test_version.py +0 -11
  73. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/updaters/__init__.py +0 -0
  74. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/updaters/test_common.py +0 -53
  75. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/updaters/test_ct_log.py +0 -95
  76. cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test/updaters/test_trust_stores.py +0 -342
  77. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/__init__.py +0 -0
  78. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/__setup__.py +0 -14
  79. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/__init__.py +0 -0
  80. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/algorithm.py +0 -163
  81. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/entity.py +0 -111
  82. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/exception.py +0 -27
  83. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/grade.py +0 -199
  84. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/key.py +0 -567
  85. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/parameter.py +0 -149
  86. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/stores.py +0 -317
  87. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/types.py +0 -520
  88. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/common/utils.py +0 -111
  89. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/dnsrec/__init__.py +0 -0
  90. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/dnsrec/algorithm.py +0 -86
  91. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/ssh/__init__.py +0 -0
  92. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/ssh/algorithm.py +0 -193
  93. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/tls/__init__.py +0 -0
  94. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/tls/algorithm.py +0 -323
  95. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/tls/client.py +0 -217
  96. cryptoparser-1.0.0/submodules/cryptodatahub/cryptodatahub/tls/version.py +0 -17
  97. cryptoparser-1.0.0/submodules/cryptodatahub/docs/conf.py +0 -78
  98. cryptoparser-1.0.0/submodules/cryptodatahub/setup.py +0 -5
  99. cryptoparser-1.0.0/submodules/cryptodatahub/test/__init__.py +0 -0
  100. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/__init__.py +0 -0
  101. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/classes.py +0 -252
  102. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/test_algorithm.py +0 -77
  103. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/test_entity.py +0 -26
  104. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/test_exception.py +0 -27
  105. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/test_grade.py +0 -88
  106. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/test_key.py +0 -563
  107. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/test_parameter.py +0 -69
  108. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/test_stores.py +0 -332
  109. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/test_types.py +0 -565
  110. cryptoparser-1.0.0/submodules/cryptodatahub/test/common/test_utils.py +0 -105
  111. cryptoparser-1.0.0/submodules/cryptodatahub/test/dnssec/__init__.py +0 -0
  112. cryptoparser-1.0.0/submodules/cryptodatahub/test/dnssec/test_algorithm.py +0 -32
  113. cryptoparser-1.0.0/submodules/cryptodatahub/test/ssh/__init__.py +0 -0
  114. cryptoparser-1.0.0/submodules/cryptodatahub/test/ssh/test_algorithm.py +0 -52
  115. cryptoparser-1.0.0/submodules/cryptodatahub/test/tls/__init__.py +0 -0
  116. cryptoparser-1.0.0/submodules/cryptodatahub/test/tls/test_algorithm.py +0 -154
  117. cryptoparser-1.0.0/submodules/cryptodatahub/test/tls/test_client.py +0 -21
  118. cryptoparser-1.0.0/submodules/cryptodatahub/test/tls/test_version.py +0 -11
  119. cryptoparser-1.0.0/submodules/cryptodatahub/test/updaters/__init__.py +0 -0
  120. cryptoparser-1.0.0/submodules/cryptodatahub/test/updaters/test_common.py +0 -53
  121. cryptoparser-1.0.0/submodules/cryptodatahub/test/updaters/test_ct_log.py +0 -95
  122. cryptoparser-1.0.0/submodules/cryptodatahub/test/updaters/test_trust_stores.py +0 -342
  123. cryptoparser-1.0.0/submodules/cryptodatahub/updaters/__init__.py +0 -0
  124. cryptoparser-1.0.0/submodules/cryptodatahub/updaters/common.py +0 -120
  125. cryptoparser-1.0.0/submodules/cryptodatahub/updaters/ct_log.py +0 -72
  126. cryptoparser-1.0.0/submodules/cryptodatahub/updaters/trust_stores.py +0 -234
  127. cryptoparser-1.0.0/test/__init__.py +0 -0
  128. cryptoparser-1.0.0/test/common/__init__.py +0 -0
  129. cryptoparser-1.0.0/test/dnsrec/__init__.py +0 -0
  130. cryptoparser-1.0.0/test/httpx/__init__.py +0 -0
  131. cryptoparser-1.0.0/test/ssh/__init__.py +0 -0
  132. cryptoparser-1.0.0/test/tls/__init__.py +0 -0
  133. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/CONTRIBUTING.rst +0 -0
  134. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/CryptoParser.egg-info/dependency_links.txt +0 -0
  135. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/LICENSE.txt +0 -0
  136. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/README.rst +0 -0
  137. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/__init__.py +0 -0
  138. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/__setup__.py +0 -0
  139. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/common/__init__.py +0 -0
  140. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/common/base.py +0 -0
  141. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/common/classes.py +0 -0
  142. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/common/exception.py +0 -0
  143. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/common/field.py +0 -0
  144. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/common/utils.py +0 -0
  145. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/common/x509.py +0 -0
  146. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/dnsrec/__init__.py +0 -0
  147. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/dnsrec/record.py +0 -0
  148. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/dnsrec/txt.py +0 -0
  149. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/httpx/__init__.py +0 -0
  150. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/httpx/header.py +0 -0
  151. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/httpx/parse.py +0 -0
  152. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/httpx/version.py +0 -0
  153. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/ssh/__init__.py +0 -0
  154. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/ssh/key.py +0 -0
  155. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/ssh/record.py +0 -0
  156. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/ssh/subprotocol.py +0 -0
  157. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/ssh/version.py +0 -0
  158. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/__init__.py +0 -0
  159. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/algorithm.py +0 -0
  160. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/ciphersuite.py +0 -0
  161. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/extension.py +0 -0
  162. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/grease.py +0 -0
  163. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/ldap.py +0 -0
  164. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/mysql.py +0 -0
  165. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/openvpn.py +0 -0
  166. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/postgresql.py +0 -0
  167. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/rdp.py +0 -0
  168. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/record.py +0 -0
  169. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/cryptoparser/tls/version.py +0 -0
  170. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/docs/conf.py +0 -0
  171. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/setup.cfg +0 -0
  172. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/setup.py +0 -0
  173. {cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub → cryptoparser-1.0.2/test}/__init__.py +0 -0
  174. {cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub → cryptoparser-1.0.2/test}/common/__init__.py +0 -0
  175. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/common/test_algorithm.py +0 -0
  176. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/common/test_base.py +0 -0
  177. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/common/test_classes.py +0 -0
  178. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/common/test_exception.py +0 -0
  179. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/common/test_utils.py +0 -0
  180. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/common/test_x509.py +0 -0
  181. {cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub → cryptoparser-1.0.2/test}/dnsrec/__init__.py +0 -0
  182. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/dnsrec/test_txt.py +0 -0
  183. {cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/ssh → cryptoparser-1.0.2/test/httpx}/__init__.py +0 -0
  184. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/httpx/classes.py +0 -0
  185. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/httpx/test_version.py +0 -0
  186. {cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/cryptodatahub/tls → cryptoparser-1.0.2/test/ssh}/__init__.py +0 -0
  187. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/ssh/test_ciphersuites.py +0 -0
  188. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/ssh/test_record.py +0 -0
  189. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/ssh/test_subprotocol.py +0 -0
  190. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/ssh/test_version.py +0 -0
  191. {cryptoparser-1.0.0/submodules/cryptodatahub/build/lib/test → cryptoparser-1.0.2/test/tls}/__init__.py +0 -0
  192. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/classes.py +0 -0
  193. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_alert.py +0 -0
  194. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_application_data.py +0 -0
  195. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_change_cipher_spec.py +0 -0
  196. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_ciphersuite.py +0 -0
  197. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_grease.py +0 -0
  198. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_ldap.py +0 -0
  199. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_mysql.py +0 -0
  200. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_openvpn.py +0 -0
  201. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_postgresql.py +0 -0
  202. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_rdp.py +0 -0
  203. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_record.py +0 -0
  204. {cryptoparser-1.0.0 → cryptoparser-1.0.2}/test/tls/test_version.py +0 -0
@@ -0,0 +1,11 @@
1
+ [run]
2
+ source = cryptoparser
3
+ omit = cryptoparser/__setup__.py
4
+
5
+ [report]
6
+ exclude_lines =
7
+ pragma: no cover
8
+ raise NotImplementedError
9
+ fail_under = 100
10
+ include = cryptoparser/*
11
+ show_missing = True
@@ -0,0 +1,2 @@
1
+ [flake8]
2
+ max-line-length = 120
@@ -0,0 +1,17 @@
1
+ *.orig
2
+ *.rej
3
+
4
+ *.swp
5
+
6
+ *.pyc
7
+
8
+ *.egg-info
9
+
10
+ /.coverage
11
+
12
+ /.eggs
13
+ /.tox
14
+ /Pipfile
15
+ /Pipfile.lock
16
+ /build
17
+ /dist
@@ -0,0 +1,101 @@
1
+ image: python
2
+
3
+ stages:
4
+ - earlytest
5
+ - fulltest
6
+ - deploy
7
+
8
+ before_script:
9
+ - pip install tox .[tests]
10
+
11
+ variables:
12
+ GIT_SUBMODULE_DEPTH: 1
13
+ GIT_SUBMODULE_STRATEGY: recursive
14
+ PYTHONPATH: "submodules/cryptodatahub"
15
+
16
+ pylint:
17
+ image: python:3.14-slim
18
+ stage: earlytest
19
+ script: tox -e pylint
20
+
21
+ pep8:
22
+ image: python:3.14-slim
23
+ stage: earlytest
24
+ script: tox -e pep8
25
+
26
+ python314:
27
+ image: python:3.14-slim
28
+ stage: earlytest
29
+ script: tox -e py314
30
+
31
+ python39:
32
+ image: python:3.9-slim
33
+ stage: fulltest
34
+ script: tox -e py39
35
+
36
+ python310:
37
+ image: python:3.10-slim
38
+ stage: fulltest
39
+ script: tox -e py310
40
+
41
+ python311:
42
+ image: python:3.11-slim
43
+ stage: fulltest
44
+ script: tox -e py311
45
+
46
+ python312:
47
+ image: python:3.12-slim
48
+ stage: fulltest
49
+ script: tox -e py312
50
+
51
+ python313:
52
+ image: python:3.13-slim
53
+ stage: fulltest
54
+ script: tox -e py313
55
+
56
+ pythonrc:
57
+ image: python:3.15-rc-slim
58
+ stage: fulltest
59
+ script: tox -e py315
60
+
61
+ pypy3:
62
+ image: pypy:3-slim
63
+ stage: fulltest
64
+ script: tox -e pypy3
65
+
66
+ coveralls:
67
+ image: python:3.12-slim
68
+ variables:
69
+ CI_NAME: gitlab
70
+ CI_BUILD_NUMBER: "${CI_JOB_ID}"
71
+ CI_BUILD_URL: "${CI_JOB_URL}"
72
+ CI_BRANCH: "${CI_COMMIT_REF_NAME}"
73
+ GIT_SUBMODULE_DEPTH: 1
74
+ GIT_SUBMODULE_STRATEGY: recursive
75
+ PYTHONPATH: "submodules/cryptodatahub"
76
+ stage: deploy
77
+ script:
78
+ - pip install coveralls
79
+ - pip install .
80
+ - pip install .[tests]
81
+ - coverage run -m unittest -v -f
82
+ - coveralls
83
+ only:
84
+ refs:
85
+ - master
86
+
87
+ obs:
88
+ image:
89
+ name: coroner/python_obs:1.0.0
90
+ pull_policy: always
91
+ stage: deploy
92
+ variables:
93
+ GIT_SUBMODULE_DEPTH: 1
94
+ GIT_SUBMODULE_STRATEGY: recursive
95
+ before_script: []
96
+ script:
97
+ - obs.sh
98
+ only:
99
+ refs:
100
+ - master
101
+ - tags
@@ -0,0 +1,3 @@
1
+ [submodule "submodules/cryptodatahub"]
2
+ path = submodules/cryptodatahub
3
+ url = https://gitlab.com/coroner/cryptodatahub.git
@@ -0,0 +1,20 @@
1
+ [MAIN]
2
+
3
+ jobs=0
4
+
5
+ [MASTER]
6
+
7
+ load-plugins = pylint.extensions.no_self_use
8
+
9
+ [FORMAT]
10
+
11
+ max-line-length=120
12
+
13
+ [MESSAGES CONTROL]
14
+
15
+ disable=
16
+ missing-docstring,
17
+ too-few-public-methods,
18
+ too-many-function-args,
19
+ too-many-ancestors,
20
+ duplicate-code,
@@ -0,0 +1,17 @@
1
+ version: 2
2
+
3
+ sphinx:
4
+ configuration: docs/conf.py
5
+ builder: dirhtml
6
+
7
+ build:
8
+ os: "ubuntu-22.04"
9
+ tools:
10
+ python: "3.10"
11
+
12
+ python:
13
+ install:
14
+ - method: pip
15
+ path: .
16
+ extra_requirements:
17
+ - docs
@@ -2,6 +2,28 @@
2
2
  Changelog
3
3
  =========
4
4
 
5
+ -------------------
6
+ 1.0.2 - 2025-12-30
7
+ -------------------
8
+
9
+ Notable fixes
10
+ =============
11
+
12
+ - Generic
13
+
14
+ - Purge submodules directory from distribution (#90)
15
+
16
+ -------------------
17
+ 1.0.1 - 2025-12-07
18
+ -------------------
19
+
20
+ Refactor
21
+ ========
22
+
23
+ - Generic
24
+
25
+ - Remove unnecessary dateutil dependency (#89)
26
+
5
27
  -------------------
6
28
  1.0.0 - 2025-01-05
7
29
  -------------------
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: CryptoParser
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: An analysis oriented security protocol parser and generator
5
5
  Author-email: Szilárd Pfeiffer <coroner@pfeifferszilard.hu>
6
6
  Maintainer-email: Szilárd Pfeiffer <coroner@pfeifferszilard.hu>
@@ -17,7 +17,6 @@ Classifier: Framework :: tox
17
17
  Classifier: Intended Audience :: Information Technology
18
18
  Classifier: Intended Audience :: Science/Research
19
19
  Classifier: Intended Audience :: System Administrators
20
- Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
21
20
  Classifier: Natural Language :: English
22
21
  Classifier: Operating System :: MacOS
23
22
  Classifier: Operating System :: Microsoft :: Windows
@@ -27,6 +26,7 @@ Classifier: Programming Language :: Python :: 3.10
27
26
  Classifier: Programming Language :: Python :: 3.11
28
27
  Classifier: Programming Language :: Python :: 3.12
29
28
  Classifier: Programming Language :: Python :: 3.13
29
+ Classifier: Programming Language :: Python :: 3.14
30
30
  Classifier: Programming Language :: Python :: Implementation :: CPython
31
31
  Classifier: Programming Language :: Python :: Implementation :: PyPy
32
32
  Classifier: Programming Language :: Python
@@ -40,14 +40,14 @@ Description-Content-Type: text/x-rst
40
40
  License-File: LICENSE.txt
41
41
  Requires-Dist: asn1crypto
42
42
  Requires-Dist: attrs
43
- Requires-Dist: cryptodatahub==1.0.0
44
- Requires-Dist: python-dateutil
43
+ Requires-Dist: cryptodatahub==1.0.2
45
44
  Requires-Dist: urllib3
46
45
  Provides-Extra: tests
47
46
  Requires-Dist: pyfakefs; extra == "tests"
48
47
  Provides-Extra: docs
49
48
  Requires-Dist: sphinx; extra == "docs"
50
49
  Requires-Dist: sphinx-sitemap; extra == "docs"
50
+ Dynamic: license-file
51
51
 
52
52
  .. image:: https://gitlab.com/coroner/cryptoparser/badges/master/pipeline.svg
53
53
  :alt: Pipeline
@@ -0,0 +1,105 @@
1
+ .coveragerc
2
+ .flake8
3
+ .gitignore
4
+ .gitlab-ci.yml
5
+ .gitmodules
6
+ .pylintrc
7
+ .readthedocs.yaml
8
+ CHANGELOG.rst
9
+ CONTRIBUTING.rst
10
+ LICENSE.txt
11
+ MANIFEST.in
12
+ README.rst
13
+ pyproject.toml
14
+ setup.py
15
+ CryptoParser.egg-info/PKG-INFO
16
+ CryptoParser.egg-info/SOURCES.txt
17
+ CryptoParser.egg-info/dependency_links.txt
18
+ CryptoParser.egg-info/requires.txt
19
+ CryptoParser.egg-info/top_level.txt
20
+ cryptoparser/__init__.py
21
+ cryptoparser/__setup__.py
22
+ cryptoparser/common/__init__.py
23
+ cryptoparser/common/base.py
24
+ cryptoparser/common/classes.py
25
+ cryptoparser/common/exception.py
26
+ cryptoparser/common/field.py
27
+ cryptoparser/common/parse.py
28
+ cryptoparser/common/utils.py
29
+ cryptoparser/common/x509.py
30
+ cryptoparser/dnsrec/__init__.py
31
+ cryptoparser/dnsrec/record.py
32
+ cryptoparser/dnsrec/txt.py
33
+ cryptoparser/httpx/__init__.py
34
+ cryptoparser/httpx/header.py
35
+ cryptoparser/httpx/parse.py
36
+ cryptoparser/httpx/version.py
37
+ cryptoparser/ssh/__init__.py
38
+ cryptoparser/ssh/key.py
39
+ cryptoparser/ssh/record.py
40
+ cryptoparser/ssh/subprotocol.py
41
+ cryptoparser/ssh/version.py
42
+ cryptoparser/tls/__init__.py
43
+ cryptoparser/tls/algorithm.py
44
+ cryptoparser/tls/ciphersuite.py
45
+ cryptoparser/tls/extension.py
46
+ cryptoparser/tls/grease.py
47
+ cryptoparser/tls/ldap.py
48
+ cryptoparser/tls/mysql.py
49
+ cryptoparser/tls/openvpn.py
50
+ cryptoparser/tls/postgresql.py
51
+ cryptoparser/tls/rdp.py
52
+ cryptoparser/tls/record.py
53
+ cryptoparser/tls/subprotocol.py
54
+ cryptoparser/tls/version.py
55
+ docs/.gitignore
56
+ docs/changelog.rst
57
+ docs/conf.py
58
+ docs/development.rst
59
+ docs/features.rst
60
+ docs/index.rst
61
+ test/__init__.py
62
+ test/common/__init__.py
63
+ test/common/classes.py
64
+ test/common/test_algorithm.py
65
+ test/common/test_base.py
66
+ test/common/test_classes.py
67
+ test/common/test_exception.py
68
+ test/common/test_field.py
69
+ test/common/test_parse.py
70
+ test/common/test_utils.py
71
+ test/common/test_x509.py
72
+ test/common/certs/ecc256.badssl.com.pem
73
+ test/common/certs/rsa8192.badssl.com.pem
74
+ test/common/certs/rsa8192.badssl.com_certificate.crt
75
+ test/common/certs/rsa8192.badssl.com_root_ca.crt
76
+ test/common/certs/snakeoil_cert.pem
77
+ test/dnsrec/__init__.py
78
+ test/dnsrec/test_record.py
79
+ test/dnsrec/test_txt.py
80
+ test/httpx/__init__.py
81
+ test/httpx/classes.py
82
+ test/httpx/test_header.py
83
+ test/httpx/test_version.py
84
+ test/ssh/__init__.py
85
+ test/ssh/test_ciphersuites.py
86
+ test/ssh/test_key.py
87
+ test/ssh/test_record.py
88
+ test/ssh/test_subprotocol.py
89
+ test/ssh/test_version.py
90
+ test/tls/__init__.py
91
+ test/tls/classes.py
92
+ test/tls/test_alert.py
93
+ test/tls/test_application_data.py
94
+ test/tls/test_change_cipher_spec.py
95
+ test/tls/test_ciphersuite.py
96
+ test/tls/test_extension.py
97
+ test/tls/test_grease.py
98
+ test/tls/test_handshake.py
99
+ test/tls/test_ldap.py
100
+ test/tls/test_mysql.py
101
+ test/tls/test_openvpn.py
102
+ test/tls/test_postgresql.py
103
+ test/tls/test_rdp.py
104
+ test/tls/test_record.py
105
+ test/tls/test_version.py
@@ -1,7 +1,6 @@
1
1
  asn1crypto
2
2
  attrs
3
- cryptodatahub==1.0.0
4
- python-dateutil
3
+ cryptodatahub==1.0.2
5
4
  urllib3
6
5
 
7
6
  [docs]
@@ -1,4 +1,5 @@
1
1
  cryptoparser
2
+ dist
2
3
  docs
3
4
  submodules
4
5
  test
@@ -0,0 +1,2 @@
1
+ include *.rst
2
+ prune submodules
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: CryptoParser
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: An analysis oriented security protocol parser and generator
5
5
  Author-email: Szilárd Pfeiffer <coroner@pfeifferszilard.hu>
6
6
  Maintainer-email: Szilárd Pfeiffer <coroner@pfeifferszilard.hu>
@@ -17,7 +17,6 @@ Classifier: Framework :: tox
17
17
  Classifier: Intended Audience :: Information Technology
18
18
  Classifier: Intended Audience :: Science/Research
19
19
  Classifier: Intended Audience :: System Administrators
20
- Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
21
20
  Classifier: Natural Language :: English
22
21
  Classifier: Operating System :: MacOS
23
22
  Classifier: Operating System :: Microsoft :: Windows
@@ -27,6 +26,7 @@ Classifier: Programming Language :: Python :: 3.10
27
26
  Classifier: Programming Language :: Python :: 3.11
28
27
  Classifier: Programming Language :: Python :: 3.12
29
28
  Classifier: Programming Language :: Python :: 3.13
29
+ Classifier: Programming Language :: Python :: 3.14
30
30
  Classifier: Programming Language :: Python :: Implementation :: CPython
31
31
  Classifier: Programming Language :: Python :: Implementation :: PyPy
32
32
  Classifier: Programming Language :: Python
@@ -40,14 +40,14 @@ Description-Content-Type: text/x-rst
40
40
  License-File: LICENSE.txt
41
41
  Requires-Dist: asn1crypto
42
42
  Requires-Dist: attrs
43
- Requires-Dist: cryptodatahub==1.0.0
44
- Requires-Dist: python-dateutil
43
+ Requires-Dist: cryptodatahub==1.0.2
45
44
  Requires-Dist: urllib3
46
45
  Provides-Extra: tests
47
46
  Requires-Dist: pyfakefs; extra == "tests"
48
47
  Provides-Extra: docs
49
48
  Requires-Dist: sphinx; extra == "docs"
50
49
  Requires-Dist: sphinx-sitemap; extra == "docs"
50
+ Dynamic: license-file
51
51
 
52
52
  .. image:: https://gitlab.com/coroner/cryptoparser/badges/master/pipeline.svg
53
53
  :alt: Pipeline
@@ -9,10 +9,6 @@ import time
9
9
 
10
10
  import attr
11
11
 
12
- import dateutil
13
- import dateutil.parser
14
- import dateutil.tz
15
-
16
12
  from cryptodatahub.common.exception import InvalidValue
17
13
  from cryptodatahub.common.types import CryptoDataEnumBase, CryptoDataEnumCodedBase
18
14
 
@@ -466,9 +462,15 @@ class ParserText(ParserBase):
466
462
  def parse_date_time(self, name):
467
463
  try:
468
464
  value = self._parsable[self._parsed_length:]
469
- date_time = dateutil.parser.parse(value.decode(self._encoding))
470
- except ValueError as e:
471
- raise InvalidValue(value, type(self), 'value') from e
465
+ value_str = value.decode(self._encoding)
466
+
467
+ date_time = datetime.datetime.strptime(value_str, '%a, %d %b %Y %H:%M:%S %z')
468
+ except ValueError:
469
+ try:
470
+ date_time = datetime.datetime.strptime(value_str, '%a, %d %b %Y %H:%M:%S GMT')
471
+ date_time = date_time.replace(tzinfo=datetime.timezone.utc)
472
+ except ValueError as e:
473
+ raise InvalidValue(value, type(self), 'value') from e
472
474
 
473
475
  self._parsed_values[name] = date_time
474
476
  self._parsed_length = len(self._parsable)
@@ -500,7 +502,7 @@ class ParserBinary(ParserBase):
500
502
  if milliseconds:
501
503
  millis = value % 1000
502
504
  value //= 1000
503
- value = datetime.datetime.fromtimestamp(0x00000000ffffffff & value, dateutil.tz.UTC)
505
+ value = datetime.datetime.fromtimestamp(0x00000000ffffffff & value, datetime.timezone.utc)
504
506
  if milliseconds:
505
507
  value += datetime.timedelta(milliseconds=millis)
506
508
  self._parsed_values[name] = value
@@ -293,7 +293,7 @@ class TlsHandshakeHelloRandom(ParsableBase):
293
293
 
294
294
  @time.default
295
295
  def _default_time(self): # pylint: disable=no-self-use
296
- return datetime.datetime.utcnow()
296
+ return datetime.datetime.now(datetime.timezone.utc)
297
297
 
298
298
  @random.default
299
299
  def _default_random(self): # pylint: disable=no-self-use
@@ -305,7 +305,7 @@ class TlsHandshakeHelloRandom(ParsableBase):
305
305
  def _parse(cls, parsable):
306
306
  parser = ParserBinary(parsable)
307
307
 
308
- parser.parse_numeric('time', 4, datetime.datetime.utcfromtimestamp)
308
+ parser.parse_timestamp('time', item_size=4)
309
309
  parser.parse_parsable('random', TlsHandshakeHelloRandomBytes)
310
310
 
311
311
  return TlsHandshakeHelloRandom(parser['time'], parser['random']), parser.parsed_length
@@ -0,0 +1,2 @@
1
+ _build
2
+ html
@@ -0,0 +1 @@
1
+ .. include:: ../CHANGELOG.rst
@@ -0,0 +1,11 @@
1
+ -----------
2
+ Development
3
+ -----------
4
+
5
+ If you want to setup a development environment, you are in need of `pipenv <https://docs.pipenv.org/>`__.
6
+
7
+ .. code:: shell
8
+
9
+ $ cd cryptoparser
10
+ $ pipenv install --dev
11
+ $ pipenv shell
@@ -0,0 +1,132 @@
1
+ --------
2
+ Features
3
+ --------
4
+
5
+ Supported Protocols
6
+ ===================
7
+
8
+ Secure Shell (SSH)
9
+ ------------------
10
+
11
+ - `SSH 2.0 <https://tools.ietf.org/html/rfc4253>`__
12
+
13
+ Secure Socket Layer (SSL)
14
+ -------------------------
15
+
16
+ - `SSL 2.0 <https://tools.ietf.org/html/draft-hickman-netscape-ssl-00>`__
17
+ - `SSL 3.0 <https://tools.ietf.org/html/rfc6101>`__
18
+
19
+ Transport Layer Security (TLS)
20
+ ------------------------------
21
+
22
+ - `TLS 1.0 <https://tools.ietf.org/html/rfc2246>`__
23
+ - `TLS 1.1 <https://tools.ietf.org/html/rfc4346>`__
24
+ - `TLS 1.2 <https://tools.ietf.org/html/rfc5246>`__
25
+ - `TLS 1.3 <https://tools.ietf.org/html/rfc8446>`__
26
+
27
+ Domain Name System (DNS)
28
+ ------------------------
29
+
30
+ - `DNSSEC <https://www.rfc-editor.org/rfc/rfc4034>`__ (Domain Name System Security Extensions)
31
+
32
+ Protocol Specific Features
33
+ ==========================
34
+
35
+ Hypertext Transfer Protocol (HTTP)
36
+ ----------------------------------
37
+
38
+ 1. supports header wire format parsing
39
+ 2. supports detailed parsing of generic headers
40
+ (`Content-Type <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type>`__,
41
+ `NEL <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/NEL>`__ (Network Error Logging),
42
+ `Server <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server>`__,
43
+ `Set-Cookie <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie>`__)
44
+ 3. supports detailed parsing of caching headers
45
+ (`Age <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Age>`__,
46
+ `Cache-Control <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control>`__,
47
+ `Date <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Date>`__,
48
+ `ETag <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag>`__,
49
+ `Expires <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expires>`__,
50
+ `Last-Modified <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified>`__,
51
+ `Pragma <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Pragma>`__)
52
+ 4. supports detailed parsing of security headers
53
+ (`Content Security Policy <https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP>`__ (CSP),
54
+ `Content-Security-Policy-Report-Only <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only>`__,
55
+ `Expect-CT <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expect-CT>`__,
56
+ `Expect-Staple <https://scotthelme.co.uk/designing-a-new-security-header-expect-staple>`__,
57
+ `HTTP Public Key Pinning <https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning>`__ (HPKP),
58
+ `Referrer-Policy <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy>`__,
59
+ `Strict-Transport-Security <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security>`__,
60
+ `X-Content-Type-Options <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options>`__,
61
+ `X-Frame-Options <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options>`__,
62
+ `X-XSS-Protection <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection>`__)
63
+
64
+ Transport Layer Security (TLS)
65
+ ------------------------------
66
+
67
+ Only features that cannot be or difficultly implemented by some of the most popular SSL/TLS implementations (eg:
68
+ `GnuTls <https://www.gnutls.org/>`__, `LibreSSL <https://www.libressl.org/>`__, `OpenSSL <https://www.openssl.org/>`__,
69
+ `wolfSSL <https://www.wolfssl.com/>`__, ...) are listed.
70
+
71
+ - generic
72
+
73
+ 1. supports
74
+ `Generate Random Extensions And Sustain Extensibility <https://tools.ietf.org/html/draft-ietf-tls-grease-04>`__
75
+ (GREASE) values for
76
+
77
+ - protocol version
78
+ - extension type
79
+ - ciphers suite
80
+ - signature algorithms
81
+ - named group
82
+
83
+ 2. supports easy
84
+ `JA3 fingerprint <https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967>`__
85
+ generation
86
+
87
+ - protocol versions
88
+
89
+ 1. support not only the final, but also draft versions
90
+
91
+ - cipher suites
92
+
93
+ 1. supports each cipher suites discussed on `ciphersuite.info <https://ciphersuite.info>`__
94
+ 2. supports `GOST <https://en.wikipedia.org/wiki/GOST>`__ (national standards of the Russian Federation and CIS
95
+ countries) cipher suites
96
+
97
+ - application layer
98
+
99
+ - supports TLS handshake-related `MySQL <https://en.wikipedia.org/wiki/MySQL>`__ messages
100
+ - supports TLS handshake-related `OpenVPN <https://en.wikipedia.org/wiki/OpenVPN>`__ messages
101
+ - supports TLS handshake-related `PostgreSQL <https://en.wikipedia.org/wiki/PostgreSQL>`__ messages
102
+ - supports TLS handshake-related `RDP <https://en.wikipedia.org/wiki/Remote_Desktop_Protocol`__ messages
103
+
104
+ Secure Shell (SSH)
105
+ ------------------
106
+
107
+ - cipher suites
108
+
109
+ 1. identifies as much encryption algorithms as possible (more than 200, compared to 70+ currently supported by
110
+ OpenSSH)
111
+ 2. supports `HASSH fingerprint <https://engineering.salesforce.com/open-sourcing-hassh-abed3ae5044c/>`__ calculation
112
+
113
+ - public keys
114
+
115
+ 1. supports host keys, cretificates (both ``V00`` and ``V01``), X.509 certificates and chains
116
+
117
+ Domain Name System (DNS)
118
+ ------------------------
119
+
120
+ - e-mail authentication, reporting
121
+
122
+ - `Domain-based Message Authentication, Reporting, and Conformance <https://www.rfc-editor.org/rfc/rfc7489>`__
123
+ (DMARC)
124
+ - `Sender Policy Framework <https://www.rfc-editor.org/rfc/rfc7208>`__ (SPF)
125
+ - `SMTP MTA Strict Transport Security <https://www.rfc-editor.org/rfc/rfc8461>`__ (MTA-STS)
126
+ - `SMTP TLS Reporting <https://www.rfc-editor.org/rfc/rfc8460>`__ (TLSRPT)
127
+
128
+ - DNSSEC (Domain Name System Security Extensions)
129
+
130
+ - `DNSKEY <https://www.rfc-editor.org/rfc/rfc4034#section-2>`__
131
+ - `DS <https://www.rfc-editor.org/rfc/rfc4034#section-5>`__
132
+ - `RRSIG <https://www.rfc-editor.org/rfc/rfc4034#section-3>`__
@@ -0,0 +1,54 @@
1
+ .. meta::
2
+ :google-site-verification:
3
+ 2AAgZNptPaMHxDeXJegA8i8aW1jURVBpQseacnHQr8Q
4
+
5
+ .. meta::
6
+ :description:
7
+ An analysis oriented security protocol parser and generator
8
+
9
+ .. meta::
10
+ :keywords:
11
+ cryptoparser,cryptolyzer,cryptography,cryptographic algorithms,tls handdhake,ssl handdhake,ssh handdhake,
12
+ starttls,opportunistic tls,ssh host keys,ssh host certificates,http caching headers,http security header,
13
+ dnssec records,email authentication
14
+
15
+ .. meta::
16
+ :author:
17
+ Szilárd Pfeiffer
18
+
19
+ =======
20
+ Summary
21
+ =======
22
+
23
+ .. include:: ../README.rst
24
+
25
+ =======
26
+ Details
27
+ =======
28
+
29
+ The main purpose of creating this library is the fact, that cryptography protocol analysis differs in many aspect from
30
+ establishing a connection using a cryptographic protocol. Analysis is mostly testing where we trigger special and corner
31
+ cases of the protocol and we also trying to establish connection with hardly supported, experimental, obsoleted or even
32
+ deprecated mechanisms or algorithms which are may or may not supported by the latest or any version of an implementation
33
+ of the cryptographic protocol.
34
+
35
+ One the one hand it is neither a comprehensive nor a secure implementation of any cryptographic protocol. On the one
36
+ hand library implements only the absolutely necessary parts of the protocol. On the other it contains completely insecure
37
+ algorithms and mechanisms. It is not designed and contraindicated to use this library establishing secure connections.
38
+ If you are searching for cryptographic protocol implementation, there are several existing wrappers and native
39
+ implementations for Python (eg: M2Crypto, pyOpenSSL, Paramiko, ...).
40
+
41
+ .. toctree::
42
+ :maxdepth: 3
43
+
44
+ features
45
+ development
46
+
47
+ =======
48
+ History
49
+ =======
50
+
51
+ .. toctree::
52
+ :maxdepth: 2
53
+
54
+ changelog