- Cleaned up header documentation

diff --git a/include/polarssl/bignum.h b/include/polarssl/bignum.h
index d02520d..a635f26 100644
--- a/include/polarssl/bignum.h
+++ b/include/polarssl/bignum.h
@@ -90,6 +90,9 @@
 /**
  * \brief          Enlarge to the specified number of limbs
  *
+ * \param X        MPI to grow
+ * \param nblimbs  The target number of limbs
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -98,6 +101,9 @@
 /**
  * \brief          Copy the contents of Y into X
  *
+ * \param X        Destination MPI
+ * \param Y        Source MPI
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -105,12 +111,18 @@
 
 /**
  * \brief          Swap the contents of X and Y
+ *
+ * \param X        First MPI value
+ * \param Y        Second MPI value
  */
 void mpi_swap( mpi *X, mpi *Y );
 
 /**
  * \brief          Set value from integer
  *
+ * \param X        MPI to set
+ * \param z        Value to use
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -118,25 +130,31 @@
 
 /**
  * \brief          Return the number of least significant bits
+ *
+ * \param X        MPI to use
  */
 int mpi_lsb( mpi *X );
 
 /**
  * \brief          Return the number of most significant bits
+ *
+ * \param X        MPI to use
  */
 int mpi_msb( mpi *X );
 
 /**
  * \brief          Return the total size in bytes
+ *
+ * \param X        MPI to use
  */
 int mpi_size( mpi *X );
 
 /**
  * \brief          Import from an ASCII string
  *
- * \param X        destination mpi
- * \param radix    input numeric base
- * \param s        null-terminated string buffer
+ * \param X        Destination MPI
+ * \param radix    Input numeric base
+ * \param s        Null-terminated string buffer
  *
  * \return         0 if successful, or an POLARSSL_ERR_MPI_XXX error code
  */
@@ -145,10 +163,10 @@
 /**
  * \brief          Export into an ASCII string
  *
- * \param X        source mpi
- * \param radix    output numeric base
- * \param s        string buffer
- * \param slen     string buffer size
+ * \param X        Source MPI
+ * \param radix    Output numeric base
+ * \param s        String buffer
+ * \param slen     String buffer size
  *
  * \return         0 if successful, or an POLARSSL_ERR_MPI_XXX error code
  *
@@ -160,21 +178,21 @@
 /**
  * \brief          Read X from an opened file
  *
- * \param X        destination mpi
- * \param radix    input numeric base
- * \param fin      input file handle
+ * \param X        Destination MPI
+ * \param radix    Input numeric base
+ * \param fin      Input file handle
  *
  * \return         0 if successful, or an POLARSSL_ERR_MPI_XXX error code
  */
 int mpi_read_file( mpi *X, int radix, FILE *fin );
 
 /**
- * \brief          Write X into an opened file, or stdout
+ * \brief          Write X into an opened file, or stdout if fout is NULL
  *
- * \param p        prefix, can be NULL
- * \param X        source mpi
- * \param radix    output numeric base
- * \param fout     output file handle
+ * \param p        Prefix, can be NULL
+ * \param X        Source MPI
+ * \param radix    Output numeric base
+ * \param fout     Output file handle (can be NULL)
  *
  * \return         0 if successful, or an POLARSSL_ERR_MPI_XXX error code
  *
@@ -185,9 +203,9 @@
 /**
  * \brief          Import X from unsigned binary data, big endian
  *
- * \param X        destination mpi
- * \param buf      input buffer
- * \param buflen   input buffer size
+ * \param X        Destination MPI
+ * \param buf      Input buffer
+ * \param buflen   Input buffer size
  *
  * \return         0 if successful,
  *                 1 if memory allocation failed
@@ -197,21 +215,21 @@
 /**
  * \brief          Export X into unsigned binary data, big endian
  *
- * \param X        source mpi
- * \param buf      output buffer
- * \param buflen   output buffer size
+ * \param X        Source MPI
+ * \param buf      Output buffer
+ * \param buflen   Output buffer size
  *
  * \return         0 if successful,
  *                 POLARSSL_ERR_MPI_BUFFER_TOO_SMALL if buf isn't large enough
- *
- * \note           Call this function with *buflen = 0 to obtain the
- *                 minimum required buffer size in *buflen.
  */
 int mpi_write_binary( mpi *X, unsigned char *buf, int buflen );
 
 /**
  * \brief          Left-shift: X <<= count
  *
+ * \param X        MPI to shift
+ * \param count    Amount to shift
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -220,6 +238,9 @@
 /**
  * \brief          Right-shift: X >>= count
  *
+ * \param X        MPI to shift
+ * \param count    Amount to shift
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -228,6 +249,9 @@
 /**
  * \brief          Compare unsigned values
  *
+ * \param X        Left-hand MPI
+ * \param Y        Right-hand MPI
+ *
  * \return         1 if |X| is greater than |Y|,
  *                -1 if |X| is lesser  than |Y| or
  *                 0 if |X| is equal to |Y|
@@ -237,6 +261,9 @@
 /**
  * \brief          Compare signed values
  *
+ * \param X        Left-hand MPI
+ * \param Y        Right-hand MPI
+ *
  * \return         1 if X is greater than Y,
  *                -1 if X is lesser  than Y or
  *                 0 if X is equal to Y
@@ -246,6 +273,9 @@
 /**
  * \brief          Compare signed values
  *
+ * \param X        Left-hand MPI
+ * \param z        The integer value to compare to
+ *
  * \return         1 if X is greater than z,
  *                -1 if X is lesser  than z or
  *                 0 if X is equal to z
@@ -255,6 +285,10 @@
 /**
  * \brief          Unsigned addition: X = |A| + |B|
  *
+ * \param X        Destination MPI
+ * \param A        Left-hand MPI
+ * \param B        Right-hand MPI
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -263,6 +297,10 @@
 /**
  * \brief          Unsigned substraction: X = |A| - |B|
  *
+ * \param X        Destination MPI
+ * \param A        Left-hand MPI
+ * \param B        Right-hand MPI
+ *
  * \return         0 if successful,
  *                 POLARSSL_ERR_MPI_NEGATIVE_VALUE if B is greater than A
  */
