summaryrefslogtreecommitdiff
path: root/lib/KeyRing.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/KeyRing.hs')
-rw-r--r--lib/KeyRing.hs22
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/KeyRing.hs b/lib/KeyRing.hs
index 1d52dd1..b946e54 100644
--- a/lib/KeyRing.hs
+++ b/lib/KeyRing.hs
@@ -73,7 +73,7 @@ import KeyRing.BuildKeyDB (Hostnames(..),
73 buildKeyDB, 73 buildKeyDB,
74 combineTransforms, 74 combineTransforms,
75 filterMatches, 75 filterMatches,
76 fingerdress, flattenKeys, 76 fingerdress,
77 generateInternals, 77 generateInternals,
78 getHostnames, getSubkeys, 78 getHostnames, getSubkeys,
79 importSecretKey, 79 importSecretKey,
@@ -84,8 +84,8 @@ import KeyRing.BuildKeyDB (Hostnames(..),
84 parseSingleSpec, 84 parseSingleSpec,
85 parseSpec, readInputFileL, 85 parseSpec, readInputFileL,
86 readSecretPEMFile, 86 readSecretPEMFile,
87 secp256k1_id, seek_key, 87 secp256k1_id,
88 selectKey0, selectPublicKey, 88 selectPublicKey,
89 usageFromFilter) 89 usageFromFilter)
90 90
91import KeyRing.Types 91import KeyRing.Types
@@ -412,10 +412,10 @@ selectPublicKeyAndSigs :: (KeySpec,Maybe String) -> KeyDB -> [(KeyKey,Packet,[Pa
412selectPublicKeyAndSigs (spec,mtag) db = 412selectPublicKeyAndSigs (spec,mtag) db =
413 case mtag of 413 case mtag of
414 Nothing -> do 414 Nothing -> do
415 (kk,r) <- Map.toList $ fmap (findbyspec spec) (byKeyKey db) 415 (kk,r) <- fmap (second $ findbyspec spec) (kkData db)
416 (sub,sigs) <- r 416 (sub,sigs) <- r
417 return (kk,sub,sigs) 417 return (kk,sub,sigs)
418 Just tag -> Map.toList (Map.filter (matchSpec spec) (byKeyKey db)) >>= findsubs tag 418 Just tag -> filterMatches spec (kkData db) >>= findsubs tag
419 where 419 where
420 topresult kd = (keyPacket kd, map (packet .fst) $ keySigAndTrusts kd) 420 topresult kd = (keyPacket kd, map (packet .fst) $ keySigAndTrusts kd)
421 421
@@ -600,7 +600,7 @@ coinKeysOwnedBy :: KeyDB -> Maybe Packet -> [(CryptoCoins.CoinNetwork,MappedPack
600coinKeysOwnedBy db wk = do 600coinKeysOwnedBy db wk = do
601 wk <- maybeToList wk 601 wk <- maybeToList wk
602 let kk = keykey wk 602 let kk = keykey wk
603 KeyData top topsigs uids subs <- maybeToList $ Map.lookup kk (byKeyKey db) 603 KeyData top topsigs uids subs <- maybeToList $ lookupKeyData kk db
604 (subkk,SubKey mp sigs) <- Map.toList subs 604 (subkk,SubKey mp sigs) <- Map.toList subs
605 let sub = packet mp 605 let sub = packet mp
606 guard $ isCryptoCoinKey sub 606 guard $ isCryptoCoinKey sub
@@ -664,7 +664,7 @@ guardAuthentic rt keydata = guard (isauth rt keydata)
664 664
665isauth :: KeyRingRuntime -> KeyData -> Bool 665isauth :: KeyRingRuntime -> KeyData -> Bool
666isauth rt keydata = dont_have keydata && maybe False (`has_good_sig` keydata) wk 666isauth rt keydata = dont_have keydata && maybe False (`has_good_sig` keydata) wk
667 where wk = workingKey (rtGrip rt) (byKeyKey $ rtKeyDB rt) 667 where wk = workingKey (rtGrip rt) (rtKeyDB rt)
668 dont_have (KeyData p _ _ _) = not . Map.member (rtPubring rt) 668 dont_have (KeyData p _ _ _) = not . Map.member (rtPubring rt)
669 $ locations p 669 $ locations p
670 has_good_sig wk (KeyData k sigs uids subs) = any goodsig $ Map.toList uids 670 has_good_sig wk (KeyData k sigs uids subs) = any goodsig $ Map.toList uids
@@ -676,7 +676,7 @@ isauth rt keydata = dont_have keydata && maybe False (`has_good_sig` keydata) wk
676 676
677 workingKey grip use_db = listToMaybe $ do 677 workingKey grip use_db = listToMaybe $ do
678 fp <- maybeToList grip 678 fp <- maybeToList grip
679 elm <- Map.elems use_db 679 elm <- keyData use_db
680 guard $ matchSpec (KeyGrip fp) elm 680 guard $ matchSpec (KeyGrip fp) elm
681 return $ keyPacket elm 681 return $ keyPacket elm
682 682
@@ -731,7 +731,7 @@ writeRingKeys krd rt {- db wk secring pubring -} unspilled report_manips = do
731 (error $ f ++ ": write public or secret key to file?") 731 (error $ f ++ ": write public or secret key to file?")
732 importByExistingMaster kd@(KeyData p _ _ _) = 732 importByExistingMaster kd@(KeyData p _ _ _) =
733 fmap originallyPublic $ Map.lookup f $ locations p 733 fmap originallyPublic $ Map.lookup f $ locations p
734 d <- sortByHint f keyMappedPacket (Map.elems $ byKeyKey db') 734 d <- sortByHint f keyMappedPacket (keyData db')
735 acc <- maybeToList $ Map.lookup f0 (rtRingAccess rt) 735 acc <- maybeToList $ Map.lookup f0 (rtRingAccess rt)
736 only_public <- maybeToList $ wantedForFill acc (fill stream) d 736 only_public <- maybeToList $ wantedForFill acc (fill stream) d
737 guard $ only_public || isSecretKey (keyPacket d) 737 guard $ only_public || isSecretKey (keyPacket d)
@@ -984,7 +984,7 @@ initializeMissingPEMFiles operation ctx grip mwk transcode db = do
984 -- ms = map (keykey . fst) $ selectAll True (topspec,subspec) db 984 -- ms = map (keykey . fst) $ selectAll True (topspec,subspec) db
985 -- ms = filterMatches topspec $ Map.toList db 985 -- ms = filterMatches topspec $ Map.toList db
986 ns = do 986 ns = do
987 (kk,kd) <- filterMatches topspec $ Map.toList $ byKeyKey db 987 (kk,kd) <- filterMatches topspec $ kkData db
988 return (kk , subkeysForExport subspec kd) 988 return (kk , subkeysForExport subspec kd)
989 return (fname,subspec,ns,stream) 989 return (fname,subspec,ns,stream)
990 (exports0,ambiguous) = partition (\(_,_,ns,_)->null $ drop 1 $ (ns>>=snd)) 990 (exports0,ambiguous) = partition (\(_,_,ns,_)->null $ drop 1 $ (ns>>=snd))
@@ -1032,7 +1032,7 @@ initializeMissingPEMFiles operation ctx grip mwk transcode db = do
1032 usage <- take 1 $ mapMaybe usageFromFilter [fill stream,spill stream] 1032 usage <- take 1 $ mapMaybe usageFromFilter [fill stream,spill stream]
1033 let (topspec,subspec) = parseSpec (fromMaybe "" grip) usage 1033 let (topspec,subspec) = parseSpec (fromMaybe "" grip) usage
1034 guard $ null $ do 1034 guard $ null $ do
1035 (kk,kd) <- filterMatches topspec $ Map.toList $ byKeyKey db 1035 (kk,kd) <- filterMatches topspec $ kkData db
1036 subkeysForExport subspec kd 1036 subkeysForExport subspec kd
1037 return (f,stream) 1037 return (f,stream)
1038 where 1038 where