WA-SDK  3.0.4.0
WA-SDK
WA-SDK Internal API

새로 작성된 Core API 목록 (ISSAC-Web 위주로 내부코드를 이 API로 대체) 더 자세히 ...

매크로

#define WASDK_FAIL   -1
 실패 더 자세히 ...
 
#define WASDK_SUCCESS   0
 성공 더 자세히 ...
 
#define MAX_SYMM_KEY_SIZE   32
 256 bit (AES256) 더 자세히 ...
 
#define MAX_SYMM_BLOCK_SIZE   16
 128 bit (SEED, AES128, AES256, ARIA, ...) 더 자세히 ...
 
#define MAX_ASYMM_KEY_SIZE   512
 4096 bit (RSA 4096) 더 자세히 ...
 
#define MAX_HASH_SIZE   64
 512 bit (SHA 512) 더 자세히 ...
 
#define WASDK_SAFE_FREE(_PTR_)   do { if (_PTR_) { free(_PTR_); (_PTR_) = NULL; } } while (0)
 

열거형 타입

enum  ESymmetricOperationMode {
  ESOM_UNDEFINED = -1 , ESOM_ECB , ESOM_CBC , ESOM_CFB ,
  ESOM_CFB_BYTE , ESOM_OFB , ESOM_OFB_BYTE , ESOM_CTS ,
  ESOM_CFB1 , ESOM_CTR , ESOM_MCFB , ESOM_GCM ,
  ESOM_CCM , ESymmetricOperationMode_COUNT
}
 비밀키 암호화 운영모드 더 자세히 ...
 
enum  ESymmetricAlgorithm {
  ESA_UNDEFINED = -1 , ESA_SEED , ESA_AES128 , ESA_AES256 ,
  ESA_ARIA , ESA_ARIA192 , ESA_ARIA256 , ESA_DES ,
  ESA_TDES , ESA_IDEA , ESA_LEA128 , ESA_LEA192 ,
  ESA_LEA256 , ESymmetricAlgorithm_COUNT
}
 대칭키 암호화 알고리즘 더 자세히 ...
 
enum  EAsymmetricAlgorithm {
  EAA_UNDEFINED = -1 , EAA_RSA , EAA_RSA21 , EAA_KCDSA0 ,
  EAA_KCDSA1 , EAA_ECDSA , EAA_ECKCDSA , EAA_DSA ,
  EAsymmetricAlgorithm_COUNT
}
 비대칭키 알고리즘 (전자서명, 암호화) 더 자세히 ...
 
enum  EHashAlgorithm {
  EHA_UNDEFINED = -1 , EHA_SHA1_OLD , EHA_SHA1 , EHA_SHA224 ,
  EHA_SHA256 , EHA_SHA384 , EHA_SHA512 , EHA_HAS160 ,
  EHA_MD2 , EHA_MD5 , EHashAlgorithm_COUNT
}
 해시 알고리즘 더 자세히 ...
 
enum  ERsaEncryptionScheme {
  ERES_UNDEFINED = -1 , ERES_OAEP_OLD , ERES_PKCS1_V15 , ERES_OAEP_V20 ,
  ERES_OAEP_V21 , ERsaEncryptionScheme_COUNT
}
 PKCS1 RSA 암호화에 사용되는 Encryption Scheme 더 자세히 ...
 
enum  EEncodingFormat {
  EEF_UNKNOWN = -1 , EEF_Binary , EEF_Base64 , EEF_Base64Url ,
  EEF_Base64UrlWithPadding , EEF_HexUpper , EEF_HexLower , EEncodingFormat_COUNT
}
 데이터 인코딩 형식 더 자세히 ...
 
enum  ECompareResult { ECR_Unknown = -2 , ECR_LessThan = -1 , ECR_Equal = 0 , ECR_GreaterThan = 1 }
 비교 결과 더 자세히 ...
 

함수

WA_SDK_API EErrorCode FUNCCALL wasdk_init_without_license (void)
 라이선스 확인 없이 모듈 초기화만 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_init (void)
 모듈 초기화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_init_with_ini (const char *ini, int ini_len)
 INI 설정을 이용하여 모듈 초기화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_init_with_ini_file (const char *ini_path)
 INI 설정 파일을 이용하여 모듈 초기화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_finalize (void)
 모듈을 종료한다. 더 자세히 ...
 
WA_SDK_API int FUNCCALL wasdk_get_detail_errorcode (void)
 상세한 에러코드를 리턴한다. 더 자세히 ...
 
WA_SDK_API int FUNCCALL wasdk_current_state (void)
 모듈의 현재상태를 가져온다. (디버깅 용 정보) 더 자세히 ...
 
WA_SDK_API const char *FUNCCALL wasdk_version (void)
 모듈의 버전을 가져온다. 더 자세히 ...
 
