pem: auto add newlines to header/footer in mbedtls_pem_write_buffer()

Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
diff --git a/library/pem.c b/library/pem.c
index 9500ffc..7c0c447 100644
--- a/library/pem.c
+++ b/library/pem.c
@@ -473,7 +473,10 @@
     size_t len = 0, use_len, add_len = 0;
 
     mbedtls_base64_encode(NULL, 0, &use_len, der_data, der_len);
-    add_len = strlen(header) + strlen(footer) + (((use_len > 2) ? (use_len - 2) : 0) / 64) + 1;
+    /* Newlines are appended to the end of both header and footer, so we
+     * account for an extra +2. */
+    add_len = strlen(header) + strlen(footer) + 2 + \
+              (((use_len > 2) ? (use_len - 2) : 0) / 64) + 1;
 
     if (use_len + add_len > buf_len) {
         *olen = use_len + add_len;
@@ -493,6 +496,7 @@
 
     memcpy(p, header, strlen(header));
     p += strlen(header);
+    *p++ = '\n';
     c = encode_buf;
 
     while (use_len) {
@@ -506,6 +510,7 @@
 
     memcpy(p, footer, strlen(footer));
     p += strlen(footer);
+    *p++ = '\n';
 
     *p++ = '\0';
     *olen = p - buf;