pycti 6.8.9__tar.gz → 6.8.10__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.

Potentially problematic release.


This version of pycti might be problematic. Click here for more details.

Files changed (92) hide show
  1. {pycti-6.8.9 → pycti-6.8.10}/PKG-INFO +1 -1
  2. {pycti-6.8.9 → pycti-6.8.10}/pycti/__init__.py +1 -1
  3. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_report.py +1 -0
  4. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_stix_cyber_observable.py +47 -0
  5. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/stix_cyber_observable/opencti_stix_cyber_observable_properties.py +20 -0
  6. {pycti-6.8.9 → pycti-6.8.10}/pycti/utils/constants.py +1 -0
  7. {pycti-6.8.9 → pycti-6.8.10}/pycti/utils/opencti_stix2_utils.py +1 -0
  8. {pycti-6.8.9 → pycti-6.8.10}/pycti.egg-info/PKG-INFO +1 -1
  9. {pycti-6.8.9 → pycti-6.8.10}/LICENSE +0 -0
  10. {pycti-6.8.9 → pycti-6.8.10}/README.md +0 -0
  11. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/__init__.py +0 -0
  12. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_client.py +0 -0
  13. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_connector.py +0 -0
  14. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_draft.py +0 -0
  15. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_internal_file.py +0 -0
  16. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_notification.py +0 -0
  17. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_pir.py +0 -0
  18. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_playbook.py +0 -0
  19. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_public_dashboard.py +0 -0
  20. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_trash.py +0 -0
  21. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_work.py +0 -0
  22. {pycti-6.8.9 → pycti-6.8.10}/pycti/api/opencti_api_workspace.py +0 -0
  23. {pycti-6.8.9 → pycti-6.8.10}/pycti/connector/__init__.py +0 -0
  24. {pycti-6.8.9 → pycti-6.8.10}/pycti/connector/opencti_connector.py +0 -0
  25. {pycti-6.8.9 → pycti-6.8.10}/pycti/connector/opencti_connector_helper.py +0 -0
  26. {pycti-6.8.9 → pycti-6.8.10}/pycti/connector/opencti_metric_handler.py +0 -0
  27. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/__init__.py +0 -0
  28. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/indicator/__init__.py +0 -0
  29. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/indicator/opencti_indicator_properties.py +0 -0
  30. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_attack_pattern.py +0 -0
  31. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_campaign.py +0 -0
  32. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_capability.py +0 -0
  33. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_case_incident.py +0 -0
  34. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_case_rfi.py +0 -0
  35. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_case_rft.py +0 -0
  36. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_channel.py +0 -0
  37. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_course_of_action.py +0 -0
  38. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_data_component.py +0 -0
  39. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_data_source.py +0 -0
  40. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_event.py +0 -0
  41. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_external_reference.py +0 -0
  42. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_feedback.py +0 -0
  43. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_group.py +0 -0
  44. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_grouping.py +0 -0
  45. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_identity.py +0 -0
  46. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_incident.py +0 -0
  47. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_indicator.py +0 -0
  48. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_infrastructure.py +0 -0
  49. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_intrusion_set.py +0 -0
  50. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_kill_chain_phase.py +0 -0
  51. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_label.py +0 -0
  52. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_language.py +0 -0
  53. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_location.py +0 -0
  54. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_malware.py +0 -0
  55. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_malware_analysis.py +0 -0
  56. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_marking_definition.py +0 -0
  57. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_narrative.py +0 -0
  58. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_note.py +0 -0
  59. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_observed_data.py +0 -0
  60. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_opinion.py +0 -0
  61. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_role.py +0 -0
  62. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_security_coverage.py +0 -0
  63. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_settings.py +0 -0
  64. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_stix.py +0 -0
  65. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_stix_core_object.py +0 -0
  66. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_stix_core_relationship.py +0 -0
  67. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_stix_domain_object.py +0 -0
  68. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_stix_nested_ref_relationship.py +0 -0
  69. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_stix_object_or_stix_relationship.py +0 -0
  70. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_stix_sighting_relationship.py +0 -0
  71. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_task.py +0 -0
  72. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_threat_actor.py +0 -0
  73. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_threat_actor_group.py +0 -0
  74. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_threat_actor_individual.py +0 -0
  75. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_tool.py +0 -0
  76. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_user.py +0 -0
  77. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_vocabulary.py +0 -0
  78. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/opencti_vulnerability.py +0 -0
  79. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/stix_cyber_observable/__init__.py +0 -0
  80. {pycti-6.8.9 → pycti-6.8.10}/pycti/entities/stix_cyber_observable/opencti_stix_cyber_observable_deprecated.py +0 -0
  81. {pycti-6.8.9 → pycti-6.8.10}/pycti/utils/__init__.py +0 -0
  82. {pycti-6.8.9 → pycti-6.8.10}/pycti/utils/opencti_logger.py +0 -0
  83. {pycti-6.8.9 → pycti-6.8.10}/pycti/utils/opencti_stix2.py +0 -0
  84. {pycti-6.8.9 → pycti-6.8.10}/pycti/utils/opencti_stix2_identifier.py +0 -0
  85. {pycti-6.8.9 → pycti-6.8.10}/pycti/utils/opencti_stix2_splitter.py +0 -0
  86. {pycti-6.8.9 → pycti-6.8.10}/pycti/utils/opencti_stix2_update.py +0 -0
  87. {pycti-6.8.9 → pycti-6.8.10}/pycti.egg-info/SOURCES.txt +0 -0
  88. {pycti-6.8.9 → pycti-6.8.10}/pycti.egg-info/dependency_links.txt +0 -0
  89. {pycti-6.8.9 → pycti-6.8.10}/pycti.egg-info/requires.txt +0 -0
  90. {pycti-6.8.9 → pycti-6.8.10}/pycti.egg-info/top_level.txt +0 -0
  91. {pycti-6.8.9 → pycti-6.8.10}/pyproject.toml +0 -0
  92. {pycti-6.8.9 → pycti-6.8.10}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycti
