@@ -11,14 +11,14 @@ import {
1111export 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
1919type 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+
152157export async function signedCatalogFeedV1Handler (
153158 ctx : ActionCtx ,
154159 request : Request ,
0 commit comments