Use untagged pnis in storage service

This commit is contained in:
Fedor Indutny 2023-09-28 01:14:55 +02:00 committed by GitHub
parent 283ef57779
commit eb7942dd1e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 530 additions and 62 deletions

View file

@ -12,17 +12,14 @@ import {
} from '../Crypto';
import { calculateAgreement, createKeyPair, generateKeyPair } from '../Curve';
import { SignalService as Proto } from '../protobuf';
import type { PniString, AciString } from '../types/ServiceId';
import { normalizePni } from '../types/ServiceId';
import { normalizeAci } from '../util/normalizeAci';
import { strictAssert } from '../util/assert';
type ProvisionDecryptResult = {
aciKeyPair: KeyPairType;
pniKeyPair?: KeyPairType;
number?: string;
aci?: AciString;
pni?: PniString;
aci?: string;
untaggedPni?: string;
provisioningCode?: string;
userAgent?: string;
readReceipts?: boolean;
@ -75,13 +72,14 @@ class ProvisioningCipherInner {
const { aci, pni } = provisionMessage;
strictAssert(aci, 'Missing aci in provisioning message');
strictAssert(pni, 'Missing pni in provisioning message');
const ret: ProvisionDecryptResult = {
aciKeyPair,
pniKeyPair,
number: provisionMessage.number,
aci: normalizeAci(aci, 'ProvisionMessage.aci'),
pni: pni ? normalizePni(pni, 'ProvisionMessage.pni') : undefined,
aci,
untaggedPni: pni,
provisioningCode: provisionMessage.provisioningCode,
userAgent: provisionMessage.userAgent,
readReceipts: provisionMessage.readReceipts,