Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add docs to identity_key.rs #470

Closed

Conversation

cosmicexplorer
Copy link
Contributor

Broken out of #287.

Copy link
Contributor

@jrose-signal jrose-signal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

rust/protocol/src/identity_key.rs Outdated Show resolved Hide resolved
rust/protocol/src/identity_key.rs Outdated Show resolved Hide resolved
rust/protocol/src/identity_key.rs Outdated Show resolved Hide resolved
rust/protocol/src/identity_key.rs Outdated Show resolved Hide resolved
rust/protocol/src/identity_key.rs Outdated Show resolved Hide resolved
@cosmicexplorer cosmicexplorer force-pushed the document-identity-key branch 3 times, most recently from 432df90 to b24ef4f Compare June 30, 2022 00:15
rust/protocol/src/identity_key.rs Outdated Show resolved Hide resolved
Comment on lines 56 to 57
/// Given a trusted identity `self`, verify that `other` represents the same user for the given
/// `signature`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what you mean by "for the given signature". The signature is used to perform the verification, but if the verification passes, self and other represent the same user in all cases, not just regarding this signature.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was trying to clarify why the signature is needed for this method, and wasn't quite understanding what "alternate" identity was referring to. I have modified this to:

/// Given a trusted identity `self`, verify that `other` represents an alternate identity for
/// this user.
///
/// `signature` must be calculated from [`IdentityKeyPair::sign_alternate_identity`].

It looks like the alternate identity calculation mechanism is consumed in the app somewhere; I'll take a look at documenting that more fully in another PR perhaps.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's part of the Phone Number Privacy project but I don't know if anyone's hooked it up end-to-end on the app side yet. But as usual that's just the current use case; the API's designed for future sorts of "alternate identities" as well.

@cosmicexplorer cosmicexplorer force-pushed the document-identity-key branch from 4298b99 to b2ca02f Compare June 30, 2022 02:23
@jrose-signal
Copy link
Contributor

Since the last round of PRs we've changed libsignal to match the other Signal repositories in developing mostly in private and doing public releases, with external contributions being cherry-picked into the upcoming release's private branch. That's not so great for an ongoing patch series like this one, though. Perhaps we can make a side branch your PRs are targeted to, docs-effort or something, so that you can build on your own work between releases? While meanwhile they are also cherry-picked to our private main.

@clauz9
Copy link

clauz9 commented Jun 30, 2022

Since the last round of PRs we've changed libsignal to match the other Signal repositories in developing mostly in private and doing public releases,

I was just admiring the fact that the development for libsignal is a lot more transparent, and publicly accessible, compared to the clients 🤔 I love the fact that I am able to see developers making PR's for features and reviewing each other's code, it's incredibly educational.

so, can I ask, why the change ?

@jrose-signal
Copy link
Contributor

jrose-signal commented Jul 1, 2022

There wasn't one big reason, but a bunch of small things adding up:

  • Being inconsistent with the other Signal projects means that it's harder to write automation generic across all Signal-managed projects.

  • Being inconsistent with other Signal projects means that Signal employees have to remember to be more circumspect on libsignal reviews (i.e. not mentioning possible future features or security concerns that could get taken out of context, which has historically been quite frustrating). Our releases are scrutinized quite closely throughout the internet already; having our discussion be public too was 90% okay and 10% walking on eggshells. (I think I got congratulated on joining Signal within a few days because of this GitHub account as well as my https://community.signalusers.org account, even though I hadn't said anything elsewhere.)

    This still comes up sometimes with public forks (signalapp/boring being the most active example for libsignal at the moment; will be used soon), but that's usually a lot rarer.

  • Even in the original development style, we sometimes wanted specific reviews to be discussed privately, for similar reasons. Making the most sensitive reviews the ones with the more awkward process was optimizing for the wrong thing.

I'm a little sad too, but ultimately while it was nice to have a "fully open" development, that's not really the main goal of the project. The thing we optimize for is "supporting the Signal client apps" rather than "making a model open-source library", and I do think that's the right choice.

[This is not something that can be argued with, but if you want to keep discussing it please move that discussion to https://community.signalusers.org, so we can go back to talking about the PR content and how to integrate it!]

@clauz9
Copy link

clauz9 commented Jul 1, 2022

Signal employees have to remember to be more circumspect on libsignal reviews (i.e. not mentioning possible future features or security concerns that could get taken out of context, which has historically been quite frustrating)

yes, this makes perfect sense..

This is not something that can be argued with, but if you want to keep discussing it please move that discussion to https://community.signalusers.org, 

No need, your answer was quite detailed, thanks for taking the time to write it!

@cosmicexplorer
Copy link
Contributor Author

cosmicexplorer commented Jul 18, 2022

I have updated the description in the tracking issue #467 to note that I am maintaining a branch named docs-effort at https://github.com/cosmicexplorer/libsignal-client/tree/docs-effort with all these changes together! @jrose-signal I appreciate your careful description of the new review process and appreciate all the effort Signal puts into ensuring the app remains secure!

@cosmicexplorer cosmicexplorer force-pushed the document-identity-key branch from 16fc650 to b8c09c1 Compare July 19, 2022 00:03
cosmicexplorer added a commit to cosmicexplorer/libsignal that referenced this pull request Jul 19, 2022
cosmicexplorer added a commit to cosmicexplorer/libsignal that referenced this pull request Jul 19, 2022
@jrose-signal
Copy link
Contributor

Cherry-picked as 9ad2362, will be in the next release!

jrose-signal pushed a commit that referenced this pull request Jul 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants