Commit Graph

565 Commits

Author SHA1 Message Date
Peter Hamilton e5d29f031f Update the EncryptionKeyInformation struct
This change updates the EncryptionKeyInformation struct to conform
with current library styles. This struct is used for key wrapping
functionality and will be leveraged by future patches. Updated
unit tests matching the new additions are included.
2017-07-13 15:12:26 -04:00
Peter Hamilton db81d9b16e Merge pull request #299 from OpenKMIP/feat/add-derive
Add key derivation support to the server cryptography engine
2017-07-10 15:58:02 -04:00
Peter Hamilton 86e49b4c35 Add key derivation support to the server cryptography engine
This change adds key derivation functionality to the cryptographic
engine, adding support for multiple key derivation methods,
including encrypting, hashing, HMACing, and specific algorithms
like PBKDF2 and NIST 800-108. Numerous unit tests are included
from established cryptographic testing sources to verify the
added functionality.
2017-07-10 14:19:25 -04:00
Peter Hamilton 62d30be7fa Merge pull request #298 from vbnmmnbv/locate_attributes_server
Add Name attribute filtering of locate for server
2017-07-05 20:23:24 -04:00
Peter Hamilton 4462a4cf42 Update server engine unit tests to improve coverage
This change adds several miscellaneous tests to improve unit test
coverage, minor additions all.
2017-07-05 14:24:38 -04:00
dane-fichter a910dccf07 Adding request and response payloads for the Sign operation 2017-07-05 10:03:58 -04:00
Hao Shen b55a051b26 Add Name attribute filtering of locate for server 2017-06-30 12:27:00 -07:00
Peter Hamilton 0618018c8b Add Decrypt support to the clients
This change adds Decrypt operation support to the KMIPProxy and
ProxyKmipClient clients, including unit tests to cover the new
functionality.
2017-06-28 11:35:38 -04:00
Peter Hamilton 4c244a1f6f Merge pull request #291 from OpenKMIP/feat/add-encrypt-to-clients
Add Encrypt support to the clients
2017-06-28 10:59:30 -04:00
Peter Hamilton 60bd56066e Add decryption support to the server cryptography engine
This change adds decryption functionality to the cryptographic
engine used by the server. It supports a variety of symmetric
decryption algorithms and block cipher modes. Asymmetric
decryption support will be added in a future patch.

Unit tests and minor updates to surrounding code are included.
2017-06-27 14:21:59 -04:00
Peter Hamilton 344cce83da Add request and response payloads for the DeriveKey operation
This change adds request/response payloads for the DeriveKey
operation, updating the payload factories to support DeriveKey.
Unit tests for the payloads and payload factories are included.
The inequality operator was also added to the TemplateAttribute
struct to support the DeriveKey payload unit tests; differences
in Python2.7 and 3+ led to comparison failures.
2017-06-23 18:28:02 -04:00
Peter Hamilton 38ee408b21 Merge pull request #293 from OpenKMIP/feat/add-derivation-parameters
Add the DerivationParameters struct
2017-06-23 18:22:11 -04:00
Peter Hamilton ed22fb15f9 Add the DerivationParameters struct
This change adds support for the DerivationParameters struct,
which is needed for DeriveKey support. Unit tests are included to
cover all newly added code.
2017-06-21 11:14:07 -04:00
Peter Hamilton 3db0bfe88f Add request and response payloads for the Decrypt operation
This change adds request and response payloads for Decrypt
operation, updating the payload factories to support Decrypt
payloads. Unit tests for all new code are included.
2017-06-20 17:12:29 -04:00
Peter Hamilton a5e960153c Add Encrypt support to the clients
This change adds Encrypt operation support to the KMIPProxy and
ProxyKmipClient clients, including unit tests to cover the new
functionality.

Extensive documentation has been added to the header comments for
the new client methods detailing the expected input parameters and
return values. This approach should be followed for all new client
additions going forward.
2017-06-20 11:11:50 -04:00
Peter Hamilton de575303ce Add Encrypt operation support to the server
This change adds the Encrypt operation to the server. Support is
currently limited to symmetric encryption only. The encryption key
used with the operation must be in the Active state and it must
have the Encrypt bit set in its cryptographic usage mask.
2017-06-19 10:59:40 -04:00
Peter Hamilton 920dce73f4 Merge pull request #289 from OpenKMIP/feat/add-encrypt
Add encryption support to the server cryptography engine
2017-06-19 10:38:58 -04:00
Peter Hamilton 7bc613417b Add encryption support to the server cryptography engine
This change adds encryption functionality to the cryptographic
engine used by the server. It supports a variety of symmetric
encryption algorithms and block cipher modes. Asymmetric encryption
support will be added in a future patch.

Unit tests and minor updates to surrounding core code are included.
2017-06-16 16:03:30 -04:00
Peter Hamilton 0f13e0e494 Adding request and response payloads for the Encrypt operation
This change adds request and response payloads for the Encrypt
operation, updating the payload factories to support Encrypt
payloads. Unit tests for all new code are included.
2017-05-31 16:47:19 -04:00
Peter Hamilton 471d0a1ad8 Updating the CryptographicParameters struct
This change updates the CryptographicParameters struct, removing the
primitive class wrappers that it used to use for attribute values
and replacing them with struct properties that internally manage the
primitive objects directly. This gutting and regutting necessitates
cascading changes to every part of the library that used these
internal primitive class wrappers, including unit tests, client and
client tests, and attribute factory handlers. All of these have been
updated to reflect the correct usage of the CryptographicParameters
struct.

This change also adds in additional attribute members for the
CryptographicParameters struct to bring it up to spec with KMIP 1.2.
2017-05-24 15:39:09 -04:00
Peter Hamilton e591873bf4 Merge pull request #284 from vbnmmnbv/revoke_pie
fix compromise_occurrence_date None handling in pie revoke
2017-04-27 19:48:27 -04:00
Hao Shen ac6e117676 fix compromise_occurrence_date None handling in pie revoke 2017-04-25 13:13:31 -07:00
Peter Hamilton 4617ae5280 Merge pull request #283 from vbnmmnbv/rename_compromise_occurrence_date
rename compromise_date to compromise_occurrence_date in revoke reques…
2017-04-21 15:52:04 -04:00
Hao Shen 8f16558b76 rename compromise_date to compromise_occurrence_date 2017-04-21 12:24:48 -07:00
Peter Hamilton 901f2d8097 Merge pull request #282 from vbnmmnbv/add_reset_mock
add missing reset_mock of logger in server revoke operation tests
2017-04-21 15:12:09 -04:00
Peter Hamilton a7c627d28f Merge pull request #274 from vbnmmnbv/destroy_state_permission_server
Add state check for Destroy operation.
2017-04-21 15:06:29 -04:00
Hao Shen 1c565b37f3 add missing reset_mock of logger in server revoke operation tests 2017-04-21 09:50:29 -07:00
Hao Shen 3897455469 Add state check for Destroy operation. 2017-04-21 09:32:26 -07:00
Peter Hamilton f7e0e55955 Merge pull request #276 from vbnmmnbv/create_crypo_usage_mask
Add crypto_usage_masks argument to pie Create operation
2017-04-21 11:01:55 -04:00
Peter Hamilton fda5e32fa0 Merge pull request #271 from vbnmmnbv/revoke_server
Add initial Revoke operation support for server.
2017-04-21 10:31:09 -04:00
Hao Shen 74075d502c Add Revoke operation support for pie client 2017-04-20 10:19:10 -07:00
Hao Shen a2b7194c08 Add crypto_usage_masks argument to pie Create operation 2017-04-19 21:07:32 -07:00
Hao Shen 0229a83acf Add initial Revoke operation support for server.
See the TODO in _process_revoke for more info.
2017-04-19 15:27:51 -07:00
Peter Hamilton e26e0748af Merge pull request #280 from vbnmmnbv/api_activate_locate_mac
Add the missing locate/activate KmipClient abstractmethod definition
2017-04-19 18:07:56 -04:00
Peter Hamilton 5678c21903 Merge pull request #273 from vbnmmnbv/mac_state_permission_server
Add state/crypto usage mask checks for MAC operation
2017-04-19 18:02:46 -04:00
Hao Shen ec4dae707c Add the missing locate/activate KmipClient abstractmethod definition 2017-04-14 11:19:50 -07:00
Peter Hamilton fae811528b Fixing stringent uid value checks in the ProxyKmipClient
This change loosens the input requirements for ProxyKmipClient
operations that accept a secret UID. Operations like Get and
Destroy used to require a string value but are allowed in the
KMIP specification to take no value at all. This change updates
the ProxyKmipClient to properly reflect the specification. The
underlying KMIPProxy client is mostly unchanged.

Closes #261
2017-04-12 17:41:13 -04:00
Hao Shen a0673dc111 Add state/crypto usage mask checks for MAC operation 2017-04-11 18:16:54 -07:00
Peter Hamilton 1d2a337ee0 Update the server Query results to match current features
This change updates the server results returned by the Query
operation to match the current set of supported features. The tests
for Query have been updated to better reflect testing across KMIP
versions.
2017-04-11 16:43:43 -04:00
Peter Hamilton 28e1e809d1 Merge pull request #275 from vbnmmnbv/KmipOperationFailure
Modify KmipOperationFailure to expose status/reason/message attributes
2017-04-06 08:54:16 -04:00
Hao Shen 16d79283f2 Modify KmipOperationFailure to expose status/reason/message attributes 2017-04-04 11:36:05 -07:00
Hao Shen 5967b55148 Fixing stringent argument checks for MAC operation 2017-03-30 14:32:42 -07:00
Hao Shen eda50d657a fix activate uid none check 2017-03-29 20:23:06 -07:00
Hao Shen de1d9c5646 Add Activate operation support for pie client 2017-03-29 11:55:48 -07:00
Peter Hamilton 5fc2e26527 Merge pull request #259 from OpenKMIP/maint/cleanup-old-server-code
Removing deprecated server code and supporting infrastructure
2017-03-28 09:37:10 -04:00
Peter Hamilton cbcb5b97bf Merge pull request #263 from vbnmmnbv/locate_pie
Add Locate operation support for pie client
2017-02-15 10:40:15 -05:00
Hao Shen b8b2d43347 Add minimum Locate operation support for server.
Currently it will return all the existing managed objects with the restriction of operation
policy only. No other filterings.

