Commit Graph

730 Commits

Author SHA1 Message Date
Peter Hamilton 91274e2557 Update the documentation to cover auth and access control changes
This change updates the server and FAQ documentation, fully
describing the changes made to the server authentication and
access control systems. Specifically, the new third-party auth
plugin system is described, along with the new group-based
operation policy structure and policy file active monitoring.

Information on running the integration and functional tests testing
these changes is included.

The FAQ is updated to point to these changes in the server docs.
The original relevant FAQ content has been removed.
2018-06-05 09:57:06 -04:00
Peter Hamilton fcae8a5048
Merge pull request #440 from OpenKMIP/feat/bump-version
Update the PyKMIP library version to 0.9.dev0
2018-05-18 11:35:56 -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 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 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 b0bd77e0d9
Merge pull request #436 from OpenKMIP/feat/improve-attribute-error-msg
Add a better error message when reading unparseable attributes
2018-05-17 14:13:34 -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 c3319afd67
Merge pull request #434 from OpenKMIP/feat/add-auth-integration-tests
Add functional tests for server auth and access control
2018-05-10 13:59:13 -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 2dacdf7bd4
Merge pull request #431 from OpenKMIP/bug/fix-cert-script
Fix bug with writing bytes in the certificate script
2018-04-24 23:10:33 -04:00
Peter Hamilton 06c960236b
Merge pull request #432 from OpenKMIP/bug/fix-server-timeout
Fix a denial-of-service bug by setting the server socket timeout
2018-04-24 23:10:12 -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 641f6867f8 Fix bug with writing bytes in the certificate script
This change fixes a bug in the bin/create_certificates script,
enabling binary writing when creating the certificate and key
files.
2018-04-24 21:33:39 -04:00
Peter Hamilton 1f172ee08d
Merge pull request #427 from OpenKMIP/feat/add-client-config-file
Add client support for custom configuration file paths
2018-04-17 16:03: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 583559195f
Merge pull request #426 from OpenKMIP/feat/add-check-to-factory
Add Check support to the payload factories
2018-04-17 09:05:44 -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 72280f8ddc
Merge pull request #425 from OpenKMIP/feat/add-rekey-to-factory
Add Rekey support to the payload factories
2018-04-17 00:25:35 -04:00
Peter Hamilton ea7da73b4f
Merge pull request #423 from OpenKMIP/feat/add-db-file-config
Add server support for customizing the backend storage file
2018-04-16 14:58:43 -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 f1ccdf9c5a
Merge pull request #422 from OpenKMIP/feat/add-rekey-pie
Add Rekey support to the ProxyKmipClient
2018-04-16 13:32:50 -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 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 be436ba519
Merge pull request #421 from OpenKMIP/feat/add-rekey-client
Add Rekey support to the KMIPProxy client
2018-04-15 22:41:31 -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 8260da0905
Merge pull request #418 from OpenKMIP/bug/derive-key-usage-masks
Add cryptographic usage mask support for DeriveKey
2018-04-11 22:16:14 -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 3c59dcf61a
Merge pull request #415 from OpenKMIP/feat/add-policy-file-monitor
Add a policy directory monitor
2018-04-10 16:29:23 -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 6122579844
Merge pull request #414 from OpenKMIP/feat/add-check-pie
Add Check support to the ProxyKmipClient
2018-04-06 20:15:42 -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 54efe7b3db
Merge pull request #413 from OpenKMIP/feat/add-check-client
Add Check support to the KMIPProxy client
2018-04-06 19:42:29 -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 fdfbba8a0e
Merge pull request #411 from OpenKMIP/bug/fix-client-crypto-params
Fix a client bug for cryptographic parameter handling
2018-04-02 13:47:27 -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 fdafbfd904
Merge pull request #410 from OpenKMIP/feat/add-operation-policy-name-demo
Add operation policy name to demo scripts
2018-04-02 12:49:34 -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 b963f7094e
Merge pull request #409 from OpenKMIP/feat/add-certs-script
Add a certificate creation script
2018-04-02 11:09:19 -04:00
Peter Hamilton 0c8f39e069 Add a certificate creation script
This change adds a certificate creation script to the library bin,
allowing for easy creation of root CA, server, and various client
certificates. The resulting certificates can be used for testing
and the script itself can be adapted to generate any certificates
needed by users or PyKMIP deployers.
2018-04-02 10:13:29 -04:00
Peter Hamilton 6bda8ec999
Merge pull request #407 from OpenKMIP/feat/update-session-auth
Update the server session to use the auth plugin framework
2018-03-30 09:38:58 -04:00