diff options
author | manu@netbsd.org <manu@netbsd.org@a716ebb1-153a-0410-b759-cfb97c6a1b53> | 2009-06-14 18:01:58 +0000 |
---|---|---|
committer | manu@netbsd.org <manu@netbsd.org@a716ebb1-153a-0410-b759-cfb97c6a1b53> | 2009-06-14 18:01:58 +0000 |
commit | a0dd3b07dcfd46dd80d9e400ee61ede4c6d16984 (patch) | |
tree | e9aab9976036c377521a1f4856a7eb628093516a /auth_mellon_handler.c | |
parent | abbefe3066b30904cd324cde24db99fc44fb99e2 (diff) | |
download | mod_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.c | 14 |
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\">" |