Closes #258
2017-02-14 18:09:10 -08:00
Hao Shen f0934fd08a Add Locate operation support for pie client 2017-02-14 17:59:52 -08:00
Peter Hamilton c584ac0cb5 Removing deprecated server code and supporting infrastructure
This change removes the original KMIPServer implementation, along
with all supporting classes. The KmipServer implementation is the
only supported server implementation going forward.
2017-02-08 15:29:10 -05:00
Peter Hamilton d9cf4c148a Merge pull request #256 from vbnmmnbv/server
Add MAC operation support for server
2017-02-03 12:11:41 -05:00
Hao Shen ac1206082c Add MAC operation support for server 2017-02-02 13:25:22 -08:00
Peter Hamilton 7fca09fa75 Merge pull request #254 from vbnmmnbv/client
Add MAC operation support at client side
2017-02-02 13:09:51 -05:00
Hao Shen 2d45f33d43 Add MAC operation support for client 2017-01-31 14:48:19 -08:00
Peter Hamilton 84fe76e15d Merge pull request #255 from vbnmmnbv/payload
Add necessary objects/attributes and payloads for MAC operation
2017-01-31 11:11:54 -05:00
Hao Shen a2696b722f Add necessary objects/attributes and payloads for MAC operation 2017-01-30 14:50:40 -08:00
Peter Hamilton 4dbf6b8e79 Merge pull request #246 from OpenKMIP/maint/drop-support-for-python2.6
Remove support for Python2.6
2017-01-30 09:29:47 -05:00
Hao Shen e8b63eb9d3 Add MAC operation support in cryptography engine 2017-01-25 13:10:41 -08:00
Peter Hamilton 47898365ba Fixing the KMIPProxy CreateKeyPair demo script
This change fixes a bug with the CreateKeyPair demo script for the
KMIPProxy client. The key pair name was never included with the
create request due to variable name overuse. This change fixes the
variable names thereby fixing the demo script.

Fixes #249
2017-01-10 13:37:50 -05:00
Peter Hamilton c5ca3297f3 Remove support for Python2.6
This change removes PyKMIP support for Python2.6. The last release
of Python2.6 occurred in October 2013, over 3 years ago. It also
does not support security features needed to use PyKMIP according
to best practices. This change drops tox and TravisCI settings for
Python2.6 and updates setup to no longer categorize the library as
Python2.6 compliant. The README has been updated accordingly.

Closes #116
2017-01-09 14:53:25 -05:00
Peter Hamilton 57c703c52f Refactor access control enforcement in the server
This change restructures how access controls are enforced for
different server operations, pulling common code into a shared
method for reuse. The server unit tests have been updated to
reflect this change.
2017-01-09 10:34:14 -05:00
Peter Hamilton 1bd5366a62 Adding support for the InitialDate attribute
This change updates the server and managed object set to support
the InitialDate attribute. The InitialDate is set when the Create,
CreateKeyPair, and Register operations are invoked and can be
listed and retrieved with the GetAttributeList and GetAttributes
operations respectively. The server unit tests have been updated
to reflect these changes.
2017-01-08 12:07:22 -05:00
Peter Hamilton 089d126b04 Adding server support for the GetAttributeList operation
This change adds support for the GetAttributeList operation. The
user can specify the ID of a managed object and get back a list
containing the names of all attributes currently set on the object.
The user can also omit the ID and the server will default to using
the ID placeholder for the object ID. New server tests have been
added to cover this feature. The GetAttributeList payloads have
also been updated for consistency with other payloads, requiring
minor updates in other clients and unit tests.
2017-01-05 18:43:11 -05:00
Peter Hamilton 28209bd60a Fixes a bug with socket interrupt handling under Python3.5
This change fixes a bug introduced with the addition of Python3.5
support. In Python3.5, SIGINT is silently ignored for system calls
(e.g., socket.accept) if the SIGINT signal handler does not raise
an exception. This causes the server to delay shutdown when
receiving SIGINT until after a new connection has been made. This
change updates the server's SIGINT signal handler to raise the
correct exception and updates the error handling code while serving
connections to account for this change in SIGINT processing. This
allows the server to shutdown immediately upon receiving SIGINT.
The server unit tests are updated to account for this change.
2017-01-04 16:05:45 -05:00
Peter Hamilton bbc2d8e58a Merge pull request #238 from cfs-pure/master
Unit test fixes
2017-01-04 13:24:24 -05:00
Charles Stephens 5be11db648 Unit test fixes
Fix unittests for compatibility between Python 2 and 3.
2017-01-04 10:04:10 -08:00
Peter Hamilton 36f0583adf Fixes a mismapped polymorphic identity for X509Certificate objects
This change updates the polymorphic identity used by
X509Certificate objects. The original identity was already used by
the base Certificate object, causing sqlalchemy to raise a warning
when used. This change resolves the identity reassignment and
prevents the warning from being displayed.
2017-01-04 12:01:39 -05:00
Peter Hamilton 239ec7102d Fixes how open is mocked in the server test suite
This change updates how the built-in open function is mocked in
the PyKMIP server test suite. On some platforms the old approach
was insufficient. This change explicitly references the builtins
module for Python3+, removing the old module-based mock.
2017-01-04 11:29:30 -05:00
Peter Hamilton b1f73d811c Fixing a bug with multithreading support with the SQLite backend
This change fixes a bug that could occur when accessing the server
with multiple threads or processes. The SQLite backend by default
does not support multithreading. This change updates how the
SQLite backend is instantiated, preventing error generation when
using multiple clients simultaenously. The server unit test suite
has been updated to cover the change.
2016-12-17 14:57:38 -05:00
Peter Hamilton 0df3866837 PyKMIP - Release 0.6.0
This update includes new operations and features for the clients
and server, in addition to other minor updates and bug fixes:

* Add support for Python 3.5
* Add support for the State and OperationPolicyName attributes
* Add server support for the Activate and GetAttributes operations
* Add server support for certificate-based client authentication
* Add server support for object access control via operation policy
* Add server support for loading of user-defined operation policies
* Add client support for the GetAttributes operation
* Update clients to support operation policy names with objects
* Update ProxyKmipClient to support names when creating new objects
* Remove coveralls integration
* Fix bug with server termination on missing request credential
* Fix bug with closing the client while unconnected to a server
* Fix bug with default values overriding server conf file settings
* Fix bug with early server termination on bad client certificates
* Fix bug with deprecated usage of the bandit config file
* Fix bug with ProxyKmipClient registering unset object attributes
2016-12-14 14:55:58 -05:00
Peter Hamilton 065cc0cec1 Updating server to enable the Activate operation
This change updates the PyKMIP server to enable the Activate
operation. Server unit tests are updated to account for this
change.
2016-12-07 19:27:05 -05:00
Peter Hamilton 131addf967 Merge pull request #231 from OpenKMIP/bug/handle-missing-object-attribute
Updating the server to handle errors during attribute lookup
2016-12-07 19:25:21 -05:00
Peter Hamilton 9738c2ba7f Fixing a bug with attribute handling in ProxyKmipClient.register
This change fixes a bug in the ProxyKmipClient, specifically in
the register method. The client would create attributes for the
object to register, regardless if those attributes were set on
the object. This could cause attribute value overwrites, deleting
valid default values with empty values. This change adds checks
to ensure these attributes are not created with the request if
they are not set on the object. The client unit tests have been
updated to reflect this change.
2016-12-07 09:57:57 -05:00
Peter Hamilton e2841f1ee5 Updating the server to handle errors during attribute lookup
This change updates the server to better handle exceptions thrown
while looking up the value of different attributes on managed
objects. Some managed objects in PyKMIP don't currently support
attributes they are supposed to. This can cause lookup errors
when using GetAttributes. This change suppresses any exceptions
and simply returns None for the missing attribute value. The
server unit tests have been updated to account for this change.
2016-12-07 09:13:38 -05:00
Peter Hamilton fc0d95ebb9 Adding GetAttributes support to the PyKMIP clients
This change adds support for the GetAttributes operation to the
PyKMIP clients. Demo scripts showing how to use the new operation
will be included in a future update. Client test cases have been
added and updated to reflect the new operation.
2016-12-06 20:42:17 -05:00
Peter Hamilton c59cfeeef9 Adding server support for the GetAttributes operation
This change adds server support for the GetAttributes operation.
The user can specify an object ID and an attribute list to get
the values of the attributes listed from the specified object.
The user can also omit either argument; the server will default
to using the ID placeholder and all viable attributes respectively.
Only a subset of the standard attributes are supported right now.
New tests have been added to cover the new feature.

