diff --git a/include/polarssl/pk.h b/include/polarssl/pk.h
index 43b9f09..8626b60 100644
--- a/include/polarssl/pk.h
+++ b/include/polarssl/pk.h
@@ -112,7 +112,6 @@
     const pk_info_t *   info;       /**< Public key informations */
     pk_type_t           type;       /**< Public key type (temporary) */
     void *              data;       /**< Public key data */
-    int                 dont_free;  /**< True if data must not be freed */
 } pk_context;
 
 /**
@@ -140,21 +139,6 @@
  */
 int pk_set_type( pk_context *ctx, pk_type_t type );
 
-#if defined(POLARSSL_RSA_C)
-/**
- * \brief           Wrap a RSA context in a PK context
- *
- * \param ctx       PK context to initiliaze
- * \param rsa       RSA context to use
- *
- * \note            The PK context must be freshly initialized.
- *
- * \return          O on success,
- *                  POLARSSL_ERR_PK_TYPE_MISMATCH if ctx was not empty.
- */
-int pk_wrap_rsa( pk_context *ctx, const rsa_context *rsa);
-#endif /* POLARSSL_RSA_C */
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/polarssl/rsa.h b/include/polarssl/rsa.h
index a513a77..8e52e7d 100644
--- a/include/polarssl/rsa.h
+++ b/include/polarssl/rsa.h
@@ -507,6 +507,17 @@
                            const unsigned char *sig );
 
 /**
+ * \brief          Copy the components of an RSA context
+ *
+ * \param dst      Destination context
+ * \param src      Source context
+ *
+ * \return         O on success,
+ *                 POLARSSL_ERR_MPI_MALLOC_FAILED on memory allocation failure
+ */
+int rsa_copy( rsa_context *dst, const rsa_context *src );
+
+/**
  * \brief          Free the components of an RSA key
  *
  * \param ctx      RSA Context to free
