diff --git a/include/polarssl/entropy.h b/include/polarssl/entropy.h
index ed97dca..2d7c211 100644
--- a/include/polarssl/entropy.h
+++ b/include/polarssl/entropy.h
@@ -66,7 +66,7 @@
  * \return          0 if no critical failures occurred,
  *                  POLARSSL_ERR_ENTROPY_SOURCE_FAILED otherwise
  */
-typedef int (*f_source_ptr)(void *, unsigned char *, size_t, size_t *);
+typedef int (*f_source_ptr)(void *data, unsigned char *output, size_t len, size_t *olen);
 
 /**
  * \brief           Entropy source state
diff --git a/include/polarssl/pkcs12.h b/include/polarssl/pkcs12.h
index 9a45771..7bbf393 100644
--- a/include/polarssl/pkcs12.h
+++ b/include/polarssl/pkcs12.h
@@ -38,9 +38,9 @@
 #define POLARSSL_ERR_PKCS12_PBE_INVALID_FORMAT             -0x1E80  /**< PBE ASN.1 data not as expected. */
 #define POLARSSL_ERR_PKCS12_PASSWORD_MISMATCH              -0x1E00  /**< Given private key password does not allow for correct decryption. */
 
-#define PKCS12_DERIVE_KEY       1   /*< encryption/decryption key */
-#define PKCS12_DERIVE_IV        2   /*< initialization vector     */
-#define PKCS12_DERIVE_MAC_KEY   3   /*< integrity / MAC key       */
+#define PKCS12_DERIVE_KEY       1   /**< encryption/decryption key */
+#define PKCS12_DERIVE_IV        2   /**< initialization vector     */
+#define PKCS12_DERIVE_MAC_KEY   3   /**< integrity / MAC key       */
 
 #define PKCS12_PBE_DECRYPT      0
 #define PKCS12_PBE_ENCRYPT      1
diff --git a/include/polarssl/pkcs5.h b/include/polarssl/pkcs5.h
index b8c742e..f83c8cd 100644
--- a/include/polarssl/pkcs5.h
+++ b/include/polarssl/pkcs5.h
@@ -77,7 +77,7 @@
  * \param pbe_params the ASN.1 algorithm parameters
  * \param mode       either PKCS5_DECRYPT or PKCS5_ENCRYPT
  * \param pwd        password to use when generating key
- * \param plen       length of password
+ * \param pwdlen     length of password
  * \param data       data to process
  * \param datalen    length of data
  * \param output     output buffer
diff --git a/include/polarssl/rsa.h b/include/polarssl/rsa.h
index 1159b94..6533548 100644
--- a/include/polarssl/rsa.h
+++ b/include/polarssl/rsa.h
@@ -580,7 +580,6 @@
 
 /**
  * \brief          Perform a PKCS#1 v2.1 PSS verification (RSASSA-PSS-VERIFY)
- * \brief          Do a public RSA and check the message digest
  *
  * \param ctx      points to an RSA public key
  * \param f_rng    RNG function (Only needed for RSA_PRIVATE)
diff --git a/include/polarssl/ssl.h b/include/polarssl/ssl.h
index dd3521d..02f9dab 100644
--- a/include/polarssl/ssl.h
+++ b/include/polarssl/ssl.h
@@ -802,9 +802,9 @@
  * \param ssl      SSL context
  * \param own_cert own public certificate chain
  * \param rsa_key  alternate implementation private RSA key
- * \param rsa_decrypt_func  alternate implementation of \c rsa_pkcs1_decrypt()
- * \param rsa_sign_func     alternate implementation of \c rsa_pkcs1_sign()
- * \param rsa_key_len_func  function returning length of RSA key in bytes
+ * \param rsa_decrypt  alternate implementation of \c rsa_pkcs1_decrypt()
+ * \param rsa_sign     alternate implementation of \c rsa_pkcs1_sign()
+ * \param rsa_key_len  function returning length of RSA key in bytes
  */
 void ssl_set_own_cert_alt( ssl_context *ssl, x509_cert *own_cert,
                            void *rsa_key,
