Codec 1.0

Dominic Steinitz dominic.steinitz at blueyonder.co.uk
Wed Jan 12 14:44:38 EST 2005


Simon Marlow wrote:
> On 11 January 2005 20:59, Dominic Steinitz wrote:
> 
> 
>>As an interim proposal, how about I put
>>
>>Data.LargeWord
> 
> 
> What's a LargeWord?
> 
For example, the keys for for encryption algorithms are words of 128, 
192, 256 bits. They are composed from smaller words.

type Word128 = LargeKey Word64 Word64
type Word192 = LargeKey Word64 Word128
type Word256 = LargeKey Word64 Word192

k16= 0xF0E1D2C3B4A5968778695A4B3C2D1E0F :: Word128
e16 = Blowfish.encrypt k16 d

ad   = 0xF0E1D2C3B4A5968778695A4B3C2D1E0F :: Word128
ak24 = 0xF0E1D2C3B4A5968778695A4B3C2D1E0FF0E1D2C3B4A59687 :: Word192
ae24' = AES.encrypt ak24 ad

Taken from http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf.

aes4key32 =
    0x603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4 
:: Word256
aes4iv16 = 0x000102030405060708090a0b0c0d0e0f :: Word128

aes4plaintext =
    [0x6bc1bee22e409f96e93d7e117393172a,
     0xae2d8a571e03ac9c9eb76fac45af8e51,
     0x30c81c46a35ce411e5fbc1191a0a52ef,
     0xf69f2445df4f9b17ad2b417be66c3710] :: [Word128]

aes4ciphertext' =
    cbc AES.encrypt aes4iv16 aes4key32 $
    pkcs5 $
    concat $
    map toOctets aes4plaintext

> 
>>Data.Digest.MD5
>>Data.Digest.SHA-1
> 
> 
> That will have to be SHA1 or SHA_1.
> 

A slip of the pen. It was and will be SHA1.

> 
>>Codec.Encryption.RSA
>>Codec.Encryption.RSA.EMEOAEP
>>Codec.Encryption.RSA.MGF
>>Codec.Encryption.RSA.NumberTheory
>>Codec.Encryption.DES
>>Codec.Encryption.AES
>>Codec.Encryption.Blowfish
>>Codec.Encryption.Modes
>>Codec.Encryption.Padding
>>Codec.Encryption.PKCS8
>>Codec.Encryption.X509
>>Codec.ASN1
>>Codec.ASN1.BER
>>Codec.ASN1.TLV
>>Codec.Utils
>>
>>into a package called Crypto?
> 
> 
> Looks fine!
> 
> Cheers,
> 	Simon
> 
> 



More information about the Libraries mailing list