@mojsoski/server-crypto
Version:
Asymmetric key-exchange cryptography library
46 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServerManager = void 0;
class ServerManager {
_currentServer;
_servers;
_provider;
get provider() {
return this._provider;
}
constructor(currentServer, remotes, provider) {
this._provider = provider;
this._currentServer = currentServer;
this._servers = new Map([...remotes].map((remote) => [remote.name.toLocaleLowerCase(), remote]));
}
get self() {
return this._currentServer;
}
async *publicKeys() {
yield [
this.self.name,
{
"application/pkix-spki": await this._provider.crypto.stringifyPublicKey(this.self.publicKey),
"application/jwk+json": await this._provider.crypto.jwkPublicKey(this.self.publicKey),
},
];
for (const [name, server] of this._servers) {
yield [
name,
{
"application/pkix-spki": await this._provider.crypto.stringifyPublicKey(server.publicKey),
"application/jwk+json": await this._provider.crypto.jwkPublicKey(server.publicKey),
},
];
}
}
get(name) {
const lowercaseName = name.toLocaleLowerCase();
if (lowercaseName === this._currentServer.name.toLocaleLowerCase()) {
return this._currentServer;
}
return this._servers.get(lowercaseName);
}
}
exports.ServerManager = ServerManager;
//# sourceMappingURL=server-manager.js.map