From: bdemsky Date: Fri, 2 Mar 2018 10:29:56 +0000 (-0800) Subject: Add key generation X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=commitdiff_plain;h=464b8559d386e200df16569f899f83e969115403;hp=dc3d0d786139301d25dc0cd91a77a6cd7fa6cc07 Add key generation --- diff --git a/version2/src/C/Crypto.cc b/version2/src/C/Crypto.cc index 3c66c90..e54d541 100644 --- a/version2/src/C/Crypto.cc +++ b/version2/src/C/Crypto.cc @@ -1 +1,13 @@ #include "Crypto.h" +#include "pbkdf2-sha256.h" + +AESKey::AESKey(Array *password, Array *salt, int iterationCount, int keyLength) { + key = new Array(keyLength); + PKCS5_PBKDF2_HMAC((unsigned char *) password->internalArray(), password->length(), + (unsigned char *) salt->internalArray(), salt->length(), + iterationCount, keyLength, (unsigned char *) key->internalArray()); +} + +AESKey::~AESKey() { + delete key; +} diff --git a/version2/src/C/Crypto.h b/version2/src/C/Crypto.h index 261e5a6..27c5b4c 100644 --- a/version2/src/C/Crypto.h +++ b/version2/src/C/Crypto.h @@ -5,8 +5,9 @@ class AESKey { public: AESKey(Array *password, Array *salt, int iterationCount, int keyLength); - + ~AESKey(); private: + Array * key; }; #endif diff --git a/version2/src/C/pbkdf2-sha256.cc b/version2/src/C/pbkdf2-sha256.cc index d014787..9e201f8 100644 --- a/version2/src/C/pbkdf2-sha256.cc +++ b/version2/src/C/pbkdf2-sha256.cc @@ -31,6 +31,7 @@ #include #include #include +#include "pbkdf2-sha256.h" typedef struct { unsigned long total[2]; /*!< number of bytes processed */ diff --git a/version2/src/C/pbkdf2-sha256.h b/version2/src/C/pbkdf2-sha256.h new file mode 100644 index 0000000..9a79572 --- /dev/null +++ b/version2/src/C/pbkdf2-sha256.h @@ -0,0 +1,9 @@ +#ifndef PBKDF2_SHA256_H +#define PBKDF2_SHA256_H + +void PKCS5_PBKDF2_HMAC(unsigned char *password, size_t plen, + unsigned char *salt, size_t slen, + const unsigned long iteration_count, const unsigned long key_length, + unsigned char *output); + +#endif