troubadix 25.1.1__tar.gz → 25.1.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 (209) hide show
  1. {troubadix-25.1.1 → troubadix-25.1.2}/PKG-INFO +1 -1
  2. {troubadix-25.1.1 → troubadix-25.1.2}/pyproject.toml +1 -1
  3. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_valid_oid.py +123 -1
  4. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/__version__.py +1 -1
  5. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/valid_oid.py +49 -15
  6. {troubadix-25.1.1 → troubadix-25.1.2}/LICENSE +0 -0
  7. {troubadix-25.1.1 → troubadix-25.1.2}/README.md +0 -0
  8. {troubadix-25.1.1 → troubadix-25.1.2}/tests/__init__.py +0 -0
  9. {troubadix-25.1.1 → troubadix-25.1.2}/tests/helper/__init__.py +0 -0
  10. {troubadix-25.1.1 → troubadix-25.1.2}/tests/helper/test_linguistic_exception_handler.py +0 -0
  11. {troubadix-25.1.1 → troubadix-25.1.2}/tests/helper/test_patterns.py +0 -0
  12. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/__init__.py +0 -0
  13. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/fail.nasl +0 -0
  14. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/fail2.nasl +0 -0
  15. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test.nasl +0 -0
  16. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_badwords.py +0 -0
  17. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_copyright_text.py +0 -0
  18. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_copyright_year.py +0 -0
  19. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_creation_date.py +0 -0
  20. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_cve_format.py +0 -0
  21. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_cvss_format.py +0 -0
  22. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_dependencies.py +0 -0
  23. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_dependency_category_order.py +0 -0
  24. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_deprecated_dependency.py +0 -0
  25. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_deprecated_functions.py +0 -0
  26. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_double_end_points.py +0 -0
  27. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_duplicate_oid.py +0 -0
  28. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_duplicated_script_tags.py +0 -0
  29. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_encoding.py +0 -0
  30. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/fail_bad_new_line.nasl +0 -0
  31. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/fail_badwords.nasl +0 -0
  32. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/fail_name_and_copyright_newline.nasl +0 -0
  33. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/fail_name_newline.nasl +0 -0
  34. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/fail_permissions.nasl +0 -0
  35. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/fail_spelling.nasl +0 -0
  36. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/fail.nasl +0 -0
  37. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/fail_badwords.nasl +0 -0
  38. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/fail_name_and_copyright_newline.nasl +0 -0
  39. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/fail_name_newline.nasl +0 -0
  40. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/fail_solution_template.nasl +0 -0
  41. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/runner/fail.nasl +0 -0
  42. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/runner/fail2.nasl +0 -0
  43. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/runner/test.nasl +0 -0
  44. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/runner/test_valid_oid.nasl +0 -0
  45. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/test.inc +0 -0
  46. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/21.04/test.nasl +0 -0
  47. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/nasl/warning.nasl +0 -0
  48. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/ok_permissions.nasl +0 -0
  49. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_files/test_oid.nasl +0 -0
  50. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_forking_nasl_functions.py +0 -0
  51. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_get_kb_on_services.py +0 -0
  52. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_grammar.py +0 -0
  53. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_http_links_in_tags.py +0 -0
  54. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_illegal_characters.py +0 -0
  55. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_log_messages.py +0 -0
  56. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_malformed_dependencies.py +0 -0
  57. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_misplaced_compare_in_if.py +0 -0
  58. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_missing_desc_exit.py +0 -0
  59. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_missing_tag_solution.py +0 -0
  60. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_multiple_re_parameters.py +0 -0
  61. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_newlines.py +0 -0
  62. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_overlong_description_lines.py +0 -0
  63. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_overlong_script_tags.py +0 -0
  64. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_prod_svc_detect_in_vulnvt.py +0 -0
  65. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_qod.py +0 -0
  66. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_reporting_consistency.py +0 -0
  67. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_add_preference_type.py +0 -0
  68. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_calls_empty_values.py +0 -0
  69. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_calls_recommended.py +0 -0
  70. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_category.py +0 -0
  71. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_copyright.py +0 -0
  72. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_family.py +0 -0
  73. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_tag_form.py +0 -0
  74. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_tag_whitespaces.py +0 -0
  75. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_tags_mandatory.py +0 -0
  76. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_version_and_last_modification_tags.py +0 -0
  77. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_xref_form.py +0 -0
  78. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_script_xref_url.py +0 -0
  79. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_security_messages.py +0 -0
  80. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_set_get_kb_calls.py +0 -0
  81. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_solution_text.py +0 -0
  82. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_solution_type.py +0 -0
  83. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_spaces_before_dots.py +0 -0
  84. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_spaces_in_filename.py +0 -0
  85. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_spelling.py +0 -0
  86. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_tabs.py +0 -0
  87. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_todo_tbd.py +0 -0
  88. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_trailing_spaces_tabs.py +0 -0
  89. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_using_display.py +0 -0
  90. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_valid_script_tag_names.py +0 -0
  91. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_variable_redefinition_in_foreach.py +0 -0
  92. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_vt_file_permissions.py +0 -0
  93. {troubadix-25.1.1 → troubadix-25.1.2}/tests/plugins/test_vt_placement.py +0 -0
  94. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/__init__.py +0 -0
  95. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/changed_packages/__init__.py +0 -0
  96. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/changed_packages/markers/__init__.py +0 -0
  97. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/changed_packages/markers/test_added_epoch.py +0 -0
  98. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/changed_packages/markers/test_added_release.py +0 -0
  99. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/changed_packages/markers/test_added_udeb.py +0 -0
  100. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/changed_packages/markers/test_changed_update.py +0 -0
  101. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/changed_packages/markers/test_dropped_architecture.py +0 -0
  102. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/changed_packages/test_changed_packages.py +0 -0
  103. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/changed_packages/test_package.py +0 -0
  104. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/test_changed_cves.py +0 -0
  105. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/test_changed_oid.py +0 -0
  106. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/test_deprecate_vts.py +0 -0
  107. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/test_file_extensions.py +0 -0
  108. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/test_last_modification.py +0 -0
  109. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/test_no_solution.py +0 -0
  110. {troubadix-25.1.1 → troubadix-25.1.2}/tests/standalone_plugins/test_version_updated.py +0 -0
  111. {troubadix-25.1.1 → troubadix-25.1.2}/tests/test_argparser.py +0 -0
  112. {troubadix-25.1.1 → troubadix-25.1.2}/tests/test_helper.py +0 -0
  113. {troubadix-25.1.1 → troubadix-25.1.2}/tests/test_naslinter.py +0 -0
  114. {troubadix-25.1.1 → troubadix-25.1.2}/tests/test_reporter.py +0 -0
  115. {troubadix-25.1.1 → troubadix-25.1.2}/tests/test_results.py +0 -0
  116. {troubadix-25.1.1 → troubadix-25.1.2}/tests/test_runner.py +0 -0
  117. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/__init__.py +0 -0
  118. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/argparser.py +0 -0
  119. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/codespell/codespell.additions +0 -0
  120. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/codespell/codespell.exclude +0 -0
  121. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/codespell/codespell.ignore +0 -0
  122. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/helper/__init__.py +0 -0
  123. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/helper/helper.py +0 -0
  124. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/helper/linguistic_exception_handler.py +0 -0
  125. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/helper/patterns.py +0 -0
  126. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugin.py +0 -0
  127. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/__init__.py +0 -0
  128. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/badwords.py +0 -0
  129. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/copyright_text.py +0 -0
  130. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/copyright_year.py +0 -0
  131. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/creation_date.py +0 -0
  132. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/cve_format.py +0 -0
  133. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/cvss_format.py +0 -0
  134. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/dependencies.py +0 -0
  135. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/dependency_category_order.py +0 -0
  136. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/deprecated_dependency.py +0 -0
  137. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/deprecated_functions.py +0 -0
  138. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/double_end_points.py +0 -0
  139. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/duplicate_oid.py +0 -0
  140. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/duplicated_script_tags.py +0 -0
  141. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/encoding.py +0 -0
  142. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/forking_nasl_functions.py +0 -0
  143. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/get_kb_on_services.py +0 -0
  144. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/grammar.py +0 -0
  145. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/http_links_in_tags.py +0 -0
  146. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/illegal_characters.py +0 -0
  147. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/log_messages.py +0 -0
  148. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/malformed_dependencies.py +0 -0
  149. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/misplaced_compare_in_if.py +0 -0
  150. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/missing_desc_exit.py +0 -0
  151. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/missing_tag_solution.py +0 -0
  152. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/multiple_re_parameters.py +0 -0
  153. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/newlines.py +0 -0
  154. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/overlong_description_lines.py +0 -0
  155. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/overlong_script_tags.py +0 -0
  156. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/prod_svc_detect_in_vulnvt.py +0 -0
  157. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/qod.py +0 -0
  158. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/reporting_consistency.py +0 -0
  159. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_add_preference_type.py +0 -0
  160. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_calls_empty_values.py +0 -0
  161. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_calls_recommended.py +0 -0
  162. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_category.py +0 -0
  163. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_copyright.py +0 -0
  164. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_family.py +0 -0
  165. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_tag_form.py +0 -0
  166. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_tag_whitespaces.py +0 -0
  167. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_tags_mandatory.py +0 -0
  168. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_version_and_last_modification_tags.py +0 -0
  169. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_xref_form.py +0 -0
  170. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/script_xref_url.py +0 -0
  171. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/security_messages.py +0 -0
  172. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/set_get_kb_calls.py +0 -0
  173. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/solution_text.py +0 -0
  174. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/solution_type.py +0 -0
  175. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/spaces_before_dots.py +0 -0
  176. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/spaces_in_filename.py +0 -0
  177. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/spelling.py +0 -0
  178. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/tabs.py +0 -0
  179. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/todo_tbd.py +0 -0
  180. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/trailing_spaces_tabs.py +0 -0
  181. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/using_display.py +0 -0
  182. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/valid_script_tag_names.py +0 -0
  183. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/variable_assigned_in_if.py +0 -0
  184. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/variable_redefinition_in_foreach.py +0 -0
  185. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/vt_file_permissions.py +0 -0
  186. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/plugins/vt_placement.py +0 -0
  187. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/reporter.py +0 -0
  188. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/results.py +0 -0
  189. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/runner.py +0 -0
  190. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/__init__.py +0 -0
  191. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/allowed_rev_diff.py +0 -0
  192. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_cves.py +0 -0
  193. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_oid.py +0 -0
  194. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_packages/changed_packages.py +0 -0
  195. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_packages/marker/__init__.py +0 -0
  196. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_packages/marker/added_epoch.py +0 -0
  197. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_packages/marker/added_release.py +0 -0
  198. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_packages/marker/added_udeb.py +0 -0
  199. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_packages/marker/changed_update.py +0 -0
  200. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_packages/marker/dropped_architecture.py +0 -0
  201. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_packages/marker/marker.py +0 -0
  202. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/changed_packages/package.py +0 -0
  203. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/common.py +0 -0
  204. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/deprecate_vts.py +0 -0
  205. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/file_extensions.py +0 -0
  206. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/last_modification.py +0 -0
  207. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/no_solution.py +0 -0
  208. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/standalone_plugins/version_updated.py +0 -0
  209. {troubadix-25.1.1 → troubadix-25.1.2}/troubadix/troubadix.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: troubadix
