From 13f3a96ae0a1417e15c9f969737c512ec71642f9 Mon Sep 17 00:00:00 2001 From: joe Date: Thu, 14 Apr 2016 14:48:26 -0400 Subject: Updated build. --- KeyRing.hs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'KeyRing.hs') diff --git a/KeyRing.hs b/KeyRing.hs index 776ded3..50702ae 100644 --- a/KeyRing.hs +++ b/KeyRing.hs @@ -133,10 +133,16 @@ import qualified Data.ByteString.Lazy as L ( unpack, null, readFile, writeFile , ByteString, toChunks, hGetContents, hPut, concat, fromChunks, splitAt , index ) import qualified Data.ByteString as S ( ByteString, unpack, splitAt, concat, cons, spanEnd, hGetContents, readFile, breakSubstring, drop, length, null, putStr ) -import qualified Crypto.Types.PubKey.ECC as ECC import qualified Codec.Binary.Base32 as Base32 import qualified Codec.Binary.Base64 as Base64 +#if !defined(VERSION_cryptonite) import qualified Crypto.Hash.SHA1 as SHA1 +import qualified Crypto.Types.PubKey.ECC as ECC +#else +import qualified Crypto.Hash as Vincent +import Data.ByteArray (convert) +import qualified Crypto.PubKey.ECC.Types as ECC +#endif import qualified Data.X509 as X509 import qualified Crypto.PubKey.RSA as RSA import qualified Codec.Compression.GZip as GZip @@ -173,8 +179,7 @@ import Debug.Trace #endif import Network.Socket -- (SockAddr) import qualified Data.ByteString.Lazy.Char8 as Char8 - - +import Compat import TimeUtil import PEM @@ -1441,7 +1446,14 @@ torhash :: Packet -> String torhash key = fromMaybe "" $ derToBase32 <$> derRSA key derToBase32 :: ByteString -> String +#if !defined(VERSION_cryptonite) derToBase32 = map toLower . Base32.encode . S.unpack . SHA1.hashlazy +#else +derToBase32 = map toLower . Base32.encode . S.unpack . sha1 + where + sha1 :: L.ByteString -> S.ByteString + sha1 x = convert (Vincent.hashlazy x :: Vincent.Digest Vincent.SHA1) +#endif derRSA :: Packet -> Maybe ByteString derRSA rsa = do @@ -1480,6 +1492,8 @@ spemCert _ = Nothing toStrict :: L.ByteString -> S.ByteString toStrict = foldr1 (<>) . L.toChunks +-- No instance for (ASN1Object RSA.PublicKey) + parseCertBlob comp bs = do asn1 <- either (const Nothing) Just $ decodeASN1 DER bs @@ -1936,6 +1950,7 @@ writePEM typ dta = pem [ ["-----BEGIN " <> typ <> "-----"] , split64s dta , ["-----END " <> typ <> "-----"] ] + split64s :: String -> [String] split64s "" = [] split64s dta = line : split64s rest where (line,rest) = splitAt 64 dta -- cgit v1.2.3