pem_read_buffer() already update use_len after header and footer are read
After header and footer are read, pem_read_buffer() is able to determine
the length of input data used. This allows calling functions to skip
this PEM bit if an error occurs during its parsing.
diff --git a/library/x509parse.c b/library/x509parse.c
index 131fccf..2541eec 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -1463,7 +1463,7 @@
buflen -= use_len;
buf += use_len;
}
- else if( ret != POLARSSL_ERR_PEM_NO_HEADER_PRESENT )
+ else if( ret != POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT )
{
pem_free( &pem );
@@ -1603,7 +1603,7 @@
len = pem.buflen;
pem_free( &pem );
}
- else if( ret != POLARSSL_ERR_PEM_NO_HEADER_PRESENT )
+ else if( ret != POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT )
{
pem_free( &pem );
return( ret );
@@ -2054,7 +2054,7 @@
"-----END RSA PRIVATE KEY-----",
key, pwd, pwdlen, &len );
- if( ret == POLARSSL_ERR_PEM_NO_HEADER_PRESENT )
+ if( ret == POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT )
{
ret = pem_read_buffer( &pem,
"-----BEGIN PRIVATE KEY-----",
@@ -2069,7 +2069,7 @@
*/
keylen = pem.buflen;
}
- else if( ret != POLARSSL_ERR_PEM_NO_HEADER_PRESENT )
+ else if( ret != POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT )
{
pem_free( &pem );
return( ret );
@@ -2314,7 +2314,7 @@
*/
keylen = pem.buflen;
}
- else if( ret != POLARSSL_ERR_PEM_NO_HEADER_PRESENT )
+ else if( ret != POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT )
{
pem_free( &pem );
return( ret );
@@ -2406,7 +2406,7 @@
*/
dhminlen = pem.buflen;
}
- else if( ret != POLARSSL_ERR_PEM_NO_HEADER_PRESENT )
+ else if( ret != POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT )
{
pem_free( &pem );
return( ret );