Skip to content

Commit

Permalink
0.0.0-alpha.11
Browse files Browse the repository at this point in the history
  • Loading branch information
tamaina committed Mar 1, 2024
1 parent ad968c0 commit 1076221
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 26 deletions.
3 changes: 1 addition & 2 deletions dist/draft/sign.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { PrivateKey, RequestLike, SignatureAlgorithm, SignatureHashAlgorithm } from '../types.js';
import type { PrivateKey, RequestLike, SignatureHashAlgorithm } from '../types.js';
export declare function genDraftSigningString(request: RequestLike, includeHeaders: string[], additional?: {
keyId: string;
algorithm: string;
Expand All @@ -7,7 +7,6 @@ export declare function genDraftSigningString(request: RequestLike, includeHeade
opaque?: string;
}): string;
export declare function genDraftSignature(signingString: string, privateKey: string, hashAlgorithm: SignatureHashAlgorithm | null): string;
export declare function genDraftAuthorizationHeader(includeHeaders: string[], keyId: string, signature: string, hashAlgorithm?: SignatureAlgorithm): string;
export declare function genDraftSignatureHeader(includeHeaders: string[], keyId: string, signature: string, algorithm: string): string;
export declare function signAsDraftToRequest(request: RequestLike, key: PrivateKey, includeHeaders: string[], opts?: {
hashAlgorithm?: SignatureHashAlgorithm;
Expand Down
23 changes: 12 additions & 11 deletions dist/index.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ __export(src_exports, {
checkClockSkew: () => checkClockSkew,
detectAndVerifyAlgorithm: () => detectAndVerifyAlgorithm,
digestHeaderRegEx: () => digestHeaderRegEx,
genDraftAuthorizationHeader: () => genDraftAuthorizationHeader,
genDraftSignature: () => genDraftSignature,
genDraftSignatureHeader: () => genDraftSignatureHeader,
genDraftSigningString: () => genDraftSigningString,
Expand Down Expand Up @@ -178,9 +177,6 @@ function genDraftSignature(signingString, privateKey, hashAlgorithm) {
const r = crypto2.sign(hashAlgorithm, Buffer.from(signingString), privateKey);
return r.toString("base64");
}
function genDraftAuthorizationHeader(includeHeaders, keyId, signature, hashAlgorithm = "rsa-sha256") {
return `Signature ${genDraftSignatureHeader(includeHeaders, keyId, signature, hashAlgorithm)}`;
}
function genDraftSignatureHeader(includeHeaders, keyId, signature, algorithm) {
return `keyId="${keyId}",algorithm="${algorithm}",headers="${includeHeaders.join(" ")}",signature="${signature}"`;
}
Expand Down Expand Up @@ -404,11 +400,6 @@ function validateRequestAndGetSignatureHeader(request, clock) {
if (!request.headers)
throw new SignatureHeaderNotFoundError();
const headers = lcObjectKey(request.headers);
const signatureHeader = headers["signature"];
if (!signatureHeader)
throw new SignatureHeaderNotFoundError();
if (Array.isArray(signatureHeader))
throw new RequestHasMultipleSignatureHeadersError();
if (headers["date"]) {
if (Array.isArray(headers["date"]))
throw new RequestHasMultipleDateHeadersError();
Expand All @@ -422,7 +413,18 @@ function validateRequestAndGetSignatureHeader(request, clock) {
throw new InvalidRequestError("Request method not found");
if (!request.url)
throw new InvalidRequestError("Request URL not found");
return signatureHeader;
const signatureHeader = headers["signature"];
if (signatureHeader) {
if (Array.isArray(signatureHeader))
throw new RequestHasMultipleSignatureHeadersError();
return signatureHeader;
}
const authorizationHeader = headers["authorization"];
if (authorizationHeader) {
if (authorizationHeader.startsWith("Signature "))
return authorizationHeader.slice(10);
}
throw new SignatureHeaderNotFoundError();
}
function parseRequestSignature(request, options) {
const signatureHeader = validateRequestAndGetSignatureHeader(request, options?.clockSkew);
Expand Down Expand Up @@ -668,7 +670,6 @@ function verifyDraftSignature(parsed, publicKeyPem, errorLogger) {
checkClockSkew,
detectAndVerifyAlgorithm,
digestHeaderRegEx,
genDraftAuthorizationHeader,
genDraftSignature,
genDraftSignatureHeader,
genDraftSigningString,
Expand Down
22 changes: 12 additions & 10 deletions dist/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,6 @@ function genDraftSignature(signingString, privateKey, hashAlgorithm) {
const r = crypto2.sign(hashAlgorithm, Buffer.from(signingString), privateKey);
return r.toString("base64");
}
function genDraftAuthorizationHeader(includeHeaders, keyId, signature, hashAlgorithm = "rsa-sha256") {
return `Signature ${genDraftSignatureHeader(includeHeaders, keyId, signature, hashAlgorithm)}`;
}
function genDraftSignatureHeader(includeHeaders, keyId, signature, algorithm) {
return `keyId="${keyId}",algorithm="${algorithm}",headers="${includeHeaders.join(" ")}",signature="${signature}"`;
}
Expand Down Expand Up @@ -330,11 +327,6 @@ function validateRequestAndGetSignatureHeader(request, clock) {
if (!request.headers)
throw new SignatureHeaderNotFoundError();
const headers = lcObjectKey(request.headers);
const signatureHeader = headers["signature"];
if (!signatureHeader)
throw new SignatureHeaderNotFoundError();
if (Array.isArray(signatureHeader))
throw new RequestHasMultipleSignatureHeadersError();
if (headers["date"]) {
if (Array.isArray(headers["date"]))
throw new RequestHasMultipleDateHeadersError();
Expand All @@ -348,7 +340,18 @@ function validateRequestAndGetSignatureHeader(request, clock) {
throw new InvalidRequestError("Request method not found");
if (!request.url)
throw new InvalidRequestError("Request URL not found");
return signatureHeader;
const signatureHeader = headers["signature"];
if (signatureHeader) {
if (Array.isArray(signatureHeader))
throw new RequestHasMultipleSignatureHeadersError();
return signatureHeader;
}
const authorizationHeader = headers["authorization"];
if (authorizationHeader) {
if (authorizationHeader.startsWith("Signature "))
return authorizationHeader.slice(10);
}
throw new SignatureHeaderNotFoundError();
}
function parseRequestSignature(request, options) {
const signatureHeader = validateRequestAndGetSignatureHeader(request, options?.clockSkew);
Expand Down Expand Up @@ -593,7 +596,6 @@ export {
checkClockSkew,
detectAndVerifyAlgorithm,
digestHeaderRegEx,
genDraftAuthorizationHeader,
genDraftSignature,
genDraftSignatureHeader,
genDraftSigningString,
Expand Down
4 changes: 2 additions & 2 deletions dist/parse.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ClockSkewSettings, IncomingRequest } from './types.js';
import type { ClockSkewSettings, IncomingRequest, ParsedSignature } from './types.js';
export type RequestParseOptions = {
/**
* Headers should be included in the signature string
Expand Down Expand Up @@ -61,4 +61,4 @@ export declare function validateRequestAndGetSignatureHeader(request: IncomingRe
* @param request http.IncomingMessage | http2.Http2ServerRequest
* @param options
*/
export declare function parseRequestSignature(request: IncomingRequest, options?: RequestParseOptions): import("./types.js").ParsedDraftSignature;
export declare function parseRequestSignature(request: IncomingRequest, options?: RequestParseOptions): ParsedSignature;
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@misskey-dev/node-http-message-signatures",
"version": "0.0.0-alpha.10",
"version": "0.0.0-alpha.11",
"description": "",
"type": "module",
"keywords": [
Expand Down

0 comments on commit 1076221

Please sign in to comment.