(calculate-expiration-offset start-ts-ms offset-secs)
Adds offset-secs
* 1000 to the start-ts-ms
timestamp value
Adds `offset-secs` * 1000 to the `start-ts-ms` timestamp value
(create-challenge options)
Creates a challenge for the client to solve. options is a map of the following keys:
:algorithm
- algorithm for creating a digest of the challenge, default is SHA-256.
For ClojureScript, it will always be SHA-256.
Can also be SHA-1 or SHA-512:max-number
- highest random number used for generating the challenge. Default is 1e6, represented as a fixed point integer.:salt-len
- length of the salt. Default is 12. Longer salts are more computationally expensive.:expires
- optional timestamp. This value will be implicitly bound if ttl
is present
by calling calculate-expiration-offset
. See below. Usually you'll only need to set ttl
:ttl
- Time-to-live in seconds. Needed for calculating challenge expiration time.
You don't need to convert a string value to an integer here, it'll be converted for you.
Note the difference between ttl
and expires
. Expires is returned by the handler,
while ttl must be present in the challenge response salt to compare the hashes
of the challenge in the initial challenge and the challenge response.
current-time-ms
is platform-specfic pseudocode placeholder here:current-time
- current UNIX millisecond timestamp.
Pass this argument to make the calculation of challenge expiration more
deterministic. Otherwise it will be generated as a side effect inside create-challenge
:hmac-key
- required, the secret key for creating the HMAC signature (a string value, not a path):params
- optional, additional parameters to include in the saltChanging the following parameters to hardcoded values is not recommended outside development settings
:salt
- optional, custom salt to use instead of generating oneo
Used for validation:number
- optional, custom number to use instead of generating oneCreates a challenge for the client to solve. options is a map of the following keys: - `:algorithm` - algorithm for creating a digest of the challenge, default is **SHA-256**. For ClojureScript, it will always be SHA-256. Can also be **SHA-1** or **SHA-512** - `:max-number` - highest random number used for generating the challenge. Default is 1e6, represented as a fixed point integer. - `:salt-len` - length of the salt. Default is 12. Longer salts are more computationally expensive. - `:expires` - optional timestamp. This value will be implicitly bound if `ttl` is present by calling `calculate-expiration-offset`. See below. Usually you'll only need to set `ttl` - `:ttl` - Time-to-live in seconds. Needed for calculating challenge expiration time. You don't need to convert a string value to an integer here, it'll be converted for you. Note the difference between `ttl` and `expires`. Expires is returned by the handler, while ttl must be present in the challenge response salt to compare the hashes of the challenge in the initial challenge and the challenge response. `current-time-ms` is platform-specfic pseudocode placeholder here - `:current-time` - current UNIX millisecond timestamp. Pass this argument to make the calculation of challenge expiration more deterministic. Otherwise it will be generated as a side effect inside `create-challenge` - `:hmac-key` - required, the secret key for creating the HMAC signature (a string value, not a path) - `:params` - optional, additional parameters to include in the salt Changing the following parameters to hardcoded values is not recommended outside development settings - `:salt` - optional, custom salt to use instead of generating oneo Used for validation - `:number` - optional, custom number to use instead of generating one
(hash-hex algorithm data)
Generates a hexadecimal string representation of the challenge message digest created using the selected algorithm
Generates a hexadecimal string representation of the challenge message digest created using the selected algorithm
(hash-hex _ data)
Generates a hexadecimal string representation of the SHA-256 digest of the challenge message
Generates a hexadecimal string representation of the SHA-256 digest of the challenge message
(hmac-hex algorithm data key)
Returns the HMAC-encoded value of the data. Params
algorithm
- 'SHA-256', 'SHA-512' or 'SHA-1'Returns the HMAC-encoded value of the data. Params - `algorithm` - 'SHA-256', 'SHA-512' or 'SHA-1'
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close