UNPKG

angular-aws-s3

Version:

Open Source Module to Upload your Media and files into AWS S3 Bucket directly from Front-end

23 lines (21 loc) 1.03 kB
import {IConfig, DateYMD} from "./types" import Crypto from "crypto-js"; type WordArray = Crypto.lib.WordArray; export default class Signature { public static getSignature(config: IConfig, date: DateYMD, policyBase64: string): string { const getSignatureKey = (key: string, dateStamp: DateYMD, regionName: string): WordArray => { const kDate: WordArray = Crypto.HmacSHA256(dateStamp, "AWS4" + key); const kRegion: WordArray = Crypto.HmacSHA256(regionName, kDate); const kService: WordArray = Crypto.HmacSHA256("s3", kRegion); const kSigning: WordArray = Crypto.HmacSHA256("aws4_request", kService); return kSigning; }; const signature = (policyEncoded: string): string => { return Crypto.HmacSHA256( policyEncoded, getSignatureKey(config.secretAccessKey, date, config.region) ).toString(Crypto.enc.Hex); }; return signature(policyBase64); } }