22 lines
653 B
Python
22 lines
653 B
Python
from __future__ import annotations
|
|
|
|
import base64
|
|
|
|
from Crypto.Cipher import AES
|
|
from Crypto.Util.Padding import pad
|
|
|
|
from search_yaoex import build_yaoex_price_decrypt_key, decrypt_yaoex_price
|
|
|
|
|
|
def test_decrypt_plain_number_passthrough():
|
|
assert decrypt_yaoex_price(12.5, "123") == 12.5
|
|
assert decrypt_yaoex_price("33.0", "123") == 33.0
|
|
|
|
|
|
def test_decrypt_aes_ciphertext():
|
|
user_id = "123456789"
|
|
key = build_yaoex_price_decrypt_key(user_id)
|
|
cipher = AES.new(key, AES.MODE_ECB)
|
|
encrypted = base64.b64encode(cipher.encrypt(pad(b"88.5", AES.block_size))).decode("utf-8")
|
|
assert decrypt_yaoex_price(encrypted, user_id) == 88.5
|