47 Commits

Author SHA1 Message Date
Konstantin Trushin
263cb34662 Fix source code style to comply with PEP8 2023-03-27 11:16:46 -04:00
Grace Lombardi
0a3e39143f Updated app specific info to be a list of dictionaries, removed unneeded sudo in run.sh, updated server.conf to remove db, updated tests and comments to reflect app specific info being a list 2022-07-25 10:12:56 -04:00
Grace Lombardi
124f7db5cb Updated test for App Specific Info for Symmetric Key and added test for App Specific Info for SecretData 2022-07-25 10:12:56 -04:00
Grace Lombardi
1773fba67c Updated client integration tests, Added test for Application Specific Information 2022-07-25 10:12:56 -04:00
Peter Hamilton
ae05118804 Add integration tests for the Modify and DeleteAttribute operations
This change adds integration tests for the client and server for
the Modify and DeleteAttribute operations, proving they work in
tandem. Minor bug fixes in the client are included to enable
correct test execution.

Partially implements #547
2019-12-13 16:21:32 -05:00
Peter Hamilton
cd1079afd5 Add integration tests for Locate using new attributes
This change adds integration tests that verify that objects can
be found by Locate when filtering off of the new ObjectGroup and
ApplicationSpecificInformation attributes. Some minor tweaks to
the database attribute models are included to simplify usage.
2019-10-11 16:45:50 -04:00
Peter Hamilton
29750cbda6 Add SplitKey server integration tests
This change adds integration tests that test registering,
retrieving, and destroying SplitKey objects with the server.
Minor updates are included for the client and server to ensure
that SplitKey operations function as expected.

Partially implements #545
2019-09-20 14:04:57 -04:00
Peter Hamilton
44d55f2550 Add CertificateType filtering support for Locate
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects based on the object's
Certificate Type. Unit tests and integration tests have
been added to test and verify the correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support Certificate Type filtering. Simply use the
"--certificate-type" flag to specify a Certificate Type
enumeration values for the Locate script to filter on.
2019-08-16 17:31:42 -04:00
Peter Hamilton
b5a8739157 Add CryptographicUsageMask filtering support for Locate
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects based on the object's
Cryptographic Usage Masks. Unit tests and integration tests have
been added to test and verify the correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support Cryptographic Usage Mask filtering. Simply use the
"--cryptographic-usage-mask" flag to specify one or more
Cryptographic Usage Mask enumeration values for the Locate script
to filter on.
2019-08-12 16:54:03 -04:00
Peter Hamilton
4a6a2eccc1 Add offset and maximum item filtering for the Locate operation
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects using the offset and maximum item
constraints. The offset constraint tells the server how many
matching items should be skipped before results are returned. The
maximum items constraint tells the server how many matching items
should be returned. Unit tests and integration tests have been
added to test and verify the correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support offset and maximum item filtering. Simply use the
"--offset-items" and "--maximum-items" flags to specify offset and
maximum item values for the Locate script to filter on.

