function Auth_OpenID_associate($qs, $assoc_secret, $assoc_handle) { $query_data = Auth_OpenID_parse($qs); assert(count($query_data) == 6 || count($query_data) == 4); assert($query_data['openid.mode'] == 'associate'); assert($query_data['openid.assoc_type'] == 'HMAC-SHA1'); assert($query_data['openid.session_type'] == 'DH-SHA1'); $reply_dict = array('assoc_type' => 'HMAC-SHA1', 'assoc_handle' => $assoc_handle, 'expires_in' => '600'); $dh_args = Auth_OpenID_DiffieHellman::serverAssociate($query_data, $assoc_secret); $reply_dict = array_merge($reply_dict, $dh_args); return Auth_OpenID_KVForm::fromArray($reply_dict); }
function Auth_OpenID_associate($qs, $assoc_secret, $assoc_handle) { $query_data = Auth_OpenID_parse($qs); assert($query_data['openid.mode'] == 'associate'); assert($query_data['openid.assoc_type'] == 'HMAC-SHA1'); $reply_dict = array('assoc_type' => 'HMAC-SHA1', 'assoc_handle' => $assoc_handle, 'expires_in' => '600'); if (defined('Auth_OpenID_NO_MATH_SUPPORT')) { assert(count($query_data) == 2); $message = Auth_OpenID_Message::fromPostArgs($query_data); $session = Auth_OpenID_PlainTextServerSession::fromMessage($message); } else { assert(count($query_data) == 6 || count($query_data) == 4); assert($query_data['openid.mode'] == 'associate'); assert($query_data['openid.session_type'] == 'DH-SHA1'); $message = Auth_OpenID_Message::fromPostArgs($query_data); $session = Auth_OpenID_DiffieHellmanSHA1ServerSession::fromMessage($message); $reply_dict['session_type'] = 'DH-SHA1'; } $reply_dict = array_merge($reply_dict, $session->answer($assoc_secret)); return Auth_OpenID_KVForm::fromArray($reply_dict); }
/** * Encodes the response to key-value form. This is a * machine-readable format used to respond to messages which came * directly from the consumer and not through the user-agent. See * the OpenID specification. */ function encodeToKVForm() { return Auth_OpenID_KVForm::fromArray( array('mode' => 'error', 'error' => $this->toString())); }
/** * Generate a signature for a sequence of (key, value) pairs * * @access private * @param array $pairs The pairs to sign, in order. This is an * array of two-tuples. * @return string $signature The binary signature of this sequence * of pairs */ function sign($pairs) { $kv = Auth_OpenID_KVForm::fromArray($pairs); /* Invalid association types should be caught at constructor */ $callback = $this->_macs[$this->assoc_type]; return call_user_func_array($callback, array($this->secret, $kv)); }
function toKVForm() { // Generate a KVForm string that contains the parameters in // this message. This will fail if the message contains // arguments outside of the 'openid.' prefix. return Auth_OpenID_KVForm::fromArray($this->toArgs()); }
function encodeToKVForm() { return Auth_OpenID_KVForm::fromArray($this->fields); }
function _runTest() { $serialized = Auth_OpenID_KVForm::fromArray($this->arr); $this->assertTrue($serialized === null, 'serialization unexpectedly succeeded'); }
/** * Generate a signature for a sequence of (key, value) pairs * * @access private * @param array $pairs The pairs to sign, in order. This is an * array of two-tuples. * @return string $signature The binary signature of this sequence * of pairs */ function sign($pairs) { $kv = Auth_OpenID_KVForm::fromArray($pairs); return Auth_OpenID_HMACSHA1($this->secret, $kv); }