1. 12 Jul, 2021 2 commits
  2. 26 Jun, 2021 2 commits
    • aguestuser's avatar
      Merge branch 'hf-fixup-mr-599' into 'main' · 23dce269
      aguestuser authored
      [hf] fixup mr !599 - cleanup SignalReceiver/ContactStore
      See merge request !601
    • aguestuser's avatar
      [hf] fixup mr !599 - cleanup SignalReceiver/ContactStore · dfc82895
      aguestuser authored
      - make helpers in different branches of `#dispatch` return
        `Unit` instead of `Job?` (we never used the job and it was odd to
        return null from 3/4 of the branches!)
      - call `ContactStore#create` with uuid and phone number from
        `#handlePreKeyBundle` (instead of calling overloaded `#create` that
        takes an envelope as arg) to (1) be simpler, (2) make it more
        explicit why we are storing both pieces of data at this
        point in the session lifecycle
      - revise the comment for `#handlePreKeyBundle` (it is a "hot spot" and
        likely to be the source of lots of confusion to future us when less
        debugging state is loaded in our heads!)
      - revise `ContactStore#hasContact` to be slightly more
        straightforward (if less terse)
      - remove overloaded `#create` (which is no longer called)
  3. 24 Jun, 2021 14 commits
  4. 18 Jun, 2021 1 commit
  5. 16 Jun, 2021 9 commits
  6. 10 Jun, 2021 2 commits
  7. 07 Jun, 2021 2 commits
  8. 03 Jun, 2021 5 commits
    • aguestuser's avatar
      Merge branch '493-modify-identity-store-impl' into 'main' · d4566633
      aguestuser authored
      [#493] modify identity store to store one identity key per contact
      Closes #493
      See merge request !596
    • aguestuser's avatar
    • aguestuser's avatar
      [493] archive all sessions for a contact after identity change · 215f330e
      aguestuser authored
      - note, in signal-android this is performed by:
        - calling `archiveAllSiblings` (to archive all sessions than the
          session with the same device id as the `SignalProtocolAddress`
          provided by the caller) in the body of `#saveIdentity`... IFF
          that call performed an update to a new key.
          - see: `TextSecureIdentityStore#saveIdentity`
        - then archiving the session for the device corresponding to the
          address provided by the caller IFF the `#saveIdentity` call
          performed an udpate
          - see:  `IdentityUtils#saveIdentity`
      - we can accomplish this more cleanly/efficiently by simply archiving
        all the sessions at the same time IFF a given call to
        `#saveIdentity` performs an update. so we do that!
    • aguestuser's avatar
      [493] add created_at/updated_at fields to identities table · 9ab39e1b
      aguestuser authored
      (to help with sleuthing!)
    • aguestuser's avatar
      [493] when trusting identities, lookup by address not fingerprint · 7f783384
      aguestuser authored
      - having modified the shape of the identity store to disregard device
        id's, we no longer need to query for identity records by
        fingerprint. (this was a workaround to not have to lookup all
        fingerprints for a given contact id, which is now
        unnecessary. moreover, it necessitated looking up an indexed field,
        which will become impossible in the case where the identity store is
        a redis-backed key-value store)
      - here, we modify (and rename) `#trustFingerprint` and add
        `#untrustFingerprint` (which will be needed in our ETL job) to
        lookup identity records by their address, and (as a layer of
        safety), throw if we are trying to trust a fingerprint that is not
        the fingerprint we currently have stored for that address's contact id.
      - we then do a couple of data model tricks that will pay off in a
        protocol store refactor:
        - first, we add `VerifiedAccount#identifier` and `SignalcAccount#identifier` (and
          allow them to default to uuids, which will soon be safe once we have
          a `ProtocolStore#resolveId` function in place to disambiguiate btw/
          uuids and e164 numbers).
        - then, we leverage this to (pretty) safely convert from a `SignalcAddress`
          to a `ProtocolStoreAddress`
        - finally, we use the final converter to allow us to call the
          libsignal-defined `saveIdentity` (which requires a
          `SignalProtocolAddress`) from `SocketReceiver`, thus eliminating
          the need for `IdentityStore#saveFingerprintForAllIdentities`, which we delete
      - to make our confidence in our tests slightly higher, we modify
        `StringGen#genFingerprint` to run the same code that signal and signalc run
        when generating the fingerprint we send to signalboost and back to
        signalc on the `trust` path
  9. 01 Jun, 2021 3 commits