{-# LANGUAGE OverloadedStrings #-} module Age where import qualified Crypto.Cipher.ChaChaPoly1305 as CC import Crypto.Error (throwCryptoErrorIO) import Data.ByteArray (ByteArray, ByteArrayAccess, Bytes, convert, pack) import Data.ByteString (ByteString, empty) import qualified Data.ByteString as BS import qualified Data.Text as T import qualified Data.Text.Encoding as TE import qualified Data.Text.IO as TIO import Dhall.Secret.Age import Test.HUnit testAgeEncryption = TestCase $ do i <- generateX25519Identity i2 <- generateX25519Identity let r = toRecipient i let r2 = toRecipient i2 plaintext <- BS.readFile "./README.md" encrypted <- encrypt [r, r2] plaintext print encrypted decrypted <- decrypt encrypted [i] assertEqual "age encryption" plaintext decrypted