diff options
author | Simo Sorce <simo@redhat.com> | 2015-10-26 12:36:13 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2015-11-06 20:55:12 -0500 |
commit | b1b848ff0974c0643e57af810e4a215bf437f0cf (patch) | |
tree | 1743b3c81b47552140066ec3f9ae7ccd50c36c46 | |
parent | dc6101a5acad72a22ab911bb77a594f58d220ee1 (diff) | |
download | custodia-b1b848ff0974c0643e57af810e4a215bf437f0cf.tar.gz custodia-b1b848ff0974c0643e57af810e4a215bf437f0cf.tar.xz custodia-b1b848ff0974c0643e57af810e4a215bf437f0cf.zip |
Fix KEM messages handling when storing data.
The payload was not being set with the provided value when a PUT
operation token was parsed. This resulted in attempting to store
an empty value instead of the provided secret.
Signed-off-by: Simo Sorce <simo@redhat.com>
-rw-r--r-- | custodia/message/kem.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/custodia/message/kem.py b/custodia/message/kem.py index c832b12..48b756b 100644 --- a/custodia/message/kem.py +++ b/custodia/message/kem.py @@ -50,9 +50,6 @@ class KEMKeysStore(SimplePathAuthz): def __init__(self, config=None): super(KEMKeysStore, self).__init__(config) - self.paths = [] - if 'paths' in self.config: - self.paths = self.config['paths'].split() self._server_keys = None self._alg = None self._enc = None @@ -178,6 +175,7 @@ class KEMHandler(MessageHandler): check_kem_claims(claims, name) self.name = name + self.payload = claims.get('value') return {'type': 'kem', 'value': {'kid': self.client_keys[KEY_USAGE_ENC].key_id, @@ -403,3 +401,13 @@ class KEMTests(unittest.TestCase): msg = json_decode(kem.reply('key value')) rep = cli.parse_reply("key name", msg['value']) self.assertEqual(rep, 'key value') + + def test_4_KEMClient_SET(self): + server_keys = [JWK(**test_keys[KEY_USAGE_SIG]), None] + client_keys = [JWK(**self.client_keys[KEY_USAGE_SIG]), + JWK(**self.client_keys[KEY_USAGE_ENC])] + cli = KEMClient(server_keys, client_keys) + kem = KEMHandler({'KEMKeysStore': self.kk}) + req = cli.make_request("key name", "key value") + kem.parse(req, "key name") + self.assertEqual(kem.payload, "key value") |