diff --git a/ChangeLog b/ChangeLog
index 605019b..ba3afd4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,8 @@
    * Internally split up rsa_pkcs1_encrypt(), rsa_pkcs1_decrypt(),
      rsa_pkcs1_sign() and rsa_pkcs1_verify() to separate PKCS#1 v1.5 and
      PKCS#1 v2.1 functions
+   * Added support for custom labels when using rsa_rsaes_oaep_encrypt()
+     or rsa_rsaes_oaep_decrypt()
 
 Security
    * Removed further timing differences during SSL message decryption in
diff --git a/include/polarssl/rsa.h b/include/polarssl/rsa.h
index 9eda4b3..f9a0220 100644
--- a/include/polarssl/rsa.h
+++ b/include/polarssl/rsa.h
@@ -309,6 +309,8 @@
  * \param f_rng    RNG function (Needed for padding and PKCS#1 v2.1 encoding)
  * \param p_rng    RNG parameter
  * \param mode     RSA_PUBLIC or RSA_PRIVATE
+ * \param label    buffer holding the custom label to use
+ * \param label_len contains the label length
  * \param ilen     contains the plaintext length
  * \param input    buffer holding the data to be encrypted
  * \param output   buffer that will hold the ciphertext
@@ -321,7 +323,9 @@
 int rsa_rsaes_oaep_encrypt( rsa_context *ctx,
                             int (*f_rng)(void *, unsigned char *, size_t),
                             void *p_rng,
-                            int mode, size_t ilen,
+                            int mode,
+                            const unsigned char *label, size_t label_len,
+                            size_t ilen,
                             const unsigned char *input,
                             unsigned char *output );
 
@@ -376,6 +380,8 @@
  *
  * \param ctx      RSA context
  * \param mode     RSA_PUBLIC or RSA_PRIVATE
+ * \param label    buffer holding the custom label to use
+ * \param label_len contains the label length
  * \param olen     will contain the plaintext length
  * \param input    buffer holding the encrypted data
  * \param output   buffer that will hold the plaintext
@@ -388,7 +394,9 @@
  *                 an error is thrown.
  */
 int rsa_rsaes_oaep_decrypt( rsa_context *ctx,
-                            int mode, size_t *olen,
+                            int mode,
+                            const unsigned char *label, size_t label_len,
+                            size_t *olen,
                             const unsigned char *input,
                             unsigned char *output,
                             size_t output_max_len );
diff --git a/library/rsa.c b/library/rsa.c
index d41928f..cc14d8e 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -368,7 +368,9 @@
 int rsa_rsaes_oaep_encrypt( rsa_context *ctx,
                             int (*f_rng)(void *, unsigned char *, size_t),
                             void *p_rng,
-                            int mode, size_t ilen,
+                            int mode,
+                            const unsigned char *label, size_t label_len,
+                            size_t ilen,
                             const unsigned char *input,
                             unsigned char *output )
 {
@@ -406,7 +408,7 @@
 
     // Construct DB
     //
-    md( md_info, p, 0, p );
+    md( md_info, label, label_len, p );
     p += hlen;
     p += olen - 2 * hlen - 2 - ilen;
     *p++ = 1;
@@ -525,7 +527,9 @@
  * Implementation of the PKCS#1 v2.1 RSAES-OAEP-DECRYPT function
  */
 int rsa_rsaes_oaep_decrypt( rsa_context *ctx,
-                            int mode, size_t *olen,
+                            int mode, 
+                            const unsigned char *label, size_t label_len,
+                            size_t *olen,
                             const unsigned char *input,
                             unsigned char *output,
                             size_t output_max_len )
@@ -569,7 +573,7 @@
 
     // Generate lHash
     //
-    md( md_info, lhash, 0, lhash );
+    md( md_info, label, label_len, lhash );
 
     // seed: Apply seedMask to maskedSeed
     //