@@ -271,6 +309,10 @@
 /**
  * \brief          Signed addition: X = A + B
  *
+ * \param X        Destination MPI
+ * \param A        Left-hand MPI
+ * \param B        Right-hand MPI
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -279,6 +321,10 @@
 /**
  * \brief          Signed substraction: X = A - B
  *
+ * \param X        Destination MPI
+ * \param A        Left-hand MPI
+ * \param B        Right-hand MPI
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -287,6 +333,10 @@
 /**
  * \brief          Signed addition: X = A + b
  *
+ * \param X        Destination MPI
+ * \param A        Left-hand MPI
+ * \param b        The integer value to add
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -295,6 +345,10 @@
 /**
  * \brief          Signed substraction: X = A - b
  *
+ * \param X        Destination MPI
+ * \param A        Left-hand MPI
+ * \param b        The integer value to subtract
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -303,6 +357,10 @@
 /**
  * \brief          Baseline multiplication: X = A * B
  *
+ * \param X        Destination MPI
+ * \param A        Left-hand MPI
+ * \param B        Right-hand MPI
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -313,6 +371,10 @@
  *                 Note: b is an unsigned integer type, thus
  *                 Negative values of b are ignored.
  *
+ * \param X        Destination MPI
+ * \param A        Left-hand MPI
+ * \param b        The integer value to multiply with
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -321,6 +383,11 @@
 /**
  * \brief          Division by mpi: A = Q * B + R
  *
+ * \param Q        Destination MPI for the quotient
+ * \param R        Destination MPI for the rest value
+ * \param A        Left-hand MPI
+ * \param B        Right-hand MPI
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed,
  *                 POLARSSL_ERR_MPI_DIVISION_BY_ZERO if B == 0
@@ -332,6 +399,11 @@
 /**
  * \brief          Division by int: A = Q * b + R
  *
+ * \param Q        Destination MPI for the quotient
+ * \param R        Destination MPI for the rest value
+ * \param A        Left-hand MPI
+ * \param b        Integer to divide by
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed,
  *                 POLARSSL_ERR_MPI_DIVISION_BY_ZERO if b == 0
@@ -343,6 +415,10 @@
 /**
  * \brief          Modulo: R = A mod B
  *
+ * \param R        Destination MPI for the rest value
+ * \param A        Left-hand MPI
+ * \param B        Right-hand MPI
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed,
  *                 POLARSSL_ERR_MPI_DIVISION_BY_ZERO if B == 0,
@@ -353,6 +429,10 @@
 /**
  * \brief          Modulo: r = A mod b
  *
+ * \param a        Destination t_int
+ * \param A        Left-hand MPI
+ * \param b        Integer to divide by
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed,
  *                 POLARSSL_ERR_MPI_DIVISION_BY_ZERO if b == 0,
@@ -363,6 +443,12 @@
 /**
  * \brief          Sliding-window exponentiation: X = A^E mod N
  *
+ * \param X        Destination MPI 
+ * \param A        Left-hand MPI
+ * \param E        Exponent MPI
+ * \param N        Modular MPI
+ * \param _RR      Speed-up MPI used for recalculations
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed,
  *                 POLARSSL_ERR_MPI_BAD_INPUT_DATA if N is negative or even
@@ -376,6 +462,10 @@
 /**
  * \brief          Greatest common divisor: G = gcd(A, B)
  *
+ * \param G        Destination MPI
+ * \param A        Left-hand MPI
+ * \param B        Right-hand MPI
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed
  */
