2007年11月6日 星期二

讀取自然人憑證內的身分證字號後4碼

自然人憑證內的身分證字號後4碼,存放於OID=2.5.29.9 這個 extension 內,如果要用 windows 的 crypto api 讀取的話,要用到以下的 API
PCERT_EXTENSION WINAPI CertFindExtension(
__in LPCSTR pszObjId,
__in DWORD cExtensions,
__in CERT_EXTENSION rgExtensions[]
);

範例如下:
PCERT_EXTENSION pCert_extension;

pCert_extension=CertFindExtension(szOID_SUBJECT_DIR_ATTRS,pInfo->cExtension,pInfo->rgExtension);
char szID[5];
if (pCert_extension!=NULL){
// 身分證字號後4碼在這個擴充欄位的最後面
memcpy(szID,(char *)(pCert_extension->Value.pbData)+(pCert_extension->Value.cbData-4),4);
szID[4]=0;
printf("ID:%s\n",szID);
}

3 則留言:

夢想實踐家 ( 謝孟儒 ) 提到...

您好,我對您這篇文章"讀取自然人憑證"有興趣,請問您應該是用C-code撰寫而成的吧??
能跟您要您的程式碼嗎?
我想學習如何開發自然人相關應用
謝謝您^^

Nyson 提到...

你可以到內政部憑證管理中心申請SDK,這樣對自然人憑證應用程式的開發,會有比較完整的了解,網址如下:
http://61.60.9.15/apply/action/basicWaymarkDispatcher?waymark=index

夢想實踐家 ( 謝孟儒 ) 提到...

您好,這個網址 我之前有去過了@@
但是我無法申請,我使用自然人憑證去申請
但是她說我有錯誤
我有連絡那邊的客服人員了> <"
但是他說需要一段時間處理
所以 我才又到網路上搜尋
網路上有用C code 且比較完整的
就只有您了
所以想請問您撰寫開發的過程以及遭遇的問題
不知道是否可以跟您請教這些問題呢??
謝謝您^^