Files
alfa-bank-sdk/tests/Feature/Utils/CryptoTest.php
Anatoliy Poloz b15d29f8e9 fix(formating)
2026-01-28 03:36:26 +03:00

37 lines
949 B
PHP

<?php
use Apoloz\AlfaBank\Utils\CardEncryptor;
use Apoloz\AlfaBank\Utils\CmsSigner;
test('can encrypt card pan', function (): void {
// Generate a temporary RSA key for testing
$res = openssl_pkey_new([
'private_key_bits' => 2048,
'private_key_type' => OPENSSL_KEYTYPE_RSA,
]);
openssl_pkey_export($res, $privateKey);
$details = openssl_pkey_get_details($res);
$publicKey = $details['key'];
$pan = '4779642610000010';
$encrypted = CardEncryptor::encrypt($pan, $publicKey);
expect($encrypted)->toBeString()
->and(base64_decode($encrypted))->not->toBeFalse();
});
test('can canonicalize json', function (): void {
$data = [
'z' => 1,
'a' => [
'c' => 3,
'b' => 2,
],
];
$canonical = CmsSigner::canonicalize($data);
// Keys should be sorted: a (then b, c), z
expect($canonical)->toBe('{"a":{"b":2,"c":3},"z":1}');
});