UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

34 lines 2.6 kB
import { ConverterError } from './error'; import { TapStreamReader, TapStreamWriter } from '../frame/tap-stream-extended'; import { createTapEncryptedFrame } from '../model/models.extensions'; /** * */ export class CryptedFrameConverter { constructor(frameIdGenerator) { this.frameIdGenerator = frameIdGenerator; } encode(data) { const encryptedModel = createTapEncryptedFrame(this.frameIdGenerator.next(), data); return new TapStreamWriter().writeTapEncryptedFrame(encryptedModel).toBytes; } decode(frame) { if (!frame) { throw ConverterError.nullBufferError('Illegal data: frame is null'); } const encryptedFrame = TapStreamReader.fromArray(frame).readTapEncryptedFrame(); const subData = encryptedFrame.payload; // TODO add back crc // let crc = encryptedFrame.crc; // let computedCrc = this._computeCRC(byteBuffer.data); // if (crc != computedCrc){ // if (this.options.skipCRCCheck){ // } // else{ // throw new Error(`Invalid crc read ${crc}. Should be ${computedCrc}`); // } // } return subData; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRlZC1mcmFtZS1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9jbGllbnQvaW1wbC9zcmMvbGliL2NvbnZlcnRlci9jcnlwdGVkLWZyYW1lLWNvbnZlcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFLckU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBTWhDLFlBQVksZ0JBQXdDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQWdCO1FBQ3JCLE1BQU0sY0FBYyxHQUFHLHVCQUF1QixDQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEVBQzVCLElBQUksQ0FFTCxDQUFDO1FBQ0YsT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUM5RSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWlCO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixNQUFNLGNBQWMsQ0FBQyxlQUFlLENBQUMsNkJBQTZCLENBQUMsQ0FBQztTQUNyRTtRQUNELE1BQU0sY0FBYyxHQUNsQixlQUFlLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDM0QsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUV2QyxvQkFBb0I7UUFDcEIsZ0NBQWdDO1FBQ2hDLHVEQUF1RDtRQUV2RCwyQkFBMkI7UUFDM0Isc0NBQXNDO1FBQ3RDLFFBQVE7UUFDUixZQUFZO1FBQ1osZ0ZBQWdGO1FBQ2hGLFFBQVE7UUFDUixJQUFJO1FBQ0osT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIn0=