Add pk_context and associated functions
diff --git a/include/polarssl/pk.h b/include/polarssl/pk.h
index 169753d..16aac43 100644
--- a/include/polarssl/pk.h
+++ b/include/polarssl/pk.h
@@ -37,11 +37,40 @@
 typedef enum {
     POLARSSL_PK_NONE=0,
     POLARSSL_PK_RSA,
-    POLARSSL_PK_ECDSA,
     POLARSSL_PK_ECKEY,
     POLARSSL_PK_ECKEY_DH,
 } pk_type_t;
 
+/**
+ * \brief           Public key container
+ */
+typedef struct
+{
+    pk_type_t   type;   /**< Public key type */
+    void *      data;   /**< Public key data */
+} pk_context;
+
+/**
+ * \brief           Initialize a pk_context (as NONE)
+ */
+void pk_init( pk_context *ctx );
+
+/**
+ * \brief           Free a pk_context
+ */
+void pk_free( pk_context *ctx );
+
+/**
+ * \brief           Set a pk_context to a given type
+ *
+ * \param ctx       Context to initialize
+ * \param type      Type of key
+ *
+ * \return          O on success, -1 on memory allocation error
+ *                  TODO: use appropriate error constant
+ */
+int pk_set_type( pk_context *ctx, pk_type_t type );
+
 #ifdef __cplusplus
 }
 #endif