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