Changeset

10748:93293891709b

util.hashes: Fix output length of PBKDF2-HMAC-SHA256 Somehow it got SHA1's 20 byte output instead of the proper 32 = 256/8
author Kim Alvefur <zash@zash.se>
date Wed, 22 Apr 2020 21:38:36 +0200
parents 10747:63a89b876407
children 10749:abbdf72b0710
files spec/util_hashes_spec.lua util-src/hashes.c
diffstat 2 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/spec/util_hashes_spec.lua	Wed Apr 22 21:35:33 2020 +0200
+++ b/spec/util_hashes_spec.lua	Wed Apr 22 21:38:36 2020 +0200
@@ -35,3 +35,21 @@
 	end);
 end);
 
+describe("PBKDF2-HMAC-SHA256", function ()
+	it("test vector 1", function ()
+		local P = "password";
+		local S = "salt";
+		local c = 1
+		local DK = "120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17b";
+		assert.equal(DK, hex.to(hashes.pbkdf2_hmac_sha256(P, S, c)));
+	end);
+	it("test vector 2", function ()
+		local P = "password";
+		local S = "salt";
+		local c = 2
+		local DK = "ae4d0c95af6b46d32d0adff928f06dd02a303f8ef3c251dfd6e2d85a95474c43";
+		assert.equal(DK, hex.to(hashes.pbkdf2_hmac_sha256(P, S, c)));
+	end);
+end);
+
+
--- a/util-src/hashes.c	Wed Apr 22 21:35:33 2020 +0200
+++ b/util-src/hashes.c	Wed Apr 22 21:38:36 2020 +0200
@@ -129,7 +129,7 @@
 		return luaL_error(L, "PKCS5_PBKDF2_HMAC() failed");
 	}
 
-	lua_pushlstring(L, (char *)out, SHA_DIGEST_LENGTH);
+	lua_pushlstring(L, (char *)out, SHA256_DIGEST_LENGTH);
 	return 1;
 }