537 Commits

Author SHA1 Message Date
Peter Hamilton
89c997c337 Add support for asymmetric encryption and decryption
This change updates the encrypt/decrypt support in the cryptography
engine to support asymmetric key algorithms, specifically RSA. Unit
tests have been added to validate the new functionality.
2017-08-14 21:10:12 -04:00
Peter Hamilton
5758c6dd1e Merge pull request #321 from OpenKMIP/feat/enforce-derive-key-length
Enforce server support for DeriveKey truncation
2017-08-10 17:30:32 -04:00
Peter Hamilton
72fff8608e Merge pull request #320 from OpenKMIP/feat/add-derive-key-integration-tests
Add DeriveKey integration tests for the ProxyKmipClient
2017-08-10 15:51:22 -04:00
Peter Hamilton
0009bb2b5a Enforce server support for DeriveKey truncation
This change updates DeriveKey support in the software server to
enforce key truncation. If the derived key is longer than the
requested cryptographic length, the derived key is truncated to
fit the requested length. A unit test has been added to cover
this update.
2017-08-09 15:58:03 -04:00
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
4f6097c8a5 Merge pull request #318 from OpenKMIP/feat/add-derive-key-demo
Add a ProxyKmipClient demo for the DeriveKey operation
2017-08-09 13:59:42 -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
9ddb74a84c Merge pull request #288 from danetrain/feat/add-sign-payloads
Adding request and response payloads for the Sign operation
2017-08-01 15:47:47 -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
815cf9bc2f Merge pull request #296 from OpenKMIP/feat/add-decrypt-to-server
Add Decrypt support to the server
2017-07-27 12:19:48 -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
15de77c0a8 Merge pull request #313 from OpenKMIP/bug/fix-test-detached-instance
Fix bug generating detached instance errors in server tests
2017-07-27 11:58:29 -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
f86134878b Merge pull request #303 from OpenKMIP/feat/add-derive-key-to-server
Add DeriveKey support to the server
2017-07-25 13:42:30 -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
590313dcf9 Merge pull request #311 from OpenKMIP/feat/add-get-wrapped-keys
Add server support for Getting wrapped keys
2017-07-25 10:42:41 -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
a3bd7f4b6f Merge pull request #310 from OpenKMIP/bug/update-key-wrap
Fix key wrapping support in the cryptography engine
2017-07-24 12:53:50 -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
be4e1c2006 Merge pull request #309 from OpenKMIP/feat/add-key-wrap
Add key wrapping support to the cryptography engine
2017-07-24 10:44:13 -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
ba09e5dd70 Merge pull request #308 from OpenKMIP/feat/update-get-payloads
Update the Get request and response payloads
2017-07-20 17:43:08 -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
758bc348f7 Merge pull request #306 from OpenKMIP/feat/update-key-wrapping-spec
Update the KeyWrappingSpecification struct
2017-07-16 15:03:59 -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
4591fe5abb Merge pull request #305 from OpenKMIP/feat/update-mac-signature-key-info
Update the MACSignatureKeyInformation struct
2017-07-16 14:25:59 -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
9e9af140a6 Merge pull request #304 from OpenKMIP/feat/update-encryption-key-info
Update the EncryptionKeyInformation struct
2017-07-14 11:40:53 -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
4108fba957 Merge pull request #302 from OpenKMIP/maint/update-requirements
Update requirements to match required features
2017-07-07 09:15:13 -04:00
Peter Hamilton
528aa95954 Update requirements to match required features
This change bumps the required version for cryptography to match
what's currently needed by the software server.

Closes #301
2017-07-07 08:26:02 -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
ac8f160fa0 Merge pull request #300 from OpenKMIP/feat/update-engine-tests
Update server engine unit tests to improve coverage
2017-07-05 14:45:52 -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
a3dd6503cd Merge pull request #295 from OpenKMIP/feat/add-decrypt
Add decryption support to the server cryptography engine
2017-06-28 10:11:10 -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
e18dd54599 Merge pull request #294 from OpenKMIP/feat/add-derive-key-payloads
Add request and response payloads for the DeriveKey operation
2017-06-26 12:19:18 -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