...
  
  Package hmac
	
	
		
		
		
		
			
				
			
			
				
				
Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as
defined in U.S. Federal Information Processing Standards Publication 198.
An HMAC is a cryptographic hash that uses a key to sign a message.
The receiver verifies the hash by recomputing it using the same key.
Receivers should be careful to use Equal to compare MACs in order to avoid
timing side-channels:
// ValidMAC reports whether messageMAC is a valid HMAC tag for message.
func ValidMAC(message, messageMAC, key []byte) bool {
	mac := hmac.New(sha256.New, key)
	mac.Write(message)
	expectedMAC := mac.Sum(nil)
	return hmac.Equal(messageMAC, expectedMAC)
}
			 
		 
		
		
		
		
			
		
 
		
			
                        
                          In the call graph viewer below, each node
                          is a function belonging to this package
                          and its children are the functions it
                          calls—perhaps dynamically.
                        
                        
                          The root nodes are the entry points of the
                          package: functions that may be called from
                          outside the package.  
                          There may be non-exported or anonymous
                          functions among them if they are called
                          dynamically from another package.
                        
                        
                          Click a node to visit that function's source code.
                          From there you can visit its callers by
                          clicking its declaring func
                          token.
                        
                        
                          Functions may be omitted if they were
                          determined to be unreachable in the
                          particular programs or tests that were
                          analyzed.
                        
                        
                        
                                                
		 
		  
		
		
		
			
			
			
			func Equal(mac1, mac2 []byte) bool
			
Equal compares two MACs for equality without leaking timing information.
			
			
		
			
			
			
			func New(h func() hash.Hash, key []byte) hash.Hash
			
New returns a new HMAC hash using the given hash.Hash type and key.
Note that unlike other hash implementations in the standard library,
the returned Hash does not implement encoding.BinaryMarshaler
or encoding.BinaryUnmarshaler.