123456789101112131415161718192021222324252627282930 |
- #include <string.h>
- #include <openssl/sha.h>
- #include "password.h"
- void key_from_password(const char *a_password, char *a_key)
- {
- unsigned char digest[256 / 8] = {0}; // SHA 256 uses 256/8 bytes.
- int i;
- SHA256((const unsigned char *)a_password, strlen(a_password), digest);
- for (i = 0; i < 40872; i++) {
- SHA256(digest, 32, digest);
- }
- memcpy(a_key, digest, sizeof(digest));
- }
- void key_hash(const char *a_key, char *a_hash)
- {
- unsigned char digest[256 / 8];
- int i;
- memcpy(digest, a_key, sizeof(digest));
- for (i = 0; i < 30752; i++) {
- SHA256(digest, 32, digest);
- }
- memcpy(a_hash, digest, sizeof(digest));
- }
|