Commit Graph

487 Commits

Author SHA1 Message Date
Tim Burke 3d2a7edc94 Have ProxyKmipClient use a non-root logger 2018-06-22 11:07:50 -07:00
Tim Burke 5ffb5d74f6 Reraise exceptions to preserve stack traces
Otherwise, you can hit errors with tracebacks like

   Traceback (most recent call last):
     ...
     File ".../kmip/pie/client.py", line 1573, in __enter__
       self.open()
     File ".../kmip/pie/client.py", line 135, in open
       raise e
   IOError: [Errno 2] No such file or directory

... which isn't terribly useful; it doesn't give you any information
about *what* file wasn't found. By using a bare `raise`, you preserve
the rest of the stack and get

   Traceback (most recent call last):
     ...
     File ".../kmip/pie/client.py", line 1573, in __enter__
       self.open()
     File ".../kmip/pie/client.py", line 131, in open
       self.proxy.open()
     File ".../kmip/services/kmip_client.py", line 221, in open
       self._create_socket(sock)
     File ".../kmip/services/kmip_client.py", line 246, in _create_socket
       suppress_ragged_eofs=self.suppress_ragged_eofs)
     File ".../eventlet/green/ssl.py", line 379, in wrap_socket
       return GreenSSLSocket(sock, *a, **kw)
     File ".../eventlet/green/ssl.py", line 68, in __init__
       ca_certs, do_handshake_on_connect and six.PY2, *args, **kw)
     File ".../ssl.py", line 558, in __init__
       self._context.load_verify_locations(ca_certs)
   IOError: [Errno 2] No such file or directory

... which makes it clear that it was a problem with the CA certificate
bundle.
2018-06-19 10:40:56 -07:00
Peter Hamilton a1985dfdef Update the PyKMIP library version to 0.9.dev0
This change updates the library version to the next dev version,
updating the changelog to reflect this change.
2018-05-17 19:23:34 -04:00
Peter Hamilton 829df239fc
Merge pull request #439 from OpenKMIP/release-0.8.0
PyKMIP - Release 0.8.0
2018-05-18 10:00:05 -04:00
Peter Hamilton 74d24ff072 PyKMIP - Release 0.8.0
This update includes new operations and features for the client
and server, in addition to other minor updates and bug fixes:

* Add Sphinx-based client and server library documentation
* Add server support for third-party authentication systems
* Add client support for the Check operation
* Add client support for the Rekey operation
* Add client support for attestation credentials
* Add functional tests for server auth. and access control
* Add payloads for the Archive and Cancel operations
* Add payloads for the GetUsageAllocation and Poll operations
* Add payloads for the ObtainLease and Recover operations
* Update the server to support group-based operation policies
* Update the server to support live loading of policy files
* Update the server to support custom database file paths
* Update the server to raise PermissionDenied on violations
* Update the client to support custom configuration file paths
* Update the ProxyKmipClient to support Registering names
* Update the ProxyKmipClient to set usage masks for Derived keys
* Update the README to reference the new documentation
* Update the Travis CI config to test building the docs
* Update the Travis CI config to run integration tests
* Remove support for Python 3.3
* Fix a DOS bug by setting the server socket timeout
* Fix a ProxyKmipClient bug with cryptographic parameter handling
* Fix a ProxyKmipClient bug with usage mask processing
2018-05-17 16:57:38 -04:00
Peter Hamilton b878dbfdf9
Merge pull request #438 from OpenKMIP/feat/update-access-denied-error
Raise PermissionDenied on access control violations
2018-05-17 15:55:16 -04:00
Peter Hamilton 944186b1ca
Merge pull request #437 from OpenKMIP/feat/use-preset-over-default
Rename the 'default' policy section to 'preset'
2018-05-17 15:32:25 -04:00
Peter Hamilton 8b99c74d0b Raise PermissionDenied on access control violations
This change changes the error the server uses when access control
violations occur, specifically swapping from the more agnostic
ItemNotFound to the more explicit PermissionDenied. This change
better conforms with the expected behavior of a KMIP server.
2018-05-17 14:23:07 -04:00
Peter Hamilton 008f86cfa9 Rename the 'default' policy section to 'preset'
This change tweaks the format of operation policy files, renaming
the 'default' section of each policy to 'preset'. This reinforces
the idea that this section of the policy is used only when group-
based access control is disabled. It also removes any ambiguity
between this section of the policy and the actual 'default'
policy built into the server.
2018-05-17 13:55:50 -04:00
Peter Hamilton a9afd44a91 Add a better error message when reading unparseable attributes
This change adds a basic error message that gets raised when
attempting to read an unparseable attribute (i.e., an attribute
that is not supported by the library).

