whisperfish / libsignal-service-rs

A Rust version of the libsignal-service-java library for communicating with Signal servers.
https://whisperfish.github.io/libsignal-service-rs/libsignal_service
GNU Affero General Public License v3.0
63 stars 27 forks source link

Add pin (with KBS) handler when registration #110

Open EcoloSweet opened 3 years ago

EcoloSweet commented 3 years ago

When an account is already pin protected, it is currently impossible register and to unlock it.

I don't really understand what is the use of KBS and I'm not sure we have the tools needed to provide it. But now, it seems to be the only registration lock pin accepted (the old pin method isn't accepted by signal servers).

This is how signal-cli did it in their java implementation :

https://github.com/AsamK/signal-cli/commit/425626ef9475cbc90ef8ada95dee172389baf521

Is there an easy way to add this in one of the libsignal-service-rs crates ?

rubdos commented 3 years ago

Is there an easy way to add this in one of the libsignal-service-rs crates ?

Depends on how much of the crypto already resides in libsignal-client, which is literally nothing, at first grep.

I'm afraid the KBS is quite some engineering work, for which I personally don't have a lot of time. I'll be glad to help you in the progress by reviewing code, however. I've been in contact with some people at Signal, and they are interested in moving cryptographic primitives into libsignal-client, whenever there's a clear win for them. I do suggest however to first experiment against our crates, and then start the discussion of which code we can move.