public function getSignature($users, $data)
    {
        //make user siggy
        $userArray = array(
            $data['username'],
            $this->realm,
            $users[$data['username']]);
        
        $userSignature = md5(implode(':', $userArray));
        
        //make request siggy
        $requestArray = array(
            $_SERVER['REQUEST_METHOD'],
            $data['uri']);
        
        $requestSignature = md5(implode(':', $requestArray));
        
        //make response siggy
        $responseArray = array(
            $userSignature,
            $data['nonce'],
            $data['nc'],
            $data['cnonce'],
            $data['qop'],
            $requestSignature);
        
        return md5(implode(':', $responseArray));
    }