@@ -384,16 +474,24 @@
 /**
  * \brief          Modular inverse: X = A^-1 mod N
  *
+ * \param X        Destination MPI
+ * \param A        Left-hand MPI
+ * \param N        Right-hand MPI
+ *
  * \return         0 if successful,
  *                 1 if memory allocation failed,
  *                 POLARSSL_ERR_MPI_BAD_INPUT_DATA if N is negative or nil
- *                 POLARSSL_ERR_MPI_NOT_ACCEPTABLE if A has no inverse mod N
+                   POLARSSL_ERR_MPI_NOT_ACCEPTABLE if A has no inverse mod N
  */
 int mpi_inv_mod( mpi *X, mpi *A, mpi *N );
 
 /**
  * \brief          Miller-Rabin primality test
  *
+ * \param X        MPI to check
+ * \param f_rng    RNG function
+ * \param p_rng    RNG parameter
+ *
  * \return         0 if successful (probably prime),
  *                 1 if memory allocation failed,
  *                 POLARSSL_ERR_MPI_NOT_ACCEPTABLE if X is not prime
@@ -403,9 +501,9 @@
 /**
  * \brief          Prime number generation
  *
- * \param X        destination mpi
- * \param nbits    required size of X in bits
- * \param dh_flag  if 1, then (X-1)/2 will be prime too
+ * \param X        Destination MPI
+ * \param nbits    Required size of X in bits
+ * \param dh_flag  If 1, then (X-1)/2 will be prime too
  * \param f_rng    RNG function
  * \param p_rng    RNG parameter
  *
diff --git a/include/polarssl/config.h b/include/polarssl/config.h
index 329b53d..785e54c 100644
--- a/include/polarssl/config.h
+++ b/include/polarssl/config.h
@@ -130,9 +130,12 @@
 
 /*
  * Module:  library/camellia.c
- * Caller:
+ * Caller:  library/ssl_tls.c
  *
  * This module enabled the following cipher suites:
+ *      SSL_RSA_CAMELLIA_128_SHA
+ *      SSL_RSA_CAMELLIA_256_SHA
+ *      SSL_EDH_RSA_CAMELLIA_256_SHA
  */
 #define POLARSSL_CAMELLIA_C
 
@@ -172,6 +175,7 @@
  * This module enables the following ciphersuites:
  *      SSL_EDH_RSA_DES_168_SHA
  *      SSL_EDH_RSA_AES_256_SHA
+ *      SSL_EDH_RSA_CAMELLIA_256_SHA
  */
 #define POLARSSL_DHM_C
 
@@ -189,8 +193,8 @@
  *
  * Uncomment to enable support for (rare) MD2-signed X.509 certs.
  *
-#define POLARSSL_MD2_C
  */