3
- Version: 25.1.1
3
+ Version: 25.1.2
4
4
  Summary: A linting and QA check tool for NASL files
5
5
  License: GPL-3.0-or-later
6
6
  Author: Greenbone
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "troubadix"
3
- version = "25.1.1"
3
+ version = "25.1.2"
4
4
  description = "A linting and QA check tool for NASL files"
5
5
  authors = ["Greenbone <info@greenbone.net>"]
6
6
  license = "GPL-3.0-or-later"
@@ -26,7 +26,10 @@ from . import PluginTestCase
26
26
  class CheckValidOIDTestCase(PluginTestCase):
27
27
  def test_ok(self):
28
28
  path = Path("some/file.nasl")
29
- content = ' script_oid("1.3.6.1.4.1.25623.1.0.100376");\n'
29
+ content = (
30
+ ' script_oid("1.3.6.1.4.1.25623.1.0.100376");\n'
31
+ ' script_family("Huawei EulerOS Local Security Checks");\n'
32
+ )
30
33
  fake_context = self.create_file_plugin_context(
31
34
  nasl_file=path, file_content=content
32
35
  )
@@ -672,6 +675,45 @@ class CheckValidOIDTestCase(PluginTestCase):
672
675
  results[0].message,
673
676
  )
674
677
 
