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); |