abstract class OAuthSignatureMethod_RSA_SHA1 in jQuery social stream 8
Same name and namespace in other branches
- 8.2 src/Twitter/OAuthSignatureMethod_RSA_SHA1.php \Drupal\jquery_social_stream\Twitter\OAuthSignatureMethod_RSA_SHA1
The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a verified way to the Service Provider, in a manner which is beyond the scope of this specification.
- Chapter 9.3 ("RSA-SHA1")
Hierarchy
- class \Drupal\jquery_social_stream\Twitter\OAuthSignatureMethod
- class \Drupal\jquery_social_stream\Twitter\OAuthSignatureMethod_RSA_SHA1
Expanded class hierarchy of OAuthSignatureMethod_RSA_SHA1
File
- src/
Twitter/ OAuthSignatureMethod_RSA_SHA1.php, line 13
Namespace
Drupal\jquery_social_stream\TwitterView source
abstract class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod {
public function get_name() {
return "RSA-SHA1";
}
// Up to the SP to implement this lookup of keys. Possible ideas are:
// (1) do a lookup in a table of trusted certs keyed off of consumer
// (2) fetch via http using a url provided by the requester
// (3) some sort of specific discovery code based on request
//
// Either way should return a string representation of the certificate
protected abstract function fetch_public_cert(&$request);
// Up to the SP to implement this lookup of keys. Possible ideas are:
// (1) do a lookup in a table of trusted certs keyed off of consumer
//
// Either way should return a string representation of the certificate
protected abstract function fetch_private_cert(&$request);
public function build_signature($request, $consumer, $token) {
$base_string = $request
->get_signature_base_string();
$request->base_string = $base_string;
// Fetch the private key cert based on the request
$cert = $this
->fetch_private_cert($request);
// Pull the private key ID from the certificate
$privatekeyid = openssl_get_privatekey($cert);
// Sign using the key
$ok = openssl_sign($base_string, $signature, $privatekeyid);
// Release the key resource
openssl_free_key($privatekeyid);
return base64_encode($signature);
}
public function check_signature($request, $consumer, $token, $signature) {
$decoded_sig = base64_decode($signature);
$base_string = $request
->get_signature_base_string();
// Fetch the public key cert based on the request
$cert = $this
->fetch_public_cert($request);
// Pull the public key ID from the certificate
$publickeyid = openssl_get_publickey($cert);
// Check the computed signature against the one passed in the query
$ok = openssl_verify($base_string, $decoded_sig, $publickeyid);
// Release the key resource
openssl_free_key($publickeyid);
return $ok == 1;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
OAuthSignatureMethod_RSA_SHA1:: |
public | function |
Build up the signature
NOTE: The output of this function MUST NOT be urlencoded.
the encoding is handled in OAuthRequest when the final
request is serialized Overrides OAuthSignatureMethod:: |
|
OAuthSignatureMethod_RSA_SHA1:: |
public | function |
Verifies that a given signature is correct Overrides OAuthSignatureMethod:: |
|
OAuthSignatureMethod_RSA_SHA1:: |
abstract protected | function | ||
OAuthSignatureMethod_RSA_SHA1:: |
abstract protected | function | ||
OAuthSignatureMethod_RSA_SHA1:: |
public | function |
Needs to return the name of the Signature Method (ie HMAC-SHA1) Overrides OAuthSignatureMethod:: |