Fixes #429
2018-05-17 13:28:11 -04:00
Peter Hamilton b5e7323845 Add functional tests for server auth and access control
This change adds a new integration test suite, named 'functional',
that is specifically intended to test third-party authentication
and group-based access control with the PyKMIP server. A new tox
environment is added to handle running these tests separately from
the existing 'integration' test suite. New Travis CI configuration
and setup files have also been added to facilitate running these
tests automatically.
2018-05-09 01:21:03 -04:00
Peter Hamilton 3a7b880bdf Fix a denial-of-service bug by setting the server socket timeout
This change fixes a potential denial-of-service bug with the
server, setting a default timeout for all server sockets. This
allows the server to drop hung connections without blocking
forever. The interrupt triggered during accept calls is expected
and is now handled appropriately. Server unit tests have been
updated to reflect this change.

Closes #430
2018-04-24 21:57:20 -04: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 664c9964c8 Add Check support to the payload factories
This change adds Check payload support to the payload factories.
Payload factory unit tests have been updated to account for the
change.
2018-04-17 00:32:20 -04:00
Peter Hamilton cf0ec6c429 Add Rekey support to the payload factories
This change adds Rekey payload support to the payload factories.
Payload factory unit tests have been updated to account for the
change.

Fixes #424
2018-04-15 23:38:37 -04:00
Peter Hamilton 2e6384a067 Add server support for customizing the backend storage file
This change updates the server, adding in support for customizing
the backend storage file used to store all server data. The server
currently uses a simple SQLite database for storage. Prior versions
of the server kept this database file in /tmp, to emphasize the
testing focus of the server. This change loosens that restriction,
now allowing users to customize where the database file lives. A
new configuration option, 'database_path', has been added that will
override the default /tmp location for the database file. This
value can also be passed in if invoking the server via script using
the '-d' flag.
2018-04-16 14:14:10 -04:00
Peter Hamilton 5b5607a8c7 Add Rekey support to the ProxyKmipClient
This change adds Rekey operation support to the ProxyKmipClient.
The client unit test suite has been updated to cover the new code.

Closes #405
2018-04-15 23:26:13 -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 a604ae17b3
Merge pull request #420 from OpenKMIP/feat/add-rekey-payloads
Add the request and response payloads for the Rekey operation
2018-04-13 16:04:15 -04:00
Peter Hamilton 9be760a0a1
Merge pull request #416 from OpenKMIP/feat/add-policy-file-monitoring
Integrate policy file monitoring with the server
2018-04-13 09:34:32 -04:00
Peter Hamilton 412b452adf Add the request and response payloads for the Rekey operation
This change adds the request/response payloads for the Rekey
operation. Unit tests are included to cover the new payloads. The
payloads package is also updated to allow direct import of the
Rekey payloads going forward.

Partially addresses #405
2018-04-12 22:34:58 -04:00
Peter Hamilton 33d1aabf76
Merge pull request #419 from OpenKMIP/bug/fix-create-key-pair-masks
Fix cryptographic usage mask handling for CreateKeyPair
2018-04-11 22:17:00 -04:00
Peter Hamilton 950e98569e Fix cryptographic usage mask handling for CreateKeyPair
This change fixes how the ProxyKmipClient handles cryptographic
usage mask values for the CreateKeyPair operation. Originally,
both Encrypt and Decrypt were set by default for both public and
private keys. This is incorrect behavior for certain algorithms.
Now, only the masks specified by the caller are set on the key
pair.

