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

공개키 암호화,복호화. 대부분의 함수가 PKCS#7 의 EnvelopedData 형식을 기본으로 한다. 더 자세히 ...

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

함수

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_Encrypt (void *ciphertext, int *ciphertext_len, int ciphertext_alloc_len, const void *plaintext, int plaintext_len, CERTIFICATE *recipient_cert, int cipher_id)
 수신자의 인증서로 데이터를 암호화(EnvelopedData)한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_EncryptEx (void *ciphertext, int *ciphertext_len, int ciphertext_alloc_len, const void *plaintext, int plaintext_len, CERTIFICATES *recipient_certs, int cipher_id)
 여러 수신자들의 인증서를 이용해 데이터를 암호화(EnvelopedData)한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_EncryptExGetKey (void *ciphertext, int *ciphertext_len, void *key, int *keylen, void *iv, int *ivlen, int ciphertext_alloc_len, const void *plaintext, int plaintext_len, CERTIFICATES *recipient_certs, int cipher_id)
 여러 수신자들의 인증서를 이용해 데이터를 암호화(EnvelopedData)하고, 암호화에 사용된 비밀키와 초기값을 출력한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_Encrypt_File (const char *ciphertext_file, const char *plaintext_file, CERTIFICATE *recipient_cert, int cipher_id)
 원문 파일을 수신자의 인증서로 암호화하여 암호문(EnvelopedData) 파일로 출력한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_EncryptEx_File (const char *ciphertext_file, const char *plaintext_file, CERTIFICATES *recipient_certs, int cipher_id)
 원문 파일을 여러 수신자들의 인증서로 암호화하여 암호문(EnvelopedData) 파일로 출력한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_Decrypt (void *plaintext, int *plaintext_len, int plaintext_alloc_len, const void *ciphertext, int ciphertext_len, PRIVATEKEY *privatekey)
 암호문(EnvelopedData)을 복호화하여 원문을 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_DecryptEx (void *plaintext, int *plaintext_len, int plaintext_alloc_len, const void *ciphertext, int ciphertext_len, CERTIFICATE *cert, PRIVATEKEY *privatekey)
 암호문(EnvelopedData)을 복호화하여 원문을 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_Decrypt_File (const char *plaintext_file, const char *ciphertext_file, PRIVATEKEY *privatekey)
 암호문 파일을 복호화하여 원문 파일을 출력한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_DecryptEx_File (const char *plaintext_file, const char *ciphertext_file, CERTIFICATE *cert, PRIVATEKEY *privatekey)
 암호문 파일을 복호화하여 원문 파일을 출력한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_GetSessionKey (void *key, int *keylen, void *iv, int *ivlen, const void *ciphertext, int ciphertext_len, CERTIFICATE *cert, PRIVATEKEY *privatekey)
 암호문(EnvelopedData)에서 비밀키와 초기값을 추출한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_AppendHeader (void *header, const void *ciphertext, int ciphertext_len)
 EnvelopedData 에 PKCS#7 태그를 추가하여 PKCS#7 메시지를 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_RemoveHeader (void *ciphertext, int *ciphertext_len, const void *header)
 PKCS#7 메시지에서 PKCS#7 태그를 삭제하여 EnvelopedData 를 추출한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_RSA15_EncryptRawBytes (void *cipher, int *cipherLen, const void *plain, int plainLen, PUBLICKEY *publicKey)
 RSA로 평문을 암호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_RSA15_DecryptRawBytes (void *plain, int *plainLen, void *cipher, int cipherLen, PRIVATEKEY *privateKey)
 RSA v1.5 RSAES 방식의 암호문을 복호화한다. (ISSAC_RSA15_RSAES_Decrypt() 와 동일) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_RSA15_RSAES_Encrypt (void *cipher, int *cipherLen, const void *plain, int plainLen, PUBLICKEY *publicKey)
 RSA v1.5 RSAES 방식으로 평문을 암호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_RSA15_RSAES_Decrypt (void *plain, int *plainLen, void *cipher, int cipherLen, PRIVATEKEY *privateKey)
 RSA v1.5 RSAES 방식의 암호문을 복호화한다. 더 자세히 ...
 

상세한 설명

공개키 암호화,복호화. 대부분의 함수가 PKCS#7 의 EnvelopedData 형식을 기본으로 한다.

함수 문서화

◆ ISSAC_PE_Encrypt()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_Encrypt ( void *  ciphertext,
int *  ciphertext_len,
int  ciphertext_alloc_len,
const void *  plaintext,
int  plaintext_len,
CERTIFICATE recipient_cert,
int  cipher_id 
)

