2011-05-01 18:27:40 +00:00
|
|
|
{- Simple Base64 access
|
|
|
|
-
|
|
|
|
- Copyright 2011 Joey Hess <joey@kitenet.net>
|
|
|
|
-
|
|
|
|
- Licensed under the GNU GPL version 3 or higher.
|
|
|
|
-}
|
|
|
|
|
2013-03-06 20:29:19 +00:00
|
|
|
module Utility.Base64 (toB64, fromB64Maybe, fromB64) where
|
2011-05-01 18:27:40 +00:00
|
|
|
|
|
|
|
import Codec.Binary.Base64
|
|
|
|
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"
|