333 Commits

Author SHA1 Message Date
Peter Hamilton
56b8a9f04b Add DeriveKey integration tests for the ProxyKmipClient
This change adds several integration tests that exercise the
DeriveKey functionality supported by the ProxyKmipClient. These
tests pass when run against the PyKMIP software server.
2017-08-09 15:37:46 -04:00
Peter Hamilton
125bbee9ad Merge pull request #319 from OpenKMIP/bug/fix-get-integration-tests
Fix integration test errors involving Get payloads
2017-08-09 14:25:31 -04:00
Peter Hamilton
015368161c Fix integration test errors involving Get payloads
This change fixes a series of bugs in the integration test suite
introduced by the previous Get payload update. The integration
test suite now runs successfully against the PyKMIP software
server.
2017-08-09 13:51:29 -04:00
Peter Hamilton
ec61f1861d Add a ProxyKmipClient demo for the DeriveKey operation
This change adds a demo for the ProxyKmipClient, demonstrating how
to derive keys in a variety of ways, including via encryption,
hashing, HMAC, PBKDF2, and NIST 800 108-C.
2017-08-09 13:25:23 -04:00
Peter Hamilton
357ac022c4 Merge pull request #317 from OpenKMIP/feat/add-derive-key-to-clients
Add DeriveKey support to the clients
2017-08-09 13:05:13 -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
a4b7b433b4 Add Decrypt support to the server
This change adds the Decrypt operation to the server. Support is
currently limited to symmetric decryption only. The decryption key
used with the operation must be in the Active state and it must
have the Decrypt bit set in its cryptographic usage mask.
2017-07-27 12:03:27 -04:00
Peter Hamilton
7c6e45f549 Fix bug generating detached instance errors in server tests
This patch fixes a bug that generates intermittent sqlalchemy
DetachedInstanceErrors during the KMIP server engine unit test
execution. Specifically, this fix disables instance expiration on
commit for the sqlalchemy sessions used throughout the unit tests,
allowing access to instance attributes even if the instance is
detached from a session.

Fixes #312
2017-07-27 11:38:07 -04:00
Peter Hamilton
90fafe8713 Add DeriveKey support to the server
This change adds the DeriveKey operation to the server. Unit tests
covering the new additions are included. The Query operation has
also been updated to reflect this addition.
2017-07-25 13:20:16 -04:00
Peter Hamilton
50b0ae9fee Add server support for Getting wrapped keys
This change adds support for retrieving wrapped keys from the KMIP
server. The only supported key wrapping algorithm currently is
the AES-based NIST Key Wrap algorithm (RFC 3394). MAC/signing is
not supported for key wrapping. Attribute-bundling with the wrapped
key value is not supported. Wrapping of the entire key block TTLV
encoding is not supported. Various additional error cases are
included and checked for.

Unit tests covering the additions to Get are included.
2017-07-25 09:50:11 -04:00
Peter Hamilton
448cf229f6 Fix key wrapping support in the cryptography engine
This change fixes key wrapping support in the cryptography engine.
The original implementation used a CryptographicAlgorithm enum to
determine what key wrapping algorithm to use for key wrapping.
Closer inspection of the KMIP spec indicates that a BlockCipherMode
enum should be used instead. The engine has been updated to reflect
this change, as have the corresponding key wrapping unit tests.
2017-07-24 12:40:46 -04:00
Peter Hamilton
615889f7eb Merge pull request #307 from OpenKMIP/feat/update-key-wrapping-data
Update the KeyWrappingData struct
2017-07-24 12:13:58 -04:00
Peter Hamilton
f71500446f Add key wrapping support to the cryptography engine
This change adds key wrapping support to the CryptographyEngine,
supporting RFC 3394, AES Key Wrap, only. Numerous unit tests from
using test vectors from RFC 3394 are included.
2017-07-24 10:24:25 -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
1e6b043ab8 Update the KeyWrappingData struct
This change updates the KeyWrappingData struct to conform with
current library styles. This struct is used with key data to
represent a wrapped key and will be used by future patches to
support key wrapping functionality. Updated unit tests matching
the new additions are included.
2017-07-18 10:31:05 -04:00
Peter Hamilton
0e0e1465e9 Update the KeyWrappingSpecification struct
This change updates the KeyWrappingSpecification struct to conform
with current library styles. This struct is used for key wrapping
functionality and will be used in future patches. Updated unit
tests matching the new additions are included.
2017-07-16 14:41:44 -04:00
Peter Hamilton
2e15a1ca3b Update the MACSignatureKeyInformation struct
This change updates the MACSignatureKeyInformation 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-15 13:08:06 -04:00
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