From d225c857d0f445a9842a197d9796925555e0ece5 Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Thu, 23 Aug 2018 12:24:31 -0400 Subject: Codec.Crypto.HKDF: Implement `hkdf` convenience function --- src/Codec/Crypto/HKDF.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/Codec/Crypto/HKDF.hs b/src/Codec/Crypto/HKDF.hs index bd2d7a5..ac86bcc 100644 --- a/src/Codec/Crypto/HKDF.hs +++ b/src/Codec/Crypto/HKDF.hs @@ -14,7 +14,7 @@ module Codec.Crypto.HKDF ( AssociatedData(AssociatedData), Salt(Salt), SecretKey(SecretKey), noSalt - , extract, expand + , hkdf, extract, expand ) where import qualified Data.ByteString as ByteString @@ -31,6 +31,10 @@ import BTLS.Types , SecretKey(SecretKey), noSalt ) +-- | Computes an HKDF as specified by RFC 5869. +hkdf :: Algorithm -> Salt -> AssociatedData -> Int -> SecretKey -> SecretKey +hkdf md salt info outLen = expand md info outLen . extract md salt + -- | Computes an HKDF pseudorandom key (PRK) as specified by RFC 5869. extract :: Algorithm -> Salt -> SecretKey -> SecretKey extract (Algorithm md) (Salt salt) (SecretKey secret) = -- cgit v1.2.3