Commit Graph

67 Commits

Author SHA1 Message Date
Konstantin Trushin 4d1e9c633c Repair some demos
Pass the required argument to the `build_cli_parser` function where
it was missed. Pass the missed argument in the `objects.SecretData`
initialization.
2022-05-17 13:12:48 -04:00
Joel Capitao 645cbf2ae9 Set the except clause as a parenthesized tuple 2020-09-15 10:24:17 -04:00
Peter Hamilton e5281cbd35 Add ProxyKmipClient demos for the new attribute operations
This change adds ProxyKmipClient demos for the new Set, Modify,
and Delete Attribute operations. The demos are not intended for
general use but instead to show how the client can be used to
execute these new operations against a KMIP server. See the
demo scripts themselves for more information.

Partially implements #547
2019-12-13 14:04:07 -05:00
Peter Hamilton 0361bf9d44 Add a SplitKey register demo script
This change adds a demo script showing how to register SplitKey
objects. The existing Get and Destroy demo scripts also work with
the new SplitKey objects. Demo utilities for logging object info
have been updated and improved as well.

Closes #545
2019-09-20 15:22:42 -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 4ebaa6f501 Fix a bug with the function list in the Query demo 2019-06-18 10:58:02 -04:00
Peter Hamilton 1c879e2f49 Fix a bug with revocation message decoding
This change fixes a bug with revocation message decoding that
would cause client and server failures if the revocation message
was included in a Revoke operation call. With this fix, the client
can now send a revocation message with a Revoke request and the
revocation will occur as expected.

A ProxyKmipClient demo script for the Revoke operation has been
included to help test Revoke functionality.

Finally, an argument ordering bug with the original KMIPProxy demo
Revoke script has also been fixed.

Fixes #546
2019-06-17 16:49:15 -04:00
Andrey Smirnov 42f36d080c Implement simple CLI for GET_ATTRIBUTES operation
Examples:

```
$ kmip/demos/pie/get_attributes.py -s ./vault-client.conf -i ca4a423c-d7a3-8771-028c-58feb78afca3 -a 'State' -a 'Object Type'
2019-03-25 19:28:25,868 - demo - INFO - Successfully retrieved 2 attributes:
2019-03-25 19:28:25,868 - demo - INFO - Attribute State: State.ACTIVE
2019-03-25 19:28:25,868 - demo - INFO - Attribute Object Type: ObjectType.SYMMETRIC_KEY
```

All attributes:

```
$ kmip/demos/pie/get_attributes.py -s ./vault-client.conf -i ca4a423c-d7a3-8771-028c-58feb78afca3
2019-03-25 19:28:29,985 - demo - INFO - Successfully retrieved 8 attributes:
2019-03-25 19:28:29,985 - demo - INFO - Attribute Unique Identifier: ca4a423c-d7a3-8771-028c-58feb78afca3
2019-03-25 19:28:29,985 - demo - INFO - Attribute Object Type: ObjectType.SYMMETRIC_KEY
2019-03-25 19:28:29,985 - demo - INFO - Attribute Cryptographic Algorithm: CryptographicAlgorithm.AES
2019-03-25 19:28:29,985 - demo - INFO - Attribute Cryptographic Length: 256
2019-03-25 19:28:29,985 - demo - INFO - Attribute Cryptographic Usage Mask: 12
2019-03-25 19:28:29,985 - demo - INFO - Attribute State: State.ACTIVE
2019-03-25 19:28:29,985 - demo - INFO - Attribute Initial Date: Mon Mar 25 14:28:44 2019
2019-03-25 19:28:29,985 - demo - INFO - Attribute Last Change Date: Mon Mar 25 14:28:44 2019
```
2019-03-25 13:44:27 -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 8abe3de8cb Remove invalid escape sequences
A recent style update to Python 3.6 adds deprecation W605, which
tightens the usage of invalid escape sequences. This patch removes
any instances of invalid escape sequences from the PyKMIP code
base, bringing the library back up to compliance with Python style.
2018-11-15 13:53:06 -05: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 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 7743c4ea6b
Merge pull request #386 from gaurav36/small-typo-help-message
Fix help text for the CreateKeyPair demo
2018-03-08 08:56:51 -05:00
uniscon1105 0e6b599a6c Fix help text for the CreateKeyPair demo
The help message for the CreateKeyPair demo shows an incorrect
algorithm (AES) but for asymmetric keys PyKMIP only supports RSA
with a minimum length of 512-bits. This change updates the PyKMIP
documentation to correct this.

