diff --git a/include/polarssl/x509.h b/include/polarssl/x509.h
index d7f1443..9f4fc9f 100644
--- a/include/polarssl/x509.h
+++ b/include/polarssl/x509.h
@@ -32,6 +32,7 @@
 #if defined(POLARSSL_X509_PARSE_C) || defined(POLARSSL_X509_WRITE_C)
 #include "asn1.h"
 #include "rsa.h"
+#include "ecp.h"
 #include "dhm.h"
 #include "md.h"
 #include "pk.h"
@@ -470,6 +471,59 @@
 
 /** \ingroup x509_module */
 /**
+ * \brief          Parse a private EC key
+ *
+ * \param eckey    EC key to be initialized
+ * \param key      input buffer
+ * \param keylen   size of the buffer
+ * \param pwd      password for decryption (optional)
+ * \param pwdlen   size of the password
+ *
+ * \return         0 if successful, or a specific X509 or PEM error code
+ */
+int x509parse_key_ec( ecp_keypair *eckey,
+                      const unsigned char *key, size_t keylen,
+                      const unsigned char *pwd, size_t pwdlen );
+
+/** \ingroup x509_module */
+/**
+ * \brief          Load and parse a private EC key
+ *
+ * \param eckey    EC key to be initialized
+ * \param path     filename to read the private key from
+ * \param password password to decrypt the file (can be NULL)
+ *
+ * \return         0 if successful, or a specific X509 or PEM error code
+ */
+int x509parse_keyfile_ec( ecp_keypair *eckey,
+                          const char *path, const char *password );
+
+/** \ingroup x509_module */
+/**
+ * \brief          Parse a public EC key
+ *
+ * \param eckey    EC key to be initialized
+ * \param key      input buffer
+ * \param keylen   size of the buffer
+ *
+ * \return         0 if successful, or a specific X509 or PEM error code
+ */
+int x509parse_public_key_ec( ecp_keypair *eckey,
+                             const unsigned char *key, size_t keylen );
+
+/** \ingroup x509_module */
+/**
+ * \brief          Load and parse a public EC key
+ *
+ * \param eckey    EC key to be initialized
+ * \param path     filename to read the private key from
+ *
+ * \return         0 if successful, or a specific X509 or PEM error code
+ */
+int x509parse_public_keyfile_ec( ecp_keypair *eckey, const char *path );
+
+/** \ingroup x509_module */
+/**
  * \brief          Parse DHM parameters
  *
  * \param dhm      DHM context to be initialized
