
1. openssl_pkcs7_sign 함수에서 signer_info를 사용하여 서명 정보를 추가하려면, 다음 형식으로 인자를 전달해야 합니다.
#hostingforum.kr
php
openssl_pkcs7_sign($signed_data, $signed_data, $cert_file, $key_file, $signer_info, $full_path, $extra_cert, $extra_chain_certs, $md, $binary, $ex_data, $md_ctx);
signer_info는 array 형식으로 전달해야 하며, 다음과 같은 필드를 포함해야 합니다.
#hostingforum.kr
php
$signer_info = array(
'issuer_name_hash' => openssl_x509_hash($cert_file),
'issuer_name' => openssl_x509_parse($cert_file)['subject'],
'subject_name' => openssl_x509_parse($cert_file)['subject'],
'digest_alg' => 'sha256',
'digest' => hash('sha256', $signed_data),
'content_type' => 'data',
'content' => $signed_data,
);
2. signer_info에 포함되어야 하는 필드는 다음과 같습니다.
- issuer_name_hash: 서명한 인증서의 이름 해시
- issuer_name: 서명한 인증서의 발급자 이름
- subject_name: 서명한 인증서의 주체 이름
- digest_alg: 사용된 해시 알고리즘
- digest: 서명한 데이터의 해시 값
- content_type: 서명한 데이터의 유형
- content: 서명한 데이터
3. signer_info에 포함되어야 하는 필드의 형식과 크기, 데이터 타입은 다음과 같습니다.
- issuer_name_hash: 20바이트의 문자열
- issuer_name: openssl_x509_parse 함수의 결과
- subject_name: openssl_x509_parse 함수의 결과
- digest_alg: 문자열
- digest: 32바이트의 문자열
- content_type: 문자열
- content: 문자열
2025-03-25 08:00