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

PFX (PKCS #12 - 인증서 내보내기, 가져오기) 더 자세히 ...

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

데이터 구조

struct  SAFEBAG
 PFX의 SafeBag 구조체 더 자세히 ...
 
struct  PFX_CONTEXT
 PFX 구조체 더 자세히 ...
 

매크로

#define PFX_CONTEXT_MAXNUMOFSAFEBAGS   10
 

열거형 타입

enum  ISSACAPI_BAGTYPE { ISSACAPI_BAGTYPE_KEY = 91 , ISSACAPI_BAGTYPE_KEY_ENCRYPTED = 92 , ISSACAPI_BAGTYPE_CERT = 93 , ISSACAPI_BAGTYPE_CRL = 94 }
 PFX의 SafeBag 종류 (https://tools.ietf.org/html/rfc7292#section-4.2) 더 자세히 ...
 

함수

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_Create (PFX_CONTEXT *pfxContext)
 PFX_CONTEXT 구조체를 초기화한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_Encode (unsigned char *pfxData, int *pfxDataSize, int pfxBufSize, const PFX_CONTEXT *pfxContext, const char *pfxPassword, int hashAlg, int pbeEncAlg, const unsigned char *salt, int saltSize, int iteration)
 입력된 PFX 데이터들을 인코딩한다. 더 자세히 ...
 
WA_SDK_API void FUNCCALL ISSAC_PFX_Delete (PFX_CONTEXT *pfxContext)
 PFX_CONTEXT 에 할당된 메모리를 해제한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_Decode (PFX_CONTEXT *pfxContext, const void *pfxData, int pfxDataSize, const char *pfxPassword)
 PFX 를 디코딩한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificate (PFX_CONTEXT *pfxContext, const CERTIFICATE *cert)
 PFX 에 인증서만 하나 추가한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificates (PFX_CONTEXT *pfxContext, const CERTIFICATES *certs)
 PFX 에 인증서들을 추가한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificateAndPrivateKey (PFX_CONTEXT *pfxContext, const CERTIFICATE *cert, const PRIVATEKEY *privateKey)
 PFX 에 인증서와 개인키를 암호화 없이 그대로 추가한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificateAndPrivateKeyWithEncrypt (PFX_CONTEXT *pfxContext, const CERTIFICATE *cert, const PRIVATEKEY *privateKey, const char *password, int pbeEncAlg, const unsigned char *salt, int saltSize, int iteration)
 PFX 에 인증서와 개인키를 입력받은 비밀번호로 암호화(PBE)하여 추가한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificateAndPrivateKeyInfo (PFX_CONTEXT *pfxContext, const CERTIFICATE *cert, const unsigned char *pkiData, int pkiSize)
 PFX 에 인증서와 암호화되지 않은 개인키를 추가한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificateAndEncryptedPrivateKeyInfo (PFX_CONTEXT *pfxContext, const CERTIFICATE *cert, const unsigned char *epkiData, int epkiSize)
 PFX 에 인증서와 암호화 된 개인키를 추가한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetValue (unsigned char *outBuffer, int *outSize, int outBufferSize, const PFX_CONTEXT *pfxContext, int bagIndex)
 SafeBag 의 데이터를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetValueWithType (unsigned char *outBuffer, int *outSize, int outBufferSize, const PFX_CONTEXT *pfxContext, ISSACAPI_BAGTYPE bagType, const void *localKeyId, int localKeyIdSize)
 입력한 SafeBag 타입, LocalKeyID (Optional) 와 일치하는 SafeBag 의 데이터를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_HasBag (const PFX_CONTEXT *pfxContext, ISSACAPI_BAGTYPE bagType, const void *localKeyId, int localKeyIdSize)
 입력한 SafeBag 타입, LocalKeyID (Optional) 와 일치하는 SafeBag 이 존재하는지 여부를 확인한다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetCertificate (CERTIFICATE *certificate, const PFX_CONTEXT *pfxContext, const void *localKeyId, int localKeyIdSize)
 입력한 LocalKeyID 와 일치하는 인증서를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetPrivateKey (PRIVATEKEY *privateKey, const PFX_CONTEXT *pfxContext, const void *localKeyId, int localKeyIdSize, const char *privateKeyPassword)
 입력한 LocalKeyID 와 일치하는 개인키를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetCertificateAndPrivateKey (CERTIFICATE *certificate, PRIVATEKEY *privateKey, const PFX_CONTEXT *pfxContext, const void *localKeyId, int localKeyIdSize, const char *privateKeyPassword)
 입력한 LocalKeyID 와 일치하는 인증서와 개인키를 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetOtherCertificates (CERTIFICATES *certificates, const PFX_CONTEXT *pfxContext)
 LocalKeyID 가 없는 인증서들을 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetBagType (ISSACAPI_BAGTYPE *bagType, const PFX_CONTEXT *pfxContext, int bagIndex)
 SafeBag의 Type을 가져온다. 더 자세히 ...
 
WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetLocalKeyID (unsigned char *outBuffer, int *outSize, int outBufferSize, const PFX_CONTEXT *pfxContext, int bagIndex)
 SafeBag의 LocalKeyID를 가져온다. 더 자세히 ...
 

상세한 설명

PFX (PKCS #12 - 인증서 내보내기, 가져오기)

매크로 문서화

◆ PFX_CONTEXT_MAXNUMOFSAFEBAGS

#define PFX_CONTEXT_MAXNUMOFSAFEBAGS   10

열거형 타입 문서화

◆ ISSACAPI_BAGTYPE

PFX의 SafeBag 종류 (https://tools.ietf.org/html/rfc7292#section-4.2)

열거형 멤버
ISSACAPI_BAGTYPE_KEY 

개인키 (PKCS #8 - PrivateKeyInfo)

ISSACAPI_BAGTYPE_KEY_ENCRYPTED 

암호화 된 개인키 (PKCS #8 - EncryptedPrivateKeyInfo)

ISSACAPI_BAGTYPE_CERT 

인증서 형식과 인증서 (X.509 Certificate. SDSI 는 지원하지 않음)

ISSACAPI_BAGTYPE_CRL 

인증서 폐지 목록 (X.509 CRL)

함수 문서화

◆ ISSAC_PFX_Create()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_Create ( PFX_CONTEXT pfxContext)

PFX_CONTEXT 구조체를 초기화한다.

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

◆ ISSAC_PFX_Encode()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_Encode ( unsigned char *  pfxData,
int *  pfxDataSize,
int  pfxBufSize,
const PFX_CONTEXT pfxContext,
const char *  pfxPassword,
int  hashAlg,
int  pbeEncAlg,
const unsigned char *  salt,
int  saltSize,
int  iteration 
)

입력된 PFX 데이터들을 인코딩한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_ALGORITHM : 지원하지 않는 알고리즘
ER_PFX_FAIL_TO_GENERATE : PFX 데이터 생성 실패
ER_CAN_NOT_ENCODE_PFX : PFX 데이터 인코딩 실패
ER_INSUFFICIENT_ALLOC_LEN : 출력 버퍼 크기 부족
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
pfxData[OUT] PFX가 출력될 버퍼
pfxDataSize[OUT] 사용된 버퍼 크기
pfxBufSize[IN] 출력 버퍼 크기
pfxContext[IN] PFX 컨텍스트
pfxPassword[IN] PFX 비밀번호
hashAlg[IN] PFX 암호화에 사용할 해시 알고리즘 [ISSACAPI_SHA1]
pbeEncAlg[IN] PFX 암호화에 사용할 알고리즘 [ISSACAPI_SEED]
salt[IN] PFX 암호화에 사용할 salt 값
saltSize[IN] PFX 암호화에 사용할 salt 값 크기
iteration[IN] PFX 암호화에 사용할 iteration 횟수

◆ ISSAC_PFX_Delete()

WA_SDK_API void FUNCCALL ISSAC_PFX_Delete ( PFX_CONTEXT pfxContext)

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

매개변수
pfxContext[IN,OUT] ISSAC_PFX_Create() 를 호출하여 초기화 된 PFX_CONTEXT
예제
issacapi/pfx/sample_pfx_decode.c.

◆ ISSAC_PFX_Decode()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_Decode ( PFX_CONTEXT pfxContext,
const void *  pfxData,
int  pfxDataSize,
const char *  pfxPassword 
)

PFX 를 디코딩한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA : PFX 형식 오류
그 외 : 라이선스 오류 (ISSAC_LICENSE_ERR)
매개변수
pfxContext[IN,OUT] ISSAC_PFX_Create() 를 호출하여 초기화 된 PFX_CONTEXT
pfxData[IN] PFX 데이터
pfxDataSize[IN] PFX 데이터의 크기
pfxPassword[IN] PFX의 비밀번호
예제
issacapi/pfx/sample_pfx_decode.c.

◆ ISSAC_PFX_AddCertificate()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificate ( PFX_CONTEXT pfxContext,
const CERTIFICATE cert 
)

PFX 에 인증서만 하나 추가한다.

반환값
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA : 잘못된 입력 데이터 오류
ER_PFX_SAFEBAG_FULL : 허용 가능한 SafeBag 수 초과
ER_PFX_CANNOT_ADD_CERT_TO_SAFEBAG : SafeBag 에 인증서 추가 실패
매개변수
pfxContext[IN] PFX 컨텍스트
cert[IN] 인증서 (주로 CA 인증서)

◆ ISSAC_PFX_AddCertificates()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificates ( PFX_CONTEXT pfxContext,
const CERTIFICATES certs 
)

PFX 에 인증서들을 추가한다.

반환값
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA : 잘못된 입력 데이터 오류
ER_PFX_SAFEBAG_FULL : 허용 가능한 SafeBag 수 초과
ER_PFX_CANNOT_ADD_CERT_TO_SAFEBAG : SafeBag 에 인증서 추가 실패
매개변수
pfxContext[IN] PFX 컨텍스트
certs[IN] 인증서들 (주로 CA 인증서 체인에 사용)

◆ ISSAC_PFX_AddCertificateAndPrivateKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificateAndPrivateKey ( PFX_CONTEXT pfxContext,
const CERTIFICATE cert,
const PRIVATEKEY privateKey 
)

PFX 에 인증서와 개인키를 암호화 없이 그대로 추가한다.

반환값
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA : 잘못된 입력 데이터 오류
ER_PFX_SAFEBAG_FULL : 허용 가능한 SafeBag 수 초과
ER_PFX_CANNOT_ADD_CERT_TO_SAFEBAG : SafeBag 에 인증서 추가 실패
ER_PFX_CANNOT_ADD_KEY_TO_SAFEBAG : SafeBag 에 개인키 추가 실패
매개변수
pfxContext[IN] PFX 컨텍스트
cert[IN] 인증서
privateKey[IN] 개인키

◆ ISSAC_PFX_AddCertificateAndPrivateKeyWithEncrypt()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificateAndPrivateKeyWithEncrypt ( PFX_CONTEXT pfxContext,
const CERTIFICATE cert,
const PRIVATEKEY privateKey,
const char *  password,
int  pbeEncAlg,
const unsigned char *  salt,
int  saltSize,
int  iteration 
)

PFX 에 인증서와 개인키를 입력받은 비밀번호로 암호화(PBE)하여 추가한다.

반환값
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA : 잘못된 입력 데이터 오류
ER_INVALID_ALGORITHM : 지원하지 않는 알고리즘
ER_PFX_FAIL_TO_ENCRYPT_PRIVATEKEY : 개인키 암호화 실패
ER_PFX_SAFEBAG_FULL : 허용 가능한 SafeBag 수 초과
ER_PFX_CANNOT_ADD_CERT_TO_SAFEBAG : SafeBag 에 인증서 추가 실패
ER_PFX_CANNOT_ADD_KEY_TO_SAFEBAG : SafeBag 에 개인키 추가 실패
매개변수
pfxContext[IN] PFX 컨텍스트
cert[IN] 인증서
privateKey[IN] 개인키
password[IN] 개인키 암호화(PBE)에 사용할 비밀번호
pbeEncAlg[IN] 개인키 암호화(PBE)에 사용할 알고리즘 [ISSACAPI_SEED]
salt[IN] 개인키 암호화(PBE)에 사용할 salt 값
saltSize[IN] 개인키 암호화(PBE)에 사용할 salt 값 크기
iteration[IN] 개인키 암호화(PBE)에 사용할 iteration 횟수

◆ ISSAC_PFX_AddCertificateAndPrivateKeyInfo()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificateAndPrivateKeyInfo ( PFX_CONTEXT pfxContext,
const CERTIFICATE cert,
const unsigned char *  pkiData,
int  pkiSize 
)

PFX 에 인증서와 암호화되지 않은 개인키를 추가한다.

반환값
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA : 잘못된 입력 데이터 오류
ER_PFX_SAFEBAG_FULL : 허용 가능한 SafeBag 수 초과
ER_PFX_CANNOT_ADD_CERT_TO_SAFEBAG : SafeBag 에 인증서 추가 실패
ER_PFX_CANNOT_ADD_KEY_TO_SAFEBAG : SafeBag 에 개인키 추가 실패
매개변수
pfxContext[IN] PFX 컨텍스트
cert[IN] 인증서
pkiData[IN] 암호화되지 않은 개인키
pkiSize[IN] 암호화되지 않은 개인키 크기

◆ ISSAC_PFX_AddCertificateAndEncryptedPrivateKeyInfo()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_AddCertificateAndEncryptedPrivateKeyInfo ( PFX_CONTEXT pfxContext,
const CERTIFICATE cert,
const unsigned char *  epkiData,
int  epkiSize 
)

PFX 에 인증서와 암호화 된 개인키를 추가한다.

반환값
ER_INVALID_INPUT : 입력값 오류
ER_INVALID_DATA : 잘못된 입력 데이터 오류
ER_PFX_SAFEBAG_FULL : 허용 가능한 SafeBag 수 초과
ER_PFX_CANNOT_ADD_CERT_TO_SAFEBAG : SafeBag 에 인증서 추가 실패
ER_PFX_CANNOT_ADD_KEY_TO_SAFEBAG : SafeBag 에 개인키 추가 실패
매개변수
pfxContext[IN] PFX 컨텍스트
cert[IN] 인증서
epkiData[IN] 암호화 된 개인키
epkiSize[IN] 암호화 된 개인키 크기

◆ ISSAC_PFX_GetValue()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetValue ( unsigned char *  outBuffer,
int *  outSize,
int  outBufferSize,
const PFX_CONTEXT pfxContext,
int  bagIndex 
)

SafeBag 의 데이터를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_PFX_CANNOT_GET_VALUE_FROM_SAFEBAG : 일치하는 SafeBag 에서 데이터를 가져오지 못함
매개변수
outBuffer[OUT] 출력 버퍼
outSize[OUT] 실제 출력 크기
outBufferSize[IN] 출력 버퍼 크기
pfxContext[IN] PFX 컨텍스트
bagIndex[IN] SafeBag 인덱스

◆ ISSAC_PFX_GetValueWithType()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetValueWithType ( unsigned char *  outBuffer,
int *  outSize,
int  outBufferSize,
const PFX_CONTEXT pfxContext,
ISSACAPI_BAGTYPE  bagType,
const void *  localKeyId,
int  localKeyIdSize 
)

입력한 SafeBag 타입, LocalKeyID (Optional) 와 일치하는 SafeBag 의 데이터를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족
ER_PFX_CANNOT_GET_BAGTYPE_FROM_SAFEBAG : SafeBag의 Type을 가져오지 못함
ER_PFX_NOT_FOUND_MATCHED_SAFEBAG : 일치하는 SafeBag을 찾지 못함
ER_PFX_CANNOT_GET_VALUE_FROM_SAFEBAG : 일치하는 SafeBag 에서 데이터를 가져오지 못함
매개변수
outBuffer[OUT] 출력 버퍼
outSize[OUT] 실제 출력 크기
outBufferSize[IN] 출력 버퍼 크기
pfxContext[IN] PFX 컨텍스트
bagType[IN] SafeBag 타입
localKeyId[IN] SafeBag의 LocalKeyId (Optional)
localKeyIdSize[IN] SafeBag의 LocalKeyId 길이 (Optional)

◆ ISSAC_PFX_HasBag()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_HasBag ( const PFX_CONTEXT pfxContext,
ISSACAPI_BAGTYPE  bagType,
const void *  localKeyId,
int  localKeyIdSize 
)

입력한 SafeBag 타입, LocalKeyID (Optional) 와 일치하는 SafeBag 이 존재하는지 여부를 확인한다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_PFX_CANNOT_GET_BAGTYPE_FROM_SAFEBAG : SafeBag의 Type을 가져오지 못함
ER_PFX_NOT_FOUND_MATCHED_SAFEBAG : 일치하는 SafeBag을 찾지 못함
매개변수
pfxContext[IN] PFX 컨텍스트
bagType[IN] SafeBag 타입
localKeyId[IN] SafeBag의 LocalKeyId (Optional)
localKeyIdSize[IN] SafeBag의 LocalKeyId 길이 (Optional)

◆ ISSAC_PFX_GetCertificate()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetCertificate ( CERTIFICATE certificate,
const PFX_CONTEXT pfxContext,
const void *  localKeyId,
int  localKeyIdSize 
)

입력한 LocalKeyID 와 일치하는 인증서를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족 (내부 할당 크기)
ER_PFX_CANNOT_GET_BAGTYPE_FROM_SAFEBAG : SafeBag의 Type을 가져오지 못함
ER_PFX_NOT_FOUND_MATCHED_CERTIFICATE : 일치하는 인증서를 찾지 못함
ER_PFX_CANNOT_GET_CERT_FROM_SAFEBAG : LocalKeyID 가 일치하는 SafeBag 에서 인증서를 가져오지 못함
ISSAC_CERTIFICATE_Read_Memory() 의 리턴값들
매개변수
certificate[IN,OUT] ISSAC_CERTIFICATE_Create() 를 호출하여 초기화 된 CERTIFICATE
pfxContext[IN] PFX 컨텍스트
localKeyId[IN] 키쌍 구분을 위한 LocalKeyID. ISSAC_PFX_GetLocalKeyID() 참고.
localKeyIdSize[IN] 키쌍 구분을 위한 LocalKeyID 의 크기
예제
issacapi/pfx/sample_pfx_decode.c.

◆ ISSAC_PFX_GetPrivateKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetPrivateKey ( PRIVATEKEY privateKey,
const PFX_CONTEXT pfxContext,
const void *  localKeyId,
int  localKeyIdSize,
const char *  privateKeyPassword 
)

입력한 LocalKeyID 와 일치하는 개인키를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족 (내부 할당 크기)
ER_PFX_CANNOT_GET_BAGTYPE_FROM_SAFEBAG : SafeBag의 Type을 가져오지 못함
ER_PFX_NOT_FOUND_LOCALKEY_ID_FROM_SAFEBAG : SafeBag에서 LocalKeyID를 찾지 못함
ER_PFX_NOT_FOUND_MATCHED_KEY : 일치하는 개인키를 찾지 못함
ER_PFX_CANNOT_GET_VALUE_FROM_SAFEBAG : LocalKeyID 가 일치하는 SafeBag 에서 값을 가져오지 못함
ISSAC_PRIVATEKEY_Read_Memory() 의 리턴값들
매개변수
privateKey[IN,OUT] ISSAC_PRIVATEKEY_Create() 를 호출하여 초기화 된 PRIVATEKEY
pfxContext[IN] PFX 컨텍스트
localKeyId[IN] 키쌍 구분을 위한 LocalKeyID. ISSAC_PFX_GetLocalKeyID() 참고.
localKeyIdSize[IN] 키쌍 구분을 위한 LocalKeyID 의 크기
privateKeyPassword[IN] 개인키의 비밀번호. 암호화되지 않았다면 NULL.
예제
issacapi/pfx/sample_pfx_decode.c.

◆ ISSAC_PFX_GetCertificateAndPrivateKey()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetCertificateAndPrivateKey ( CERTIFICATE certificate,
PRIVATEKEY privateKey,
const PFX_CONTEXT pfxContext,
const void *  localKeyId,
int  localKeyIdSize,
const char *  privateKeyPassword 
)

입력한 LocalKeyID 와 일치하는 인증서와 개인키를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족 (내부 할당 크기)
ER_PFX_NOT_FOUND_LOCALKEY_ID_FROM_SAFEBAG : SafeBag에서 LocalKeyID를 찾지 못함
ER_PFX_NOT_FOUND_MATCHED_CERTIFICATE : 일치하는 인증서를 찾지 못함
ER_PFX_NOT_FOUND_MATCHED_KEY : 일치하는 개인키를 찾지 못함
ER_PFX_CANNOT_GET_CERT_FROM_SAFEBAG : LocalKeyID 가 일치하는 SafeBag 에서 인증서를 가져오지 못함
ER_PFX_CANNOT_GET_VALUE_FROM_SAFEBAG : LocalKeyID 가 일치하는 SafeBag 에서 값을 가져오지 못함
ISSAC_CERTIFICATE_Read_Memory() 의 리턴값들
ISSAC_PRIVATEKEY_Read_Memory() 의 리턴값들
매개변수
certificate[IN,OUT] ISSAC_CERTIFICATE_Create() 를 호출하여 초기화 된 CERTIFICATE
privateKey[IN,OUT] ISSAC_PRIVATEKEY_Create() 를 호출하여 초기화 된 PRIVATEKEY
pfxContext[IN] PFX 컨텍스트
localKeyId[IN] 키쌍 구분을 위한 LocalKeyID. ISSAC_PFX_GetLocalKeyID() 참고.
localKeyIdSize[IN] 키쌍 구분을 위한 LocalKeyID 의 크기
privateKeyPassword[IN] 개인키의 비밀번호. 암호화되지 않았다면 NULL.
예제
issacapi/pfx/sample_pfx_decode.c.

◆ ISSAC_PFX_GetOtherCertificates()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetOtherCertificates ( CERTIFICATES certificates,
const PFX_CONTEXT pfxContext 
)

LocalKeyID 가 없는 인증서들을 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_PFX_CANNOT_GET_BAGTYPE_FROM_SAFEBAG : SafeBag의 Type을 가져오지 못함
ER_PFX_CANNOT_GET_CERT_FROM_SAFEBAG : SafeBag 에서 인증서를 가져오지 못함
ER_INSUFFICIENT_ALLOC_LEN : 버퍼 크기 부족 (내부 할당 크기)
ISSAC_CERTIFICATE_Read_Memory() 의 리턴값들
매개변수
certificates[IN,OUT] ISSAC_CERTIFICATES_Create() 를 호출하여 초기화 된 CERTIFICATES
pfxContext[IN] PFX 컨텍스트
예제
issacapi/pfx/sample_pfx_decode.c.

◆ ISSAC_PFX_GetBagType()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetBagType ( ISSACAPI_BAGTYPE bagType,
const PFX_CONTEXT pfxContext,
int  bagIndex 
)

SafeBag의 Type을 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_PFX_CANNOT_GET_BAGTYPE_FROM_SAFEBAG : SafeBag의 Type을 가져오지 못함
매개변수
bagType[OUT] SafeBag Type
pfxContext[IN] PFX 컨텍스트
bagIndex[IN] SafeBag Index
예제
issacapi/pfx/sample_pfx_decode.c.

◆ ISSAC_PFX_GetLocalKeyID()

WA_SDK_API ISSAC_RETURN FUNCCALL ISSAC_PFX_GetLocalKeyID ( unsigned char *  outBuffer,
int *  outSize,
int  outBufferSize,
const PFX_CONTEXT pfxContext,
int  bagIndex 
)

SafeBag의 LocalKeyID를 가져온다.

반환값
ISSAC_SUCCESS : 성공
ER_INVALID_INPUT : 입력값 오류
ER_PFX_NOT_FOUND_LOCALKEY_ID_FROM_SAFEBAG : SafeBag 에서 LocalKeyID을 가져오지 못함
ER_INSUFFICIENT_ALLOC_LEN : 출력 버퍼 크기 부족
매개변수
outBuffer[OUT] 출력 버퍼
outSize[OUT] 실제 출력 크기
outBufferSize[IN] 출력 버퍼 크기
pfxContext[IN] PFX 컨텍스트
bagIndex[IN] SafeBag Index
예제
issacapi/pfx/sample_pfx_decode.c.