openpgp-crypto-api-0.6: Data/OpenPGP/CryptoAPI/Blowfish128.hs
module Data.OpenPGP.CryptoAPI.Blowfish128 (Blowfish128) where
import Crypto.Classes (BlockCipher(..))
import Crypto.Types (BitLength)
import Crypto.Cipher.Blowfish (Blowfish)
import Data.Tagged (retag, Tagged(..))
import qualified Data.Serialize as Serialize
newtype Blowfish128 = Blowfish128 Blowfish
instance Serialize.Serialize Blowfish128 where
put (Blowfish128 b) = Serialize.put b
get = fmap Blowfish128 Serialize.get
instance BlockCipher Blowfish128 where
blockSize = retag (blockSize :: Tagged Blowfish BitLength)
encryptBlock (Blowfish128 k) = encryptBlock k
decryptBlock (Blowfish128 k) = decryptBlock k
buildKey = fmap Blowfish128 . buildKey
keyLength = Tagged 128