deckhand/deckhand
Felipe Monteiro 84ab5c5096 [test] Add integration test scenario for encrypting generic type
This PS adds an integration test scenario for validating that
encrypting a generic document type and using it as a substitution
source during document rendering works.

Deckhand will now submit all generic documents to be encrypted
to Barbican with a 'secret_type' of 'passphrase'. No encoding
is provided Deckhand-side (i.e. base64) because encoding is
deprecated in Barbican since it lead to strange behavior;
Barbican will figure out what to encode the payload as
automatically. For more information, see [0] and [1].

In addition, this PS handles 2 edge cases around secret
payloads that are rejected by Barbican if not handled
correctly by Deckhand: empty payloads and non-string
type payloads [2]. For the first case Deckhand forcibly
changes the document to cleartext because there is no
point in encrypting a document with an empty payload.
For the second case Deckhand sets overrides any
previously set secret_type to 'opaque' and encodes
the payload to base64 -- when it goes to render
the secret it decodes the payload also using base64.

Integration tests have been added to handle both edge
cases described above.

[0] https://bugs.launchpad.net/python-barbicanclient/+bug/1419166
[1] 49505b9aec/barbicanclient/v1/secrets.py (L252)
[2] 49505b9aec/barbicanclient/v1/secrets.py (L297)

Change-Id: I1964aa84ad07b6f310b39974f078b84a1dc84983
2018-06-16 15:11:20 -04:00
..
barbican [test] Add integration test scenario for encrypting generic type 2018-06-16 15:11:20 -04:00
client style(pep8): remove identation ignores 2018-06-01 22:08:42 +00:00
common [test] Add integration test scenario for encrypting generic type 2018-06-16 15:11:20 -04:00
conf style(pep8): remove identation ignores 2018-06-01 22:08:42 +00:00
control [test] Add integration test scenario for encrypting generic type 2018-06-16 15:11:20 -04:00
db [test] Add integration test scenario for encrypting generic type 2018-06-16 15:11:20 -04:00
engine [test] Add integration test scenario for encrypting generic type 2018-06-16 15:11:20 -04:00
policies Rename Deckhand bucket endpoint to buckets for consistency 2017-10-27 19:21:03 +01:00
tests [test] Add integration test scenario for encrypting generic type 2018-06-16 15:11:20 -04:00
__init__.py Oslo config integration (#1) 2017-06-26 16:57:50 -07:00
cmd.py Integrate Deckhand with keystone auth 2017-10-16 19:54:46 +01:00
context.py Integrate Deckhand with keystone auth 2017-10-16 19:54:46 +01:00
errors.py Make Deckhand validation exceptions adhere to UCP standard 2018-04-26 18:51:08 +00:00
factories.py Document replacement: Update Document unique constraint 2018-03-28 17:08:03 -04:00
policy.py DECKHAND-66: Document substitution implementation 2017-10-13 15:16:27 -04:00
service.py [feature] Endpoint for listing revision validations with details 2018-04-29 01:37:38 +00:00
types.py [test] Add integration test scenario for encrypting generic type 2018-06-16 15:11:20 -04:00