WA_SDK_API const char *FUNCCALL wasdk_product_info (void)
 모듈의 정보를 가져온다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_get_license_info (char *outstring)
 라이선스 정보를 가져온다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_set_verified_service (void)
 암호모듈 유한상태모델(FSM)의 현재 상태를 검증 서비스 상태로 변경한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_set_not_verified_service (void)
 암호모듈 유한상태모델(FSM)의 현재 상태를 비검증 서비스 상태로 변경한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_base64_encoding (char *b64, int b64BufSize, const unsigned char *data, int dataSize)
 Base64 인코딩 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_base64_decoding (unsigned char *data, int *dataSize, int dataBufSize, const char *b64)
 Base64 디코딩 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_generate_random (unsigned char *random, int randomSize)
 RNG(Random Number Generator)를 사용하여 랜덤값을 생성한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_generate_keypair (unsigned char *publicKey, int *publicKeySize, int publicKeyBufSize, unsigned char *privateKey, int *privateKeySize, int privateKeyBufSize, EAsymmetricAlgorithm asymmAlg, int keySizeInBit)
 키쌍을 생성한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_check_keypair (const unsigned char *publicKey, int publicKeySize, const unsigned char *privateKey, int privateKeySize, EAsymmetricAlgorithm asymmAlg)
 RSA 키쌍을 검증한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_generate_keypair_ec (unsigned char *publicKey, int *publicKeySize, int publicKeyBufSize, unsigned char *privateKey, int *privateKeySize, int privateKeyBufSize, EAsymmetricAlgorithm asymmAlg, const char *curveName)
 Elliptic Curve 키쌍을 생성한다. (ECDSA, ECKCDSA) 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_check_keypair_ec (const unsigned char *publicKey, int publicKeySize, const unsigned char *privateKey, int privateKeySize, EAsymmetricAlgorithm asymmAlg, const char *curveName)
 Elliptic Curve 키쌍을 검증한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_generate_iv_from_seed (unsigned char *iv, int *ivSize, int ivBufSize, const unsigned char *ivSeed, int ivSeedSize, ESymmetricAlgorithm symmAlg, EHashAlgorithm hashAlg)
 IV SEED를 입력받아 IV를 생성한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_hash_encrypt (unsigned char *hashValue, int *hashValueSize, int hashValueBufSize, const unsigned char *plaintext, int plaintextSize, EHashAlgorithm hashAlg)
 해시 암호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_hmac_encrypt (unsigned char *hmacValue, int *hmacValueSize, int hmacValueBufSize, const unsigned char *plaintext, int plaintextSize, const unsigned char *key, int keySize, EHashAlgorithm hashAlg)
 HMAC (Hashed MAC) 암호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_symmetric_encrypt (unsigned char *encrypted, int *encryptedSize, int encryptedBufSize, const unsigned char *plaintext, int plaintextSize, const unsigned char *key, int keySize, const unsigned char *iv, int ivSize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode)
 비밀키 암호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_symmetric_encrypt_ex (unsigned char *encrypted, int *encryptedSize, int encryptedBufSize, const unsigned char *plaintext, int plaintextSize, const unsigned char *key, int keySize, const unsigned char *iv, int ivSize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode, unsigned char padFlag)
 비밀키 암호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_symmetric_decrypt (unsigned char *decrypted, int *decryptedSize, int decryptedBufSize, const unsigned char *encrypted, int encryptedSize, const unsigned char *key, int keySize, const unsigned char *iv, int ivSize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode)
 비밀키 복호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_symmetric_decrypt_ex (unsigned char *decrypted, int *decryptedSize, int decryptedBufSize, const unsigned char *encrypted, int encryptedSize, const unsigned char *key, int keySize, const unsigned char *iv, int ivSize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode, unsigned char padFlag)
 비밀키 복호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_encrypt (unsigned char *encrypted, int *encryptedSize, int encryptedBufSize, const unsigned char *plaintext, int plaintextSize, const unsigned char *publicKey, int publicKeySize, EHashAlgorithm hashAlg, ERsaEncryptionScheme rsaEncryptionScheme)
 RSA 암호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_decrypt (unsigned char *decrypted, int *decryptedSize, int decryptedBufSize, const unsigned char *encrypted, int encryptedSize, const unsigned char *privateKey, int privateKeySize, EHashAlgorithm hashAlg, ERsaEncryptionScheme rsaEncryptionScheme)
 RSA 복호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_encrypt_by_cert (unsigned char *encrypted, int *encryptedSize, int encryptedBufSize, const unsigned char *plaintext, int plaintextSize, const unsigned char *cert, int certSize, EHashAlgorithm hashAlg)
 RSA 암호화를 실행한다. (인증서의 공개키 사용) 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_decrypt_by_pkcs8 (unsigned char *decrypted, int *decryptedSize, int decryptedBufSize, const unsigned char *encrypted, int encryptedSize, const unsigned char *privateKey, int privateKeySize, EHashAlgorithm hashAlg)
 RSA 복호화를 실행한다. (PKCS8 형식의 개인키 사용) 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_decrypt_by_pkcs8_ptr (unsigned char *decrypted, int *decryptedSize, int decryptedBufSize, const unsigned char *encrypted, int encryptedSize, void *privateKeyInfoPtr, EHashAlgorithm hashAlg)
 RSA 복호화를 실행한다. (외부에서 생성된 CIS PKCS8 형식의 개인키 포인터 사용) 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_encrypt (unsigned char *encrypted, int *encryptedSize, int encryptedBufSize, const unsigned char *plaintext, int plaintextSize, const unsigned char *customSessionKey, int sessionKeySize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode, EHashAlgorithm hashAlg, const unsigned char *publicKey, int publicKeySize, ERsaEncryptionScheme rsaEncryptionScheme)
 하이브리드 암호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_decrypt (unsigned char *decrypted, int *decryptedSize, int decryptedBufSize, unsigned char *sessionKey, int *sessionKeySize, int sessionKeyBufSize, const unsigned char *encrypted, int encryptedSize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode, EHashAlgorithm hashAlg, const unsigned char *privateKey, int privateKeySize, ERsaEncryptionScheme rsaEncryptionScheme)
 하이브리드 복호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_encrypt_by_cert (unsigned char *encrypted, int *encryptedSize, int encryptedBufSize, const unsigned char *plaintext, int plaintextSize, const unsigned char *customSessionKey, int sessionKeySize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode, EHashAlgorithm hashAlg, const unsigned char *certificate, int certificateSize)
 하이브리드 암호화를 실행한다. 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_encrypt_ivseed (unsigned char *encrypted, int *encryptedSize, int encryptedBufSize, const unsigned char *plaintext, int plaintextSize, const unsigned char *customSessionKey, int sessionKeySize, const unsigned char *customIvSeed, int ivSeedSize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode, EHashAlgorithm hashAlg, const unsigned char *publicKey, int publicKeySize, ERsaEncryptionScheme rsaEncryptionScheme)
 하이브리드 암호화를 실행한다. (IV SEED 포함) 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_decrypt_ivseed (unsigned char *decrypted, int *decryptedSize, int decryptedBufSize, unsigned char *sessionKey, int *sessionKeySize, int sessionKeyBufSize, int ivSeedSize, const unsigned char *encrypted, int encryptedSize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode, EHashAlgorithm hashAlg, const unsigned char *privateKey, int privateKeySize, ERsaEncryptionScheme rsaEncryptionScheme)
 하이브리드 복호화를 실행한다. (IV SEED 포함) 더 자세히 ...
 
WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_decrypt_by_sessionkey (unsigned char *decrypted, int *decryptedSize, int decryptedBufSize, const unsigned char *encrypted, int encryptedSize, const unsigned char *sessionKey, int sessionKeySize, ESymmetricAlgorithm symmAlg, ESymmetricOperationMode opMode)
 주어진 세션키로 하이브리드 데이터의 암호문 부분을 복호화한다. 더 자세히 ...
 
WA_SDK_API void FUNCCALL wasdk_free (void *ptr)
 WA-SDK 에서 생성된 메모리를 해제한다. (다른 메모리 영역) 더 자세히 ...
 
WA_SDK_API const char *FUNCCALL wasdk_error_message (EErrorCode errorCode)
 에러코드에 해당하는 에러 메시지를 가져온다. 더 자세히 ...
 

상세한 설명

새로 작성된 Core API 목록 (ISSAC-Web 위주로 내부코드를 이 API로 대체)

매크로 문서화

◆ WASDK_FAIL

#define WASDK_FAIL   -1

실패

◆ WASDK_SUCCESS

#define WASDK_SUCCESS   0

◆ MAX_SYMM_KEY_SIZE

#define MAX_SYMM_KEY_SIZE   32

256 bit (AES256)

◆ MAX_SYMM_BLOCK_SIZE

#define MAX_SYMM_BLOCK_SIZE   16

128 bit (SEED, AES128, AES256, ARIA, ...)

◆ MAX_ASYMM_KEY_SIZE

#define MAX_ASYMM_KEY_SIZE   512

4096 bit (RSA 4096)

◆ MAX_HASH_SIZE

#define MAX_HASH_SIZE   64

◆ WASDK_SAFE_FREE

#define WASDK_SAFE_FREE (   _PTR_)    do { if (_PTR_) { free(_PTR_); (_PTR_) = NULL; } } while (0)

열거형 타입 문서화

◆ ESymmetricOperationMode

비밀키 암호화 운영모드

열거형 멤버
ESOM_UNDEFINED 
ESOM_ECB 

ECB (Electronic Codebook)

ESOM_CBC 

CBC (Cipher Block Chaining)

ESOM_CFB 

CFB (Cipher Feedback)

ESOM_CFB_BYTE 

CFB BYTE

ESOM_OFB 

OFB (Output Feedback)

ESOM_OFB_BYTE 

OFB BYTE

ESOM_CTS 

CTS

ESOM_CFB1 

CFB1

ESOM_CTR 

CTR (Counter Mode)

ESOM_MCFB 

MCFB

ESOM_GCM 

GCM (Galois/Counter Mode of Operation) (unsupported)

ESOM_CCM 

CCM (Counter Mode with CBC-MAC) (unsupported)

ESymmetricOperationMode_COUNT 

◆ ESymmetricAlgorithm

대칭키 암호화 알고리즘

열거형 멤버
ESA_UNDEFINED 
ESA_SEED 

SEED

ESA_AES128 

AES128

ESA_AES256 

AES256

ESA_ARIA 

ARIA

ESA_ARIA192 

ARIA192

ESA_ARIA256 

ARIA256

ESA_DES 

DES

ESA_TDES 

TDES

ESA_IDEA 

IDEA

ESA_LEA128 

LEA128

ESA_LEA192 

LEA192

ESA_LEA256 

LEA256

ESymmetricAlgorithm_COUNT 

◆ EAsymmetricAlgorithm

비대칭키 알고리즘 (전자서명, 암호화)

열거형 멤버
EAA_UNDEFINED 
EAA_RSA 

RSA

EAA_RSA21 

RSA v2.1

EAA_KCDSA0 

KCDSA (Korean Certificate based - Digital Signature Algorithm)

EAA_KCDSA1 

KCDSA1 (Korean Certificate based - Digital Signature Algorithm)

EAA_ECDSA 

ECDSA (Elliptic Curve Digital Signature Algorithm)

EAA_ECKCDSA 

ECKCDSA (Korean Certificate based - Elliptic Curve Digital Signature Algorithm)

EAA_DSA 

DSA (Digital Signature Algorithm)

EAsymmetricAlgorithm_COUNT 

◆ EHashAlgorithm

해시 알고리즘

열거형 멤버
EHA_UNDEFINED 
EHA_SHA1_OLD 

SHA1_OLD (예전 ROTL 문제가 있었던 알고리즘)

EHA_SHA1 

SHA1

EHA_SHA224 

SHA224

EHA_SHA256 

SHA256

EHA_SHA384 

SHA384

EHA_SHA512 

SHA512

EHA_HAS160 

HAS160

EHA_MD2 

MD2

EHA_MD5 

MD5

EHashAlgorithm_COUNT 

◆ ERsaEncryptionScheme

PKCS1 RSA 암호화에 사용되는 Encryption Scheme

열거형 멤버
ERES_UNDEFINED 
ERES_OAEP_OLD 

OAEP 예전 방식

ERES_PKCS1_V15 

v1.5 방식

ERES_OAEP_V20 

v2.0 OAEP 방식

ERES_OAEP_V21 

v2.1 OAEP 방식

ERsaEncryptionScheme_COUNT 

◆ EEncodingFormat

데이터 인코딩 형식

열거형 멤버
EEF_UNKNOWN 
EEF_Binary 

이진 데이터 형식 (인코딩 안함)

EEF_Base64 

Base64 인코딩

EEF_Base64Url 

Base64 URL 인코딩

EEF_Base64UrlWithPadding 

Base64 URL 인코딩 (패딩포함)

EEF_HexUpper 

Hex 인코딩 (대문자)

EEF_HexLower 

Hex 인코딩 (소문자)

EEncodingFormat_COUNT 

◆ ECompareResult

비교 결과

열거형 멤버
ECR_Unknown 

모르겠다

ECR_LessThan 

왼쪽이 작다

ECR_Equal 

같다

ECR_GreaterThan 

왼쪽이 크다

함수 문서화

◆ wasdk_init_without_license()

WA_SDK_API EErrorCode FUNCCALL wasdk_init_without_license ( void  )

◆ wasdk_init()

◆ wasdk_init_with_ini()

WA_SDK_API EErrorCode FUNCCALL wasdk_init_with_ini ( const char *  ini,
int  ini_len 
)

INI 설정을 이용하여 모듈 초기화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Cis_SelfTestFailed_ModuleIntegrity
EEC_Cis_SelfTestFailed_VerifiedAlgorithm
EEC_Cis_InvalidState
EEC_Cis_ErrorOnCis
그 외 : 라이선스 오류
매개변수
ini[IN] INI 설정
ini_len[IN] INI 설정의 길이

◆ wasdk_init_with_ini_file()

WA_SDK_API EErrorCode FUNCCALL wasdk_init_with_ini_file ( const char *  ini_path)

