Author: chabotc
Date: Sat Aug 23 06:59:10 2008
New Revision: 688326

URL: http://svn.apache.org/viewvc?rev=688326&view=rev
Log:
SHINDIG-528 by Artemy Tregubenko: Fix crypto in unicode environment

Modified:
    incubator/shindig/trunk/php/src/common/samplecontainer/Crypto.php

Modified: incubator/shindig/trunk/php/src/common/samplecontainer/Crypto.php
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/common/samplecontainer/Crypto.php?rev=688326&r1=688325&r2=688326&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/common/samplecontainer/Crypto.php (original)
+++ incubator/shindig/trunk/php/src/common/samplecontainer/Crypto.php Sat Aug 
23 06:59:10 2008
@@ -1,4 +1,5 @@
 <?php
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -91,11 +92,19 @@
        {
                /* Open the cipher */
                $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 
MCRYPT_MODE_CBC, '');
-               $iv = substr($encrypted_text, 0, Crypto::$CIPHER_BLOCK_SIZE);
+               if (is_callable('mb_substr')) {
+                       $iv = mb_substr($encrypted_text, 0, 
Crypto::$CIPHER_BLOCK_SIZE, 'latin1');
+               } else {
+                       $iv = substr($encrypted_text, 0, 
Crypto::$CIPHER_BLOCK_SIZE);
+               }
                /* Initialize encryption module for decryption */
                mcrypt_generic_init($td, $key, $iv);
                /* Decrypt encrypted string */
-               $encrypted = substr($encrypted_text, 
Crypto::$CIPHER_BLOCK_SIZE);
+               if (is_callable('mb_substr')) {
+                       $encrypted = mb_substr($encrypted_text, 
Crypto::$CIPHER_BLOCK_SIZE, mb_strlen($encrypted_text, 'latin1'), 'latin1');
+               } else {
+                       $encrypted = substr($encrypted_text, 
Crypto::$CIPHER_BLOCK_SIZE);
+               }
                $decrypted = mdecrypt_generic($td, $encrypted);
                /* Terminate decryption handle and close module */
                mcrypt_generic_deinit($td);


Reply via email to