diff options
| -rw-r--r-- | src/Main.hs | 14 | 
1 files changed, 14 insertions, 0 deletions
| diff --git a/src/Main.hs b/src/Main.hs index 0e1daf7..6bd0967 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -17,6 +17,7 @@ import Data.Char  import Data.List  import Data.Maybe  import qualified Data.Text as T +import qualified Data.Text.IO as T  import Data.Time.LocalTime  import System.Console.Haskeline @@ -51,6 +52,19 @@ main = do                          forM_ (signedSignature signed) $ \sig -> do                              putStr $ "SIG "                              BC.putStrLn $ showRef $ storedRef $ sigKey $ fromStored sig +                    "identity" -> case verifyIdentity (wrappedLoad ref) of +                        Just identity -> do +                            let disp idt = do +                                    maybe (return ()) (T.putStrLn . (T.pack "Name: " `T.append`)) $ idName idt +                                    BC.putStrLn . (BC.pack "KeyId: " `BC.append`) . showRefDigest . refDigest . storedRef $ idKeyIdentity idt +                                    BC.putStrLn . (BC.pack "KeyMsg: " `BC.append`) . showRefDigest . refDigest . storedRef $ idKeyMessage idt +                                    case idOwner idt of +                                         Nothing -> return () +                                         Just owner -> do +                                             putStrLn $ "OWNER " ++ BC.unpack (showRefDigest $ refDigest $ storedRef $ idData owner) +                                             disp owner +                            disp identity +                        Nothing -> putStrLn $ "Identity verification failed"                      _ -> error $ "unknown object type '" ++ objtype ++ "'"          ["update-identity"] -> updateIdentity st |