[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Help] Re: Bug#939181: cycle: Python2 removal in sid/bullseye



Hi Andreas,

On 16.09.19 11:38, Andreas Tille wrote:
> Hi Peter,
> 
> On Sun, Sep 15, 2019 at 02:47:50PM +0100, peter green wrote:
>>>> tmp = rt.encrypt('Cycle{}'.format(pickle.dumps(objSave)))
>>>
>>> Thanks to this hint
>> This hint was *wrong*, it will introduce garbage into the string and the "rotor" code is clearly designed to work with byte strings, not unicode strings.
>>
>> Change it to
>>
>> "tmp=rt.encrypt( b'Cycle'+pickle.dumps(objSave) )"

Oops, got that backwards. Thanks for spotting this.
 
> Thanks a lot for your patience.  Unfortunately this is not
> yet the final solution:
> 
> ...
> Traceback (most recent call last):
>   File "/usr/bin/cycle", line 83, in OnCloseWindow
>     Save_Cycle(cycle.name, cycle.passwd, cycle.file)
>   File "/usr/share/cycle/save_load.py", line 46, in Save_Cycle
>     tmp=rt.encrypt( b'Cycle'+pickle.dumps(objSave) )
>   File "/usr/share/cycle/p_rotor.py", line 63, in encrypt
>     return self.cryptmore(buf, 0)
>   File "/usr/share/cycle/p_rotor.py", line 88, in cryptmore
>     c = rotors[i][c ^ pos[i]]
> TypeError: unsupported operand type(s) for ^: 'int' and 'float'

That code could be patched by using int() around potentially float
numbers. But honestly, it should better be ripped out and use
real encryption. The docstring tells so:
The rotor module has been removed from the Python 2.4
distribution because

      the rotor module uses an insecure algorithm and is deprecated.
      ==============================================================

Best wishes
Michael

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: