Имитировать закрытый/открытый ключ в модульном тесте?


В настоящее время у меня есть база кода, которая использует openssl_public_encrypt/openssl_private_decrypt. Теперь я хотел бы протестировать свои методы шифрования и дешифрования с помощью модульного теста, поскольку они довольно важны.

Чтобы действительно проверить их, я думаю, что хотел бы просто поиздеваться над закрытыми и открытыми ключами. Является ли это жизнеспособным и как бы я мог издеваться над этими ключами, не помещая никакой конфиденциальной информации в свою базу кода?

Конечно, я мог бы обойти публичную/частную часть openssl и высмеять результат этого, но это логика также создает некоторые исключения и т. Д. что я хотел бы проверить.

Author: jww, 2017-01-23

1 answers

Если у вас установлено и включено расширение OpenSSL PHP, вы можете сгенерировать пару открытых/закрытых ключей с помощью функций OpenSSL:

Openssl_pkey_new, для закрытого ключа с:

$private_key = openssl_pkey_new([
    'digest_alg' => 'sha256',
    'private_key_bits' => 1024,
    'private_key_type' => OPENSSL_KEYTYPE_RSA
]);

Затем передайте закрытый ключ openssl_pkey_get_details, чтобы получить подробную информацию о ключе, включая открытый ключ :

$details = openssl_pkey_get_details($private_key);
$public_key = $details['key'];
 1
Author: grim, 2017-02-26 06:12:44