From a85972e1ae464f69c6f9f1f2b067796fe3e428b9 Mon Sep 17 00:00:00 2001 From: Michael Osipov Date: Wed, 7 Apr 2021 11:30:07 +0200 Subject: [PATCH] Add support for str objects in the cred store dict Closes: #242 Signed-off-by: Michael Osipov [rharwood@redhat.com: commit message] --- gssapi/raw/ext_cred_store.pyx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gssapi/raw/ext_cred_store.pyx b/gssapi/raw/ext_cred_store.pyx index ccfe0019..6b72f6ce 100644 --- a/gssapi/raw/ext_cred_store.pyx +++ b/gssapi/raw/ext_cred_store.pyx @@ -18,6 +18,7 @@ from gssapi.raw.named_tuples import AddCredResult, AcquireCredResult from gssapi.raw.named_tuples import StoreCredResult from gssapi.raw.misc import GSSError +from gssapi import _utils cdef extern from "python_gssapi_ext.h": ctypedef struct gss_key_value_element_desc: @@ -82,8 +83,16 @@ cdef gss_key_value_set_desc* c_create_key_value_set(dict values) except NULL: "key-value set elements") for (i, (k, v)) in enumerate(values.items()): - res.elements[i].key = k - res.elements[i].value = v + if isinstance(k, str): + k1 = k.encode(_utils._get_encoding()) + res.elements[i].key = k1 + else: + res.elements[i].key = k + if isinstance(v, str): + v1 = v.encode(_utils._get_encoding()) + res.elements[i].value = v1 + else: + res.elements[i].value = v return res