diff options
author | kaotisk <kaotisk@arching-kaos.org> | 2025-04-27 06:57:51 +0300 |
---|---|---|
committer | kaotisk <kaotisk@arching-kaos.org> | 2025-04-27 06:57:51 +0300 |
commit | ac6fbacce69ad8d53099f1e6ab922c2e4bd6f9cc (patch) | |
tree | 1e2306bfaad26233f805467b52b956b3dcd431f4 /c_implementation/src/akfs_sha512sum.c | |
parent | 698c607b8cad8ef22eee3ef4b196cbe648070a05 (diff) | |
download | arching-kaos-tools-ac6fbacce69ad8d53099f1e6ab922c2e4bd6f9cc.tar.gz arching-kaos-tools-ac6fbacce69ad8d53099f1e6ab922c2e4bd6f9cc.tar.bz2 arching-kaos-tools-ac6fbacce69ad8d53099f1e6ab922c2e4bd6f9cc.zip |
Updates.. better file names
Diffstat (limited to 'c_implementation/src/akfs_sha512sum.c')
-rw-r--r-- | c_implementation/src/akfs_sha512sum.c | 218 |
1 files changed, 0 insertions, 218 deletions
diff --git a/c_implementation/src/akfs_sha512sum.c b/c_implementation/src/akfs_sha512sum.c deleted file mode 100644 index 6db6397..0000000 --- a/c_implementation/src/akfs_sha512sum.c +++ /dev/null @@ -1,218 +0,0 @@ -#include <libakfs.h> -#include <stdlib.h> -#include <assert.h> - -void ak_fs_sha512sum_init(sha512sum *hash) -{ - for (int i = 0; i < 8; ++i) - { - hash->sum[i] = 0x0; - } -} - -bool ak_fs_sha512sum_compare(const sha512sum* a, const sha512sum* b) -{ - for ( int i = 0; i < 8; ++i ) - { - if ( a->sum[i] != b->sum[i] ) return false; - } - return true; -} - -void ak_fs_sha512sum_reset_struct(sha512sum* m) -{ - for (size_t i = 0; i < 8; ++i) - { - m->sum[i] = 0; - } -} - -void ak_fs_sha512sum_init_avail(sha512sum** m, size_t s) -{ - sha512sum *ptr = NULL; - for (ptr = *m; ptr < *m+s; ++m) - { - ak_fs_sha512sum_reset_struct(ptr); - } -} - -char* ak_fs_sha512sum_struct_read_as_string(const sha512sum *ptr) -{ - char *str = malloc(129*sizeof(char)); - ak_fs_sha512sum_struct_to_string(ptr, str); - return str; -} - -bool ak_fs_sha512sum_is_null(const sha512sum *h) -{ - sha512sum n; - ak_fs_sha512sum_init(&n); - return ak_fs_sha512sum_compare(h,&n); -} - -int ak_fs_sha512sum_string_to_struct(const char* str, sha512sum* hash) -{ - if ( ak_fs_verify_input_is_hash(str) ) - { - for (size_t l = 0; l < 8; ++l) - { - hash->sum[l]=0; - } - unsigned int i = 0; - unsigned int j = 0; - unsigned int k = 4; - while ( str[i] != '\0' ) - { - assert( i < 128 && "Length exceeded limit"); - if ( i % 16 == 0 ) j = i / 16; - switch (str[i]) - { - case 0x30: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x0; - break; - case 0x31: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x1; - break; - case 0x32: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x2; - break; - case 0x33: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x3; - break; - case 0x34: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x4; - break; - case 0x35: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x5; - break; - case 0x36: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x6; - break; - case 0x37: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x7; - break; - case 0x38: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x8; - break; - case 0x39: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0x9; - break; - case 0x61: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0xa; - break; - case 0x62: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0xb; - break; - case 0x63: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0xc; - break; - case 0x64: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0xd; - break; - case 0x65: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0xe; - break; - case 0x66: - hash->sum[j] = hash->sum[j] << k; - hash->sum[j] += 0xf; - break; - default: - assert(0 && "Character out of range"); - } - i++; - } - if ( i != 128 ) - { - return 1; - } - return 0; - } - else - { - return 0; - } -} - -void ak_fs_sha512sum_struct_to_string(const sha512sum* hash, char* str) -{ - int count = 0; - sha512sum lhash = *hash; - for (size_t i = 0; i < 8; ++i) - { - for (size_t j = 0; j < 16; ++j) - { - long unsigned first = lhash.sum[i]/0xfffffffffffffff; - switch(first){ - case 0: - str[count] = '0'; - break; - case 1: - str[count] = '1'; - break; - case 2: - str[count] = '2'; - break; - case 3: - str[count] = '3'; - break; - case 4: - str[count] = '4'; - break; - case 5: - str[count] = '5'; - break; - case 6: - str[count] = '6'; - break; - case 7: - str[count] = '7'; - break; - case 8: - str[count] = '8'; - break; - case 9: - str[count] = '9'; - break; - case 0xa: - str[count] = 'a'; - break; - case 0xb: - str[count] = 'b'; - break; - case 0xc: - str[count] = 'c'; - break; - case 0xd: - str[count] = 'd'; - break; - case 0xe: - str[count] = 'e'; - break; - case 0xf: - str[count] = 'f'; - break; - default: - assert(0 && "Should be unreachable"); - } - count++; - lhash.sum[i] = lhash.sum[i] << 4; - } - } - str[128] = '\0'; -} - |