kdschlosser / samsungctl

Remote control Samsung televisions via a TCP/IP connection
MIT License
148 stars 34 forks source link

Encrypted py2py3 #93

Closed p3g4asus closed 5 years ago

p3g4asus commented 5 years ago

Tested: full compatibility with python 2 and 3 for encrypted method. The automatic merge is not possible because of the lines that I fixed with the other pull request. You can safely substitute thos three lines with the three in this branch. Please let me know if you want me to modify anything.

kdschlosser commented 5 years ago

your not finished yet...

remote_encrypted\py3rijndael\rijndael.py

this is an invalid call to super in python 2

decrypted = super().decrypt(block)

it would need to be

decrypted = super(RijndaelCbc, self).decrypt(block)

there are a mess of super calls in the RijndaelCbc class

if file

remote_encrypted\py3rijndael\padings.py

this is invalid syntax for python 2

class PaddingBase:
    def __init__(self, block_size):
        self.block_size = block_size

    def encode(self, source: bytes) -> bytes:  # pragma: nocover
        raise NotImplementedError

    def decode(self, source: bytes) -> bytes:  # pragma: nocover
        raise NotImplementedError

it would need to be

class PaddingBase:
    def __init__(self, block_size):
        self.block_size = block_size

    def encode(self, source)
        raise NotImplementedError

    def decode(self, source)
        raise NotImplementedError

I think those are the last that need to be done.

p3g4asus commented 5 years ago

The padding class is already fixed in my actual commit. As for the super calls, you are probably right but I did not correct them because python 2.7 did not complain about them. I will look and fix them.

kdschlosser commented 5 years ago

I know I clicked on that initial commit.. and all of the files were not showing up in there.. they are now tho.. LOL

friggin GitHub.. sorry about that...

p3g4asus commented 5 years ago

Should be fixed now. It used to work before that and it is continuing to work after both with py 2 and 3.