|
@@ -2,6 +2,11 @@
|
|
|
|
|
|
static unsigned char *generateHash(const char *string, size_t length) {
|
|
|
unsigned char *hash = malloc(SHA_DIGEST_LENGTH);
|
|
|
+ if (hash == NULL) {
|
|
|
+ puts("Couldn't allocate memory for hash!");
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+
|
|
|
SHA1((unsigned char*)string, length, hash);
|
|
|
|
|
|
return hash;
|
|
@@ -9,6 +14,10 @@ static unsigned char *generateHash(const char *string, size_t length) {
|
|
|
|
|
|
static char *hashToString(unsigned char *hash) {
|
|
|
char *string = malloc(2 * SHA_DIGEST_LENGTH + 1);
|
|
|
+ if (string == NULL) {
|
|
|
+ puts("Couldn't allocate memory for string!");
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
|
|
|
for(int i = 0; i < SHA_DIGEST_LENGTH; i++)
|
|
|
sprintf(string+(i*2), "%02x", hash[i]);
|
|
@@ -19,7 +28,17 @@ static char *hashToString(unsigned char *hash) {
|
|
|
char *getHash(const char *string) {
|
|
|
size_t length = strlen(string);
|
|
|
unsigned char *hash = generateHash(string, length);
|
|
|
+ if (hash == NULL) {
|
|
|
+ puts("Couldn't generate hash!");
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+
|
|
|
char *hashString = hashToString(hash);
|
|
|
+ if (hashString == NULL) {
|
|
|
+ puts("Couldn't convert hash to string!");
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+
|
|
|
free(hash);
|
|
|
|
|
|
return hashString;
|