ssl_parse_certificate() now calls x509parse_crt_der() directly
(cherry picked from commit 1922a4e6aade7b1d685af19d4d9339ddb5c02859)
diff --git a/include/polarssl/x509.h b/include/polarssl/x509.h
index ed02ad9..df382ea 100644
--- a/include/polarssl/x509.h
+++ b/include/polarssl/x509.h
@@ -329,6 +329,18 @@
/** \ingroup x509_module */
/**
+ * \brief Parse a single DER formatted certificate and add it
+ * to the chained list.
+ *
+ * \param chain points to the start of the chain
+ * \param buf buffer holding the certificate DER data
+ * \param buflen size of the buffer
+ *
+ * \return 0 if successful, or a specific X509 or PEM error code
+ */
+int x509parse_crt_der( x509_cert *chain, const unsigned char *buf, size_t buflen );
+
+/**
* \brief Parse one or more certificates and add them
* to the chained list. Parses permissively. If some
* certificates can be parsed, the result is the number
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 8d68eb6..81c21d9 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -2115,8 +2115,8 @@
return( POLARSSL_ERR_SSL_BAD_HS_CERTIFICATE );
}
- ret = x509parse_crt( ssl->session_negotiate->peer_cert, ssl->in_msg + i,
- n );
+ ret = x509parse_crt_der( ssl->session_negotiate->peer_cert,
+ ssl->in_msg + i, n );
if( ret != 0 )
{
SSL_DEBUG_RET( 1, " x509parse_crt", ret );