//usr/lib64/lib64//lib64/lib64/python2.7/ó
ÙœSec @ s¸ d Z d d l Z d d l m Z d j g e d ƒ D] Z e e d Aƒ ^ q5 ƒ Z
d j g e d ƒ D] Z e e d Aƒ ^ qg ƒ Z d Z
g Z d d d „ ƒ YZ d d d
„ Z d S( sx HMAC (Keyed-Hashing for Message Authentication) Python module.
Implements the HMAC algorithm as described by RFC 2104.
iÿÿÿÿN( t _compare_digestt i i\ i6 t HMACc B sP e Z d Z d Z d d d „ Z d „ Z d „ Z d „ Z d „ Z d „ Z
RS( s~ RFC 2104 HMAC class. Also complies with RFC 4231.
This supports the API for Cryptographic Hash Functions (PEP 247).
i@ c s§ | t k r d Sˆ d k r4 d d l } | j ‰ n t ˆ d ƒ rO ˆ | _ n d ‡ f d † | _ | j ƒ | _ | j ƒ | _ | j j | _ t | j d ƒ rê | j j } | d k r
t
j d | | j f t
d ƒ | j } q
n# t
j d
| j t
d ƒ | j } t | ƒ | k r7| j | ƒ j ƒ } n | t d ƒ | t | ƒ } | j j | j t ƒ ƒ | j j | j t ƒ ƒ | d k r£| j | ƒ n d S( s9 Create a new HMAC object.
key: key for the keyed hash object.
msg: Initial input for the hash, if provided.
digestmod: A module supporting PEP 247. *OR*
A hashlib constructor returning a new hash object.
Defaults to hashlib.md5.
Niÿÿÿÿt __call__R c s
ˆ j | ƒ S( N( t new( t d( t digestmod( s /usr/lib64/python2.7/hmac.pyt 2 s t
block_sizei s: block_size of %d seems too small; using our default of %d.i s<