INI 설정 파일을 이용하여 모듈 초기화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_FileReadFail
EEC_Cis_SelfTestFailed_ModuleIntegrity
EEC_Cis_SelfTestFailed_VerifiedAlgorithm
EEC_Cis_InvalidState
EEC_Cis_ErrorOnCis
그 외 : 라이선스 오류
매개변수
ini_path[IN] INI 설정 파일 경로

◆ wasdk_finalize()

WA_SDK_API EErrorCode FUNCCALL wasdk_finalize ( void  )

모듈을 종료한다.

반환값
EEC_Success

◆ wasdk_get_detail_errorcode()

WA_SDK_API int FUNCCALL wasdk_get_detail_errorcode ( void  )

상세한 에러코드를 리턴한다.

Remarks
실패 시 상세한 에러코드를 제공하지 않는 API 사용 시 이 API를 호출하면 좀 더 상세한 에러코드를 확인할 수 있다.
반환값
에러코드

◆ wasdk_current_state()

WA_SDK_API int FUNCCALL wasdk_current_state ( void  )

모듈의 현재상태를 가져온다. (디버깅 용 정보)

반환값
모듈의 현재상태

◆ wasdk_version()

WA_SDK_API const char* FUNCCALL wasdk_version ( void  )

모듈의 버전을 가져온다.

반환값
버전 정보

◆ wasdk_product_info()

WA_SDK_API const char* FUNCCALL wasdk_product_info ( void  )

모듈의 정보를 가져온다.

반환값
모듈 정보

◆ wasdk_get_license_info()

WA_SDK_API EErrorCode FUNCCALL wasdk_get_license_info ( char *  outstring)

라이선스 정보를 가져온다.

반환값
EEC_Success
EEC_License_NotFoundLicenseType
매개변수
outstring[OUT] 라이선스의 정보 (이름 일부)

◆ wasdk_set_verified_service()

WA_SDK_API EErrorCode FUNCCALL wasdk_set_verified_service ( void  )

암호모듈 유한상태모델(FSM)의 현재 상태를 검증 서비스 상태로 변경한다.

반환값
EEC_Success
EEC_Cis_InvalidState
EEC_Cis_ErrorOnCis

◆ wasdk_set_not_verified_service()

WA_SDK_API EErrorCode FUNCCALL wasdk_set_not_verified_service ( void  )

암호모듈 유한상태모델(FSM)의 현재 상태를 비검증 서비스 상태로 변경한다.

반환값
EEC_Success
EEC_Cis_InvalidState
EEC_Cis_ErrorOnCis

◆ wasdk_base64_encoding()

WA_SDK_API EErrorCode FUNCCALL wasdk_base64_encoding ( char *  b64,
int  b64BufSize,
const unsigned char *  data,
int  dataSize 
)

Base64 인코딩

반환값
EEC_Success
EEC_General_EncodeBase64Fail
매개변수
b64[OUT] Base64 문자열
b64BufSize[IN] Base64 문자열 버퍼 크기
data[IN] 데이터
dataSize[IN] 데이터 크기
예제
wasdk/sample_wasdk_base64.c.

◆ wasdk_base64_decoding()

WA_SDK_API EErrorCode FUNCCALL wasdk_base64_decoding ( unsigned char *  data,
int *  dataSize,
int  dataBufSize,
const char *  b64 
)

Base64 디코딩

반환값
EEC_Success
EEC_General_DecodeBase64Fail
매개변수
data[OUT] 디코딩 된 데이터
dataSize[OUT] 디코딩 된 데이터 크기
dataBufSize[IN] 디코딩 된 데이터 버퍼 크기
b64[IN] Base64 문자열
예제
wasdk/sample_wasdk_base64.c, wasdk/sample_wasdk_hybrid_encryption.c.

◆ wasdk_generate_random()

WA_SDK_API EErrorCode FUNCCALL wasdk_generate_random ( unsigned char *  random,
int  randomSize 
)

RNG(Random Number Generator)를 사용하여 랜덤값을 생성한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_BufferSizeTooSmall
EEC_Encryption_GenerateKeyPairFail
EEC_Asn_GetPublickeyFail
매개변수
random[OUT] 랜덤값
randomSize[IN] 랜덤값 크기

◆ wasdk_generate_keypair()

WA_SDK_API EErrorCode FUNCCALL wasdk_generate_keypair ( unsigned char *  publicKey,
int *  publicKeySize,
int  publicKeyBufSize,
unsigned char *  privateKey,
int *  privateKeySize,
int  privateKeyBufSize,
EAsymmetricAlgorithm  asymmAlg,
int  keySizeInBit 
)

키쌍을 생성한다.

반환값
EEC_Success
EEC_Encryption_GenerateRandomFail
매개변수
publicKey[OUT] 공개키
publicKeySize[OUT] 공개키 크기
publicKeyBufSize[IN] 공개키 버퍼 크기
privateKey[OUT] 개인키
privateKeySize[OUT] 개인키 크기
privateKeyBufSize[IN] 개인키 버퍼 크기
asymmAlg[IN] 공개키 알고리즘
keySizeInBit[IN] 공개키 길이 (bit)

◆ wasdk_check_keypair()

WA_SDK_API EErrorCode FUNCCALL wasdk_check_keypair ( const unsigned char *  publicKey,
int  publicKeySize,
const unsigned char *  privateKey,
int  privateKeySize,
EAsymmetricAlgorithm  asymmAlg 
)

RSA 키쌍을 검증한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Encryption_CheckKeyPairFail
EEC_Asn_DerDecodingPrivateKeyFail
EEC_Asn_DerDecodingPublicKeyFail
매개변수
publicKey[IN] 공개키
publicKeySize[IN] 공개키 크기
privateKey[IN] 개인키
privateKeySize[IN] 개인키 크기
asymmAlg[IN] 공개키 알고리즘

◆ wasdk_generate_keypair_ec()

WA_SDK_API EErrorCode FUNCCALL wasdk_generate_keypair_ec ( unsigned char *  publicKey,
int *  publicKeySize,
int  publicKeyBufSize,
unsigned char *  privateKey,
int *  privateKeySize,
int  privateKeyBufSize,
EAsymmetricAlgorithm  asymmAlg,
const char *  curveName 
)

