Files
NapCatQQ/.pnpm-store/v3/files/76/71541a203f3703660889731a1f125c5c2122ee0eee462b07d5fe2fd14d57d25501a5560ca5aacf35e5701f159f74227cd58e2ec0f49a5fb6893f1d4d09ed28
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

53 lines
2.0 KiB
Plaintext

import { BitString } from "@peculiar/asn1-schema";
import { id_ce } from "../object_identifiers";
export const id_ce_keyUsage = `${id_ce}.15`;
export var KeyUsageFlags;
(function (KeyUsageFlags) {
KeyUsageFlags[KeyUsageFlags["digitalSignature"] = 1] = "digitalSignature";
KeyUsageFlags[KeyUsageFlags["nonRepudiation"] = 2] = "nonRepudiation";
KeyUsageFlags[KeyUsageFlags["keyEncipherment"] = 4] = "keyEncipherment";
KeyUsageFlags[KeyUsageFlags["dataEncipherment"] = 8] = "dataEncipherment";
KeyUsageFlags[KeyUsageFlags["keyAgreement"] = 16] = "keyAgreement";
KeyUsageFlags[KeyUsageFlags["keyCertSign"] = 32] = "keyCertSign";
KeyUsageFlags[KeyUsageFlags["cRLSign"] = 64] = "cRLSign";
KeyUsageFlags[KeyUsageFlags["encipherOnly"] = 128] = "encipherOnly";
KeyUsageFlags[KeyUsageFlags["decipherOnly"] = 256] = "decipherOnly";
})(KeyUsageFlags || (KeyUsageFlags = {}));
export class KeyUsage extends BitString {
toJSON() {
const flag = this.toNumber();
const res = [];
if (flag & KeyUsageFlags.cRLSign) {
res.push("crlSign");
}
if (flag & KeyUsageFlags.dataEncipherment) {
res.push("dataEncipherment");
}
if (flag & KeyUsageFlags.decipherOnly) {
res.push("decipherOnly");
}
if (flag & KeyUsageFlags.digitalSignature) {
res.push("digitalSignature");
}
if (flag & KeyUsageFlags.encipherOnly) {
res.push("encipherOnly");
}
if (flag & KeyUsageFlags.keyAgreement) {
res.push("keyAgreement");
}
if (flag & KeyUsageFlags.keyCertSign) {
res.push("keyCertSign");
}
if (flag & KeyUsageFlags.keyEncipherment) {
res.push("keyEncipherment");
}
if (flag & KeyUsageFlags.nonRepudiation) {
res.push("nonRepudiation");
}
return res;
}
toString() {
return `[${this.toJSON().join(", ")}]`;
}
}