Fixes #562
2019-08-09 17:13:20 -04:00
Peter Hamilton
942d55cca9 Add OperationPolicyName filtering support for Locate
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects based on the object's Operation
Policy Name. Unit tests and integration tests have been added to
test and verify the correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support Operation Policy Name filtering. Simply use the
"--operation-policy-name" flag to specify an Operation Policy Name
string value for the Locate script to filter on.
2019-08-01 09:06:09 -04:00
Peter Hamilton
9e95d14e08 Add UniqueIdentifier filtering support for the Locate operation
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects based on the object's Unique
Identifier. Unit tests and integration tests have been added to
test and verify the correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support Unique Identifier filtering. Simply use the
"--unique-identifier" flag to specify a Unique Identifier string
value for the Locate script to filter on.
2019-07-31 16:30:47 -04:00
Peter Hamilton
6dcae13c5b Add CryptographicLength filtering support for the Locate operation
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects based on the object's
Cryptographic Length. If an object's type does not support the
Cryptographic Length attribute, the object is not a match. Unit
tests and integration tests have been added to test and verify
the correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support Cryptographic Length filtering. Simply use the
"--cryptographic-length" flag to specify a Cryptographic Length
integer value for the Locate script to filter on.
2019-07-31 13:12:43 -04:00
Peter Hamilton
bf518c8393 Add CryptographicAlgorithm filtering support for Locate
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects based on the object's
Cryptographic Algorithm. If an object's type does not support the
Cryptographic Algorithm attribute, that object is not a match.
Unit tests and integration tests have been added to test and
verify the correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support Cryptographic Algorithm filtering. Simply use the
"--cryptographic-algorithm" flag to specify a Cryptographic
Algorithm enumeration for the Locate script to filter on.
2019-07-31 09:41:48 -04:00
Peter Hamilton
d74b394261 Add ObjectType filtering support for the Locate operation
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects based on the object's Object Type.
Unit tests and integration tests have been added to test and verify
the correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support Object Type filtering. Simply use the "--object-type" flag
to specify an Object Type enumeration for the Locate script to
filter on.
2019-07-30 18:08:46 -04:00
Peter Hamilton
e5de55c0a8 Add State filtering support for the Locate operation
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects based on the object's State. Unit
tests and integration tests have been added to test and verify the
correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support State filtering. Simply use the "--state" flag to specify
a State enumeration for the Locate script to filter on.
2019-07-26 18:10:20 -04:00
Peter Hamilton
da284e932b Add InitialDate filtering support for the Locate operation
This change updates Locate operation support in the PyKMIP server,
allowing users to filter objects based on the objects InitialDate
attribute value. Specifying a single InitialDate attribute in the
Locate request will perform an exact match on objects; specifying
two InitialDate attributes will perform a ranged match. Unit tests
and integration tests have been added to test and verify the
correctness of this feature.

Additionally, the Locate demo scripts have also been updated to
support InitialDate filtering. Simply use the "--initial-date"
flag to provide one or more InitialDate values to the Locate
script to filter on those dates.
2019-07-26 16:31:37 -04:00
Peter Hamilton
314dd8761e Update the Query payloads
This change upgrades the Query payloads, fixing error messages,
comments, local variables, and internal payload structure to
bring Query support up to KMIP 1.4 standards, in addition to
compliance with the current payload format. The corresponding
unit test suite has been completely rewritten to reflect these
changes.

This change prepares the Query payloads for future updates to
support KMIP 2.0.
2019-04-23 10:00:46 -04:00
Peter Hamilton
71d508019a Update the CreateKeyPair payloads
This change updates the CreateKeyPair payloads to the current
payload format, adding properties for different payload attributes
and adding comparison and string operators. Changes are also made
to the PyKMIP clients and the surrounding testing infrastructure
to reflect the payload changes. The official unit test suite for
the CreateKeyPair payloads has been updated to also reflect these
changes.

This change prepares the CreateKeyPair payloads for future
updates to support KMIP 2.0.
2019-03-15 16:51:07 -04:00
Peter Hamilton
a81233aa2a Update the Register payloads
This change updates the Register payloads to the current payload
format, adding properties for different payload attributes and
adding comparison and string operators. Changes are also made to
the PyKMIP clients and the surrounding testing infrastructure to
reflect the payload changes. An official unit test suite for the
Register payloads has also been included, which will eventually
replace the existing Register message tests elsewhere in the test
suite.

This change prepares the Register payloads for future updates to
support KMIP 2.0.
2019-03-06 13:37:39 -05:00
Peter Hamilton
30d7773d96 Update the Create payloads
This change updates the Create payloads to the current payload
format, adding properties for different payload attributes and
adding comparison and string operators. Changes are also made to
the PyKMIP clients and the surrounding testing infrastructure to
reflect the payload changes. An official unit test suite for the
Create payloads has also been included, which will eventually
replace the existing Create message tests elsewhere in the test
suite.

