summaryrefslogtreecommitdiff
path: root/src/crypto/reflibs/Crypto/MAC/Poly1305.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/reflibs/Crypto/MAC/Poly1305.hs')
-rw-r--r--src/crypto/reflibs/Crypto/MAC/Poly1305.hs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/crypto/reflibs/Crypto/MAC/Poly1305.hs b/src/crypto/reflibs/Crypto/MAC/Poly1305.hs
new file mode 100644
index 0000000..5e8938f
--- /dev/null
+++ b/src/crypto/reflibs/Crypto/MAC/Poly1305.hs
@@ -0,0 +1,20 @@
+module Crypto.MAC.Poly1305 (
+ Auth(..),
+ authTag,
+) where
+
+import Crypto.Error
+
+import Data.ByteArray as BA
+import Data.ByteString (ByteString)
+
+
+newtype Auth = Auth ByteString
+ deriving (Eq, ByteArrayAccess)
+
+authTag :: ByteArrayAccess b => b -> CryptoFailable Auth
+authTag ba
+ | BA.length bs /= 16 = CryptoFailed CryptoError
+ | otherwise = CryptoPassed (Auth bs)
+ where
+ bs = convert ba