JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr Yf@sdZddlZddlmZddlZedde dDZ edde dDZ dZ Gdd d Z ddd d ZdS) zxHMAC (Keyed-Hashing for Message Authentication) Python module. Implements the HMAC algorithm as described by RFC 2104. N)_compare_digestccs|]}|dAVqdS)\N).0xrr)/opt/alt/python35/lib64/python3.5/hmac.py srccs|]}|dAVqdS)6Nr)rrrrrr sc@s|eZdZdZdZddddZeddZdd Zd d Z d d Z ddZ ddZ dS)HMACz~RFC 2104 HMAC class. Also complies with RFC 4231. This supports the API for Cryptographic Hash Functions (PEP 247). @Ncst|ttfs.tdt|jdkrVtjdtdt j t rn|_ nBtt rdfdd|_ ndfdd|_ |j |_|j |_|jj|_t|jd r3|jj}|d krVtjd ||jftd|j}n#tjd |jtd|j}||_t||kr|j |j}|t|t|}|jj|jt|jj|jt|dk r|j|dS) a1Create 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. *OR* A hash name suitable for hashlib.new(). Defaults to hashlib.md5. Implicit default to hashlib.md5 is deprecated and will be removed in Python 3.6. Note: key and msg must be a bytes or bytearray objects. z,key: expected bytes or bytearray, but got %rNz4szHMAC.__init__..cs j|S)N)r)r)rrrr6s block_sizez:block_size of %d seems too small; using our default of %d.zs  r