GoLand 2024.2 Help

HTTP Client crypto API reference

The crypto object provides access to HTTP Client Crypto API, which lets you use cryptographic hash functions and HMAC to generate HTTP signatures. You can then use these signatures as variables in pre-request scripts to sign your HTTP requests.

The crypto accepts a method that can be either one of the hash functions (sha1, sha256, sha512, md5), or hmac.

Hash methods

Method

Parameters

Description

updateWithText

textInput (string)

encoding (string): the encoding of textInput. Default is UTF8.

Updates a string to be transformed to a hash.

updateWithHex

hexInput (string)

Updates a hexadecimal string to be transformed to a hash.

updateWithBase64

base64Input (string)

urlSafe (boolean): enter true if the string is encoded using the URL-safe variant of Base64.

Updates a Base64 string to be transformed to a hash.

digest().toHex()

Generates a hash and convert it to the hexadecimal format.

digest().toBase64()

urlSafe (boolean): enter true if you want to use the URL-safe variant of Base64

Generates a hash and convert it to the Base64 format.

HMAC methods

The crypto.hmac object enables you to use HMAC to sign HTTP requests. It has access to all hash methods to generate hashes but also has methods to get the secret part of the token.

Method

Parameters

Description

withTextSecret

textSecret (string)

encoding (string): the encoding of textSecret. Default is UTF8.

Puts the secret key to be used in HMAC.

withHexSecret

hexSecret (string)

Puts the secret key in the hexadecimal format.

withBase64Secret

base64Input (string)

urlSafe (boolean): enter true if the string is encoded using the URL-safe variant of Base64.

Puts the secret key in the Base64 format.

Example:

< {% const signature = crypto.hmac.sha256() .withTextSecret(request.environment.get("secret")) .updateWithText(request.body.tryGetSubstituted()) .digest().toHex(); request.variables.set("signature", signature) const hash = crypto.sha256() .updateWithText(request.body.tryGetSubstituted()) .digest().toHex(); request.variables.set("hash", hash) %} POST https://httpbin.org/post X-My-Signature: {{signature}} X-My-Hash: {{hash}} Content-Type: application/json { "prop": "value" }
Last modified: 11 February 2024