UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

124 lines 7.49 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { ScramInterceptor, } from './scram-interceptor'; export class TapEncryption { // private _sessionState: BehaviorSubject<EncryptionKeys>; constructor(tap) { this.tap = tap; this.scramInterceptor = new ScramInterceptor(this.tap.service.scram); this.tap.client.addInterceptor(this.scramInterceptor); // this._sessionState = new BehaviorSubject<EncryptionKeys>(this._scramInterceptor.options.keys); this.tap.events.subscribe((event) => { switch (event.type) { // Stop encryption on tap logout case 'tap-logout': this.stop(); break; } }); } get isStarted() { return this.scramInterceptor.options.encryption; } setEncryptionKeys(keys) { this.scramInterceptor.setEncryptionKeys(keys); } setEncryptedFrameCounter(frameCounter) { this.scramInterceptor.setFrameCounter(frameCounter); } getEncryptionOptions() { return this.scramInterceptor.options; } refreshEncryptionInitializationVector() { return this.scramInterceptor.refreshInitializationVectors(); } setInitializationVectorRefreshPeriod(period) { return this.scramInterceptor.setInitializationVectorRefreshPeriod(period); } // /** // * Enable/Disable encrytion when communicating with a device // * @param enable true if requests must be encrypted // * @param resetSessionKey true if you want to reset the the session key. // * @param refreshInitializationVector true if you want to change initialization vectors // * // * @deprecated use {@link encryption()} instead // */ // public async enableEncryption( // enable: boolean, // resetSessionKey = false, // refreshInitializationVector = false // ): Promise<void> { // return this.encryption( // enable, // resetSessionKey, // refreshInitializationVector // ); // } // /** // * Enable/Disable encrytion when communicating with a device // * @param enable true if requests must be encrypted // * @param resetSessionKey true if you want to reset the the session key. // * @param refreshInitializationVector true if you want to change initialization vectors // * // */ // public async encryption( // enable: boolean, // resetSessionKey = false, // refreshInitializationVector = false // ): Promise<void> { // await this.scramInterceptor.encryption( // enable, // resetSessionKey, // refreshInitializationVector // ); // } /** * Enable encryption */ start() { return __awaiter(this, void 0, void 0, function* () { const keys = yield this.scramInterceptor.newSession(); this.scramInterceptor.resumeEncryption(); return keys; }); } /** * Disable encryption */ stop() { this.scramInterceptor.clearSession(); } /** * Pause encryption */ pause() { this.scramInterceptor.pauseEncryption(); } /** * Pause encryption */ resume() { this.scramInterceptor.resumeEncryption(); } /** * Setter for the session key * @param key if null, it will stop encryption and remove session key. If true it will update session key used for encryption */ set sessionKey(key) { this.scramInterceptor.sessionKey = key; } /** * Get current session key for encrypted communicatioin */ get sessionKey() { return this.scramInterceptor.sessionKey; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWVuY3J5cHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9hdXRoL3NyYy9saWIvdGFwLWVuY3J5cHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUEsT0FBTyxFQUVMLGdCQUFnQixHQUVqQixNQUFNLHFCQUFxQixDQUFDO0FBUTdCLE1BQU0sT0FBTyxhQUFhO0lBT3hCLDBEQUEwRDtJQUUxRCxZQUFvQixHQUFRO1FBQVIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEQsaUdBQWlHO1FBQ2pHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xDLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDbEIsZ0NBQWdDO2dCQUNoQyxLQUFLLFlBQVk7b0JBQ2YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNaLE1BQU07YUFDVDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWxCRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ2xELENBQUM7SUFrQkQsaUJBQWlCLENBQUMsSUFBb0I7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxZQUFvQjtRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxxQ0FBcUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRU0sb0NBQW9DLENBQUMsTUFBYztRQUN4RCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQ0FBb0MsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsTUFBTTtJQUNOLCtEQUErRDtJQUMvRCxzREFBc0Q7SUFDdEQsMkVBQTJFO0lBQzNFLDBGQUEwRjtJQUMxRixLQUFLO0lBQ0wsa0RBQWtEO0lBQ2xELE1BQU07SUFDTixpQ0FBaUM7SUFDakMsdUJBQXVCO0lBQ3ZCLCtCQUErQjtJQUMvQiwwQ0FBMEM7SUFDMUMscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5QixrQkFBa0I7SUFDbEIsMkJBQTJCO0lBQzNCLHNDQUFzQztJQUN0QyxTQUFTO0lBQ1QsSUFBSTtJQUVKLE1BQU07SUFDTiwrREFBK0Q7SUFDL0Qsc0RBQXNEO0lBQ3RELDJFQUEyRTtJQUMzRSwwRkFBMEY7SUFDMUYsS0FBSztJQUNMLE1BQU07SUFDTiwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLCtCQUErQjtJQUMvQiwwQ0FBMEM7SUFDMUMscUJBQXFCO0lBQ3JCLDhDQUE4QztJQUM5QyxrQkFBa0I7SUFDbEIsMkJBQTJCO0lBQzNCLHNDQUFzQztJQUN0QyxTQUFTO0lBQ1QsSUFBSTtJQUVKOztPQUVHO0lBQ1UsS0FBSzs7WUFDaEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQUE7SUFFRDs7T0FFRztJQUNJLElBQUk7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsVUFBVSxDQUFDLEdBQTJCO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7SUFDMUMsQ0FBQztDQUNGIn0=