@aws-sdk/signature-v4-crt
Version:
A revision of AWS Signature V4 request signer based on AWS Common Runtime https://github.com/awslabs/aws-crt-nodejs
65 lines (64 loc) • 1.9 kB
TypeScript
import { auth as crtAuth } from "@aws-sdk/crt-loader";
import { AwsCredentialIdentity } from "@aws-sdk/types";
import { SignatureV4CryptoInit, SignatureV4Init } from "@smithy/signature-v4";
import {
HttpRequest,
RequestPresigner,
RequestPresigningArguments,
RequestSigner,
RequestSigningArguments,
} from "@smithy/types";
export type AwsSigningAlgorithm = crtAuth.AwsSigningAlgorithm;
export interface CrtSignerV4Init extends SignatureV4Init {
signingAlgorithm?: AwsSigningAlgorithm;
}
export declare class CrtSignerV4 implements RequestPresigner, RequestSigner {
private readonly service;
private readonly regionProvider;
private readonly credentialProvider;
private readonly sha256;
private readonly uriEscapePath;
private readonly applyChecksum;
private readonly signingAlgorithm;
constructor({
credentials,
region,
service,
sha256,
applyChecksum,
uriEscapePath,
signingAlgorithm,
}: CrtSignerV4Init & SignatureV4CryptoInit);
private options2crtConfigure;
presign(
originalRequest: HttpRequest,
options?: RequestPresigningArguments
): Promise<HttpRequest>;
sign(
toSign: HttpRequest,
options?: RequestSigningArguments
): Promise<HttpRequest>;
signWithCredentials(
toSign: HttpRequest,
credentials: AwsCredentialIdentity,
options?: RequestSigningArguments
): Promise<HttpRequest>;
private getQueryParam;
private signRequest;
verifySigv4aSigning(
request: HttpRequest,
signature: string,
expectedCanonicalRequest: string,
eccPubKeyX: string,
eccPubKeyY: string,
options?: RequestSigningArguments
): Promise<boolean>;
verifySigv4aPreSigning(
request: HttpRequest,
signature: string | Array<string> | null,
expectedCanonicalRequest: string,
eccPubKeyX: string,
eccPubKeyY: string,
options?: RequestPresigningArguments
): Promise<boolean>;
}