summaryrefslogtreecommitdiffstats
path: root/auth_mellon_handler.c
diff options
context:
space:
mode:
authormanu@netbsd.org <manu@netbsd.org@a716ebb1-153a-0410-b759-cfb97c6a1b53>2009-06-14 18:01:58 +0000
committermanu@netbsd.org <manu@netbsd.org@a716ebb1-153a-0410-b759-cfb97c6a1b53>2009-06-14 18:01:58 +0000
commita0dd3b07dcfd46dd80d9e400ee61ede4c6d16984 (patch)
treee9aab9976036c377521a1f4856a7eb628093516a /auth_mellon_handler.c
parentabbefe3066b30904cd324cde24db99fc44fb99e2 (diff)
downloadmod_auth_mellon-a0dd3b07dcfd46dd80d9e400ee61ede4c6d16984.tar.gz
mod_auth_mellon-a0dd3b07dcfd46dd80d9e400ee61ede4c6d16984.tar.xz
mod_auth_mellon-a0dd3b07dcfd46dd80d9e400ee61ede4c6d16984.zip
Strip "-----BEGIN CERTIFICATE-----", "-----END CERTIFICATE-----", and any
non graphic character (space, CR) from the certificate presented in autogenerated metadata. git-svn-id: https://modmellon.googlecode.com/svn/trunk@55 a716ebb1-153a-0410-b759-cfb97c6a1b53
Diffstat (limited to 'auth_mellon_handler.c')
-rw-r--r--auth_mellon_handler.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/auth_mellon_handler.c b/auth_mellon_handler.c
index 11952a1..8bdf64a 100644
--- a/auth_mellon_handler.c
+++ b/auth_mellon_handler.c
@@ -86,6 +86,7 @@ static char *am_generate_metadata(apr_pool_t *p, request_rec *r)
if (cfg->sp_cert_file) {
char *sp_cert_file;
char *cp;
+ char *bp;
const char *begin = "-----BEGIN CERTIFICATE-----";
const char *end = "-----END CERTIFICATE-----";
@@ -97,12 +98,21 @@ static char *am_generate_metadata(apr_pool_t *p, request_rec *r)
cp = strstr(sp_cert_file, begin);
if (cp != NULL)
- sp_cert_file = cp;
+ sp_cert_file = cp + strlen(begin);
cp = strstr(sp_cert_file, end);
if (cp != NULL)
- *(cp + strlen(end)) = '\0';
+ *cp = '\0';
+ /*
+ * And remove any non printing char (CR, spaces...)
+ */
+ bp = sp_cert_file;
+ for (cp = sp_cert_file; *cp; cp++) {
+ if (apr_isgraph(*cp))
+ *bp++ = *cp;
+ }
+ *bp = '\0';
cert = apr_psprintf(p,
"<KeyDescriptor use=\"signing\">"