UNPKG

@ledgerhq/ledger-cal-service

Version:
60 lines 1.68 kB
import network from "@ledgerhq/live-network"; import { DEFAULT_OPTION, getCALDomain } from "./common"; import { getEnv } from "@ledgerhq/live-env"; const DeviceModel = { blue: "blue", nanoS: "nanos", nanoSP: "nanosp", nanoX: "nanox", stax: "stax", /** Ledger Flex ("europa" is the internal name) */ europa: "flex", flex: "flex", apex: "apex", }; function publicKeyIdOf(usage) { switch (usage) { case "trusted_name": return "domain_metadata_key"; case "coin_meta": return "token_metadata_key"; } } /** * Retrieve PKI certificate * @param device */ export async function getCertificate(device, usage, version = "latest", { env = "prod", signatureKind = "prod", ref = getEnv("CAL_REF") || undefined, } = DEFAULT_OPTION) { let params = { output: "id,target_device,not_valid_after,public_key_usage,certificate_version,descriptor", target_device: DeviceModel[device], public_key_usage: usage, public_key_id: publicKeyIdOf(usage), ref, }; if (version === "latest") { params = { ...params, latest: true, }; } else { params = { ...params, not_valid_after: version, }; } const { data } = await network({ method: "GET", url: `${getCALDomain(env)}/v1/certificates`, params, }); if (data.length === 0) { throw new Error("Empty result"); } return { descriptor: data[0].descriptor.data, signature: data[0].descriptor.signatures[signatureKind], }; } //# sourceMappingURL=certificate.js.map