summaryrefslogtreecommitdiffhomepage
path: root/Crypto.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Crypto.hs')
-rw-r--r--Crypto.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/Crypto.hs b/Crypto.hs
index 2fe27e0..af3ad17 100644
--- a/Crypto.hs
+++ b/Crypto.hs
@@ -16,6 +16,7 @@ import Crypto.Error
import Crypto.Random.Entropy
import Data.ByteArray (convert)
import qualified Data.ByteString as B
+import qualified Data.Semigroup as Sem
dummySignature :: Signature
dummySignature = OtherSignature (Val mempty)
@@ -78,10 +79,13 @@ mkSigVerifier (PublicKey (Val pk)) =
CryptoPassed pk' -> SigVerifier 1 (Ed25519.verify pk')
CryptoFailed _ -> mempty
+instance Sem.Semigroup SigVerifier where
+ SigVerifier na a <> SigVerifier nb b =
+ SigVerifier (na+nb) $ \d s -> b d s || a d s
+
instance Monoid SigVerifier where
mempty = SigVerifier 0 $ \_b _s -> False
- mappend (SigVerifier na a) (SigVerifier nb b) =
- SigVerifier (na+nb) $ \d s -> b d s || a d s
+ mappend = (Sem.<>)
data MySessionKey = MySessionKey Ed25519.SecretKey Ed25519.PublicKey