[Haskell-cafe] Re: Crypto-API is stabilizing
Thomas DuBuisson
thomas.dubuisson at gmail.com
Thu Sep 2 19:59:09 EDT 2010
On Thu, Sep 2, 2010 at 3:07 PM, Sebastian Fischer
<sebf at informatik.uni-kiel.de> wrote:
>> data Key = Key {
>> encrypt :: B.ByteString -> B.ByteString,
>> decrypt :: B.ByteString -> B.ByteString,
>> keyLength :: BitLength,
>> serialize :: B.ByteString}
>>
>> rsa :: RandomGen g => BitLength -> g -> ((Key,Key), g)
One reason against this is simply that all the other constructs
(block/stream cipher, hashes) are classes, it would be odd for there
to be a single exception. A better reason is the data structure has
no way to implement generateKeyPair.
> Why not use
>
> generateKeypair :: MonadRandom m => BitLength -> m (Maybe (p,p))
Because MonadRandom dictates mtl, and is heavier weight than a single
class. I was hoping to keep this agnostic (mtl is only required for
testing or benchmarks in crypto-api). If MR the more agreeable path
then I'll do it, though this means I use the unholy "fail" function.
Even if that's the case (and more people weighing in would help) I
still want to include Data.Crypto.Random and welcome comments.
Cheers,
Thomas
More information about the Haskell-Cafe
mailing list