summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2019-07-16 11:24:51 -0400
committerJoe Crayne <joe@jerkface.net>2019-07-16 11:24:51 -0400
commit4ed990981e5bf0b3902364b6b09919d3d7d976cc (patch)
tree505fe4615c2fa9819540c647d7d8b322bffb95f8
parent9e39fd87b2dfa6b2bf7a9fa1661b89d9a83f7ef4 (diff)
String to KeyGrip utility.
-rw-r--r--lib/KeyDB.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/KeyDB.hs b/lib/KeyDB.hs
index 5e74ea4..0bc0fb3 100644
--- a/lib/KeyDB.hs
+++ b/lib/KeyDB.hs
@@ -10,6 +10,8 @@ module KeyDB
10 , kkData 10 , kkData
11 , lookupKeyData 11 , lookupKeyData
12 , lookupByGrip 12 , lookupByGrip
13 , fingerprintGrip
14 , smallprGrip
13 , transmute 15 , transmute
14 , transmuteAt 16 , transmuteAt
15 , alterKeyDB 17 , alterKeyDB
@@ -37,6 +39,7 @@ import Data.Maybe
37import Data.OpenPGP 39import Data.OpenPGP
38import Data.Ord 40import Data.Ord
39import Foreign.Storable 41import Foreign.Storable
42import Text.Read
40 43
41import Data.List.Merge 44import Data.List.Merge
42import Data.OpenPGP.Util 45import Data.OpenPGP.Util
@@ -68,6 +71,9 @@ fingerprintGrip (Fingerprint bs) =
68 case decode $ L.fromStrict $ S.drop (S.length bs - sizeOf (0::Int)) bs of 71 case decode $ L.fromStrict $ S.drop (S.length bs - sizeOf (0::Int)) bs of
69 i -> KeyInt i 72 i -> KeyInt i
70 73
74smallprGrip :: String -> Maybe KeyGrip
75smallprGrip pr = KeyInt <$> readMaybe ("0x" ++ drop (length pr - 2 * sizeOf (0::Int)) pr)
76
71data KeyDB = KeyDB 77data KeyDB = KeyDB
72 { byKeyKey :: Map.Map KeyKey KeyData 78 { byKeyKey :: Map.Map KeyKey KeyData
73 , byGrip :: IMap KeyGrip [KeyKey] 79 , byGrip :: IMap KeyGrip [KeyKey]