678
+ def test_opensuse_ok(self):
679
+ path = Path("some/file.nasl")
680
+ content = (
681
+ ' script_oid("1.3.6.1.4.1.25623.1.1.18.2022.123");\n'
682
+ ' script_family("openSUSE Local Security Checks");\n'
683
+ )
684
+ fake_context = self.create_file_plugin_context(
685
+ nasl_file=path, file_content=content
686
+ )
687
+ plugin = CheckValidOID(fake_context)
688
+
689
+ results = list(plugin.run())
690
+
691
+ self.assertEqual(len(results), 0)
692
+
693
+ def test_opensuse_not_ok(self):
694
+ path = Path("some/file.nasl")
695
+ content = (
696
+ ' script_oid("1.3.6.1.4.1.25623.1.1.18.2022.123");\n'
697
+ ' script_family("HCE Local Security Checks");\n'
698
+ )
699
+ fake_context = self.create_file_plugin_context(
700
+ nasl_file=path, file_content=content
701
+ )
702
+ plugin = CheckValidOID(fake_context)
703
+
704
+ results = list(plugin.run())
705
+
706
+ self.assertEqual(len(results), 1)
707
+
708
+ self.assertIsInstance(results[0], LinterError)
709
+ self.assertEqual(
710
+ (
711
+ "script_oid() is using an OID that is reserved for "
712
+ "openSUSE '1.3.6.1.4.1.25623.1.1.18.2022.123'"
713
+ ),
714
+ results[0].message,
715
+ )
716
+
675
717
  def test_unknown(self):
