@jsxc/jsxc
Version:
Real-time XMPP chat application with video calls, file transfer and encrypted communication
48 lines (36 loc) • 1.2 kB
text/typescript
export interface ISignalBundleObject {
identityKey: ArrayBuffer;
registrationId: number;
preKey: {
keyId: number;
publicKey: ArrayBuffer;
};
signedPreKey: {
keyId: number;
publicKey: ArrayBuffer;
signature: string | ArrayBuffer;
};
}
interface ISignalPreKey {
keyId: number;
keyPair: ISignalKeyPair;
}
interface ISignalSignedPreKey extends ISignalPreKey {
signature: ArrayBuffer;
}
interface ISignalKeyPair {
privKey?: ArrayBuffer;
pubKey: ArrayBuffer;
}
interface ISignalKeyHelper {
generatePreKey: (keyId: number) => Promise<ISignalPreKey>;
generateSignedPreKey: (identityKeyPair: ISignalKeyPair, signedKeyId: number) => Promise<ISignalSignedPreKey>;
generateIdentityKeyPair: () => Promise<ISignalKeyPair>;
generateRegistrationId: () => number;
}
let libsignal = (<any>window).libsignal || {};
export let SignalAddress = libsignal.SignalProtocolAddress;
export let SignalKeyHelper: ISignalKeyHelper = libsignal.KeyHelper;
export let SignalSessionBuilder = libsignal.SessionBuilder;
export let SignalSessionCipher = libsignal.SessionCipher;
export let SignalFingerprintGenerator = libsignal.FingerprintGenerator;