Commit Graph

465 Commits (b2613ca62c0c552b37900c1efc4a8b413e2391cb)

Author SHA1 Message Date
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
Emmanuelle Vargas-Gonzalez 2a8af45ec2 Code style changes. 2017-05-26 15:24:33 -04:00
Greg Back fc1ce6d56d Add some tests 2017-05-25 12:31:45 -05:00
Michael Kouremetis 97d8d732fc Initial code for TAXII data source. 2017-05-24 10:27:37 -05:00
clenk b4dfa07a20 Improve coverage of utils.py
Also fix bugs this discovers. Fix #15.
2017-05-22 11:15:55 -04:00
Greg Back 41f2ceb8e5 Change remaining 'fields' to 'properties' 2017-05-19 12:51:59 -05:00
Greg Back a913d9d5ad Merge pull request #14 from oasis-open/parse-cyber-observables
Parse cyber observables
2017-05-19 09:15:00 -05:00
clenk 9bc3242736 Refactor extension properties
to inherit from a base class so all extension classes will include the
check for at least one property
2017-05-18 14:04:28 -04:00
clenk 0d736509e2 Fix tests 2017-05-18 11:24:43 -04:00
clenk 931de31a10 Merge branch 'parse-cyber-observables' of https://github.com/oasis-open/cti-python-stix2 into parse-cyber-observables 2017-05-18 11:08:12 -04:00
Chris Lenk b6e22bcbdf Merge pull request #12 from rpiazza/cyber-observables
Cyber observables
2017-05-18 11:02:10 -04:00
Richard Piazza f8242cffe4 correct misspelling on _check_object_constraints 2017-05-18 09:48:01 -04:00
Richard Piazza 8827149ef0 avoid {} set notation. It doesn't seem to be in 2.6 2017-05-17 15:51:07 -04:00
Richard Piazza f56ea8e951 added tests for process and file extensions
if no properties are passed to _check_at_least_one_property assume its all properties
when extensions are involved always check them in _check_at_least_one_property (caused by raising the exception on the enclosing type)
added _check_object_constaints to extensions, where appropriate
2017-05-17 15:33:28 -04:00
clenk 3e0e80141b For object reference properties, check the type of the object
referenced, not only that it is included in the local scope.
2017-05-17 15:21:02 -04:00
Richard Piazza 7c71b9e577 added tests for File and Process extensions
fixed typo in WindowsPEOptionalHeaderType
2017-05-16 12:39:04 -04:00
clenk 9761c37f20 Replace 'field' with 'property' to be consistent
with the specification
2017-05-16 12:27:30 -04:00
clenk a520a67511 Add tests for the Network Traffic extension and
User Account extensions
2017-05-16 11:35:43 -04:00
clenk 2460fb75be Rework select properties to use get_dict(),
which automatically coerces values to a dictionary if possible
2017-05-16 09:25:08 -04:00
Richard Piazza 826b6af644 added missing required properties 2017-05-15 15:21:59 -04:00
Richard Piazza 6456e490cc added rest of cyber observables extensions and embedded objects
set up EXT_MAPs
added FloatProperty
implemented ExtensionsProperty
2017-05-15 13:48:41 -04:00
clenk 958e60b01d Add 'labels' property to COMMON_PROPERTIES 2017-05-15 10:57:40 -04:00
Richard Piazza c20f640910 Merge branch 'cyber-observables' of https://github.com/rpiazza/cti-python-stix2 into cyber-observables 2017-05-12 13:18:40 -04:00
Richard Piazza a95e91005c too Chris' suggestions to improve interproperty constraint methods
added interproperty constraint check to ExternalReferences
2017-05-12 13:18:02 -04:00
clenk 9273207576 Merge branch 'parse-cyber-observables' of https://github.com/oasis-open/cti-python-stix2 into parse-cyber-observables 2017-05-12 12:19:54 -04:00
clenk 0568a0e671 Add ExtensionsProperty and ArchiveExt 2017-05-12 11:22:23 -04:00
Richard Piazza 29871427b7 fix import error 2017-05-11 15:42:56 -04:00
Richard Piazza 191b14a4bb fix import error 2017-05-11 15:33:45 -04:00
Rich Piazza ae5fb51564 Merge branch 'parse-cyber-observables' into cyber-observables 2017-05-11 15:29:15 -04:00
Richard Piazza 94f4f48329 Changes so File object creation doesn't violate on of the MUSTs
Added three new exceptions: DependentPropertiestError, AtLeastOnePropertyError, MutuallyExclusivePropertiesError
Added tests for NetworkTraffic, Process, URL, WindowsRegistryKey and X509Certificate
Added error tests for EmailMessage, NetworkTraffic, Artifact,
Added interproperty checker methods to the base class:  _check_mutually_exclusive_properties, _check_at_least_one_property and _check_properties_dependency
Added interproperty checkers to Artifact, EmailMIMEComponent, EmailMessage, NetworkTraffic
Made NetworkTraffic.protocols required
Added X509V3ExtenstionsType class
Use EmbeddedObjectProperty for X509Certificate.x509_v3_extensions
2017-05-11 15:22:46 -04:00
clenk 13245d28ce Add EnumProperty, use it in WindowsRegistryValueType 2017-05-10 11:52:59 -04:00
clenk b18259af77 Merge branch 'parse-cyber-observables' of https://github.com/oasis-open/cti-python-stix2 into parse-cyber-observables 2017-05-10 09:20:09 -04:00
clenk 67935d08fe Fix isort settings, rename Observable to clarify
it's an internal class
2017-05-09 18:03:46 -04:00
Richard Piazza 643941a950 Merge branch 'cyber-observables' of https://github.com/rpiazza/cti-python-stix2 into cyber-observables 2017-05-09 15:52:23 -04:00
Richard Piazza 4493ac9cae style issue 2017-05-09 15:51:52 -04:00
Rich Piazza 7c1fd1e7f0 Merge branch 'parse-cyber-observables' into cyber-observables 2017-05-09 15:36:59 -04:00
Richard Piazza 075b8485e5 fix conflict 2017-05-09 15:35:44 -04:00
Richard Piazza c3477b83bf encryption_algorithm was misspelled
uncomment test_file_example_encryption_error
added _check_object_constrains and properties_populated to base class
added ObjectConstraintError
added _check_object_constrains for File
2017-05-09 15:28:32 -04:00
clenk bdd18be6c3 Switch to isort for checking import order
because it has a pre-commit hook
2017-05-09 15:10:53 -04:00
clenk f4c813d84b Merge branch 'parse-cyber-observables' 2017-05-09 12:39:17 -04:00
clenk 555c81d30f Add EmailMessage and EmbeddedObjectProperty (for embedded object types
like EmailMIMEComponent)
2017-05-09 11:03:19 -04:00
Richard Piazza 549372048c style issues 2017-05-08 21:14:32 -04:00
Richard Piazza 125f57e297 added basic cyber observables
added some test cases
in Observable constructor permit no _valid_refs in kwargs
in Observable._check_property ensure that the prop_name is in the kwargs
2017-05-08 21:03:15 -04:00
clenk d26662776c Merge branch 'master' into parse-cyber-observables 2017-05-08 11:14:54 -04:00
clenk 04e3a72a7d Add EmailAddress and ObjectReferenceProperty 2017-05-05 12:32:02 -04:00
Richard Piazza 1e7e87ef44 style errors 3 2017-05-05 10:53:28 -04:00
Richard Piazza ddecd52904 style errors 2 2017-05-04 19:30:09 -04:00
Richard Piazza c9320ad895 style errors 2017-05-04 16:41:37 -04:00
Richard Piazza 200bb8556f added unsetting capability
cleaned up MissingFieldsError tests
error when new modified property is earlier than current modified property
2017-05-04 16:34:08 -04:00
clenk 1a75d830bb Add Autonomous System 2017-05-03 18:19:30 -04:00
clenk 2c67b90638 Add Artifact type 2017-05-03 17:35:33 -04:00
clenk c63ba8e447 Add ObservableProperty, DictionaryProperty, HashesProperty,
BinaryProperty, and HexProperty
2017-05-03 14:10:10 -04:00
Richard Piazza 5b8585b392 added versioning test for embedded_object
replaced VersioningError with RevokeError and UnmodifiablePropertyError
added __deepcopy__ to base class to handle embedded_objects
2017-05-03 12:14:09 -04:00
Richard Piazza c2d628db50 import style errors 2 2017-05-02 15:53:07 -04:00
Richard Piazza cda2b47691 import style errors 2 2017-05-02 14:29:59 -04:00
Richard Piazza 411c087fc1 import style errors 2017-05-02 14:25:01 -04:00
Richard Piazza a70fc2c952 Added versioning api, with tests 2017-05-02 14:17:26 -04:00
Richard Piazza 4efe5357b1 Added versioning api, with tests 2017-05-02 14:06:42 -04:00
clenk c5ba5dad65 Modify UUID checking 2017-04-25 10:03:37 -04:00
clenk cd815bfe84 Fix import order, add flake8-import-order plugin
to Tox
2017-04-24 18:29:56 -04:00
clenk fe4c4d78fc Fix typos, add to Property class documentation, small performance
boosts, and let strings and booleans in a ListProperty be handled by
__call__().
2017-04-24 17:34:16 -04:00
clenk 76acd8c0c2 Merge branch 'master' into parsing 2017-04-19 15:22:36 -04:00
clenk d06df8b9da Fix parsing errors
- Typos in Attack Pattern tests
- Put MarkingDefinition, ExternalReference, and KillChainPhase together
  in a file for objects that aren't SDOs or SROs
