summaryrefslogtreecommitdiff
path: root/Utility
diff options
context:
space:
mode:
Diffstat (limited to 'Utility')
-rw-r--r--Utility/Base64.hs12
1 files changed, 9 insertions, 3 deletions
diff --git a/Utility/Base64.hs b/Utility/Base64.hs
index ed803a00a..ec660108a 100644
--- a/Utility/Base64.hs
+++ b/Utility/Base64.hs
@@ -5,14 +5,20 @@
- Licensed under the GNU GPL version 3 or higher.
-}
-module Utility.Base64 (toB64, fromB64) where
+module Utility.Base64 (toB64, fromB64Maybe, fromB64) where
import Codec.Binary.Base64
import Data.Bits.Utils
+import Control.Applicative
+import Data.Maybe
toB64 :: String -> String
toB64 = encode . s2w8
+fromB64Maybe :: String -> Maybe String
+fromB64Maybe s = w82s <$> decode s
+
fromB64 :: String -> String
-fromB64 s = maybe bad w82s $ decode s
- where bad = error "bad base64 encoded data"
+fromB64 = fromMaybe bad . fromB64Maybe
+ where
+ bad = error "bad base64 encoded data"