diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-11-21 00:14:56 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-11-21 00:14:56 (GMT) |
commit | fe007f1afdaf29c7ce0302da2984b5611503a822 (patch) | |
tree | 87ff3bcc79c4628ab6d8fd03db9a2ca8659d5b6a /Swiften/StringCodecs/PBKDF2.cpp | |
parent | 4417a63a1acdf5f6e78655e8ae377bc24d5d8f02 (diff) | |
download | swift-contrib-fe007f1afdaf29c7ce0302da2984b5611503a822.zip swift-contrib-fe007f1afdaf29c7ce0302da2984b5611503a822.tar.bz2 |
Added PBKDF2 encoding.
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; +} + +} |