Fixes #412
2018-04-11 21:51:32 -04:00
Peter Hamilton 25f6cc9e5c Add cryptographic usage mask support for DeriveKey
This change updates the ProxyKmipClient support for the DeriveKey
operation, now allowing the caller to specify a list of
CryptographicUsageMask enumerations to set on the newly derived
key.

Fixes #417
2018-04-11 20:44:20 -04:00
Peter Hamilton 05b5b8411a Integrate policy file monitoring with the server
This change updates the server, integrating policy file monitoring
and restructuring the engine. The top-level server entity now
handles loading policy files using the PolicyDirectoryMonitor
subprocess. A shared memory dictionary is used to share newly
modified policy data across the session threads managed by the
server and used by the engine. The legacy policy loading code in
the engine has been removed.

Unit tests have been added and modified for both the server and
engine to verify the functionality of these modifications.
2018-04-11 13:42:44 -04:00
Peter Hamilton 055483d663 Add a policy directory monitor
This change adds a PolicyDirectoryMonitor subprocess that can be
used by the server to continuously monitor and load operation
policies from the configured operation policy directory. The
monitor tracks policy file modifications, file creation, and file
deletion, restoring legacy policies from existing policy files
should the current file backing a policy get deleted. Changes to
existing policies are detected and updated as soon as the backing
policy file is saved to disk.

An extensive unit test is included to exercise the different
operating conditions the monitor may encounter.
2018-04-10 14:32:27 -04:00
Peter Hamilton 804a59d75d Add Check support to the ProxyKmipClient
This change adds Check operation support to the ProxyKmipClient.
The client unit test suite has been updated to cover the new code.

Partially addresses #405
2018-04-06 19:47:10 -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 74f20428f6 Fix a client bug for cryptographic parameter handling
This change fixes a bug with the ProxyKmipClient handling of
cryptographic parameters, specifically handling the case where
no cryptographic parameters are provided for an operation method
call. When no parameters are specified, None is now correctly
propagated through to request handling. A client unit test has
been added to cover this fix.

Fixes #406
2018-04-02 13:03:02 -04:00
Peter Hamilton a75f0e3666 Add operation policy name to demo scripts
This change adds the ability to set the operation policy name
attribute to object creation demo scripts, including demos for
the Create, CreateKeyPair, and Register operations.
2018-04-02 11:13:53 -04:00
Peter Hamilton 1a093f141e Update the server session to use the auth plugin framework
This change updates how the server session handles message
processing, adding support for the new authentication plugin
framework. Session unit tests have been updated to account for
this change.
2018-03-30 09:08:39 -04:00
Peter Hamilton f145662e1f Update ProxyKmipClient register to support name attributes
This change updates the ProxyKmipClient support for the Register
operation, adding the ability to register Name attributes with
the managed object being registered. This matches the functionality
available when using the Create operation.

Fixes #400
2018-03-22 11:03:03 -04:00
Peter Hamilton e215ddbe7b Update server config handling to parse auth plugin settings
This change updates server configuration handling, allowing the
server to parse and store configuration settings for authentication
plugins. Unit tests have been added to cover the new functionality.
2018-03-19 16:52:34 -04:00
Peter Hamilton 44eb5f0aff
Merge pull request #398 from OpenKMIP/feat/add-auth-plugins
Add an authentication plugin framework
2018-03-08 09:48:30 -05:00
Peter Hamilton 7743c4ea6b
Merge pull request #386 from gaurav36/small-typo-help-message
Fix help text for the CreateKeyPair demo
2018-03-08 08:56:51 -05:00
uniscon1105 0e6b599a6c Fix help text for the CreateKeyPair demo
The help message for the CreateKeyPair demo shows an incorrect
algorithm (AES) but for asymmetric keys PyKMIP only supports RSA
with a minimum length of 512-bits. This change updates the PyKMIP
documentation to correct this.

