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/%7B$module%7D>'>
http://www.php.net/{$module} <http://www.php.net/%7B$module%7D></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);
}