mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 11:42:29 +08:00
test: add test for PKCS1OAEP_Cipher with gmpy2 (#3760)
This commit is contained in:
parent
b249767c5c
commit
a34e8cb0bd
3
.github/workflows/api-tests.yml
vendored
3
.github/workflows/api-tests.yml
vendored
|
@ -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
api/tests/unit_tests/libs/test_rsa.py
Normal file
29
api/tests/unit_tests/libs/test_rsa.py
Normal 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
|
|
@ -9,3 +9,6 @@ dev/pytest/pytest_tools.sh
|
|||
|
||||
# Workflow
|
||||
dev/pytest/pytest_workflow.sh
|
||||
|
||||
# Unit tests
|
||||
dev/pytest/pytest_unit_tests.sh
|
5
dev/pytest/pytest_unit_tests.sh
Executable file
5
dev/pytest/pytest_unit_tests.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
set -x
|
||||
|
||||
# libs
|
||||
pytest api/tests/unit_tests/libs
|
Loading…
Reference in New Issue
Block a user