Sfoglia il codice sorgente

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

Bowen Liang 1 anno fa
parent
commit
a34e8cb0bd

+ 3 - 0
.github/workflows/api-tests.yml

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

+ 29 - 0
api/tests/unit_tests/libs/test_rsa.py

@@ -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

+ 3 - 0
dev/pytest/pytest_all_tests.sh

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

+ 5 - 0
dev/pytest/pytest_unit_tests.sh

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