676
718
  path = Path("some/file.nasl")
677
719
  content = (
@@ -725,6 +767,7 @@ class CheckValidOIDTestCase(PluginTestCase):
725
767
  content = (
726
768
  ' script_oid("1.3.6.1.4.1.25623.1.2.1.2020.255");\n'
727
769
  ' script_name("Mozilla Firefox Security Advisory");\n'
770
+ ' script_family("General");'
728
771
  )
729
772
  fake_context = self.create_file_plugin_context(
730
773
  nasl_file=path, file_content=content
@@ -740,6 +783,7 @@ class CheckValidOIDTestCase(PluginTestCase):
740
783
  content = (
741
784
  ' script_oid("1.3.6.1.4.1.25623.1.2.1.2020.255");\n'
742
785
  ' script_name("AdaptBB Detection (HTTP)");\n'
786
+ ' script_family("General");'
743
787
  )
744
788
  fake_context = self.create_file_plugin_context(
745
789
  nasl_file=path, file_content=content
@@ -757,3 +801,81 @@ class CheckValidOIDTestCase(PluginTestCase):
757
801
  ),
758
802
  results[0].message,
759
803
  )
804
+
805
+ def test_script_family__product_microsoft_ok(self):
806
+ path = Path("some/file.nasl")
807
+ content = (
808
+ ' script_oid("1.3.6.1.4.1.25623.1.3.11571.0.5019966.494846484649555554514651545348");'
809
+ "\n"
810
+ ' script_family("Windows : Microsoft Bulletins");\n'
811
+ )
812
+ fake_context = self.create_file_plugin_context(
813
+ nasl_file=path, file_content=content
814
+ )
815
+ plugin = CheckValidOID(fake_context)
816
+
817
+ results = list(plugin.run())
818
+
819
+ self.assertEqual(len(results), 0)
820
+
821
+ def test_script_family__product_microsoft_not_ok(self):
822
+ path = Path("some/file.nasl")
823
+ content = (
824
+ ' script_oid("1.3.6.1.4.1.25623.1.3.11571.0.5019966.494846484649555554514651545348");'
825
+ "\n"
826
+ ' script_family("Windows : Microsoft");\n'
827
+ )
828
+ fake_context = self.create_file_plugin_context(
829
+ nasl_file=path, file_content=content
830
+ )
831
+ plugin = CheckValidOID(fake_context)
832
+
833
+ results = list(plugin.run())
834
+ self.assertIsInstance(results[0], LinterError)
835
+ self.assertEqual(
836
+ (
837
+ "script_oid() is using an OID that is reserved for 'Windows' "
838
+ "(1.3.6.1.4.1.25623.1.3.11571.0.5019966.494846484649555554514651545348)"
839
+ ),
840
+ results[0].message,
841
+ )
842
+
843
+ def test_oid_microsoft_ok(self):
844
+ path = Path("some/file.nasl")
845
+ content = (
846
+ ' script_oid("1.3.6.1.4.1.25623.1.3.11571.0.5019966.494846484649555554514651545348");'
847
+ "\n"
848
+ ' script_family("Windows : Microsoft Bulletins");\n'
849
+ )
850
+ fake_context = self.create_file_plugin_context(
851
+ nasl_file=path, file_content=content
852
+ )
853
+ plugin = CheckValidOID(fake_context)
854
+
855
+ results = list(plugin.run())
856
+
857
+ self.assertEqual(len(results), 0)
858
+
859
+ def test_oid_microsoft_not_ok(self):
860
+ path = Path("some/file.nasl")
861
+ content = (
862
+ ' script_oid("1.3.6.1.4.1.25623.1.3.11571.0.494846484649555554514651545348");'
863
+ "\n"
864
+ ' script_family("Windows : Microsoft Bulletins");\n'
865
+ )
866
+ fake_context = self.create_file_plugin_context(
867
+ nasl_file=path, file_content=content
868
+ )
869
+ plugin = CheckValidOID(fake_context)
870
+ results = list(plugin.run())
871
+
872
+ self.assertIsInstance(results[0], LinterError)
873
+ self.assertEqual(
874
+ (
875
+ "script_oid() is using an invalid OID "
876
+ "'1.3.6.1.4.1.25623.1.3.11571.0.494846484649555554514651545348' "
877
+ "(Windows pattern: 1.3.6.1.4.1.25623.1.3.[product_id].[platform_id]."
878
+ "[kb_article_id].[fixed_build_number])"
879
+ ),
880
+ results[0].message,
881
+ )
@@ -2,4 +2,4 @@
2
2
 
3
3
  # THIS IS AN AUTOGENERATED FILE. DO NOT TOUCH!
4
4
 
5
- __version__ = "25.1.1"
5
+ __version__ = "25.1.2"
@@ -58,6 +58,7 @@ class CheckValidOID(FileContentPlugin):
58
58
 
59
59
  security_template = "Security Advisory"
60
60
  family_template = "Local Security Checks"
61
+ windows_family_template = "Windows : Microsoft Bulletins"
61
62
  is_using_reserved = "is using an OID that is reserved for"
62
63
  invalid_oid = "is using an invalid OID"
63
64
 
@@ -81,22 +82,20 @@ class CheckValidOID(FileContentPlugin):
81
82
  )
