diff options
Diffstat (limited to 'Swiften/StringCodecs/PBKDF2.cpp')
| -rw-r--r-- | Swiften/StringCodecs/PBKDF2.cpp | 20 | 
1 files changed, 20 insertions, 0 deletions
diff --git a/Swiften/StringCodecs/PBKDF2.cpp b/Swiften/StringCodecs/PBKDF2.cpp new file mode 100644 index 0000000..c09c10e --- /dev/null +++ b/Swiften/StringCodecs/PBKDF2.cpp @@ -0,0 +1,20 @@ +#include "Swiften/StringCodecs/PBKDF2.h" +#include "Swiften/StringCodecs/HMACSHA1.h" + +namespace Swift { + +ByteArray PBKDF2::encode(const ByteArray& password, const ByteArray& salt, int iterations) { +	ByteArray u = HMACSHA1::getResult(password, salt + ByteArray("\0\0\0\1", 4)); +	ByteArray result = u; +	int i = 1; +	while (i < iterations) { +		u = HMACSHA1::getResult(password, u); +		for (unsigned int j = 0; j < u.getSize(); ++j) { +			result[j] ^= u[j]; +		} +		++i; +	} +	return result; +} + +}  | 
 Swift