Skip to content

Commit 1076221

Browse files
committed
0.0.0-alpha.11
1 parent ad968c0 commit 1076221

File tree

5 files changed

+28
-26
lines changed

5 files changed

+28
-26
lines changed

dist/draft/sign.d.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { PrivateKey, RequestLike, SignatureAlgorithm, SignatureHashAlgorithm } from '../types.js';
1+
import type { PrivateKey, RequestLike, SignatureHashAlgorithm } from '../types.js';
22
export declare function genDraftSigningString(request: RequestLike, includeHeaders: string[], additional?: {
33
keyId: string;
44
algorithm: string;
@@ -7,7 +7,6 @@ export declare function genDraftSigningString(request: RequestLike, includeHeade
77
opaque?: string;
88
}): string;
99
export declare function genDraftSignature(signingString: string, privateKey: string, hashAlgorithm: SignatureHashAlgorithm | null): string;
10-
export declare function genDraftAuthorizationHeader(includeHeaders: string[], keyId: string, signature: string, hashAlgorithm?: SignatureAlgorithm): string;
1110
export declare function genDraftSignatureHeader(includeHeaders: string[], keyId: string, signature: string, algorithm: string): string;
1211
export declare function signAsDraftToRequest(request: RequestLike, key: PrivateKey, includeHeaders: string[], opts?: {
1312
hashAlgorithm?: SignatureHashAlgorithm;

dist/index.cjs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ __export(src_exports, {
4343
checkClockSkew: () => checkClockSkew,
4444
detectAndVerifyAlgorithm: () => detectAndVerifyAlgorithm,
4545
digestHeaderRegEx: () => digestHeaderRegEx,
46-
genDraftAuthorizationHeader: () => genDraftAuthorizationHeader,
4746
genDraftSignature: () => genDraftSignature,
4847
genDraftSignatureHeader: () => genDraftSignatureHeader,
4948
genDraftSigningString: () => genDraftSigningString,
@@ -178,9 +177,6 @@ function genDraftSignature(signingString, privateKey, hashAlgorithm) {
178177
const r = crypto2.sign(hashAlgorithm, Buffer.from(signingString), privateKey);
179178
return r.toString("base64");
180179
}
181-
function genDraftAuthorizationHeader(includeHeaders, keyId, signature, hashAlgorithm = "rsa-sha256") {
182-
return `Signature ${genDraftSignatureHeader(includeHeaders, keyId, signature, hashAlgorithm)}`;
183-
}
184180
function genDraftSignatureHeader(includeHeaders, keyId, signature, algorithm) {
185181
return `keyId="${keyId}",algorithm="${algorithm}",headers="${includeHeaders.join(" ")}",signature="${signature}"`;
186182
}
@@ -404,11 +400,6 @@ function validateRequestAndGetSignatureHeader(request, clock) {
404400
if (!request.headers)
405401
throw new SignatureHeaderNotFoundError();
406402
const headers = lcObjectKey(request.headers);
407-
const signatureHeader = headers["signature"];
408-
if (!signatureHeader)
409-
throw new SignatureHeaderNotFoundError();
410-
if (Array.isArray(signatureHeader))
411-
throw new RequestHasMultipleSignatureHeadersError();
412403
if (headers["date"]) {
413404
if (Array.isArray(headers["date"]))
414405
throw new RequestHasMultipleDateHeadersError();
@@ -422,7 +413,18 @@ function validateRequestAndGetSignatureHeader(request, clock) {
422413
throw new InvalidRequestError("Request method not found");
423414
if (!request.url)
424415
throw new InvalidRequestError("Request URL not found");
425-
return signatureHeader;
416+
const signatureHeader = headers["signature"];
417+
if (signatureHeader) {
418+
if (Array.isArray(signatureHeader))
419+
throw new RequestHasMultipleSignatureHeadersError();
420+
return signatureHeader;
421+
}
422+
const authorizationHeader = headers["authorization"];
423+
if (authorizationHeader) {
424+
if (authorizationHeader.startsWith("Signature "))
425+
return authorizationHeader.slice(10);
426+
}
427+
throw new SignatureHeaderNotFoundError();
426428
}
427429
function parseRequestSignature(request, options) {
428430
const signatureHeader = validateRequestAndGetSignatureHeader(request, options?.clockSkew);
@@ -668,7 +670,6 @@ function verifyDraftSignature(parsed, publicKeyPem, errorLogger) {
668670
checkClockSkew,
669671
detectAndVerifyAlgorithm,
670672
digestHeaderRegEx,
671-
genDraftAuthorizationHeader,
672673
genDraftSignature,
673674
genDraftSignatureHeader,
674675
genDraftSigningString,

dist/index.mjs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,6 @@ function genDraftSignature(signingString, privateKey, hashAlgorithm) {
104104
const r = crypto2.sign(hashAlgorithm, Buffer.from(signingString), privateKey);
105105
return r.toString("base64");
106106
}
107-
function genDraftAuthorizationHeader(includeHeaders, keyId, signature, hashAlgorithm = "rsa-sha256") {
108-
return `Signature ${genDraftSignatureHeader(includeHeaders, keyId, signature, hashAlgorithm)}`;
109-
}
110107
function genDraftSignatureHeader(includeHeaders, keyId, signature, algorithm) {
111108
return `keyId="${keyId}",algorithm="${algorithm}",headers="${includeHeaders.join(" ")}",signature="${signature}"`;
112109
}
@@ -330,11 +327,6 @@ function validateRequestAndGetSignatureHeader(request, clock) {
330327
if (!request.headers)
331328
throw new SignatureHeaderNotFoundError();
332329
const headers = lcObjectKey(request.headers);
333-
const signatureHeader = headers["signature"];
334-
if (!signatureHeader)
335-
throw new SignatureHeaderNotFoundError();
336-
if (Array.isArray(signatureHeader))
337-
throw new RequestHasMultipleSignatureHeadersError();
338330
if (headers["date"]) {
339331
if (Array.isArray(headers["date"]))
340332
throw new RequestHasMultipleDateHeadersError();
@@ -348,7 +340,18 @@ function validateRequestAndGetSignatureHeader(request, clock) {
348340
throw new InvalidRequestError("Request method not found");
349341
if (!request.url)
350342
throw new InvalidRequestError("Request URL not found");
351-
return signatureHeader;
343+
const signatureHeader = headers["signature"];
344+
if (signatureHeader) {
345+
if (Array.isArray(signatureHeader))
346+
throw new RequestHasMultipleSignatureHeadersError();
347+
return signatureHeader;
348+
}
349+
const authorizationHeader = headers["authorization"];
350+
if (authorizationHeader) {
351+
if (authorizationHeader.startsWith("Signature "))
352+
return authorizationHeader.slice(10);
353+
}
354+
throw new SignatureHeaderNotFoundError();
352355
}
353356
function parseRequestSignature(request, options) {
354357
const signatureHeader = validateRequestAndGetSignatureHeader(request, options?.clockSkew);
@@ -593,7 +596,6 @@ export {
593596
checkClockSkew,
594597
detectAndVerifyAlgorithm,
595598
digestHeaderRegEx,
596-
genDraftAuthorizationHeader,
597599
genDraftSignature,
598600
genDraftSignatureHeader,
599601
genDraftSigningString,

dist/parse.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ClockSkewSettings, IncomingRequest } from './types.js';
1+
import type { ClockSkewSettings, IncomingRequest, ParsedSignature } from './types.js';
22
export type RequestParseOptions = {
33
/**
44
* Headers should be included in the signature string
@@ -61,4 +61,4 @@ export declare function validateRequestAndGetSignatureHeader(request: IncomingRe
6161
* @param request http.IncomingMessage | http2.Http2ServerRequest
6262
* @param options
6363
*/
64-
export declare function parseRequestSignature(request: IncomingRequest, options?: RequestParseOptions): import("./types.js").ParsedDraftSignature;
64+
export declare function parseRequestSignature(request: IncomingRequest, options?: RequestParseOptions): ParsedSignature;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@misskey-dev/node-http-message-signatures",
3-
"version": "0.0.0-alpha.10",
3+
"version": "0.0.0-alpha.11",
44
"description": "",
55
"type": "module",
66
"keywords": [

0 commit comments

Comments
 (0)