View source code
Display the source code in std/digest/hmac.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
std.digest.hmac.hmac.hmac
- multiple declarations
Function hmac.hmac
Constructs an HMAC digest with the specified secret.
auto hmac
(
scope const(ubyte)[] secret
);
Returns
An instance of HMAC that can be fed data as desired, and finished to compute the final hash when done.
Example
import std .digest .sha : SHA1;
import std .string : representation;
string data1 = "Hello, world", data2 = "Hola mundo";
auto digest = hmac!SHA1("My s3cR3T keY" .representation)
.put(data1 .representation)
.put(data2 .representation)
.finish();
static immutable expected = [
197, 57, 52, 3, 13, 194, 13, 36,
117, 228, 8, 11, 111, 51, 165,
3, 123, 31, 251, 113];
writeln(digest); // expected
Function hmac.hmac
Computes an HMAC digest over the given range of data with the specified secret.
DigestType!H hmac(T...)
(
scope T data,
scope const(ubyte)[] secret
)
if (allSatisfy!(isDigestibleRange, typeof(data)));
Returns
The final HMAC hash.
Example
import std .algorithm .iteration : map;
import std .digest .sha : SHA1;
import std .string : representation;
string data = "Hello, world";
auto digest = data .representation
.map!(a => cast(ubyte)(a+1))
.hmac!SHA1("My s3cR3T keY" .representation);
static assert(is(typeof(digest) == ubyte[20]));
static immutable expected = [
163, 208, 118, 179, 216, 93,
17, 10, 84, 200, 87, 104, 244,
111, 136, 214, 167, 210, 58, 10];
writeln(digest); // expected
}
Authors
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.