+/* --- @rsa_deccreate@ --- *
+ *
+ * Arguments: @rsa_decctx *rd@ = pointer to an RSA decryption context
+ * @rsa_priv *rp@ = pointer to RSA private key
+ * @grand *r@ = pointer to random number source for blinding
+ *
+ * Returns: ---
+ *
+ * Use: Initializes an RSA decryption context. Keeping a context
+ * for several decryption or signing operations provides a minor
+ * performance benefit.
+ *
+ * The random number source may be null if blinding is not
+ * desired. This improves decryption speed, at the risk of
+ * permitting timing attacks.
+ */
+
+extern void rsa_deccreate(rsa_decctx */*rd*/, rsa_param */*rp*/,
+ grand */*r*/);
+
+/* --- @rsa_decdestroy@ --- *
+ *
+ * Arguments: @rsa_decctx *rd@ = pointer to an RSA decryption context
+ *
+ * Returns: ---
+ *
+ * Use: Destroys an RSA decryption context.
+ */
+
+extern void rsa_decdestroy(rsa_decctx */*rd*/);
+
+/* --- @rsa_dec@ --- *
+ *
+ * Arguments: @rsa_decctx *rd@ = pointer to RSA decryption context
+ * @mp *d@ = destination
+ * @mp *c@ = ciphertext message
+ *
+ * Returns: The recovered plaintext message.
+ *
+ * Use: Performs RSA decryption. This function takes advantage of
+ * knowledge of the key factors in order to speed up
+ * decryption. It also blinds the ciphertext prior to
+ * decryption and unblinds it afterwards to thwart timing
+ * attacks.
+ */
+
+extern mp *rsa_dec(rsa_decctx */*rd*/, mp */*d*/, mp */*c*/);
+