Last active
August 29, 2015 14:02
-
-
Save moonlightdrive/39907c73b1102a7d36c4 to your computer and use it in GitHub Desktop.
AWS Signature 4 Signing Process
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(* See http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html | |
# signature;; | |
- : string = "ced6826de92d2bdeed8f846f0bf508e8559e98e4b0199114b84c54174deb456c" | |
*) | |
#require "cryptokit";; | |
open Cryptokit;; | |
let secret = "AWS4" ^ "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY";; | |
let date = "20110909";; | |
let reg = "us-east-1";; | |
let service = "iam";; | |
let signing = "aws4_request";; | |
let hash_str key str = hash_string (MAC.hmac_sha256 key) str;; | |
let kSecret = secret;; | |
let kDate = hash_str kSecret date;; | |
let kReg = hash_str kDate reg;; | |
let kService = hash_str kReg service;; | |
let kSigning = hash_str kService "aws4_request";; | |
let str_to_sign = "AWS4-HMAC-SHA256 | |
20110909T233600Z | |
20110909/us-east-1/iam/aws4_request | |
3511de7e95d28ecd39e9513b642aee07e54f4941150d8df8bf94b328ef7e55e2";; | |
let signature = hash_str kSigning str_to_sign |> transform_string ( Hexa.encode () );; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment