summaryrefslogtreecommitdiff
path: root/lib/SSHKey.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/SSHKey.hs')
-rw-r--r--lib/SSHKey.hs13
1 files changed, 0 insertions, 13 deletions
diff --git a/lib/SSHKey.hs b/lib/SSHKey.hs
index 0ded986..81df18c 100644
--- a/lib/SSHKey.hs
+++ b/lib/SSHKey.hs
@@ -1,16 +1,11 @@
1{-# LANGUAGE OverloadedStrings #-} 1{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE CPP #-}
3module SSHKey where 2module SSHKey where
4 3
5import qualified Data.ByteString.Lazy.Char8 as L8 4import qualified Data.ByteString.Lazy.Char8 as L8
6import qualified Data.ByteString.Lazy as L 5import qualified Data.ByteString.Lazy as L
7#if defined(VERSION_memory)
8import qualified Data.ByteString.Char8 as S8 6import qualified Data.ByteString.Char8 as S8
9import Data.ByteArray.Encoding 7import Data.ByteArray.Encoding
10import FunctorToMaybe 8import FunctorToMaybe
11#elif defined(VERSION_dataenc)
12import qualified Codec.Binary.Base64 as Base64
13#endif
14import Data.Binary.Get ( runGet ) 9import Data.Binary.Get ( runGet )
15import Data.Binary.Put ( putWord32be, runPut, putByteString ) 10import Data.Binary.Put ( putWord32be, runPut, putByteString )
16import Data.Binary ( get, put ) 11import Data.Binary ( get, put )
@@ -34,11 +29,7 @@ keyblob :: Key -> L.ByteString
34keyblob (n,e) = "ssh-rsa " <> blob 29keyblob (n,e) = "ssh-rsa " <> blob
35 where 30 where
36 bs = sshrsa e n 31 bs = sshrsa e n
37#if defined(VERSION_memory)
38 blob = L.fromStrict $ convertToBase Base64 (L.toStrict bs) 32 blob = L.fromStrict $ convertToBase Base64 (L.toStrict bs)
39#elif defined(VERSION_dataenc)
40 blob = L8.pack $ Base64.encode (L.unpack bs)
41#endif
42 33
43blobkey :: L8.ByteString -> Maybe Key 34blobkey :: L8.ByteString -> Maybe Key
44blobkey bs = do 35blobkey bs = do
@@ -47,11 +38,7 @@ blobkey bs = do
47 let (sp,bs2) = L8.span isSpace bs1 38 let (sp,bs2) = L8.span isSpace bs1
48 guard $ not (L8.null sp) 39 guard $ not (L8.null sp)
49 bs3 <- listToMaybe $ L8.words bs2 40 bs3 <- listToMaybe $ L8.words bs2
50#if defined(VERSION_memory)
51 qq <- fmap L.fromStrict $ functorToMaybe $ convertFromBase Base64 $ L.toStrict bs3 41 qq <- fmap L.fromStrict $ functorToMaybe $ convertFromBase Base64 $ L.toStrict bs3
52#elif defined(VERSION_dataenc)
53 qq <- L.pack `fmap` Base64.decode (L8.unpack bs3)
54#endif
55 decode_sshrsa qq 42 decode_sshrsa qq
56 where 43 where
57 decode_sshrsa :: L8.ByteString -> Maybe Key 44 decode_sshrsa :: L8.ByteString -> Maybe Key