class LingotekOAuthSignatureMethod_RSA_SHA1 in Lingotek Translation 7.7
Same name and namespace in other branches
- 7.4 lib/oauth-php/library/signature_method/LingotekOAuthSignatureMethod_RSA_SHA1.php \LingotekOAuthSignatureMethod_RSA_SHA1
- 7.5 lib/oauth-php/library/signature_method/LingotekOAuthSignatureMethod_RSA_SHA1.php \LingotekOAuthSignatureMethod_RSA_SHA1
- 7.6 lib/oauth-php/library/signature_method/LingotekOAuthSignatureMethod_RSA_SHA1.php \LingotekOAuthSignatureMethod_RSA_SHA1
Hierarchy
Expanded class hierarchy of LingotekOAuthSignatureMethod_RSA_SHA1
File
- lib/
oauth-php/ library/ signature_method/ LingotekOAuthSignatureMethod_RSA_SHA1.php, line 36
View source
class LingotekOAuthSignatureMethod_RSA_SHA1 extends LingotekOAuthSignatureMethod {
public function name() {
return 'RSA-SHA1';
}
/**
* Fetch the public CERT key for the signature
*
* @param LingotekOAuthRequest request
* @return string public key
*/
protected function fetch_public_cert($request) {
// not implemented yet, 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
throw OAuthException2("LingotekOAuthSignatureMethod_RSA_SHA1::fetch_public_cert not implemented");
}
/**
* Fetch the private CERT key for the signature
*
* @param LingotekOAuthRequest request
* @return string private key
*/
protected function fetch_private_cert($request) {
// not implemented yet, 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
throw OAuthException2("LingotekOAuthSignatureMethod_RSA_SHA1::fetch_private_cert not implemented");
}
/**
* Calculate the signature using RSA-SHA1
* This function is copyright Andy Smith, 2008.
*
* @param LingotekOAuthRequest request
* @param string base_string
* @param string consumer_secret
* @param string token_secret
* @return string
*/
public function signature($request, $base_string, $consumer_secret, $token_secret) {
// 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
$sig = false;
$ok = openssl_sign($base_string, $sig, $privatekeyid);
// Release the key resource
openssl_free_key($privatekeyid);
return $request
->urlencode(base64_encode($sig));
}
/**
* Check if the request signature is the same as the one calculated for the request.
*
* @param LingotekOAuthRequest request
* @param string base_string
* @param string consumer_secret
* @param string token_secret
* @param string signature
* @return string
*/
public function verify($request, $base_string, $consumer_secret, $token_secret, $signature) {
$decoded_sig = base64_decode($request
->urldecode($signature));
// 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 |
---|---|---|---|---|
LingotekOAuthSignatureMethod_RSA_SHA1:: |
protected | function | * Fetch the private CERT key for the signature * * | |
LingotekOAuthSignatureMethod_RSA_SHA1:: |
protected | function | * Fetch the public CERT key for the signature * * | |
LingotekOAuthSignatureMethod_RSA_SHA1:: |
public | function |
* Return the name of this signature
*
* Overrides LingotekOAuthSignatureMethod:: |
|
LingotekOAuthSignatureMethod_RSA_SHA1:: |
public | function |
* Calculate the signature using RSA-SHA1
* This function is copyright Andy Smith, 2008.
*
* Overrides LingotekOAuthSignatureMethod:: |
|
LingotekOAuthSignatureMethod_RSA_SHA1:: |
public | function |
* Check if the request signature is the same as the one calculated for the request.
*
* Overrides LingotekOAuthSignatureMethod:: |