WordPress at a glance
function is not described


SMTP::hmac() protected WP 1.0

Calculate an MD5 HMAC hash. Works like hash_hmac('md5', $data, $key) in case that function is not available.

{} It's a method of the class: SMTP{}

No Hooks.




// protected - for code of main (parent) or child class
$result = $this->hmac( $data, $key );
$data(string) (required)
The data to hash
$key(string) (required)
The key to hash with

Code of SMTP::hmac() WP 5.7.2

protected function hmac($data, $key)
    if (function_exists('hash_hmac')) {
        return hash_hmac('md5', $data, $key);

    //The following borrowed from

    //RFC 2104 HMAC implementation for php.
    //Creates an md5 HMAC.
    //Eliminates the need to install mhash to compute a HMAC
    //by Lance Rushing

    $bytelen = 64; //byte length for md5
    if (strlen($key) > $bytelen) {
        $key = pack('H*', md5($key));
    $key = str_pad($key, $bytelen, chr(0x00));
    $ipad = str_pad('', $bytelen, chr(0x36));
    $opad = str_pad('', $bytelen, chr(0x5c));
    $k_ipad = $key ^ $ipad;
    $k_opad = $key ^ $opad;

    return md5($k_opad . pack('H*', md5($k_ipad . $data)));