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.