Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • briar briar
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 782
    • Issues 782
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 8
    • Merge requests 8
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • briar
  • briarbriar
  • Issues
  • #2085

Closed
Open
Created Jun 21, 2021 by akwizgran@akwizgranOwner

No transport keys for contact who has deleted us and been reintroduced

If a contact has deleted us and then been reintroduced by a mutual contact, we end up without any transport keys that can be used for communicating with the reintroduced contact.

When deleting us, the contact will have removed the keys that we previously shared. When re-adding us, the contact will have stored the new keys created by the introduction, but we fail to store these when a ContactExistsException is thrown:

https://code.briarproject.org/briar/briar/-/blob/00407539d32147995ffb184ff77ab7c9c53c9920/briar-core/src/main/java/org/briarproject/briar/introduction/IntroduceeProtocolEngine.java#L453

The contradictory comments at lines 457 and 472 above suggest some confusion about the right behaviour in this case. To communicate with the reintroduced contact we should store the new keys, which will be used in preference to any existing keys as they're newer. In other words, the call to addRotationKeys() should be moved outside the try/catch block.

Assignee
Assign to
Time tracking