Elliptic Curve 키쌍을 생성한다. (ECDSA, ECKCDSA)

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_BufferSizeTooSmall
EEC_Encryption_UnsupportedAsymmetricAlgorithm
EEC_Encryption_NotFoundMatchedNid
EEC_Encryption_GenerateKeyPairFail
EEC_Asn_DerEncodingPublicKeyFail
EEC_Asn_DerEncodingPrivateKeyFail
EEC_Asn_GeneratePublicKeyFail
EEC_Asn_GeneratePrivateKeyFail
매개변수
publicKey[OUT] 공개키
publicKeySize[OUT] 공개키 크기
publicKeyBufSize[IN] 공개키 버퍼 크기
privateKey[OUT] 개인키
privateKeySize[OUT] 개인키 크기
privateKeyBufSize[IN] 개인키 버퍼 크기
asymmAlg[IN] 공개키 알고리즘
curveName[IN] Curve 이름

◆ wasdk_check_keypair_ec()

WA_SDK_API EErrorCode FUNCCALL wasdk_check_keypair_ec ( const unsigned char *  publicKey,
int  publicKeySize,
const unsigned char *  privateKey,
int  privateKeySize,
EAsymmetricAlgorithm  asymmAlg,
const char *  curveName 
)

Elliptic Curve 키쌍을 검증한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Encryption_CheckKeyPairFail
EEC_Asn_DerDecodingPrivateKeyFail
EEC_Asn_DerDecodingPublicKeyFail
매개변수
publicKey[IN] 공개키
publicKeySize[IN] 공개키 크기
privateKey[IN] 개인키
privateKeySize[IN] 개인키 크기
asymmAlg[IN] 공개키 알고리즘
curveName[IN] Curve 이름

◆ wasdk_generate_iv_from_seed()

WA_SDK_API EErrorCode FUNCCALL wasdk_generate_iv_from_seed ( unsigned char *  iv,
int *  ivSize,
int  ivBufSize,
const unsigned char *  ivSeed,
int  ivSeedSize,
ESymmetricAlgorithm  symmAlg,
EHashAlgorithm  hashAlg 
)

IV SEED를 입력받아 IV를 생성한다.

Remarks
기존 ISSAC-Web 기능 호환용
반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_BufferSizeTooSmall
wasdk_hash_encrypt() 리턴값
매개변수
iv[OUT] IV
ivSize[OUT] IV 크기
ivBufSize[IN] IV 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
ivSeed[IN] IV SEED
ivSeedSize[IN] IV SEED 크기
symmAlg[IN] 대칭키 알고리즘
hashAlg[IN] 해시 알고리즘

◆ wasdk_hash_encrypt()

WA_SDK_API EErrorCode FUNCCALL wasdk_hash_encrypt ( unsigned char *  hashValue,
int *  hashValueSize,
int  hashValueBufSize,
const unsigned char *  plaintext,
int  plaintextSize,
EHashAlgorithm  hashAlg 
)

해시 암호화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_BufferSizeTooSmall
EEC_Encryption_UnsupportedHashAlgorithm
EEC_Encryption_HashEncryptFail
매개변수
hashValue[OUT] 해시값
hashValueSize[OUT] 해시값 크기
hashValueBufSize[IN] 해시값 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
plaintext[IN] 원문 데이터
plaintextSize[IN] 원문 데이터 크기
hashAlg[IN] 해시 알고리즘

◆ wasdk_hmac_encrypt()

WA_SDK_API EErrorCode FUNCCALL wasdk_hmac_encrypt ( unsigned char *  hmacValue,
int *  hmacValueSize,
int  hmacValueBufSize,
const unsigned char *  plaintext,
int  plaintextSize,
const unsigned char *  key,
int  keySize,
EHashAlgorithm  hashAlg 
)

HMAC (Hashed MAC) 암호화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_BufferSizeTooSmall
EEC_Encryption_UnsupportedHashAlgorithm
EEC_Encryption_HmacEncryptFail
매개변수
hmacValue[OUT] HMAC 값
hmacValueSize[OUT] HMAC 값 크기
hmacValueBufSize[IN] HMAC 값 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
plaintext[IN] 원문 데이터
plaintextSize[IN] 원문 데이터 크기
key[IN] 비밀키
keySize[IN] 비밀키 크기
hashAlg[IN] 해시 알고리즘

◆ wasdk_symmetric_encrypt()

WA_SDK_API EErrorCode FUNCCALL wasdk_symmetric_encrypt ( unsigned char *  encrypted,
int *  encryptedSize,
int  encryptedBufSize,
const unsigned char *  plaintext,
int  plaintextSize,
const unsigned char *  key,
int  keySize,
const unsigned char *  iv,
int  ivSize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode 
)

비밀키 암호화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Encryption_InvalidKeySize
EEC_Encryption_UnsupportedSymmetricAlgorithm
EEC_Encryption_SymmetricEncryptFail
그 외 : 라이선스 오류
매개변수
encrypted[OUT] 암호화 된 데이터
encryptedSize[OUT] 암호화 된 데이터 크기
encryptedBufSize[IN] 암호화 된 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
plaintext[IN] 원문 데이터
plaintextSize[IN] 원문 데이터 크기
key[IN] 비밀키
keySize[IN] 비밀키 크기
iv[IN] 운영모드에 따라 필요한 초기 벡터 (필요 없으면 NULL, 이 경우는 0x0000... 사용)
ivSize[IN] IV 크기 (필요없으면 0)
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드
예제
wasdk/sample_wasdk_symmetric_encryption.c.

◆ wasdk_symmetric_encrypt_ex()

WA_SDK_API EErrorCode FUNCCALL wasdk_symmetric_encrypt_ex ( unsigned char *  encrypted,
int *  encryptedSize,
int  encryptedBufSize,
const unsigned char *  plaintext,
int  plaintextSize,
const unsigned char *  key,
int  keySize,
const unsigned char *  iv,
int  ivSize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode,
unsigned char  padFlag 
)

비밀키 암호화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Encryption_InvalidKeySize
EEC_Encryption_UnsupportedSymmetricAlgorithm
EEC_Encryption_SymmetricEncryptFail
그 외 : 라이선스 오류
매개변수
encrypted[OUT] 암호화 된 데이터
encryptedSize[OUT] 암호화 된 데이터 크기
encryptedBufSize[IN] 암호화 된 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
plaintext[IN] 원문 데이터
plaintextSize[IN] 원문 데이터 크기
key[IN] 비밀키
keySize[IN] 비밀키 크기
iv[IN] 운영모드에 따라 필요한 초기 벡터 (필요 없으면 NULL, 이 경우는 0x0000... 사용)
ivSize[IN] IV 크기 (필요없으면 0)
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드
padFlag[IN] 패딩 플래그 (0 : none, 1 : PKCS padding)