3
- Version: 6.8.9
3
+ Version: 6.8.10
4
4
  Summary: Python API client for OpenCTI.
5
5
  Home-page: https://github.com/OpenCTI-Platform/client-python
6
6
  Author: Filigran
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
- __version__ = "6.8.9"
2
+ __version__ = "6.8.10"
3
3
 
4
4
  from .api.opencti_api_client import OpenCTIApiClient
5
5
  from .api.opencti_api_connector import OpenCTIApiConnector
@@ -108,6 +108,7 @@ class Report:
108
108
  modified
109
109
  name
110
110
  description
111
+ content
111
112
  report_types
112
113
  published
113
114
  objects(all: true) {
@@ -287,6 +287,8 @@ class StixCyberObservable(StixCyberObservableDeprecatedMixin):
287
287
  type = "IPv6-Addr"
288
288
  elif type.lower() == "persona":
289
289
  type = "Persona"
290
+ elif type.lower() == "ssh-key":
291
+ type = "SSH-Key"
290
292
  elif type.lower() == "hostname" or type.lower() == "x-opencti-hostname":
291
293
  type = "Hostname"
292
294
  elif type.lower() == "payment-card" or type.lower() == "x-opencti-payment-card":
@@ -420,6 +422,7 @@ class StixCyberObservable(StixCyberObservableDeprecatedMixin):
420
422
  $PaymentCard: PaymentCardAddInput
421
423
  $Persona: PersonaAddInput
422
424
  $MediaContent: MediaContentAddInput
425
+ $SSHKey: SSHKeyAddInput
423
426
  ) {
424
427
  stixCyberObservableAdd(
425
428
  type: $type,
@@ -465,6 +468,7 @@ class StixCyberObservable(StixCyberObservableDeprecatedMixin):
465
468
  PaymentCard: $PaymentCard
466
469
  Persona: $Persona
467
470
  MediaContent: $MediaContent
471
+ SSHKey: $SSHKey
468
472
  ) {
469
473
  id
470
474
  standard_id
@@ -713,6 +717,49 @@ class StixCyberObservable(StixCyberObservableDeprecatedMixin):
713
717
  else None
714
718
  ),
715
719
  }
