wip, BUGFIX

This commit is contained in:
Dmitry Zuikov 2024-08-06 14:27:26 +03:00
parent f8e3d2fdf2
commit 8262f39d44
2 changed files with 8 additions and 7 deletions

View File

@ -171,9 +171,7 @@ lookupGroupKey :: forall s . ( ForGroupKeySymm s
lookupGroupKey sk pk gk = runIdentity $ runMaybeT do lookupGroupKey sk pk gk = runIdentity $ runMaybeT do
(EncryptedBox bs) <- MaybeT $ pure $ HashMap.lookup pk (recipients gk) (EncryptedBox bs) <- MaybeT $ pure $ HashMap.lookup pk (recipients gk)
-- error "FOUND SHIT!"
gkBs <- MaybeT $ pure $ AK.boxSealOpen pk sk bs gkBs <- MaybeT $ pure $ AK.boxSealOpen pk sk bs
-- error $ "DECRYPTED SHIT!"
MaybeT $ pure $ deserialiseOrFail (LBS.fromStrict gkBs) & either (const Nothing) Just MaybeT $ pure $ deserialiseOrFail (LBS.fromStrict gkBs) & either (const Nothing) Just

View File

@ -23,6 +23,7 @@ import Control.Monad.Trans.Maybe
import Data.List qualified as List import Data.List qualified as List
import Data.ByteString qualified as BS import Data.ByteString qualified as BS
import Data.Ord import Data.Ord
import Streaming.Prelude qualified as S
data KeyManClientError = KeyManClientSomeError data KeyManClientError = KeyManClientSomeError
@ -113,9 +114,11 @@ extractGroupKeySecret :: MonadIO m
=> GroupKey 'Symm 'HBS2Basic => GroupKey 'Symm 'HBS2Basic
-> KeyManClient m (Maybe GroupSecret) -> KeyManClient m (Maybe GroupSecret)
extractGroupKeySecret gk = do extractGroupKeySecret gk = do
runMaybeT do r <- S.toList_ do
s <- forM (HM.toList $ recipients gk) $ \(pk,box) -> do forM_ (HM.toList $ recipients gk) $ \(pk,box) -> runMaybeT do
KeyringEntry pk sk _ <- MaybeT $ loadKeyRingEntry pk (KeyringEntry ppk ssk _) <- MaybeT $ lift $ loadKeyRingEntry pk
MaybeT $ pure (Symm.lookupGroupKey sk pk gk) let s = Symm.lookupGroupKey @'HBS2Basic ssk ppk gk
MaybeT $ pure $ headMay s for_ s $ lift . S.yield
pure $ headMay r