@@ -67,6 +67,11 @@ int scitoken_set_claim_string(SciToken token, const char *key, const char *value
6767}
6868
6969
70+ void scitoken_set_serialize_profile (SciToken token, SciTokenProfile profile) {
71+ scitoken_set_serialize_mode (token, profile);
72+ }
73+
74+
7075void scitoken_set_serialize_mode (SciToken token, SciTokenProfile profile) {
7176 scitokens::SciToken *real_token = reinterpret_cast <scitokens::SciToken*>(token);
7277 if (real_token == nullptr ) {return ;}
@@ -75,6 +80,14 @@ void scitoken_set_serialize_mode(SciToken token, SciTokenProfile profile) {
7580}
7681
7782
83+ void scitoken_set_deserialize_profile (SciToken token, SciTokenProfile profile) {
84+ scitokens::SciToken *real_token = reinterpret_cast <scitokens::SciToken*>(token);
85+ if (real_token == nullptr ) {return ;}
86+
87+ real_token->set_deserialize_mode (static_cast <scitokens::SciToken::Profile>(profile));
88+ }
89+
90+
7891int scitoken_get_claim_string (const SciToken token, const char *key, char **value, char **err_msg) {
7992 scitokens::SciToken *real_token = reinterpret_cast <scitokens::SciToken*>(token);
8093 std::string claim_str;
@@ -150,6 +163,18 @@ int scitoken_deserialize(const char *value, SciToken *token, char const* const*
150163 scitokens::SciTokenKey key;
151164 scitokens::SciToken *real_token = new scitokens::SciToken (key);
152165
166+ int retval = scitoken_deserialize_v2 (value, reinterpret_cast <SciToken>(real_token), allowed_issuers, err_msg);
167+ if (retval) {
168+ delete real_token;
169+ } else {
170+ *token = real_token;
171+ }
172+ return retval;
173+ }
174+
175+ int scitoken_deserialize_v2 (const char *value, SciToken token, char const * const * allowed_issuers, char **err_msg) {
176+ scitokens::SciToken *real_token = reinterpret_cast <scitokens::SciToken*>(token);
177+
153178 std::vector<std::string> allowed_issuers_vec;
154179 if (allowed_issuers != nullptr ) {
155180 for (int idx=0 ; allowed_issuers[idx]; idx++) {
@@ -165,7 +190,6 @@ int scitoken_deserialize(const char *value, SciToken *token, char const* const*
165190 }
166191 return -1 ;
167192 }
168- *token = real_token;
169193 return 0 ;
170194}
171195
0 commit comments