+#define POLARSSL_MD2_C
 
 /*
  * Module:  library/md4.c
@@ -198,8 +202,8 @@
  *
  * Uncomment to enable support for (rare) MD4-signed X.509 certs.
  *
-#define POLARSSL_MD4_C
  */
+#define POLARSSL_MD4_C
 
 /*
  * Module:  library/md5.c
diff --git a/include/polarssl/havege.h b/include/polarssl/havege.h
index 1f6daa2..6ac2039 100644
--- a/include/polarssl/havege.h
+++ b/include/polarssl/havege.h
@@ -49,7 +49,7 @@
 /**
  * \brief          HAVEGE rand function
  *
- * \param rng_st   points to an HAVEGE state
+ * \param p_rng    A HAVEGE state
  *
  * \return         A random int
  */
diff --git a/include/polarssl/net.h b/include/polarssl/net.h
index d07f0e3..f6a28af 100644
--- a/include/polarssl/net.h
+++ b/include/polarssl/net.h
@@ -40,6 +40,10 @@
 /**
  * \brief          Initiate a TCP connection with host:port
  *
+ * \param fd       Socket to use
+ * \param host     Host to connect to
+ * \param port     Port to connect to
+ *
  * \return         0 if successful, or one of:
  *                      POLARSSL_ERR_NET_SOCKET_FAILED,
  *                      POLARSSL_ERR_NET_UNKNOWN_HOST,
@@ -51,6 +55,10 @@
  * \brief          Create a listening socket on bind_ip:port.
  *                 If bind_ip == NULL, all interfaces are binded.
  *
+ * \param fd       Socket to use
+ * \param bind_ip  IP to bind to, can be NULL
+ * \param port     Port number to use
+ *
  * \return         0 if successful, or one of:
  *                      POLARSSL_ERR_NET_SOCKET_FAILED,
  *                      POLARSSL_ERR_NET_BIND_FAILED,
@@ -59,17 +67,23 @@
 int net_bind( int *fd, char *bind_ip, int port );
 
 /**
- * \brief          Accept a connection from a remote client
+ * \brief           Accept a connection from a remote client
  *
- * \return         0 if successful, POLARSSL_ERR_NET_ACCEPT_FAILED, or
- *                 POLARSSL_ERR_NET_WOULD_BLOCK is bind_fd was set to
- *                 non-blocking and accept() is blocking.
+ * \param bind_fd   Relevant socket
+ * \param client_fd Will contain the connected client socket
+ * \param client_ip Will contain the client IP address
+ *
+ * \return          0 if successful, POLARSSL_ERR_NET_ACCEPT_FAILED, or
+ *                  POLARSSL_ERR_NET_WOULD_BLOCK is bind_fd was set to
+ *                  non-blocking and accept() is blocking.
  */
 int net_accept( int bind_fd, int *client_fd, void *client_ip );
 
 /**
  * \brief          Set the socket blocking
  *
+ * \param fd       Socket to set
+ *
  * \return         0 if successful, or a non-zero error code
  */
 int net_set_block( int fd );
@@ -77,6 +91,8 @@
 /**
  * \brief          Set the socket non-blocking
  *
+ * \param fd       Socket to set
+ *
  * \return         0 if successful, or a non-zero error code
  */
 int net_set_nonblock( int fd );
@@ -84,33 +100,45 @@
 /**
  * \brief          Portable usleep helper
  *
+ * \param usec     Amount of microseconds to sleep
+ *
  * \note           Real amount of time slept will not be less than
  *                 select()'s timeout granularity (typically, 10ms).
  */
 void net_usleep( unsigned long usec );
 
 /**
- * \brief          Read at most 'len' characters. len is updated to
- *                 reflect the actual number of characters read.
+ * \brief          Read at most 'len' characters. If no error occurs,
+ *                 the actual amount read is returned.
+ *
+ * \param ctx      Socket
+ * \param buf      The buffer to write to
+ * \param len      Maximum length of the buffer
  *
  * \return         This function returns the number of bytes received,
- *                 or a negative error code; POLARSSL_ERR_NET_TRY_AGAIN
+ *                 or a non-zero error code; POLARSSL_ERR_NET_TRY_AGAIN
  *                 indicates read() is blocking.
  */
 int net_recv( void *ctx, unsigned char *buf, int len );
 
 /**
- * \brief          Write at most 'len' characters. len is updated to
- *                 reflect the number of characters _not_ written.
+ * \brief          Write at most 'len' characters. If no error occurs,
+ *                 the actual amount read is returned.
+ *
+ * \param ctx      Socket
+ * \param buf      The buffer to write to
+ * \param len      Maximum length of the buffer
  *
  * \return         This function returns the number of bytes sent,
- *                 or a negative error code; POLARSSL_ERR_NET_TRY_AGAIN
+ *                 or a non-zero error code; POLARSSL_ERR_NET_TRY_AGAIN
  *                 indicates write() is blocking.
  */
 int net_send( void *ctx, unsigned char *buf, int len );
 
 /**
  * \brief          Gracefully shutdown the connection
+ *
+ * \param fd       The socket to close
  */
 void net_close( int fd );
 
