mirror of
https://github.com/signalapp/libsignal.git
synced 2024-09-20 03:52:17 +02:00
Merge pull request #233 from signalapp/jack/self-send-indicator
Have TS binding return null on a sealed sender self-send
This commit is contained in:
commit
4d0557c6c4
@ -1217,7 +1217,7 @@ export async function sealedSenderDecryptMessage(
|
||||
identityStore: IdentityKeyStore,
|
||||
prekeyStore: PreKeyStore,
|
||||
signedPrekeyStore: SignedPreKeyStore
|
||||
): Promise<SealedSenderDecryptionResult> {
|
||||
): Promise<SealedSenderDecryptionResult | null> {
|
||||
const ssdr = await SC.SealedSender_DecryptMessage(
|
||||
message,
|
||||
trustRoot,
|
||||
@ -1230,6 +1230,9 @@ export async function sealedSenderDecryptMessage(
|
||||
prekeyStore,
|
||||
signedPrekeyStore
|
||||
);
|
||||
if (ssdr == null) {
|
||||
return null;
|
||||
}
|
||||
return SealedSenderDecryptionResult._fromNativeHandle(ssdr);
|
||||
}
|
||||
|
||||
|
2
node/libsignal_client.d.ts
vendored
2
node/libsignal_client.d.ts
vendored
@ -93,7 +93,7 @@ export function SealedSenderDecryptionResult_GetDeviceId(obj: Wrapper<SealedSend
|
||||
export function SealedSenderDecryptionResult_GetSenderE164(obj: Wrapper<SealedSenderDecryptionResult>): string | null;
|
||||
export function SealedSenderDecryptionResult_GetSenderUuid(obj: Wrapper<SealedSenderDecryptionResult>): string;
|
||||
export function SealedSenderDecryptionResult_Message(obj: Wrapper<SealedSenderDecryptionResult>): Buffer;
|
||||
export function SealedSender_DecryptMessage(message: Buffer, trustRoot: Wrapper<PublicKey>, timestamp: number, localE164: string | null, localUuid: string, localDeviceId: number, sessionStore: SessionStore, identityStore: IdentityKeyStore, prekeyStore: PreKeyStore, signedPrekeyStore: SignedPreKeyStore): Promise<SealedSenderDecryptionResult>;
|
||||
export function SealedSender_DecryptMessage(message: Buffer, trustRoot: Wrapper<PublicKey>, timestamp: number, localE164: string | null, localUuid: string, localDeviceId: number, sessionStore: SessionStore, identityStore: IdentityKeyStore, prekeyStore: PreKeyStore, signedPrekeyStore: SignedPreKeyStore): Promise<SealedSenderDecryptionResult | null>;
|
||||
export function SealedSender_DecryptToUsmc(ctext: Buffer, identityStore: IdentityKeyStore): Promise<UnidentifiedSenderMessageContent>;
|
||||
export function SealedSender_EncryptMessage(destination: Wrapper<ProtocolAddress>, senderCert: Wrapper<SenderCertificate>, ptext: Buffer, sessionStore: SessionStore, identityStore: IdentityKeyStore): Promise<Buffer>;
|
||||
export function SenderCertificate_Deserialize(buffer: Buffer): SenderCertificate;
|
||||
|
@ -804,10 +804,14 @@ describe('SignalClient', () => {
|
||||
bSPreK
|
||||
);
|
||||
|
||||
assert.deepEqual(bPlaintext.message(), aPlaintext);
|
||||
assert.deepEqual(bPlaintext.senderE164(), aE164);
|
||||
assert.deepEqual(bPlaintext.senderUuid(), aUuid);
|
||||
assert.deepEqual(bPlaintext.deviceId(), aDeviceId);
|
||||
assert(bPlaintext != null);
|
||||
|
||||
if (bPlaintext != null) {
|
||||
assert.deepEqual(bPlaintext.message(), aPlaintext);
|
||||
assert.deepEqual(bPlaintext.senderE164(), aE164);
|
||||
assert.deepEqual(bPlaintext.senderUuid(), aUuid);
|
||||
assert.deepEqual(bPlaintext.deviceId(), aDeviceId);
|
||||
}
|
||||
});
|
||||
it('AES-GCM-SIV test vector', () => {
|
||||
// RFC 8452, appendix C.2
|
||||
|
@ -1081,8 +1081,8 @@ async fn SealedSender_DecryptMessage(
|
||||
identity_store: &mut dyn IdentityKeyStore,
|
||||
prekey_store: &mut dyn PreKeyStore,
|
||||
signed_prekey_store: &mut dyn SignedPreKeyStore,
|
||||
) -> Result<SealedSenderDecryptionResult> {
|
||||
sealed_sender_decrypt(
|
||||
) -> Result<Option<SealedSenderDecryptionResult>> {
|
||||
let result = sealed_sender_decrypt(
|
||||
message,
|
||||
trust_root,
|
||||
timestamp,
|
||||
@ -1095,7 +1095,13 @@ async fn SealedSender_DecryptMessage(
|
||||
signed_prekey_store,
|
||||
None,
|
||||
)
|
||||
.await
|
||||
.await;
|
||||
|
||||
match result {
|
||||
Ok(r) => Ok(Some(r)),
|
||||
Err(SignalProtocolError::SealedSenderSelfSend) => Ok(None),
|
||||
Err(e) => Err(e),
|
||||
}
|
||||
}
|
||||
|
||||
#[bridge_fn(
|
||||
|
Loading…
Reference in New Issue
Block a user