30 lines
843 B
Haskell
30 lines
843 B
Haskell
-- |
|
|
-- Module : Crypto.Cipher.Camellia
|
|
-- License : BSD-style
|
|
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
|
|
-- Stability : experimental
|
|
-- Portability : Good
|
|
--
|
|
-- Camellia support. only 128 bit variant available for now.
|
|
|
|
module Crypto.Cipher.Camellia
|
|
( Camellia128
|
|
) where
|
|
|
|
import Crypto.Cipher.Camellia.Primitive
|
|
import Crypto.Cipher.Types
|
|
import Data.Byteable
|
|
|
|
-- | Camellia block cipher with 128 bit key
|
|
newtype Camellia128 = Camellia128 Camellia
|
|
|
|
instance Cipher Camellia128 where
|
|
cipherName _ = "Camellia128"
|
|
cipherKeySize _ = KeySizeFixed 16
|
|
cipherInit k = Camellia128 `fmap` initCamellia k
|
|
|
|
instance BlockCipher Camellia128 where
|
|
blockSize _ = 16
|
|
ecbEncrypt (Camellia128 key) ba = encrypt key (byteArrayToBS ba)
|
|
ecbDecrypt (Camellia128 key) ba = decrypt key (byteArrayToBS ba)
|