◆ wasdk_symmetric_decrypt()

WA_SDK_API EErrorCode FUNCCALL wasdk_symmetric_decrypt ( unsigned char *  decrypted,
int *  decryptedSize,
int  decryptedBufSize,
const unsigned char *  encrypted,
int  encryptedSize,
const unsigned char *  key,
int  keySize,
const unsigned char *  iv,
int  ivSize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode 
)

비밀키 복호화를 실행한다.

주의
내부에서 따로 버퍼를 사용하지 않으므로 패딩에 의해 버퍼 오버플로우가 발생할 수 있으니 버퍼 크기에 유의한다.
반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Encryption_InvalidKeySize
EEC_Encryption_UnsupportedSymmetricAlgorithm
EEC_Encryption_SymmetricDecryptFail
그 외 : 라이선스 오류
매개변수
decrypted[OUT] 복호화 된 원문
decryptedSize[OUT] 복호화 된 원문 크기
decryptedBufSize[IN] 복호화 된 원문 버퍼 크기. 패딩을 고려하여 최소 암호문 크기보다 커야한다. (-1 : 과거 API 연동용. 버퍼 확인 안함)
encrypted[IN] 암호문
encryptedSize[IN] 암호문 크기
key[IN] 비밀키
keySize[IN] 비밀키 크기
iv[IN] 운영모드에 따라 필요한 초기 벡터 (필요 없으면 NULL, 이 경우는 0x0000... 사용)
ivSize[IN] IV 크기 (필요없으면 0)
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드
예제
wasdk/sample_wasdk_symmetric_encryption.c.

◆ wasdk_symmetric_decrypt_ex()

WA_SDK_API EErrorCode FUNCCALL wasdk_symmetric_decrypt_ex ( unsigned char *  decrypted,
int *  decryptedSize,
int  decryptedBufSize,
const unsigned char *  encrypted,
int  encryptedSize,
const unsigned char *  key,
int  keySize,
const unsigned char *  iv,
int  ivSize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode,
unsigned char  padFlag 
)

비밀키 복호화를 실행한다.

주의
내부에서 따로 버퍼를 사용하지 않으므로 패딩에 의해 버퍼 오버플로우가 발생할 수 있으니 버퍼 크기에 유의한다.
반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Encryption_InvalidKeySize
EEC_Encryption_UnsupportedSymmetricAlgorithm
EEC_Encryption_SymmetricDecryptFail
그 외 : 라이선스 오류
매개변수
decrypted[OUT] 복호화 된 원문
decryptedSize[OUT] 복호화 된 원문 크기
decryptedBufSize[IN] 복호화 된 원문 버퍼 크기. 패딩을 고려하여 최소 암호문 크기보다 커야한다. (-1 : 과거 API 연동용. 버퍼 확인 안함)
encrypted[IN] 암호문
encryptedSize[IN] 암호문 크기
key[IN] 비밀키
keySize[IN] 비밀키 크기
iv[IN] 운영모드에 따라 필요한 초기 벡터 (필요 없으면 NULL, 이 경우는 0x0000... 사용)
ivSize[IN] IV 크기 (필요없으면 0)
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드
padFlag[IN] 패딩 플래그 (0 : none, 1 : PKCS padding)

◆ wasdk_rsa_encrypt()

WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_encrypt ( unsigned char *  encrypted,
int *  encryptedSize,
int  encryptedBufSize,
const unsigned char *  plaintext,
int  plaintextSize,
const unsigned char *  publicKey,
int  publicKeySize,
EHashAlgorithm  hashAlg,
ERsaEncryptionScheme  rsaEncryptionScheme 
)

RSA 암호화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Asn_DerDecodingPublicKeyFail
EEC_Encryption_UnsupportedHashAlgorithm
EEC_Encryption_AsymmetricEncryptFail
매개변수
encrypted[OUT] 암호화 된 데이터
encryptedSize[OUT] 암호화 된 데이터 크기
encryptedBufSize[IN] 암호화 된 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
plaintext[IN] 원문 데이터
plaintextSize[IN] 원문 데이터 크기
publicKey[IN] 공개키
publicKeySize[IN] 공개키 크기
hashAlg[IN] 해시 알고리즘
rsaEncryptionScheme[IN] RSA Encryption Scheme

◆ wasdk_rsa_decrypt()

WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_decrypt ( unsigned char *  decrypted,
int *  decryptedSize,
int  decryptedBufSize,
const unsigned char *  encrypted,
int  encryptedSize,
const unsigned char *  privateKey,
int  privateKeySize,
EHashAlgorithm  hashAlg,
ERsaEncryptionScheme  rsaEncryptionScheme 
)

RSA 복호화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Asn_DerDecodingPrivateKeyFail
EEC_Encryption_UnsupportedHashAlgorithm
EEC_Encryption_AsymmetricDecryptFail
매개변수
decrypted[OUT] 원문 데이터
decryptedSize[OUT] 원문 데이터 크기
decryptedBufSize[IN] 원문 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
encrypted[IN] 암호화 된 데이터
encryptedSize[IN] 암호화 된 데이터 크기
privateKey[IN] RSA 개인키
privateKeySize[IN] RSA 개인키 크기
hashAlg[IN] 해시 알고리즘
rsaEncryptionScheme[IN] RSA Encryption Scheme

◆ wasdk_rsa_encrypt_by_cert()

WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_encrypt_by_cert ( unsigned char *  encrypted,
int *  encryptedSize,
int  encryptedBufSize,
const unsigned char *  plaintext,
int  plaintextSize,
const unsigned char *  cert,
int  certSize,
EHashAlgorithm  hashAlg 
)

RSA 암호화를 실행한다. (인증서의 공개키 사용)

Remarks
RSA Encryption Scheme은 따로 받지 않는다. (해시 알고리즘을 입력하면 OAEP, 없으면 PKCS_V15)
반환값
EEC_Success
EEC_General_InvalidArgument
EEC_Certificate_LoadingFail
EEC_Encryption_UnsupportedAsymmetricAlgorithm
EEC_Encryption_AsymmetricEncryptFail
매개변수
encrypted[OUT] 암호화 된 데이터
encryptedSize[OUT] 암호화 된 데이터 크기
encryptedBufSize[IN] 암호화 된 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
plaintext[IN] 원문 데이터
plaintextSize[IN] 원문 데이터 크기
cert[IN] 인증서
certSize[IN] 인증서 크기
hashAlg[IN] 해시 알고리즘

