UNPKG

@xtsai/xai-utils

Version:

The xai-utils is an openai nodejs sdk compatible extension library.

46 lines 1.27 kB
import { createECDH, getCurves } from 'crypto'; import * as ecKeyUtils from 'eckey-utils'; export const oidedToAnsi = { prime256v1: 'P-256', secp384r1: 'P-384', secp521r1: 'P-521', }; export class EcClient { constructor(alg) { this.nameCurve = 'prime256v1'; switch (alg) { case 'ES256': this.nameCurve = 'prime256v1'; break; case 'ES384': this.nameCurve = 'secp384r1'; break; case 'ES512': this.nameCurve = 'secp521r1'; break; default: this.nameCurve = 'prime256v1'; break; } this.ec = createECDH(this.nameCurve); } genPemKeyPairs() { this.ec.generateKeys(); const pems = ecKeyUtils.generatePem({ curveName: this.nameCurve, privateKey: this.ec.getPrivateKey(), publicKey: this.ec.getPublicKey(), }); return { prikey: pems.privateKey, pubkey: pems.publicKey, }; } static newInstance(alg) { return new EcClient(alg); } static listCurves() { return getCurves(); } } //# sourceMappingURL=ec.client.js.map