X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=crypt_common.c;h=3a44dbdddcd1cf59108ba110c8d83c4fac11d609;hb=d440a71683940a58747de6dc32643db452d9cf54;hp=c1e40d920ff425ccfdcc536c5fb69cd0422472ca;hpb=fb3fd5b4ddaf52e19303126ea1bacacc5954d808;p=paraslash.git diff --git a/crypt_common.c b/crypt_common.c index c1e40d92..3a44dbdd 100644 --- a/crypt_common.c +++ b/crypt_common.c @@ -135,7 +135,7 @@ int check_private_key_file(const char *file) return 1; } -void hash_to_asc(unsigned char *hash, char *asc) +void hash_to_asc(const unsigned char *hash, char *asc) { int i; const char hexchar[] = "0123456789abcdef"; @@ -147,7 +147,7 @@ void hash_to_asc(unsigned char *hash, char *asc) asc[2 * HASH_SIZE] = '\0'; } -int hash_compare(unsigned char *h1, unsigned char *h2) +int hash_compare(const unsigned char *h1, const unsigned char *h2) { int i; @@ -160,6 +160,31 @@ int hash_compare(unsigned char *h1, unsigned char *h2) return 0; } +void hash2_to_asc(const unsigned char *hash, char *asc) +{ + int i; + const char hexchar[] = "0123456789abcdef"; + + for (i = 0; i < HASH2_SIZE; i++) { + asc[2 * i] = hexchar[hash[i] >> 4]; + asc[2 * i + 1] = hexchar[hash[i] & 0xf]; + } + asc[2 * HASH2_SIZE] = '\0'; +} + +int hash2_compare(const unsigned char *h1, const unsigned char *h2) +{ + int i; + + for (i = 0; i < HASH2_SIZE; i++) { + if (h1[i] < h2[i]) + return -1; + if (h1[i] > h2[i]) + return 1; + } + return 0; +} + /** * Check header of an openssh private key and compute bignum offset. *