This change prepares the Create payloads for future updates to
support KMIP 2.0.
2019-02-27 16:40:22 -05: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
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
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
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
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
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
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
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
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
ad6ec69848 Fixing broken GetAttributeList integration test 2015-12-02 12:08:47 -05:00
Peter Hamilton
20dbad5055 Updating support for the Enumeration primitive
This change updates the Enumeration primitive, adding a fresh
implementation and documentation. An updated unit test suite for the
primitive is included. Numerous changes to Enumeration usage across the
library are also included to comply with the updated implementation.
2015-09-29 13:23:44 -04:00
Peter Hamilton
c763b69af1 Adding KMIPProxy support for the GetAttributeList operation
This change adds support for the GetAttributeList operation to the
KMIPProxy client. It adds a new result object for the operation along
with an integration test demonstrating how the operation can be used.
Client unit test cases are also included.
2015-08-31 12:06:49 -04:00
Peter Hamilton
3ebc09670a Updating integration tests to ignore software server
This change adds a new pytest marker, ignore. It is used to silently
skip the software server integration test suite, which is now broken
from a recent ssl update. A pytest ini configuration file is also added
to register the new marker.
2015-08-20 09:13:20 -04:00
Peter Hamilton
bb0487b5dc Merge pull request #69 from OpenKMIP/feat/add-pie-client-opaque
Adding opaque object examples for the ProxyKmipClient
2015-07-31 17:21:40 -04:00
Hadi Esiely
50cc8d9e8a Addition of Opaque Objects Integration Tests
Tests that opaque objects can be properly registered, retrieved, and destroyed.
2015-07-30 13:01:51 -04:00
Hadi Esiely
f7e9c398fc Addition of Passphrase Integration Test
Tests that passphrases can be properly registered, retrieved, and destroyed.
2015-07-30 12:22:46 -04:00
Hadi Esiely
866ba3f3f4 Addition of Certificate Integration Tests
Tests that certificates can be properly registered, retrieved, and destroyed.
2015-07-30 10:54:37 -04:00
Peter Hamilton
a148e7c615 Adding opaque object examples for the ProxyKmipClient
This change adds two examples showing how to use opaque objects with the
ProxyKmipClient. The first is a unit demo showing how to register an
opaque object using the register operation of the ProxyKmipClient. The
second is an integration test showing how to register, get, and destroy
an opaque object using the ProxyKmipClient.
2015-07-30 10:39:06 -04:00
Peter Hamilton
689275ced0 Adding secret data examples for the ProxyKmipClient
This change adds two examples showing how to use secret data with the
ProxyKmipClient. The first is a unit demo showing how to register a
secret using the register operation of the ProxyKmipClient. The second
is an integration test showing how to register, get, and destroy a
secret using the ProxyKmipClient.
2015-07-30 10:22:48 -04:00
Peter Hamilton
275f341da9 Adding certificate examples for the ProxyKmipClient
This change adds two examples showing how to use certificates with the
ProxyKmipClient. The first is a unit demo showing how to register a
certificate using the register operation of the ProxyKmipClient. The
second is an integration test showing how to register, get, and destroy
a certificate using the ProxyKmipClient.
2015-07-30 08:31:47 -04:00
Hadi Esiely
078e1015bc Added asymmetric key testing
This test includes tests for testing the creation, destruction, registration, and querying of private and public keys.
2015-07-29 12:18:16 -04:00
Peter Hamilton
608644b062 Adding integration tests for the Pie ProxyKmipClient
This change adds an integration test suite for the new Pie
ProxyKmipClient, which tests basic CRUD operations for symmetric and
asymmetric keys. An additional pytest fixture is included for the new
client.
2015-07-28 13:03:08 -04:00
Hadi Esiely
d1e6ff49c8 Added integration tests for testing symmetric keys 2015-06-24 15:56:47 -04:00
Peter Hamilton
6606c989fb Adding config argument to integration test suite
This change adds a pytest config argument, allowing the integration test
suite to be run with the client configured with a specific section from
the PyKMIP configuration file. A simple integration test class is added
to demonstrate how to use the client created using the config argument.

To run the integration test suite with a specific configuration, use:

$ tox -e integration -- --config <config-section>

where <config-section> is the name of the config file section to use for
the PyKMIP client.
2015-05-20 12:08:59 -04:00
Peter Hamilton
23574dc33c Reorganizing test suite and updating tox configuration
This change reorganizes the test suite, splitting it into two separate
test suites, one for unit tests and one for integration tests. The tox
configuration is also updated to reflect this change. Invoking tox now
runs the unit tests by default. A separate tox environment is used to
run the integration tests.
2015-05-14 13:13:10 -04:00