Signed-off-by: Gaurav Kumar Garg <garg.gaurav52@gmail.com>
2018-03-07 21:31:51 +01:00
Peter Hamilton 98f5ba39e3 Add an authentication plugin framework
This change adds an authentication plugin framework to be used by
the PyKMIP server. This framework will allow the server to query
third-party authentication systems for user identity information,
improving the access control model for the server. The initial
plugin provided queries an instance of the new SLUGS library.
2018-03-06 22:53:29 -05:00
Peter Hamilton 5c5012f524 Add AttestationCredential support
This change adds an implementation of the AttestationCredential
introduced in KMIP 1.2. The underlying Nonce struct is included.
Unit test suites for both objects are provided. Finally, the
Credential struct has also been updated to support the new
credential type.
2018-03-03 09:34:43 -05: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 86b23a9d53 Update the Credential objects
This change updates the implementation of the Credential objects.
The UsernamePassword and Device credentials are now first-class
objects and, along with the base Credential, have been restructured
to match the current struct style. Comprehensive unit test suites
for each class have been added. Additionally, the credential
factory code and its usage in the KMIPProxy class and associated
test suites have been updated to reflect this change.
2018-02-25 10:29:52 -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 61347d80b6 Update the server to support group-based operation policies
This change updates the PyKMIP server, allowing it to process and
use group-based operation policies. The server still supports the
original operation policy file format, so no immediate difference
should be apparent to users. Future documentation changes will
explain group-based policy files and how they should be used.
2018-02-19 12:12:40 -05:00
Peter Hamilton b84af4f88d Add payload for the Poll operation
This change adds the request payload for the Poll operation. A unit
test suite for the payload is included. The payload can be imported
directly from the payloads package.
2017-12-08 13:10:34 -05:00
Peter Hamilton 42da7f1d15 Add payloads for the ObtainLease operation
This change adds request and response payloads for the ObtainLease
operation. Unit test suites are included for both payloads and
both payloads can be imported directly from the payloads package.
2017-12-08 11:36:25 -05:00
Peter Hamilton 827b682583 Add payloads for the Recover operation
This change adds request and response payloads for the Recover
operation. Unit test suites are included for both payloads and
both payloads can be imported directly from the payloads package.
2017-12-08 08:43:06 -05:00
Peter Hamilton 53cbab7396 Add payloads for the Check operation
This change adds the request and response payloads needed for the
Check operation. Unit tests have been added to cover the new
payload structures.
2017-12-08 06:26:25 -05:00
Peter Hamilton 4c4bddc521 Add payloads for the GetUsageAllocation operation
This change adds request and response payloads for the
GetUsageAllocation operation. Unit test suites are included for
both payloads and both payloads can be imported directly from the
payloads package.
2017-12-08 05:58:40 -05:00
Peter Hamilton f23dde88cf Add payloads for the Cancel operation
This change adds request and response payloads for the Cancel
operation. Unit test suites are included for both payloads. Both
payloads can be imported directly from the payloads package.
2017-12-08 05:09:44 -05:00
Peter Hamilton 54b1df7726 Remove unused error code
This change removes unused exceptions defined in core/errors.py,
along with the errors.py module itself. The few used items from
this file are migrated over to core/exceptions.py. Any dependent
code is updated, dropping the use of errors.py and adding in the
use of exceptions.py.
2017-12-07 20:59:23 -05:00
Peter Hamilton 0b08301606 Add payloads for the Archive operation
This change adds request and response payloads for the Archive
operation. Unit test suites are included for both payloads and
both payloads can be imported directly from the payloads package.
2017-12-07 19:04:36 -05:00
Peter Hamilton 187ed7e924 Remove dead KeyFactory code
This change removes the KeyFactory code from the factories package.
It was unused and has been replaced with direct key object creation
where needed.
2017-12-07 18:15:54 -05:00
Peter Hamilton 65bea78cad Remove dead object code
This change removes dead, unused code in core/objects.py. No other
changes are included.
2017-12-07 16:40:36 -05:00
Peter Hamilton 0f17332800 Update the PyKMIP library version to 0.8.dev
This change updates the library version to the next dev version,
tweaking version handling and the changelog to reflect this change.
2017-11-15 14:21:52 -05:00
Peter Hamilton 649c8f7857 PyKMIP - Release 0.7.0
This update includes new operations and features for the client
and server, in addition to other minor updates and bug fixes:

