Move to protobufjs in ts/groups.ts

This commit is contained in:
Fedor Indutny 2021-06-22 07:46:42 -07:00 committed by GitHub
parent 972a4cba0c
commit 9f0c630574
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
30 changed files with 1424 additions and 964 deletions

View file

@ -51,6 +51,7 @@ import utils from './Helpers';
import WebSocketResource, {
IncomingWebSocketRequest,
} from './WebsocketResources';
import * as Bytes from '../Bytes';
import Crypto from './Crypto';
import { deriveMasterKeyFromGroupV1, typedArrayToArrayBuffer } from '../Crypto';
import { ContactBuffer, GroupBuffer } from './ContactsParser';
@ -73,6 +74,9 @@ import { ByteBufferClass } from '../window.d';
import { deriveGroupFields, MASTER_KEY_LENGTH } from '../groups';
// TODO: remove once we move away from ArrayBuffers
const FIXMEU8 = Uint8Array;
const GROUPV1_ID_LENGTH = 16;
const GROUPV2_ID_LENGTH = 32;
const RETRY_TIMEOUT = 2 * 60 * 1000;
@ -1991,10 +1995,9 @@ class MessageReceiverInner extends EventTarget {
);
}
const masterKey = await deriveMasterKeyFromGroupV1(groupId);
const data = deriveGroupFields(masterKey);
const data = deriveGroupFields(new FIXMEU8(masterKey));
const toBase64 = MessageReceiverInner.arrayBufferToStringBase64;
return toBase64(data.id);
return Bytes.toBase64(data.id);
}
async deriveGroupV1Data(message: DataMessageClass) {
@ -2040,11 +2043,11 @@ class MessageReceiverInner extends EventTarget {
);
}
const fields = deriveGroupFields(masterKey);
const fields = deriveGroupFields(new FIXMEU8(masterKey));
groupV2.masterKey = toBase64(masterKey);
groupV2.secretParams = toBase64(fields.secretParams);
groupV2.publicParams = toBase64(fields.publicParams);
groupV2.id = toBase64(fields.id);
groupV2.secretParams = Bytes.toBase64(fields.secretParams);
groupV2.publicParams = Bytes.toBase64(fields.publicParams);
groupV2.id = Bytes.toBase64(fields.id);
if (groupV2.groupChange) {
groupV2.groupChange = groupV2.groupChange.toString('base64');