82
83
  return
83
84
 
84
- # Vendor-specific OIDs
85
- if "1.3.6.1.4.1.25623.1.1." in oid:
86
- family_pattern = get_special_script_tag_pattern(
87
- SpecialScriptTag.FAMILY
85
+ family_pattern = get_special_script_tag_pattern(SpecialScriptTag.FAMILY)
86
+ family_match = family_pattern.search(file_content)
87
+
88
+ if family_match is None or family_match.group("value") is None:
89
+ yield LinterError(
90
+ "VT is missing a script family!",
91
+ file=nasl_file,
92
+ plugin=self.name,
88
93
  )
89
- family_match = family_pattern.search(file_content)
90
- if family_match is None or family_match.group("value") is None:
91
- yield LinterError(
92
- "VT is missing a script family!",
93
- file=nasl_file,
94
- plugin=self.name,
95
- )
96
- return
94
+ return
97
95
 
96
+ # Vendor-specific OIDs
97
+ if "1.3.6.1.4.1.25623.1.1." in oid:
98
98
  family = family_match.group("value")
99
-
100
99
  vendor_number_match = re.search(
101
100
  r"^1\.3\.6\.1\.4\.1\.25623\.1\.1\.([0-9]+)\.", oid
102
101
  )
@@ -324,6 +323,15 @@ class CheckValidOID(FileContentPlugin):
324
323
  plugin=self.name,
325
324
  )
