Skip to content

Instantly share code, notes, and snippets.

View jskulavik's full-sized avatar

Jarrod Skulavik jskulavik

  • Colorado
View GitHub Profile
@jskulavik
jskulavik / GenerateAuthToken.fsx
Last active July 30, 2016 05:09
F# Snippet for DocumentDB token generation
let GenerateAuthToken (verb:string) (resourceType:string) (resourceId:string) (key:string) (keyType:string) (tokenVersion:string) =
let hmacSha256 = new Security.Cryptography.HMACSHA256()
hmacSha256.Key <- Convert.FromBase64String(key)
let payLoad = sprintf "%s\n%s\n%s\n%s\n%s\n" (verb.ToLowerInvariant()) (resourceType.ToLowerInvariant()) (resourceId.ToLowerInvariant()) (DateTime.UtcNow.ToString("r").ToLowerInvariant()) ""
let hashPayLoad = hmacSha256.ComputeHash(Text.Encoding.UTF8.GetBytes(payLoad))
let signature = Convert.ToBase64String(hashPayLoad)
let token = Web.HttpUtility.UrlEncode (sprintf "type=%s&ver=%s&sig=%s" keyType tokenVersion signature)