* Add support for Python 3.6
* Add support for the InitialDate attribute
* Add server support for the GetAttributeList operation
* Add server support for the Locate operation
* Add client and server support for the MAC operation
* Add client and server support for the Revoke operation
* Add client and server support for the Encrypt operation
* Add client and server support for the Decrypt operation
* Add client and server support for the DeriveKey operation
* Add client and server support for the Sign operation
* Add client and server support for the SignatureVerify operation
* Add client and server support for retrieving wrapped keys
* Add client and server support for storing wrapped keys
* Add KMIP 1.4 enumerations
* Add server config option enabling certificate extension checks
* Add server config option defining set of usable TLS ciphers
* Add server config option setting the server log level
* Update server to enforce checking object state and usage masks
* Update server Locate support to allow object name filtering
* Remove support for Python 2.6
* Fix bug with multithreading support with the SQLite backend
* Fix bug with how open() is mocked in the server test suite
* Fix bug with mismapped polymorphic identity for certificates
* Fix bug with socket interrupt handling under Python 3.5
* Fix bug with detached instance errors in the server test suite
2017-11-14 01:30:49 -05:00
Peter Hamilton 86d9b59d1f Fixing bug with session logging shared ciphers
This change fixes a bug with the KmipSession logging shared
ciphers used by the TLS connection. The SSLSocket only supports
shared cipher information starting with Python 3.5. Any use of
the server with older versions of Python will fail when any
connection attempts are made. This fix adds a conditional check
that skips logging shared cipher information if the SSLSocket
does not support that information.

Fixes #361
2017-11-08 10:19:04 -05:00
Peter Hamilton 4ae995d75c Removing old outdated pykmip.conf 2017-11-08 01:53:47 -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 626798b327 Merge pull request #355 from OpenKMIP/feat/remove-client-api
Remove the KmipClient API class
2017-10-24 09:42:24 -04:00
Peter Hamilton c7711c78c7 Merge pull request #354 from OpenKMIP/feat/rename-certificate-type
Rename the CertificateTypeEnum enum to CertificateType
2017-10-24 09:42:03 -04:00
Peter Hamilton fdb9218795 Remove the KmipClient API class
This change removes the redundant KmipClient API class from the
pie package. The ProxyKmipClient is the main client going forward
and there is no need for a generic API against which to develop
new clients. If this is needed in the future, it is trivial to
restore.
2017-10-11 10:45:04 -04:00
Peter Hamilton f5fa9badd0 Update the kmip package to support importing the client
This change updates the root-level kmip package, allowing users
to now import the client directly from the kmip package:

from kmip import KmipClient

The KmipClient is an alias for the ProxyKmipClient located in
kmip.pie.client. This will simplify usage and help obfuscate
internal package details that may change in the future.
2017-10-11 10:19:22 -04:00
Peter Hamilton 179a84b268 Rename the CertificateTypeEnum enum to CertificateType
This change renames the CertificateTypeEnum enumeration to
CertificateType, matching the naming schemes of all other
enumerations. This is a backwards incompatible change and
will break any scripts or programs that use the current
CertificateTypeEnum name.
2017-10-11 08:24:55 -04:00
Peter Hamilton e65ed7382c Update the kmip package to allow importing enums globally
This change updates the root-level kmip package, allowing users
to now import enums directly from the kmip package:

from kmip import enums

