Hello.

PHP-mcrypt on Centos 5.1 based and crypto++ library make little
different output like this.
Is it not a bug or not?

PHP : :0x3D(61).0x15(21).0x69(105).0xCD(205).0x57(87).0xD5(213).
0x00(0).0x00(0).0x00(0).
Crypto 5.5.2: 3d 19 a1 60 b3 7d 00 00 00 00 00 00 0

Which side was wrong? Who can handle this?
Here are two sources.

--1.php source--------------------------------------
<?php
    $userkey2 = "1234567890123456"; //AES ěš© 16
    $input = "Hello!";

    $td = mcrypt_module_open('rijndael-128', '', 'cfb', '');
    //$blockkey_iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td),
MCRYPT_RAND);
    echo "[";
    echo mcrypt_enc_get_iv_size($td);
    echo "]<br>AES:CFB:";
    $blockkey_iv2 = "1234567890123456";
    echo "[";
    echo $blockkey_iv2;
    echo "<br>";
    $s = mcrypt_generic_init($td, $userkey2, $blockkey_iv2);
        if( ($s < 0) || ($s === false))
        die( "Really an error" );
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    echo "[";
    echo $encrypted_data;
    echo "<br>";
    echo "-".strlen($encrypted_data).":";

    printf("0x%02X(%d).", ord(substr($encrypted_data, 0, 1)),
ord(substr($encrypted_data, 0, 1)));
    printf("0x%02X(%d).", ord(substr($encrypted_data, 1, 1)),
ord(substr($encrypted_data, 1, 1)));
    printf("0x%02X(%d).", ord(substr($encrypted_data, 2, 1)),
ord(substr($encrypted_data, 2, 1)));
    printf("0x%02X(%d).", ord(substr($encrypted_data, 3, 1)),
ord(substr($encrypted_data, 3, 1)));
    printf("0x%02X(%d).", ord(substr($encrypted_data, 4, 1)),
ord(substr($encrypted_data, 4, 1)));
    printf("0x%02X(%d).", ord(substr($encrypted_data, 5, 1)),
ord(substr($encrypted_data, 5, 1)));
    printf("0x%02X(%d).", ord(substr($encrypted_data, 6, 1)),
ord(substr($encrypted_data, 6, 1)));
    printf("0x%02X(%d).", ord(substr($encrypted_data, 7, 1)),
ord(substr($encrypted_data, 7, 1)));
    printf("0x%02X(%d).", ord(substr($encrypted_data, 8, 1)),
ord(substr($encrypted_data, 8, 1)));

?>


--2.C++--------------------------------------
        int keyLength = AES::DEFAULT_KEYLENGTH; // 16 bytes = 128 bit key
        int defBlockSize = AES::BLOCKSIZE;

        // Generate a random key
        long nTemp = AES::DEFAULT_KEYLENGTH;
        byte key[AES::DEFAULT_KEYLENGTH + 2];
        memcpy(key, "1234567890123456", 16);
        strcpy((char *)key, "1234567890123456");

        // Generate a random IV
        byte iv[AES::BLOCKSIZE + 2];
        strcpy((char *)iv, "1234567890123456");

        char plainText[1024] = "Hello!";
        byte ciphertext[1024];
        int messageLen = (int)strlen(plainText);

        
//////////////////////////////////////////////////////////////////////////
        // Encrypt

        CFB_Mode<AES>::Encryption cfbEncryption(key, AES::DEFAULT_KEYLENGTH,
iv);
        memset(ciphertext, 0x00, sizeof(ciphertext));
        cfbEncryption.ProcessData((byte*)ciphertext, (byte*)plainText,
messageLen);

        
//////////////////////////////////////////////////////////////////////////
        // Decrypt

        CFB_Mode<AES>::Decryption cfbDecryption(key, AES::DEFAULT_KEYLENGTH,
iv);
        cfbDecryption.ProcessData((byte*)plainText, (byte*)ciphertext,
messageLen);


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [EMAIL PROTECTED]
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---

Reply via email to