◆ wasdk_rsa_decrypt_by_pkcs8()

WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_decrypt_by_pkcs8 ( unsigned char *  decrypted,
int *  decryptedSize,
int  decryptedBufSize,
const unsigned char *  encrypted,
int  encryptedSize,
const unsigned char *  privateKey,
int  privateKeySize,
EHashAlgorithm  hashAlg 
)

RSA 복호화를 실행한다. (PKCS8 형식의 개인키 사용)

반환값
EEC_Success
EEC_PrivateKey_InvalidPrivateKey
wasdk_rsa_decrypt_by_pkcs8_ptr() 의 리턴값
매개변수
decrypted[OUT] 원문 데이터
decryptedSize[OUT] 원문 데이터 크기
decryptedBufSize[IN] 원문 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
encrypted[IN] 암호화 된 데이터
encryptedSize[IN] 암호화 된 데이터 크기
privateKey[IN] 개인키(PKCS8)
privateKeySize[IN] 개인키(PKCS8) 크기
hashAlg[IN] 해시 알고리즘

◆ wasdk_rsa_decrypt_by_pkcs8_ptr()

WA_SDK_API EErrorCode FUNCCALL wasdk_rsa_decrypt_by_pkcs8_ptr ( unsigned char *  decrypted,
int *  decryptedSize,
int  decryptedBufSize,
const unsigned char *  encrypted,
int  encryptedSize,
void *  privateKeyInfoPtr,
EHashAlgorithm  hashAlg 
)

RSA 복호화를 실행한다. (외부에서 생성된 CIS PKCS8 형식의 개인키 포인터 사용)

Remarks
기존 ISSAC-Web 기능 호환용으로 이게 없으면 완전한 모듈 분리를 할 수 없다.
PKCS8 메모리를 생성하는 기능이 여기에는 없다. 따라서 메모리 해제 기능(제로화 포함)은 제공하지 않는다.
반환값
EEC_Success
EEC_Encryption_UnsupportedHashAlgorithm
EEC_Encryption_AsymmetricDecryptFail
EEC_PrivateKey_InvalidPrivateKey
매개변수
decrypted[OUT] 원문 데이터
decryptedSize[OUT] 원문 데이터 크기
decryptedBufSize[IN] 원문 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
encrypted[IN] 암호화 된 데이터
encryptedSize[IN] 암호화 된 데이터 크기
privateKeyInfoPtr[IN] 개인키(PKCS8) 포인터
hashAlg[IN] 해시 알고리즘

◆ wasdk_hybrid_encrypt()

WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_encrypt ( unsigned char *  encrypted,
int *  encryptedSize,
int  encryptedBufSize,
const unsigned char *  plaintext,
int  plaintextSize,
const unsigned char *  customSessionKey,
int  sessionKeySize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode,
EHashAlgorithm  hashAlg,
const unsigned char *  publicKey,
int  publicKeySize,
ERsaEncryptionScheme  rsaEncryptionScheme 
)

하이브리드 암호화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_BufferSizeTooSmall
EEC_Asn_DerEncodingHybridEncryptFail
wasdk_symmetric_encrypt() 리턴값
wasdk_rsa_encrypt() 리턴값
그 외 : 라이선스 오류
매개변수
encrypted[OUT] 하이브리드 암호화 된 데이터
encryptedSize[OUT] 하이브리드 암호화 된 데이터 크기
encryptedBufSize[IN] 하이브리드 암호화 된 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
plaintext[IN] 원문 데이터
plaintextSize[IN] 원문 데이터 크기
customSessionKey[IN] 세션키 (랜덤으로 생성된 값을 사용하려면 NULL)
sessionKeySize[IN] 세션키 크기
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드
hashAlg[IN] 해시 알고리즘
publicKey[IN] 공개키
publicKeySize[IN] 공개키 크기
rsaEncryptionScheme[IN] RSA Encryption Scheme
예제
wasdk/sample_wasdk_hybrid_encryption.c.

◆ wasdk_hybrid_decrypt()

WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_decrypt ( unsigned char *  decrypted,
int *  decryptedSize,
int  decryptedBufSize,
unsigned char *  sessionKey,
int *  sessionKeySize,
int  sessionKeyBufSize,
const unsigned char *  encrypted,
int  encryptedSize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode,
EHashAlgorithm  hashAlg,
const unsigned char *  privateKey,
int  privateKeySize,
ERsaEncryptionScheme  rsaEncryptionScheme 
)

하이브리드 복호화를 실행한다.

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_BufferSizeTooSmall
EEC_Asn_DerDecodingHybridDecryptFail
EEC_Encryption_SymmetricKeyTooSmall
wasdk_rsa_decrypt() 리턴값
wasdk_symmetric_decrypt() 리턴값
그 외 : 라이선스 오류
매개변수
decrypted[OUT] 복호화 된 원문 데이터
decryptedSize[OUT] 복호화 된 원문 데이터 크기
decryptedBufSize[IN] 복호화 된 원문 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
sessionKey[OUT] 세션키 (필요 없으면 NULL 입력)
sessionKeySize[OUT] 세션키 크기 (필요 없으면 NULL 입력)
sessionKeyBufSize[IN] 세션키 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
encrypted[IN] 암호화 된 하이브리드 데이터
encryptedSize[IN] 암호화 된 하이브리드 데이터 크기
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드
hashAlg[IN] 해시 알고리즘
privateKey[IN] 개인키
privateKeySize[IN] 개인키 크기
rsaEncryptionScheme[IN] RSA Encryption Scheme
예제
wasdk/sample_wasdk_hybrid_encryption.c.

◆ wasdk_hybrid_encrypt_by_cert()

WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_encrypt_by_cert ( unsigned char *  encrypted,
int *  encryptedSize,
int  encryptedBufSize,
const unsigned char *  plaintext,
int  plaintextSize,
const unsigned char *  customSessionKey,
int  sessionKeySize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode,
EHashAlgorithm  hashAlg,
const unsigned char *  certificate,
int  certificateSize 
)

하이브리드 암호화를 실행한다.

