function _openid_signature

Sign certain keys in a message

Parameters

$association - object loaded from openid_association or openid_server_association table:

  • important fields are ->assoc_type and ->mac_key

$message_array - array of entire message about to be sent:

$keys_to_sign - keys in the message to include in signature (without: 'openid.' appended)

4 calls to _openid_signature()
OpenIDFunctionalTest::testSignatureValidation in drupal/core/modules/openid/lib/Drupal/openid/Tests/OpenIDFunctionalTest.php
Tests that openid.signed is verified.
OpenIDTest::testOpenidSignature in drupal/core/modules/openid/lib/Drupal/openid/Tests/OpenIDTest.php
Test _openid_signature().
openid_verify_assertion_signature in drupal/core/modules/openid/openid.module
Verify the signature of the response received from the OpenID provider.
_openid_test_endpoint_authenticate in drupal/core/modules/openid/tests/openid_test.module
OpenID endpoint; handle "authenticate" requests.

File

drupal/core/modules/openid/openid.inc, line 429
OpenID utility functions.

Code

function _openid_signature($association, $message_array, $keys_to_sign) {
  $signature = '';
  $sign_data = array();
  foreach ($keys_to_sign as $key) {
    if (isset($message_array['openid.' . $key])) {
      $sign_data[$key] = $message_array['openid.' . $key];
    }
  }
  $message = _openid_create_message($sign_data);
  $secret = base64_decode($association->mac_key);
  $signature = hash_hmac('sha1', $message, $secret, TRUE);
  return base64_encode($signature);
}