summaryrefslogtreecommitdiff
path: root/lib/PacketTranscoder.hs
diff options
context:
space:
mode:
authorjoe <joe@jerkface.net>2016-08-29 22:24:08 -0400
committerjoe <joe@jerkface.net>2016-08-29 22:24:08 -0400
commit78c2c3753e69818aa7fd5d3a0354fea5d0fc452b (patch)
tree9f1b155c07db63d22f01e04198d00b89a109f6b9 /lib/PacketTranscoder.hs
parent63af3d0f3d149b110e172223c18afacd77a172f8 (diff)
cokiki build fix & show --packets option.
Diffstat (limited to 'lib/PacketTranscoder.hs')
-rw-r--r--lib/PacketTranscoder.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/PacketTranscoder.hs b/lib/PacketTranscoder.hs
index 07f235c..6d1d9b8 100644
--- a/lib/PacketTranscoder.hs
+++ b/lib/PacketTranscoder.hs
@@ -19,6 +19,7 @@ import System.IO ( stderr)
19import System.Posix.IO ( fdToHandle ) 19import System.Posix.IO ( fdToHandle )
20import Text.Show.Pretty as PP ( ppShow ) 20import Text.Show.Pretty as PP ( ppShow )
21import Types 21import Types
22import ControlMaybe (handleIO_)
22 23
23-- | Merge two representations of the same key, prefering secret version 24-- | Merge two representations of the same key, prefering secret version
24-- because they have more information. 25-- because they have more information.
@@ -168,6 +169,7 @@ makeMemoizingDecrypter operation ctx (workingkey,keys) = do
168 -- in the 'locations' field, so this would effectively 169 -- in the 'locations' field, so this would effectively
169 -- allow you to run 'decryptIt' on an unencrypted public key 170 -- allow you to run 'decryptIt' on an unencrypted public key
170 -- to obtain it's secret key. 171 -- to obtain it's secret key.
172 handleIO_ (decryptIt []) $ do
171 (pw,wants_retry) <- getpw (count,qry) 173 (pw,wants_retry) <- getpw (count,qry)
172 let wkun = fromMaybe wk $ do 174 let wkun = fromMaybe wk $ do
173 guard $ symmetric_algorithm (packet mp) /= Unencrypted 175 guard $ symmetric_algorithm (packet mp) /= Unencrypted
@@ -218,11 +220,12 @@ makeMemoizingDecrypter operation ctx (workingkey,keys) = do
218 | otherwise = return () 220 | otherwise = return ()
219 clear 221 clear
220 let sanitizeQry qry = (fingerprint $ queryPacket qry, queryUID qry, fmap fingerprint $ queryMainKey qry) 222 let sanitizeQry qry = (fingerprint $ queryPacket qry, queryUID qry, fmap fingerprint $ queryMainKey qry)
221 putStrLn $ "(count,firsttime,ask,qry,actual_qry)="++show (count,firsttime,ask,sanitizeQry qry, sanitizeQry actual_qry) 223 -- putStrLn $ "(count,firsttime,ask,qry,actual_qry)="++show (count,firsttime,ask,sanitizeQry qry, sanitizeQry actual_qry)
222 mbpw <- getPassphrase s ask actual_qry 224 mbpw <- getPassphrase s ask actual_qry
223 quit s 225 quit s
224 return ( maybe "" S8.pack mbpw, guard (ask /= AskNew) >> Just clear ) 226 return ( maybe "" S8.pack mbpw, guard (ask /= AskNew) >> Just clear )
225 227
228 -- putStrLn $ concat [show (symmetric_algorithm wk,s2k wk)," --> ",show (dest_alg,dest_s2k)]
226 if symmetric_algorithm wk == dest_alg 229 if symmetric_algorithm wk == dest_alg
227 && ( symmetric_algorithm wk == Unencrypted || s2k wk == dest_s2k ) 230 && ( symmetric_algorithm wk == Unencrypted || s2k wk == dest_s2k )
228 then return (KikiSuccess wk) 231 then return (KikiSuccess wk)