if you use the unsimplefied version of the cryptoapi you have to reverse the 
bytes auf your results before using them.

>
>Hi!
>
>I am trying to convert my code of 3DES encoding from Windows CryptoAPI to
>OpenSSL. Could you verify the code attached and may be point me to
>appropriate OpenSSL functions?
>
>/////////////////////////////////////////////////              
>////////////////////////////////////////////////
>// Windows CryptoAPI                                            // OpenSSL
>                                                                         //
>HCRYPTPROV hProv;                                              //
>CryptAcquireContext(&hProv, NULL,                          //
>       MS_ENHANCED_PROV, PROV_RSA_FULL,            //
>       CRYPT_VERIFYCONTEXT));                             //
>                                                                         //
>HCRYPTHASH hHash;                                             //
>CryptCreateHash(hProv, CALG_MD5, 0, 0, &hHash);    //
>                                                                        //
>unsigned char *user_key, ukeyl;                             //
>CryptHashData(hHash, user_key, ukeyl, 0);              //
>                                                                        //
>                                                                        //
>// 192-bit or 24-byte key length                             // unsigned
>char *user_key, user_key_len;
>const unsigned int derived_key_len = 0xC0 << 0x10;  // unsigned char
>*derived_key, derived_key_len;
>                                                                        //
>unsigned char *iv = NULL;
>HCRYPTKEY hKey;                                                //
>CryptDeriveKey(hProv, CALG_3DES,                         // derived_key_len
>= EVP_BytesToKey(
>       hHash, derived_key_len, &hKey);                    //        
>EVP_des_ede3_cbc(), EVP_md5(), NULL,
>                                                                        //     
>   
>user_key, user_key_len, 1, 
>                                                                        //     
>   
>derived_key, iv);
>                                                                        //
>                                                                        //
>EVP_CIPHER_CTX ctx = {};
>                                                                        //
>EVP_EncryptInit(&ctx,
>                                                                        //     
>   
>EVP_des_ede3_cbc(), derived_key, iv);
>                                                                        //
>const unsigned char* text;                                    // const
>unsigned char* text;
>int encoded_len;                                                  //
>unsigned char* encoded;
>bool FinalBlock = false;                                          // int
>text_len, encoded_len;
>                                                                        //
>CryptEncrypt(hKey, 0, FinalBlock, 0,                        //
>EVP_EncryptUpdate(&ctx,
>       text, &encoded_len, 1024);                           //         encoded,
>&encoded_len, text, text_len);
>                                                                        //
>FinalBlock = true;                                                 //
>CryptEncrypt(hKey, 0, FinalBlock, 0,                        //
>EVP_EncryptFinal_ex(&ctx,
>       text, &encoded_len, 1024);                            //        encoded 
> +
>encoded_len, NULL);
>
>-- 
>View this message in context: 
>http://www.nabble.com/DES3%3A-Windows-CryptoAPI-and-OpenSSL-tf4689809.html#a134
>03663
>Sent from the OpenSSL - User mailing list archive at Nabble.com.
>
>______________________________________________________________________
>OpenSSL Project                                 http://www.openssl.org
>User Support Mailing List                    openssl-users@openssl.org
>Automated List Manager                           [EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to