Closes #185
Closes #211
Closes #218
2016-12-06 20:24:29 -05:00
Peter Hamilton 264ef64e0b Merge pull request #226 from OpenKMIP/bug/fix-textstring-write-value
Removing TextString check to encode characters when writing bytes
2016-12-06 20:23:39 -05:00
Peter Hamilton 843df7d2b1 Removing TextString check to encode characters when writing bytes
This change removes extraneous code in the TextString primitive
that would conditionally encode the individual string characters
depending upon the version of Python being used. This code caused
errors when using Unicode strings in Python 2.7 and below.
2016-12-06 14:32:22 -05:00
Peter Hamilton 27140daa78 Updating the attribute value factory to support ObjectType values
This change updates the attribute value factory to allow for the
creation of ObjectType attributes with values provided by the
caller. Unit tests have been added to cover this change.
2016-12-06 14:15:16 -05:00
Jonathan Seawright 10030cd173 Fix pep8 errors 2016-12-05 13:29:09 -06:00
Jonathan Seawright 7b25780a4e Created test suite for `attribute_factory`
Resolves CR changes for #208
2016-12-05 13:14:22 -06:00
Jonathan Seawright 9ba479e4d3 Add optional 'name' argument to create and create_key_pair functions
The ProxyKmipClient now allows you to optionally provide a name
when performing a `Create` or a `Create Key Pair`. If not specified,
the name is excluded from the request.

 * For `create`, users specify `name`
 * For `create_key_pair`, users specify `private_name` and `public_name`

Resolves #208
2016-12-03 21:37:35 -06:00
Peter Hamilton 94aacc1897 Fixes premature server shutdown on receiving invalid certificate
This change fixes a bug with the server where the server would
prematurely shutdown upon receiving a client connection using an
invalid certificate. The server will now withstand bad client
connections. The impacted server unit tests have been updated to
reflect the bug fix.
2016-12-01 14:40:30 -05:00
Peter Hamilton 38e7635fc7 Fixes configuration settings override by default script values
This change fixes a bug with parameter handling when invoking
the server's main routine. The default values provided for the
parameters would override any configuration file settings if
the main routine was used to run the server. To fix this, the
default values were removed, requiring the user to explicitly
specify parameter values if they want them to override the
configuration settings. The parameter doc strings have been
updated to match these changes.

Fixes #217
2016-12-01 11:44:43 -05:00
Peter Hamilton 181b34b6cb Updating payload factories to reflect new KMIP operations
This change updates the payload factories, adding placeholder
support for operations added in KMIP 1.3. It also updates old
placeholders with now supported payloads. The corresponding
unit test suites have been updated to match the additions.
2016-11-29 15:42:05 -05:00
Peter Hamilton 381e072bb7 Updating the server to allow optional policy_path values
This change updates the server, updating how it processes config
values and allowing it to handle optional or ommitted policy_path
values. This fixes a bug where users could not leave the
policy_path config file unset, in addition to a bug that forced
users to use '/etc/pykmip/policies' as their policy directory.

Fixes #210
2016-11-28 13:49:19 -05:00
Peter Hamilton 0b69a0ac17 Adding payloads for the GetAttributes operation
This change adds the request and response payloads needed for the
GetAttributes operation. Test cases included.
2016-11-27 12:33:33 -05:00
Peter Hamilton b36c730f22 Adding string utilites to the Attribute object
This change adds str and repr utilities to the Attribute object. A
new test suite for Attribute object tests is included, however only
the tests for the string utilities are included with this patch.
The remaining Attribute tests will be implemented in a later patch.
2016-11-27 12:21:11 -05:00
Peter Hamilton a55310368f Updating the ApplicationSpecificInformation attribute
This change adds some utility methods, including equality operators
and string methods, to the ApplicationSpecificInformation attribute.
Unit tests covering the changes are included.
2016-11-27 11:23:11 -05:00
Peter Hamilton 23f6a05a54 Fixing minor pep8 whitespace error in test utilities 2016-11-17 15:09:21 -05:00
Peter Hamilton b7cc542d9a Adding server support for the Activate operation
This change adds support for the Activate operation to the server,
including additional server unit tests, a new IllegalOperation
exception, and updated state attribute support in Pie objects.

Fixes #186
2016-11-12 16:37:20 -05:00
Peter Hamilton aae1577e3c Fixing potential undefined variable error in client open
This change reorganizes some of the error handling code in the
client open routine, preventing the generation of an undefined
variable error. The net effect of the client open routine is
unchanged.

Fixes #199
2016-11-11 14:49:07 -05:00
Peter Hamilton 78f16e208a Fixing a client socket shutdown bug when unconnected
This change fixes a minor bug with the client shutdown routine,
where an error would get thrown when attempting to call shutdown
on an unconnected socket. This error is now caught and suppressed,
since the client is already shutting down. A new client unit test
is included to cover this change.
2016-11-11 12:51:39 -05:00
Peter Hamilton a9264e612f Merge pull request #198 from OpenKMIP/feat/add-operation-policy-loading
Adding dynamic operation policy loading to the KMIP server
2016-11-10 10:48:59 -05:00
Peter Hamilton 4a3769e113 Adding dynamic operation policy loading to the KMIP server
This change adds support for dynamic operation policy loading.
The server config file now supports a 'policy_path' option that
points to a filesystem directory. Each file in the directory
should contain a JSON policy object. The KMIP server will scan
this directory and attempt to load all valid policies it finds.
The results of this process will be logged.
2016-11-10 10:39:16 -05:00
Peter Hamilton 799891ea6b Merge pull request #197 from OpenKMIP/feat/add-object-ownership
Adding operation policy enforcement to the KMIP server engine
2016-10-20 12:28:27 -04:00
Peter Hamilton e0b0a5c7bf Adding operation policy enforcement to the KMIP server engine
This change adds enforcement of KMIP operation policies to the
server engine, specifically to the Get and Destroy operations.
Explicit object ownership is enforced as a result, with ownership
now a tracked internal server property of managed objects. Tests
for this new functionality are included.
2016-10-14 12:59:12 -04:00
Peter Hamilton 4d6ba8a964 Add server persistence for operation policy names
This change updates the KMIP engine to process and persist the
value of the operation policy name attribute when creating or
registering new managed objects. Tests are included for these
changes.
2016-10-06 09:36:19 -04:00
Peter Hamilton 894a7ac97d Adding operation policy name support to the client
This change adds operation policy name support to the pie client,
allowing you to optionally specify the policy name when creating
new symmetric keys and asymmetric key pairs. The operation policy
name can also be set on any pie object and will be sent with the
corresponding register request for new objects. Tests for these
additions are included.
2016-10-05 15:33:06 -04:00
Peter Hamilton bcb5e7d948 Merge pull request #192 from OpenKMIP/feat/add-client-cert-auth
Adding session extraction of client identity from certificates
2016-10-04 14:55:14 -04:00
Peter Hamilton 91606db711 Fixing server failure on missing request credential
This change fixes a bug in the KMIP server engine where a missing
request credential would cause the session to prematurely
terminate. Credential handling may require session termination
for missing credentials, but that decision should be made by
credential processing not request processing.

Fixes #193
2016-10-03 11:10:42 -04:00
Peter Hamilton 8fd6349152 Adding session extraction of client identity from certificates
This change updates the KmipSession, allowing it to extract client
identity from the client certificate of a TLS connection. The
certificate subject common name is used as the client identity if
the certificate has client authentication set in the extended key
usage extension.

This change breaks backwards compatibility. If a client certificate
does not define a client identity, the session will reject it and
shutdown the connection. Any client certificates used to connect
with the software server in the past will need to be replaced with
certificates that define a suitable client identity.
2016-09-13 15:30:08 -04:00
Peter Hamilton 765df8340a Adding default KMIP operation policies
This change adds enumerations and policy objects to support the
specification and enforcement of KMIP operation policies. A new
module, kmip.core.policy, is added to define the default policy
objects required by the KMIP specification.
2016-09-09 14:45:34 -04:00
Peter Hamilton f122f19621 Updating KMIP enumerations to support KMIP 1.2
This change updates the set of supported enumerations to include
all enumerations included in KMIP 1.2. Existing enumerations are
updated where required.
2016-08-30 14:34:16 -04:00
Peter Hamilton 65ad4c6111 Adding support for the State attribute
This change adds the State attribute, updating the attribute
factory to support creating it.
2016-08-27 17:13:47 -04:00
Peter Hamilton a8e1854953 Adding the State enumeration
This change adds the State enumeration to the enumerations set.
2016-08-27 16:39:42 -04:00
Peter Hamilton 35fb5c0c9b Merge pull request #163 from OpenKMIP/ver/prep-release-0-5-0
PyKMIP - Release 0.5.0
2016-04-14 08:06:16 -04:00
Peter 600479fd7c PyKMIP - Release 0.5.0
This update includes a new implementation of the PyKMIP software server,
in addition to other minor features and bug fixes:
* Add KmipServer server implementation
* Add KmipSession to manage threaded client/server connections
* Add KmipEngine for processing core server application logic
* Add KmipEngine support for CRUD operations for managed objects
* Add SQLAlchemy/SQLite support for KmipEngine data storage
* Add CryptographyEngine component for all cryptographic operations
* Add pending deprecation warning for Python 2.6 support
* Add pending deprecation warning for the KMIPServer implementation
* Add support for building Sphinx documentation
* Add support for SQLAlchemy tables to all Pie objects
* Add Python magic methods to Attribute and Name objects
* Add Attribute class unit tests
* Add bin script to run the KmipServer
* Add setup entry points to run the KmipServer
* Update DiscoverVersions demo with optional versions argument
* Update all demo scripts to setup their own logging infrastructure
* Update README with information on the KmipServer implementation
* Remove expired certificate files from the integration test suite
* Remove default package log configuration and configuration file
* Fix bug with Locate payload parsing optional values
* Fix bug with DateTime string tests and move to UTC representation
2016-04-14 07:58:09 -04:00
Nathan Reller 7096ed63f3 Added KMIP Server Entry Point
Added console_scripts to setup.py, and added an entry for
pykmip-server. The pykmip-server application will run the PyKMIP
server. The two command line options below will run the server.

