Commit Graph

399 Commits (78612530ffa06bc5a49e0c8f3201950de80cdeac)

Author SHA1 Message Date
Chris Lenk be07c32500 Add parse() to Environment layer
The Environment layer does not keep its own mapping of custom object types.
If we think it likely that users will want to maintain separate lists of
custom object types between two or more Environments, we can add this
later.
2017-09-08 12:40:01 -04:00
Chris Lenk f60331fb77 Improve docstrings for Environment layer 2017-09-08 11:15:10 -04:00
Chris Lenk 4dfb5d2365 Test Environment layer 2017-09-08 09:01:12 -04:00
Richard Piazza ceb88f176e added TimestampConstant 2017-09-07 10:35:31 -04:00
Richard Piazza 95cac595da merge in latest 2017-09-07 10:18:02 -04:00
Chris Lenk 598f38921f Start Environment layer 2017-09-06 16:20:16 -04:00
Greg Back adac43708b Merge pull request #46 from oasis-open/markings
Marking Support
2017-09-05 19:08:45 +00:00
Chris Lenk 42962e6675 Improve markings tests
- Test markings functions with both dictionaries and our _STIXBase-derived
  classes as input.
- Slightly improve test coverage.
- Drop Python 2.6 support.
2017-09-01 16:41:16 -04:00
Chris Lenk cc66e1a492 Make markings function signatures consistent
Put `marking` before `selectors`. The granular marking version of
`is_marked` requires selectors to not be None.
2017-09-01 10:50:01 -04:00
Emmanuelle Vargas-Gonzalez 6f36ea8488 Merge remote-tracking branch 'oasis/master' into datastores 2017-09-01 10:13:57 -04:00
Emmanuelle Vargas-Gonzalez 13f2810b25 Remove name positional argument, clean memory.py redundant codeother minor changes. Increase coverage. 2017-09-01 08:15:50 -04:00
Greg Back 124da846c3 Merge branch 'master' into markings 2017-08-31 20:36:59 +00:00
Greg Back b1054e780a Merge remote-tracking branch 'origin/master' into datastores 2017-08-31 19:52:48 +00:00
Greg Back ba846f9501 Clean up some tests. 2017-08-31 18:23:08 +00:00
Greg Back 7b46283a5c Build filter function map 2017-08-31 18:21:29 +00:00
Greg Back 71d42b0e51 Merge remote-tracking branch 'origin/datastores' into filter 2017-08-31 17:18:20 +00:00
Chris Lenk 9d45a3dca2 Keep MALWARE_KWARGS to a minimal set
...but use an additional set with a description for marking tests.
2017-08-31 12:51:13 -04:00
Chris Lenk 15287959a4 Modify versioning API to work on dictionaries
This includes new_version() and revoke().
2017-08-31 12:28:07 -04:00
clenk 8a33cb7716 Touch up ObjectReferenceProperty checks
- reword "_refs" error
- check with isinstance instead of __class__.__name__
2017-08-30 16:15:05 -04:00
clenk 0e658255a8 Move check to when custom observable is defined
Catch properties named "_ref" or "_refs" that aren't
ObjectReferenceProperty when the custom observable is defined, not when
it is instantiated.
2017-08-30 15:33:28 -04:00
= 22c749d0df filter changes 2017-08-30 11:18:11 -04:00
Emmanuelle Vargas-Gonzalez 8ca2c3390b Minor changes to DataSource.apply_common_filters(). Improve overall code coverage. 2017-08-29 15:15:32 -04:00
Emmanuelle Vargas-Gonzalez b1ac24d46e Minor changes. 2017-08-29 15:08:26 -04:00
Emmanuelle Vargas-Gonzalez 415c53066f Code coverage changes, fix some tests. Add stix2-validator dependency. 2017-08-28 15:19:55 -04:00
Emmanuelle Vargas-Gonzalez aea076103c Update tests to improve coverage. 2017-08-28 14:33:12 -04:00
Emmanuelle Vargas-Gonzalez 160d69b03d Changes to datastores. 2017-08-28 14:32:51 -04:00
Emmanuelle Vargas-Gonzalez 07bbe23a98 Add some tests for custom objects. 2017-08-28 14:32:05 -04:00
Emmanuelle Vargas-Gonzalez 23f36a9a69 Minor changes to custom object decorators. Add new marking decorator. 2017-08-28 14:30:53 -04:00
clenk 095c5066d5 Touch up markings tests
Increase code coverage and s/tlo/sdo/
2017-08-25 15:56:39 -04:00
clenk 0cd75e3fba Increase code coverage 2017-08-24 17:53:43 -04:00
clenk 6fa3c84aa3 Improve tests and coverage for custom content
In ObservableProperty.clean(), parse_observable() will handle the issue
of non-cyber observable objects being presnt in an observable property.
The line raising a ValueError would not be reached so it was removed.
2017-08-24 15:46:36 -04:00
Emmanuelle Vargas-Gonzalez 3822e39243 Remove COMMON_PROPERTIES. 2017-08-24 15:10:09 -04:00
Emmanuelle Vargas-Gonzalez 1dfaaf15ef Minor change. closes #29 2017-08-24 12:54:50 -04:00
Emmanuelle Vargas-Gonzalez dd17e88ae0 Code refactor/clean-up, changed some exceptions. Update docstrings. 2017-08-24 12:47:14 -04:00
clenk ee49e78c72 Add custom extensions to cyber observables
Fix #31.
2017-08-23 18:36:24 -04:00
Emmanuelle Vargas-Gonzalez 8d4c1d55b5 Minor style changes. 2017-08-23 13:12:40 -04:00
Emmanuelle Vargas-Gonzalez f33427328b Update tests for object and granular markings. 2017-08-23 13:07:22 -04:00
Emmanuelle Vargas-Gonzalez 15bff530be Refactor granular_markings.py code and remove unnecessary code in utils.py 2017-08-23 13:06:51 -04:00
Emmanuelle Vargas-Gonzalez f437a4df5b Merge branch 'datastores' of github.com:oasis-open/cti-python-stix2 into datastores 2017-08-22 10:47:23 -04:00
Emmanuelle Vargas-Gonzalez d060abbed5 Updated regex expressions. Thanks to @drothenberg for that contribution! 2017-08-22 10:47:13 -04:00
Greg Back 69eb09c32b Merge remote-tracking branch 'origin/master' into datastores 2017-08-21 22:40:07 +00:00
Greg Back 4cd99f04ea Use version of taxii2-client from PyPI. 2017-08-21 22:16:23 +00:00
clenk 8687521111 Change object markings for immutable SDOs 2017-08-21 13:57:01 -04:00
clenk d4edb8b0bc Validate patterns when creating Indicators 2017-08-18 14:22:57 -04:00
clenk c0d02fbfcd [WIP] Touch up marking code 2017-08-18 12:36:34 -04:00
Emmanuelle Vargas-Gonzalez c64b7de761 Change query dict style for Filter namedtuple. 2017-08-18 12:05:12 -04:00
Richard Piazza fb75de47c5 added TimestampConstant 2017-08-17 14:50:42 -04:00
clenk 14b922ba92 Merge remote-tracking branch 'emmanvg/marking-support' into markings 2017-08-17 12:26:46 -04:00
Emmanuelle Vargas-Gonzalez 681be1a5d9 Make CompositeDataStore subclass DataStore. Remove deduplicate() from CompositeDataSource. 2017-08-16 09:58:33 -04:00
Emmanuelle Vargas-Gonzalez a18804a195 Add ordereddict dependency for 2.6 support. Import change in utils.py 2017-08-15 14:12:21 -04:00
Emmanuelle Vargas-Gonzalez 15b5e107d5 Fix imports, sort requirements. 2017-08-15 13:54:16 -04:00
Emmanuelle Vargas-Gonzalez 4ffc8edeeb Update all tests. Re-organize EXPECTED values, update some regex expressions. 2017-08-15 13:41:51 -04:00
Emmanuelle Vargas-Gonzalez 1b48ad9778 Changes to object serialization. 2017-08-15 13:40:47 -04:00
Emmanuelle Vargas-Gonzalez e3f82effc7 Apply OrderedDict changes to bundle, fix import in sdo.py 2017-08-15 08:24:43 -04:00
Emmanuelle Vargas-Gonzalez cb5c4ad080 Merge pull request #42 from oasis-open/bundles Parse bundles correctly 2017-08-14 15:21:58 -04:00
Emmanuelle Vargas-Gonzalez 569ca34d78 Remove test skip for data_sources. 2017-08-14 15:02:26 -04:00
Emmanuelle Vargas-Gonzalez 226a41e0ff Merge pull request #41 from oasis-open/namedtuple-filters Use Namedtuples for Filters. 2017-08-14 15:01:07 -04:00
Emmanuelle Vargas-Gonzalez 00462eb683 Add hashes property to ExternalReference, more documentation for parse_observable 2017-08-14 14:37:49 -04:00
Emmanuelle Vargas-Gonzalez 26297f9730 Fix call to update(), add a register_marking decorator. Add type to Markings. 2017-08-14 11:52:34 -04:00
Emmanuelle Vargas-Gonzalez 68afd6b38e Minor changes. 2017-08-14 10:36:47 -04:00
Emmanuelle Vargas-Gonzalez 81c9eab730 Apply OrderedDict changes to other.py 2017-08-14 10:34:53 -04:00
Emmanuelle Vargas-Gonzalez e2c9ecccaf Apply OrderedDict changes to Observables. 2017-08-14 10:29:17 -04:00
Emmanuelle Vargas-Gonzalez 1329e2e76f Apply OrderedDict changes to Bundle. 2017-08-14 09:24:41 -04:00
Emmanuelle Vargas-Gonzalez add14c2490 Update CustomObject docstring, re-organize object properties. 2017-08-14 09:06:20 -04:00
Emmanuelle Vargas-Gonzalez ccfcffb2f5 Minor change. 2017-08-14 08:31:08 -04:00
Emmanuelle Vargas-Gonzalez dd2a1db5c1 Change SROs to OrderedDict approach. Removed COMMON_PROPERTIES. 2017-08-14 08:27:49 -04:00
clenk ee8013d782 Parse bundles correctly
This required refactoring parts of the library. Code in __init__.py
merged into bundle.py, which was renamed core.py. Code in other.py was
merged into common.py.

