
openssl_cms_encrypt 함수의 signed_attr 필드는 CMS(PKCS#7) 파일을 암호화할 때 사용되는 인증서와 관련된 정보를 포함하는 필드입니다.
이 필드는 인증서의 발급자, 유효기간, 주소, 등과 같은 정보를 포함할 수 있습니다.
openssl_cms_encrypt 함수를 사용할 때, signed_attr 필드는 인증서의 정보를 포함하는 X.509 인증서를 사용하여 CMS 파일을 암호화할 때 사용됩니다.
따라서, signed_attr 필드는 X.509 인증서의 정보를 포함하는 구조체를 사용하여 초기화해야 합니다.
예를 들어, 다음 코드는 signed_attr 필드를 초기화하는 방법을 보여줍니다.
#hostingforum.kr
c
X509_NAME *issuer = X509_get_issuer_name(cert);
X509_NAME *subject = X509_get_subject_name(cert);
X509_NAME *location = X509_get_ext_d2i(cert, NID_subject_directory_attributes, NULL, NULL);
// issuer, subject, location 정보를 포함하는 X.509 인증서를 생성합니다.
X509 *cert_signed = X509_new();
X509_set_issuer_name(cert_signed, issuer);
X509_set_subject_name(cert_signed, subject);
X509_add_ext(cert_signed, location, -1);
// signed_attr 필드를 초기화합니다.
ASN1_OCTET_STRING *signed_attr = ASN1_item_ex_d2i(NULL, X509_get1_ext_d2i(cert_signed, NID_subject_directory_attributes, NULL, NULL), 0, 0);
// openssl_cms_encrypt 함수를 호출합니다.
CMS_ContentInfo *cms = CMS_sign(NULL, data, len, cert, NULL, 0);
CMS_set1_signer_info(cms, cert, signed_attr);
위 코드는 signed_attr 필드를 초기화하는 방법을 보여줍니다.
인증서의 정보를 포함하는 X.509 인증서를 생성하고, signed_attr 필드를 초기화하여 openssl_cms_encrypt 함수를 호출할 수 있습니다.
이러한 방법을 사용하면 CMS 파일을 암호화할 때 인증서의 정보를 포함하는 signed_attr 필드를 초기화할 수 있습니다.
2025-08-06 18:01