libidav/utils.c

changeset 149
509e9e1cbdcc
parent 148
f21ee22170bf
child 150
37fb12574acd
equal deleted inserted replaced
148:f21ee22170bf 149:509e9e1cbdcc
47 47
48 #include "utils.h" 48 #include "utils.h"
49 #include "crypto.h" 49 #include "crypto.h"
50 #include "webdav.h" 50 #include "webdav.h"
51 51
52 #ifdef __sun
53 #include <sha2.h>
54 #endif
52 55
53 time_t util_parse_creationdate(char *str) { 56 time_t util_parse_creationdate(char *str) {
54 // example: 2012-11-29T21:35:35Z 57 // example: 2012-11-29T21:35:35Z
55 if(!str) { 58 if(!str) {
56 return 0; 59 return 0;
451 free(buf); // only free the UcxBuffer struct 454 free(buf); // only free the UcxBuffer struct
452 return str; 455 return str;
453 } 456 }
454 457
455 void util_generate_key(DavKey *key, char *password) { 458 void util_generate_key(DavKey *key, char *password) {
456 //key->data = malloc(SHA256_DIGEST_LENGTH); 459 key->data = malloc(SHA256_DIGEST_LENGTH);
457 //key->length = SHA256_DIGEST_LENGTH; 460 key->length = SHA256_DIGEST_LENGTH;
458 key->type = DAV_KEY_AES256; 461 key->type = DAV_KEY_AES256;
459 462 #ifdef __sun
460 //SHA256_CTX sha256; 463 SHA256_CTX sha256;
461 //SHA256_Init(&sha256); 464 SHA256Init(&sha256);
462 //SHA256_Update(&sha256, password, strlen(password)); 465 SHA256Update(&sha256, password, strlen(password));
463 //SHA256_Final(key->data, &sha256); 466 SHA256Final(key->data, &sha256);
467 #else
468 SHA256_CTX sha256;
469 SHA256_Init(&sha256);
470 SHA256_Update(&sha256, password, strlen(password));
471 SHA256_Final(key->data, &sha256);
472 #endif
464 } 473 }
465 474
466 char* util_key_input(DavContext *ctx, DavKey *key) { 475 char* util_key_input(DavContext *ctx, DavKey *key) {
467 sstr_t prompt = ucx_sprintf("Enter password for key (%s): ", key->name); 476 sstr_t prompt = ucx_sprintf("Enter password for key (%s): ", key->name);
468 char *password = util_password_input(prompt.ptr); 477 char *password = util_password_input(prompt.ptr);

mercurial