Overview

Packages

  • Oauth

Classes

  • Horde_Oauth_Consumer
  • Horde_Oauth_Exception
  • Horde_Oauth_Request
  • Horde_Oauth_SignatureMethod
  • Horde_Oauth_SignatureMethod_HmacSha1
  • Horde_Oauth_SignatureMethod_Plaintext
  • Horde_Oauth_SignatureMethod_RsaSha1
  • Horde_Oauth_Token
  • Horde_Oauth_Utils
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Copyright 2008-2012 Horde LLC (http://www.horde.org/)
 4:  *
 5:  * @author   Chuck Hagenbuch <chuck@horde.org>
 6:  * @license  http://www.horde.org/licenses/bsd BSD
 7:  * @category Horde
 8:  * @package  Oauth
 9:  */
10: 
11: /**
12:  * OAuth RSA-SHA1 signature method
13:  *
14:  * @author   Chuck Hagenbuch <chuck@horde.org>
15:  * @license  http://www.horde.org/licenses/bsd BSD
16:  * @category Horde
17:  * @package  Oauth
18:  */
19: class Horde_Oauth_SignatureMethod_RsaSha1 extends Horde_Oauth_SignatureMethod
20: {
21:     public function __construct($publicKey = null, $privateKey = null)
22:     {
23:         $this->_publicKey = $publicKey;
24:         $this->_privateKey = $privateKey;
25:     }
26: 
27:     public function getName()
28:     {
29:         return 'RSA-SHA1';
30:     }
31: 
32:     public function sign($request, $consumer, $token)
33:     {
34:         $baseString = $request->getSignatureBaseString();
35: 
36:         $pkeyid = openssl_pkey_get_private($this->_privateKey);
37:         $ok = openssl_sign($baseString, $signature, $pkeyid);
38:         openssl_free_key($pkeyid);
39: 
40:         return base64_encode($signature);
41:     }
42: 
43:     public function verify($signature, $request, $consumer, $token)
44:     {
45:         $decodedSignature = base64_decode($signature);
46:         $baseString = $request->getSignatureBaseString();
47: 
48:         $pubkeyid = openssl_pkey_get_public($this->_publicKey);
49:         $result = openssl_verify($baseString, $decodedSignature, $pubkeyid);
50:         openssl_free_key($pubkeyid);
51: 
52:         return $result == 1;
53:     }
54: }
55: 
API documentation generated by ApiGen