gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] branch master updated: RECLAIM: Fix oidc helper WIP


From: gnunet
Subject: [gnunet] branch master updated: RECLAIM: Fix oidc helper WIP
Date: Tue, 07 May 2024 17:50:13 +0200

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new 4addb2061 RECLAIM: Fix oidc helper WIP
4addb2061 is described below

commit 4addb206133dc723c0874343ceadb01cb0b65711
Author: Martin Schanzenbach <schanzen@gnunet.org>
AuthorDate: Tue May 7 17:50:09 2024 +0200

    RECLAIM: Fix oidc helper WIP
---
 src/service/rest/oidc_helper.c | 25 ++++++++++++++++++++-----
 src/service/rest/oidc_helper.h |  6 ++++--
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/src/service/rest/oidc_helper.c b/src/service/rest/oidc_helper.c
index 0c5a5a0d6..c0b2459f6 100644
--- a/src/service/rest/oidc_helper.c
+++ b/src/service/rest/oidc_helper.c
@@ -889,13 +889,16 @@ OIDC_build_token_response (const char *access_token,
  * Generate a new access token
  */
 char *
-OIDC_access_token_new (const struct GNUNET_RECLAIM_Ticket *ticket)
+OIDC_access_token_new (const struct GNUNET_RECLAIM_Ticket *ticket,
+                       const char *rp_uri)
 {
   char *access_token;
+  char *tkt_b64;
 
   GNUNET_STRINGS_base64_encode (ticket,
                                 sizeof(*ticket),
-                                &access_token);
+                                &tkt_b64);
+  GNUNET_asprintf (&access_token, "%s-%s", tkt_b64, rp_uri);
   return access_token;
 }
 
@@ -905,19 +908,31 @@ OIDC_access_token_new (const struct GNUNET_RECLAIM_Ticket 
*ticket)
  */
 int
 OIDC_access_token_parse (const char *token,
-                         struct GNUNET_RECLAIM_Ticket **ticket)
+                         struct GNUNET_RECLAIM_Ticket **ticket,
+                         char **rp_uri)
 {
   size_t sret;
   char *decoded;
-  sret = GNUNET_STRINGS_base64_decode (token,
-                                       strlen (token),
+  char *tmp;
+  char *tkt_str;
+  char *rp_uri_str;
+  tmp = GNUNET_strdup (token);
+  tkt_str = strtok (tmp, "-");
+  GNUNET_assert (NULL != tkt_str); // FIXME handle
+  rp_uri_str = strtok (NULL, "-");
+  GNUNET_assert (NULL != rp_uri_str); // FIXME handle
+  sret = GNUNET_STRINGS_base64_decode (tkt_str,
+                                       strlen (tkt_str),
                                        (void**) &decoded);
   if (sizeof (struct GNUNET_RECLAIM_Ticket) != sret)
   {
     GNUNET_free (decoded);
+    GNUNET_free (tmp);
     return GNUNET_SYSERR;
   }
   *ticket = (struct GNUNET_RECLAIM_Ticket *) decoded;
+  *rp_uri = GNUNET_strdup (rp_uri_str);
+  GNUNET_free (tmp);
   return GNUNET_OK;
 }
 
diff --git a/src/service/rest/oidc_helper.h b/src/service/rest/oidc_helper.h
index 3e180f673..1732a044b 100644
--- a/src/service/rest/oidc_helper.h
+++ b/src/service/rest/oidc_helper.h
@@ -159,14 +159,16 @@ OIDC_build_token_response (const char *access_token,
  * Generate a new access token
  */
 char*
-OIDC_access_token_new (const struct GNUNET_RECLAIM_Ticket *ticket);
+OIDC_access_token_new (const struct GNUNET_RECLAIM_Ticket *ticket,
+                       const char *rp_uri);
 
 /**
  * Parse an access token
  */
 int
 OIDC_access_token_parse (const char *token,
-                         struct GNUNET_RECLAIM_Ticket **ticket);
+                         struct GNUNET_RECLAIM_Ticket **ticket,
+                         char **rp_uri);
 
 
 /**

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]