Releases: whisperfish/libsignal-client
Releases · whisperfish/libsignal-client
v0.18.1
- Deprecate zkgroup methods operating on PniCredentials - node: Expose AuthCredentialWithPni and ExpiringProfileKeyCredential through '@signalapp/libsignal/zkgroup'.
v0.18.0: This release introduces two new credentials in zkgroup,
ExpiringProfileKeyCredential and AuthCredentialWithPni. Both credentials have presentations usable with the existing ProfileKeyPresentation and AuthCredentialPresentation variant types, respectively. There have been some corresponding changes to existing APIs: - zkgroup's RedemptionTime type has been renamed to CoarseRedemptionTime, and ReceiptExpirationTime to plain Timestamp. These fields were previously treated opaquely, but are now expected to be days and seconds since the Unix epoch, respectively. (This matches how they're used in Signal.) - Node: ReceiptCredential.getReceiptExpirationTime() and ReceiptCredentialPresentation.getReceiptExpirationTime() now return a number rather than a bigint, since any valid expiration time fits within MAX_SAFE_INTEGER. - AuthCredentialPresentation.getRedemptionTime() now returns Instant (Java), Date (Swift), Date (TypeScript), or zkgroup::Timestamp (Rust). Previously it returned a 32-bit integer. Likewise, verifyAuthCredentialPresentation() now takes an Instant/Date/Date/Timestamp to represent the current time. - AuthCredentialPresentation.getPniCiphertext() has been added, returning null for older credential versions. - verifyProfileKeyCredentialPresentation() now takes an Instant (Java), Date (Swift), Date (TypeScript), or zkgroup::Timestamp (Rust) representing the current time. This is an optional parameter in every language but Rust; if omitted, the current time will be used. - getStructurallyValidV1PresentationBytes() has been added to ProfileKeyCredentialPresentation to smooth over a use case where presentations are read by other clients and not just the server. - The server "zkgroup parameters" have grown and will need updating. The new parameters are backwards-compatible with the old parameters as long as the values for existing keys are not changed. Other changes: - The 'needsPniSignature' field in SessionRecords has been removed. - Node: zkgroup "ByteArray" types are now correctly distinguished by the TypeScript compiler instead of being treated as interchangeable.
v0.17.0
Introduces initial, not-for-production client bindings for CDS2, the upcoming version of Signal’s Contact Discovery Service. CDS2 runs on Intel SGX over a Noise channel, similar to how HsmEnclave runs on HSMs over a Noise channel. The existing ‘hsm-enclave’ crate has been merged into the new ‘attest’ crate. Additional changes: - Node: Test with plain 'mocha' instead of 'electron-mocha' - Java: Fix Dockerfile for an actually-reproducible build - Rust: Update our fork of curve25519-dalek to match upstream 3.2.1