Commit Graph

58 Commits

Author SHA1 Message Date
Peter Hamilton 9fc9c62887
Merge pull request #447 from tipabu/bug-381
Clean up KMIPProxy initialization and destruction
2018-06-28 11:24:45 -04:00
Tim Burke d291c50bd6 Clean up KMIPProxy initialization and destruction
Fixes #381.
2018-06-22 12:26:48 -07:00
Tim Burke 8bf7592db9 Preserve the stack when re-raising connection errors 2018-06-22 12:11:16 -07:00
Tim Burke 6306846b45 Log connection error details per-host
Otherwise, you don't get much insight into why you had to settle for
your third configured host. Now, you can get information like

   An error occurred while connecting to appliance foo.bar:
      [Errno -5] No address associated with hostname
   An error occurred while connecting to appliance localhost:
      [Errno 111] Connection refused

even when we ultimately succeed in creating a client.
2018-06-22 12:11:16 -07:00
Peter Hamilton f9e32552f8 Add client support for custom configuration file paths
This change adds client support for setting custom configuration
file paths, allowing users and developers to place their settings
file wherever they want. All client demo scripts have been updated
to support a '-s' flag that can be used to set the configuration
file for the demo. Client unit tests have also been updated to
include this change.
2018-04-17 14:41:04 -04:00
Peter Hamilton 66929198c3 Add Rekey support to the KMIPProxy client
This change adds Rekey operation support to the KMIPProxy client.
The client unit test suite has been updated to cover the new
additions.

Partially addresses #405
2018-04-15 16:45:53 -04:00
Peter Hamilton 822b889f2e Add Check support to the KMIPProxy client
This change adds Check operation support to the KMIPProxy client.
The client unit test suite has been updated to cover the new
additions.

Partially addresses #405
2018-04-06 00:02:36 -04:00
Peter Hamilton fc2ff5d04c Remove legacy base class code for the original client
This change removes the legacy KMIP base class that was originally
used for the KMIPProxy client. The base class simply defined the
KMIP operation methods that the client should support. It has not
been actively used to guide client development for some time and
now just clutters up the code base. The KMIPProxy class has been
updated to remove any reference to this original base class.
2018-02-26 15:02:42 -05:00
Peter Hamilton 8d492fcda4 Update the Authentication object
This change updates the Authentication object, taking into account
the recent changes made to the Credential object hierarchy. A new
comprehensive unit test suite has been added for the Authentication
object. Usage of the object in the PyKMIP server has also been
updated to reflect these changes.
2018-02-26 10:23:25 -05:00
Peter Hamilton dd4a078cc1 Update the ProtocolVersion implementation
This change updates the implementation of the ProtocolVersion
struct, bringing it inline with the current struct style. All
uses of the struct have been updated to reflect these changes,
as have the struct unit tests.
2018-02-22 13:35:11 -05:00
Peter Hamilton e77dcadf41 Fixing violations of E722 for flake8 checks
This change fixes violations of E722, the use of except without
specifying an exception type. For now the high-level Exception
class is used as a generic catchall. In the future these cases
will be updated to handle the specific exceptions expected.
2017-10-23 08:43:36 -04:00
Peter Hamilton 6fa4999cc5 Updating the ProxyKmipClient to support getting wrapped keys
This change updates the ProxyKmipClient, allowing Get operation
calls to retrieve wrapped keys by providing key wrapping
specification information with the request. Unit tests have been
added and updated to reflect this change.
2017-09-30 12:14:14 -04:00
Peter Hamilton 82a7b8a741 Update payload management
This change updates payload management, streamlining the import
process for kmip.core.messages.payloads. Now any request or
response payload is accessible by importing payloads. All code
importing and using individual payload modules has been updated
to use this new approach.
2017-09-21 13:37:55 -04:00
Dane 22daacf5e9 Add Sign operation to clients 2017-09-07 11:14:40 -04:00
Peter Hamilton 64b6177fe7 Add SignatureVerify support to the clients
This change adds SignatureVerify support to the KMIPProxy and
ProxyKmipClient clients, including unit tests to cover the new
functionality.
2017-08-29 16:41:11 -04:00
Peter Hamilton b0d454da9a Add ProxyKmipClient demos for the Encrypt / Decrypt operations
This change adds demos for the ProxyKmipClient, demonstrating how
to encrypt and decrypt messages. Demo utilities have been updated
to support the new demo scripts and the KMIPProxy client has been
updated to correctly return operation results.
2017-08-15 11:10:57 -04:00
Peter Hamilton 6071c938b6 Add DeriveKey support to the clients
This change adds DeriveKey operation support to the KMIPProxy and
ProxyKmipClient clients, including unit tests to cover the new
functionality.
2017-08-08 14:54:48 -04:00
Peter Hamilton 278a54320c Merge pull request #297 from OpenKMIP/feat/add-decrypt-to-clients
Add Decrypt support to the clients
2017-07-27 12:31:33 -04:00
Peter Hamilton ba47813553 Update the Get request and response payloads
This change updates the Get payloads to reflect current coding
styles. It streamlines payload usage and makes it easier to create
and access payload fields. A new unit test suite dedicated to the
Get payloads is added. Surrounding code in the client/server and
associated utilities and unit tests are updated to reflect these
changes.
2017-07-20 12:36:42 -04: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 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
Hao Shen 8f16558b76 rename compromise_date to compromise_occurrence_date 2017-04-21 12:24:48 -07:00
Hao Shen 74075d502c Add Revoke operation support for pie client 2017-04-20 10:19:10 -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 5967b55148 Fixing stringent argument checks for MAC operation 2017-03-30 14:32:42 -07:00
Hao Shen 2d45f33d43 Add MAC operation support for client 2017-01-31 14:48:19 -08: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 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 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
Viktor Tarasov 4684fc6650 fix: kmip-client: batch item of error response 2016-03-29 10:25:29 +02: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
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 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 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
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 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
Tim Kelsey 30ff7e78bf Adding revoke operation 2015-06-26 14:54:23 +01:00
Tim Kelsey b1ac997d38 Adding the "activate" opperation 2015-06-26 12:08:24 +01: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 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 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 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 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