- Create utility function to return dictionary from string or
  file-like object
- Put off testing parsing Cyber Observable Objects until a later commit
2017-04-19 14:32:56 -04:00
clenk fabfbe20ec Parse all SDOs and SROs 2017-04-19 09:22:08 -04:00
Greg Back 6bf3584616 Create custom exception class for modifying an immutable object. 2017-04-18 15:06:41 -05:00
Greg Back 91cecb7b0c Add exception for extra/invalid custom properties. 2017-04-18 14:56:16 -05:00
Greg Back 32ff00559e Rename exception class. 2017-04-18 14:42:59 -05:00
Greg Back a7805c4ac0 Add Exception for missing values. 2017-04-18 14:41:18 -05:00
Greg Back 2aa1f5cedd Add exception for invalid Property values. 2017-04-18 14:19:16 -05:00
clenk 05ccffc5bd Use correct Property classes for all STIX objects 2017-04-18 09:21:38 -04:00
clenk a14d507f48 Add IntegerProperty 2017-04-18 09:19:38 -04:00
clenk 635a3ec389 Combine clean() and validate() 2017-04-17 15:13:11 -04:00
clenk cf0b56c04f Use correct property classes for ExternalReference 2017-04-17 14:15:01 -04:00
clenk 40810646fb Fix Flake8 error and use UTC as default timezone 2017-04-17 13:16:14 -04:00
clenk b4f116a33f Fix TimestampProperty
- improved timestamp formatting
- python-stix2 will only include subsecond values if they don't equal 0
- in Python 3.6, datetime.astimezone doesn't throw an error on naive
  timestamps as in previous versions
