Changeset 12502 for trunk/psLib/src/math/psMD5.c
- Timestamp:
- Mar 19, 2007, 3:13:54 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/math/psMD5.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/math/psMD5.c
r12430 r12502 6 6 #include <string.h> 7 7 8 #ifdef HAVE_SYS_MD5_H 9 // Seems to be the case for Solaris 10 #include <sys/md5.h> 11 #else 12 // Seems to be the case for most others 13 #include <openssl/md5.h> 14 #endif // HAVE_SYS_MD5_H 15 8 #include "md5.h" 16 9 17 10 #include "psAssert.h" … … 24 17 25 18 19 #define MD5_DIGEST_LENGTH 16 // Length of an MD5 digest, in bytes 20 26 21 psVector *psStringMD5(const char *string) 27 22 { 28 23 psVector *hash = psVectorAlloc(MD5_DIGEST_LENGTH, PS_TYPE_U8); // The resultant MD5 hash 29 if (!MD5((const unsigned char *)string, strlen(string), &hash->data.U8[0])) { 30 psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to generate md5 hash.\n"); 31 psFree(hash); 32 return NULL; 33 } 24 md5_state_t buffer; // Calculation buffer 25 md5_init(&buffer); 26 md5_append(&buffer, (psU8*)string, strlen(string)); 27 md5_finish(&buffer, &hash->data.U8[0]); 34 28 return hash; 35 29 } … … 40 34 41 35 psVector *hash = psVectorAlloc(MD5_DIGEST_LENGTH, PS_TYPE_U8); // The resultant MD5 hash 42 if (!MD5(vector->data.U8, vector->n * PSELEMTYPE_SIZEOF(vector->type.type), &hash->data.U8[0])) { 43 psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to generate md5 hash.\n"); 44 psFree(hash); 45 return NULL; 46 } 36 md5_state_t buffer; // Calculation buffer 37 md5_init(&buffer); 38 md5_append(&buffer, vector->data.U8, vector->n * PSELEMTYPE_SIZEOF(vector->type.type)); 39 md5_finish(&buffer, &hash->data.U8[0]); 47 40 return hash; 48 41 } … … 54 47 55 48 psVector *hash = psVectorAlloc(MD5_DIGEST_LENGTH, PS_TYPE_U8); // The resultant MD5 hash 49 md5_state_t buffer; // Calculation buffer 50 md5_init(&buffer); 56 51 if (!image->parent) { 57 52 // No parent means image is contiguous 58 if (!MD5(&image->data.U8[0][0], image->numCols * image->numRows * PSELEMTYPE_SIZEOF(image->type.type), 59 &hash->data.U8[0])) { 60 psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to generate md5 hash.\n"); 61 psFree(hash); 62 return NULL; 53 md5_append(&buffer, image->data.U8[0], 54 image->numCols * image->numRows * PSELEMTYPE_SIZEOF(image->type.type)); 55 } else { 56 for (int row = 0; row < image->numRows; row++) { 57 md5_append(&buffer, image->data.U8[row], 58 image->numCols * PSELEMTYPE_SIZEOF(image->type.type)); 63 59 } 64 } else {65 MD5_CTX ctx; // MD5 calculator66 MD5_Init(&ctx);67 for (int row = 0; row < image->numRows; row++) {68 MD5_Update(&ctx, image->data.U8[row], image->numCols * PSELEMTYPE_SIZEOF(image->type.type));69 }70 MD5_Final(&hash->data.U8[0], &ctx);71 60 } 61 md5_finish(&buffer, &hash->data.U8[0]); 72 62 73 63 return hash;
Note:
See TracChangeset
for help on using the changeset viewer.
