summaryrefslogtreecommitdiff
path: root/src/lib/pgp/verify.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/pgp/verify.ts')
-rw-r--r--src/lib/pgp/verify.ts38
1 files changed, 23 insertions, 15 deletions
diff --git a/src/lib/pgp/verify.ts b/src/lib/pgp/verify.ts
index 026b6df..1003147 100644
--- a/src/lib/pgp/verify.ts
+++ b/src/lib/pgp/verify.ts
@@ -24,6 +24,7 @@ import type { Commit } from "../git/types.ts";
import { findMapAsync, type MaybeIterable } from "../../utils/iterator.ts";
import { getUserIDsFromKey } from "./user.ts";
import { env } from "../environment.ts";
+import { toPK } from "./index.ts";
type DataURL = [URL, URL?];
type Corrupted = [false] | [true, Error];
@@ -195,18 +196,21 @@ export class SignatureVerifier {
}
}
- addKey(key: MaybeIterable<PublicKey>): void {
+ addKey(key: MaybeIterable<PublicKey>): Iterable<PublicKey> {
if (key instanceof PublicKey) {
this.keys.push(key);
+ return [key];
} else {
this.keys.push(...key);
+ return key;
}
}
async addKeysFromDir(
key: string | URL,
rules: KeyDiscoveryRules = DEFAULT_KEY_DISCOVERY_RULES,
- ): Promise<void> {
+ ): Promise<Iterable<PublicKey>> {
+ const keys: PublicKey[] = [];
for await (
const i of createKeysFromDir(key, rules, {
encoder: this.#encoder,
@@ -214,39 +218,43 @@ export class SignatureVerifier {
})
) {
this.keys.push(i);
+ keys.push(i);
}
+ return keys;
}
async addKeyFromFile(
key: string | URL,
type: KeyFileFormat,
- ): Promise<void> {
+ ): Promise<PublicKey> {
switch (type) {
case armored: {
- this.keys.push(await createKeyFromFile(key, type, this.#decoder));
- break;
+ const k = await createKeyFromFile(key, type, this.#decoder);
+ this.keys.push(k);
+ return k;
}
case binary: {
- this.keys.push(await createKeyFromFile(key, type, this.#encoder));
- break;
+ const k = await createKeyFromFile(key, type, this.#encoder);
+ this.keys.push(k);
+ return k;
}
}
}
async addKeyFromArmor(
key: string | Uint8Array,
- ): Promise<void> {
- this.keys.push(
- await createKeyFromArmor(key, this.#decoder).then((x) => x.toPublic()),
- );
+ ): Promise<PublicKey> {
+ const k = await createKeyFromArmor(key, this.#decoder).then(toPK);
+ this.keys.push(k);
+ return k;
}
async addKeyFromBinary(
key: string | Uint8Array,
- ): Promise<void> {
- this.keys.push(
- await createKeyFromBinary(key, this.#encoder).then((x) => x.toPublic()),
- );
+ ): Promise<PublicKey> {
+ const k = await createKeyFromBinary(key, this.#encoder).then(toPK);
+ this.keys.push(k);
+ return k;
}
public static async instance(): Promise<SignatureVerifier> {