crypton-1.0.2: tests/KAT_Twofish.hs
module KAT_Twofish (tests) where
import BlockCipher
import Imports
import Crypto.Cipher.Twofish
import qualified Data.ByteString as B
vectors_twofish128 =
[ KAT_ECB
(B.replicate 16 0x00)
(B.replicate 16 0x00)
( B.pack
[ 0x9F
, 0x58
, 0x9F
, 0x5C
, 0xF6
, 0x12
, 0x2C
, 0x32
, 0xB6
, 0xBF
, 0xEC
, 0x2F
, 0x2A
, 0xE8
, 0xC3
, 0x5A
]
)
, KAT_ECB
( B.pack
[ 0x9F
, 0x58
, 0x9F
, 0x5C
, 0xF6
, 0x12
, 0x2C
, 0x32
, 0xB6
, 0xBF
, 0xEC
, 0x2F
, 0x2A
, 0xE8
, 0xC3
, 0x5A
]
)
( B.pack
[ 0xD4
, 0x91
, 0xDB
, 0x16
, 0xE7
, 0xB1
, 0xC3
, 0x9E
, 0x86
, 0xCB
, 0x08
, 0x6B
, 0x78
, 0x9F
, 0x54
, 0x19
]
)
( B.pack
[ 0x01
, 0x9F
, 0x98
, 0x09
, 0xDE
, 0x17
, 0x11
, 0x85
, 0x8F
, 0xAA
, 0xC3
, 0xA3
, 0xBA
, 0x20
, 0xFB
, 0xC3
]
)
]
vectors_twofish192 =
[ KAT_ECB
( B.pack
[ 0x01
, 0x23
, 0x45
, 0x67
, 0x89
, 0xAB
, 0xCD
, 0xEF
, 0xFE
, 0xDC
, 0xBA
, 0x98
, 0x76
, 0x54
, 0x32
, 0x10
, 0x00
, 0x11
, 0x22
, 0x33
, 0x44
, 0x55
, 0x66
, 0x77
]
)
( B.pack
[ 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
]
)
( B.pack
[ 0xCF
, 0xD1
, 0xD2
, 0xE5
, 0xA9
, 0xBE
, 0x9C
, 0xDF
, 0x50
, 0x1F
, 0x13
, 0xB8
, 0x92
, 0xBD
, 0x22
, 0x48
]
)
, KAT_ECB
( B.pack
[ 0x88
, 0xB2
, 0xB2
, 0x70
, 0x6B
, 0x10
, 0x5E
, 0x36
, 0xB4
, 0x46
, 0xBB
, 0x6D
, 0x73
, 0x1A
, 0x1E
, 0x88
, 0xEF
, 0xA7
, 0x1F
, 0x78
, 0x89
, 0x65
, 0xBD
, 0x44
]
)
( B.pack
[ 0x39
, 0xDA
, 0x69
, 0xD6
, 0xBA
, 0x49
, 0x97
, 0xD5
, 0x85
, 0xB6
, 0xDC
, 0x07
, 0x3C
, 0xA3
, 0x41
, 0xB2
]
)
( B.pack
[ 0x18
, 0x2B
, 0x02
, 0xD8
, 0x14
, 0x97
, 0xEA
, 0x45
, 0xF9
, 0xDA
, 0xAC
, 0xDC
, 0x29
, 0x19
, 0x3A
, 0x65
]
)
]
vectors_twofish256 =
[ KAT_ECB
( B.pack
[ 0x01
, 0x23
, 0x45
, 0x67
, 0x89
, 0xAB
, 0xCD
, 0xEF
, 0xFE
, 0xDC
, 0xBA
, 0x98
, 0x76
, 0x54
, 0x32
, 0x10
, 0x00
, 0x11
, 0x22
, 0x33
, 0x44
, 0x55
, 0x66
, 0x77
, 0x88
, 0x99
, 0xAA
, 0xBB
, 0xCC
, 0xDD
, 0xEE
, 0xFF
]
)
( B.pack
[ 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
, 0x00
]
)
( B.pack
[ 0x37
, 0x52
, 0x7B
, 0xE0
, 0x05
, 0x23
, 0x34
, 0xB8
, 0x9F
, 0x0C
, 0xFC
, 0xCA
, 0xE8
, 0x7C
, 0xFA
, 0x20
]
)
, KAT_ECB
( B.pack
[ 0xD4
, 0x3B
, 0xB7
, 0x55
, 0x6E
, 0xA3
, 0x2E
, 0x46
, 0xF2
, 0xA2
, 0x82
, 0xB7
, 0xD4
, 0x5B
, 0x4E
, 0x0D
, 0x57
, 0xFF
, 0x73
, 0x9D
, 0x4D
, 0xC9
, 0x2C
, 0x1B
, 0xD7
, 0xFC
, 0x01
, 0x70
, 0x0C
, 0xC8
, 0x21
, 0x6F
]
)
( B.pack
[ 0x90
, 0xAF
, 0xE9
, 0x1B
, 0xB2
, 0x88
, 0x54
, 0x4F
, 0x2C
, 0x32
, 0xDC
, 0x23
, 0x9B
, 0x26
, 0x35
, 0xE6
]
)
( B.pack
[ 0x6C
, 0xB4
, 0x56
, 0x1C
, 0x40
, 0xBF
, 0x0A
, 0x97
, 0x05
, 0x93
, 0x1C
, 0xB6
, 0xD4
, 0x08
, 0xE7
, 0xFA
]
)
]
kats128 = defaultKATs{kat_ECB = vectors_twofish128}
kats192 = defaultKATs{kat_ECB = vectors_twofish192}
kats256 = defaultKATs{kat_ECB = vectors_twofish256}
tests =
testGroup
"Twofish"
[ testBlockCipher kats128 (undefined :: Twofish128)
, testBlockCipher kats192 (undefined :: Twofish192)
, testBlockCipher kats256 (undefined :: Twofish256)
]