2017-01-23 3 views
2

현재 코드베이스는 openssl_public_encrypt/openssl_private_decrypt입니다. 이제는 매우 중요하기 때문에 단위 테스트로 암호화 및 암호 해독 방법을 테스트하고 싶습니다.단위 테스트에서 개인/공개 키 모의?

정말로 테스트하려면 개인 키와 공개 키를 조롱하고 싶습니다. 이것이 실행 가능하고 코드베이스에 중요한 정보를 넣지 않고 이러한 키를 조롱하는 방법은 무엇입니까?

물론 openssl 공용/개인 부분을 우회하여 그 결과를 모의 수 있지만이 논리는 또한 테스트하고 싶습니다 몇 가지 예외를 throw합니다.

+0

설명에서 무엇이 테스트를 원하는지, 문제가 무엇인지는 분명하지 않습니다. 새로운 비공개/공개 키 쌍을 생성하고이를 테스팅에 사용합니다 (그리고 저장소에도 넣습니다). 실제 시스템에서 인증에 사용되지 않는 한 민감한 정보가 아닙니다. – axiac

답변

1

당신은 PHP의 OpenSSL을 확장 설치 한 다음은 OpenSSL 기능과 공개/개인 키 쌍을 생성 할 수 있습니다 사용하도록 설정 한 경우 : 다음

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

통과하십시오 개인 키으로하는 대한

openssl_pkey_new을, openssl_pkey_get_details에 대한 개인 키 공개 키을 포함한 키에 대한 세부 정보를 얻으려면

$details = openssl_pkey_get_details($private_key); 
$public_key = $details['key'];