Commit Graph

650 Commits

Author SHA1 Message Date
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 30e1a6c095 Merge pull request #196 from OpenKMIP/feat/enforce-server-opp-policy
Add server persistence for operation policy names
2016-10-14 11:09:10 -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 843c75d830 Merge pull request #195 from OpenKMIP/feat/add-opp-policy-name-to-client
Adding operation policy name support to the client
2016-10-06 09:35:29 -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 38daeca59d Merge pull request #194 from OpenKMIP/bug/fix-cred-assumption-in-server
Fixing server failure on missing request credential
2016-10-03 13:50:59 -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 40919468a6 Merge pull request #191 from OpenKMIP/feat/add-operation-policies
Adding default KMIP operation policies
2016-09-13 15:02: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 00be488134 Merge pull request #190 from OpenKMIP/feat/update-enums-to-1.2
Updating KMIP enumerations to support KMIP 1.2
2016-09-06 13:52:28 -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 249fafb89b Merge pull request #188 from OpenKMIP/feat/add-state-attribute
Adding support for the State attribute
2016-08-27 17:50:41 -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 b46de1849e Merge pull request #187 from OpenKMIP/feat/add-state-enumerations
Adding the State enumeration
2016-08-27 16:53:07 -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 Hamilton 6d15e91ca7 Merge pull request #166 from OpenKMIP/feat/update-readme
Updating README
2016-04-14 08:00:36 -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
Peter 361e2612a7 Updating README
This change updates the PyKMIP README, adding additional information on
the new software server in addition to other minor updates.
2016-04-13 15:26:28 -04:00
Peter Hamilton d7b27b211b Merge pull request #165 from OpenKMIP/dev/pykmip-server
Added KMIP Server Entry Point
2016-04-11 13:33:36 -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 Hamilton 0611a12f95 Merge pull request #161 from OpenKMIP/bug/fix-table-increments
Fixing bug with primary key reuse by SQLAlchemy
2016-04-07 11:05:31 -04:00
Peter Hamilton 94d5cd89bd Merge pull request #157 from OpenKMIP/feat/add-server-script
Adding a server startup script
2016-04-07 10:47:48 -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 32b50bd4cc Adding a server startup script
This change adds a server startup script, bin/run_server.py, that can be
used to run the KmipServer. Command-line arguments matching the server
configuration file and KmipServer constructor are included.
2016-04-05 14:13:01 -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 Hamilton dc00da56ab Merge pull request #125 from OpenKMIP/bug/fix-datetime-str-test
Fixing bug with DateTime str test
2016-04-05 14:07:12 -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 Hamilton ef92ee8ff7 Merge pull request #154 from OpenKMIP/feat/link-session-engine
Integrating the KmipEngine with the KmipSession
2016-04-04 10:58:16 -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 Hamilton 2b67689057 Merge pull request #153 from OpenKMIP/feat/link-server-logs
Linking the loggers for the different KmipServer components
2016-04-04 10:47:14 -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 Hamilton 6a3200f8c1 Merge pull request #152 from OpenKMIP/feat/add-kmip-server
Adding the KmipServer
2016-04-04 08:44:29 -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