diff --git a/include/polarssl/padlock.h b/include/polarssl/padlock.h
index 692b792..fc8941c 100644
--- a/include/polarssl/padlock.h
+++ b/include/polarssl/padlock.h
@@ -44,6 +44,8 @@
 /**
  * \brief          PadLock detection routine
  *
+ * \param          The feature to detect
+ *
  * \return         1 if CPU has support for the feature, 0 otherwise
  */
 int padlock_supports( int feature );
diff --git a/include/polarssl/rsa.h b/include/polarssl/rsa.h
index 49a04b3..2e8e40c 100644
--- a/include/polarssl/rsa.h
+++ b/include/polarssl/rsa.h
@@ -24,6 +24,9 @@
 
 #include "polarssl/bignum.h"
 
+/*
+ * RSA Error codes
+ */
 #define POLARSSL_ERR_RSA_BAD_INPUT_DATA                    0x0400
 #define POLARSSL_ERR_RSA_INVALID_PADDING                   0x0410
 #define POLARSSL_ERR_RSA_KEY_GEN_FAILED                    0x0420
@@ -56,27 +59,27 @@
 #define RSA_CRYPT       2
 
 #define ASN1_STR_CONSTRUCTED_SEQUENCE	"\x30"
-#define ASN1_STR_NULL			"\x05"
-#define ASN1_STR_OID			"\x06"
-#define ASN1_STR_OCTET_STRING		"\x04"
+#define ASN1_STR_NULL			        "\x05"
+#define ASN1_STR_OID			        "\x06"
+#define ASN1_STR_OCTET_STRING		    "\x04"
 
-#define OID_DIGEST_ALG_MDX	"\x2A\x86\x48\x86\xF7\x0D\x02\x00"
-#define OID_HASH_ALG_SHA1	"\x2b\x0e\x03\x02\x1a"
-#define OID_HASH_ALG_SHA2X	"\x60\x86\x48\x01\x65\x03\x04\x02\x00"
+#define OID_DIGEST_ALG_MDX	        "\x2A\x86\x48\x86\xF7\x0D\x02\x00"
+#define OID_HASH_ALG_SHA1	        "\x2b\x0e\x03\x02\x1a"
+#define OID_HASH_ALG_SHA2X	        "\x60\x86\x48\x01\x65\x03\x04\x02\x00"
 
-#define OID_ISO_MEMBER_BODIES	"\x2a"
-#define OID_ISO_IDENTIFIED_ORG	"\x2b"
+#define OID_ISO_MEMBER_BODIES	    "\x2a"
+#define OID_ISO_IDENTIFIED_ORG	    "\x2b"
 
 /*
  * ISO Member bodies OID parts
  */
-#define OID_COUNTRY_US		"\x86\x48"
-#define OID_RSA_DATA_SECURITY	"\x86\xf7\x0d"
+#define OID_COUNTRY_US		        "\x86\x48"
+#define OID_RSA_DATA_SECURITY	    "\x86\xf7\x0d"
 
 /*
  * ISO Identified organization OID parts
  */
-#define OID_OIW_SECSIG_SHA1	"\x0e\x03\x02\x1a"
+#define OID_OIW_SECSIG_SHA1	        "\x0e\x03\x02\x1a"
 
 /*
  * DigestInfo ::= SEQUENCE {
@@ -87,30 +90,30 @@
  *
  * Digest ::= OCTET STRING
  */
