Skip to content
This repository was archived by the owner on Jan 13, 2023. It is now read-only.
This repository was archived by the owner on Jan 13, 2023. It is now read-only.

ESP32 encrypt/decrypt issue (Micropython) #17

@RCS-it1

Description

@RCS-it1

Hello Team,

SCENARIO:
We are using micropython ESP32 with this micropython release: esp32spiram-idf3-20200902-v1.13.bin

PROBLEM:
We are looking a way to encrypt and decrypt a string using public/privet keys, and we found your example on github.
Unfortunately, it seems that doesn't work, and we cannot understand why. Can you help us?

TEST 1:
Encrypt. It's seems that it works..

>>> (pub_key, priv_key) = rsa.key.newkeys(256)
>>> print(pub_key)
PublicKey(61228621406785622916966555480977921591795104883963122609901081135924619511951, 65537)
>>> message = b'hello'
>>> crypto = rsa.encrypt(message, pub_key)
>>> print(crypto)
b'>]aC*VH\x15\xd8$\x7f\xfe*-\xbe\xb8\xe5\te\xf1Uy $\x92\\qM\x8e\x82\x13~'

TEST 2:
Decrypt the 'hello' encrypted.

>>> res = rsa.decrypt(crypto, priv_key)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "third_party/rsa/pkcs1.py", line 239, in decrypt
DecryptionError: Decryption failed

TEST 3:
Now trying in binary. Fails again.

>>> crypto = rsa.encrypt(b'\x00\x00\x00\x00\x01', pub_key)
>>> rsa.decrypt(crypto, priv_key)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "third_party/rsa/pkcs1.py", line 239, in decrypt
DecryptionError: Decryption failed

>>> len(crypto) == rsa.common.byte_size(pub_key.n)
True
>>> 

Looking at your code, it seems that the cause is because the 'decrypted clear text' doesn't start with: x00 x02, but we don't know why..

    # If we can't find the cleartext marker, decryption failed.
    if cleartext[0:2] != b'\x00\x02':
        raise DecryptionError('Decryption failed')

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions