@dedis/kyber
Version:
A typescript implementation of Kyber interfaces
36 lines (35 loc) • 1.18 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const edwards25519_1 = __importDefault(require("./edwards25519"));
exports.edwards25519 = edwards25519_1.default;
const nist_1 = __importDefault(require("./nist"));
exports.nist = nist_1.default;
function p256Group() {
return new nist_1.default.Curve(nist_1.default.Params.p256);
}
const mappings = new Map([
["edwards25519", () => new edwards25519_1.default.Curve()],
["p256", p256Group],
]);
/**
* availableCurves returns all the curves currently implemented as an array of string
*/
function availableCurves() {
return Array.from(mappings.keys());
}
exports.availableCurves = availableCurves;
/**
* newCurve returns a new curve from its name. The name must be in the list returned by `availableCurves()`.
* @throws {Error} if the name is not known.
*/
function newCurve(name) {
const got = mappings.get(name);
if (got === undefined) {
throw new Error("curve not known");
}
return got();
}
exports.newCurve = newCurve;