Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export const base64ToArraySync = (base64: string): Uint8Array => Decoder.fromBase64(stripDataUri(base64)).asBytes;
public decrypt(sessionId: string, encodedCiphertext: string): Promise {
this.logger.log(`Decrypting message for session ID "${sessionId}"`);
const messageBytes: Uint8Array = Decoder.fromBase64(encodedCiphertext).asBytes;
return this.cryptobox.decrypt(sessionId, messageBytes.buffer);
}
private from_store(record: PersistedRecord): ArrayBuffer {
return typeof record.serialised === 'string'
? Decoder.fromBase64(record.serialised).asBytes.buffer
: record.serialised;
}
private async encryptPayloadForSession(
sessionId: string,
plainText: Uint8Array,
base64EncodedPreKey: string,
): Promise {
this.logger.log(`Encrypting Payload for session ID "${sessionId}"`);
let encryptedPayload;
try {
const decodedPreKeyBundle: Uint8Array = Decoder.fromBase64(base64EncodedPreKey).asBytes;
const payloadAsBuffer: ArrayBuffer = await this.cryptobox.encrypt(
sessionId,
plainText,
decodedPreKeyBundle.buffer,
);
encryptedPayload = Encoder.toBase64(payloadAsBuffer).asString;
} catch (error) {
this.logger.error(`Could not encrypt payload: ${error.message}`);
encryptedPayload = '💣';
}
return {sessionId, encryptedPayload};
}
private from_store(record: PersistedRecord): ArrayBuffer {
return typeof record.serialised === 'string'
? Decoder.fromBase64(record.serialised).asBytes.buffer
: record.serialised;
}
return records.map((record: SerialisedRecord) => {
const payload =
typeof record.serialised === 'string'
? Decoder.fromBase64(record.serialised).asBytes.buffer
: record.serialised;
return ProteusKeys.PreKey.deserialise(payload);
});
});