From faf44abf2aedd83dbd0e2d5e43182847bc5f2cd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 31 Jul 2015 11:09:59 +0200 Subject: [PATCH] Accept a trailing space at end of PEM lines With certs being copy-pasted from webmails and all, this will probably become more and more common. --- ChangeLog | 1 + library/pem.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index b4bed6c19..a80a85ed1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19,6 +19,7 @@ Bugfix Changes * Add SSL_MIN_DHM_BYTES configuration parameter in config.h to choose the minimum size of Diffie-Hellman parameters accepted by the client. + * The PEM parser now accepts a trailing space at end of lines (#226). = Version 1.2.14 released 2015-06-26 diff --git a/library/pem.c b/library/pem.c index 4f853b56c..5c973ac25 100644 --- a/library/pem.c +++ b/library/pem.c @@ -208,12 +208,14 @@ int pem_read_buffer( pem_context *ctx, char *header, char *footer, const unsigne return( POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT ); s1 += strlen( header ); + if( *s1 == ' ' ) s1++; if( *s1 == '\r' ) s1++; if( *s1 == '\n' ) s1++; else return( POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT ); end = s2; end += strlen( footer ); + if( *end == ' ' ) end++; if( *end == '\r' ) end++; if( *end == '\n' ) end++; *use_len = end - data;