python -m kmip.services.server.server
pykmip-server
2016-04-11 10:27:57 -04:00
Peter Hamilton 7c57416249 Merge pull request #162 from OpenKMIP/maint/add-server-logging
Updating the KmipEngine logging for operation handling
2016-04-07 11:05:39 -04:00
Peter 477669f620 Updating the KmipEngine logging for operation handling
This change adds some additional logging statements when processing
individual KMIP operations, providing additional information on
operation input and output. The associated tests have been updated
accordingly.
2016-04-07 10:04:33 -04:00
Peter 80d56453a5 Fixing bug with primary key reuse by SQLAlchemy
This change fixes a bug with the Pie object table definitions used by
SQLAlchemy to store managed objects and attributes for the PyKMIP
software server. While primary keys are specified for all tables, they
do not by default auto-increment with SQLAlchemy/SQLite, causing
collisions and uniqueness constraint violations when bulk testing with
the server. Add an explicit SQLite auto-increment tag to each table
prevents this from happening.
2016-04-07 09:46:01 -04:00
Peter Hamilton 6080a72084 Merge pull request #151 from viktorTarasov/fix/messages/error-response-without-operation
core messages: response batch item without 'operation'
2016-04-05 14:36:52 -04:00
Peter Hamilton 0ed92a1ea4 Merge pull request #150 from viktorTarasov/fix/service-client/batch-item-of-error-response
fix: kmip-client: batch item of error response
2016-04-05 14:28:34 -04:00
Peter Hamilton 9362abbce5 Merge pull request #156 from OpenKMIP/maint/remove-library-logging
Removing default log configuration and usage
2016-04-05 14:11:08 -04:00
Peter Hamilton b152941b68 Merge pull request #159 from OpenKMIP/bug/fix-early-close
Fixing bug terminating connection prematurely
2016-04-05 14:09:41 -04:00
Peter Hamilton 21b4731118 Merge pull request #160 from OpenKMIP/feat/use-file-based-backend
Fixing bug with in-memory SQLite storage
2016-04-05 14:07:49 -04:00
Peter 7374bcda25 Fixing bug with DateTime str test
An issue with local daylight savings time causes a comparison error in
some locales when checking against a hard-coded expected time string.
The DateTime primitive string representation has been updated to output
only UTC time strings.

Fixes #124
2016-04-05 14:00:14 -04:00
Peter Hamilton 0f7157536b Merge pull request #158 from OpenKMIP/maint/remove-old-certs
Removing out-of-date certificate files
2016-04-05 12:12:52 -04:00
Peter 4bc27425be Removing default log configuration and usage
This change removes the use of default logging settings in
kmip.__init__.py as well as the bundled logconfig.ini file. Logging
settings should be set by applications, not by underlying software
libraries. All demos have been updated to set their own logging
settings and to log at appropriate levels.
2016-04-05 11:49:27 -04:00
Peter 9a994637d9 Fixing bug with in-memory SQLite storage
This change swaps out the in-memory SQLite database for file-based data
storage. SQLAlchemy support for in-memory SQLite storage does not work
across threads. The new storage scheme stores all PyKMIP server data in
/tmp.
2016-04-05 09:57:50 -04:00
Peter b2714002b6 Fixing bug terminating connection prematurely
This change fixes a bug with the KmipSession connection handling logic
that would terminate the connection before actually receiving a
termination from the client. The corresponding unit tests have been
updated to reflect this fix.
2016-04-05 08:58:40 -04:00
Peter Hamilton 77f1b1223c Merge pull request #155 from OpenKMIP/maint/add-server-deprecate
Adding a pending deprecation warning to old server
2016-04-04 15:58:54 -04:00
Peter ec83ff6abe Removing out-of-date certificate files
This change removes the testing certificate files. They are expired.
2016-04-04 13:48:10 -04:00
Peter edf4e4dcc9 Integrating the KmipEngine with the KmipSession
This change adds KmipEngine support to the KmipSession. The session will
now pass on received requests for processing by the engine, handling any
results or errors that occur. The KmipSession test suite has been
updated to reflect this change.
2016-04-04 10:48:53 -04:00
Peter e01a9142e5 Linking the loggers for the different KmipServer components
This change renames the loggers for different KmipServer components,
ensuring that all server logs are processed by the same kmip.server
logger.
2016-04-04 10:39:06 -04:00
Peter ab17f672ce Adding a pending deprecation warning to old server
This change adds a simple warning that is triggered whenever the
KMIPServer class is instantiated. It advises the user to use the newer
KmipServer class. The KMIPServer will be removed in a future version of
PyKMIP.
2016-03-31 10:47:11 -04:00
Peter 702ba77715 Adding the KmipServer
This change adds the KmipServer, the front-end of the KMIP software
server. The KmipServer is in charge of loading configuration settings,
creating all major server components, and serving and managing client
connections. A KmipServerConfig tool is included to handle configuration
settings. Test cases for all new code are included.
2016-03-30 16:55:44 -04:00
Peter 934fc7b93e Adding KmipEngine support for CreateKeyPair
This change adds support for the CreateKeyPair operation to the
KmipEngine. New exceptions and test cases are included.
2016-03-29 08:09:29 -04:00
Peter 22b8a84361 Adding KmipEngine support for Create
This change adds support for the Create operation to the KmipEngine. New
exceptions and test cases are included.
2016-03-29 07:57:18 -04:00
Viktor Tarasov fec1aa1f4a messages: response batch item without 'operation'
Batch item of error response message can be without 'operation'
attribute
2016-03-29 11:42:01 +02:00
Viktor Tarasov 4684fc6650 fix: kmip-client: batch item of error response 2016-03-29 10:25:29 +02:00
Peter Hamilton 8cc7c5f8e0 Merge pull request #149 from viktorTarasov/fix/session/session_name
fix: session: 'expected str instance, NoneType found'
2016-03-28 16:47:24 -04:00
Viktor Tarasov d996c268df fix session: 'expected str instance, NoneType found'
When KmipSession instantiated without session name there is error:
File ".../PyKMIP/kmip/services/server/session.py", line 57, in __init__
    self._logger = logging.getLogger('.'.join((__name__, name)))
TypeError: sequence item 1: expected str instance, NoneType found
2016-03-28 22:01:28 +02:00
Peter Hamilton 995d458654 Merge pull request #146 from OpenKMIP/feat/add-kmip-engine-register
Adding KmipEngine support for Register
2016-03-25 09:40:29 -04:00
Peter 89cba73821 Adding KmipEngine support for Register
This change adds support for the Register operation to the KmipEngine.
New exceptions and test cases are included.
2016-03-21 11:22:47 -04:00
Peter 0a499b7b12 Adding an AttributePolicy system
This change adds a policy system that will be used by the KmipEngine to
track and organize rules for individual KMIP attributes. Comparison
operators for the Integer primitive and ProtocolVersion struct are added
to support the AttributePolicy. Tests for all new changes are included.
2016-03-21 11:22:07 -04:00
Peter 07a63c07c8 Adding an AttributePolicy system
This change adds a policy system that will be used by the KmipEngine to
track and organize rules for individual KMIP attributes. Comparison
operators for the Integer primitive and ProtocolVersion struct are added
to support the AttributePolicy. Tests for all new changes are included.
2016-03-21 11:11:46 -04:00
Peter Hamilton 9e074da553 Merge pull request #133 from viktorTarasov/feature/attributes/eq-for-name
attributes: 'eq' and 'repr' methods for Name attr.
2016-03-18 12:55:56 -04:00
Peter Hamilton abd11c6327 Merge pull request #110 from viktorTarasov/feature/services-server-use-EOF
services/server: use EOF exception
2016-03-18 12:54:33 -04:00
Peter 6ecbe7bdda Adding KmipEngine support for Get
This change adds support for the Get operation to the KmipEngine. New
exceptions and test cases are included.
2016-03-15 16:15:35 -04:00
Peter 27befcb85c Adding KmipEngine support for Destroy
This change adds support for the Destroy operation to the KmipEngine.
New exceptions and test cases are included.
2016-03-14 08:21:27 -04:00
Peter 55113a70f8 Adding the KmipEngine
This change adds the KmipEngine, the core processing component of the
KmipServer. The KmipEngine contains the KMIP application logic and
handles process request messages by batch. The engine handles logging
and error handling throughout the processing stack.
    
New server exceptions are added to handle new error cases. A test suite
is included.
2016-03-08 15:15:17 -05:00
Hadi Esiely a7c41c758b Add Attribute class unit tests
This pull request:

- Adds the comparison operators to the following classes:

 -- Attribute.AttributeName class

- Fixes bug in the "_create_cryptographic_parameters" function when "None" type parameters are used

- Adds read, write, and comparator unit tests for the Attribute class in the /kmip/core/objects.py file

Signed-off-by: Hadi Esiely <hadi.esiely-barrera@jhuapl.edu>
2016-03-01 10:53:29 -05:00
Viktor Tarasov c8d928d95a attributes: 'eq' and 'repr' methods for Name attr.
'eq', 'repr' and 'str' method are added to
Name, NameValue and NameType classes
2016-02-24 10:33:17 +01:00
Viktor Tarasov 8b877fd4d2 services/server: use EOF exception ...
... to gently indicate the end of request processing

Introduce 'RequestLengthMismatch' exception  dedicated for the
unexpected result of 'read' request operation

