Author: chabotc
Date: Wed Jun  4 03:38:06 2008
New Revision: 663053

URL: http://svn.apache.org/viewvc?rev=663053&view=rev
Log:
A little test with falling back on basic base64 encoding if plain text tokens 
are allowed and no mcrypt extension is available. Hope this will make it easier 
for people to get a basic dev env setup without banging their heads against the 
mcrypt dependency, which seems to be the main cause of trouble for most 
newcommers

Modified:
    incubator/shindig/trunk/php/index.php
    incubator/shindig/trunk/php/src/gadgets/samplecontainer/BasicBlobCrypter.php

Modified: incubator/shindig/trunk/php/index.php
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/index.php?rev=663053&r1=663052&r2=663053&view=diff
==============================================================================
--- incubator/shindig/trunk/php/index.php (original)
+++ incubator/shindig/trunk/php/index.php Wed Jun  4 03:38:06 2008
@@ -37,7 +37,10 @@
 include_once ('config.php');
 
 // basic sanity check if we have all required modules
-$modules = array('json', 'mcrypt', 'SimpleXML', 'libxml', 'curl');
+$modules = array('json', 'SimpleXML', 'libxml', 'curl');
+if (!Config::get('allow_plaintext_token')) {
+       $modules[] = 'mcrypt';
+}
 foreach ($modules as $module) {
        if (!extension_loaded($module)) {
                die("Shindig requires the {$module} extention, see <a 
href='http://www.php.net/{$module}'>http://www.php.net/{$module}</a> for more 
info");

Modified: 
incubator/shindig/trunk/php/src/gadgets/samplecontainer/BasicBlobCrypter.php
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/gadgets/samplecontainer/BasicBlobCrypter.php?rev=663053&r1=663052&r2=663053&view=diff
==============================================================================
--- 
incubator/shindig/trunk/php/src/gadgets/samplecontainer/BasicBlobCrypter.php 
(original)
+++ 
incubator/shindig/trunk/php/src/gadgets/samplecontainer/BasicBlobCrypter.php 
Wed Jun  4 03:38:06 2008
@@ -40,12 +40,16 @@
        public function wrap(Array $in)
        {
                $encoded = $this->serializeAndTimestamp($in);
-               $cipherText = Crypto::aes128cbcEncrypt($this->cipherKey, 
$encoded);
+               if (!function_exists('mcrypt_module_open') && 
Config::get('allow_plaintext_token')) {
+                       $cipherText = base64_encode($encoded);
+               } else {
+                       $cipherText = 
Crypto::aes128cbcEncrypt($this->cipherKey, $encoded);
+               }
                $hmac = Crypto::hmacSha1($this->hmacKey, $cipherText);
                $b64 = base64_encode($cipherText . $hmac);
                return $b64;
        }
-
+       
        private function serializeAndTimestamp(Array $in)
        {
                $encoded = "";
@@ -78,7 +82,11 @@
                        $cipherText = substr($bin, 0, strlen($bin) - 
Crypto::$HMAC_SHA1_LEN);
                        $hmac = substr($bin, strlen($cipherText));
                        Crypto::hmacSha1Verify($this->hmacKey, $cipherText, 
$hmac);
-                       $plain = Crypto::aes128cbcDecrypt($this->cipherKey, 
$cipherText);
+                       if (!function_exists('mcrypt_module_open') && 
Config::get('allow_plaintext_token')) {
+                               $plain = base64_decode($cipherText);
+                       } else {
+                               $plain = 
Crypto::aes128cbcDecrypt($this->cipherKey, $cipherText);
+                       }
                        $out = $this->deserialize($plain);
                        $this->checkTimestamp($out, $maxAgeSec);
                }


Reply via email to