packages feed

cryptoconditions-0.2.2.2: test/TestSupport.hs

{-# LANGUAGE OverloadedStrings #-}

module TestSupport where

import Crypto.Error
import Crypto.PubKey.Ed25519

import Network.CryptoConditions

import Data.ByteString


umsg :: ByteString
umsg = "\240\159\141\186\\uD83C\\uDF7A"


ed2Alice, ed2Bob, ed2Eve :: Condition
ed2Alice = ed25519Condition pkAlice
ed2Bob = ed25519Condition pkBob
ed2Eve = ed25519Condition pkEve


ed2BobF, ed2EveF :: Condition
ed2BobF = fulfillEd25519 pkBob skBob umsg ed2Bob
ed2EveF = fulfillEd25519 pkEve skEve umsg ed2Eve


pkAlice, pkBob :: PublicKey
pkAlice = toPublic skAlice
pkBob = toPublic skBob
pkEve = toPublic skEve


skAlice, skBob, skEve :: SecretKey
skAlice = toSecret "B\SOH\NAK 6P\151\165|\156\144of-B\174\245h\166\188\135\158\SO\195\b)\253\168\f\221\205\RS"
skBob = toSecret "C\SOH\NAK 6P\151\165|\156\144of-B\174\245h\166\188\135\158\SO\195\b)\253\168\f\221\205\RS"
skEve = toSecret "D\SOH\NAK 6P\151\165|\156\144of-B\174\245h\166\188\135\158\SO\195\b)\253\168\f\221\205\RS"


toSecret :: ByteString -> SecretKey
toSecret = throwCryptoError . secretKey


sigAlice, sigBob, sigEve :: Signature
sigAlice = sign skAlice pkAlice umsg
sigBob = sign skBob pkBob umsg
sigEve = sign skEve pkEve umsg


toPub :: ByteString -> PublicKey
toPub = throwCryptoError . publicKey


toSig :: ByteString -> Signature
toSig = throwCryptoError . signature