720
+ elif type == "SSH-Key" or type.lower() == "ssh-key":
721
+ input_variables["SSHKey"] = {
722
+ "key_type": (
723
+ observable_data["key_type"]
724
+ if "key_type" in observable_data
725
+ else None
726
+ ),
727
+ "public_key": (
728
+ observable_data["public_key"]
729
+ if "public_key" in observable_data
730
+ else None
731
+ ),
732
+ "fingerprint_sha256": (
733
+ observable_data["fingerprint_sha256"]
734
+ if "fingerprint_sha256" in observable_data
735
+ else False
736
+ ),
737
+ "fingerprint_md5": (
738
+ observable_data["fingerprint_md5"]
739
+ if "fingerprint_md5" in observable_data
740
+ else None
741
+ ),
742
+ "key_length": (
743
+ observable_data["key_length"]
744
+ if "key_length" in observable_data
745
+ else None
746
+ ),
747
+ "comment": (
748
+ observable_data["comment"]
749
+ if "comment" in observable_data
750
+ else None
751
+ ),
752
+ "created": (
753
+ observable_data["created"]
754
+ if "created" in observable_data
755
+ else None
756
+ ),
757
+ "expiration_date": (
758
+ observable_data["expiration_date"]
759
+ if "expiration_date" in observable_data
760
+ else None
761
+ ),
762
+ }
716
763
  elif type == "IPv4-Addr":
717
764
  input_variables["IPv4Addr"] = {
718
765
  "value": (
@@ -173,6 +173,16 @@ SCO_PROPERTIES = """
173
173
  algorithm
174
174
  hash
175
175
  }
176
+ }
177
+ ... on SSHKey {
178
+ key_type
179
+ public_key
180
+ fingerprint_sha256
181
+ fingerprint_md5
182
+ key_length
183
+ expiration_date
184
+ comment
185
+ created
176
186
  }
177
187
  ... on IPv4Addr {
178
188
  value
@@ -479,6 +489,16 @@ SCO_PROPERTIES_WITH_FILES = """
479
489
  hash
480
490
  }
481
491
  }
492
+ ... on SSHKey {
493
+ key_type
494
+ public_key
495
+ fingerprint_sha256
496
+ fingerprint_md5
497
+ key_length
498
+ expiration_date
499
+ comment
500
+ created
501
+ }
482
502
  ... on IPv4Addr {
483
503
  value
484
504
  }
@@ -46,6 +46,7 @@ class StixCyberObservableTypes(Enum):
46
46
  MEDIA_CONTENT = "Media-Content"
47
47
  SIMPLE_OBSERVABLE = "Simple-Observable"
48
48
  PERSONA = "Persona"
49
+ SSH_KEY = "SSH-Key"
49
50
 
50
51
  @classmethod
51
52
  def has_value(cls, value: str) -> bool:
@@ -103,6 +103,7 @@ STIX_CYBER_OBSERVABLE_MAPPING = {
103
103
  "media-content": "Media-Content",
104
104
  "simple-observable": "Simple-Observable",
105
105
  "persona": "Persona",
106
+ "ssh-key": "SSH-Key",
106
107
  }
107
108
 
108
109
  STIX_OBJECTS = (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pycti
3
- Version: 6.8.9
3
+ Version: 6.8.10
4
4
  Summary: Python API client for OpenCTI.
5
5
  Home-page: https://github.com/OpenCTI-Platform/client-python
6
6
  Author: Filigran
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes