40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
import { Jsonify } from "type-fest";
|
|
|
|
import { DeviceType } from "../../../enums";
|
|
import { BaseResponse } from "../../../models/response/base.response";
|
|
import { EncString } from "../../../platform/models/domain/enc-string";
|
|
|
|
export class ProtectedDeviceResponse extends BaseResponse {
|
|
constructor(response: Jsonify<ProtectedDeviceResponse>) {
|
|
super(response);
|
|
this.id = this.getResponseProperty("id");
|
|
this.name = this.getResponseProperty("name");
|
|
this.identifier = this.getResponseProperty("identifier");
|
|
this.type = this.getResponseProperty("type");
|
|
this.creationDate = new Date(this.getResponseProperty("creationDate"));
|
|
if (response.encryptedUserKey) {
|
|
this.encryptedUserKey = new EncString(this.getResponseProperty("encryptedUserKey"));
|
|
}
|
|
if (response.encryptedPublicKey) {
|
|
this.encryptedPublicKey = new EncString(this.getResponseProperty("encryptedPublicKey"));
|
|
}
|
|
}
|
|
|
|
id: string;
|
|
name: string;
|
|
type: DeviceType;
|
|
identifier: string;
|
|
creationDate: Date;
|
|
/**
|
|
* Intended to be the users symmetric key that is encrypted in some form, the current way to encrypt this is with
|
|
* the devices public key.
|
|
*/
|
|
encryptedUserKey: EncString;
|
|
/**
|
|
* Intended to be the public key that was generated for a device upon trust and encrypted. Currenly encrypted using
|
|
* a users symmetric key so that when trusted and unlocked a user can decrypt the public key for all their devices.
|
|
* This enabled a user to rotate the keys for all of their devices.
|
|
*/
|
|
encryptedPublicKey: EncString;
|
|
}
|