diff --git a/auth/receivedConfirm.go b/auth/receivedConfirm.go index 202085d34f8b2c36b945f0fdbd0ed34280e1fc86..c4b5a7e81398c93fe7894e34fd44e13d7fdfdf1d 100644 --- a/auth/receivedConfirm.go +++ b/auth/receivedConfirm.go @@ -50,8 +50,8 @@ func (rcs *receivedConfirmService) Process(msg format.Message, baseFmt.GetEcrPayload(), msg.GetMac(), state.e2e.GetGroup()) if !success { - em := fmt.Sprintf("Received auth confirmation failed its mac " + - "check") + em := fmt.Sprintf("Received auth confirmation " + + "failed its mac check") jww.WARN.Print(em) state.event.Report(10, "Auth", "ConfirmError", em) return diff --git a/auth/receivedRequest.go b/auth/receivedRequest.go index 7b033cc2ca11290ff7f2b2fa9cf7813e48c5ca57..22a94b0642cbdf2e60b19af8a1cbe8269c2333aa 100644 --- a/auth/receivedRequest.go +++ b/auth/receivedRequest.go @@ -149,6 +149,10 @@ func (rrs *receivedRequestService) Process(message format.Message, // new request reset := false if rrs.reset { + jww.INFO.Printf("AuthRequest ResetSession from %s,"+ + " msgDigest: %s, FP: %s", partnerID, + format.DigestContents(message.GetContents()), + base64.StdEncoding.EncodeToString(fp)) // delete only deletes if the partner is present, so we can just call delete // instead of checking if it exists and then calling delete, and check the // error to see if it did or didnt exist diff --git a/auth/request.go b/auth/request.go index 8a064c1fe91e0e0dd8aab4e46c1cb6077d45d3c3..9c0dc2e4db1a9f4562d2db4bbaaf80b0e3dc7658 100644 --- a/auth/request.go +++ b/auth/request.go @@ -86,6 +86,10 @@ func (s *state) request(partner contact.Contact, myfacts fact.FactList, } else { jww.INFO.Printf("Resending request to %s from %s as "+ "one was already sent", partner.ID, me) + dhPriv = sr.GetMyPrivKey() + dhPub = sr.GetMyPubKey() + //sidhPriv = sr.GetMySIDHPrivKey() + sidhPub = sr.GetMySIDHPubKey() } } @@ -114,9 +118,13 @@ func (s *state) request(partner contact.Contact, myfacts fact.FactList, p := cmix.GetDefaultCMIXParams() p.DebugTag = "auth.Request" + tag := s.params.RequestTag + if reset { + tag = s.params.ResetRequestTag + } svc := message.Service{ Identifier: partner.ID.Marshal(), - Tag: s.params.RequestTag, + Tag: tag, Metadata: nil, } round, _, err := s.net.Send(partner.ID, requestfp, svc, contents, mac, p) diff --git a/auth/state.go b/auth/state.go index a3e3d59df1ff43bf8eb6ace2582a009aaedab191..2be3d4d6b3a63f0b9706a1bcccbf862828cc06d5 100644 --- a/auth/state.go +++ b/auth/state.go @@ -77,11 +77,11 @@ type e2eHandler interface { } type Callbacks interface { - Request(requestor contact.Contact, receptionID receptionID.EphemeralIdentity, + Request(partner contact.Contact, receptionID receptionID.EphemeralIdentity, round rounds.Round) - Confirm(requestor contact.Contact, receptionID receptionID.EphemeralIdentity, + Confirm(partner contact.Contact, receptionID receptionID.EphemeralIdentity, round rounds.Round) - Reset(requestor contact.Contact, receptionID receptionID.EphemeralIdentity, + Reset(partner contact.Contact, receptionID receptionID.EphemeralIdentity, round rounds.Round) } diff --git a/auth/store/store.go b/auth/store/store.go index 241a090efa847be4db877a42bb81692955d285a5..d38510933c82093118a160f6f8afac7caacc14fa 100644 --- a/auth/store/store.go +++ b/auth/store/store.go @@ -181,15 +181,17 @@ func (s *Store) AddSent(partner *id.ID, partnerHistoricalPubKey, myPrivKey, s.mux.Lock() defer s.mux.Unlock() - if sentRq, ok := s.sentByID[*partner]; ok { - return sentRq, errors.Errorf("Cannot make new sentRequest "+ - "for partner %s, a sent request already exists", - partner) - } - if _, ok := s.receivedByID[*partner]; ok { - return nil, errors.Errorf("Cannot make new sentRequest for "+ - " partner %s, a received reqyest already exists", - partner) + if !reset { + if sentRq, ok := s.sentByID[*partner]; ok { + return sentRq, errors.Errorf("sent request "+ + "already exists for partner %s", + partner) + } + if _, ok := s.receivedByID[*partner]; ok { + return nil, errors.Errorf("received request "+ + "already exists for partner %s", + partner) + } } sr, err := newSentRequest(s.kv, partner, partnerHistoricalPubKey,