Remarks
RSA Encryption Scheme은 따로 받지 않는다. (해시 알고리즘을 입력하면 OAEP, 없으면 PKCS_V15)
반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_BufferSizeTooSmall
EEC_Asn_DerEncodingHybridEncryptFail
wasdk_symmetric_encrypt() 리턴값
wasdk_rsa_encrypt_by_cert() 리턴값
그 외 : 라이선스 오류
매개변수
encrypted[OUT] 하이브리드 암호화 된 데이터
encryptedSize[OUT] 하이브리드 암호화 된 데이터 크기
encryptedBufSize[IN] 하이브리드 암호화 된 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
plaintext[IN] 원문 데이터
plaintextSize[IN] 원문 데이터 크기
customSessionKey[IN] 세션키 (랜덤으로 생성된 값을 사용하려면 NULL)
sessionKeySize[IN] 세션키 크기
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드
hashAlg[IN] 해시 알고리즘
certificate[IN] 인증서
certificateSize[IN] 인증서 크기

◆ wasdk_hybrid_encrypt_ivseed()

WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_encrypt_ivseed ( unsigned char *  encrypted,
int *  encryptedSize,
int  encryptedBufSize,
const unsigned char *  plaintext,
int  plaintextSize,
const unsigned char *  customSessionKey,
int  sessionKeySize,
const unsigned char *  customIvSeed,
int  ivSeedSize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode,
EHashAlgorithm  hashAlg,
const unsigned char *  publicKey,
int  publicKeySize,
ERsaEncryptionScheme  rsaEncryptionScheme 
)

하이브리드 암호화를 실행한다. (IV SEED 포함)

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_AllocFail
EEC_General_BufferSizeTooSmall
EEC_Asn_DerEncodingHybridEncryptFail
wasdk_generate_iv_from_seed() 리턴값
wasdk_symmetric_encrypt() 리턴값
wasdk_rsa_encrypt_by_cert() 리턴값
그 외 : 라이선스 오류
매개변수
encrypted[OUT] 하이브리드 암호화 된 데이터
encryptedSize[OUT] 하이브리드 암호화 된 데이터 크기
encryptedBufSize[IN] 하이브리드 암호화 된 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
plaintext[IN] 원문 데이터
plaintextSize[IN] 원문 데이터 크기
customSessionKey[IN] 세션키 (랜덤으로 생성된 값을 사용하려면 NULL)
sessionKeySize[IN] 세션키 크기
customIvSeed[IN] IV 생성에 사용되는 값 (랜덤으로 생성된 값을 사용하려면 NULL)
ivSeedSize[IN] IV 생성에 사용되는 값의 크기
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드
hashAlg[IN] 해시 알고리즘
publicKey[IN] 공개키
publicKeySize[IN] 공개키 크기
rsaEncryptionScheme[IN] RSA Encryption Scheme

◆ wasdk_hybrid_decrypt_ivseed()

WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_decrypt_ivseed ( unsigned char *  decrypted,
int *  decryptedSize,
int  decryptedBufSize,
unsigned char *  sessionKey,
int *  sessionKeySize,
int  sessionKeyBufSize,
int  ivSeedSize,
const unsigned char *  encrypted,
int  encryptedSize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode,
EHashAlgorithm  hashAlg,
const unsigned char *  privateKey,
int  privateKeySize,
ERsaEncryptionScheme  rsaEncryptionScheme 
)

하이브리드 복호화를 실행한다. (IV SEED 포함)

반환값
EEC_Success
EEC_General_InvalidArgument
EEC_General_BufferSizeTooSmall
EEC_Asn_DerDecodingHybridDecryptFail
EEC_Encryption_SymmetricKeyTooSmall
wasdk_rsa_decrypt() 리턴값
wasdk_generate_iv_from_seed() 리턴값
wasdk_symmetric_decrypt() 리턴값
그 외 : 라이선스 오류
매개변수
decrypted[OUT] 복호화 된 원문 데이터
decryptedSize[OUT] 복호화 된 원문 데이터 크기
decryptedBufSize[IN] 복호화 된 원문 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
sessionKey[OUT] 세션키 (필요 없으면 NULL 입력)
sessionKeySize[OUT] 세션키 크기 (필요 없으면 NULL 입력)
sessionKeyBufSize[IN] 세션키 버퍼 크기
ivSeedSize[IN] IV 생성에 사용되는 값의 크기
encrypted[IN] 암호화 된 하이브리드 데이터
encryptedSize[IN] 암호화 된 하이브리드 데이터 크기
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드
hashAlg[IN] 해시 알고리즘
privateKey[IN] 개인키
privateKeySize[IN] 개인키 크기
rsaEncryptionScheme[IN] RSA Encryption Scheme

◆ wasdk_hybrid_decrypt_by_sessionkey()

WA_SDK_API EErrorCode FUNCCALL wasdk_hybrid_decrypt_by_sessionkey ( unsigned char *  decrypted,
int *  decryptedSize,
int  decryptedBufSize,
const unsigned char *  encrypted,
int  encryptedSize,
const unsigned char *  sessionKey,
int  sessionKeySize,
ESymmetricAlgorithm  symmAlg,
ESymmetricOperationMode  opMode 
)

주어진 세션키로 하이브리드 데이터의 암호문 부분을 복호화한다.

Remarks
기존 기능 호환용
반환값
EEC_Success
EEC_Asn_DerDecodingHybridDecryptFail
wasdk_symmetric_decrypt() 리턴값
그 외 : 라이선스 오류
매개변수
decrypted[OUT] 복호화 된 원문 데이터
decryptedSize[OUT] 복호화 된 원문 데이터 크기
decryptedBufSize[IN] 복호화 된 원문 데이터 버퍼 크기 (-1 : 과거 API 연동용. 버퍼 확인 안함)
encrypted[IN] 암호화 된 하이브리드 데이터
encryptedSize[IN] 암호화 된 하이브리드 데이터 크기
sessionKey[IN] 세션키
sessionKeySize[IN] 세션키 크기
symmAlg[IN] 대칭키 알고리즘
opMode[IN] 대칭키 운영모드

◆ wasdk_free()

WA_SDK_API void FUNCCALL wasdk_free ( void *  ptr)

WA-SDK 에서 생성된 메모리를 해제한다. (다른 메모리 영역)

매개변수
ptr[IN] WA-SDK 에서 생성된 메모리 포인터

◆ wasdk_error_message()