Skip to content

Commit 3dde2f2

Browse files
committed
Add function to verify saved ntf token, with unencrypted code
1 parent befd681 commit 3dde2f2

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/Simplex/Messaging/Agent.hs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ module Simplex.Messaging.Agent
9797
reconnectSMPServer,
9898
registerNtfToken,
9999
verifyNtfToken,
100+
verifySavedNtfToken,
100101
checkNtfToken,
101102
deleteNtfToken,
102103
getNtfToken,
@@ -592,6 +593,11 @@ verifyNtfToken :: AgentClient -> NetworkRequestMode -> DeviceToken -> C.CbNonce
592593
verifyNtfToken c = withAgentEnv c .:: verifyNtfToken' c
593594
{-# INLINE verifyNtfToken #-}
594595

596+
-- | Verify saved device notifications token
597+
verifySavedNtfToken :: AgentClient -> NetworkRequestMode -> ByteString -> AE ()
598+
verifySavedNtfToken c = withAgentEnv c .: verifySavedNtfToken' c
599+
{-# INLINE verifySavedNtfToken #-}
600+
595601
checkNtfToken :: AgentClient -> NetworkRequestMode -> DeviceToken -> AE NtfTknStatus
596602
checkNtfToken c = withAgentEnv c .: checkNtfToken' c
597603
{-# INLINE checkNtfToken #-}
@@ -2359,6 +2365,19 @@ verifyNtfToken' c nm deviceToken nonce code =
23592365
when (ntfMode == NMInstant) $ initializeNtfSubs c
23602366
_ -> throwE $ CMD PROHIBITED "verifyNtfToken: no token"
23612367

2368+
verifySavedNtfToken' :: AgentClient -> NetworkRequestMode -> ByteString -> AM ()
2369+
verifySavedNtfToken' c nm code =
2370+
withStore' c getSavedNtfToken >>= \case
2371+
Just tkn@NtfToken {ntfTokenId = Just tknId, ntfMode} -> do
2372+
let code' = NtfRegCode code
2373+
toStatus <-
2374+
withToken c nm tkn (Just (NTConfirmed, NTAVerify code')) (NTActive, Just NTACheck) $
2375+
agentNtfVerifyToken c nm tknId tkn code'
2376+
when (toStatus == NTActive) $ do
2377+
lift $ setCronInterval c nm tknId tkn
2378+
when (ntfMode == NMInstant) $ initializeNtfSubs c
2379+
_ -> throwE $ CMD PROHIBITED "verifySavedNtfToken: no token"
2380+
23622381
setCronInterval :: AgentClient -> NetworkRequestMode -> NtfTokenId -> NtfToken -> AM' ()
23632382
setCronInterval c nm tknId tkn = do
23642383
cron <- asks $ ntfCron . config

0 commit comments

Comments
 (0)