Unit tests for kmip-protocol
2016-02-23 12:51:40 +01:00
Viktor Tarasov ecca9552d3 demos: 'versions' argument for 'discover-versions' demo 2016-02-23 11:57:28 +01:00
Peter Hamilton 7b472b752b Merge pull request #132 from viktorTarasov/fix/request-payload/missing-argument-for-read-call
payload/locate: missing argument in 'read' calls
2016-02-22 10:49:55 -05:00
Peter Hamilton cfb85190fa Merge pull request #128 from viktorTarasov/feature/discover-versions/server
server: implement 'discover-versions'
2016-02-22 10:46:41 -05:00
Nathan Reller 043553c0e0 Added SQLAlchemy Code for X509 Certificates
The code for persisting X509 certificates in a database has been added
along with the corresponding unit tests.
2016-02-19 14:05:00 -05:00
Nathan Reller 771aea7b80 Added Class Type to Managed Object
SQLAlchemy requires a unique identifier for classes when using the
join table inheritence strategy. Previous commits were reusing the
object_type attribute of ManagedObject, but this strategy does not
work for classes that are subclasses of an object. This will be the
case for the Certificate object type because one such subclass will be
X509Certificate.
2016-02-19 11:50:08 -05:00
Peter Hamilton e967bb056d Merge pull request #136 from OpenKMIP/feat/sqlalchemy-secret
Added SQLAlchemy Code for Secret Data
2016-02-19 11:36:06 -05:00
Nathan Reller c3680f7609 Added SQLAlchemy Code for Asymmetric Keys
The code for persisting public and private keys in a database has been
added along with the corresponding unit tests.
2016-02-19 10:38:24 -05:00
Nathan Reller 8d6575fa36 Added SQLAlchemy Code for Secret Data
The SecretData class has the SQLAlchemy code in it to allow it be
stored in the database using the library.
2016-02-19 10:33:36 -05:00
Nathan Reller c21f07634b Added SQLAlchemy Code for Symmetric Key
The code for persisting symmetric keys in a database has been added
along with the corresponding unit tests.

The usage mask list for cryptographic objects is stored as an integer bitmask.
The conversion takes place with a new SQLAlchemy type.

Switched ManagedObject value type to VARBINARY. This prevents errors from
occuring when trying to convert to a string.
2016-02-19 09:23:51 -05:00
Viktor Tarasov c9df034e48 server: implement 'discover-versions' 2016-02-18 14:35:30 +01:00
Peter Hamilton 4d6caf1de7 Merge pull request #130 from viktorTarasov/fix/payload-storage-mask
service/server: fix Locate.Payload member name
2016-02-17 14:16:05 -05:00
Peter Hamilton 5eb1625a23 Merge pull request #131 from viktorTarasov/feature/utils/log-skey
utils: log symmetric key
2016-02-17 13:00:53 -05:00
Viktor Tarasov e0ea25a2c6 payload/locate: missing argument in 'read' calls
missing 'object_group_member' in request payload
2016-02-17 17:54:25 +01:00
Viktor Tarasov 8fe44e0e92 utils: log symmetric key 2016-02-17 17:40:50 +01:00
Viktor Tarasov 2b9d19c35f service/server: fix Locate.Payload member name 2016-02-17 17:26:10 +01:00
Nathan Reller e7a383cace Added SQLAlchemy Code to OpaqueData
Added the ORM code to be able to persist OpaqueData in a database.
This added the code to the base class ManagedObject as well. Unit
tests are added to demonstrate the code is working correctly.
2016-02-16 14:53:45 -05:00
Peter Hamilton 52c7103681 Merge pull request #123 from OpenKMIP/feat/add-kmip-session
Adding KmipSession
2016-02-15 09:25:14 -05:00
Peter Hamilton 92c7358237 Merge pull request #122 from OpenKMIP/feat/add-auth-suites
Adding KMIP authentication suites
2016-02-15 09:20:46 -05:00
Peter d316d29b60 Adding KmipSession
This change adds a KmipSession class that manages individual
client/server connections in a thread of execution separate from the
main thread. A test suite is included.
2016-02-09 18:05:57 -05:00
Peter Hamilton a0423352ab Merge pull request #115 from hadesto/dev/hadi/unit_tests/kmip_client/server_failover_release
Server Failover Unit Tests
2016-02-09 15:09:19 -05:00
Hadi Esiely bd9ac1c521 Server Failover Unit Tests
This pull request adds some unit tests for the server failover code that was recently merged.

Signed-off-by: Hadi Esiely <hadi.esiely-barrera@jhuapl.edu>
2016-02-09 14:13:22 -05:00
Peter a1fa021af3 Adding KMIP authentication suites
This change adds KMIP authentication suites, which define the TLS
protocols and cipher suites to use for establishing secure network
connections compliant with the KMIP specification. Test suites are
included.
2016-02-05 13:29:05 -05:00
Peter 53d6b1776e Adding the CryptographyEngine
This changes adds the CryptographyEngine, which uses pyca/cryptography
to create symmetric and asymmetric keys. A test suite is included.
2016-01-29 13:29:36 -05:00
Peter Hamilton 9d02201178 Merge pull request #120 from OpenKMIP/dev/add-cryptographic-engine-api
Adding server.crypto package and initial API
2016-01-29 13:27:14 -05:00
Peter 54b446f2d5 Adding server.crypto package and initial API
This changes adds the kmip.services.server.crypto package and the
initial API for the CryptographicEngine hierarchy.
2016-01-18 16:36:52 -05:00
Peter b7add2179d Adding pending deprecation warning for Python2.6
This change add a simple warning that is triggered whenever Python
2.6 is used with PyKMIP. It simply advises the user to use a newer
version of Python. For now, Python 2.6 can still be used with
PyKMIP.
2016-01-14 16:39:52 -05:00
Peter Hamilton 44f5b1978b Merge pull request #119 from OpenKMIP/bug/fix-binary-operator-line-break
Fixing line break style error
2016-01-14 10:50:43 -05:00
Peter fee1157ee7 Fixing line break style error
This change fixes a minor style error where a line break was used
before a binary operator in an if-statement.
2016-01-14 10:44:08 -05:00
Viktor Tarasov d83e0a3416 test/integration: fix path to 'kmip_server' module 2015-12-11 16:40:31 +01:00
Spencer Jackson 1ae87789ef Fix BatchErrorContinuation message initialization 2015-12-10 12:40:37 -05:00
Peter Hamilton a7a3b958d0 Merge pull request #106 from OpenKMIP/ver/prep-release-0-4-1
PyKMIP - Release 0.4.1
2015-12-03 09:52:17 -05:00
Peter Hamilton edb215311b PyKMIP - Release 0.4.1
This update includes several new features:
* Add support for the GetAttributeList operation
* Add integration with Travis CI, Codecov/Coveralls, and Bandit
* Add client/server failover support using multiple IP addresses
* Add additional attribute unit tests
* Update implementations of KMIP primitives
* Reorganize server code to prepare for refactoring
* Remove use of exec when handling library version numbers
* Remove broken server script
2015-12-02 12:49:59 -05:00
Peter Hamilton ad6ec69848 Fixing broken GetAttributeList integration test 2015-12-02 12:08:47 -05:00
Hadi Esiely b4644c47ae Server Failover Feature
This feature enables the PyKMIP library to switch between KMIP service provider
hosts in the event one of them is unavailable. To list more than than one host,
include all necessary host IP addresses separated by commas in the "host" field
in the pykmip.conf file.

