diff --git a/include/polarssl/rmd160.h b/include/polarssl/rmd160.h
index 5d6c6b7..c8fe119 100644
--- a/include/polarssl/rmd160.h
+++ b/include/polarssl/rmd160.h
@@ -52,6 +52,9 @@
     uint32_t total[2];          /*!< number of bytes processed  */
     uint32_t state[5];          /*!< intermediate digest state  */
     unsigned char buffer[64];   /*!< data block being processed */
+
+    unsigned char ipad[64];     /*!< HMAC: inner padding        */
+    unsigned char opad[64];     /*!< HMAC: outer padding        */
 }
 rmd160_context;
 
@@ -78,7 +81,7 @@
  * \param ctx      RMD160 context
  * \param output   RMD160 checksum result
  */
-void rmd160_finish( rmd160_context *ctx, unsigned char output[16] );
+void rmd160_finish( rmd160_context *ctx, unsigned char output[20] );
 
 /**
  * \brief          Output = RMD160( input buffer )
@@ -88,7 +91,7 @@
  * \param output   RMD160 checksum result
  */
 void rmd160( const unsigned char *input, size_t ilen,
-             unsigned char output[16] );
+             unsigned char output[20] );
 
 #if defined(POLARSSL_FS_IO)
 /**
@@ -99,9 +102,56 @@
  *
  * \return         0 if successful, or POLARSSL_ERR_RMD160_FILE_IO_ERROR
  */
-int rmd160_file( const char *path, unsigned char output[16] );
+int rmd160_file( const char *path, unsigned char output[20] );
 #endif /* POLARSSL_FS_IO */
 
+/**
+ * \brief          RMD160 HMAC context setup
+ *
+ * \param ctx      HMAC context to be initialized
+ * \param key      HMAC secret key
+ * \param keylen   length of the HMAC key
+ */
+void rmd160_hmac_starts( rmd160_context *ctx,
+                         const unsigned char *key, size_t keylen );
+
+/**
+ * \brief          RMD160 HMAC process buffer
+ *
+ * \param ctx      HMAC context
+ * \param input    buffer holding the  data
+ * \param ilen     length of the input data
+ */
+void rmd160_hmac_update( rmd160_context *ctx,
+                         const unsigned char *input, size_t ilen );
+
+/**
+ * \brief          RMD160 HMAC final digest
+ *
+ * \param ctx      HMAC context
+ * \param output   RMD160 HMAC checksum result
+ */
+void rmd160_hmac_finish( rmd160_context *ctx, unsigned char output[20] );
+
+/**
+ * \brief          RMD160 HMAC context reset
+ *
+ * \param ctx      HMAC context to be reset
+ */
+void rmd160_hmac_reset( rmd160_context *ctx );
+
+/**
+ * \brief          Output = HMAC-RMD160( hmac key, input buffer )
+ *
+ * \param key      HMAC secret key
+ * \param keylen   length of the HMAC key
+ * \param input    buffer holding the  data
+ * \param ilen     length of the input data
+ * \param output   HMAC-RMD160 result
+ */
+void rmd160_hmac( const unsigned char *key, size_t keylen,
+                  const unsigned char *input, size_t ilen,
+                  unsigned char output[20] );
 
 /**
  * \brief          Checkup routine
