libidav/crypto.c

changeset 515
2465dd550bb5
parent 506
ceed7714846a
child 520
da2b0cc44e4f
equal deleted inserted replaced
514:4b84437b2167 515:2465dd550bb5
357 unsigned char hash[DAV_SHA256_DIGEST_LENGTH]; 357 unsigned char hash[DAV_SHA256_DIGEST_LENGTH];
358 SHA256((const unsigned char*)data, len, hash); 358 SHA256((const unsigned char*)data, len, hash);
359 return util_hexstr(hash, DAV_SHA256_DIGEST_LENGTH); 359 return util_hexstr(hash, DAV_SHA256_DIGEST_LENGTH);
360 } 360 }
361 361
362 DavKey* dav_pw2key(const char *password, const char *salt, int saltlen, int pwfunc, int enc) { 362 DavKey* dav_pw2key(const char *password, const unsigned char *salt, int saltlen, int pwfunc, int enc) {
363 if(!password) { 363 if(!password) {
364 return NULL; 364 return NULL;
365 } 365 }
366 size_t len = strlen(password); 366 size_t len = strlen(password);
367 if(len == 0) { 367 if(len == 0) {
777 unsigned char hash[DAV_SHA256_DIGEST_LENGTH]; 777 unsigned char hash[DAV_SHA256_DIGEST_LENGTH];
778 CC_SHA256((const unsigned char*)data, len, hash); 778 CC_SHA256((const unsigned char*)data, len, hash);
779 return util_hexstr(hash, DAV_SHA256_DIGEST_LENGTH); 779 return util_hexstr(hash, DAV_SHA256_DIGEST_LENGTH);
780 } 780 }
781 781
782 DavKey* dav_pw2key(const char *password, const char *salt, int saltlen, int pwfunc, int enc) { 782 DavKey* dav_pw2key(const char *password, const unsigned char *salt, int saltlen, int pwfunc, int enc) {
783 if(!password) { 783 if(!password) {
784 return NULL; 784 return NULL;
785 } 785 }
786 size_t len = strlen(password); 786 size_t len = strlen(password);
787 if(len == 0) { 787 if(len == 0) {
802 case DAV_PWFUNC_PBKDF2_SHA256: { 802 case DAV_PWFUNC_PBKDF2_SHA256: {
803 int result = CCKeyDerivationPBKDF( 803 int result = CCKeyDerivationPBKDF(
804 kCCPBKDF2, 804 kCCPBKDF2,
805 password, 805 password,
806 len, 806 len,
807 (uint8_t*)salt, 807 salt,
808 saltlen, 808 saltlen,
809 kCCPRFHmacAlgSHA256, 809 kCCPRFHmacAlgSHA256,
810 DAV_CRYPTO_ITERATION_COUNT, 810 DAV_CRYPTO_ITERATION_COUNT,
811 keydata, 811 keydata,
812 keylen); 812 keylen);
818 case DAV_PWFUNC_PBKDF2_SHA512: { 818 case DAV_PWFUNC_PBKDF2_SHA512: {
819 int result = CCKeyDerivationPBKDF( 819 int result = CCKeyDerivationPBKDF(
820 kCCPBKDF2, 820 kCCPBKDF2,
821 password, 821 password,
822 len, 822 len,
823 (uint8_t*)salt, 823 salt,
824 saltlen, 824 saltlen,
825 kCCPRFHmacAlgSHA512, 825 kCCPRFHmacAlgSHA512,
826 DAV_CRYPTO_ITERATION_COUNT, 826 DAV_CRYPTO_ITERATION_COUNT,
827 keydata, 827 keydata,
828 keylen); 828 keylen);

mercurial