summaryrefslogtreecommitdiff
path: root/Utility/Base64.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Utility/Base64.hs')
-rw-r--r--Utility/Base64.hs18
1 files changed, 11 insertions, 7 deletions
diff --git a/Utility/Base64.hs b/Utility/Base64.hs
index 56637a117..80cc122a1 100644
--- a/Utility/Base64.hs
+++ b/Utility/Base64.hs
@@ -1,24 +1,28 @@
-{- Simple Base64 access
+{- Simple Base64 encoding of Strings
-
- Copyright 2011 Joey Hess <id@joeyh.name>
-
- License: BSD-2-clause
-}
-module Utility.Base64 (toB64, fromB64Maybe, fromB64) where
+module Utility.Base64 (toB64, fromB64Maybe, fromB64, prop_b64_roundtrips) where
-import "dataenc" Codec.Binary.Base64
-import Data.Bits.Utils
+import qualified "dataenc" Codec.Binary.Base64 as B64
import Control.Applicative
import Data.Maybe
+import qualified Data.ByteString.Lazy as L
+import Data.ByteString.Lazy.UTF8 (fromString, toString)
-toB64 :: String -> String
-toB64 = encode . s2w8
+toB64 :: String -> String
+toB64 = B64.encode . L.unpack . fromString
fromB64Maybe :: String -> Maybe String
-fromB64Maybe s = w82s <$> decode s
+fromB64Maybe s = toString . L.pack <$> B64.decode s
fromB64 :: String -> String
fromB64 = fromMaybe bad . fromB64Maybe
where
bad = error "bad base64 encoded data"
+
+prop_b64_roundtrips :: String -> Bool
+prop_b64_roundtrips s = s == fromB64 (toB64 s)