Enumerations are used throughout the codebase and user applications
and this will simplify usage and help obfuscate internal package
details that may change in the future.
2017-10-05 18:39:46 -04:00
Peter Hamilton 721e7f3717 Add a ProxyKmipClient integation test for registering wrapped keys
This change adds a ProxyKmipClient integration test that verifies
that a wrapped key can be registered with the server and can then
be retrieved, along with all of its key wrapping metadata. Minor
updates to the underlying metadata handling are included.
2017-10-04 17:35:09 -04:00
Peter Hamilton 9acf38568f Update key wrapping data structures to support dict arguments
This change makes several minor updates to different structs
pertaining to key wrapping, allowing these structs to accept and
process dict arguments. Unit tests have been updated to reflect
this change.
2017-10-04 16:58:35 -04:00
Peter Hamilton 0bfbb1a982 Add a ProxyKmipClient integration test for getting wrapped keys
This change adds an integration test for the ProxyKmipClient that
verifies that Get can be used with a key wrapping specification
to retrieve a key cryptographically wrapped with another key.
2017-10-02 01:23:13 -04:00
Peter Hamilton 6df0315d41 Merge pull request #347 from OpenKMIP/feat/add-key-wrapping-data-model
Update the object data model to support storing key wrapping data
2017-10-02 01:19:23 -04:00
Peter Hamilton fc86e1bef4 Update the object data model to support storing key wrapping data
This change updates the KMIP object model to support explicitly
storing key wrapping data attributes. Key wrapping data is treated
externally as a dictionary and is stored as individual fields in
the back end. Various unit tests have been updated and added to
support these additions.
2017-09-30 16:56:02 -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 69a7b49d32 Add a logging level configuration option
This change adds a logging level configuration option for the
server, allowing the admin to control what server activity gets
collected for logging. Unit tests have been added and updated to
cover this new configuration setting.
2017-09-27 17:41:14 -04:00
Peter Hamilton 3b147c765e Add a ProxyKmipClient integration test for encrypting data
This change adds a ProxyKmipClient integration test verifying that
the Encrypt and Decrypt operations work in tandem.
2017-09-26 21:27:17 -04:00
Peter Hamilton 6d222e113a Add a ProxyKmipClient integration test for signing data
This change adds a ProxyKmipClient integration test verifying that
the Sign and SignatureVerify operations work in tandem.
2017-09-26 20:17:04 -04:00
Peter Hamilton 657e1c70fb Add asymmetric usage mask support to the ProxyKmipClient
This change updates ProxyKmipClient support for the CreateKeyPair
operation, adding in optional arguments allowing the user to
specify the cryptographic usage masks for the public and private
keys that will be created. Unit tests have been added to cover
this change.
2017-09-26 17:42:01 -04:00
Peter Hamilton df20d0e488 Adding a ProxyKmipClient demo for the Sign operation
This change adds a new ProxyKmipClient demo script, showing how
to use the Sign operation to generate a signature on arbitrary
data.
2017-09-26 16:37:58 -04:00
Peter Hamilton 98db0dfe73 Update how private keys are handled when signing data
This change updates how private key bytes are loaded when signing
data. The prior approach required binascii to unhexlify the byte
string. The current approach removes this requirement, matching
the rest of the library. All unit tests have been updated to
reflect this change.
2017-09-26 16:15:13 -04:00
Peter Hamilton 833b936603 Merge pull request #338 from OpenKMIP/feat/update-client-close
Updating the ProxyKmipClient to simplify closing
2017-09-21 14:24:40 -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
Peter Hamilton 31a1d1cec4 Updating the ProxyKmipClient to simplify closing
This change updates the ProxyKmipClient close method, allowing
it to be called without error even when the client connection is
not open. The client unit tests have been updated to reflect this.
2017-09-21 12:57:44 -04:00
Peter Hamilton d2a2f7aa29 Add a connection decorator to the ProxyKmipClient
This change simplifies how the ProxyKmipClient enforces the open
connection check on operation method calls. Each operation method
is now wrapped with an is_connected decorator which handles the
connection check. All old in-method connection checks have been
removed.
2017-09-21 11:54:10 -04:00
Peter Hamilton ee857ca4a3 Adding custom TLS cipher suite config option
This change adds a server configuration option, tls_cipher_suites,
allowing the server admin to specify a list of cipher suites to be
used when establishing TLS connections with clients. The custom
list supports both cipher suite specification and OpenSSL suite
naming conventions. The list is filtered through a KMIP-approved
set of cipher suites, and then through a set of cipher suites
suitable for the configured authentication suite. Additional debug
logging has been added to the server to provide transparency on
this process.
2017-09-20 11:40:52 -04:00
Peter Hamilton c3696a9877 Merge pull request #335 from OpenKMIP/feat/add-config-extended-key-usage
Add server config option controlling certificate client auth
2017-09-14 13:32:52 -04:00
Peter Hamilton 4c6bbae452 Add server config option controlling certificate client auth
This change adds a server configuration option to control the
enforcement of TLS certificate client authentication. Before,
client TLS certificates had to include the extended key usage
extension with the clientAuth bit set to be used as sources of
client identity. The new configuration option,
enable_tls_client_auth, allows server admins to enable/disable
this requirement. The configuration setting is optional and the
server defaults to the original enforcing behavior if it is not
set. Admins must explicitly set the option to False to disable
enforcement.
2017-09-14 13:16:24 -04:00
Peter Hamilton 5c20fe9b3e Merge pull request #330 from danetrain/feat/sign-add-client-support
Add Sign operation support to clients.
2017-09-12 12:25:00 -04:00
Peter Hamilton a60c65f191 Merge pull request #331 from alishamayor/patch-1
Add REVOKE to list of supported server ops
2017-09-12 10:14:20 -04:00
Dane 22daacf5e9 Add Sign operation to clients 2017-09-07 11:14:40 -04:00
alishamayor 50546f2d92 Updated query tests to include Revoke 2017-09-06 17:37:50 -07:00
Edward Betts 0f249a0121 correct spelling mistake 2017-09-01 21:18:15 +01:00
Peter Hamilton 06c4e5b361 Add a ProxyKmipClient demo for the SignatureVerify operation
This change adds a demo for the ProxyKmipClient, demonstrating
how to verify a message signature using a public key. Only RSA
keys and signatures are supported for now.
2017-08-30 12:14:43 -04:00
alishamayor fa548a7ebe Add REVOKE to list of supported server ops
As defined in _process_query, the list of supported server operations is missing REVOKE.
2017-08-29 17:42:55 -07: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 fc7224e20d Add SignatureVerify support to the server
This change adds the SignatureVerify operation to the server. Unit
tests covering the additions are included. The Query operation has
been updated to reflect this addition.
2017-08-29 16:11:26 -04:00
Peter Hamilton 48ef434922 Add signature verification support
This change adds signature verification support to the server
cryptography engine. Only RSA-based signatures are currently
supported. Unit tests have been added to verify the new
functionality.
2017-08-29 13:09:56 -04:00
Dane Fichter d48b590c35 This change adds Sign operation support to the server. 2017-08-28 12:47:23 -04:00
Dane df06aa8ad8 Add engine support for sign operation
This change adds the sign operation functionality
to the cryptography engine.
2017-08-25 10:31:11 -04:00
Peter Hamilton df74c854b7 Merge pull request #325 from OpenKMIP/feat/add-signature-verify-payloads
Add payloads for the SignatureVerify operation
2017-08-21 16:53:21 -04:00
Peter Hamilton c5cf2c3846 Merge pull request #323 from OpenKMIP/feat/add-encrypt-decrypt-demos
Add ProxyKmipClient demos for the Encrypt / Decrypt operations
2017-08-21 16:52:44 -04:00
Peter Hamilton 1aa24586f5 Merge pull request #322 from OpenKMIP/feat/add-asymmetric-encrypt-support
Add support for asymmetric encryption and decryption
2017-08-21 16:51:33 -04:00
Peter Hamilton a6d3b944ab Add payloads for the SignatureVerify operation
This change adds request and response payloads for the
SignatureVerify operation. Payload factories have been updated to
support SignatureVerify and new unit test suites have been added
to cover the new payload code.
2017-08-18 10:41:03 -04:00
Peter Hamilton a11bb8da05 Add KMIP 1.4 enumerations
This change updates the set of supported enumerations to include
those added by KMIP 1.4
2017-08-15 16:07:28 -04:00