[pycrypto] Bug in PyCrypto 2.6.1
don at amberfisharts.com
Mon Dec 1 07:23:03 PST 2014
Thanks for reporting!
I agree that this seems like strange/wrong behaviour.
Especially when realise that the docs seem to contradict the behaviour.
_RSA.RSAobj.size.__doc__ says: Return the maximum number of bits that can be handled by this key.
But this works fine:
>>> key.encrypt(1<<key.size(), "")
Note that 1 << x has x+1 bits so that the above key happily encrypts key.size()+1 bits.
The only thing holding me back from strait out calling it a bug is that
1) this is very old code dating back to 2003.
and 2) the -1 is actively coded there but with out explanation
As a pointer to others the relevant places are:
If it is decided that this is a bug and should be fixed one should also look at other keys, e.g. DSA which seems to do
the same -1 calculation.
On 01/12/14 07:35, Luis González Fernández wrote:
> Hello All:
> I found a strange bug in size() function that return a wrong key size after creating or importing an RSA key. The return
> value for the size funciont seems to be keysize-1.
> Here a demo of the bug:
> luisgf at NCC1701B:~$ python3
> Python 3.4.0 (default, Apr 11 2014, 13:05:11)
> [GCC 4.8.2] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> from Crypto.PublicKey import RSA
> >>> key = RSA.generate(2048)
> >>> key.size()
> Luis González Fernández
> PGP ID: C918B80F (DD6F BFC1 FC14 4C81 34F8 EA1E 6BCB C27F C918 B80F)
> Twitter: @luisgf_2001 / Jabber:luisgf at mijabber.es
> pycrypto mailing list
> pycrypto at lists.dlitz.net
More information about the pycrypto