original_string: protected function _hmacMd5($key, $data, $block = 64)
      {
          if (strlen($key) > 64) {
              $key = pack('H32', md5($key));
          } elseif (strlen($key) < 64) {
              $key = str_pad($key, $block, "\0");
          }
  
          $k_ipad = substr($key, 0, 64) ^ str_repeat(chr(0x36), 64);
          $k_opad = substr($key, 0, 64) ^ str_repeat(chr(0x5C), 64);
  
          $inner = pack('H32', md5($k_ipad . $data));
          $digest = md5($k_opad . $inner);
  
          return $digest;
      }
code: protected function _hmacMd5($key, $data, $block = 64)
      {
          if (strlen($key) > 64) {
              $key = pack('H32', md5($key));
          } elseif (strlen($key) < 64) {
              $key = str_pad($key, $block, "\0");
          }
  
          $k_ipad = substr($key, 0, 64) ^ str_repeat(chr(0x36), 64);
          $k_opad = substr($key, 0, 64) ^ str_repeat(chr(0x5C), 64);
  
          $inner = pack('H32', md5($k_ipad . $data));
          $digest = md5($k_opad . $inner);
  
          return $digest;
      }
code_tokens: protected function _hmacMd5 ( $ key , $ data , $ block = 64 ) { if ( strlen ( $ key ) > 64 ) { $ key = pack ( 'H32' , md5 ( $ key ) ) ; } elseif ( strlen ( $ key ) < 64 ) { $ key = str_pad ( $ key , $ block , "\0" ) ; } $ k_ipad = substr ( $ key , 0 , 64 ) ^ str_repeat ( chr ( 0x36 ) , 64 ) ; $ k_opad = substr ( $ key , 0 , 64 ) ^ str_repeat ( chr ( 0x5C ) , 64 ) ; $ inner = pack ( 'H32' , md5 ( $ k_ipad . $ data ) ) ; $ digest = md5 ( $ k_opad . $ inner ) ; return $ digest ; }
docstring: Prepare CRAM-MD5 response to server's ticket
  
  @param  string $key   Challenge key (usually password)
  @param  string $data  Challenge data
  @param  string $block Length of blocks
  @return string
docstring_tokens: Prepare CRAM - MD5 response to server s ticket