@ledgerhq/ledger-cal-service
Version:
Ledger CAL service client
67 lines • 2.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCertificate = void 0;
const live_network_1 = __importDefault(require("@ledgerhq/live-network"));
const common_1 = require("./common");
const live_env_1 = require("@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: "apexp",
};
function publicKeyIdOf(usage) {
switch (usage) {
case "trusted_name":
return "domain_metadata_key";
case "coin_meta":
return "token_metadata_key";
}
}
/**
* Retrieve PKI certificate
* @param device
*/
async function getCertificate(device, usage, version = "latest", { env = "prod", signatureKind = "prod", ref = (0, live_env_1.getEnv)("CAL_REF") || undefined, } = common_1.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 (0, live_network_1.default)({
method: "GET",
url: `${(0, common_1.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],
};
}
exports.getCertificate = getCertificate;
//# sourceMappingURL=certificate.js.map