Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Encryption problems with xp
Message
 
 
To
30/01/2004 15:57:14
General information
Forum:
Visual FoxPro
Category:
Windows API functions
Miscellaneous
Thread ID:
00872528
Message ID:
00874646
Views:
10
Hi Don,

Check thread #782446 thread #777634 and thread #714449

Little excerpt:

---begin plagiarized from Greg Taylor
It appears that changes were made to 'rsabase.dll' related to the 128 bit encryption standard. _cryptapi calls are utilizing this DLL on the O/S. Different versions are available in the installs & service packs. Other versions are installed with applications such as I.E., Office, etc. In every case that I found problems & tested, the workstation's rsabase.dll version was older than the one used on the test machine. So my advice is to make sure each O/S has at least the same version of this file or newer by updating with service packs or by installing another application that contains an equal or later version.
---end plagiarized from Greg Taylor

Have you checked your rsabase.dll version?

>I have an application that uses a very simple encryption to hide login passwords. The encryption routine is based on the built in windows security as outlined in an Advisor article some time ago. The class code is:
>
>PUBLIC oEncoder
>#DEFINE T_CHARACTER "C"
>#DEFINE T_NUMERIC "N"
>#DEFINE T_DOUBLE "B"
>
>oEncoder = CREATEOBJECT("encoder")
>
>define class encoder as session
> oCrypto = .f.
> cKey = .F.
>
> procedure init
> this.oCrypto = newobject("_cryptapi", ".\classes\_crypt.vcx")
> this.oCrypto.cProviderName = "Microsoft Base Cryptographic Provider v1.0"
> this.cKey = "VFPRocks!"
> endproc
>
> function EncryptValue( cOriginalValue )
> local lcCipher, luResult
> lcCipher = ""
> lcText = trim(cOriginalValue)
> luResult = this.oCrypto.encryptSessionBlockString(lcText, this.cKey, @lcCipher)
> RETURN lcCipher
> endfunc
>
> function DecryptValue( cEncryptedValue )
> local lcCipher, luResult
> lcText = ""
> lcCipher = trim(cEncryptedValue)
> luResult = this.oCrypto.decryptSessionBlockString(lcCipher, this.cKey, @lcText)
> RETURN lcText
> endfunc
>
>enddefine
>
>and this works fine with win98 and win2000. It also works with winXP except that the returned values are different than with the older versions of windows. Consequently if the original authorization was with 98 or 2000, XP will not allow the login.
>
>Does anyone know a work around for this situation?
>
>Thanks in advance.
Regards,

Mike

"We try to solve the problem by rushing through the design process so that enough time is left at the end to uncover the errors that were made because we rushed through the design process."
- Glenford Myers

If you're going through hell, keep going. - Walt Disney
Previous
Reply
Map
View

Click here to load this message in the networking platform