From 71d71e51db30ab9816977523313a32df941114ee Mon Sep 17 00:00:00 2001 From: Alexey Ivanov Date: Fri, 12 Apr 2024 23:08:24 +0500 Subject: [PATCH 1/2] OpenVPN certificate authorization with cn_username in 'email' format --- src/Cedar/Protocol.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Cedar/Protocol.c b/src/Cedar/Protocol.c index 6075f3ff..3829b563 100644 --- a/src/Cedar/Protocol.c +++ b/src/Cedar/Protocol.c @@ -6773,7 +6773,6 @@ PACK *PackLoginWithOpenVPNCertificate(char *hubname, char *username, X *x) p = NewPack(); PackAddStr(p, "method", "login"); - PackAddStr(p, "hubname", hubname); if (IsEmptyStr(username)) { @@ -6782,12 +6781,25 @@ PACK *PackLoginWithOpenVPNCertificate(char *hubname, char *username, X *x) FreePack(p); return NULL; } + UniToStr(cn_username, sizeof(cn_username), x->subject_name->CommonName); - PackAddStr(p, "username", cn_username); + + if(strchr(cn_username, '@') != NULL) + { + PackAddStr(p, "username", strtok(cn_username, "@")); + PackAddStr(p, "hubname", strtok(NULL, "")); + } + else + { + PackAddStr(p, "username", cn_username); + PackAddStr(p, "hubname", hubname); + } + } else { PackAddStr(p, "username", username); + PackAddStr(p, "hubname", hubname); } PackAddInt(p, "authtype", AUTHTYPE_OPENVPN_CERT); From 6582955cfa4158d889bf96da9f91e8b8bbbfae82 Mon Sep 17 00:00:00 2001 From: Ilya Shipitsin Date: Sun, 14 Apr 2024 10:36:55 +0200 Subject: [PATCH 2/2] Update src/Cedar/Protocol.c Co-authored-by: Davide Beatrici --- src/Cedar/Protocol.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Cedar/Protocol.c b/src/Cedar/Protocol.c index 3829b563..a0da6c70 100644 --- a/src/Cedar/Protocol.c +++ b/src/Cedar/Protocol.c @@ -6784,7 +6784,8 @@ PACK *PackLoginWithOpenVPNCertificate(char *hubname, char *username, X *x) UniToStr(cn_username, sizeof(cn_username), x->subject_name->CommonName); - if(strchr(cn_username, '@') != NULL) + if (strchr(cn_username, '@') != NULL) + { PackAddStr(p, "username", strtok(cn_username, "@")); PackAddStr(p, "hubname", strtok(NULL, ""));