From b1b848ff0974c0643e57af810e4a215bf437f0cf Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Mon, 26 Oct 2015 12:36:13 -0400 Subject: 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 --- custodia/message/kem.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'custodia/message/kem.py') 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") -- cgit