diff --git a/README.md b/README.md
index 64123e8..3a9ac2e 100644
--- a/README.md
+++ b/README.md
@@ -82,7 +82,11 @@ Parse and verify in fastify web server, implements ActivityPub inbox
```ts
import Fastify from 'fastify';
import fastifyRawBody from 'fastify-raw-body';
-import { parseRequestSignature, verifyDraftSignature, verifyDigestHeader } from '@misskey-dev/node-http-message-signatures';
+import {
+ verifyDigestHeader,
+ parseRequestSignature,
+ verifyDraftSignature,
+} from '@misskey-dev/node-http-message-signatures';
/**
* Prepare keyId-publicKeyPem Map
@@ -101,7 +105,7 @@ await fastify.register(fastifyRawBody, {
runFirst: true,
});
fastify.post('/inbox', { config: { rawBody: true } }, async (request, reply) => {
- const verifyDigest = verifyDigestHeader(request.raw, request.rawBody, true);
+ const verifyDigest = await verifyDigestHeader(request.raw, request.rawBody, true);
if (!verifyDigest) {
reply.code(401);
return;
@@ -133,7 +137,11 @@ fastify.post('/inbox', { config: { rawBody: true } }, async (request, reply) =>
### Sign and Post
```ts
-import { signAsDraftToRequest, genRFC3230DigestHeader, RequestLike } from '@misskey-dev/node-http-message-signatures';
+import {
+ genRFC3230DigestHeader,
+ signAsDraftToRequest,
+ RequestLike,
+} from '@misskey-dev/node-http-message-signatures';
/**
* Prepare keyId-privateKeyPem Map
@@ -168,7 +176,7 @@ export async function send(url: string, body: string, keyId: string) {
// TODO
} else {
// Draft
- request.headers['Digest'] = genRFC3230DigestHeader(body);
+ request.headers['Digest'] = await genRFC3230DigestHeader(body);
await signAsDraftToRequest(request, { keyId, privateKeyPem }, includeHeaders);
diff --git a/dist/digest/digest-rfc3230.d.ts b/dist/digest/digest-rfc3230.d.ts
index d8df759..2734a80 100644
--- a/dist/digest/digest-rfc3230.d.ts
+++ b/dist/digest/digest-rfc3230.d.ts
@@ -1,14 +1,5 @@
-///
+import { DigestSource } from './utils';
import { DigestHashAlgorithm, IncomingRequest } from '../types';
-import { BinaryLike } from 'node:crypto';
-export declare const digestHashAlgosForDecoding: {
- readonly SHA: "sha1";
- readonly 'SHA-1': "sha1";
- readonly 'SHA-256': "sha256";
- readonly 'SHA-384': "sha384";
- readonly 'SHA-512': "sha512";
- readonly MD5: "md5";
-};
-export declare function genRFC3230DigestHeader(body: string, hashAlgorithm?: DigestHashAlgorithm): string;
+export declare function genRFC3230DigestHeader(body: string, hashAlgorithm: DigestHashAlgorithm): Promise;
export declare const digestHeaderRegEx: RegExp;
-export declare function verifyRFC3230DigestHeader(request: IncomingRequest, rawBody: BinaryLike, failOnNoDigest?: boolean, errorLogger?: ((message: any) => any)): boolean;
+export declare function verifyRFC3230DigestHeader(request: IncomingRequest, rawBody: DigestSource, failOnNoDigest?: boolean, errorLogger?: ((message: any) => any)): Promise;
diff --git a/dist/digest/digest.d.ts b/dist/digest/digest.d.ts
index 16ee9c3..af6f904 100644
--- a/dist/digest/digest.d.ts
+++ b/dist/digest/digest.d.ts
@@ -1,4 +1,4 @@
///
import { IncomingRequest } from "src/types";
import { BinaryLike } from "crypto";
-export declare function verifyDigestHeader(request: IncomingRequest, rawBody: BinaryLike, failOnNoDigest?: boolean, errorLogger?: ((message: any) => any)): boolean;
+export declare function verifyDigestHeader(request: IncomingRequest, rawBody: BinaryLike, failOnNoDigest?: boolean, errorLogger?: ((message: any) => any)): Promise;
diff --git a/dist/digest/utils.d.ts b/dist/digest/utils.d.ts
index c45fba8..a209c54 100644
--- a/dist/digest/utils.d.ts
+++ b/dist/digest/utils.d.ts
@@ -1,6 +1,7 @@
///
-import { BinaryLike } from 'node:crypto';
+import { webcrypto as crypto } from 'node:crypto';
import { DigestHashAlgorithm } from '../types';
-export declare function createBase64Digest(body: BinaryLike, hash: DigestHashAlgorithm): string;
-export declare function createBase64Digest(body: BinaryLike, hash: Ks): Map;
-export declare function createBase64Digest(body: BinaryLike): string;
+export type DigestSource = crypto.BufferSource | string;
+export declare function createBase64Digest(body: DigestSource, hash: DigestHashAlgorithm): Promise;
+export declare function createBase64Digest(body: DigestSource, hash: Ks): Promise