Skip to content

Commit c62a506

Browse files
author
Gio Della-Libera
committed
refactor(feeds): share signed payload helper
1 parent bed5f5c commit c62a506

1 file changed

Lines changed: 10 additions & 5 deletions

File tree

convex/httpApiV1/catalogFeedSigning.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ import {
1111
export const OPENCLAW_CATALOG_FEED_PAYLOAD_TYPE =
1212
"openclaw.official-external-plugin-catalog-feed.v1";
1313

14-
type FeedSigningConfig = {
14+
export type FeedSigningConfig = {
1515
keyId: string;
1616
privateKey: CryptoKey;
1717
};
1818

1919
type SignedFeedEnvelope = {
2020
schemaVersion: 1;
21-
payloadType: typeof OPENCLAW_CATALOG_FEED_PAYLOAD_TYPE;
21+
payloadType: string;
2222
payload: string;
2323
signatures: readonly {
2424
keyId: string;
@@ -116,7 +116,8 @@ function toHex(bytes: Uint8Array) {
116116
return result;
117117
}
118118

119-
export async function signCatalogFeedPayload(
119+
export async function signFeedPayload(
120+
payloadType: string,
120121
payload: string,
121122
config: FeedSigningConfig,
122123
): Promise<{ envelope: SignedFeedEnvelope; body: string; sha256: string }> {
@@ -125,12 +126,12 @@ export async function signCatalogFeedPayload(
125126
await crypto.subtle.sign(
126127
{ name: "Ed25519" },
127128
config.privateKey,
128-
dssePreAuthenticationEncoding(OPENCLAW_CATALOG_FEED_PAYLOAD_TYPE, payloadBytes),
129+
dssePreAuthenticationEncoding(payloadType, payloadBytes),
129130
),
130131
);
131132
const envelope: SignedFeedEnvelope = {
132133
schemaVersion: 1,
133-
payloadType: OPENCLAW_CATALOG_FEED_PAYLOAD_TYPE,
134+
payloadType,
134135
payload: base64UrlEncode(payloadBytes),
135136
signatures: [
136137
{
@@ -149,6 +150,10 @@ export async function signCatalogFeedPayload(
149150
};
150151
}
151152

153+
export async function signCatalogFeedPayload(payload: string, config: FeedSigningConfig) {
154+
return await signFeedPayload(OPENCLAW_CATALOG_FEED_PAYLOAD_TYPE, payload, config);
155+
}
156+
152157
export async function signedCatalogFeedV1Handler(
153158
ctx: ActionCtx,
154159
request: Request,

0 commit comments

Comments
 (0)