UNPKG

@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
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>; }