수신자의 인증서로 데이터를 암호화(EnvelopedData)한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_PE_ENCRYPT_NOT_SUPPORTED_CIPHER : 지원하지 않는 대칭키 알고리즘
ER_PE_ENCRYPT_FAILURE : EnvelopedData 생성 오류
ER_INSUFFICIENT_ALLOC_LEN : 암호문 버퍼 크기 부족
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
ciphertext[OUT] 암호문 버퍼
ciphertext_len[OUT] 실제 암호문 크기
ciphertext_alloc_len[IN] 암호문 버퍼 크기
plaintext[IN] 원문
plaintext_len[IN] 원문 크기
recipient_cert[IN] 수신자의 인증서
cipher_id[IN] 대칭키 알고리즘 [ ISSACAPI_SEED, ISSACAPI_ARIA ]
예제
issacapi/pe/sample_pe_envelopeddata.c, issacapi/pe/sample_pe_pkcs7.c.

◆ ISSAC_PE_EncryptEx()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_EncryptEx ( void *  ciphertext,
int *  ciphertext_len,
int  ciphertext_alloc_len,
const void *  plaintext,
int  plaintext_len,
CERTIFICATES recipient_certs,
int  cipher_id 
)

여러 수신자들의 인증서를 이용해 데이터를 암호화(EnvelopedData)한다.

Remarks
하나의 비밀키를 생성하여 암호문을 만들고, 이 비밀키를 각각의 인증서로 암호화하는 방식이다.
수신자는 자신의 개인키를 이용해 EnvelopedData를 복호화 할 수 있다.
반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_PE_ENCRYPT_NOT_SUPPORTED_CIPHER : 지원하지 않는 대칭키 알고리즘
ER_PE_ENCRYPT_FAILURE : EnvelopedData 생성 오류
ER_INSUFFICIENT_ALLOC_LEN : 암호문 버퍼 크기 부족
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
ciphertext[OUT] 암호문 버퍼
ciphertext_len[OUT] 실제 암호문 크기
ciphertext_alloc_len[IN] 암호문 버퍼 크기
plaintext[IN] 원문
plaintext_len[IN] 원문 크기
recipient_certs[IN] 수신자들의 인증서
cipher_id[IN] 대칭키 알고리즘 [ ISSACAPI_SEED, ISSACAPI_ARIA ]
예제
issacapi/pe/sample_pe_envelopeddata_multi.c.

◆ ISSAC_PE_EncryptExGetKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_EncryptExGetKey ( void *  ciphertext,
int *  ciphertext_len,
void *  key,
int *  keylen,
void *  iv,
int *  ivlen,
int  ciphertext_alloc_len,
const void *  plaintext,
int  plaintext_len,
CERTIFICATES recipient_certs,
int  cipher_id 
)

여러 수신자들의 인증서를 이용해 데이터를 암호화(EnvelopedData)하고, 암호화에 사용된 비밀키와 초기값을 출력한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_PE_ENCRYPT_NOT_SUPPORTED_CIPHER : 지원하지 않는 대칭키 알고리즘
ER_PE_ENCRYPT_FAILURE : EnvelopedData 생성 오류
ER_INSUFFICIENT_ALLOC_LEN : 암호문 버퍼 크기 부족
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
ciphertext[OUT] 암호문 버퍼
ciphertext_len[OUT] 실제 암호문 크기
key[OUT] 암호화에 사용된 비밀키
keylen[OUT] 암호화에 사용된 비밀키 길이
iv[OUT] 초기값(Initial Vector) 버퍼
ivlen[OUT] 초기값(Initial Vector) 길이
ciphertext_alloc_len[IN] 암호문 버퍼 크기
plaintext[IN] 원문
plaintext_len[IN] 원문 크기
recipient_certs[IN] 수신자들의 인증서
cipher_id[IN] 대칭키 알고리즘 [ ISSACAPI_SEED, ISSACAPI_ARIA ]

◆ ISSAC_PE_Encrypt_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_Encrypt_File ( const char *  ciphertext_file,
const char *  plaintext_file,
CERTIFICATE recipient_cert,
int  cipher_id 
)

원문 파일을 수신자의 인증서로 암호화하여 암호문(EnvelopedData) 파일로 출력한다.

반환값
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_PE_ENCRYPT_NOT_SUPPORTED_CIPHER : 지원하지 않는 대칭키 알고리즘
ER_PE_ENCRYPT_FAILURE : EnvelopedData 생성 오류
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
ciphertext_file[IN] 암호문이 저장될 파일의 경로
plaintext_file[IN] 원문 파일
recipient_cert[IN] 수신자의 인증서
cipher_id[IN] 대칭키 알고리즘 [ ISSACAPI_SEED, ISSACAPI_ARIA ]

