|
Why do you never check API functions' return values?
You should always check for failures (and then call GetLastError to get the reason of).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: Why do you never check API functions' return values?
Please dont shoot next time.
|
|
|
|
|
Ooops yep I did and I get a bad data error i forgot the number, i did put getlasterror i wasnt able to paste it here.
|
|
|
|
|
Please post:
(1) the name of the failing function.
(2) the return value of GetLastError().
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
JayJay,
The code I posted yesterday [^]works in both Unicode and ANSI builds. The only thing I did not give you is UTF8 conversion[^] because I do not know what codepage[^] your C# application is using. The Base64 string "n7M41mbWvrA=" does not appear to be standard Unicode or ANSI when converted from Base64 so you cannot convert it into a readable string until you match the codepage[^].
Best Wishes,
-David Delaune
|
|
|
|
|
Hi David ,
This is the whole solution of the c# application used for the encryption: Link[^] Yup I have tested it and kinda reversed engineered it to imitate the c# conversion, I just revised it a bit that both byte[] toEncryptArray = Convert.FromBase64String(toEncrypt); and return Convert.ToBase64String(resultArray, 0, resultArray.Length); are used instead of using the UTF8 conversion although it is still being used when converting the key.
Please enlighten me
Thanks,
Jayjay
|
|
|
|
|
Hello JayJay,
Now that I have looked at the C# project I think I know what the problem is. The C# code is using ECB (Electronic Code Book) and PKCS-7. They are using entirely different 3DES modes and padding. Its getting late here, I will look at it again tomorrow.
If you want to experiment you can start with changing modes in the code I gave you:
BYTE nMode = CRYPT_MODE_ECB;
CryptSetKeyParam(hKey,KP_MODE,&nMode,0);
You may also need to generate a temporary BLOBHEADER of type PLAINTEXTKEYBLOB for this mode. I'm not really sure.
Good Luck,
-David Delaune
|
|
|
|
|
Hi David,
Thanks I have also tried that as you can see at the code I posted, where will I use the blobheader? Is it just a container of the modes and 3des algorithm?
Thanks for the continuous help,
Jayjay
|
|
|
|
|
Hi David,
What do you think that can help me know? The c# developer said it is standard so it can be fully translated to c++
Thanks,
Jayjay
|
|
|
|
|
Hi Jayjay,
I was unsuccessful with setting the mode to ECB and padding to PKCS #7. I'm afraid you will have to research why this is failing with error code NTE_BAD_ALGID which is to say "Invalid algorithm specified". Perhaps the default cryptographic service provider does not support Triple ECB or maybe I am doing something incorrect.
Best Wishes,
-David Delaune
|
|
|
|
|
Hi David,
Is PKCS5 of c++ win api the same ast PKCS 7 of C# or .net? I will research on this, or I have to ask to change the way of encrypting.
Thanks,
Jayjay
|
|
|
|
|
I looked over the RSA documentation and found that they are the same. The RSA standards documents are here:
Look at PKCS #5:
ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-5v2/pkcs5v2-0.doc
The padding method is described in section 6.1.1 and it states that the padding values are equal to the length of the message modulo 8.
So lets imagine the message you want to encrypt is 60 bytes long.
(60 mod 8) is equal to 0x4
So your padding would be:
0x4 0x4 0x4 0x4
Pretty easy huh?
If you take a look at the padding method described in section 10.3 in the PKCS #7 documents it outlines the same padding. You can verify it here:
ftp://ftp.rsasecurity.com/pub/pkcs/doc/pkcs-7.doc
So yes, PKCS #5 is exactly the same padding as PKCS #7.
Best Wishes,
-David Delaune
|
|
|
|
|
Hi David,
I am kinda confused about how the padding will be can you explain how will the code look like?
Thanks,
jayjay
|
|
|
|
|
how can i display popup menu when click on a button on a dialog box?
thanks in advance.
|
|
|
|
|
|
thank you very much Sandip
|
|
|
|
|
Why do you like to ask same question !!!
|
|
|
|
|
REPOST
With 2hrs 4 mins between, no less!
|
|
|
|
|
Hi All,
Could someone please tell me how can i open a txt file with a press of a button (MFC)?
Thanks & Regards,
Anitha
|
|
|
|
|
|
What do you mean by open ? You open the file using std::ifstream and use the >> operators to read data out of it. Is that what you are looking for ?
|
|
|
|
|
AnithaSubramani wrote: Could someone please tell me how can i open a txt file with a press of a button (MFC)?
In Mumbai, we write an MFC program for that. The program will need a window with a button and the button will need a click-event handler. The handler should have code to "open" (whatever that means) the text file.
You probably will need to do something with what's stored within the opened file, but that's another question that you'll post.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
Rajesh R Subramanian wrote: In Mumbai, we write an MFC program for that.
Strange enough, in Rome we do quite the same.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: Strange enough, in Rome we do quite the same.
But here story is different we dont need to write it,it can be writes itself.
|
|
|
|
|
CPallini wrote: Strange enough, in Rome we do quite the same.
How Shocking. This is quite an amazing coincidence if you ask me.
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|