CryptEncodeObject 및 CryptDecodeObject 상수
CryptEncodeObject, CryptEncodeObjectEx, CryptSignAndEncodeCertificate, CryptDecodeObject 및 CryptDecodeObjectEx 함수는 일반화된 인코딩 및 디코딩 함수로, ASN.1(Abstract Syntax Notation One) 인코딩된 인증서, CRL(인증서 해지 목록), 인증서 신뢰 목록(CTL) 및 인증서 요청을 인코딩하고 디코딩할 수 있습니다.
다음 표에는 인코딩 및 디코딩 작업에 사용되는 미리 정의된 상수, 확장 및 특성과 pvStructInfo 매개 변수가 가리키는 데이터 구조가 나와 있습니다.
참고
미리 정의된 일부 상수와 OID 문자열은 동일한 의미를 갖습니다. 이렇게 하면 lpszStuctType 매개 변수로 사용할 수 있습니다.
상수/값 | 설명 |
---|---|
|
pvStructInfo 매개 변수는 CMC_ADD_ATTRIBUTES_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CMC_ADD_EXTENSIONS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRYPT_ALGORITHM_IDENTIFIER 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_ALT_NAME_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_NAME_VALUE 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_POLICY_QUALIFIER_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_POLICY_CONSTRAINTS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_POLICY_MAPPINGS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRYPT_ATTRIBUTE 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_AUTHORITY_INFO_ACCESS 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_AUTHORITY_INFO_ACCESS 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_AUTHORITY_INFO_ACCESS 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_AUTHORITY_INFO_ACCESS 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_AUTHORITY_KEY_ID_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_AUTHORITY_KEY_ID2_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_AUTHORITY_KEY_ID_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_AUTHORITY_KEY_ID2_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_BASIC_CONSTRAINTS_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_BASIC_CONSTRAINTS_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_BASIC_CONSTRAINTS2_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_BASIC_CONSTRAINTS2_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_BIOMETRIC_EXT_INFO 구조체에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CERT_BIOMETRIC_EXT_INFO 구조체에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CRYPT_BIT_BLOB 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_SIGNED_CONTENT_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRL_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_EXTENSIONS 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_PAIR 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_POLICIES_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_POLICIES_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_REQUEST_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_TEMPLATE_EXT 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_TEMPLATE_EXT 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 FILETIME 변수에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRYPT_CONTENT_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRL_DIST_POINTS_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRL_DIST_POINTS_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 int 변수에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 열거된 값을 포함하는 정수에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 열거된 값을 포함하는 정수에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 int 변수에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CROSS_CERT_DIST_POINTS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CROSS_CERT_DIST_POINTS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 Diffie-Hellman 버전 3 공개 키 BLOB 또는 DSS 버전 3 공개 키 BLOB 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CTL_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CMC_DATA_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 int 변수에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_DSS_PARAMETERS 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRYPT_UINT_BLOB 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 40바이트 배열에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 개체 식별자 점 표현의 LPSTR에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_ECC_SIGNATURE 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRYPT_ECC_PRIVATE_KEY_INFO 구조체에 대한 포인터입니다. Windows Server 2003, Windows XP, Windows 2000 및 Windows Vista: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CRYPT_ALGORITHM_IDENTIFIER 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_ENHKEY_USAGE 또는 CTL_USAGE 구조체에 대한 포인터입니다. (이러한 구조체는 동일하지만 다른 이름으로 알려져 있습니다.) |
|
pvStructInfo 매개 변수는 CERT_ENHKEY_USAGE 또는 CTL_USAGE 구조체에 대한 포인터입니다. (이러한 구조체는 동일하지만 다른 이름으로 알려져 있습니다.) |
|
pvStructInfo 매개 변수는 CRYPT_ENROLLMENT_NAME_VALUE_PAIR 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 열거된 값을 포함하는 정수에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_EXTENSIONS 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRL_DIST_POINTS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 부 서명된 32비트 이하의 정수에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_ALT_NAME_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_ALT_NAME_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRL_ISSUING_DIST_POINT 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRL_ISSUING_DIST_POINT 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_KEY_ATTRIBUTES_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_KEY_ATTRIBUTES_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRYPT_BIT_BLOB 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRYPT_BIT_BLOB 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_KEY_USAGE_RESTRICTION_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_KEY_USAGE_RESTRICTION_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_KEYGEN_REQUEST_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_LOGOTYPE_EXT_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_LOGOTYPE_EXT_INFO 구조체에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CRYPT_INTEGER_BLOB 구조체에 대한 포인터입니다.
BLOB은 little-endian 순서입니다. |
|
pvStructInfo 매개 변수는 CRYPT_UINT_BLOB 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_NAME_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_NAME_CONSTRAINTS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_NAME_CONSTRAINTS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_NAME_VALUE 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_ALT_NAME_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 개체 식별자 점 표현의 LPSTR에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CRYPT_DATA_BLOB 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_DSS_PARAMETERS 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_POLICY_CONSTRAINTS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_POLICY_CONSTRAINTS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_POLICY_MAPPINGS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_POLICY_MAPPINGS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_PUBLIC_KEY_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRYPT_RC2_CBC_PARAMETERS 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CMC_RESPONSE_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 지수 및 모듈러스 바이트가 바로 뒤에 BCRYPT_RSAKEY_BLOB 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 프라이빗 BCRYPT_RSAKEY_BLOB 구조체에 대한 포인터입니다. Windows Server 2003, Windows XP, Windows 2000 및 Windows Vista: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 FILETIME 변수에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRYPT_SMIME_CAPABILITIES 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRYPT_RSA_SSA_PSS_PARAMETERS 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CRYPT_RSA_SSA_PSS_PARAMETERS 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CRYPT_RSAES_OAEP_PARAMETERS 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CRYPT_ECC_CMS_SHARED_INFO 구조체에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CRYPT_RSAES_OAEP_PARAMETERS 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 CRYPT_SEQUENCE_OF_ANY 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CMSG_SIGNER_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CMSG_CMS_SIGNER_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRYPT_SMIME_CAPABILITIES 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CMC_STATUS_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_ALT_NAME_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_ALT_NAME_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRYPT_DATA_BLOB 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CRYPT_TIME_STAMP_REQUEST_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CERT_NAME_VALUE 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_NAME_INFO 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 CERT_NAME_VALUE 구조체에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 FILETIME 변수에 대한 포인터입니다. 자세한 내용은 설명을 참조하세요. |
|
pvStructInfo 매개 변수는 OCSP_SIGNED_REQUEST_INFO 변수에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 OCSP_REQUEST_INFO 변수에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 OCSP_RESPONSE_INFO 변수에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 OCSP_BASIC_SIGNED_RESPONSE_INFO 변수에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 OCSP_BASIC_RESPONSE_INFO 변수에 대한 포인터입니다. Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다. |
|
pvStructInfo 매개 변수는 RSA 프라이빗 키 BLOB에 대한 포인터입니다. 자세한 내용은 Diffie-Hellman 버전 3 프라이빗 키 BLOB 및 DSS 버전 3 프라이빗 키 BLOB을 참조하세요. |
|
pvStructInfo 매개 변수는 CRYPT_PRIVATE_KEY_INFO 구조체에 대한 포인터입니다. |
|
pvStructInfo 매개 변수는 CRYPT_ENCRYPTED_PRIVATE_KEY_INFO 구조체에 대한 포인터입니다. |
설명
다음 표에서는 특정 lpszStructType 값에 대한 자세한 정보를 제공합니다.
값 | 설명 |
---|---|
X509_ALTERNATE_NAMEszOID_ISSUER_ALT_NAME szOID_SUBJECT_ALT_NAME |
인코딩하기 전에 LPWSTR 이름 선택은 IA5 문자열로 변환됩니다. 문자열에 유효하지 않은 IA5 문자열이 포함된 경우 GetLastError 는 CRYPT_E_INVALID_IA5_STRING 반환하고 *pcbEncoded 는 유효하지 않은 문자의 오류 위치로 업데이트됩니다. 오류 위치 인덱스는 다음과 같이 *pcbEncoded 로 반환됩니다. 비트 0은 DWORD의 가장 중요한 비트입니다. 오류의 VALUE_INDEX 비트 0~15에 있습니다. 유니코드 문자 인덱스입니다. 오류의 ENTRY_INDEX 비트 16~23에 있습니다. 매크로 GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) 및 GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X)는 VALUE_INDEX 대한 비트맵 필드를 쉽게 읽고 해당 필드가 포함된 DWORD 에서 ENTRY_INDEX 위해 정의됩니다. szOID_SUBJECT_ALT_NAME szOID_SUBJECT_ALT_NAME2 대체되었습니다. 새 인증서 서버가 후자를 구현하고 있습니다. |
X509_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_INFO_ACCESS szOID_AUTHORITY_KEY_IDENTIFIER2 X509_AUTHORITY_KEY_ID2 |
인코딩 함수가 CRYPT_E_INVALID_IA5_STRING GetLastError로 반환하는 경우 *pcbEncoded 에서 반환된 오류 위치는 ENTRY_INDEX – 8비트< 16으로 구성됩니다 < . VALUE_INDEX – 16비트(유니코드 문자 인덱스) 오류 위치 인덱스는 다음과 같이 *pcbEncoded 로 반환됩니다. 비트 0은 DWORD의 가장 중요한 비트입니다. 오류의 VALUE_INDEX 비트 0~15에 있습니다. 유니코드 문자 인덱스입니다. 오류의 ENTRY_INDEX 비트 16~23에 있습니다. 매크로 GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) 및 GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X)는 VALUE_INDEX 대한 비트맵 필드를 쉽게 읽고 해당 필드가 포함된 DWORD 에서 ENTRY_INDEX 위해 정의됩니다. |
X509_AUTHORITY_KEY_IDszOID_AUTHORITY_KEY_IDENTIFIER |
X509_AUTHORITY_KEY_ID X509_AUTHORITY_KEY_ID2 대체되었습니다. 새 인증서 서버가 후자를 구현하고 있습니다. |
X509_BASIC_CONSTRAINTSszOID_BASIC_CONSTRAINTS |
X509_BASIC_CONSTRAINTS X509_BASIC_CONSTRAINTS2 대체되었습니다. 새 인증서 서버가 후자를 구현하고 있습니다. |
X509_CERT |
CERT_SIGNED_CONTENT_INFO 구조에는 서명할 인코딩된 콘텐츠, 서명 및 서명 알고리즘이 포함됩니다.
ToBeSigned 멤버는 다음 lpszStructType 값 중 하나에 대한 CryptEncodeObject에 대한 이전 호출의 인코딩된 CERT_INFO, CRL_INFO, CERT_REQUEST_INFO 또는 CERT_KEYGEN_REQUEST_INFO 출력입니다.
|
szOID_CERT_EXTENSIONS | 인증서 요청의 특성 유형 중 하나에 사용할 수 있습니다. |
X509_CHOICE_OF_TIME | X509_ASN_ENCODING 경우 시간이 1950년 이후이고 2050년 이전인 경우 두 자리 연도로 인코딩된 UTC 시간입니다. 그렇지 않으면 4자리 연도로 인코딩된 일반화된 시간이며 날짜는 초로 정확합니다. |
PKCS_CONTENT_INFO | X509_ASN_ENCODING 경우 PKCS #7 ContentInfo 구조체로 인코딩됩니다. CRYPT_DER_BLOB 이미 인코딩된 ANY 콘텐츠를 가리킵니다. |
PKCS_CONTENT_INFO_SEQUENCE_OF_ANY | X509_ASN_ENCODING 경우 PKCS #7 ContentInfo 구조체로 인코딩되어 ANY 시퀀스를 래핑합니다.
contentType 멤버의 값은 pszObjId이고 콘텐츠 필드는 SequenceOfAny ::= SEQUENCE OF ANY 구조입니다. CRYPT_DER_BLOB 이미 인코딩된 ANY 콘텐츠를 가리킵니다. |
X509_CRL_DIST_POINTSszOID_CRL_DIST_POINTS |
GetLastError가 CRYPT_E_INVALID_IA5_STRING 반환하면서 인코딩 함수가 실패하면 *pcbEncoded가 잘못된 문자의 오류 위치(CRL_ISSUER_BIT – 1비 < 트< 31(FullName의 경우 0, CRLIssuer의 경우 1)로 업데이트됩니다. POINT_INDEX – 7비트 << 24비트 ENTRY_INDEX – 8비트 << 16 VALUE_INDEX – 16비트(유니코드 문자 인덱스) 오류 위치 인덱스는 다음과 같이 *pcbEncoded 로 반환됩니다. 비트 0은 DWORD의 가장 중요한 비트입니다. 오류의 VALUE_INDEX 비트 0에서 15까지입니다. 유니코드 문자 인덱스입니다. 오류의 ENTRY_INDEX 비트 16~23에 있습니다. 매크로 GET_CERT_ALT_NAME_VALUE_ERR_INDEX(X) 및 GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(X)는 포함된 DWORD 에서 VALUE_INDEX 및 ENTRY_INDEX 비트맵 필드를 쉽게 읽을 수 있도록 정의됩니다. |
szOID_CRL_NUMBER | 기본 CRL(인증서 해지 목록 )에만 사용됩니다. 이는 인증 기관에서 발급한 각 CRL에 대해 단조롭게 증가하는 시퀀스 번호입니다. |
X509_CRL_REASON_CODEszOID_CRL_REASON_CODE X509_ENUMERATED |
정수는 다음 열거형 값 중 하나로 설정할 수 있습니다.
|
szOID_CRL_VIRTUAL_BASE | 델타 CRL에만 사용됩니다. 해당 기본 CRL의 기본 CRL 번호를 포함합니다. |
X509_CROSS_CERT_DIST_POINTSszOID_CROSS_CERT_DIST_POINTS |
CRYPT_E_INVALID_IA5_STRING 경우 오류 위치는 다음으로 구성되는 CryptEncodeObject(X509_CRL_DIST_POINTS)에 의해 *pcbEncoded에 반환됩니다.
|
RSA_CSP_PUBLICKEYBLOB |
CryptExportKey 함수는 PUBLICKEYBLOB의 dwBlobType에 대해 위의 pvStructInfo 값을 출력합니다.
CryptImportKey 함수는 공개 키를 가져올 때 위의 pvStructInfo 값을 예상합니다.
dwCertEncodingType이 X509_ASN_ENCODING 경우 RSA_CSP_PUBLICKEYBLOB 모듈러스 INTEGER 및 publicExponent INTEGER의 SEQUENCE로 구성된 PKCS #1 RSAPublicKey로 인코딩됩니다. 모듈러스는 부호 없는 정수로 인코딩됩니다. 디코딩 함수의 경우 pvStructInfo 는 즉시 공개 키 BLOB 을 가리킨 다음 RSAPUBKEY 및 모듈러스 바이트를 가리킵니다. (공개 키 BLOB에 대한 자세한 내용은 CRYPT_INTEGER_BLOB 참조하세요.) CryptExportKey는 PUBLICKEYBLOB의 dwBlobType에 대한 pvStructInfo 값을 출력합니다. CryptImportKey 함수는 공개 키를 가져올 때 pvStructInfo 값을 예상합니다. dwCertEncodingType이 X509_ASN_ENCODING 경우 RSA_CSP_PUBLICKEYBLOB 모듈러스 INTEGER 및 publicExponent INTEGER의 SEQUENCE로 구성된 PKCS #1 RSAPublicKey로 인코딩됩니다. 디코딩할 때 모듈러스가 선행 0바이트인 부호 없는 정수로 인코딩된 경우 CSP 모듈러스 바이트로 변환하기 전에 0바이트가 제거됩니다. PKCS ) 구조체는 항상 CALG_RSA_KEYX 설정됩니다. |
szOID_DELTA_CRL_INDICATOR | 델타 CRL에만 사용됩니다. 이는 중요로 표시되며 델타 CRL과 함께 사용할 수 있는 최소 기본 CRL 번호를 포함합니다. |
X509_DSS_SIGNATURE | 바이트는 DSS CSP의 CryptSignHash 에 의해 출력으로 정렬됩니다. 여기서 하위 20바이트는 R 값이고 20바이트는 S 값입니다. R 및 S 값은 부호 없는 정수로 처리되고 시퀀스로 인코딩됩니다. |
X509_ECC_SIGNATURE | X509_DH_PARAMETERS 동일한 인코딩 및 디코딩 함수를 사용합니다. CERT_ECC_SIGNATURE 구조체는 필드 이름을 제외하고 CERT_DH_PARAMETERS 구조체와 동일합니다. |
X509_ENUMERATED | X509_CRL_REASON_CODE 같은 임의의 열거형을 인코딩할 때 사용됩니다. |
szOID_FRESHEST_CRL | 기본 CRL에만 사용됩니다. 이 형식은 URL을 보유하는 CDP 확장과 동일하게 서식이 지정되어 델타 CRL을 가져옵니다. |
X509_ISSUING_DIST_POINTszOID_ISSUING_DIST_POINT |
CRYPT_E_INVALID_IA5_STRING 경우 오류 위치는 다음으로 구성되는 CryptEncodeObject(X509_ISSUING_DIST_POINT)에 의해 *pcbEncoded에 반환됩니다.
|
X509_KEY_USAGEszOID_KEY_USAGE |
CERT_KEY_ATTRIBUTES_INFO 구조체의 IntendedKeyUsage 멤버에 사용되는 비트 정의가 사용됩니다. |
X509_KEYGEN_REQUEST_TO_BE_SIGNED | 디코딩 함수의 경우 pbEncoded 멤버는 X509_CERT lpszStructType을 사용하는 인코딩 함수 중 하나의 출력입니다. 이 출력에는 "서명할" 데이터와 해당 서명이 포함됩니다. 인코딩 함수의 경우 pbEncoded 멤버는 "서명할" 데이터입니다. |
X509_MULTI_BYTE_UINT | 인코딩하기 전에 선행 0x00 삽입됩니다. 디코딩한 후 선행 0x00 제거됩니다. |
X509_NAME | CERT_INFO 구조에서 발급자 및 주체 멤버를 디코딩/인코딩하는 데 사용됩니다. |
X509_NAME_CONSTRAINTSszOID_NAME_CONSTRAINTS |
CRYPT_E_INVALID_IA5_STRING 경우 오류 위치는 CryptEncodeObject(X509_NAME_CONSTRAINTS)에 의해 *pcbEncoded로 반환됩니다. 오류 위치는 다음으로 구성됩니다.
|
X509_UNICODE_ANY_STRING X509_UNICODE_NAME_VALUE |
인코딩 함수의 경우 구조체의 pbData 멤버가 유니코드 문자열을 가리킵니다.
cbData 멤버가 0이면 유니코드 문자열에 종료 null 문자가 있습니다. 그렇지 않으면 cbData는 유니코드 문자열 바이트 수입니다. 바이트 수는 문자 수의 두 배입니다. 유니코드 문자열에 지정된 dwValueType에 유효하지 않은 문자가 포함된 경우 *pcbEncoded 는 유효하지 않은 첫 번째 문자의 유니코드 문자 인덱스로 업데이트됩니다.
GetLastError는 다음을 반환합니다. CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING 유니코드 문자열은 지정된 dwValueType에 따라 인코딩되기 전에 변환됩니다. dwValueType이 0으로 설정된 경우 GetLastError는 E_INVALIDARG 반환합니다. dwValueType이 문자열을 나타내지 않으면 CryptEncodeObject는 getLastError가 CRYPT_E_NOT_CHAR_STRING 반환하는 FALSE를 반환합니다. 디코딩 함수의 경우 pbData 멤버는 null로 끝나는 유니코드 문자열을 가리키고 cbData 멤버는 종료 되는 null 문자를 제외한 유니코드 문자열의 바이트 수를 포함합니다. dwValueType 에는 개체를 인코딩하는 데 사용되는 형식이 포함되어 있습니다. 그것은 CERT_RDN_UNICODE_STRING 강요하지 않습니다. 인코딩된 값은 dwValueType에 따라 유니코드 문자열로 변환됩니다. 인코딩된 개체가 문자열 형식 중 하나가 아닌 경우 디코딩 함수는 getLastError가 CRYPT_E_NOT_CHAR_STRING 반환하면서 FALSE를 반환합니다. X509_ANY_STRING lpszStructType을 사용하여 비문자 문자열을 디코딩합니다. |
szOID_NEXT_UPDATE_LOCATION | 가장 최근의 시간 유효한 CTL의 위치를 가져오기 위해 CTL( 인증서 신뢰 목록 )과 함께 사용됩니다. 일반적으로 CERT_ALT_NAME_INFO 사용되는 선택은 위치를 나타내는 URL입니다. |
X509_OCTET_STRING | 구조체에는 바이트 시퀀스가 포함됩니다. 8진수 문자열 형식의 초기화 벡터가 필요한 일부 암호화 알고리즘과 함께 사용됩니다. |
CNG_RSA_PUBLIC_KEY_BLOB | 해당 pvStructInfo 는 즉시 BCRYPT_RSAKEY_BLOB 가리킨 다음 지수 및 모듈러스 바이트를 가리킵니다. 지수와 모듈러스는 모두 big-endian 형식입니다.
cbPrime1 및 cbPrime2로 구성된 프라이빗 키 필드는 0으로 설정됩니다. dwCertEncodingType 매개 변수가 X509_ASN_ENCODING 같으면 CNG_RSA_PUBLIC_KEY_BLOB 모듈러스 및 publicExponent 시퀀스로 구성된 PKCS #1 RSA 공개 키로 인코딩됩니다. |
PKCS_RSA_SSA_PSS_PARAMETERSszOID_RSA_SSA_PSS |
인코딩의 경우 CRYPT_RSA_SSA_PSS_PARAMETERS 구조 필드가 NULL 또는 0으로 설정된 경우 다음 기본값을 사용합니다.
|
PKCS_RSAES_OAEP_PARAMETERSszOID_RSAES_OAEP |
인코딩의 경우 CRYPT_RSAES_OAEP_PARAMETERS 구조 필드가 NULL 또는 0으로 설정된 경우 다음 기본값을 사용합니다.
|
X509_SEQUENCE_OF_ANY | CRYPT_DER_BLOB이미 인코딩된 ANY 콘텐츠를 가리킵니다. |
PKCS_SMIME_CAPABILITIESszOID_RSA_SMIMECapabilities |
이러한 lpszStructType 값은 인코딩 함수에 대해 다르게 작동합니다. S/MIME( Secure/Multipurpose Internet Mail Extensions ) 사양으로 인해 Parameters.cbData 가 0이면 인코딩된 매개 변수가 생략되고 NULL (05 00)으로 인코딩되지 않습니다. |
szOID_SUBJECT_KEY_IDENTIFIER | CRYPT_INTEGER_BLOB 구조체에는 임의의 바이트 시퀀스인 옥텟 문자열이 포함됩니다. |
X509_UNICODE_NAME | 디코딩 함수의 경우 RDN(상대 고유 이름) 특성 값은 CERT_RDN_ENCODED_BLOB 또는 CERT_RDN_OCTET_STRING dwValueType을 제외한 유니코드 문자열입니다. 이러한 dwValueTypes는 X509_NAME 경우와 동일합니다. 이러한 값은 유니코드로 변환되지 않습니다. RDN 특성 값의 pbData 멤버는 null로 끝나는 유니코드 문자열을 가리킵니다. RDN 특성 값의 cbData 멤버에는 종료 null 문자를 제외한 유니코드 문자열의 바이트 수가 포함됩니다. RDN 특성 값의 dwValueType 멤버에는 인코딩된 개체에 사용되는 형식이 포함됩니다. 그것은 CERT_RDN_UNICODE_STRING 강요하지 않습니다. 인코딩된 값은 dwValueType에 따라 유니코드 문자열로 변환됩니다. 인코딩 함수의 경우 RDN 특성 값은 CERT_RDN_ENCODED_BLOB 또는 CERT_RDN_OCTET_STRING dwValueType을 제외한 유니코드 문자열입니다. 이러한 dwValueTypes는 X509_NAME 경우와 동일합니다. 이러한 값은 유니코드가 될 것으로 예상되지 않습니다. 나머지 문자열 dwValueType의 경우 RDN( 상대 고유 이름 ) 특성 값의 pbData 멤버는 유니코드 문자열을 가리킵니다. RDN 특성 값의 cbData 멤버가 0이면 유니코드 문자열에 종료 null 문자가 있습니다. 그렇지 않으면 RDN 특성 값의 cbData 멤버가 유니코드 문자열 바이트 수입니다. 바이트 수는 문자 수의 두 배이며 종료 되는 null 문자를 제외합니다. RDN 특성 값의 dwValueType 멤버가 CERT_RDN_ANY_TYPE 경우 pszObjId 를 사용하여 허용되는 dwValueType을 찾습니다. 유니코드 문자열에 찾거나 지정된 dwValueType에 유효하지 않은 문자가 포함된 경우 *pcbEncoded 는 유효하지 않은 문자의 오류 위치로 업데이트됩니다. 유효하지 않은 문자의 경우 GetLastError 는 다음을 반환합니다. CRYPT_E_INVALID_NUMERIC_STRING CRYPT_E_INVALID_PRINTABLE_STRING CRYPT_E_INVALID_IA5_STRING 유니코드 문자열은 지정된 dwValueType 또는 개체 식별자의 dwValueType에 따라 인코딩되기 전에 변환됩니다. 인코딩 함수 오류 위치 인덱스는 다음과 같이 *pcbEncoded 로 반환됩니다. 오류의 VALUE_INDEX 비트 0에서 15까지입니다. 오류의 ATTR_INDEX 비트 16~21에 있습니다. 오류의 RDN_INDEX 비트 22~31에 있습니다. 비트 0은 DWORD의 가장 중요한 비트입니다. GET_CERT_UNICODE_RDN_ERR_INDEX(X), GET_CERT_UNICODE_ATTR_ERR_INDEX(X) 및 GET_CERT_UNICODE_VALUE_ERR_INDEX(X) 정의 매크로는 포함된 DWORD 에서 VALUE_INDEX, ATTR_INDEX 및 RDN_INDEX 대한 비트맵 필드를 쉽게 읽을 수 있습니다. |
PKCS_UTC_TIMEszOID_RSA_signingTime |
X509_ASN_ENCODING 경우 UTC 시간은 정확하게 초로 인코딩되고 두 자리 연도를 사용하여 인코딩됩니다. |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 |
Windows Server 2003 [데스크톱 앱 | UWP 앱] |
헤더 |
|
추가 정보