◆ ISSAC_PE_EncryptEx_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_EncryptEx_File ( const char *  ciphertext_file,
const char *  plaintext_file,
CERTIFICATES recipient_certs,
int  cipher_id 
)

원문 파일을 여러 수신자들의 인증서로 암호화하여 암호문(EnvelopedData) 파일로 출력한다.

반환값
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_PE_ENCRYPT_NOT_SUPPORTED_CIPHER : 지원하지 않는 대칭키 알고리즘
ER_PE_ENCRYPT_FAILURE : EnvelopedData 생성 오류
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
ciphertext_file[IN] 암호문이 저장될 파일의 경로
plaintext_file[IN] 원문 파일
recipient_certs[IN] 수신자들의 인증서
cipher_id[IN] 대칭키 알고리즘 [ ISSACAPI_SEED, ISSACAPI_ARIA ]

◆ ISSAC_PE_Decrypt()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_Decrypt ( void *  plaintext,
int *  plaintext_len,
int  plaintext_alloc_len,
const void *  ciphertext,
int  ciphertext_len,
PRIVATEKEY privatekey 
)

암호문(EnvelopedData)을 복호화하여 원문을 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_PE_INVALID_ENVELOPEDDATA_FORMAT : 암호문이 EnvelopedData 형식이 아님
ER_INSUFFICIENT_ALLOC_LEN : 원문 버퍼 크기 부족
ER_PE_DECRYPT_FAILURE : EnvelopedData 복호화 오류
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
plaintext[OUT] 원문 버퍼
plaintext_len[OUT] 실제 원문 크기
plaintext_alloc_len[IN] 원문 버퍼 크기
ciphertext[IN] 암호문
ciphertext_len[IN] 암호문 크기
privatekey[IN] 수신자의 개인키
예제
issacapi/pe/sample_pe_envelopeddata.c, issacapi/pe/sample_pe_pkcs7.c.

◆ ISSAC_PE_DecryptEx()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_DecryptEx ( void *  plaintext,
int *  plaintext_len,
int  plaintext_alloc_len,
const void *  ciphertext,
int  ciphertext_len,
CERTIFICATE cert,
PRIVATEKEY privatekey 
)

암호문(EnvelopedData)을 복호화하여 원문을 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_PE_INVALID_ENVELOPEDDATA_FORMAT : 암호문이 EnvelopedData 형식이 아님
ER_INSUFFICIENT_ALLOC_LEN : 원문 버퍼 크기 부족
ER_PE_DECRYPT_FAILURE : EnvelopedData 복호화 오류
매개변수
plaintext[OUT] 원문 버퍼
plaintext_len[OUT] 실제 원문 크기
plaintext_alloc_len[IN] 원문 버퍼 크기
ciphertext[IN] 암호문
ciphertext_len[IN] 암호문 크기
cert[IN] 수신자의 인증서
privatekey[IN] 수신자의 개인키
예제
issacapi/pe/sample_pe_envelopeddata_multi.c.

◆ ISSAC_PE_Decrypt_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_Decrypt_File ( const char *  plaintext_file,
const char *  ciphertext_file,
PRIVATEKEY privatekey 
)

암호문 파일을 복호화하여 원문 파일을 출력한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_READ_FILE : 파일 읽기 오류
ER_CAN_NOT_WRITE_FILE : 파일 쓰기 오류
ER_PE_INVALID_ENVELOPEDDATA_FORMAT : 암호문이 EnvelopedData 형식이 아님
ER_PE_DECRYPT_FAILURE : EnvelopedData 복호화 오류
매개변수
plaintext_file[IN] 복호화 된 원문이 저장될 파일의 경로
ciphertext_file[IN] 암호문 파일의 경로
privatekey[IN] 수신자의 개인키

◆ ISSAC_PE_DecryptEx_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_DecryptEx_File ( const char *  plaintext_file,
const char *  ciphertext_file,
CERTIFICATE cert,
PRIVATEKEY privatekey 
)

암호문 파일을 복호화하여 원문 파일을 출력한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_READ_FILE : 파일 읽기 오류
ER_CAN_NOT_WRITE_FILE : 파일 쓰기 오류
ER_PE_INVALID_ENVELOPEDDATA_FORMAT : 암호문이 EnvelopedData 형식이 아님
ER_PE_DECRYPT_FAILURE : EnvelopedData 복호화 오류
매개변수
plaintext_file[IN] 복호화 된 원문이 저장될 파일의 경로
ciphertext_file[IN] 암호문 파일의 경로
cert[IN] 수신자의 인증서
privatekey[IN] 수신자의 개인키

