-- HOBlockCipher.hs: abstraction for the different BlockCipher classes, plus crazy CFB mode stuff -- Copyright © 2016 Clint Adams -- This software is released under the terms of the Expat license. -- (See the LICENSE file). {-# LANGUAGE PackageImports #-} module Codec.Encryption.OpenPGP.Internal.HOBlockCipher ( HOBlockCipher(..) ) where import qualified "cryptonite" Crypto.Cipher.Types as CCT import qualified Data.ByteString as B class HOBlockCipher cipher where cipherInit :: B.ByteString -> Either String cipher cipherName :: cipher -> String cipherKeySize :: cipher -> CCT.KeySizeSpecifier blockSize :: cipher -> Int cfbEncrypt :: cipher -> B.ByteString -> B.ByteString -> Either String B.ByteString cfbDecrypt :: cipher -> B.ByteString -> B.ByteString -> Either String B.ByteString paddedCfbEncrypt :: cipher -> B.ByteString -> B.ByteString -> Either String B.ByteString paddedCfbEncrypt = cfbEncrypt paddedCfbDecrypt :: cipher -> B.ByteString -> B.ByteString -> Either String B.ByteString paddedCfbDecrypt = cfbDecrypt