@tidecloak/js
Version:
TideCloak client side JS SDK
50 lines • 2.06 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Serialization_js_1 = require("../Cryptide/Serialization.js");
const index_js_1 = require("../Cryptide/index.js");
const KeyInfo_js_1 = __importDefault(require("./Infos/KeyInfo.js"));
class EnclaveEntry {
/**
* @param {string} username
* @param {string} persona
* @param {bigint} expired
* @param {KeyInfo} userInfo
* @param {(0|1)[]} orksBitwise
* @param {string[]} selfRequesti
* @param {Uint8Array} sessKey
*/
constructor(username, persona, expired, userInfo, orksBitwise, selfRequesti, sessKey) {
this.username = username;
this.persona = persona;
this.expired = expired;
this.userInfo = userInfo;
this.orksBitwise = orksBitwise;
this.selfRequesti = selfRequesti;
this.sessKey = sessKey;
}
toString() {
return JSON.stringify({
username: this.username,
persona: this.persona,
expired: this.expired.toString(),
userInfo: this.userInfo.toNativeTypeObject(),
orksBitwise: JSON.stringify(this.orksBitwise),
selfRequesti: this.selfRequesti,
sessKey: (0, Serialization_js_1.bytesToBase64)(this.sessKey)
});
}
static from(data) {
const json = JSON.parse(data);
const expired = BigInt(json.expired);
const userInfo = KeyInfo_js_1.default.fromNativeTypeObject(json.userInfo); // includes uid + gCMK, ork URL + id + pubs
const orksBitwise = JSON.parse(json.orksBitwise);
const selfRequesti = json.selfRequesti;
const sessKey = (0, Serialization_js_1.base64ToBytes)(json.sessKey);
return new EnclaveEntry(json.username, json.persona, expired, userInfo, orksBitwise, selfRequesti, sessKey);
}
}
exports.default = EnclaveEntry;
//# sourceMappingURL=EnclaveEntry.js.map