Skip to content

Commit 88f3972

Browse files
authored
Merge pull request #91 from parsonsmatt/matt/ghc94
Support base64 >= 0.5
2 parents b21bc80 + e2c491e commit 88f3972

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

HaskellNet.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Library
6868
Network.Mail.Mime
6969

7070
Build-Depends:
71-
base >= 4.3 && < 4.17,
71+
base >= 4.3 && < 4.18,
7272
network >= 2.6.3.1 && < 3.2,
7373
mtl,
7474
bytestring >=0.10.2,

cabal.project

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
packages:
2+
.

src/Network/HaskellNet/Auth.hs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
1+
{-# language CPP #-}
2+
13
module Network.HaskellNet.Auth
24
where
35

46
import Crypto.Hash.MD5
57
import Data.Text.Encoding.Base64 as B64
68

9+
#if MIN_VERSION_base64(0,5,0)
10+
import Data.Base64.Types as B64
11+
#endif
12+
713
import Data.Word
814
import Data.List
915
import Data.Bits
@@ -28,10 +34,24 @@ instance Show AuthType where
2834
showMain CRAM_MD5 = "CRAM-MD5"
2935

3036
b64Encode :: String -> String
31-
b64Encode = T.unpack . B64.encodeBase64 . T.pack
37+
b64Encode = T.unpack . encode . T.pack
38+
where encode =
39+
#if MIN_VERSION_base64(0,5,0)
40+
B64.extractBase64 . B64.encodeBase64
41+
#else
42+
B64.encodeBase64
43+
#endif
44+
45+
3246

3347
b64Decode :: String -> String
34-
b64Decode = T.unpack . B64.decodeBase64Lenient . T.pack
48+
b64Decode = T.unpack . decode . T.pack
49+
where decode =
50+
#if MIN_VERSION_base64(0,5,0)
51+
B64.decodeBase64Lenient . B64.assertBase64
52+
#else
53+
B64.decodeBase64Lenient
54+
#endif
3555

3656
showOctet :: [Word8] -> String
3757
showOctet = concatMap hexChars

0 commit comments

Comments
 (0)