2011-05-01 18:27:40 +00:00
|
|
|
{- Simple Base64 access
|
|
|
|
-
|
2015-01-21 16:50:09 +00:00
|
|
|
- Copyright 2011 Joey Hess <id@joeyh.name>
|
2011-05-01 18:27:40 +00:00
|
|
|
-
|
2014-05-10 14:01:27 +00:00
|
|
|
- License: BSD-2-clause
|
2011-05-01 18:27:40 +00:00
|
|
|
-}
|
|
|
|
|
2013-03-06 20:29:19 +00:00
|
|
|
module Utility.Base64 (toB64, fromB64Maybe, fromB64) where
|
2011-05-01 18:27:40 +00:00
|
|
|
|
2013-11-11 19:42:06 +00:00
|
|
|
import "dataenc" Codec.Binary.Base64
|
2011-05-01 18:27:40 +00:00
|
|
|
import Data.Bits.Utils
|
2013-03-06 20:29:19 +00:00
|
|
|
import Control.Applicative
|
|
|
|
import Data.Maybe
|
2011-05-01 18:27:40 +00:00
|
|
|
|
|
|
|
toB64 :: String -> String
|
|
|
|
toB64 = encode . s2w8
|
|
|
|
|
2013-03-06 20:29:19 +00:00
|
|
|
fromB64Maybe :: String -> Maybe String
|
|
|
|
fromB64Maybe s = w82s <$> decode s
|
|
|
|
|
2011-05-01 18:27:40 +00:00
|
|
|
fromB64 :: String -> String
|
2013-03-06 20:29:19 +00:00
|
|
|
fromB64 = fromMaybe bad . fromB64Maybe
|
|
|
|
where
|
|
|
|
bad = error "bad base64 encoded data"
|