◆ ISSAC_PE_GetSessionKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_GetSessionKey ( void *  key,
int *  keylen,
void *  iv,
int *  ivlen,
const void *  ciphertext,
int  ciphertext_len,
CERTIFICATE cert,
PRIVATEKEY privatekey 
)

암호문(EnvelopedData)에서 비밀키와 초기값을 추출한다.

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : EnvelopedData 에서 수신자 정보를 찾지 못했거나 암호화 된 비밀키 복호화에 실패
ER_INVALID_INPUT : 입력값 오류
ER_PE_INVALID_ENVELOPEDDATA_FORMAT : 암호문이 EnvelopedData 형식이 아님
매개변수
key[OUT] 비밀키 버퍼
keylen[OUT] 비밀키 길이
iv[OUT] 초기값(Initial Vector) 버퍼
ivlen[OUT] 초기값(Initial Vector) 길이
ciphertext[IN] 암호문
ciphertext_len[IN] 암호문 크기
cert[IN] 수신자의 인증서
privatekey[IN] 수신자의 개인키

◆ ISSAC_PE_AppendHeader()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_AppendHeader ( void *  header,
const void *  ciphertext,
int  ciphertext_len 
)

EnvelopedData 에 PKCS#7 태그를 추가하여 PKCS#7 메시지를 생성한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
매개변수
header[OUT] PKCS#7 메시지
ciphertext[IN] EnvelopedData
ciphertext_len[IN] EnvelopedData 크기

◆ ISSAC_PE_RemoveHeader()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PE_RemoveHeader ( void *  ciphertext,
int *  ciphertext_len,
const void *  header 
)

PKCS#7 메시지에서 PKCS#7 태그를 삭제하여 EnvelopedData 를 추출한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
매개변수
ciphertext[OUT] EnvelopedData
ciphertext_len[OUT] EnvelopedData 크기
header[IN] PKCS#7 메시지

◆ ISSAC_RSA15_EncryptRawBytes()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_RSA15_EncryptRawBytes ( void *  cipher,
int *  cipherLen,
const void *  plain,
int  plainLen,
PUBLICKEY publicKey 
)

RSA로 평문을 암호화한다.

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 암호화 실패 (암호모듈에서 발생한 오류)
ER_INVALID_INPUT : 입력값 오류
매개변수
cipher[OUT] 암호문
cipherLen[OUT] 암호문의 실제 크기
plain[IN] 평문
plainLen[IN] 평문 크기
publicKey[IN] 공개키

◆ ISSAC_RSA15_DecryptRawBytes()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_RSA15_DecryptRawBytes ( void *  plain,
int *  plainLen,
void *  cipher,
int  cipherLen,
PRIVATEKEY privateKey 
)

RSA v1.5 RSAES 방식의 암호문을 복호화한다. (ISSAC_RSA15_RSAES_Decrypt() 와 동일)

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 복호화 실패 (암호모듈에서 발생한 오류)
ER_INVALID_INPUT : 입력값 오류
매개변수
plain[OUT] 복호문
plainLen[OUT] 복호문의 실제 크기
cipher[IN] 암호문
cipherLen[IN] 암호문 크기
privateKey[IN] 개인키

◆ ISSAC_RSA15_RSAES_Encrypt()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_RSA15_RSAES_Encrypt ( void *  cipher,
int *  cipherLen,
const void *  plain,
int  plainLen,
PUBLICKEY publicKey 
)

RSA v1.5 RSAES 방식으로 평문을 암호화한다.

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 암호화 실패 (암호모듈에서 발생한 오류)
ER_INVALID_INPUT : 입력값 오류
매개변수
cipher[OUT] 암호문
cipherLen[OUT] 암호문의 실제 크기
plain[IN] 평문
plainLen[IN] 평문 크기
publicKey[IN] 공개키
예제
issacapi/pe/sample_pe_rawbytes.c.

◆ ISSAC_RSA15_RSAES_Decrypt()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_RSA15_RSAES_Decrypt ( void *  plain,
int *  plainLen,
void *  cipher,
int  cipherLen,
PRIVATEKEY privateKey 
)

RSA v1.5 RSAES 방식의 암호문을 복호화한다.

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 복호화 실패 (암호모듈에서 발생한 오류)
ER_INVALID_INPUT : 입력값 오류
매개변수
plain[OUT] 복호문
plainLen[OUT] 복호문의 실제 크기
cipher[IN] 암호문
cipherLen[IN] 암호문 크기
privateKey[IN] 개인키
예제
issacapi/pe/sample_pe_rawbytes.c.