Signed-off-by: Hadi Esiely <hadi.esiely-barrera@jhuapl.edu>
2015-11-25 12:43:40 -05:00
Peter Hamilton 0cccf68798 Merge pull request #96 from hadesto/dev/hadi/tests/attributes-digest
Adding Digest unit tests
2015-11-02 09:11:15 -05:00
Hadi Esiely e7810667e9 Adding Digest unit tests
Completes remaining tests for the Digest class
2015-10-27 14:31:10 -04:00
Hadi Esiely 64dbbe86e0 Adding test coverage for Cryptographic Parameter tests
Added unit tests for the cryptographic parameter attribute code
2015-10-27 14:29:55 -04:00
Peter Hamilton a04a014a8a Reorganizing the server code
This change creates a new subpackage under services, server, which now
holds all of the software server related code. References to different
pieces of the server code base are updated accordingly.
2015-09-29 14:22:03 -04:00
Peter Hamilton 20dbad5055 Updating support for the Enumeration primitive
This change updates the Enumeration primitive, adding a fresh
implementation and documentation. An updated unit test suite for the
primitive is included. Numerous changes to Enumeration usage across the
library are also included to comply with the updated implementation.
2015-09-29 13:23:44 -04:00
Peter Hamilton 55b35b0353 Merge pull request #83 from OpenKMIP/feat/update-attribute-value-factory
Updating the AttributeValue factory
2015-09-29 13:11:08 -04:00
Peter Hamilton 2c166a68ea Merge pull request #80 from OpenKMIP/feat/update-interval
Updating support for the Interval primitive
2015-09-29 13:09:39 -04:00
Peter Hamilton a521f49dcd Merge pull request #91 from hadesto/dev/hadi/tests/attributes-namespace-tests
Added tests for testing Name attribute
2015-09-29 13:08:22 -04:00
Hadi Esiely ac6d0ae81c Added tests for testing Name attribute
Completes test coverage for the Name attribute
2015-09-28 13:05:41 -04:00
Peter Hamilton 45c91b9c8d Merge pull request #79 from OpenKMIP/feat/update-date-time
Updating support for the DateTime primitive
2015-09-23 12:51:30 -04:00
Peter Hamilton e3075a1b04 Merge pull request #77 from OpenKMIP/feat/update-big-integer
Updating support for the BigInteger primitive
2015-09-23 10:59:36 -04:00
Peter Hamilton 25ad7d3ab1 Updating version handling
This change updates how the library version number is dynamically
loaded. It removes the use of exec in favor of a regular expression.
2015-09-17 14:32:14 -04:00
Peter Hamilton 3970c0f211 Adding ProxyKmipClient support for the GetAttributeList operation
This change adds support for the GetAttributeList operation to the
ProxyKmipClient. It updates the Pie client API and provides a demo
showing how to use the operation. All relevant test suites are updated
accordingly.
2015-09-04 10:01:39 -04:00
Peter Hamilton a79e9d7f99 Updating support for the Interval primitive
This change updates the Interval primitive, adding a fresh
implementation and documentation. A new unit test suite for the
primitive is included.
2015-09-01 12:36:22 -04:00
Peter Hamilton 26e44a07e1 Updating support for the DateTime primitive
This change updates the DateTime primitive, adding documentation and
Python string operator support. A new unit test suite for the primitive
is included.
2015-08-31 12:19:03 -04:00
Peter Hamilton c763b69af1 Adding KMIPProxy support for the GetAttributeList operation
This change adds support for the GetAttributeList operation to the
KMIPProxy client. It adds a new result object for the operation along
with an integration test demonstrating how the operation can be used.
Client unit test cases are also included.
2015-08-31 12:06:49 -04:00
Peter Hamilton 3a4658d5d1 Updating the set of supported configuration file locations
This change adds support for multiple configuration file storage
locations, including the user's home directory and /etc. The preferred
configuration file name is now pykmip.conf. The original name,
kmipconfig.ini, will continue to be supported for legacy installations.
2015-08-28 15:59:05 -04:00
Peter Hamilton 89a6e21a06 Updating support for the BigInteger primitive
This change fixes various bugs with the original BigInteger
implementation, adding in a working version of the primitive. A full
unit test suite is included.
2015-08-27 09:00:00 -04:00
Peter Hamilton b04e3ab3dc Updating support for the LongInteger primitive
This change updates the LongInteger primitive, improving class
documentation, adding standard Python operators, cleaning up the
original implementation, and expanding the corresponding unit test suite
to address the modifications.
2015-08-27 08:47:07 -04:00
Peter Hamilton f3c202cf3c Merge pull request #75 from OpenKMIP/maint/split-primitive-tests
Splitting primitive object test suites
2015-08-24 09:03:06 -04:00
Peter Hamilton 3ebc09670a Updating integration tests to ignore software server
This change adds a new pytest marker, ignore. It is used to silently
skip the software server integration test suite, which is now broken
from a recent ssl update. A pytest ini configuration file is also added
to register the new marker.
2015-08-20 09:13:20 -04:00
Peter Hamilton b0bab4b8bc Updating the AttributeValue factory
This change updates the AttributeValue factory, removing and
streamlining code. Support for several basic primitive attributes are
added in addition to a redesigned test suite for the factory.
2015-08-18 14:04:29 -04:00
Peter Hamilton 76a2f68f1f Splitting primitive object test suites
This change splits the original set of primitive object test suites into
separate modules. Minor refactoring to account for structure changes is
included.
2015-08-18 09:56:51 -04:00
Peter Hamilton a21f0b66c6 Adding payloads for the GetAttributeList operation
This change adds request and response payloads for the GetAttributeList
operation. It updates the payload factories to support these new objects
and updates and adds all associated or required test suites. A new
exception is also included that is thrown by objects attempting to parse
invalid KMIP encodings.
2015-08-17 12:15:25 -04:00
Peter Hamilton a9cb9b180e PyKMIP - Release 0.4.0
This update includes several new features and bug fixes:
* Add the official Pie API for a simpler KMIP interface
* Add the ProxyKmipClient implementation of the Pie API
* Add key, secret, and opaque objects to the Pie object hierarchy
* Add unit demos for all ProxyKmipClient operations
* Add complete unit and integration test suites for the Pie package
* Add KMIPProxy client support for the Activate and Revoke operations
* Add KMIPProxy client connection timeout support
* Add KMIPProxy integration tests for asymm. key/secret/opaque objects
* Add improved request error logging for the KMIPServer
* Update README with more information about the clients and Pie API
* Remove AUTHORS in favor of Git commit history
* Fix bug with dangling file handle when setting __version__
* Fix bug with dangling socket connection upon client destruction
2015-08-13 13:41:41 -04:00
Peter Hamilton 097bd38910 Fixing pep8 errors for the KMIP server
This change fixes pep8 whitespace errors in the KMIP server.
2015-08-03 10:52:27 -04:00
Peter Hamilton bb0487b5dc Merge pull request #69 from OpenKMIP/feat/add-pie-client-opaque
Adding opaque object examples for the ProxyKmipClient
2015-07-31 17:21:40 -04:00
Felix Engelmann 27f09f6b34 KMIPServer serve log exceptions
The Exception handler discards all errors, would be nice to log them
to the error logger before closing the connection.
2015-07-31 12:28:05 +02:00
Hadi Esiely 50cc8d9e8a Addition of Opaque Objects Integration Tests
Tests that opaque objects can be properly registered, retrieved, and destroyed.
2015-07-30 13:01:51 -04:00
Hadi Esiely f7e9c398fc Addition of Passphrase Integration Test
Tests that passphrases can be properly registered, retrieved, and destroyed.
2015-07-30 12:22:46 -04:00
Hadi Esiely 866ba3f3f4 Addition of Certificate Integration Tests
Tests that certificates can be properly registered, retrieved, and destroyed.
2015-07-30 10:54:37 -04:00
Peter Hamilton a148e7c615 Adding opaque object examples for the ProxyKmipClient
This change adds two examples showing how to use opaque objects with the
ProxyKmipClient. The first is a unit demo showing how to register an
opaque object using the register operation of the ProxyKmipClient. The
second is an integration test showing how to register, get, and destroy
an opaque object using the ProxyKmipClient.
2015-07-30 10:39:06 -04:00
Peter Hamilton 689275ced0 Adding secret data examples for the ProxyKmipClient
This change adds two examples showing how to use secret data with the
ProxyKmipClient. The first is a unit demo showing how to register a
secret using the register operation of the ProxyKmipClient. The second
is an integration test showing how to register, get, and destroy a
secret using the ProxyKmipClient.
2015-07-30 10:22:48 -04:00
Peter Hamilton 275f341da9 Adding certificate examples for the ProxyKmipClient
This change adds two examples showing how to use certificates with the
ProxyKmipClient. The first is a unit demo showing how to register a
certificate using the register operation of the ProxyKmipClient. The
second is an integration test showing how to register, get, and destroy
a certificate using the ProxyKmipClient.
2015-07-30 08:31:47 -04:00
Peter Hamilton 93610719a5 Adding opaque objects to the Pie object hierarchy
This change adds an OpaqueObject class to the Pie object hierarchy. A
unit test suite covering the class is included, as are updates to the
Pie object factory and associated tests.
2015-07-30 08:25:06 -04:00
Peter Hamilton e497e1c37c Adding secret data to the Pie object hierarchy
This change adds a SecretData class to the Pie object hierarchy. A unit
test suite covering the class is provided, as are updates to the Pie
object factory and associated tests.
2015-07-30 08:03:33 -04:00
Peter Hamilton ee7a6bc082 Merge pull request #63 from OpenKMIP/feat/add-pie-certificates
Adding certificates to the Pie object hierarchy
2015-07-29 20:56:48 -04:00
Hadi Esiely 078e1015bc Added asymmetric key testing
This test includes tests for testing the creation, destruction, registration, and querying of private and public keys.
2015-07-29 12:18:16 -04:00
Peter Hamilton c9c58fb11b Adding certificates to the Pie object hierarchy
This change adds certificate objects to the Pie object hierarchy,
specifically a generic Certificate class and an X509Certificate
subclass. Unit test suites covering both classes are included. The Pie
object factory is also updated to support Pie and core certificate
conversion.
2015-07-29 07:59:42 -04:00
Peter Hamilton 99d38fcd25 Merge pull request #58 from OpenKMIP/feat/add-pie-client-demos
Adding unit demos for the ProxyKmipClient
2015-07-28 17:02:13 -04:00
Peter Hamilton 58120bc186 Adding unit demos for the Pie ProxyKmipClient
This change adds a new suite of unit demos for the new Pie
ProxyKmipClient. The demos show how to create the ProxyKmipClient and
how to use all of its primary operations. Demo utilities are updated to
support the new suite.
2015-07-28 13:17:31 -04:00
Peter Hamilton 608644b062 Adding integration tests for the Pie ProxyKmipClient
This change adds an integration test suite for the new Pie
ProxyKmipClient, which tests basic CRUD operations for symmetric and
asymmetric keys. An additional pytest fixture is included for the new
client.
2015-07-28 13:03:08 -04:00
Peter Hamilton 7baa31ea51 Adding the Pie ProxyKmipClient
This change adds the Pie ProxyKmipClient, which provides a simplified
version of the original KMIP interface and which wraps the original
client. The ProxyKmipClient supports basic CRUD operations for
symmetric, public, and private keys. A unit test suite for the client is
included.
2015-07-27 13:09:45 -04:00
Peter Hamilton 202e7eac2c Adding Pie client API
This change adds an abstract base class defining the client interface
for all future PyKMIP clients. Required arguments for different
operations are explicitly specified. A basic sanity unit test suite is
included.
2015-07-24 14:58:41 -04:00
Peter Hamilton d3a5177deb Merge pull request #56 from sedukull/propersocketclosing
Shutdown and close the socket properly
2015-07-23 07:30:06 -04:00
Peter Hamilton 81889cd9d8 Adding a Pie ObjectFactory
This change adds an ObjectFactory for the Pie object hierarchy. It
provides easy translation to and from Pie objects to the original core
object hierarchy. The factory is only used by the new Pie client and
should never be used outside of this context. A unit test suite for the
factory is included.
2015-07-22 10:04:49 -04:00
Peter Hamilton 7efcc30430 Merge pull request #55 from OpenKMIP/feat/updating-pie-objects
Updating Pie API key objects
2015-07-22 10:03:42 -04:00
sedukull 4a0b2c4c57 Shutdown and close the socket properly.
Calling close in destructor, helps in case default close() is not called
by consumers.
2015-07-22 23:33:40 +10:00
Peter Hamilton bc703f0757 Updating Pie API key objects
This change makes some minor updates to the Pie key object hierarchy. It
fixes the key subclasses to inherit from Key directly. It adds in
support for the key format type attribute, which is required for
low-level key encoding. It also improves repr and str functionality by
using binascii.hexlify to represent the key values. The corresponding
test suites are updated accordingly to reflect these changes.
2015-07-21 16:03:53 -04:00
Peter Hamilton d6a4da6050 Adding customizable timeout support to the KMIP client
This change adds support for a customizable timeout option for the KMIP
client. The client will stop attempting connections or operations once
the timeout is exceeded instead of waiting for the default system
timeout. The default timeouts is 30 seconds.
2015-07-21 08:54:44 -04:00
Peter Hamilton 93f6c5411f Adding PrivateKey to the Pie object hierarchy
This change adds PrivateKey to the Pie object hierarchy along with a
test suite.
2015-07-02 15:32:18 -04:00
Peter Hamilton 93693c8d4d Adding PublicKey to the Pie object hierarchy
This change adds PublicKey to the Pie object hierarchy along with a test
suite.
2015-07-02 10:51:01 -04:00
Peter Hamilton a1005c43bb Merge pull request #44 from OpenKMIP/feat/add-pie-symmetric-key
Adding SymmetricKey to the Pie object hierarchy
2015-07-02 10:23:57 -04:00
Peter Hamilton 4ff4370c93 Merge pull request #46 from OpenKMIP/feat/add-revoke-demo
Adding a demo for the Revoke operation
2015-07-01 11:03:55 -04:00
Tim Kelsey 6bd311701c Adding various date attribute values 2015-07-01 15:48:11 +01:00
Peter Hamilton 7a9f190ec4 Adding SymmetricKey to the Pie object hierarchy
This change adds SymmetricKey to the Pie object hierarchy along with a
test suite and updates to the other classes and test suites composing
the Pie interface.
2015-07-01 08:38:37 -04:00
Peter Hamilton f22b3f9c60 Merge pull request #43 from callidus/adding-crypto-params
Adding CryptographicParameters construction to attribute values
2015-07-01 07:59:25 -04:00
Peter Hamilton d2dbd8e8c4 Adding a demo for the Revoke operation
This change adds a unit demo for the Revoke operation. The operation
accepts a UID of the KMIP managed object that needs to be revoked, in
addition to a revocation code and message explaining why revocation
needs to occur.
2015-06-30 11:00:04 -04:00
Peter Hamilton 94f8134fcd Merge pull request #41 from callidus/adding-revoke
Adding revoke operation
2015-06-30 10:34:26 -04:00
Tim Kelsey 63e55e3a06 Adding CryptographicParameters construction to attribute values 2015-06-30 11:23:35 +01:00
Tim Kelsey 30ff7e78bf Adding revoke operation 2015-06-26 14:54:23 +01:00
Peter Hamilton ef628b3f0e Adding a demo for the Activate operation
This change adds a unit demo for the Activate operation. The operation
accepts the UID of a KMIP managed object that needs to be activated for
future use.
2015-06-26 09:52:28 -04:00
Peter Hamilton a7e2084385 Merge pull request #33 from callidus/add-activate
Adding the "activate" opperation
2015-06-26 09:39:45 -04:00
Tim Kelsey b1ac997d38 Adding the "activate" opperation 2015-06-26 12:08:24 +01:00
Peter Hamilton b8fe858782 Merge pull request #40 from OpenKMIP/bug/fix-file-handle-for-versions
Fixing bug with dangling file handle when setting __version__
2015-06-25 15:07:06 -04:00
Peter Hamilton e371273457 Fixing bug with dangling file handle when setting __version__
This change fixes a bug whereby a file handle was left unclosed after
being used to dynamically set __version__.
2015-06-25 14:27:31 -04:00
Kelvin Ly 3a2ceab68f Fix a few bugs in Credential object 2015-06-25 12:22:36 -04:00
Peter Hamilton 2ec52ef34d PyKMIP - Release 0.3.3
This update includes several new features and bug fixes:
* Add the core ManagedObject class hierarchy for the new Pie API
* Add updated Boolean primitive implementation and test suite
* Add integration tests for symmetric key creation and registration
* Update demo and client logging to log at the INFO level by default
* Update README with improved testing instructions
* Fix bug causing enumerations to be encoded as signed integers
* Fix bug with mismatched EncodingOption tag
* Fix bug with relative path use for version number handling
* Fix bug with Integer primitive breaking on valid long integer values
2015-06-25 08:58:47 -04:00
Peter Hamilton 8516c52820 Merge pull request #37 from OpenKMIP/bug/fix-integer-accepting-longs
Fixing bug with Integer accepting long values
2015-06-25 07:59:04 -04:00
Peter Hamilton 0069f0d9fb Merge pull request #36 from hadesto/dev/hadi/integration-tests/release/symmetric-keys
Added integration tests for testing symmetric keys
2015-06-25 07:55:52 -04:00
Hadi Esiely d1e6ff49c8 Added integration tests for testing symmetric keys 2015-06-24 15:56:47 -04:00
Peter Hamilton 87f05f90bf Fixing bug with Integer accepting long values
This change fixes a bug with the Integer primitive that caused it to
break when accepting long integer values. As long as the long integer
value can be represented by a signed 32-bit integer, it is considered
valid. Test cases have been added to check for this condition and the
validation routine for Integer has been updated to raise appropriate
errors.
2015-06-24 13:42:04 -04:00
Peter Hamilton 5025925388 Merge pull request #34 from callidus/bug-fixes
A few bug fixes in objects
2015-06-24 12:52:11 -04:00
Peter Hamilton b38b58c2f4 Fixing relative path bug when looking up library version
This change fixes the use of relative paths used to fetch the PyKMIP
library version number in kmip/__init__.py and setup.py. The absolute
path of the file is now dynamically generated and used instead. Tests
are included to verify that the __version__ attribute is set properly.
2015-06-24 12:31:53 -04:00
Tim Kelsey dae65b46c4 A few bug fixes in objects 2015-06-24 15:34:53 +01:00
Peter Hamilton ef58a8f90b Merge pull request #28 from OpenKMIP/feat/finish-boolean-primitive
Finishing Boolean primitive implementation
2015-06-23 14:13:26 -04:00
Peter Hamilton a90e0f0b98 Adding additional cryptographic base classes
This change adds two additional abstract base classes for the Pie
ManagedObject object hierarchy: CryptographicObject and Key. Test suites
are provided for each base class, using a dummy subclass of each for
testing. The object test suite package structure is also modified to
collect all ManagedObject subclass tests in one package.
2015-06-23 13:25:31 -04:00
Peter Hamilton ac6a9edec7 Merge pull request #26 from OpenKMIP/bug/add-test-for-unsigned-enum
Adding test case for bug with unsigned Enumeration encoding
2015-06-19 13:54:48 -04:00
Peter Hamilton 272f9ffcbc Merge pull request #21 from OpenKMIP/feat/add-pie-managed-object
Adding the ManagedObject base class
2015-06-18 08:14:21 -04:00
Peter Hamilton 3ecb63aaf5 Finishing Boolean primitive implementation
This change finishes the Boolean primitive implementation, including a
complete test suite for the Boolean class.
2015-06-17 14:10:31 -04:00
Peter Hamilton 25c4aa90a5 Adding the ManagedObject base class
This change adds ManagedObject, the abstract base class of the
simplified KMIP object hierarchy. It defines a set of attributes common
to all KMIP objects and registers placeholder methods to be implemented
by all subclasses. A basic test suite is included, using a dummy
ManagedObject subclass for testing.
2015-06-17 10:45:47 -04:00
Peter Hamilton 64d30343a1 Adding test case for bug with unsigned Enumeration encoding
This change adds a test case that verifies a fix for a bug with how
Enumerations were encoded as signed instead of unsigned integers. The
validation check for Enumerations has also been updated to be more
concise.
2015-06-16 14:33:56 -04:00
Peter Hamilton 4d92d1fa95 Merge pull request #24 from rellerreller/dev/unsigned-integer
Enumerations are Unsigned Integers
2015-06-16 13:56:51 -04:00
Peter Hamilton 3ec0e833eb Updating client and demo logging
This change updates various logging statements for the KMIP client and
demo suites, ensuring that the default logging level for the library is
at the INFO level and that all demo logging is at the INFO level.
2015-06-16 07:46:25 -04:00
Nathan Reller 1d3a8e462a Enumerations are Unsigned Integers
Enumerations are to be encoded as four byte unsigned integers. They
were previously being sent as signed integers. This caused failures
when trying to transmit values that are extensions. Extensions contain
the value 8 hex in the first nibble of the first byte.
2015-06-15 11:37:41 -04:00
Peter Hamilton 8efdded9ba Adding version module to improve version handling
This change adds a top-level version module to hold the version
definition for the library. This is then used in both kmip/__init__.py
and setup.py, allowing version inspection on import of the library and
automatic syncing of the version across the project.
2015-06-11 14:25:55 -04:00
Nate 12bd1b1031 Merge pull request #19 from OpenKMIP/maint/add-pie-package
Adding the pie package for the simplified PyKMIP API
2015-06-09 09:28:40 -04:00
Nate 074505c77b Merge pull request #18 from OpenKMIP/maint/add-primitives-test-package
Adding a primitives test package to the unit test suite
2015-06-09 09:27:53 -04:00
Peter Hamilton 16617972c6 Adding the pie package for the simplified PyKMIP API
This change adds the pie package, which will be used for the simplified
PyKMIP API, which will be officially known as the Pie API.
2015-06-05 11:46:00 -04:00
Peter Hamilton 984fe318cd Adding a primitives test package to the unit test suite
This change adds a primitives test package to the unit test suite to
contain future test suites for primitive testing. The current primitives
test suite has been moved to this new package.
2015-06-04 10:38:07 -04:00
Peter Hamilton 1bc568c175 Removing old and out-of-date demo scripts
This change removes the original top-level set of demo scripts in
kmip/demos in favor of the functioning and up-to-date unit demo scripts
located in kmip/demos/units.
2015-06-04 09:29:58 -04:00
Peter Hamilton ab3298c6d1 Fixing infinite recursion bug with object inheritance
This change removes all references to self.__class__. In object
hierarchies with multiple levels of inheritance, using self.__class__
can cause an infinite loop when resolving references to parent classes.
2015-06-02 11:16:42 -04:00
Peter Hamilton 6606c989fb Adding config argument to integration test suite
This change adds a pytest config argument, allowing the integration test
suite to be run with the client configured with a specific section from
the PyKMIP configuration file. A simple integration test class is added
to demonstrate how to use the client created using the config argument.

