Add secret key test

This commit is contained in:
Michiel Borkent 2023-02-15 13:30:09 +01:00
parent 9118c43da3
commit be426ee56d
3 changed files with 18 additions and 2 deletions

View file

@ -102,4 +102,4 @@ then
export BABASHKA_FEATURE_PRIORITY_MAP="${BABASHKA_FEATURE_PRIORITY_MAP:-false}"
fi
"$GRAALVM_HOME/bin/native-image" "${args[@]}"
"$GRAALVM_HOME/bin/native-image" "${args[@]}" "$@"

View file

@ -197,6 +197,7 @@
java.security.cert.X509Certificate
javax.crypto.Cipher
javax.crypto.Mac
javax.crypto.SecretKey
javax.crypto.SecretKeyFactory
javax.crypto.spec.GCMParameterSpec
javax.crypto.spec.PBEKeySpec

View file

@ -20,7 +20,6 @@
expected-sha (String. (.encode (java.util.Base64/getEncoder)
(hmac-sha-256 (.getBytes key-s) data))
"utf-8")]
(prn expected-sha)
(is (= expected-sha (bb '(do (ns net
(:import (javax.crypto Mac)
(javax.crypto.spec SecretKeySpec)))
@ -34,3 +33,19 @@
(String. (.encode (java.util.Base64/getEncoder)
(hmac-sha-256 (.getBytes key-s) data))
"utf-8"))))))))
(deftest secretkey-test
(is (= 32 (bb '(do (import 'javax.crypto.SecretKeyFactory)
(import 'javax.crypto.spec.PBEKeySpec)
(defn gen-secret-key
"Generate secret key based on a given token string.
Returns bytes array 256-bit length."
[^String secret-token]
(let [salt (.getBytes "abcde")
factory (SecretKeyFactory/getInstance "PBKDF2WithHmacSHA256")
spec (PBEKeySpec. (.toCharArray secret-token) salt 10000 256)
secret (.generateSecret factory spec)]
(count (.getEncoded secret))))
(gen-secret-key "foo"))))))