{-# 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