To run the integration test suite with a specific configuration, use:

$ tox -e integration -- --config <config-section>

where <config-section> is the name of the config file section to use for
the PyKMIP client.
2015-05-20 12:08:59 -04:00
Peter Hamilton 23574dc33c Reorganizing test suite and updating tox configuration
This change reorganizes the test suite, splitting it into two separate
test suites, one for unit tests and one for integration tests. The tox
configuration is also updated to reflect this change. Invoking tox now
runs the unit tests by default. A separate tox environment is used to
run the integration tests.
2015-05-14 13:13:10 -04:00
Peter Hamilton 5ee85c3f9c Updating demo utilities to support creating Certificates
This change updates the unit demo utilities, adding in support for the
creation, registration, and retrieval of X.509 Certificate objects.
Support includes an example encoding of a Certificate as well as updated
logging routines to display retrieved Certificate data.
2015-05-07 16:51:17 -04:00
Peter Hamilton 195671d4bf Adding support for the Certificate managed object
This change polishes and reorganizes the implementation of the
Certificate managed object and its required subclasses. It adds in
documentation and test suites for all modified classes and updates the
SecretFactory to support creating default Certificate objects.
2015-05-05 14:55:34 -04:00
Peter Hamilton cb550aef7a Fixing invalid tag for the KeyMaterialStruct 2015-04-28 08:29:21 -04:00
Peter Hamilton b7f67bcaa2 Updating the SecretFactory to create Public and PrivateKeys with data 2015-04-20 14:43:50 -04:00
Peter Hamilton 3c29d5f743 Merge pull request #7 from callidus/more-object-type
Adding handling for SecretData and OpaqueData objects
2015-04-14 13:25:59 -04:00
Tim Kelsey 751ae8e3b0 Adding handling for SecretData and OpaqueData objects
Secret Data (2.2.7) can now be registered
Opaque Object (2.2.8) can now be registered

