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

대칭키 암호화,복호화 (일반 또는 PKCS #7 EnvelopedData) 더 자세히 ...

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

데이터 구조

struct  SECONTEXT
 대칭키 암호화 컨텍스트 더 자세히 ...
 

열거형 타입

enum  ISSACAPI_SE_MODES {
  ISSACAPI_SE_ECB_MODE = 1 , ISSACAPI_SE_CBC_MODE , ISSACAPI_SE_CFB_MODE , ISSACAPI_SE_CFB_BYTE_MODE ,
  ISSACAPI_SE_OFB_MODE , ISSACAPI_SE_OFB_BYTE_MODE , ISSACAPI_SE_CTS_MODE , ISSACAPI_SE_CFB1_MODE ,
  ISSACAPI_SE_CTR_MODE , ISSACAPI_SE_MCFB_MODE , ISSACAPI_SE_GCM_MODE , ISSACAPI_SE_CCM_MODE
}
 대칭키 암호 블록 운용모드 더 자세히 ...
 

함수

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SECONTEXT_Create (SECONTEXT *secontext)
 SECONTEXT 구조체를 초기화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SECONTEXT_Delete (SECONTEXT *secontext)
 SECONTEXT 에 할당된 메모리를 해제한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SECONTEXT_Set (SECONTEXT *secontext, const void *key, int key_len, const void *iv, int iv_len, int mode, int cipher_id)
 SECONTEXT 에 암호화를 위한 정보들을 입력한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SECONTEXT_Copy (SECONTEXT *destination_secontext, SECONTEXT *source_secontext)
 SECONTEXT 를 복사한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt (void *ciphertext, int *ciphertext_len, int ciphertext_alloc_len, void *plaintext, int plaintext_len, SECONTEXT *secontext)
 평문을 암호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_EncryptEx (void *ciphertext, int *ciphertext_len, int ciphertext_alloc_len, void *plaintext, int plaintext_len, SECONTEXT *secontext, int pad_type)
 평문을 암호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt (void *plaintext, int *plaintext_len, int plaintext_alloc_len, void *ciphertext, int ciphertext_len, SECONTEXT *secontext)
 암호문을 복호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_DecryptEx (void *plaintext, int *plaintext_len, int plaintext_alloc_len, void *ciphertext, int ciphertext_len, SECONTEXT *secontext, int pad_type)
 암호문을 복호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt_File (const char *ciphertext_file, const char *plaintext_file, SECONTEXT *secontext)
 입력한 파일을 암호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt_File (const char *plaintext_file, const char *ciphertext_file, SECONTEXT *secontext)
 입력한 파일을 복호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt_File_BSize (const char *ciphertext_file, const char *plaintext_file, SECONTEXT *secontext, int buffer_size)
 입력한 파일을 암호화한다. (입력한 버퍼크기 사용) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt_File_BSize (const char *plaintext_file, const char *ciphertext_file, SECONTEXT *secontext, int buffer_size)
 입력한 파일을 복호화한다. (입력한 버퍼크기 사용) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt_Auth (void *ciphertext, int *ciphertext_len, int ciphertext_alloc_len, void *plaintext, int plaintext_len, void *authdata, int authdata_len, void *iv, int iv_len, int tag_len, SECONTEXT *secontext)
 입력한 원문을 CCM/GCM 방식으로 암호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt_Auth (void *plaintext, int *plaintext_len, int plaintext_alloc_len, void *ciphertext, int ciphertext_len, void *authdata, int authdata_len, void *iv, int iv_len, int tag_len, SECONTEXT *secontext)
 입력한 암호문을 CCM/GCM 방식으로 복호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt_CMS (void *ciphertext, int *ciphertext_len, int ciphertext_alloc_len, void *plaintext, int plaintext_len, SECONTEXT *secontext)
 PKCS #7 - EnvelopedData 메시지 형식으로 암호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt_CMS (void *plaintext, int *plaintext_len, int plaintext_alloc_len, void *ciphertext, int ciphertext_len, SECONTEXT *secontext)
 PKCS #7 - EnvelopedData 메시지 형식의 암호문을 복호화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_GetRandom (void *buf, int buflen)
 랜덤값을 생성한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_PBKDF_PKCS12_GetKey (void *keyOut, int keyLen, const char *passwd)
 입력된 PIN을 기반으로 암복호화용 키를 생성(유도)한다. (PKCS#12 v1.0 Appendix. B) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_PBKDF_PKCS12_GetKey_Advanced (void *keyOut, int keyLen, int idByte, const char *passwd, const char *salt, int saltLen, int iterations, int hashType)
 입력된 값들을 기반으로 키를 생성(유도)한다. (PKCS#12 v1.0 Appendix. B) 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_PBKDF2_GetKey (void *keyOut, int keyLen, const char *passwd, const char *salt, int saltLen, int iterations, int hashType)
 입력된 값들을 기반으로 키를 생성(유도)한다. (PKCS#5 - PBKDF2) 더 자세히 ...
 

상세한 설명

대칭키 암호화,복호화 (일반 또는 PKCS #7 EnvelopedData)

열거형 타입 문서화

◆ ISSACAPI_SE_MODES

대칭키 암호 블록 운용모드

열거형 멤버
ISSACAPI_SE_ECB_MODE 

Electronic Codebook

ISSACAPI_SE_CBC_MODE 

Cipher Block Chaining

ISSACAPI_SE_CFB_MODE 

Cipher Feedback

ISSACAPI_SE_CFB_BYTE_MODE 

Cipher Feedback 에서 암호화 한 블럭의 상위 j-bits 가 1 바이트 일 때

ISSACAPI_SE_OFB_MODE 

Output Feedback

ISSACAPI_SE_OFB_BYTE_MODE 

Output Feedback 에서 암호화 한 블럭의 상위 j-bits 가 1 바이트 일 때

ISSACAPI_SE_CTS_MODE 

Cipert Text Stealing (출력 크기가 입력 크기와 동일한 패딩 방법을 사용하는 CBC)

ISSACAPI_SE_CFB1_MODE 

Cipher Feedback with bit feedback

ISSACAPI_SE_CTR_MODE 

Counter Mode

ISSACAPI_SE_MCFB_MODE 

Cipher Feedback with variable-sized message input.

ISSACAPI_SE_GCM_MODE 

Galois/Counter Mode of Operation

ISSACAPI_SE_CCM_MODE 

Counter Mode With CBC-MAC

함수 문서화

◆ ISSAC_SECONTEXT_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SECONTEXT_Create ( SECONTEXT secontext)

SECONTEXT 구조체를 초기화한다.

주의
사용 후 반드시 ISSAC_SECONTEXT_Delete() 를 호출하여 할당된 메모리를 해제해야 한다.
반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
secontext[IN,OUT] 초기화 할 SECONTEXT
예제
issacapi/se/sample_se_gcm.c, issacapi/se/sample_se_seed.c.

◆ ISSAC_SECONTEXT_Delete()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SECONTEXT_Delete ( SECONTEXT secontext)

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

반환값
ISSAC_SUCCESS : 성공
매개변수
secontext[IN,OUT] ISSAC_SECONTEXT_Create() 를 호출하여 초기화 된 SECONTEXT
예제
issacapi/se/sample_se_gcm.c, issacapi/se/sample_se_seed.c.

◆ ISSAC_SECONTEXT_Set()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SECONTEXT_Set ( SECONTEXT secontext,
const void *  key,
int  key_len,
const void *  iv,
int  iv_len,
int  mode,
int  cipher_id 
)

SECONTEXT 에 암호화를 위한 정보들을 입력한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_CIPHER_MODE : 잘못된 블록 운영 모드
ER_INVALID_SYMMETRIC_ENCRYPTION_ALGORITHM : 잘못된 대칭키 암호 알고리즘
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
ER_INVALID_IV_LEN : 잘못된 IV 길이. 대칭키 암호 알고리즘의 블록 크기와 동일해야 함.
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
secontext[IN,OUT] ISSAC_SECONTEXT_Create() 를 호출하여 초기화 된 SECONTEXT
key[IN] 비밀키
key_len[IN] 비밀키 길이
iv[IN] IV (Initial Vector)
iv_len[IN] IV 길이
mode[IN] 블록 운영 모드
cipher_id[IN] 대칭키 암호 알고리즘 [ISSACAPI_SEED, ISSACAPI_AES128, ISSACAPI_AES256, ISSACAPI_ARIA]
예제
issacapi/se/sample_se_gcm.c, issacapi/se/sample_se_seed.c.

◆ ISSAC_SECONTEXT_Copy()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SECONTEXT_Copy ( SECONTEXT destination_secontext,
SECONTEXT source_secontext 
)

SECONTEXT 를 복사한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_CAN_NOT_ALLOC_MEMORY : 메모리 할당 실패
매개변수
destination_secontext[IN,OUT] ISSAC_SECONTEXT_Create() 를 호출하여 초기화 된 SECONTEXT
source_secontext[IN] 복사할 원본 SECONTEXT

◆ ISSAC_SE_Encrypt()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt ( void *  ciphertext,
int *  ciphertext_len,
int  ciphertext_alloc_len,
void *  plaintext,
int  plaintext_len,
SECONTEXT secontext 
)

평문을 암호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SE_ENCRYPT_FAILURE : 암호화 실패
매개변수
ciphertext[OUT] 암호문 버퍼
ciphertext_len[OUT] 실제 암호문 크기
ciphertext_alloc_len[IN] 암호문 버퍼의 크기
plaintext[IN] 암호화 대상 원문
plaintext_len[IN] 암호화 대상 원문의 크기
secontext[IN] SE 컨텍스트
예제
issacapi/se/sample_se_seed.c.

◆ ISSAC_SE_EncryptEx()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_EncryptEx ( void *  ciphertext,
int *  ciphertext_len,
int  ciphertext_alloc_len,
void *  plaintext,
int  plaintext_len,
SECONTEXT secontext,
int  pad_type 
)

평문을 암호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SE_ENCRYPT_FAILURE : 암호화 실패
매개변수
ciphertext[OUT] 암호문 버퍼
ciphertext_len[OUT] 실제 암호문 크기
ciphertext_alloc_len[IN] 암호문 버퍼의 크기
plaintext[IN] 암호화 대상 원문
plaintext_len[IN] 암호화 대상 원문의 크기
secontext[IN] SE 컨텍스트
pad_type[IN] 패딩 타입 [0: 없음, 1: PKCS5 and PKCS7 패딩, 2: X9.23 패딩]

◆ ISSAC_SE_Decrypt()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt ( void *  plaintext,
int *  plaintext_len,
int  plaintext_alloc_len,
void *  ciphertext,
int  ciphertext_len,
SECONTEXT secontext 
)

암호문을 복호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_INVALID_PAD : 잘못된 패딩 (복호화는 성공했으나 적절한 패딩을 찾지 못함. 비밀키, IV 등이 맞는지 확인해 볼 것)
ER_SE_DECRYPT_FAILURE : 복호화 실패
매개변수
plaintext[OUT] 복호화 된 원문 버퍼
plaintext_len[OUT] 실제 복호화 된 원문 크기
plaintext_alloc_len[IN] 복호화 된 원문 버퍼의 크기
ciphertext[IN] 암호문
ciphertext_len[IN] 암호문 크기
secontext[IN] SE 컨텍스트
예제
issacapi/se/sample_se_seed.c.

◆ ISSAC_SE_DecryptEx()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_DecryptEx ( void *  plaintext,
int *  plaintext_len,
int  plaintext_alloc_len,
void *  ciphertext,
int  ciphertext_len,
SECONTEXT secontext,
int  pad_type 
)

암호문을 복호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_INVALID_PAD : 잘못된 패딩 (복호화는 성공했으나 적절한 패딩을 찾지 못함. 비밀키, IV 등이 맞는지 확인해 볼 것)
ER_SE_DECRYPT_FAILURE : 복호화 실패
매개변수
plaintext[OUT] 복호화 된 원문 버퍼
plaintext_len[OUT] 실제 복호화 된 원문 크기
plaintext_alloc_len[IN] 복호화 된 원문 버퍼의 크기
ciphertext[IN] 암호문
ciphertext_len[IN] 암호문 크기
secontext[IN] SE 컨텍스트
pad_type[IN] 패딩 타입 [0: 없음, 1: PKCS5 and PKCS7 패딩, 2: X9.23 패딩, 3: Zero 패딩]

◆ ISSAC_SE_Encrypt_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt_File ( const char *  ciphertext_file,
const char *  plaintext_file,
SECONTEXT secontext 
)

입력한 파일을 암호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_SE_ENCRYPT_FAILURE : 암호화 실패
매개변수
ciphertext_file[IN] 암호문 파일의 경로
plaintext_file[IN] 평문 파일의 경로
secontext[IN] SE 컨텍스트

◆ ISSAC_SE_Decrypt_File()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt_File ( const char *  plaintext_file,
const char *  ciphertext_file,
SECONTEXT secontext 
)

입력한 파일을 복호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_FILE_OPEN_FAIL : 파일 열기 실패
ER_INVALID_PAD : 잘못된 패딩 (복호화는 성공했으나 적절한 패딩을 찾지 못함. 비밀키, IV 등이 맞는지 확인해 볼 것)
ER_SE_DECRYPT_FAILURE : 복호화 실패
매개변수
plaintext_file[IN] 복호화 된 원문 파일의 경로
ciphertext_file[IN] 암호문 파일의 경로
secontext[IN] SE 컨텍스트

◆ ISSAC_SE_Encrypt_File_BSize()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt_File_BSize ( const char *  ciphertext_file,
const char *  plaintext_file,
SECONTEXT secontext,
int  buffer_size 
)

입력한 파일을 암호화한다. (입력한 버퍼크기 사용)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SE_ENCRYPT_FAILURE : 암호화 실패
매개변수
ciphertext_file[IN] 암호문 파일의 경로
plaintext_file[IN] 평문 파일의 경로
secontext[IN] SE 컨텍스트
buffer_size[IN] 내부에서 사용할 버퍼의 크기

◆ ISSAC_SE_Decrypt_File_BSize()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt_File_BSize ( const char *  plaintext_file,
const char *  ciphertext_file,
SECONTEXT secontext,
int  buffer_size 
)

입력한 파일을 복호화한다. (입력한 버퍼크기 사용)

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_PAD : 잘못된 패딩 (복호화는 성공했으나 적절한 패딩을 찾지 못함. 비밀키, IV 등이 맞는지 확인해 볼 것)
ER_SE_DECRYPT_FAILURE : 복호화 실패
매개변수
plaintext_file[IN] 복호화 된 원문 파일의 경로
ciphertext_file[IN] 암호문 파일의 경로
secontext[IN] SE 컨텍스트
buffer_size[IN] 내부에서 사용할 버퍼의 크기

◆ ISSAC_SE_Encrypt_Auth()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt_Auth ( void *  ciphertext,
int *  ciphertext_len,
int  ciphertext_alloc_len,
void *  plaintext,
int  plaintext_len,
void *  authdata,
int  authdata_len,
void *  iv,
int  iv_len,
int  tag_len,
SECONTEXT secontext 
)

입력한 원문을 CCM/GCM 방식으로 암호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SE_ENCRYPT_FAILURE : 암호화 실패
매개변수
ciphertext[OUT] 암호문 버퍼
ciphertext_len[OUT] 실제 암호문의 크기
ciphertext_alloc_len[IN] 암호문 버퍼 크기
plaintext[IN] 암호화 대상 원문
plaintext_len[IN] 암호화 대상 원문의 크기
authdata[IN] CCM/GCM의 추가 데이터
authdata_len[IN] CCM/GCM의 추가 데이터의 길이
iv[IN] GCM의 iv, CCM의 nonce
iv_len[IN] GCM의 iv, CCM의 nonce의 길이 [CCM : 7 ≤ nonceLen ≤ 13, GCM : 12 ≤ ivLen]
tag_len[IN] 메시지 인증 태그의 길이 [CCM : 4 ≤ tagLen ≤ 16, GCM : tagLen ≤ 16]
secontext[IN] SE 컨텍스트
예제
issacapi/se/sample_se_gcm.c.

◆ ISSAC_SE_Decrypt_Auth()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt_Auth ( void *  plaintext,
int *  plaintext_len,
int  plaintext_alloc_len,
void *  ciphertext,
int  ciphertext_len,
void *  authdata,
int  authdata_len,
void *  iv,
int  iv_len,
int  tag_len,
SECONTEXT secontext 
)

입력한 암호문을 CCM/GCM 방식으로 복호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SE_DECRYPT_FAILURE : 복호화 실패
매개변수
plaintext[OUT] 복호화 된 원문 버퍼
plaintext_len[OUT] 실제 복호화 된 원문 크기
plaintext_alloc_len[IN] 복호화 된 원문 버퍼의 크기
ciphertext[IN] 암호문
ciphertext_len[IN] 암호문의 크기
authdata[IN] CCM/GCM의 추가 데이터
authdata_len[IN] CCM/GCM의 추가 데이터의 길이
iv[IN] GCM의 iv, CCM의 nonce
iv_len[IN] GCM의 iv, CCM의 nonce의 길이 [CCM : 7 ≤ nonceLen ≤ 13, GCM : 12 ≤ ivLen]
tag_len[IN] 메시지 인증 태그의 길이 [CCM : 4 ≤ tagLen ≤ 16, GCM : tagLen ≤ 16]
secontext[IN] SE 컨텍스트
예제
issacapi/se/sample_se_gcm.c.

◆ ISSAC_SE_Encrypt_CMS()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Encrypt_CMS ( void *  ciphertext,
int *  ciphertext_len,
int  ciphertext_alloc_len,
void *  plaintext,
int  plaintext_len,
SECONTEXT secontext 
)

PKCS #7 - EnvelopedData 메시지 형식으로 암호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SE_ENCRYPT_FAILURE : 암호화 실패
ER_DER_ENCODE_FAIL : DER 인코딩 실패
매개변수
ciphertext[OUT] PKCS #7 - EnvelopedData 메시지 버퍼
ciphertext_len[OUT] 실제 PKCS #7 - EnvelopedData 메시지 의 크기
ciphertext_alloc_len[IN] PKCS #7 - EnvelopedData 메시지 버퍼의 크기
plaintext[IN] 암호화 대상 원문
plaintext_len[IN] 암호화 대상 원문의 크기
secontext[IN] SE 컨텍스트

◆ ISSAC_SE_Decrypt_CMS()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_Decrypt_CMS ( void *  plaintext,
int *  plaintext_len,
int  plaintext_alloc_len,
void *  ciphertext,
int  ciphertext_len,
SECONTEXT secontext 
)

PKCS #7 - EnvelopedData 메시지 형식의 암호문을 복호화한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_SE_INVALID_DATAFORMAT : PKCS #7 - EnvelopedData 메시지의 형식이 맞지 않음
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_SE_DECRYPT_FAILURE : 복호화 실패
매개변수
plaintext[OUT] 복호화 된 원문 버퍼
plaintext_len[OUT] 실제 복호화 된 원문 크기
plaintext_alloc_len[IN] 복호화 된 원문 버퍼의 크기
ciphertext[IN] PKCS #7 - EnvelopedData 메시지
ciphertext_len[IN] PKCS #7 - EnvelopedData 메시지 의 크기
secontext[IN] SE 컨텍스트

◆ ISSAC_SE_GetRandom()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_GetRandom ( void *  buf,
int  buflen 
)

랜덤값을 생성한다.

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 실패
ER_INVALID_INPUT : 입력값 오류
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
buf[OUT] 생성된 랜덤값의 버퍼
buflen[IN] 생성할 랜덤값의 크기 (bytes)

◆ ISSAC_SE_PBKDF_PKCS12_GetKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_PBKDF_PKCS12_GetKey ( void *  keyOut,
int  keyLen,
const char *  passwd 
)

입력된 PIN을 기반으로 암복호화용 키를 생성(유도)한다. (PKCS#12 v1.0 Appendix. B)

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 생성 실패
ER_INVALID_INPUT : 입력값 오류
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
keyOut[OUT] 생성된 키의 버퍼
keyLen[IN] 생성할 암복호화용 키의 길이 (bytes)
passwd[IN] 암복호화용 키 생성에 사용할 PIN

◆ ISSAC_SE_PBKDF_PKCS12_GetKey_Advanced()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_PBKDF_PKCS12_GetKey_Advanced ( void *  keyOut,
int  keyLen,
int  idByte,
const char *  passwd,
const char *  salt,
int  saltLen,
int  iterations,
int  hashType 
)

입력된 값들을 기반으로 키를 생성(유도)한다. (PKCS#12 v1.0 Appendix. B)

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 생성 실패
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 지원하지 않는 해시 알고리즘
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
keyOut[OUT] 생성된 키의 버퍼
keyLen[IN] 생성할 키의 길이 (bytes)
idByte[IN] 키의 용도 [1: 암복호화, 2: IV, 3: MAC]
passwd[IN] 키 생성에 사용할 PIN
salt[IN] salt (표준 참고)
saltLen[IN] salt 크기
iterations[IN] iterations (표준 참고)
hashType[IN] 키 유도 과정에 사용되는 해시 알고리즘 [0: SHA1, 1: SHA256, 2: HAS160]

◆ ISSAC_SE_PBKDF2_GetKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_SE_PBKDF2_GetKey ( void *  keyOut,
int  keyLen,
const char *  passwd,
const char *  salt,
int  saltLen,
int  iterations,
int  hashType 
)

입력된 값들을 기반으로 키를 생성(유도)한다. (PKCS#5 - PBKDF2)

반환값
ISSAC_SUCCESS : 성공
ISSAC_FAIL : 생성 실패
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 지원하지 않는 해시 알고리즘
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
keyOut[OUT] 생성된 키의 버퍼
keyLen[IN] 생성할 키의 길이 (bytes)
passwd[IN] 키 생성에 사용할 PIN
salt[IN] salt (표준 참고)
saltLen[IN] salt 크기
iterations[IN] iterations (표준 참고)
hashType[IN] 키 유도 과정에 사용되는 해시 알고리즘 [0: SHA1, 1: SHA256, 2: HAS160]