Crypto.Cipher.ARC4, bust or me doing something wrong?

Michael Sparks ms at cerenity.org
Tue Sep 20 19:20:50 CEST 2005


Jp Calderone wrote:

> On Tue, 20 Sep 2005 16:08:19 +0100, Michael Sparks <michaels at rd.bbc.co.uk>
> wrote:
>>Hi,
>>
>>
>>I suspect this is a bug with AMK's Crypto package from
>>http://www.amk.ca/python/code/crypto , but want to
>>check to see if I'm being dumb before posting a bug
>>report.
>>
>>I'm looking at using this library and to familiarise myself writing
>>small tests with each of the ciphers. When I hit Crypto.Cipher.ARC4 I've
>>found that I can't get it to decode what it encodes. This might be a
>>case of PEBKAC, but I'm trying the following:
>>
>>>>> from Crypto.Cipher import ARC4 as cipher
>>>>> key = "........"
>>>>> obj = cipher.new(key)
>>>>> obj.encrypt("This is some random text")
>>')f\xd4\xf6\xa6Lm\x9a%}\x8a\x95\x8ef\x00\xd6:\x12\x00!\xf3k\xafX'
>>>>> X=_
>>>>> X
>>')f\xd4\xf6\xa6Lm\x9a%}\x8a\x95\x8ef\x00\xd6:\x12\x00!\xf3k\xafX'
>>>>> obj.decrypt(X)
>>'\x87\xe1\x83\xc1\x93\xdb\xed\x93U\xe4_\x92}\x9f\xdb\x84Y\xa3\xd4b\x9eHu~'
>>
>>Clearly this decode doesn't match the encode. Me being dumb or bug?
>>
>>Any comments welcome :)
>>
> 
> You need two ARC4 instances.  Performing any operation alters the internal
> state (as it is a stream cipher), which is why your bytes did not come out
> intact.

Ahh. That makes perfect sense. (I thought it must be me missing something)

Many thanks! 

:-)

Regards,


Michael.




More information about the Python-list mailing list