This required the adding of a NONE type to the OpaqueDataType enum
with the value of 0. This is not indicated by the standard but we
needed some value to satisfy response decoding.

Also fixed get demo

This has been tested vs a HP Atalla ESKM HSM
2015-04-14 13:28:11 +01:00
Peter Hamilton bea9bf08b2 Adding KMIP profile information to the client
This change updates the client with the KMIP profile information of the
conformance clauses and authentication suites that the client supports.
Several new methods are added to the client, allowing for the retrieval
and basic predicate querying of the profile data. A new test suite has
also been added to test this new capability.
2015-04-09 10:45:59 -04:00
Peter Hamilton 43ecea23a6 Updating the Register unit demo
This change updates the Register unit demo, adding support for the
registration of different types of secret objects. The changes required
to support this include implementation updates to the KeyValue backing
objects.
2015-03-13 16:31:39 -04:00
Peter Hamilton d263302077 Updating the Get unit demo
This change updates the Get unit demo, adding support for:
* the additional display of key-related objects
* the passing of more arguments to the client (e.g., KeyFormatType)
* the retrieval of Public/PrivateKeys
2015-03-13 15:01:52 -04:00
Peter Hamilton 3e11002567 Adding support for Digest
This change adds support for the Digest attribute, including updates and
unit test suites for all dependent KMIP objects.
2015-03-10 11:57:35 -04:00
Peter Hamilton f784b67f3a Updating the CreateKeyPair demo
This change updates the CreateKeyPair demo, adding the following items:
* a name option for specifying the name of the key pair to create
* a CryptographicUsageMask attribute sent with the CreateKeyPair request
* enhanced attribute logging for private/public key template attributes
2015-03-10 11:29:08 -04:00
Peter Hamilton 908aece78a Adding custom configuration support
This change updates the KMIP client to support the custom selection of
client configuration options. This makes it easy to dynamically create
clients that connect to different backends. All unit demos have been
updated to support this feature.
2015-02-27 10:48:07 -05:00
Peter Hamilton 80ee64e600 Adding support for the Query operation
This change adds support for the Query operation, including updates to
the KMIP client and core object libraries, the KMIP client and core unit
test suites, and a Query unit demo.
2015-02-23 17:18:05 -05:00
Peter Hamilton 0c4f9cd9d0 Updating application attributes
This change updates the various Application attributes, adding inline
documentation, and reorganizing the different related test suites. Minor
updates to supporting primitive objects are included.
2015-02-23 14:13:21 -05:00
Peter Hamilton 0cd2d3dab6 Fixing format string indices
This change adds indices to all format strings, ensuring
interoperability with Python 2.6.
2015-02-23 09:52:15 -05:00
Peter Hamilton f6b420d2db Adding support for the DiscoverVersions operation
This change adds support for the DiscoverVersions operation, including
updates to the KMIP client, the client and KMIP core test suites, and a
DiscoverVersions unit demo.
2015-01-23 15:26:28 -05:00
Peter Hamilton 7ce5a74315 Merge branch 'feat/unit-demos' 2015-01-22 12:56:46 -05:00
Peter Hamilton ff533ff4bb Adding support for the RekeyKeyPair operation
This change adds support for the ReKeyKeyPair operation, adding in
required KMIP objects and updating the KMIP client. Minor changes to the
server are included in preparation for future changes. The unit test
suite has been updated accordingly.
2015-01-21 11:41:08 -05:00
Peter Hamilton 87575e1a15 Adding unit demos
This change adds a suite of unit demos which demonstrate how to use
individual KMIP client operations. These demos also feature better
argument handling, which will eventually be ported to the rest of the
demo suite. Some added debug logging is included.
2015-01-19 09:37:32 -05:00
Peter Hamilton c6d6db3dfe Adding support for the CreateKeyPair operation
This change adds support for the CreateKeyPair operation, adding in
required KMIP attributes and objects and updating the KMIP client. Minor
changes to the server are also made in preparation for future changes.
The unit test suite has been updated accordingly.
2015-01-09 13:11:05 -05:00
Peter Hamilton 6cbb3159ca Adding payload factories
This change adds a set of payload factories to the factory suite, which
handle the construction of default request/response payload objects for
KMIP operations. These factories replace the use of payload operation
dictionaries for dynamic payload object lookup. A payload factory test
suite and minor logging tweaks are included.
2014-12-11 13:32:17 -05:00
Peter Hamilton 3918c320fd Adding OperationPolicyName
This change adds the OperationPolicyName attribute, extending support to
the AttributeValueFactory. Test cases are included for the creation
process for both the factory and the individual attribute.
2014-12-11 13:32:17 -05:00
Peter Hamilton b99bf8cbf4 Reorganizing message payload code
This change is primarily a reorganization of the message payload code
originally found in kmip/core/messages/operations.py. The code from that
module has been moved to a new package, kmip.core.messages.payloads, and
split into separate modules according to each supported KMIP operation.

The surrounding KMIP codebase has been updated to use the new package
structure and a placeholder test suite has been put in place for future
tests. This change does NOT include test cases as these would primarily
be a refactoring from the current test suite found in
kmip/tests/core/messages/test_messages.py and that work has not been
done yet.
2014-12-11 13:32:17 -05:00
Peter Hamilton 6a11dacfc3 Updating unit test suite
This change updates the unit test suite, adding the initial test case
framework for factory tests. The attributes test suite is also updated,
replacing pass statements with skip calls.
2014-12-11 13:32:17 -05:00
Michael McCune f77b0202b2 Adding server key and cert files to installation
This change adds the server key and cert files from kmip/demos/certs to
the MANIFEST.in and setup.py files. These files are being added to
resolve missing file issues when using the default config values.

In cases where a user is instantiating a KMIPClient and passing
ca_cert=None an exception will be raised with newer versions of
Python(2.7.8+). This exception is based on the missing server.crt file
that is specified in the default configuration.

Likewise, when instantiating a KMIPServer with keyfile=None or
certfile=None the default values will be used. This will also cause an
exception with newer versions of Python.

Although it may be unlikely that an end user would instantiate these
classes without providing cert and key files, there are cases(namely
testing) where it is acceptable to pass None values for these files. In
these cases the files should be present to allow proper execution.

Changes
* adding server.crt and server.key to MANIFEST.in and setup.py
* correcting mismatched default values for KMIPServer certfile and
  keyfile
2014-12-10 18:43:56 -05:00
Peter Hamilton 34962e36af Adding support for the six library
This change adds support for the six library, specifically for handling
portions of the code that are sensitive to differences between Python
2.* and 3.*.
2014-11-18 15:19:56 -05:00
Peter Hamilton bfb0bb88d7 Adding username and password config options
This change adds username and password configuration options to the
client section of the configuration file. These options are used to
create KMIP Credential objects for authenticating connections to a KMIP
appliance.

The KMIP proxy now uses these options when handling operation calls. If
no credential is provided, the proxy will automatically create one from
the config file. If either the username or the password is unspecified,
an error is generated. If neither are specified, no credential is
created. Only username/password credentials are currently supported.

The KMIP proxy test suite now includes test cases covering this
functionality.
2014-10-23 22:28:20 -04:00