PKCS#11 ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Cryptoki ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ ํ๊ธฐ ์ํด์๋
OASIS ์์ ์ ๊ณตํ๋ ํค๋ ํ์ผ์ ์ฌ์ฉํด์ผ ํ๋ค.
PKCS#11์ ๋ชจ๋ ์ ์ ๊ฐ์ด ํ์คํ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํ ์ ์๋ฅผ OASIS์์ ๋ง๋ค์ด์ ์ ๊ณต ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ผ ์ ๊ณต ํ๋ Header ํ์ผ์ ๋ค์ 3๊ฐ์ง ์ด๋ค.
์ฌ๊ธฐ์๋ ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ค๊ณ ์๊ฐ ๋๋ PKCS#11 ๋ฒ์ 2.4 ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํ๋ค.
์๋ ์ฃผ์๋ก ๊ฐ๋ฉด ๊ด๋ จ ๋ด์ฉ์ ์ฐธ์กฐ ํ ์ ์๋ค.
http://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/pkcs11-base-v2.40.html
์ ์ฉํด์ผ ํ 3๊ฐ์ง ํ์ผ์ ์๋ 3๊ฐ์ง ํ์ผ์ด๋ค.
์ด ํ์ผ๋ค์ ๋ฐ์์ ์ฌ์ฉ ํ๋ค. ํ์ง๋ง pkcs11.h ํ์ผ์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๊ฒ ๋ง์ถ์ด ์ฃผ์ด์ผ ํ๋ค.
ํฌ๊ฒ ๋ง์ถ์ด ์ฃผ๋ ๋ถ๋ถ์ Windows ์ ๋ค๋ฅธ OS ๋๊ฐ์ง๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ฉด ์ด๋์์๋ ์ฌ์ฉ ๊ฐ๋ฅ ํ๋ค.
์ฌ์ค pkcs11.h ํ์ผ์ ์ฃผ์์ ์ฝ์ด ๋ณด๋ฉด ์์ธํ ์ค๋ช
์ด ์๋ค.
๊ทธ๋ผ pkcs11.h ์ ์ถ๊ฐ ํด ์ฃผ๋ ๋ถ๋ถ์ ํค๋ ์๊ณผ ๋ ๋ถ๋ถ์ ์๋ ์ฝ๋๋ฅผ ์ ์ฉ ํ์ฌ ์ฌ์ฉ ํ๋ฉด ๋๋ค.
/* ํค๋ ์ ๋ถ๋ถ ์ ์ฉ */
#if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32)
/* There is a matching pop below. */
#pragma pack(push, cryptoki, 1)
#define CK_PTR *
#define CK_DEFINE_FUNCTION(returnType, name) \
returnType __declspec(dllexport) name
#define CK_DECLARE_FUNCTION(returnType, name) \
returnType __declspec(dllimport) name
#define CK_DECLARE_FUNCTION_POINTER(returnType, name) \
returnType __declspec(dllimport) (* name)
#define CK_CALLBACK_FUNCTION(returnType, name) \
returnType (* name)
#else
#define CK_PTR *
#define CK_DEFINE_FUNCTION(returnType, name) \
returnType name
#define CK_DECLARE_FUNCTION(returnType, name) \
returnType name
#define CK_DECLARE_FUNCTION_POINTER(returnType, name) \
returnType (* name)
#define CK_CALLBACK_FUNCTION(returnType, name) \
returnType (* name)
#endif
#ifndef NULL_PTR
#define NULL_PTR 0
#endif
/* ํค๋ ๋ค ๋ถ๋ถ ์ ์ฉ */
/* System dependencies. */
#if defined(_WIN32) || defined(CRYPTOKI_FORCE_WIN32)
#pragma pack(pop, cryptoki)
#endif
์ด๋ ๊ฒ ์ ์ฉ์ ํ๊ฒ ๋๋ฉด ์ฌ์ค ๋ฐ๋ก cryptoki ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์ ํ๋ฉด ๋๋ค.
๊ทธ์ธ ๋ค๋ฅธ ๋ถ๋ถ์ ์๋์ง ์์๋ ๋๋ค.
์ค์ ์ฌ์ฉ์์๋ pkcs11.h ํค๋ ํ์ผ์ ์ธํด๋ฃจ๋ ํด์ ์ฌ์ฉ ํ๋ฉด ๋๋ค.
ํ์ง๋ง IDE ํด ์์ pcks11f.h pkcs11t.h ํค๋๋ฅผ ์ด์ด ๋ณด๋ณ ๋ฌธ๋ฒ ์ค๋ฅ ์ฒ๋ฌ ํ์ ๋๊ธฐ๋ ํ๋๋ฐ
(๋ด๊ฒฝ์ฐ Qt Creator์์๋ ๊ทธ๋ ๊ฒ ๋์จ๋ค. ๋ค๋ฅธ IDE ํด์ ํ์ธ์ด ํ์ํ๋ค)
์ด๊ฑด ์๋ง๋ DEFINE ๊ฐ์ ๋ํ IDE์์ ์ธ์์ด ์ ์๋์ด์์ด์ง ์ฌ์ฉ์๋ ๋ฌธ์ ๊ฐ ์๋ค.
์ฐธ๊ณ ๋ก ๋ด๊ฐ ์ ์ฉํ pkcs11.h ํ์ผ์ ์ฒจ๋ถ ํ์๋ค.
'Source Code > My Patch' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OpenSSL3] OpenSSL ์ปดํ์ผ์ ์ฃผ์ ์ฌํญ (0) | 2023.02.24 |
---|---|
[Openssl3] CMP freeText ๊ธฐ๋ฅ ์ถ๊ฐ (0) | 2022.08.22 |
[Openssl3] OSSL_CMP_certConf_new ์ถ๊ฐ (0) | 2022.03.02 |
[OpenSSL] OSSL_CMP_CERTSTATUS ์ ๋ณด ์ป๊ธฐ ํจ์ (0) | 2019.12.17 |
[CMPOSSL] CMP CTX ์์ serverName, serverPath, serverPort ์ ๋ณด ์ป๊ธฐ ํจ์ (0) | 2019.12.13 |