2017-04-17 10:48:13 -04:00
clenk 35981025c5 Rework ListProperty, fix merging issues 2017-04-14 10:42:17 -04:00
clenk bc8bdccece Merge branch 'master' into parsing 2017-04-11 15:05:22 -04:00
clenk 2e3dfe5d84 Add TimestampProperty 2017-04-11 12:10:55 -04:00
clenk 168105603b Parse dictionaries as well as strings and file-like objects 2017-04-10 10:42:07 -04:00
clenk dd382520d6 Clean up code/comments 2017-04-10 10:18:54 -04:00
clenk bab8d187c9 Rework kill chain phases 2017-04-07 17:34:06 -04:00
Richard Piazza 3c17c9259c Add Sighting object and data markings
- Update ReferenceProperty to allow specifying a particular object type
- Update ListProperty and add SelectorProperty
- Add description to Relationship
2017-04-07 16:07:17 -05:00
Greg Back 1517eb899b Move fixtures to conftest.py 2017-04-07 15:36:42 -05:00
clenk 93b8076ae3 Use StringProperty and ListProperty in Malware objects,
fix bugs in those properties
2017-04-07 14:53:40 -04:00
clenk 474833248d Flesh out ListProperty, add StringProperty 2017-04-06 19:17:32 -04:00
clenk 253989cc52 Coerce boolean properties automatically
for values like "true", "F", or 1
2017-04-06 16:08:36 -04:00
clenk ce0de97df1 Validate UUID portion of IDProperty 2017-04-06 13:29:14 -04:00
clenk 5e4ca9e882 Add parsing of Malware objects 2017-04-05 17:12:44 -04:00
Greg Back 08dcfee64c Don't be so strict about exact error message 2017-03-22 08:33:42 -05:00
Greg Back a2f5981dfb Improve test coverage 2017-03-22 08:26:13 -05:00
Greg Back a0600b5ba4 Fix or ignore Flake8 warnings. 2017-03-22 08:05:59 -05:00
Greg Back 26c65e3bd0 Split up test functions 2017-03-22 07:46:39 -05:00
Greg Back c1a59265ae Remove unnecessary TODO comments. 2017-03-21 20:24:32 -04:00
Greg Back 79554a6491 Convert remaining properties from dicts to classes 2017-03-21 20:24:32 -04:00
Greg Back 9bcf064213 Convert most old-style properties to Property classes 2017-03-21 20:06:09 -04:00
Greg Back 19146c8327 Convert REF_PROPERTY to ReferenceProperty 2017-03-21 19:44:01 -04:00
Greg Back ef332a328b Convert BOOL_PROPERTY to BooleanProperty. 2017-03-21 19:33:43 -04:00
Greg Back aa1ecfa235 Remove unused code. 2017-02-24 13:08:18 -06:00
Greg Back a79df01449 Convert more fields to Property classes. 2017-02-24 13:07:54 -06:00
Greg Back 7ef6e20e9a Add tests for kill chain phases. 2017-02-24 12:53:57 -06:00
Greg Back 2768426a28 Used fixed property for Bundle spec_version 2017-02-24 12:33:47 -06:00
Greg Back 2645bf2c71 Convert 'type' to a new Property class. 2017-02-24 12:33:45 -06:00
Greg Back a264ca1e5e Convert ID properties to class style 2017-02-24 12:32:05 -06:00
Greg Back cf688c3851 WIP: Start transforming properties. 2017-02-24 12:29:51 -06:00
Greg Back 805c15c397 Add tests for all SDOs 2017-02-24 11:56:55 -06:00
clenk 61d3652514 Add more SDO skeletons
- Campaign
- CourseOfAction
- Identity
- ObservedData
- Report
- ThreatActor
- Vulnerability
2017-02-23 10:12:38 -05:00
clenk 375b915da4 Add KillChainPhase, AttackPattern, IntrusionSet, Tool 2017-02-22 10:06:35 -05:00
clenk 417b43b1fe Add revoked property 2017-02-20 16:19:07 -05:00
clenk e2f60bc8c5 Add created_by_ref common property 2017-02-15 17:10:30 -05:00
Greg Back 031cdc9931 Add blank line 2017-02-10 16:12:02 -06:00
Greg Back dbe98c664a More repr tests. 2017-02-10 16:09:37 -06:00
Greg Back bc66db94aa Add generic __repr__ to _STIXBase. 2017-02-10 15:58:17 -06:00
Greg Back 96e880b49b Refactor library into separate files. 2017-02-10 15:35:02 -06:00
Greg Back b171f025c8 Test for exact exception strings. 2017-02-02 11:07:57 -06:00
Greg Back 1a46a4b073 Add external references. 2017-02-02 10:58:46 -06:00
Greg Back 5d7ed643bd Check for required args first, and check for them all at once.
This is necessary for versions of Python <3.6, where dictionaries are
unordered by default, meaning we can't ensure the order in which fields
are checked.
2017-02-02 10:17:13 -06:00
Greg Back 1ba064734b Special handling for timestamp fields.
If a type has more than one timestamp field that should be automatically generated,
we want them to all be same, not vary by milliseconds.
2017-02-02 09:50:35 -06:00
Greg Back 675a29dbfb Add support for required fields with no default values. 2017-02-02 08:53:46 -06:00
Greg Back 67c3311672 Handle ID fields in a generic way. 2017-02-02 08:33:36 -06:00
Greg Back e677167cb4 Refine tests. 2017-02-02 08:13:48 -06:00
Greg Back 724774900d Generic form of JSON serialization 2017-02-01 16:04:20 -06:00
Greg Back 2a1709a7de Allow passing objects to Bundle as args 2017-02-01 14:57:07 -06:00
Greg Back 58fccd7f7d Further refactoring bundle. 2017-02-01 14:52:18 -06:00
Greg Back ce31356839 start of automated property checking. 2017-02-01 14:35:41 -06:00
Greg Back b4eb6c1fd1 Refactor common ID check. 2017-02-01 13:44:57 -06:00
Greg Back b5ab54b6a9 WIP: convert bundle to using kwargs. 2017-02-01 13:34:44 -06:00
Greg Back 8843e9b190 WIP: refactor common fields. 2017-02-01 13:27:24 -06:00
Greg Back 26ed0389ea Fix invalid numeric literals 2017-02-01 12:50:43 -06:00
Greg Back 15e9ff8da6 Make Bundle test repeatable 2017-01-18 17:03:20 -08:00
Greg Back 855ca929fa Add initial Bundle implementation. 2017-01-18 16:58:25 -08:00
Greg Back e4e75e459b Update how fixtures work during testing. 2017-01-18 16:57:26 -08:00
Greg Back 022f344b94 Add UUID fixture 2017-01-18 16:32:52 -08:00
Greg Back 439211082a Add custom clock fixture 2017-01-18 16:14:57 -08:00
Greg Back 4d9dcafbc6 Small fixups 2017-01-18 16:10:18 -08:00
Greg Back 742d9645d6 Allow shorter syntax for creating relationships. 2017-01-18 15:14:56 -08:00