test: add test for PKCS1OAEP_Cipher with gmpy2 (#3760)

This commit is contained in:
Bowen Liang 2024-04-24 17:15:31 +08:00 committed by GitHub
parent b249767c5c
commit a34e8cb0bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 40 additions and 0 deletions

View File

@ -57,3 +57,6 @@ jobs:
- name: Run Workflow - name: Run Workflow
run: dev/pytest/pytest_workflow.sh run: dev/pytest/pytest_workflow.sh
- name: Run Unit tests
run: dev/pytest/pytest_unit_tests.sh

View File

@ -0,0 +1,29 @@
import rsa as pyrsa
from Crypto.PublicKey import RSA
from libs import gmpy2_pkcs10aep_cipher
def test_gmpy2_pkcs10aep_cipher() -> None:
rsa_key_pair = pyrsa.newkeys(2048)
public_key = rsa_key_pair[0].save_pkcs1()
private_key = rsa_key_pair[1].save_pkcs1()
public_rsa_key = RSA.import_key(public_key)
public_cipher_rsa2 = gmpy2_pkcs10aep_cipher.new(public_rsa_key)
private_rsa_key = RSA.import_key(private_key)
private_cipher_rsa = gmpy2_pkcs10aep_cipher.new(private_rsa_key)
raw_text = 'raw_text'
raw_text_bytes = raw_text.encode()
# RSA encryption by public key and decryption by private key
encrypted_by_pub_key = public_cipher_rsa2.encrypt(message=raw_text_bytes)
decrypted_by_pub_key = private_cipher_rsa.decrypt(encrypted_by_pub_key)
assert decrypted_by_pub_key == raw_text_bytes
# RSA encryption and decryption by private key
encrypted_by_private_key = private_cipher_rsa.encrypt(message=raw_text_bytes)
decrypted_by_private_key = private_cipher_rsa.decrypt(encrypted_by_private_key)
assert decrypted_by_private_key == raw_text_bytes

View File

@ -9,3 +9,6 @@ dev/pytest/pytest_tools.sh
# Workflow # Workflow
dev/pytest/pytest_workflow.sh dev/pytest/pytest_workflow.sh
# Unit tests
dev/pytest/pytest_unit_tests.sh

View File

@ -0,0 +1,5 @@
#!/bin/bash
set -x
# libs
pytest api/tests/unit_tests/libs