WA-SDK  3.0.4.0
WA-SDK
ISSAC-API (CMS)

암호 메시지 (PKCS #7) - CMS 더 자세히 ...

ISSAC-API (CMS)에 대한 협력 다이어그램:

데이터 구조

struct  CMSCONTEXT
 CMS 에 대한 컨텍스트 더 자세히 ...
 

열거형 타입

enum  SIGNER_IDENTIFIER { SID_ISSUER_AND_SERIAL = 1 , SID_SKID = 2 }
 서명자를 특정하기 위한 방법 더 자세히 ...
 

함수

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_Create (CMSCONTEXT *cms)
 CMS 를 초기화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_Delete (CMSCONTEXT *cms)
 CMS 에 할당된 메모리를 해제한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_Read_Memory (CMSCONTEXT *cms, const void *buffer, int buffer_len)
 CMS 를 버퍼에서 읽어들인다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_Write_Memory (void *buffer, int *buffer_len, int buffer_alloc_len, CMSCONTEXT *cms)
 CMS 를 입력한 버퍼로 출력한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignTime (time_t *sign_time, CMSCONTEXT *cms, int signerIndex)
 PKCS7 에서 서명 시각을 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetOriginalMessage (unsigned char *message, int *message_len, int message_alloc_len, CMSCONTEXT *cms)
 PKCS7 에서 메시지를 가져온다. (SignedData 와 Data 만 가능) 더 자세히 ...
 
WA_SDK_API int FUNCCALL ISSAC_CMS_GetSignerCount (CMSCONTEXT *cms)
 PKCS7 에서 서명자의 수를 가져온다. 더 자세히 ...
 
WA_SDK_API int FUNCCALL ISSAC_CMS_GetSignerIdentifierType (CMSCONTEXT *cms, int signerIndex)
 PKCS7 에서 를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignerInfoIssuer (char *issuer, int issuer_alloc_len, CMSCONTEXT *cms, int signerIndex)
 PKCS7 에서 를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignerInfoSerial (unsigned char *serial, int *serial_len, int serial_alloc_len, CMSCONTEXT *cms, int signerIndex)
 PKCS7 에서 를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignerInfoSKID (unsigned char *skid, int *skid_len, int skid_alloc_len, CMSCONTEXT *cms, int signerIndex)
 PKCS7 에서 를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignerCert (CERTIFICATE *cert, CMSCONTEXT *cms, int signerIndex)
 PKCS7 에서 서명자의 인증서를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_VerifySign (CMSCONTEXT *cms, int signerIndex)
 PKCS7 의 서명을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_VerifySignWithCert (CMSCONTEXT *cms, CERTIFICATE *signerCert)
 PKCS7 의 서명을 검증한다. (서명에 사용된 인증서로 서명 정보 검색) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_MakeSignedData (void *cms, int *cms_len, int cms_alloc_len, const void *message, int message_len, PRIVATEKEY *private_key, CERTIFICATE *certificate, time_t sign_time, int hashNid)
 PKCS7 - SignedData 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_VerifySignedData (const void *cms, int cms_len)
 PKCS7 - SignedData 의 서명을 검증한다. 더 자세히 ...
 

상세한 설명

암호 메시지 (PKCS #7) - CMS

열거형 타입 문서화

◆ SIGNER_IDENTIFIER

서명자를 특정하기 위한 방법

열거형 멤버
SID_ISSUER_AND_SERIAL 

(1) IssuerName and Serial : 유일 인증서

SID_SKID 

(2) Subject Key IDentifier : 공개키가 동일한 인증서

함수 문서화

◆ ISSAC_CMS_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_Create ( CMSCONTEXT cms)

CMS 를 초기화한다.

주의
사용 후 반드시 ISSAC_CMS_Delete() 를 호출하여 할당된 메모리를 해제해야 한다.
Remarks
CMS 를 사용하기 전에 항상 이 함수를 호출하여 초기화하여야 한다.
같은 객체에 대해서 이 함수는 한번만 호출해야 한다. 여러번 호출하면 메모리 릭이 발생할 수 있다.
반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
cms[IN,OUT] 초기화 할 ISSAC_CMS

◆ ISSAC_CMS_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_Delete ( CMSCONTEXT cms)

CMS 에 할당된 메모리를 해제한다.

반환값
ISSAC_SUCCESS : 성공
매개변수
cms[IN,OUT] ISSAC_CMS_Create() 를 호출하여 초기화 된 ISSAC_CMS

◆ ISSAC_CMS_Read_Memory()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_Read_Memory ( CMSCONTEXT cms,
const void *  buffer,
int  buffer_len 
)

CMS 를 버퍼에서 읽어들인다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA : 입력 파일을 CMS 로 변환할 수 없음
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
cms[IN,OUT] ISSAC_CMS_Create() 를 호출하여 초기화 된 CMS
buffer[IN] CMS 버퍼
buffer_len[IN] CMS 버퍼 크기

◆ ISSAC_CMS_Write_Memory()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_Write_Memory ( void *  buffer,
int *  buffer_len,
int  buffer_alloc_len,
CMSCONTEXT cms 
)

CMS 를 입력한 버퍼로 출력한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류 또는 CMS 인코딩 오류
ER_INSUFFICIENT_ALLOC_LEN : 출력 버퍼 크기 부족
매개변수
buffer[OUT] CMS 가 출력될 버퍼
buffer_len[OUT] 사용된 버퍼 크기
buffer_alloc_len[IN] 출력 버퍼 크기
cms[IN] CMS

◆ ISSAC_CMS_GetSignTime()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignTime ( time_t *  sign_time,
CMSCONTEXT cms,
int  signerIndex 
)

PKCS7 에서 서명 시각을 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_NO_SIGNER_INFO
ER_SG_INVALID_SIGNER_INDEX
ER_SG_INVALID_SIGNER_INFO
ER_SG_NO_SIGNED_ATTRIBUTE
ER_SG_NO_SIGNING_TIME
매개변수
sign_time[OUT] 서명된 시각
cms[IN] CMS
signerIndex[IN] 서명자 정보의 인덱스

◆ ISSAC_CMS_GetOriginalMessage()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetOriginalMessage ( unsigned char *  message,
int *  message_len,
int  message_alloc_len,
CMSCONTEXT cms 
)

PKCS7 에서 메시지를 가져온다. (SignedData 와 Data 만 가능)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA
ER_INSUFFICIENT_ALLOC_LEN : 출력 버퍼 크기 부족
매개변수
message[OUT] 원문이 출력될 버퍼
message_len[OUT] 사용된 버퍼 크기
message_alloc_len[IN] 출력 버퍼 크기
cms[IN] CMS

◆ ISSAC_CMS_GetSignerCount()

WA_SDK_API int FUNCCALL ISSAC_CMS_GetSignerCount ( CMSCONTEXT cms)

PKCS7 에서 서명자의 수를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_NO_SIGNER_INFO
매개변수
cms[IN] CMS

◆ ISSAC_CMS_GetSignerIdentifierType()

WA_SDK_API int FUNCCALL ISSAC_CMS_GetSignerIdentifierType ( CMSCONTEXT cms,
int  signerIndex 
)

PKCS7 에서 를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA
ER_SG_NO_SIGNER_INFO
ER_SG_INVALID_SIGNER_INDEX
ER_SG_INVALID_SIGNER_INFO
매개변수
cms[IN] CMS
signerIndex[IN] 서명자 정보의 인덱스

◆ ISSAC_CMS_GetSignerInfoIssuer()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignerInfoIssuer ( char *  issuer,
int  issuer_alloc_len,
CMSCONTEXT cms,
int  signerIndex 
)

PKCS7 에서 를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 출력 버퍼 크기 부족
ER_SG_NO_SIGNER_INFO
ER_SG_INVALID_SIGNER_INDEX
ER_SG_INVALID_SIGNER_INFO
매개변수
issuer[OUT] 출력 버퍼
issuer_alloc_len[IN] 출력 버퍼 크기
cms[IN] CMS
signerIndex[IN] 서명자 정보의 인덱스

◆ ISSAC_CMS_GetSignerInfoSerial()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignerInfoSerial ( unsigned char *  serial,
int *  serial_len,
int  serial_alloc_len,
CMSCONTEXT cms,
int  signerIndex 
)

PKCS7 에서 를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_NO_SIGNER_INFO
ER_SG_INVALID_SIGNER_INDEX
ER_SG_INVALID_SIGNER_INFO
매개변수
serial[OUT] 출력 버퍼
serial_len[OUT] 실제 출력된 크기
serial_alloc_len[IN] 출력 버퍼 크기
cms[IN] CMS
signerIndex[IN] 서명자 정보의 인덱스

◆ ISSAC_CMS_GetSignerInfoSKID()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignerInfoSKID ( unsigned char *  skid,
int *  skid_len,
int  skid_alloc_len,
CMSCONTEXT cms,
int  signerIndex 
)

PKCS7 에서 를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_NO_SIGNER_INFO
ER_SG_INVALID_SIGNER_INDEX
ER_SG_INVALID_SIGNER_INFO
매개변수
skid[OUT] 출력 버퍼
skid_len[OUT] 실제 출력된 크기
skid_alloc_len[IN] 출력 버퍼 크기
cms[IN] CMS
signerIndex[IN] 서명자 정보의 인덱스

◆ ISSAC_CMS_GetSignerCert()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_GetSignerCert ( CERTIFICATE cert,
CMSCONTEXT cms,
int  signerIndex 
)

PKCS7 에서 서명자의 인증서를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_NO_SIGNER_INFO
ER_SG_INVALID_SIGNER_INDEX
ER_SG_INVALID_SIGNER_INFO
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT
매개변수
cert[OUT] 서명자 인증서 (ISSAC_CERTIFICATE_Create() 를 호출하여 초기화 된 인증서 객체)
cms[IN] CMS
signerIndex[IN] 서명자 정보의 인덱스

◆ ISSAC_CMS_VerifySign()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_VerifySign ( CMSCONTEXT cms,
int  signerIndex 
)

PKCS7 의 서명을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_NO_SIGNER_INFO
ER_SG_INVALID_SIGNER_INDEX
ER_SG_INVALID_SIGNER_INFO
ER_SG_VERIFYSIGNATURE_FAILURE
매개변수
cms[IN] CMS
signerIndex[IN] 서명자 정보의 인덱스

◆ ISSAC_CMS_VerifySignWithCert()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_VerifySignWithCert ( CMSCONTEXT cms,
CERTIFICATE signerCert 
)

PKCS7 의 서명을 검증한다. (서명에 사용된 인증서로 서명 정보 검색)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_NO_SIGNER_INFO
ER_SG_INVALID_SIGNER_INDEX
ER_SG_INVALID_SIGNER_INFO
ER_SG_NOT_FOUND_MATCHED_SIGNER_INFO
ER_SG_VERIFYSIGNATURE_FAILURE
매개변수
cms[IN] CMS
signerCert[IN] 서명자 인증서

◆ ISSAC_CMS_MakeSignedData()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_MakeSignedData ( void *  cms,
int *  cms_len,
int  cms_alloc_len,
const void *  message,
int  message_len,
PRIVATEKEY private_key,
CERTIFICATE certificate,
time_t  sign_time,
int  hashNid 
)

PKCS7 - SignedData 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 출력 버퍼 크기 부족
ER_INVALID_ALGORITHM : 잘못된 알고리즘
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 개인키가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 인증서가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : 서명 데이터 생성 오류
매개변수
cms[OUT] PKCS#7 메시지 버퍼
cms_len[OUT] 실제 PKCS#7 메시지 크기
cms_alloc_len[IN] PKCS#7 메시지 버퍼 크기
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
private_key[IN] 서명자의 개인키
certificate[IN] 서명자의 인증서
sign_time[IN] 서명 시각 (0 : 현재 시각)
hashNid[IN] 해시 알고리즘 [ SHA1(134), SHA256(385), SHA384(386), SHA512(387) ]

◆ ISSAC_CMS_VerifySignedData()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_CMS_VerifySignedData ( const void *  cms,
int  cms_len 
)

PKCS7 - SignedData 의 서명을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 실패 (내부 오류)
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA : 입력값 형식 오류
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT : 서명자 인증서를 찾지 못함
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
매개변수
cms[IN] PKCS#7 메시지 (SignedData)
cms_len[IN] PKCS#7 메시지 크기