Patchwork [U-Boot,v3,06/20] sha1: Use const where possible, and unsigned for input len

login
register
mail settings
Submitter Simon Glass
Date Dec. 6, 2012, 12:46 a.m.
Message ID <1354754807-21449-7-git-send-email-sjg@chromium.org>
Download mbox | patch
Permalink /patch/204077/
State Accepted, archived
Delegated to: Tom Rini
Headers show

Comments

Simon Glass - Dec. 6, 2012, 12:46 a.m.
In preparation for making the hash function common, we may as well use
const where we can. Also the input length cannot be negative, but may
be very large, so use unsigned.

Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v3: None
Changes in v2:
- Add new patch to adjust sha1 functions to use const/unsigned

 include/sha1.h |   26 +++++++++-----------------
 lib/sha1.c     |   19 +++++++++++--------
 2 files changed, 20 insertions(+), 25 deletions(-)

Patch

diff --git a/include/sha1.h b/include/sha1.h
index 734d1fb..da09dab 100644
--- a/include/sha1.h
+++ b/include/sha1.h
@@ -59,7 +59,8 @@  void sha1_starts( sha1_context *ctx );
  * \param input    buffer holding the  data
  * \param ilen	   length of the input data
  */
-void sha1_update( sha1_context *ctx, unsigned char *input, int ilen );
+void sha1_update(sha1_context *ctx, const unsigned char *input,
+		 unsigned int ilen);
 
 /**
  * \brief	   SHA-1 final digest
@@ -76,8 +77,8 @@  void sha1_finish( sha1_context *ctx, unsigned char output[20] );
  * \param ilen	   length of the input data
  * \param output   SHA-1 checksum result
  */
-void sha1_csum( unsigned char *input, int ilen,
-		unsigned char output[20] );
+void sha1_csum(const unsigned char *input, unsigned int ilen,
+		unsigned char *output);
 
 /**
  * \brief	   Output = SHA-1( input buffer ), with watchdog triggering
@@ -87,17 +88,8 @@  void sha1_csum( unsigned char *input, int ilen,
  * \param output   SHA-1 checksum result
  * \param chunk_sz watchdog triggering period (in bytes of input processed)
  */
-void sha1_csum_wd (unsigned char *input, int ilen,
-		unsigned char output[20], unsigned int chunk_sz);
-
-/**
- * \brief	   Output = SHA-1( file contents )
- *
- * \param path	   input file name
- * \param output   SHA-1 checksum result
- * \return	   0 if successful, or 1 if fopen failed
- */
-int sha1_file( char *path, unsigned char output[20] );
+void sha1_csum_wd(const unsigned char *input, unsigned int ilen,
+		unsigned char *output, unsigned int chunk_sz);
 
 /**
  * \brief	   Output = HMAC-SHA-1( input buffer, hmac key )
@@ -108,9 +100,9 @@  int sha1_file( char *path, unsigned char output[20] );
  * \param ilen	   length of the input data
  * \param output   HMAC-SHA-1 result
  */
-void sha1_hmac( unsigned char *key, int keylen,
-		unsigned char *input, int ilen,
-		unsigned char output[20] );
+void sha1_hmac(const unsigned char *key, int keylen,
+		const unsigned char *input, unsigned int ilen,
+		unsigned char *output);
 
 /**
  * \brief	   Checkup routine
diff --git a/lib/sha1.c b/lib/sha1.c
index da5bc16..a121224 100644
--- a/lib/sha1.c
+++ b/lib/sha1.c
@@ -73,7 +73,7 @@  void sha1_starts (sha1_context * ctx)
 	ctx->state[4] = 0xC3D2E1F0;
 }
 
-static void sha1_process (sha1_context * ctx, unsigned char data[64])
+static void sha1_process(sha1_context *ctx, const unsigned char data[64])
 {
 	unsigned long temp, W[16], A, B, C, D, E;
 
@@ -230,7 +230,8 @@  static void sha1_process (sha1_context * ctx, unsigned char data[64])
 /*
  * SHA-1 process buffer
  */
-void sha1_update (sha1_context * ctx, unsigned char *input, int ilen)
+void sha1_update(sha1_context *ctx, const unsigned char *input,
+		 unsigned int ilen)
 {
 	int fill;
 	unsigned long left;
@@ -305,7 +306,8 @@  void sha1_finish (sha1_context * ctx, unsigned char output[20])
 /*
  * Output = SHA-1( input buffer )
  */
-void sha1_csum (unsigned char *input, int ilen, unsigned char output[20])
+void sha1_csum(const unsigned char *input, unsigned int ilen,
+	       unsigned char *output)
 {
 	sha1_context ctx;
 
@@ -318,12 +320,12 @@  void sha1_csum (unsigned char *input, int ilen, unsigned char output[20])
  * Output = SHA-1( input buffer ). Trigger the watchdog every 'chunk_sz'
  * bytes of input processed.
  */
-void sha1_csum_wd (unsigned char *input, int ilen, unsigned char output[20],
-			unsigned int chunk_sz)
+void sha1_csum_wd(const unsigned char *input, unsigned int ilen,
+		  unsigned char *output, unsigned int chunk_sz)
 {
 	sha1_context ctx;
 #if defined(CONFIG_HW_WATCHDOG) || defined(CONFIG_WATCHDOG)
-	unsigned char *end, *curr;
+	const unsigned char *end, *curr;
 	int chunk;
 #endif
 
@@ -350,8 +352,9 @@  void sha1_csum_wd (unsigned char *input, int ilen, unsigned char output[20],
 /*
  * Output = HMAC-SHA-1( input buffer, hmac key )
  */
-void sha1_hmac (unsigned char *key, int keylen,
-		unsigned char *input, int ilen, unsigned char output[20])
+void sha1_hmac(const unsigned char *key, int keylen,
+	       const unsigned char *input, unsigned int ilen,
+	       unsigned char *output)
 {
 	int i;
 	sha1_context ctx;