@mojsoski/server-crypto
Version:
Asymmetric key-exchange cryptography library
48 lines (41 loc) • 1.08 kB
text/typescript
import { ICryptoProvider } from "./base";
import { Server } from "./server";
export class RemoteServer<TKey> extends Server<TKey> {
public constructor(
name: string,
publicKey: TKey,
provider: ICryptoProvider<TKey>
) {
super(provider);
this.
this.
}
public get name(): string {
return this.
}
public get publicKey(): TKey {
return this.
}
public static async *fromEnvironment<TKey>(
provider: ICryptoProvider<TKey>
): AsyncIterable<RemoteServer<TKey>> {
for (const key in process.env) {
const value = process.env[key];
if (!value) {
continue;
}
const lowercaseKey = key.toLocaleLowerCase();
if (!lowercaseKey.startsWith("remote_server_")) {
continue;
}
const name = lowercaseKey.slice("remote_server_".length);
yield new RemoteServer(
name,
await provider.crypto.parsePublicKey(value),
provider
);
}
}
}