import {
TAG_PUBLIC_KEY,
TAG_PUBLIC_SUBKEY,
TAG_SIGNATURE,
anyVerifies,
concat,
dearmor,
keyExpiry,
keyFlags,
keyPrefix,
latest,
parseKeyPacket,
parseSignaturePacket,
readPackets,
userIdPrefix,
verifySignature,
} from "./openpgp";
import type { ParsedSignature, PgpKey } from "./openpgp";
const TAG_USER_ID = 13;
const TAG_USER_ATTRIBUTE = 17;
const SUBPACKET_EMBEDDED_SIGNATURE = 32;
const FLAG_SIGN = 0x02;
const SIG_CERTIFICATION_FIRST = 0x10;
const SIG_CERTIFICATION_LAST = 0x13;
const SIG_SUBKEY_BINDING = 0x18;
const SIG_PRIMARY_BINDING = 0x19;
const SIG_KEY_REVOCATION = 0x20;
const SIG_SUBKEY_REVOCATION = 0x28;
export type PgpKeyring = { primary: PgpKey; signingKeys: PgpKey[] };
type SubkeyEntry = {
body: Uint8Array;
key: PgpKey | null;
signatures: ParsedSignature[];
};
async function validSigningSubkey(primary: PgpKey, primaryPrefix: Uint8Array, entry: SubkeyEntry) {
const key = entry.key;