Signed-off-by: Gaurav Kumar Garg <garg.gaurav52@gmail.com>
2018-03-07 21:31:51 +01:00
Peter Hamilton dd4a078cc1 Update the ProtocolVersion implementation
This change updates the implementation of the ProtocolVersion
struct, bringing it inline with the current struct style. All
uses of the struct have been updated to reflect these changes,
as have the struct unit tests.
2018-02-22 13:35:11 -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 df20d0e488 Adding a ProxyKmipClient demo for the Sign operation
This change adds a new ProxyKmipClient demo script, showing how
to use the Sign operation to generate a signature on arbitrary
data.
2017-09-26 16:37:58 -04:00
Peter Hamilton 06c4e5b361 Add a ProxyKmipClient demo for the SignatureVerify operation
This change adds a demo for the ProxyKmipClient, demonstrating
how to verify a message signature using a public key. Only RSA
keys and signatures are supported for now.
2017-08-30 12:14:43 -04:00
Peter Hamilton b0d454da9a Add ProxyKmipClient demos for the Encrypt / Decrypt operations
This change adds demos for the ProxyKmipClient, demonstrating how
to encrypt and decrypt messages. Demo utilities have been updated
to support the new demo scripts and the KMIPProxy client has been
updated to correctly return operation results.
2017-08-15 11:10:57 -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 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
Hao Shen 5967b55148 Fixing stringent argument checks for MAC operation 2017-03-30 14:32:42 -07:00
Hao Shen f0934fd08a Add Locate operation support for pie client 2017-02-14 17:59:52 -08:00
Hao Shen 2d45f33d43 Add MAC operation support for client 2017-01-31 14:48:19 -08:00
Peter Hamilton 47898365ba Fixing the KMIPProxy CreateKeyPair demo script
This change fixes a bug with the CreateKeyPair demo script for the
KMIPProxy client. The key pair name was never included with the
create request due to variable name overuse. This change fixes the
variable names thereby fixing the demo script.

Fixes #249
2017-01-10 13:37:50 -05: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
Viktor Tarasov ecca9552d3 demos: 'versions' argument for 'discover-versions' demo 2016-02-23 11:57:28 +01:00
Viktor Tarasov 8fe44e0e92 utils: log symmetric key 2016-02-17 17:40:50 +01: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 3970c0f211 Adding ProxyKmipClient support for the GetAttributeList operation
This change adds support for the GetAttributeList operation to the
ProxyKmipClient. It updates the Pie client API and provides a demo
showing how to use the operation. All relevant test suites are updated
accordingly.
2015-09-04 10:01:39 -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
Peter Hamilton 58120bc186 Adding unit demos for the Pie ProxyKmipClient
This change adds a new suite of unit demos for the new Pie
ProxyKmipClient. The demos show how to create the ProxyKmipClient and
how to use all of its primary operations. Demo utilities are updated to
support the new suite.
2015-07-28 13:17:31 -04:00
Peter Hamilton d2dbd8e8c4 Adding a demo for the Revoke operation
This change adds a unit demo for the Revoke operation. The operation
accepts a UID of the KMIP managed object that needs to be revoked, in
addition to a revocation code and message explaining why revocation
needs to occur.
2015-06-30 11:00:04 -04:00
Peter Hamilton ef628b3f0e Adding a demo for the Activate operation
This change adds a unit demo for the Activate operation. The operation
accepts the UID of a KMIP managed object that needs to be activated for
future use.
2015-06-26 09:52:28 -04:00
Peter Hamilton 3ec0e833eb Updating client and demo logging
This change updates various logging statements for the KMIP client and
demo suites, ensuring that the default logging level for the library is
at the INFO level and that all demo logging is at the INFO level.
2015-06-16 07:46:25 -04:00
Peter Hamilton 1bc568c175 Removing old and out-of-date demo scripts
This change removes the original top-level set of demo scripts in
kmip/demos in favor of the functioning and up-to-date unit demo scripts
located in kmip/demos/units.
2015-06-04 09:29:58 -04:00
Peter Hamilton 5ee85c3f9c Updating demo utilities to support creating Certificates
This change updates the unit demo utilities, adding in support for the
creation, registration, and retrieval of X.509 Certificate objects.
Support includes an example encoding of a Certificate as well as updated
logging routines to display retrieved Certificate data.
2015-05-07 16:51:17 -04:00