-#define ASN1_HASH_MDX					\
-(							\
+#define ASN1_HASH_MDX					        \
+(							                    \
     ASN1_STR_CONSTRUCTED_SEQUENCE "\x20"		\
       ASN1_STR_CONSTRUCTED_SEQUENCE "\x0C"		\
-        ASN1_STR_OID "\x08"				\
-	  OID_DIGEST_ALG_MDX				\
-	ASN1_STR_NULL "\x00"				\
-      ASN1_STR_OCTET_STRING "\x10"			\
+        ASN1_STR_OID "\x08"				        \
+	  OID_DIGEST_ALG_MDX				        \
+	ASN1_STR_NULL "\x00"				        \
+      ASN1_STR_OCTET_STRING "\x10"			    \
 )
 
-#define ASN1_HASH_SHA1					\
+#define ASN1_HASH_SHA1					        \
     ASN1_STR_CONSTRUCTED_SEQUENCE "\x21"		\
       ASN1_STR_CONSTRUCTED_SEQUENCE "\x09"		\
-        ASN1_STR_OID "\x05"				\
-	  OID_HASH_ALG_SHA1				\
-        ASN1_STR_NULL "\x00"				\
+        ASN1_STR_OID "\x05"				        \
+	  OID_HASH_ALG_SHA1				            \
+        ASN1_STR_NULL "\x00"				    \
       ASN1_STR_OCTET_STRING "\x14"
 
-#define ASN1_HASH_SHA2X					\
+#define ASN1_HASH_SHA2X					        \
     ASN1_STR_CONSTRUCTED_SEQUENCE "\x11"		\
       ASN1_STR_CONSTRUCTED_SEQUENCE "\x0d"		\
-        ASN1_STR_OID "\x09"				\
-	  OID_HASH_ALG_SHA2X				\
-        ASN1_STR_NULL "\x00"				\
+        ASN1_STR_OID "\x09"				        \
+	  OID_HASH_ALG_SHA2X				        \
+        ASN1_STR_NULL "\x00"				    \
       ASN1_STR_OCTET_STRING "\x00"
 
 /**
@@ -274,7 +277,7 @@
                        int mode, int *olen,
                        unsigned char *input,
                        unsigned char *output,
-		       int output_max_len);
+		               int output_max_len );
 
 /**
  * \brief          Do a private RSA to sign a message digest
@@ -324,6 +327,8 @@
 
 /**
  * \brief          Free the components of an RSA key
+ *
+ * \param ctx      RSA Context to free
  */
 void rsa_free( rsa_context *ctx );
 
diff --git a/include/polarssl/ssl.h b/include/polarssl/ssl.h
index 313d125..0b4dae8 100644
--- a/include/polarssl/ssl.h
+++ b/include/polarssl/ssl.h
@@ -31,6 +31,9 @@
 #include "polarssl/sha1.h"
 #include "polarssl/x509.h"
 
+/*
+ * SSL Error codes
+ */
 #define POLARSSL_ERR_SSL_FEATURE_UNAVAILABLE               0x1000
 #define POLARSSL_ERR_SSL_BAD_INPUT_DATA                    0x1800
 #define POLARSSL_ERR_SSL_INVALID_MAC                       0x2000
@@ -94,8 +97,8 @@
 #define SSL_RSA_AES_256_SHA             53
 #define SSL_EDH_RSA_AES_256_SHA         57
 
-#define SSL_RSA_CAMELLIA_128_SHA	0x41
-#define SSL_RSA_CAMELLIA_256_SHA	0x84
+#define SSL_RSA_CAMELLIA_128_SHA	    0x41
+#define SSL_RSA_CAMELLIA_256_SHA	    0x84
 #define SSL_EDH_RSA_CAMELLIA_256_SHA	0x88
 
 /*
@@ -502,11 +505,15 @@
 
 /**
  * \brief          Notify the peer that the connection is being closed
+ *
+ * \param ssl      SSL context
  */
 int ssl_close_notify( ssl_context *ssl );
 
 /**
  * \brief          Free an SSL context
+ *
+ * \param ssl      SSL context
  */
 void ssl_free( ssl_context *ssl );
 
diff --git a/include/polarssl/timing.h b/include/polarssl/timing.h
index 1bc7351..203ee9a 100644
--- a/include/polarssl/timing.h
+++ b/include/polarssl/timing.h
@@ -58,6 +58,8 @@
 
 /**
  * \brief          Sleep for a certain amount of time
+ *
+ * \param          Delay in milliseconds
  */
 void m_sleep( int milliseconds );
 
diff --git a/include/polarssl/x509.h b/include/polarssl/x509.h
index 1215e79..2f6d9c9 100644
--- a/include/polarssl/x509.h
+++ b/include/polarssl/x509.h
@@ -24,12 +24,21 @@
 
 #include "polarssl/rsa.h"
 
+/*
+ * ASN1 Error codes
+ *
+ * These error codes will be OR'ed to X509 error codes for
+ * higher error granularity.
+ */
 #define POLARSSL_ERR_ASN1_OUT_OF_DATA                      0x0014
 #define POLARSSL_ERR_ASN1_UNEXPECTED_TAG                   0x0016
 #define POLARSSL_ERR_ASN1_INVALID_LENGTH                   0x0018
 #define POLARSSL_ERR_ASN1_LENGTH_MISMATCH                  0x001A
 #define POLARSSL_ERR_ASN1_INVALID_DATA                     0x001C
 
+/*
+ * X509 Error codes
+ */
 #define POLARSSL_ERR_X509_FEATURE_UNAVAILABLE              0x0020
 #define POLARSSL_ERR_X509_CERT_INVALID_PEM                 0x0040
 #define POLARSSL_ERR_X509_CERT_INVALID_FORMAT              0x0060
@@ -56,6 +65,9 @@
 #define POLARSSL_ERR_X509_POINT_ERROR                      0x0300
 #define POLARSSL_ERR_X509_VALUE_TO_LENGTH                  0x0320
 
+/*
+ * X509 Verify codes
+ */
 #define BADCERT_EXPIRED                 1
 #define BADCERT_REVOKED                 2
 #define BADCERT_CN_MISMATCH             4
@@ -321,23 +333,51 @@
 /**
  * \brief          Store the certificate DN in printable form into buf;
  *                 no more than size characters will be written.
+ *
+ * \param buf      Buffer to write to
+ * \param size     Maximum size of buffer
+ * \param dn       The X509 name to represent
+ *
+ * \return         The amount of data written to the buffer, or -1 in
+ *                 case of an error.
  */
 int x509parse_dn_gets( char *buf, size_t size, x509_name *dn );
 
 /**
  * \brief          Returns an informational string about the
  *                 certificate.
+ *
+ * \param buf      Buffer to write to
+ * \param size     Maximum size of buffer
+ * \param prefix   A line prefix
+ * \param crt      The X509 certificate to represent
+ *
+ * \return         The amount of data written to the buffer, or -1 in
+ *                 case of an error.
  */
 int x509parse_cert_info( char *buf, size_t size, char *prefix, x509_cert *crt );
 
 /**
  * \brief          Returns an informational string about the
  *                 CRL.
+ *
+ * \param buf      Buffer to write to
+ * \param size     Maximum size of buffer
+ * \param prefix   A line prefix
+ * \param crt      The X509 CRL to represent
+ *
+ * \return         The amount of data written to the buffer, or -1 in
+ *                 case of an error.
  */
 int x509parse_crl_info( char *buf, size_t size, char *prefix, x509_crl *crl );
 
 /**
- * \brief          Return 0 if the x509_time is still valid,
+ * \brief          Check a given x509_time against the system time and check
+ *                 if it is valid.
+ *
+ * \param time     x509_time to check
+ *
+ * \return         Return 0 if the x509_time is still valid,
  *                 or 1 otherwise.
  */
 int x509parse_time_expired( x509_time *time );
@@ -369,11 +409,15 @@
 
 /**
  * \brief          Unallocate all certificate data
+ *
+ * \param crt      Certificate chain to free
  */
 void x509_free( x509_cert *crt );
 
 /**
  * \brief          Unallocate all CRL data
+ *
+ * \param crt      CRL chain to free
  */
 void x509_crl_free( x509_crl *crl );