326
325
  return
326
+ elif vendor_number == "18":
327
+ if family != f"openSUSE {family_template}":
328
+ yield LinterError(
329
+ f"script_oid() {is_using_reserved} openSUSE "
330
+ f"'{str(oid)}'",
331
+ file=nasl_file,
332
+ plugin=self.name,
333
+ )
334
+ return
327
335
 
328
336
  else:
329
337
  yield LinterError(
@@ -338,8 +346,8 @@ class CheckValidOID(FileContentPlugin):
338
346
 
339
347
  # product-specific OIDs
340
348
  if "1.3.6.1.4.1.25623.1.2." in oid:
341
- name_patter = get_special_script_tag_pattern(SpecialScriptTag.NAME)
342
- name_match = name_patter.search(file_content)
349
+ name_pattern = get_special_script_tag_pattern(SpecialScriptTag.NAME)
350
+ name_match = name_pattern.search(file_content)
343
351
  if not name_match or not name_match.group("value"):
344
352
  yield LinterError(
345
353
  "VT is missing a script name!",
@@ -378,6 +386,32 @@ class CheckValidOID(FileContentPlugin):
378
386
 
379
387
  return
380
388
 
389
+ # Fixed OID-scheme for Windows OIDs
390
+ if "1.3.6.1.4.1.25623.1.3." in oid:
391
+ if family_match.group("value") != windows_family_template:
392
+ yield LinterError(
393
+ f"script_oid() {is_using_reserved} 'Windows' ("
394
+ f"{str(oid)})",
395
+ file=nasl_file,
396
+ plugin=self.name,
397
+ )
398
+ return
399
+
400
+ windows_oid_match = re.search(
401
+ r"^1\.3\.6\.1\.4\.1\.25623\.1\.3\.\d+\.\d+\.\d+\.\d+",
402
+ oid,
403
+ )
404
+ if not windows_oid_match:
405
+ yield LinterError(
406
+ f"script_oid() {invalid_oid} '{str(oid)}' "
407
+ "(Windows pattern: 1.3.6.1.4.1.25623.1.3."
408
+ "[product_id].[platform_id].[kb_article_id].[fixed_build_number])",
409
+ file=nasl_file,
410
+ plugin=self.name,
411
+ )
412
+ return
413
+ return
414
+
381
415
  oid_digit_match = re.search(
382
416
  r"^1\.3\.6\.1\.4\.1\.25623\.1\.0\.([0-9]+)", oid
383
417
  )
File without changes
File without changes
File without changes