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