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

전자서명 (일반 또는 PKCS #7 SignedData) 더 자세히 ...

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

함수

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature (void *signature, int *signature_len, int signature_alloc_len, const void *message, int message_len, PRIVATEKEY *private_key, CERTIFICATE *certificate, time_t sign_time)
 PKCS #7 SignedData를 생성한다. (PKCS #7 메시지 아님) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature (const void *signature, int signature_len)
 PKCS #7 SignedData를 검증한다. (PKCS #7 메시지 아님) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_WithHashNid (void *signature, int *signature_len, int signature_alloc_len, const void *message, int message_len, PRIVATEKEY *private_key, CERTIFICATE *certificate, time_t sign_time, int hashNid)
 PKCS #7 - SignedData를 생성한다. (PKCS #7 메시지 아님) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_WithHashNid (const void *signature, int signature_len, int hashNid)
 PKCS #7 SignedData를 검증한다. (PKCS #7 메시지 아님) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_File (const char *signature_file, const char *message_file, PRIVATEKEY *private_key, CERTIFICATE *certificate, time_t sign_time)
 PKCS #7 - SignedData 파일을 생성한다. (PKCS #7 메시지 아님) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_File (const char *signature_file)
 PKCS #7 SignedData 파일을 검증한다. (PKCS #7 메시지 아님) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_Core (void *signature_value, int *signature_value_len, int signature_value_alloc_len, const void *message, int message_len, PRIVATEKEY *private_key, CERTIFICATE *certificate, time_t sign_time)
 PKCS #7 SignedData를 생성 후 서명값만 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_Core (void *signature_value, int signature_value_len, const void *message, int message_len, CERTIFICATE *certificate, time_t sign_time)
 PKCS #7의 서명자 정보가 없는 SignedData를 생성한 후 서명값만 재조합하여 서명값을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_Core_WithHashNid (void *signature_value, int *signature_value_len, int signature_value_alloc_len, const void *message, int message_len, PRIVATEKEY *private_key, CERTIFICATE *certificate, time_t sign_time, int hashNid)
 PKCS #7 SignedData를 생성 후 서명값만 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_Core_WithHashNid (void *signature_value, int signature_value_len, const void *message, int message_len, CERTIFICATE *certificate, time_t sign_time, int hashNid)
 PKCS #7의 서명자 정보가 없는 SignedData를 생성한 후 서명값만 재조합하여 서명값을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_Core_File (void *signature, int *signature_len, int signature_alloc_len, const char *message_file, PRIVATEKEY *private_key, CERTIFICATE *certificate)
 입력한 원문 파일에 대한 서명값을 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_Core_File (void *signature, int signature_len, const char *message_file, CERTIFICATE *certificate)
 입력한 원문 파일에 대한 서명값을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_Core_File_WithHashNid (void *signature, int *signature_len, int signature_alloc_len, const char *message_file, PRIVATEKEY *private_key, CERTIFICATE *certificate, int hashNid)
 입력한 원문 파일에 대한 서명값을 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_Core_File_WithHashNid (void *signature, int signature_len, const char *message_file, CERTIFICATE *certificate, int hashNid)
 입력한 원문 파일에 대한 서명값을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignaturePkcs7Detached (void *signature, int *signature_len, int signature_alloc_len, const void *message, int message_len, PRIVATEKEY *private_key, CERTIFICATE *certificate, time_t sign_time)
 서명 원문을 포함하지 않는 PKCS #7 SignedData를 생성한다. (PKCS #7 메시지 아님) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignaturePkcs7Detached_WithHashNid (void *signature, int *signature_len, int signature_alloc_len, const void *message, int message_len, PRIVATEKEY *private_key, CERTIFICATE *certificate, time_t sign_time, int hashNid)
 서명 원문을 포함하지 않는 PKCS #7 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignaturePkcs7Detached (const void *pkcs7_msg, int pkcs7_msg_len, CERTIFICATE *certificate, unsigned char *data, int data_len)
 서명 원문을 포함하지 않은 PKCS #7 메시지를 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignatureAndCertificate (const void *signature, int signature_len, CERTIFICATES *ca_certs, POLICYCONTEXT *policies, CERTIFICATEREVLIST *crl, time_t verify_time)
 PKCS #7 SignedData와 서명자 인증서의 유효성을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignatureAndCertificateEx (const void *signature, int signature_len, CERTIFICATES *ca_certs, CERTIFICATES *trusted_certs, POLICYCONTEXT *policies, CERTIFICATEREVLIST *crl, time_t verify_time, unsigned int flags)
 PKCS #7 SignedData와 서명자 인증서의 유효성을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignatureAndCertificate_File (const char *signature_file, CERTIFICATES *ca_certs, POLICYCONTEXT *policies, CERTIFICATEREVLIST *crl, time_t verify_time)
 PKCS #7 SignedData와 서명자 인증서의 유효성을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_FromSignatureCore (void *signature, int *signature_len, int signature_alloc_len, const void *message, int message_len, const void *signature_core, int signature_core_len, CERTIFICATE *certificate, int pkAlgNid, int hashNid)
 입력한 서명값을 이용하여 PKCS #7 SignedData를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetOriginalMessage (time_t *sign_time, void *original_message, int *original_message_len, int original_message_alloc_len, const void *signature, int signature_len)
 PKCS #7 SignedData 에서 서명 원문을 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetOriginalMessage_File (time_t *sign_time, const char *original_message_file, const char *signature_file)
 입력한 경로의 PKCS #7 SignedData 파일에서 서명 원문을 가져와 파일로 저장한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetSignerCertificate (CERTIFICATE *certificate, const void *signature, int signature_len)
 PKCS #7 SignedData 에서 서명자의 인증서를 가져온다. (첫번째 서명자) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetSignerCertificate_File (CERTIFICATE *certificate, const char *signature_file)
 입력한 경로의 PKCS #7 SignedData 파일에서 서명자의 인증서를 가져온다. (첫번째 서명자) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetSignatureValue (void *sigValue, int *sigValue_len, int sigValue_alloc_len, const void *signature_value, int signature_value_len)
 PKCS #7 SignedData 에서 서명값을 가져온다. (첫번째 서명자) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SignRawBytes (void *sigVal, int *sigValLen, int sigValAllocLen, const void *message, int messageLen, PRIVATEKEY *privateKey, PUBLICKEY *publicKey)
 입력한 메시지를 서명한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_VerifySignRawBytes (void *sigVal, int sigValLen, const void *message, int messageLen, PUBLICKEY *publicKey)
 입력한 메시지에 대한 서명값을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SignRawBytes_WithHashNid (void *sigVal, int *sigValLen, int sigValAllocLen, const void *message, int messageLen, PRIVATEKEY *privateKey, PUBLICKEY *publicKey, int hashNid)
 입력한 메시지를 서명한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_VerifySignRawBytes_WithHashNid (void *sigVal, int sigValLen, const void *message, int messageLen, PUBLICKEY *publicKey, int hashNid)
 입력한 메시지에 대한 서명값을 검증한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_DSA_MakeSignature (char *signature, int *signature_len, const void *message, int message_len, const char *prikey, const char *param)
 입력한 메시지를 서명(DSA)한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_DSA_VerifySignature (const char *signature, int signature_len_unused, const void *message, int message_len, const char *pubkey, const char *param)
 입력한 메시지에 대한 서명값(DSA)을 검증한다. 더 자세히 ...
 

상세한 설명

전자서명 (일반 또는 PKCS #7 SignedData)

함수 문서화

◆ ISSAC_SG_MakeSignature()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature ( void *  signature,
int *  signature_len,
int  signature_alloc_len,
const void *  message,
int  message_len,
PRIVATEKEY private_key,
CERTIFICATE certificate,
time_t  sign_time 
)

PKCS #7 SignedData를 생성한다. (PKCS #7 메시지 아님)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
ER_DER_ENCODE_FAIL : DER 인코딩 실패
참고
ISSAC_SG_VerifySignature()
매개변수
signature[OUT] SignedData 버퍼
signature_len[OUT] 실제 SignedData 크기
signature_alloc_len[IN] SignedData 버퍼 크기
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
private_key[IN] 서명자의 개인키
certificate[IN] 서명자의 인증서
sign_time[IN] 서명 시각 (0 : 현재 시각)

◆ ISSAC_SG_VerifySignature()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature ( const void *  signature,
int  signature_len 
)

PKCS #7 SignedData를 검증한다. (PKCS #7 메시지 아님)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT : SignedData 에 서명자 정보 (SignerInfo) 가 없음
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
참고
ISSAC_SG_MakeSignature()
매개변수
signature[IN] SignedData
signature_len[IN] SignedData 크기

◆ ISSAC_SG_MakeSignature_WithHashNid()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_WithHashNid ( void *  signature,
int *  signature_len,
int  signature_alloc_len,
const void *  message,
int  message_len,
PRIVATEKEY private_key,
CERTIFICATE certificate,
time_t  sign_time,
int  hashNid 
)

PKCS #7 - SignedData를 생성한다. (PKCS #7 메시지 아님)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 잘못된 해시 알고리즘
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
ER_DER_ENCODE_FAIL : DER 인코딩 실패
참고
ISSAC_SG_VerifySignature_WithHashNid()
매개변수
signature[OUT] PKCS #7 - SignedData 버퍼
signature_len[OUT] 실제 PKCS #7 - SignedData 크기
signature_alloc_len[IN] PKCS #7 - SignedData 버퍼 크기
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
private_key[IN] 서명자의 개인키
certificate[IN] 서명자의 인증서
sign_time[IN] 서명 시각 (0 : 현재 시각)
hashNid[IN] 해시 알고리즘 [ SHA1(134), SHA256(385), SHA384(386), SHA512(387) ]
예제
issacapi/sg/sample_sg_pkcs7.c, issacapi/sg/sample_sg_signeddata.c.

◆ ISSAC_SG_VerifySignature_WithHashNid()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_WithHashNid ( const void *  signature,
int  signature_len,
int  hashNid 
)

PKCS #7 SignedData를 검증한다. (PKCS #7 메시지 아님)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT : SignedData 에 서명자 정보 (SignerInfo) 가 없음
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
참고
ISSAC_SG_VerifySignature()
매개변수
signature[IN] SignedData
signature_len[IN] SignedData 크기
hashNid[IN] 해시 알고리즘 [ SHA1(134), SHA256(385), SHA384(386), SHA512(387) ]
예제
issacapi/sg/sample_sg_pkcs7.c, issacapi/sg/sample_sg_signeddata.c.

◆ ISSAC_SG_MakeSignature_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_File ( const char *  signature_file,
const char *  message_file,
PRIVATEKEY private_key,
CERTIFICATE certificate,
time_t  sign_time 
)

PKCS #7 - SignedData 파일을 생성한다. (PKCS #7 메시지 아님)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_CAN_NOT_READ_FILE : 파일 읽기 실패
ER_CAN_NOT_WRITE_FILE : 파일 쓰기 실패
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
ER_DER_ENCODE_FAIL : DER 인코딩 실패
참고
ISSAC_SG_VerifySignature_File()
매개변수
signature_file[IN] 저장될 PKCS #7 - SignedData 파일 경로
message_file[IN] 서명 대상 메시지 파일 경로
private_key[IN] 서명자의 개인키
certificate[IN] 서명자의 인증서
sign_time[IN] 서명 시각 (0 : 현재 시각)

◆ ISSAC_SG_VerifySignature_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_File ( const char *  signature_file)

PKCS #7 SignedData 파일을 검증한다. (PKCS #7 메시지 아님)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_CAN_NOT_READ_FILE : 파일 읽기 실패
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT : SignedData 에 서명자 정보 (SignerInfo) 가 없음
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
참고
ISSAC_SG_MakeSignature_File()
매개변수
signature_file[IN] PKCS #7 - SignedData 파일 경로

◆ ISSAC_SG_MakeSignature_Core()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_Core ( void *  signature_value,
int *  signature_value_len,
int  signature_value_alloc_len,
const void *  message,
int  message_len,
PRIVATEKEY private_key,
CERTIFICATE certificate,
time_t  sign_time 
)

PKCS #7 SignedData를 생성 후 서명값만 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
참고
ISSAC_SG_VerifySignature_Core()
매개변수
signature_value[OUT] 서명값 버퍼
signature_value_len[OUT] 실제 서명값의 크기
signature_value_alloc_len[OUT] 서명값 버퍼 크기
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
private_key[IN] 서명자의 개인키
certificate[IN] 서명자의 인증서
sign_time[IN] 서명 시각 (0 : 사용 안함)

◆ ISSAC_SG_VerifySignature_Core()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_Core ( void *  signature_value,
int  signature_value_len,
const void *  message,
int  message_len,
CERTIFICATE certificate,
time_t  sign_time 
)

PKCS #7의 서명자 정보가 없는 SignedData를 생성한 후 서명값만 재조합하여 서명값을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
참고
ISSAC_SG_MakeSignature_Core()
매개변수
signature_value[IN] 서명값
signature_value_len[IN] 서명값 크기
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
certificate[IN] 서명자의 인증서
sign_time[IN] 서명 시각 (0 : 사용 안함)

◆ ISSAC_SG_MakeSignature_Core_WithHashNid()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_Core_WithHashNid ( void *  signature_value,
int *  signature_value_len,
int  signature_value_alloc_len,
const void *  message,
int  message_len,
PRIVATEKEY private_key,
CERTIFICATE certificate,
time_t  sign_time,
int  hashNid 
)

PKCS #7 SignedData를 생성 후 서명값만 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 잘못된 해시 알고리즘
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
참고
ISSAC_SG_VerifySignature_Core_WithHashNid()
매개변수
signature_value[OUT] 서명값 버퍼
signature_value_len[OUT] 실제 서명값의 크기
signature_value_alloc_len[OUT] 서명값 버퍼 크기
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_SG_VerifySignature_Core_WithHashNid()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_Core_WithHashNid ( void *  signature_value,
int  signature_value_len,
const void *  message,
int  message_len,
CERTIFICATE certificate,
time_t  sign_time,
int  hashNid 
)

PKCS #7의 서명자 정보가 없는 SignedData를 생성한 후 서명값만 재조합하여 서명값을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 잘못된 해시 알고리즘
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
참고
ISSAC_SG_MakeSignature_Core_WithHashNid()
매개변수
signature_value[IN] 서명값
signature_value_len[IN] 서명값 크기
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
certificate[IN] 서명자의 인증서
sign_time[IN] 서명 시각 (0 : 사용 안함)
hashNid[IN] 해시 알고리즘 [ SHA1(134), SHA256(385), SHA384(386), SHA512(387) ]
예제
issacapi/sg/sample_sg_rawbytes.c.

◆ ISSAC_SG_MakeSignature_Core_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_Core_File ( void *  signature,
int *  signature_len,
int  signature_alloc_len,
const char *  message_file,
PRIVATEKEY private_key,
CERTIFICATE certificate 
)

입력한 원문 파일에 대한 서명값을 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
주의
이름은 비슷하지만 ISSAC_SG_MakeSignature_Core() 와 달리 PKCS #7 SignedData를 생성하지 않고 바로 서명한 서명값이다.
참고
ISSAC_SG_VerifySignature_Core_File()
매개변수
signature[OUT] 서명값 버퍼
signature_len[OUT] 실제 서명값의 크기
signature_alloc_len[OUT] 서명값 버퍼 크기
message_file[IN] 서명 대상 메시지 파일 경로
private_key[IN] 서명자의 개인키
certificate[IN] 서명자의 인증서

◆ ISSAC_SG_VerifySignature_Core_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_Core_File ( void *  signature,
int  signature_len,
const char *  message_file,
CERTIFICATE certificate 
)

입력한 원문 파일에 대한 서명값을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
참고
ISSAC_SG_MakeSignature_Core_File()
매개변수
signature[IN] 서명값
signature_len[IN] 서명값 크기
message_file[IN] 서명 대상 메시지 파일 경로
certificate[IN] 서명자의 인증서

◆ ISSAC_SG_MakeSignature_Core_File_WithHashNid()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_Core_File_WithHashNid ( void *  signature,
int *  signature_len,
int  signature_alloc_len,
const char *  message_file,
PRIVATEKEY private_key,
CERTIFICATE certificate,
int  hashNid 
)

입력한 원문 파일에 대한 서명값을 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 잘못된 해시 알고리즘
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
주의
이름은 비슷하지만 ISSAC_SG_MakeSignature_Core() 와 달리 PKCS #7 SignedData를 생성하지 않고 바로 서명한 서명값이다.
참고
ISSAC_SG_VerifySignature_Core_File_WithHashNid()
매개변수
signature[OUT] 서명값 버퍼
signature_len[OUT] 실제 서명값의 크기
signature_alloc_len[OUT] 서명값 버퍼 크기
message_file[IN] 서명 대상 메시지 파일 경로
private_key[IN] 서명자의 개인키
certificate[IN] 서명자의 인증서
hashNid[IN] 해시 알고리즘 [ SHA1(134), SHA256(385), SHA384(386), SHA512(387) ]

◆ ISSAC_SG_VerifySignature_Core_File_WithHashNid()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignature_Core_File_WithHashNid ( void *  signature,
int  signature_len,
const char *  message_file,
CERTIFICATE certificate,
int  hashNid 
)

입력한 원문 파일에 대한 서명값을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 잘못된 해시 알고리즘
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
참고
ISSAC_SG_MakeSignature_Core_File_WithHashNid()
매개변수
signature[IN] 서명값
signature_len[IN] 서명값 크기
message_file[IN] 서명 대상 메시지 파일 경로
certificate[IN] 서명자의 인증서
hashNid[IN] 해시 알고리즘 [ SHA1(134), SHA256(385), SHA384(386), SHA512(387) ]

◆ ISSAC_SG_MakeSignaturePkcs7Detached()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignaturePkcs7Detached ( void *  signature,
int *  signature_len,
int  signature_alloc_len,
const void *  message,
int  message_len,
PRIVATEKEY private_key,
CERTIFICATE certificate,
time_t  sign_time 
)

서명 원문을 포함하지 않는 PKCS #7 SignedData를 생성한다. (PKCS #7 메시지 아님)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
ER_DER_ENCODE_FAIL : DER 인코딩 실패
참고
ISSAC_SG_VerifySignaturePkcs7Detached()
매개변수
signature[OUT] SignedData 버퍼
signature_len[OUT] 실제 SignedData 크기
signature_alloc_len[IN] SignedData 버퍼 크기
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
private_key[IN] 서명자의 개인키
certificate[IN] 서명자의 인증서
sign_time[IN] 서명 시각 (0 : 현재 시각)

◆ ISSAC_SG_MakeSignaturePkcs7Detached_WithHashNid()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignaturePkcs7Detached_WithHashNid ( void *  signature,
int *  signature_len,
int  signature_alloc_len,
const void *  message,
int  message_len,
PRIVATEKEY private_key,
CERTIFICATE certificate,
time_t  sign_time,
int  hashNid 
)

서명 원문을 포함하지 않는 PKCS #7 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 잘못된 해시 알고리즘
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
ER_DER_ENCODE_FAIL : DER 인코딩 실패
참고
ISSAC_SG_VerifySignaturePkcs7Detached()
매개변수
signature[OUT] PKCS #7 메시지 버퍼
signature_len[OUT] 실제 PKCS #7 메시지 크기
signature_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_SG_VerifySignaturePkcs7Detached()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignaturePkcs7Detached ( const void *  pkcs7_msg,
int  pkcs7_msg_len,
CERTIFICATE certificate,
unsigned char *  data,
int  data_len 
)

서명 원문을 포함하지 않은 PKCS #7 메시지를 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_INVALID_SIGNATURE_FORMAT : 잘못된 형식 (PKCS #7 메시지 형식이 아님)
ER_SG_VERIFYSIGNATURE_FAILURE : PKCS #7 메시지 검증 실패
참고
ISSAC_SG_MakeSignaturePkcs7Detached()
ISSAC_SG_MakeSignaturePkcs7Detached_WithHashNid()
매개변수
pkcs7_msg[IN] PKCS #7 메시지
pkcs7_msg_len[IN] PKCS #7 메시지 크기
certificate[IN] 서명자의 인증서 (PKCS #7 메시지에 서명자의 인증서가 포함되어 있다면 NULL을 입력해도 됨)
data[IN] 서명 대상 메시지
data_len[IN] 서명 대상 메시지 크기

◆ ISSAC_SG_VerifySignatureAndCertificate()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignatureAndCertificate ( const void *  signature,
int  signature_len,
CERTIFICATES ca_certs,
POLICYCONTEXT policies,
CERTIFICATEREVLIST crl,
time_t  verify_time 
)

PKCS #7 SignedData와 서명자 인증서의 유효성을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT : SignedData 에 서명자 정보 (SignerInfo) 가 없음
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
ER_CRL_IS_NOT_VERIFIED : CRL이 검증되어 있지 않음
ER_CANNOT_MAKE_PATH : 인증 경로를 생성할 수 없음
ER_VERIFY_REVOCATED : 인증서가 폐지됨
ER_CERTIFICATE_IS_OUT_OF_DATE_BUT_WAS_VALID : 인증서가 유효기간에 있지는 않지만 폐지되진 않았음
ER_VERIFY_FAIL : 인증서 유효성 검증 실패
참고
ISSAC_SG_VerifySignatureAndCertificateEx()
매개변수
signature[IN] SignedData
signature_len[IN] SignedData 크기
ca_certs[IN] 인증경로에 있는 CA 인증서들의 집합
policies[IN] 허용할 인증서 정책들
crl[IN] 유효한 인증서 폐지목록 (ISSAC_CERTIFICATEREVLIST_Verify() 로 검증되어 있어야 함)
verify_time[IN] 현재시각에 유효하지 않을 때 검증할 특정 시점

◆ ISSAC_SG_VerifySignatureAndCertificateEx()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignatureAndCertificateEx ( const void *  signature,
int  signature_len,
CERTIFICATES ca_certs,
CERTIFICATES trusted_certs,
POLICYCONTEXT policies,
CERTIFICATEREVLIST crl,
time_t  verify_time,
unsigned int  flags 
)

PKCS #7 SignedData와 서명자 인증서의 유효성을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT : SignedData 에 서명자 정보 (SignerInfo) 가 없음
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
ER_CRL_IS_NOT_VERIFIED : CRL이 검증되어 있지 않음
ER_CANNOT_MAKE_PATH : 인증 경로를 생성할 수 없음
ER_VERIFY_REVOCATED : 인증서가 폐지됨
ER_VERIFY_EXPIRED : 유효기간이 만료됨
ER_VERIFY_FAIL : 인증서 유효성 검증 실패
매개변수
signature[IN] SignedData
signature_len[IN] SignedData 크기
ca_certs[IN] 인증경로에 있는 CA 인증서들의 집합
trusted_certs[IN] 신뢰하는 최상위 인증서들의 집합
policies[IN] 허용할 인증서 정책들
crl[IN] 유효한 인증서 폐지목록 (ISSAC_CERTIFICATEREVLIST_Verify() 로 검증되어 있어야 함)
verify_time[IN] 검증할 특정 시점 (특정 시점에는 유효했는지, 즉 폐지되기 이전인지 여부)
flags[IN] 검증 옵션 [VERIFY_ALL, VERIFY_BASICONLY, ...]

◆ ISSAC_SG_VerifySignatureAndCertificate_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_VerifySignatureAndCertificate_File ( const char *  signature_file,
CERTIFICATES ca_certs,
POLICYCONTEXT policies,
CERTIFICATEREVLIST crl,
time_t  verify_time 
)

PKCS #7 SignedData와 서명자 인증서의 유효성을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_CAN_NOT_READ_FILE : 파일 읽기 실패
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT : SignedData 에 서명자 정보 (SignerInfo) 가 없음
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
ER_CRL_IS_NOT_VERIFIED : CRL이 검증되어 있지 않음
ER_CANNOT_MAKE_PATH : 인증 경로를 생성할 수 없음
ER_VERIFY_REVOCATED : 인증서가 폐지됨
ER_CERTIFICATE_IS_OUT_OF_DATE_BUT_WAS_VALID : 인증서가 유효기간에 있지는 않지만 폐지되진 않았음
ER_VERIFY_FAIL : 인증서 유효성 검증 실패
매개변수
signature_file[IN] SignedData 파일 경로
ca_certs[IN] 인증경로에 있는 CA 인증서들의 집합
policies[IN] 허용할 인증서 정책들
crl[IN] 유효한 인증서 폐지목록 (ISSAC_CERTIFICATEREVLIST_Verify() 로 검증되어 있어야 함)
verify_time[IN] 현재시각에 유효하지 않을 때 검증할 특정 시점

◆ ISSAC_SG_MakeSignature_FromSignatureCore()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_MakeSignature_FromSignatureCore ( void *  signature,
int *  signature_len,
int  signature_alloc_len,
const void *  message,
int  message_len,
const void *  signature_core,
int  signature_core_len,
CERTIFICATE certificate,
int  pkAlgNid,
int  hashNid 
)

입력한 서명값을 이용하여 PKCS #7 SignedData를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 입력한 공개키 알고리즘과 해시 알고리즘에 맞는 서명 알고리즘을 지원하지 않음
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_CERTIFICATE : 입력한 인증서에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNEDDATA : SignedData 생성 실패
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패 (잘못된 SignedData 생성을 방지하기 위해 생성 후 바로 검증해본다)
참고
ISSAC_SG_VerifySignature_WithHashNid()
매개변수
signature[OUT] SignedData 버퍼
signature_len[OUT] 실제 SignedData 크기
signature_alloc_len[IN] SignedData 버퍼 크기
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
signature_core[IN] 서명값
signature_core_len[IN] 서명값 크기
certificate[IN] 서명자의 인증서
pkAlgNid[IN] 공개키 알고리즘 [ 인증서의 공개키 알고리즘(0), RSA(52), EC(428), EC-KCDSA(452), KCDSA1(13) ]
hashNid[IN] 해시 알고리즘 [ SHA1(134), SHA256(385), SHA384(386), SHA512(387) ]

◆ ISSAC_SG_GetOriginalMessage()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetOriginalMessage ( time_t *  sign_time,
void *  original_message,
int *  original_message_len,
int  original_message_alloc_len,
const void *  signature,
int  signature_len 
)

PKCS #7 SignedData 에서 서명 원문을 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
매개변수
sign_time[OUT] 서명 시각 (0 : 서명 시각이 없거나 잘못됨)
original_message[OUT] 서명 원문 버퍼
original_message_len[OUT] 실제 서명 원문 크기
original_message_alloc_len[IN] 서명 원문 버퍼 크기
signature[IN] SignedData
signature_len[IN] SignedData 크기
예제
issacapi/sg/sample_sg_pkcs7.c, issacapi/sg/sample_sg_signeddata.c.

◆ ISSAC_SG_GetOriginalMessage_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetOriginalMessage_File ( time_t *  sign_time,
const char *  original_message_file,
const char *  signature_file 
)

입력한 경로의 PKCS #7 SignedData 파일에서 서명 원문을 가져와 파일로 저장한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_CAN_NOT_READ_FILE : 파일 읽기 실패
ER_CAN_NOT_WRITE_FILE : 파일 쓰기 실패
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족 (내부 할당)
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
매개변수
sign_time[OUT] 서명 시각
original_message_file[IN] 서명 원문 파일 경로
signature_file[IN] SignedData 파일 경로

◆ ISSAC_SG_GetSignerCertificate()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetSignerCertificate ( CERTIFICATE certificate,
const void *  signature,
int  signature_len 
)

PKCS #7 SignedData 에서 서명자의 인증서를 가져온다. (첫번째 서명자)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT : SignedData 에 서명자 정보 (SignerInfo) 가 없음
매개변수
certificate[IN,OUT] ISSAC_CERTIFICATE_Create() 를 호출하여 초기화 된 CERTIFICATE
signature[IN] SignedData
signature_len[IN] SignedData 크기
예제
issacapi/sg/sample_sg_pkcs7.c, issacapi/sg/sample_sg_signeddata.c.

◆ ISSAC_SG_GetSignerCertificate_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetSignerCertificate_File ( CERTIFICATE certificate,
const char *  signature_file 
)

입력한 경로의 PKCS #7 SignedData 파일에서 서명자의 인증서를 가져온다. (첫번째 서명자)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_CAN_NOT_READ_FILE : 파일 읽기 실패
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
ER_SG_GET_SIGNER_CERTIFICATE_NO_CERT : SignedData 에 서명자 정보 (SignerInfo) 가 없음
매개변수
certificate[IN,OUT] ISSAC_CERTIFICATE_Create() 를 호출하여 초기화 된 CERTIFICATE
signature_file[IN] SignedData 파일 경로

◆ ISSAC_SG_GetSignatureValue()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_GetSignatureValue ( void *  sigValue,
int *  sigValue_len,
int  sigValue_alloc_len,
const void *  signature_value,
int  signature_value_len 
)

PKCS #7 SignedData 에서 서명값을 가져온다. (첫번째 서명자)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_INVALID_SIGNATURE_FORMAT : SignedData 형식 오류
매개변수
sigValue[OUT] 서명값 버퍼
sigValue_len[OUT] 실제 서명값 크기
sigValue_alloc_len[IN] 서명값 버퍼 크기
signature_value[IN] SignedData
signature_value_len[IN] SignedData 크기

◆ ISSAC_SignRawBytes()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SignRawBytes ( void *  sigVal,
int *  sigValLen,
int  sigValAllocLen,
const void *  message,
int  messageLen,
PRIVATEKEY privateKey,
PUBLICKEY publicKey 
)

입력한 메시지를 서명한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_PUBLICKEY : 입력한 공개키에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNATURE_VALUE : 서명값 생성 실패
매개변수
sigVal[OUT] 서명값 버퍼
sigValLen[OUT] 실제 서명값 크기
sigValAllocLen[IN] 서명값 버퍼 크기
message[IN] 서명 대상 메시지
messageLen[IN] 서명 대상 메시지 크기
privateKey[IN] 서명자의 개인키
publicKey[IN] 서명자의 공개키

◆ ISSAC_VerifySignRawBytes()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_VerifySignRawBytes ( void *  sigVal,
int  sigValLen,
const void *  message,
int  messageLen,
PUBLICKEY publicKey 
)

입력한 메시지에 대한 서명값을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SG_MAKESIGNATURE_UNLOADED_PUBLICKEY : 입력한 공개키에 실제 데이터가 로드되어 있지 않음
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
매개변수
sigVal[IN] 서명값
sigValLen[IN] 서명값 크기
message[IN] 서명 대상 메시지
messageLen[IN] 서명 대상 메시지 크기
publicKey[IN] 서명자의 공개키

◆ ISSAC_SignRawBytes_WithHashNid()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SignRawBytes_WithHashNid ( void *  sigVal,
int *  sigValLen,
int  sigValAllocLen,
const void *  message,
int  messageLen,
PRIVATEKEY privateKey,
PUBLICKEY publicKey,
int  hashNid 
)

입력한 메시지를 서명한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 잘못된 해시 알고리즘
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SG_MAKESIGNATURE_UNLOADED_PRIVATEKEY : 입력한 개인키에 실제 데이터가 로드되어 있지 않음
ER_SG_MAKESIGNATURE_UNLOADED_PUBLICKEY : 입력한 공개키에 실제 데이터가 로드되어 있지 않음
ER_SG_CAN_NOT_MAKE_SIGNATURE_VALUE : 서명값 생성 실패
매개변수
sigVal[OUT] 서명값 버퍼
sigValLen[OUT] 실제 서명값 크기
sigValAllocLen[IN] 서명값 버퍼 크기
message[IN] 서명 대상 메시지
messageLen[IN] 서명 대상 메시지 크기
privateKey[IN] 서명자의 개인키
publicKey[IN] 서명자의 공개키
hashNid[IN] 해시 알고리즘 [ SHA1(134), SHA256(385), SHA384(386), SHA512(387) ]
예제
issacapi/sg/sample_sg_rawbytes.c.

◆ ISSAC_VerifySignRawBytes_WithHashNid()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_VerifySignRawBytes_WithHashNid ( void *  sigVal,
int  sigValLen,
const void *  message,
int  messageLen,
PUBLICKEY publicKey,
int  hashNid 
)

입력한 메시지에 대한 서명값을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 잘못된 해시 알고리즘
ER_SG_MAKESIGNATURE_UNLOADED_PUBLICKEY : 입력한 공개키에 실제 데이터가 로드되어 있지 않음
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
매개변수
sigVal[IN] 서명값
sigValLen[IN] 서명값 크기
message[IN] 서명 대상 메시지
messageLen[IN] 서명 대상 메시지 크기
publicKey[IN] 서명자의 공개키
hashNid[IN] 해시 알고리즘 [ SHA1(134), SHA256(385), SHA384(386), SHA512(387) ]

◆ ISSAC_SG_DSA_MakeSignature()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_DSA_MakeSignature ( char *  signature,
int *  signature_len,
const void *  message,
int  message_len,
const char *  prikey,
const char *  param 
)

입력한 메시지를 서명(DSA)한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_INSUFFICIENT_ALLOC_LEN : 할당된 버퍼(내부 할당)의 크기 부족
ER_BASE64_DEC_FAIL : BASE64 디코딩 실패
ER_BASE64_ENC_FAIL : BASE64 인코딩 실패
ER_SG_CAN_NOT_MAKE_SIGNATURE_VALUE : 서명값 생성 실패
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
signature[OUT] 서명값 (Base64)
signature_len[OUT] 서명값의 길이
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
prikey[IN] 개인키 (Base64)
param[IN] 서명에 사용할 Parameter (Base64)

◆ ISSAC_SG_DSA_VerifySignature()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SG_DSA_VerifySignature ( const char *  signature,
int  signature_len_unused,
const void *  message,
int  message_len,
const char *  pubkey,
const char *  param 
)

입력한 메시지에 대한 서명값(DSA)을 검증한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_INSUFFICIENT_ALLOC_LEN : 할당된 버퍼(내부 할당)의 크기 부족
ER_BASE64_DEC_FAIL : BASE64 디코딩 실패
ER_BASE64_ENC_FAIL : BASE64 인코딩 실패
ER_SG_VERIFYSIGNATURE_FAILURE : 서명 검증 실패
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
signature[IN] 서명값 (Base64)
signature_len_unused[IN] 서명값 길이 (사용 안함)
message[IN] 서명 대상 메시지
message_len[IN] 서명 대상 메시지 크기
pubkey[IN] 공개키 (Base64)
param[IN] 서명에 사용할 Parameter (Base64)