diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/KeyRing/BuildKeyDB.hs | 4 | ||||
-rw-r--r-- | lib/KeyRing/Types.hs | 13 | ||||
-rw-r--r-- | lib/Kiki.hs | 6 |
3 files changed, 12 insertions, 11 deletions
diff --git a/lib/KeyRing/BuildKeyDB.hs b/lib/KeyRing/BuildKeyDB.hs index 90f7292..461afa2 100644 --- a/lib/KeyRing/BuildKeyDB.hs +++ b/lib/KeyRing/BuildKeyDB.hs | |||
@@ -35,7 +35,7 @@ import Data.List | |||
35 | import qualified Data.Map as Map | 35 | import qualified Data.Map as Map |
36 | import Data.Maybe | 36 | import Data.Maybe |
37 | import Data.OpenPGP | 37 | import Data.OpenPGP |
38 | import Data.OpenPGP.Util (GenerateKeyParams (..), fingerprint, generateKey, pgpSign, verify) | 38 | import Data.OpenPGP.Util (Fingerprint, GenerateKeyParams (..), fingerprint, generateKey, pgpSign, verify) |
39 | 39 | ||
40 | 40 | ||
41 | import Data.Time.Clock (UTCTime) | 41 | import Data.Time.Clock (UTCTime) |
@@ -408,7 +408,7 @@ usageFromFilter _ = mzero | |||
408 | 408 | ||
409 | -- | Parse a key specification. | 409 | -- | Parse a key specification. |
410 | -- The first argument is a grip for the default working key. | 410 | -- The first argument is a grip for the default working key. |
411 | parseSpec :: String -> String -> (KeySpec,Maybe String) | 411 | parseSpec :: Fingerprint -> String -> (KeySpec,Maybe String) |
412 | parseSpec wkgrip spec = | 412 | parseSpec wkgrip spec = |
413 | if not slashed | 413 | if not slashed |
414 | then | 414 | then |
diff --git a/lib/KeyRing/Types.hs b/lib/KeyRing/Types.hs index 5318b31..1177789 100644 --- a/lib/KeyRing/Types.hs +++ b/lib/KeyRing/Types.hs | |||
@@ -349,14 +349,15 @@ isTrust _ = False | |||
349 | -- | 349 | -- |
350 | -- matchpr fp = Data.List.Extra.takeEnd (length fp) | 350 | -- matchpr fp = Data.List.Extra.takeEnd (length fp) |
351 | -- | 351 | -- |
352 | matchpr :: String -> Packet -> String | 352 | matchpr :: Fingerprint -> Packet -> Bool |
353 | matchpr fp k = reverse $ zipWith const (reverse (show $ fingerprint k)) fp | 353 | matchpr fp k = p == show fp |
354 | 354 | where | |
355 | p = reverse $ zipWith const (reverse (show $ fingerprint k)) (show fp) | ||
355 | 356 | ||
356 | 357 | ||
357 | 358 | ||
358 | data KeySpec = | 359 | data KeySpec = |
359 | KeyGrip String -- fp: | 360 | KeyGrip Fingerprint -- fp: |
360 | | KeyTag Packet String -- fp:????/t: | 361 | | KeyTag Packet String -- fp:????/t: |
361 | | KeyUidMatch String -- u: | 362 | | KeyUidMatch String -- u: |
362 | deriving Show | 363 | deriving Show |
@@ -427,8 +428,8 @@ seek_key :: KeySpec -> [Packet] -> ([Packet],[Packet]) | |||
427 | seek_key (KeyGrip grip) sec = (pre, subs) | 428 | seek_key (KeyGrip grip) sec = (pre, subs) |
428 | where | 429 | where |
429 | (pre,subs) = break pred sec | 430 | (pre,subs) = break pred sec |
430 | pred p@(SecretKeyPacket {}) = matchpr grip p == grip | 431 | pred p@(SecretKeyPacket {}) = matchpr grip p |
431 | pred p@(PublicKeyPacket {}) = matchpr grip p == grip | 432 | pred p@(PublicKeyPacket {}) = matchpr grip p |
432 | pred _ = False | 433 | pred _ = False |
433 | 434 | ||
434 | seek_key (KeyTag key tag) ps | 435 | seek_key (KeyTag key tag) ps |
diff --git a/lib/Kiki.hs b/lib/Kiki.hs index 7825c85..9934aaa 100644 --- a/lib/Kiki.hs +++ b/lib/Kiki.hs | |||
@@ -462,7 +462,7 @@ getSshKnownHosts peer@Peer{kd} = Char8.unlines taggedblobs | |||
462 | 462 | ||
463 | data MyIdentity = MyIdentity { | 463 | data MyIdentity = MyIdentity { |
464 | myGpgAddress :: SockAddr, | 464 | myGpgAddress :: SockAddr, |
465 | myGpgKeyGrip :: String | 465 | myGpgKeyGrip :: Fingerprint |
466 | } | 466 | } |
467 | 467 | ||
468 | installIpsecConf :: FileWriter -> MyIdentity -> [Peer] -> IO () | 468 | installIpsecConf :: FileWriter -> MyIdentity -> [Peer] -> IO () |
@@ -495,7 +495,7 @@ getMyIdentity :: KeyRingRuntime -> Maybe MyIdentity | |||
495 | getMyIdentity rt = do | 495 | getMyIdentity rt = do |
496 | wk <- rtWorkingKey rt | 496 | wk <- rtWorkingKey rt |
497 | wkaddr <- gpgipv6addr . getHostnames <$> lookupKeyData (keykey wk) (rtKeyDB rt) | 497 | wkaddr <- gpgipv6addr . getHostnames <$> lookupKeyData (keykey wk) (rtKeyDB rt) |
498 | return $ MyIdentity wkaddr (show $ fingerprint wk) | 498 | return $ MyIdentity wkaddr (fingerprint wk) |
499 | 499 | ||
500 | refreshCache :: KeyRingRuntime -> Maybe FilePath -> IO () | 500 | refreshCache :: KeyRingRuntime -> Maybe FilePath -> IO () |
501 | refreshCache rt rootdir = do | 501 | refreshCache rt rootdir = do |
@@ -638,7 +638,7 @@ show_sshfp keyspec wkgrip db = do | |||
638 | show_ssh :: String -> String -> KeyDB -> IO () | 638 | show_ssh :: String -> String -> KeyDB -> IO () |
639 | show_ssh keyspec wkgrip db = either warn putStrLn $ show_ssh' keyspec wkgrip db | 639 | show_ssh keyspec wkgrip db = either warn putStrLn $ show_ssh' keyspec wkgrip db |
640 | 640 | ||
641 | show_ssh' :: String -> String -> KeyDB -> Either String String | 641 | show_ssh' :: String -> Fingerprint -> KeyDB -> Either String String |
642 | show_ssh' keyspec wkgrip db = do | 642 | show_ssh' keyspec wkgrip db = do |
643 | let s = parseSpec wkgrip keyspec | 643 | let s = parseSpec wkgrip keyspec |
644 | flip (maybe . Left $ keyspec ++ ": not found") | 644 | flip (maybe . Left $ keyspec ++ ": not found") |