Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
I need CHR(10) in C#!
Message
From
09/01/2013 13:41:37
 
 
To
09/01/2013 11:33:19
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Environment versions
Environment:
C# 5.0
OS:
Windows 7
Miscellaneous
Thread ID:
01561827
Message ID:
01561932
Views:
50
>>Turns out I was barking up the wrong tree. My FoxPro (Craig Boyd) and .NET (Bouncy Castle) Blowfish encryption routines are returning encrypted strings of different lengths, and I thought this was the cause. Encoding.GetBytes(string) is being used to convert the string to byte[], and it successfully converted /n to a single CHR(10) byte. I'm not sure why the different lengths. Encrypting a 16-byte string in FoxPro returns a 16-byte encrypted string, in .NET it returns 24 bytes. Probably just an implementation difference. In my case, I was able to workaround by reducing my string to 15 bytes which gets the same result from Fox and .NET. Thanks for the help.
>
>OK, but the wiki http://en.wikipedia.org/wiki/Blowfish_(cipher) tells me it is a block cipher.
>
>Its block size is 64 bits or 8 bytes. Now, if the input size is a multiple of the block size, the size of the output depends on the padding mode http://msdn.microsoft.com/en-us/library/system.security.cryptography.paddingmode.aspx
>
>Padding mode NONE never pads, BUT the input size must be a multiple of the block size
>
>Other padding modes pad data so that the output is a multiple of the block size. When the input is a multiple of the block size, a FULL block is added.
>Hence 16 >> 24
>
>
>If foxpro's size of the string is 16 AND the size of the byte array after encoding.GetBytes() is 16, then
>
> check Boyd's parameters for the padding mode. If the two padding modes are the same, there may be a bug in Boyd's program
>
>
>
>


Joel,

As a follow up - I am (quite) reluctant to use Boyd's FLLs

Re: Zipping Thread #1541146 Message #1541195
Re: VfpEncryption.fll - aes encrypt/decrypt Thread #1413527 Message #1414160

A couple of alternatives

(1) If you can use AesManaged ( http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged(v=VS.95).aspx ) in .Net
I can give the code in foxpro which uses win api - faster for longer blocks, slower for shorter blocks due to the frequency of the api calls

CypherMode: ECB or CBC
PaddingMode : PKCS7
Key: 128, 192 or 256 bits
Block Size: AES always 128 bits
With IV (Initialisation Vector)

(2) If you can use RijndaelManaged ( http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx )

I can give the code in pure foxpro - quite optimised

CypherMode: ECB or CBC
PaddingMode : NONE, PKCS7, ANSIX923, ISO10126
Key: 128, 192 or 256 bits
Block Size: 128, 192 or 256 bits
With IV (Initialisation Vector)
Gregory
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform