summaryrefslogtreecommitdiff
path: root/kiki.hs
diff options
context:
space:
mode:
Diffstat (limited to 'kiki.hs')
-rw-r--r--kiki.hs21
1 files changed, 0 insertions, 21 deletions
diff --git a/kiki.hs b/kiki.hs
index fb4b878..eb997ac 100644
--- a/kiki.hs
+++ b/kiki.hs
@@ -30,22 +30,13 @@ import Foreign.C.Types (CTime(..))
30import System.Environment 30import System.Environment
31import System.Exit 31import System.Exit
32import System.IO (hPutStrLn,stderr) 32import System.IO (hPutStrLn,stderr)
33#if defined(VERSION_memory)
34import qualified Data.ByteString.Char8 as S8 33import qualified Data.ByteString.Char8 as S8
35import Data.ByteArray.Encoding 34import Data.ByteArray.Encoding
36#elif defined(VERSION_dataenc)
37import qualified Codec.Binary.Base64 as Base64
38#endif
39import qualified Codec.Archive.Tar as Tar 35import qualified Codec.Archive.Tar as Tar
40import qualified Codec.Archive.Tar.Entry as Tar 36import qualified Codec.Archive.Tar.Entry as Tar
41#if !defined(VERSION_cryptonite)
42import qualified Crypto.Hash.RIPEMD160 as RIPEMD160
43import qualified Crypto.Hash.SHA256 as SHA256
44#else
45import Crypto.Hash.Algorithms (RIPEMD160(..)) 37import Crypto.Hash.Algorithms (RIPEMD160(..))
46import Crypto.Hash 38import Crypto.Hash
47import Data.ByteArray (convert) 39import Data.ByteArray (convert)
48#endif
49import qualified Data.ByteString as S 40import qualified Data.ByteString as S
50import qualified Data.ByteString.Lazy as L 41import qualified Data.ByteString.Lazy as L
51import qualified Data.ByteString.Lazy.Char8 as Char8 42import qualified Data.ByteString.Lazy.Char8 as Char8
@@ -281,11 +272,7 @@ dnsPresentationFromPacket k = do
281 let RSAKey (MPI n) (MPI e) = fromJust $ rsaKeyFromPacket k 272 let RSAKey (MPI n) (MPI e) = fromJust $ rsaKeyFromPacket k
282 dnskey = DNS.RSA n e 273 dnskey = DNS.RSA n e
283 bin = runPut (DNS.putRSA dnskey) 274 bin = runPut (DNS.putRSA dnskey)
284#if defined(VERSION_memory)
285 qq = S8.unpack $ convertToBase Base64 (L.toStrict bin) 275 qq = S8.unpack $ convertToBase Base64 (L.toStrict bin)
286#elif defined(VERSION_dataenc)
287 qq = Base64.encode (L.unpack bin)
288#endif
289 ttl = 24*60*60 -- 24 hours in seconds 276 ttl = 24*60*60 -- 24 hours in seconds
290 flags = 256 -- (ZONE-key = bit7) TODO: is this a zone key or a key-signing key? 277 flags = 256 -- (ZONE-key = bit7) TODO: is this a zone key or a key-signing key?
291 algo = 8 -- RSASHA256 -- TODO: support other algorithm 278 algo = 8 -- RSASHA256 -- TODO: support other algorithm
@@ -323,11 +310,7 @@ show_torhash :: FilePath -> p -> IO ()
323show_torhash pubkey _ = do 310show_torhash pubkey _ = do
324 bs <- Char8.readFile pubkey 311 bs <- Char8.readFile pubkey
325 let parsekey f dta = do 312 let parsekey f dta = do
326#if defined(VERSION_memory)
327 let mdta = fmap L.fromStrict $ functorToMaybe $ convertFromBase Base64 (Char8.toStrict dta) 313 let mdta = fmap L.fromStrict $ functorToMaybe $ convertFromBase Base64 (Char8.toStrict dta)
328#elif defined(VERSION_dataenc)
329 let mdta = L.pack <$> Base64.decode (Char8.unpack dta)
330#endif
331 e <- decodeASN1 DER <$> mdta 314 e <- decodeASN1 DER <$> mdta
332 asn1 <- either (const Nothing) (Just) e 315 asn1 <- either (const Nothing) (Just) e
333 k <- either (const Nothing) (Just . fst) (fromASN1 asn1) 316 k <- either (const Nothing) (Just . fst) (fromASN1 asn1)
@@ -358,11 +341,7 @@ show_cert keyspec wkgrip db = do
358 -} 341 -}
359 let cs = mapMaybe x509cert $ (sigs >>= hashed_subpackets) 342 let cs = mapMaybe x509cert $ (sigs >>= hashed_subpackets)
360 ds = map decodeBlob $ map (ParsedCert k (posixSecondsToUTCTime $ fromIntegral $ timestamp k)) cs 343 ds = map decodeBlob $ map (ParsedCert k (posixSecondsToUTCTime $ fromIntegral $ timestamp k)) cs
361#if defined(VERSION_memory)
362 qqs = map (S8.unpack . convertToBase Base64 . L.toStrict) ds 344 qqs = map (S8.unpack . convertToBase Base64 . L.toStrict) ds
363#elif defined(VERSION_dataenc)
364 qqs = map (Base64.encode . L.unpack) ds
365#endif
366 pems = map (writePEM PemCertificate) qqs 345 pems = map (writePEM PemCertificate) qqs
367 forM_ pems putStrLn 346 forM_ pems putStrLn
368 _ -> void $ warn (keyspec ++ ": ambiguous") 347 _ -> void $ warn (keyspec ++ ": ambiguous")