Fixes #40.
2017-08-11 16:18:20 -04:00
Emmanuelle Vargas-Gonzalez 8086447fce Change SDOs to OrderedDict approach. Removed COMMON_PROPERTIES. 2017-08-11 15:12:45 -04:00
Emmanuelle Vargas-Gonzalez 228f488f5b Update commons.py to new OrderedDict format, just in case. 2017-08-11 15:11:54 -04:00
Emmanuelle Vargas-Gonzalez 5172f86a7b Change _STIXBase to output properties in spec order. closes #39 2017-08-11 15:10:44 -04:00
Emmanuelle Vargas-Gonzalez 56d8ca4939 Missing instantiation of STIXdatetime in parser. Added __repr__() to STIXdatetime class. 2017-08-11 15:04:58 -04:00
Emmanuelle Vargas-Gonzalez e52575e01a Add missing call to super() in TAXIICollectionStore. 2017-08-11 09:52:29 -04:00
Emmanuelle Vargas-Gonzalez 86fd3778f5 Formatting changes, replace deduplicate() code in DataSource, missing super() calls to initialize objects. 2017-08-11 08:10:20 -04:00
Greg Back 961dfdc984 Convert rest of code to use namedtuple Filters 2017-08-09 19:25:06 +00:00
Greg Back 87f7503c0a Convert filters to be NamedTuples 2017-08-09 18:49:06 +00:00
Emmanuelle Vargas-Gonzalez a4ead4f6e7 Formatting changes, skip add/remove filter test, change deduplicate() approach. 2017-08-09 13:31:07 -04:00
Greg Back b8c96e37a2 Update to get tests passing 2017-07-20 20:30:04 +00:00
Greg Back b82606ba38 Clean up TAXII Datastore to use latest TAXII client 2017-07-20 19:36:54 +00:00
Greg Back f4833c05f6 Remove duplicate code. 2017-07-20 19:34:09 +00:00
Greg Back 55e92bc237 Update with correct class name
Also PEP-8 fixes
2017-07-19 21:30:29 +00:00
Greg Back bf9677094f Merge branch 'master' into datastores 2017-07-19 21:21:08 +00:00
Greg Back f4335f43ad Clean up redundant code. 2017-07-19 21:12:56 +00:00
Greg Back bac87465cb Merge pull request #35 from oasis-open/pattern_expressions
Pattern expressions
2017-07-19 14:17:57 +00:00
Richard Piazza a2aacc5e20 merge all classes into patterns.py 2017-07-19 14:03:43 +00:00
Greg Back 595ba10695 Merge pull request #34 from oasis-open/object-factory
Object factory
2017-07-19 13:54:24 +00:00
mbastian1135 611045528f taxii client and source/sink seperated; memory store common data dict (bug); all *Store classes have their sources and sinks tethered to one backend target 2017-07-18 20:55:22 +00:00
mbastian1135 9f659f9ecb formatting 2017-07-18 20:44:21 +00:00
mbastian1135 9d72d60706 Data* suite reorg, fixing bugs 2017-07-18 20:44:19 +00:00
= 20958b908a more tests for TAXII data source 2017-07-18 20:42:43 +00:00
Richard Piazza 27af0c0d5b Fixed style errors 2017-07-18 20:34:39 +00:00
Richard Piazza 6fa009e509 added object_paths
added more tests for pattern expressions
added "set" comparison expressions
implemented make_constant
fixed type name for EmailAddress
2017-07-18 20:30:02 +00:00
Richard Piazza c1b07ef505 Introduce constant objects for literals in pattern expressions
fixed idioms
2017-07-18 20:26:46 +00:00
Richard Piazza c8bcece6f6 added tests for expressions
fix __str__ methods
2017-07-18 20:26:46 +00:00
Richard Piazza c0467da5f9 added classes for Pattern Expressions 2017-07-18 20:26:44 +00:00
clenk 4bdbb4a2f9 Deep-copy in Object Factory and allow appending multiple items to list
properties in ObjectFactory.create()
2017-07-18 12:05:19 -04:00
clenk 0a2cda00cc Add object factory docstring 2017-07-17 15:23:20 -04:00
clenk 2e45cacd52 Add to list properties like `external_references`, but include option to
replace instead
2017-07-17 14:56:13 -04:00
clenk e233a424fb Drop granular markings from object factory for now 2017-07-14 16:11:48 -04:00
clenk 5c5903179d Fix import sort order 2017-07-14 16:02:29 -04:00
clenk 7ebf5ac7c7 Fix timestamp in test 2017-07-14 15:30:19 -04:00
clenk e1330692c8 Move ObservableProperty, ExtensionsProperty, and Observable parsing code
into observables.py to prevent circular imports and fix #23.
2017-07-14 15:10:12 -04:00
Greg Back c29acfa3ce Alternate implementation of ObjectFactory. 2017-07-13 15:35:22 +00:00
clenk 4dba41afc8 Add created to object factory, clean up code 2017-07-13 09:45:43 -04:00
Emmanuelle Vargas-Gonzalez 6d2cfcdedf [WIP] Update tests. 2017-07-13 07:57:33 -04:00
Emmanuelle Vargas-Gonzalez 747f0307a7 [WIP] Changes to align python-stix2 with marking-prototype project. 2017-07-13 07:57:01 -04:00
Emmanuelle Vargas-Gonzalez 7abcce7635 Add new duplicate marking exception. 2017-07-13 07:55:52 -04:00
clenk 6ddad22810 Add external references to object factory 2017-07-12 16:11:51 -04:00
clenk 593f16662a Add granular markings to object factory 2017-07-12 15:22:50 -04:00
clenk 659ad3df89 Add object markings to object factory 2017-07-12 14:44:52 -04:00
clenk 0c47936ee0 Create ObjectFactory class
currently only supports created_by_ref
2017-07-12 11:36:15 -04:00
clenk 6f680be8a6 Add stix2.__version__ 2017-07-06 09:41:50 -04:00
Greg Back 9bfc240008 Merge pull request #27 from oasis-open/issue26
Allow passing a list to Bundle constructor
2017-07-06 13:36:06 +00:00
clenk 1d3c59cc44 Move TLP constants up to stix2 namespace 2017-07-05 13:27:09 -04:00
clenk 1ea9671b68 Allow passing a list to Bundle constructor
Fix #26
2017-07-05 11:31:56 -04:00
clenk 29d9467ce0 Add more timestamp test cases, address suggestions 2017-06-28 15:55:23 -04:00
clenk e01ce132db Add timestamp precision for `created` and `modified`
Fix #24
2017-06-22 18:47:35 -04:00
clenk fdbb6ff337 Add custom Cyber Observables 2017-06-14 09:36:35 -04:00
clenk d4e92dd813 Allow adding validation to custom object types
_Custom.__init__() is a solution to recursion errors arising from using
a decorator. See https://stackoverflow.com/q/14739809/1013457
2017-06-13 10:27:31 -04:00
clenk bcfb13f23c Add custom STIX Object types 2017-06-12 16:22:16 -04:00
clenk 8f1ae4e6d3 Add custom properties via 'allow_custom'
Custom properties can be specified by passing them to a STIX object
constructor in the 'custom_properties' argument, or with the
'allow_custom' argument set to True, which will add any unrecognized
keyword arguments as properties on the object. The 'allow_custom'
argument can also be used with the parse() and parse_observable()
functions.
An error is now raised when attempting to parse objects without a 'type'
property, such as external references, kill chain phases, and granular
markings. The object which contains them is what should be parsed, not
these objects themselves.
2017-06-12 13:04:20 -04:00
Emmanuelle Vargas-Gonzalez bf740b21eb Initial selector and marking_ref validation. 2017-06-12 08:06:37 -04:00
Emmanuelle Vargas-Gonzalez ee4618f6c8 Add new marking errors. 2017-06-12 08:06:13 -04:00
Emmanuelle Vargas-Gonzalez 1f258551e1 Add and update tests for markings API. 2017-06-09 14:22:56 -04:00
Emmanuelle Vargas-Gonzalez 1b7695c4f6 Initial marking code. 2017-06-09 14:21:42 -04:00
Emmanuelle Vargas-Gonzalez 069c82abf1 Add markings.utils.py 2017-06-09 14:20:16 -04:00
clenk 9036c7f7b8 Add custom properties 2017-06-09 12:30:19 -04:00
Emmanuelle Vargas-Gonzalez c1ce2bd3f1 Add markings package structure. 2017-06-08 10:44:23 -04:00
Emmanuelle Vargas-Gonzalez c1c5c05f47 Some changes to Process and EmailMessage objects. Added tests. 2017-06-08 10:09:18 -04:00
Emmanuelle Vargas-Gonzalez b9f63e8de6 Minor Code Changes. 2017-06-08 08:42:32 -04:00
clenk 860efcc230 Make object attribute access act like dictionary access, raising an
error for any property (including custom or optional) not set on the object.
2017-06-07 11:06:20 -04:00
Emmanuelle Vargas-Gonzalez a38b912d19 Change _check_property_dependency() to also check for values for the required properties. 2017-06-02 13:48:44 -04:00
Emmanuelle Vargas-Gonzalez 653eef4b95 Revert changes to test_file_example_encryption_error() 2017-06-02 13:47:08 -04:00
Emmanuelle Vargas-Gonzalez e11b3adb3f Style change. 2017-06-02 10:22:31 -04:00
Emmanuelle Vargas-Gonzalez 51e28f64da Change __getattr__() to use __getitem__() instead. Other minor changes. 2017-06-02 10:10:50 -04:00
Emmanuelle Vargas-Gonzalez d579c12172 Update ImmutableError test cases. 2017-06-02 07:34:37 -04:00
Emmanuelle Vargas-Gonzalez fceef4d85a Use class name for ImmutableError message. 2017-06-02 07:33:31 -04:00
Emmanuelle Vargas-Gonzalez 0cf0f97143 Merge branch 'master' of github.com:oasis-open/cti-python-stix2 2017-06-02 07:15:01 -04:00
clenk f321447ecc Make Travis happy with cosmetic fixes 2017-06-01 16:47:56 -04:00
Emmanuelle Vargas-Gonzalez e1e7bade3f Updated this test since setting the value to False should not be a reason to fail the test. 2017-06-01 15:25:46 -04:00
Emmanuelle Vargas-Gonzalez 4d58fc3dbb Explicitly check for None, when intention is to set empty values or False. fixes #17 2017-06-01 15:25:03 -04:00
Emmanuelle Vargas-Gonzalez 5dc049d65a getattr() checks for attribute membership, returns the value if not None and raises AttributeError when is not present. fixes #19 2017-06-01 15:23:44 -04:00
Emmanuelle Vargas-Gonzalez ad46474663 Update immutable tests. 2017-06-01 12:43:42 -04:00
Emmanuelle Vargas-Gonzalez 49f58ff513 Make Immutable error more descriptive. Also fixes #13 2017-06-01 12:43:06 -04:00
Greg Back ea1e408b50 More style fixes 2017-05-31 10:02:37 -05:00
Greg Back 53ddf32e8c Style/lint fixes 2017-05-31 08:58:14 -05:00
= 6c3a689f02 fixed indentation 2017-05-31 09:47:36 -04:00
= 03f9af4b96 Merge branch 'taxii-data-source' of https://github.com/mitre/cti-python-stix2 into taxii-data-source 2017-05-31 09:41:32 -04:00
= d207ada05e in order to pull 2017-05-31 09:41:19 -04:00
= c65055bb0e tests for TAXII data source; some bug fixes 2017-05-30 16:56:27 -04:00
Emmanuelle Vargas-Gonzalez 835d675162 Merge fork changes. 2017-05-26 15:30:30 -04:00