diff options
author | Matt Johnston <matt@ucc.asn.au> | 2005-07-08 11:30:54 +0000 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2005-07-08 11:30:54 +0000 |
commit | 109b87d2a31167727cc0c5616ea05f9224ad7d13 (patch) | |
tree | ca1be6d4b9d587dd156776287c2f4816a6a7131b /signkey.c | |
parent | 975b94c5f2f5bbb8aa455445ffb26092d01568e5 (diff) |
Change the format of for loops, gcc4 produces incorrect binaries with
the previous code.
--HG--
extra : convert_revision : 560fb575d3fa53924774c7db897e304b35ba07e3
Diffstat (limited to 'signkey.c')
-rw-r--r-- | signkey.c | 22 |
1 files changed, 12 insertions, 10 deletions
@@ -279,7 +279,7 @@ static char * sign_key_md5_fingerprint(unsigned char* keyblob, char * ret; hash_state hs; unsigned char hash[MD5_HASH_SIZE]; - unsigned int h, i; + unsigned int i; unsigned int buflen; md5_init(&hs); @@ -296,10 +296,11 @@ static char * sign_key_md5_fingerprint(unsigned char* keyblob, memset(ret, 'Z', buflen); strcpy(ret, "md5 "); - for (i = 4, h = 0; i < buflen; i+=3, h++) { - ret[i] = hexdig(hash[h] >> 4); - ret[i+1] = hexdig(hash[h] & 0x0f); - ret[i+2] = ':'; + for (i = 0; i < MD5_HASH_SIZE; i++) { + unsigned int pos = 4 + i*3; + ret[pos] = hexdig(hash[i] >> 4); + ret[pos+1] = hexdig(hash[i] & 0x0f); + ret[pos+2] = ':'; } ret[buflen-1] = 0x0; @@ -313,7 +314,7 @@ static char * sign_key_sha1_fingerprint(unsigned char* keyblob, char * ret; hash_state hs; unsigned char hash[SHA1_HASH_SIZE]; - unsigned int h, i; + unsigned int i; unsigned int buflen; sha1_init(&hs); @@ -329,10 +330,11 @@ static char * sign_key_sha1_fingerprint(unsigned char* keyblob, strcpy(ret, "sha1 "); - for (i = 5, h = 0; i < buflen; i+=3, h++) { - ret[i] = hexdig(hash[h] >> 4); - ret[i+1] = hexdig(hash[h] & 0x0f); - ret[i+2] = ':'; + for (i = 0; i < SHA1_HASH_SIZE; i++) { + unsigned int pos = 5 + 3*i; + ret[pos] = hexdig(hash[i] >> 4); + ret[pos+1] = hexdig(hash[i] & 0x0f); + ret[pos+2] = ':'; } ret[buflen-1] = 0x0; |