@iotize/tap
Version:
IoTize Device client for Javascript
34 lines • 2.6 kB
JavaScript
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=