This page is part of the 旅遊醫學疫苗接種或開立藥品紀錄上傳實作指引 (v1.0.0: Releases Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version. For a full list of available versions, see the Directory of published versions
程式名稱 | 版本 | 型態 | 說明 | |
---|---|---|---|---|
1 | CGP11CryptATL.dll | 1.6.8.2250 | COM 元件 | 簽章/取憑證/加解密的 32 位元元件 |
2 | CGP11CryptATLx64.dll | 1.6.8.2250 | COM 元件 | 簽章/取憑證/加解密的 64 位元元件 |
3 | CGVAATL.dll | 5.1.2.8010 | COM 元件 | 驗章 32 位元元件 |
4 | CGVAATLx64.dll | 5.1.2.8010 | COM 元件 | 驗章 64 位元元件 |
5 | CGP11CryptJNI.jar | 1.2.15.7260 | jar | JavaJNI 元件 |
6 | CGP11CryptJNI.dll | 1.2.15.7260 | dll | JavaJNI 元件(需放在 path 目錄下) |
注意事項:
請確保在安裝檔、執行檔以及COM元件時都使用Administrator執行。這將確保您具有足夠的權限來順利進行安裝和執行,並能夠避免任何潛在的問題。
步驟一、用系統管理員權限開啟 cmd 視窗
步驟二、將以上元件放在 C:\Windows 目錄
步驟三、在 cmd 視窗,輸入 regsvr32 CGP11CryptATL.dll 或 regsvr32 CGP11CryptATLx64.dll
步驟四、在 cmd 視窗,輸入 regsvr32 CGVAATL.dll 或 regsvr32 CGVAATLx64.dll
選擇二個元件 CGP11CryptATLLib 和 CGVAATLLib,並在屬性的內嵌 interop 型別改為 False。
若參考的是 32 位元元件,請在組態管理員新增 x86 平台,並指定 x86 平台。若參考的是 64 位元元件,請在組態管理員新增 x64 平台,並指定 x64 平台。
CGP11CryptATL 參數符號
參數符號 | 對應值 |
CG_FLAG_DETACHMSG | 0x00004000 |
CG_ALGOR_SHA256 | 0x04 |
參數符號 | 對應值 |
CG_KU_NON_REPUDIATION | 0x0040 |
函式宣告 | int CryptParsePKCS12 (string pfxpath, string bpass, string bkeypass); |
函式說明 | 解析 PFX 格式之憑證檔 |
參數 |
|
回傳值 | 執行結果。 |
錯誤訊息處理 | 呼叫 GetErrorCode 回傳錯誤代碼。 |
其他回傳值 | 請參考 ErrorCode。 |
參考 |
函式宣告 | string P12Sign(string pfxpath, string password, string data, int iFlags, int iKeyUsage, int iHashFlag); |
函式說明 | 取 PFX 憑證中的金鑰作簽章 |
參數 |
|
回傳值 | 簽章值 |
錯誤訊息處理 | 呼叫 GetErrorCode 回傳錯誤代碼。 CG_RTN_SUCCESS: 成功 其他回傳值請參考 ErrorCode。 |
參考 |
函式宣告 | String CGCrypt_CertGetSubjectDirectoryAttrs (string sCert, string sOID, int iFlags); |
函式說明 | 根據 OID 取得憑證擴充欄位資訊。 |
參數 |
|
回傳值 | 憑證擴充欄位資訊 |
錯誤訊息處理 | 呼叫 GetErrorCode 回傳錯誤代碼。 其他回傳值請參考 ErrorCode。 |
參考 |
函式宣告 | String P12Sign(String pfxpath, String password, byte[] data, int iFlags, int iKeyUsage, int iHashFlag); |
函式說明 | 取 PFX 憑證中的金鑰作簽章 |
參數 |
|
回傳值 | 簽章值 |
錯誤訊息處理 | 呼叫 GetErrorCode 回傳錯誤代碼。 其他回傳值請參考 ErrorCode。 |
參考 |
函式宣告 | int CryptParsePKCS12(BSTR pfxpath, BSTR bpass, BSTR bkeypass); |
函式說明 | 解析 PFX 格式之憑證檔 |
參數 |
pfxpath: [in] PFX 檔案路徑 bpass: [in] PFX 的密碼 bkeypass: [in] 金鑰密碼 解開私鑰的密碼。若私鑰為未加密過的 key,則此欄位應為 NULL。 |
回傳值 | 執行結果 |
錯誤訊息處理 | 回傳值請參考 ErrorCode。 |
參考 |
錯誤訊息代碼 | 錯誤訊息提示 | 說明 |
---|---|---|
0 | CG_RTN_SUCCESS | 成功 |
5001 | CG_RTN_ERROR | 一般錯誤 |
5002 | CG_RTN_MEMALLOC_ERROR | 配置記憶體發生錯誤 |
5003 | CG_RTN_BUFFER_TOO_SMALL | 空間不足 |
5004 | CG_RTN_FUNCTION_UNSUPPORT | 未支援功能 |
5005 | CG_RTN_INVALID_PARAM | 錯誤的參數 |
5006 | CG_RTN_INVALID_HANDLE | 錯誤的 handle |
5007 | CG_RTN_LIB_EXPIRE | 試用版期限已過 |
5008 | CG_RTN_BASE64_ERROR | Base64 編碼錯誤 |
5010 | CG_RTN_CERT_NOT_FOUND | 無法在 MS CryptoAPI Database 中找到指定憑證 |
5011 | CG_RTN_CERT_EXPIRED | 憑證已過期 |
5012 | CG_RTN_CERT_NOT_YET_VALID | 憑證尚未合法,無法使用 |
5013 | CG_RTN_CERT_EXPIRE_OR_NOT_YET_USE | 憑證可能過期或無法使用 |
5014 | CG_RTN_CERT_DENIED | 憑證主旨錯誤 |
5015 | CG_RTN_CERT_NOISSUER | 無法找到憑證發行者 |
5016 | CG_RTN_CERT_BAD_SIGNATURE | 不合法的憑證簽章 |
5017 | CG_RTN_CERT_INVALID_KEYUSAGE | 憑證用途(加解密,簽驗章)不合適 |
5020 | CG_RTN_CERT_REVOKED | 憑證已撤銷 |
5021 | CG_RTN_CERT_KEY_COMPROMISED | 憑證已撤銷(金鑰洩露) |
5022 | CG_RTN_CERT_CA_COMPROMISED | 憑證已撤銷(CA compromised) |
5023 | CG_RTN_CERT_AFFILIATION_CHANGED | 憑證已撤銷(聯盟已變更) |
5024 | CG_RTN_CERT_SUPERSEDED | 憑證已撤銷(已取代) |
5025 | CG_RTN_CERT_CESSATION | 憑證 |
5026 | CG_RTN_CERT_HOLD | 憑證保留或暫禁 |
5028 | CG_RTN_CERT_REMOVEFROMCRL | |
5030 | CG_RTN_CRL_EXPIRED | CRL 已過期 |
5031 | CG_RTN_CRL_NOT_YET_VALID | 不合法的 CRL |
5032 | CG_RTN_CRL_NOT_FOUND | 無法找到 CRL |
5034 | CG_RTN_CRL_BAD_SIGNATURE | CRL 簽章值不合法 |
5035 | CG_RTN_GET_DIGEST_ERROR | Digest 錯誤 |
5036 | CG_RTN_BAD_SIGNATURE | 不合法的簽章 |
5037 | CG_RTN_BAD_CONTENT | 內容錯誤 |
5038 | CG_RTN_BAD_CAPTCHA | 錯誤的驗證碼 |
5040 | CG_RTN_INVALID_CERT | 憑證格式錯誤 |
5041 | CG_RTN_INVALID_CRL | CRL 格式錯誤 |
5042 | CG_RTN_INVALID_PKCS7 | 錯誤的 PKCS7 格式 |
5043 | CG_RTN_INVALID_KEY | Key 的格式錯誤 |
5044 | CG_RTN_INVALID_CERTREQ | 不合法的 PKCS10 格式 |
5045 | CG_RTN_INVALID_FORMAT | 不合適的格式 |
5046 | CG_RTN_INVALID_PKCS12 | 不合法的 PKCS12 格式 |
5050 | CG_RTN_OBJ_NOT_FOUND | 找不到物件 |
5051 | CG_RTN_PKCS7_NO_CONTENT | PKCS7 不存在原文 |
5052 | CG_RTN_PKCS7_NO_CERTIFICATE | PKCS7 不存在憑證 |
5053 | CG_RTN_PKCS7_NO_SIGNERINFO | PKCS7 不存在 SINGERINFO |
5060 | CG_RTN_UNMATCH_CERT_KEY | 錯誤的憑證或金鑰 |
5061 | CG_RTN_SIGN_ERROR | 簽章失敗 |
5062 | CG_RTN_VERIFY_ERROR | 驗章失敗 |
5063 | CG_RTN_ENCRYPT_ERROR | 加密失敗 |
5064 | CG_RTN_DECRYPT_ERROR | 解密失敗 |
5065 | CG_RTN_GENKEY_ERROR | 產生金鑰失敗 |
5066 | CG_RTN_DELETE_USR_CERT_ERROR | 刪除使用者憑證錯誤 |
5067 | CG_RTN_BAD_ALGID | 錯誤的演算法 |
5070 | CG_RTN_OPERATION_CANCELED | 操作已關閉 |
5071 | CG_RTN_PASSWD_INVALID | 密碼錯誤 |
5072 | CG_RTN_SCARD_BLOCKED | 卡片鎖卡 |
5073 | CG_RTN_REPLUG_TIMEOUT | 拔插逾時 |
5074 | CG_RTN_DEVICE_DISABLED | 裝置已停用 |
5080 | CG_RTN_XMLPARSE_ERROR | 無法剖析 XML 文件 |
5081 | CG_RTN_XMLTAG_NOTFOUND | 無法在 XML 中找到指定的標籤名稱 |
5901 | CG_RTN_UNICODE_ERROR | 轉型失敗 |
5902 | CG_RTN_FILE_NOT_FOUND | 找不到檔案 |
5903 | CG_RTN_PATH_NOT_FOUND | 不存在的路徑 |
5904 | CG_RTN_BAD_NETPATH | 不存在的網路路徑 |
5905 | CG_RTN_LOGON_FAILURE | 登入失敗 |
5906 | CG_RTN_ACCESS_DENIED | 不符權限 |
5909 | CG_RTN_BAD_PASSWD | 錯誤的密碼 |
5504 | CG_RTN_SOCKET_RECV_ERROR | |
5505 | CG_RTN_SOCKET_CLOSED | |
9001 | CGP11_RTN_CANCEL | 中斷 |
9002 | CGP11_RTN_HOST_MEMORY | 記憶體錯誤 |
9003 | CGP11_RTN_SLOT_ID_INVALID | Slot Id 不存在 |
9004 | CGP11_RTN_GENERAL_ERROR | 一般錯誤 |
9005 | CGP11_RTN_FUNCTION_FAILED | 函數失敗 |
9006 | CGP11_RTN_ARGUMENTS_BAD | |
9007 | CGP11_RTN_NO_EVENT | |
9008 | CGP11_RTN_NEED_TO_CREATE_THREADS | |
9009 | CGP11_RTN_CANT_LOCK | |
9010 | CGP11_RTN_ATTRIBUTE_READ_ONLY | |
9011 | CGP11_RTN_ATTRIBUTE_SENSITIVE | |
9012 | CGP11_RTN_ATTRIBUTE_TYPE_INVALID | |
9013 | CGP11_RTN_ATTRIBUTE_VALUE_INVALID | |
9014 | CGP11_RTN_DATA_INVALID | |
9015 | CGP11_RTN_DATA_LEN_RANGE | |
9016 | CGP11_RTN_DEVICE_ERROR | 裝置不存在 |
9017 | CGP11_RTN_DEVICE_MEMORY | |
9018 | CGP11_RTN_DEVICE_REMOVED | 裝置已拔除 |
9019 | CGP11_RTN_ENCRYPTED_DATA_INVALID | |
9020 | CGP11_RTN_ENCRYPTED_DATA_LEN_RANGE | 被加密資料長度錯誤 |
9021 | CGP11_RTN_FUNCTION_CANCELED | |
9022 | CGP11_RTN_FUNCTION_NOT_PARALLEL | |
9023 | CGP11_RTN_FUNCTION_NOT_SUPPORTED | |
9024 | CGP11_RTN_KEY_HANDLE_INVALID | 指定的金鑰不存在 |
9025 | FCGP11_RTN_KEY_SIZE_RANGE | |
9026 | CGP11_RTN_KEY_TYPE_INCONSISTENT | |
9027 | CGP11_RTN_KEY_NOT_NEEDED | |
9028 | CGP11_RTN_KEY_CHANGED | |
9029 | CGP11_RTN_KEY_NEEDED | |
9030 | CGP11_RTN_KEY_INDIGESTIBLE | |
9031 | CGP11_RTN_KEY_FUNCTION_NOT_PERMITTED | |
9032 | CGP11_RTN_KEY_NOT_WRAPPABLE | |
9033 | CGP11_RTN_KEY_UNEXTRACTABLE | |
9034 | CGP11_RTN_MECHANISM_INVALID | 指定的機制不存在 |
9035 | CGP11_RTN_MECHANISM_PARAM_INVALID | |
9036 | CGP11_RTN_OBJECT_HANDLE_INVALID | 指定的物件不存在 |
9037 | CGP11_RTN_OPERATION_ACTIVE | |
9038 | CGP11_RTN_OPERATION_NOT_INITIALIZED | |
9039 | CGP11_RTN_PIN_INCORRECT | PIN 碼錯誤 |
9040 | CGP11_RTN_PIN_INVALID | Pkcs#11 PIN 碼未設定 |
9041 | CGP11_RTN_PIN_LEN_RANGE | PIN 碼錯誤 |
9042 | CGP11_RTN_PIN_EXPIRED | |
9043 | CGP11_RTN_PIN_LOCKED | PIN 碼錯誤次數超過裝置設定次數 |
9044 | CGP11_RTN_SESSION_CLOSED | 與裝置的連線結束 |
9045 | CGP11_RTN_SESSION_COUNT | 與裝置的連線次數 |
9046 | CGP11_RTN_SESSION_HANDLE_INVALID | 指定的連線不存在 |
9047 | CGP11_RTN_SESSION_PARALLEL_NOT_SUPPORTED | |
9048 | CGP11_RTN_SESSION_READ_ONLY | |
9049 | CGP11_RTN_SESSION_EXISTS | 指定的連線已存在 |
9050 | CGP11_RTN_SESSION_READ_ONLY_EXISTS | |
9051 | CGP11_RTN_SESSION_READ_WRITE_EXISTS | |
9052 | CGP11_RTN_SIGNATURE_INVALID | |
9053 | CGP11_RTN_SIGNATURE_LEN_RANGE | |
9054 | CGP11_RTN_TEMPLATE_INCOMPLETE | |
9055 | CGP11_RTN_TEMPLATE_INCONSISTENT | |
9056 | CGP11_RTN_TOKEN_NOT_PRESENT | 裝置不存在 |
9057 | CGP11_RTN_TOKEN_NOT_RECOGNIZED | |
9058 | CGP11_RTN_TOKEN_WRITE_PROTECTED | 對裝置作寫的動作時所使用的權限錯誤,可能是 SO Pin 錯誤或指定的裝置不可寫入 |
9059 | CGP11_RTN_UNWRAPPING_KEY_HANDLE_INVALID | |
9060 | CGP11_RTN_UNWRAPPING_KEY_SIZE_RANGE | |
9061 | CGP11_RTN_UNWRAPPING_KEY_TYPE_INCONSISTENT | |
9062 | CGP11_RTN_USER_ALREADY_LOGGED_IN | 已登入裝置 |
9063 | CGP11_RTN_USER_NOT_LOGGED_IN | 未登入裝置 |
9064 | CGP11_RTN_USER_PIN_NOT_INITIALIZED | |
9065 | CGP11_RTN_USER_TYPE_INVALID | |
9066 | CGP11_RTN_USER_ANOTHER_ALREADY_LOGGED_IN | |
9067 | CGP11_RTN_USER_TOO_MANY_TYPES | |
9068 | CGP11_RTN_WRAPPED_KEY_INVALID | |
9069 | CGP11_RTN_WRAPPED_KEY_LEN_RANGE | |
9070 | CGP11_RTN_WRAPPING_KEY_HANDLE_INVALID | |
9071 | CGP11_RTN_WRAPPING_KEY_SIZE_RANGE | |
9072 | CGP11_RTN_WRAPPING_KEY_TYPE_INCONSISTENT | |
9073 | CGP11_RTN_RANDOM_SEED_NOT_SUPPORTED | |
9074 | CGP11_RTN_RANDOM_NO_RNG | |
9075 | CGP11_RTN_BUFFER_TOO_SMALL | 緩衝區不夠 |
9076 | CGP11_RTN_SAVED_STATE_INVALID | |
9077 | CGP11_RTN_INFORMATION_SENSITIVE | |
9078 | CGP11_RTN_STATE_UNSAVEABLE | |
9079 | CGP11_RTN_CRYPTOKI_NOT_INITIALIZED | |
9080 | CGP11_RTN_CRYPTOKI_ALREADY_INITIALIZED | |
9081 | CGP11_RTN_MUTEX_BAD | |
9082 | CGP11_RTN_MUTEX_NOT_LOCKED | |
9083 | CGP11_RTN_VENDOR_DEFINED | |
9100 | CGP11_RTN_OBJECT_NOT_EXIST | 指定的物件不存在 |
9101 | CGP11_RTN_OBJECT_EXIST | 指定的物件已存在 |
9102 | CGP11_RTN_OBJECT_HAS_PROBLEM | 裝置中有兩個相同的物件 |
9110 | CGP11_RTN_LOAD_LIBRARY_FAIL | |
9111 | CGP11_RTN_LIBRARY_NOT_LOAD | |
9999 | CGP11_RTN_UNKNOW_ERROR |
VA_ServerAddURL(CGVAAccount, CGVAPass, CGVAURL, LogMsg) | |
函式說明 | 連接並登入位於 CGVAURL 的 VA Server |
---|---|
參數 |
|
回傳值 | 0 代表連線成功,非 0 就代表連線失敗。 |
錯誤訊息處理 | 失敗,請使用 錯誤! 找不到參照來源。取得系統回傳訊息。 |
void setRtnFields(string fields) | |
函式說明 | 設定要 VA 回傳的參數。 |
---|---|
參數 | fields:要回傳的參數,參數之間用","分隔開。 可指定下列值 subject, serial, cert, signeddata, userid, issuer, notbefore, notafter, certhash, extraid, cardtype, cardrank, transid, translogid。 |
回傳值 | 無 |
int VA_VerifySign(string sSignature, string sData, int iBinary, int date, string sUserId) | |
函式說明 | 憑證登入驗章,身份認證程序: 1. 檢查憑證是否為應用程式認可的 CA 所發行。 2. 驗證認證訊息的簽章值是否正確。 3. 驗證 CR Token 是否存在系統中。 4. 檢查憑證有效性(時間及 CRL)。(option) 5. 檢查該帳號與憑證是否已在 VA 註冊過。(option) 6. 儲存登入紀錄(LoginLog) (option)。 |
---|---|
參數 |
sSignature:簽章值。 sData:簽章原文。若為空字串,則程式自動驗證簽章內之(字串)原文,並回傳原文。 iBinary:預設為 0,若為 1 表示原文為二位元資料經 base64 編碼過。 date:要驗簽章的時間,要驗過往簽章時使用。 sUserId:使用者 ID。當有些系統必須輸入 ID 來搜尋使用者憑證時使用。 |
回傳值 | 0 成功 成功後,若有設定 setRtnFields() 回傳值,可使用 VA_GetCert() 取得憑證 |
錯誤訊息處理 | 若失敗請使用 VA_GetErrorMsg() 取得錯誤訊息 |
string VA_GetErrorMsg(int iType) | |
函式說明 | 取得系統回傳訊息說明。 |
---|---|
參數 | iType:訊息種類。可不傳此參數,預設值為伺服器訊息。CHINESE_ERROR_MSG:中文訊息,ENGLISH_ERROR_MSG:英文訊息。SERVLET_ERROR_MSG:伺服器訊息(英文)。可用”|” 同時顯示中文訊 息+伺服器訊息,或英文訊息+伺服器訊息。 |
回傳值 | 訊息說明。 |
備註 | 必須先使用其他函式成功後,才能使用本函式。 |
代碼 | 中文訊息 | 英文訊息 |
---|---|---|
0 | 成功。 | Success! |
5001 | 一般錯誤。 | General error! |
5002 | 配置記憶體發生錯誤。 | Memory Allocation Error! |
5003 | 記憶體緩衝區太小。 | Buffer too small. |
5004 | 未支援函式。 | Function not support. |
5005 | 錯誤的參數。 | Invalid parameter! |
5006 | 無效的 handle。 | Invalid handle |
5007 | 試用版期限已過。 | TrialVersion Library is expired! |
5008 | Base64 編碼錯誤。 | Base64 Encoding Error |
5010 | 無法在 MS CryptoAPI Database 中找到指定憑證。 | Certificate not found in MS CryptoAPI Database! |
5011 | 憑證已過期。 | Certificate is expired! |
5012 | 憑證尚未合法,無法使用。 | Certificate can not be used now! |
5013 | 憑證可能過期或無法使用。 | Some certificates are expired, some can not be used now! |
5014 | 憑證主旨錯誤。 | Certificate subject not match! |
5015 | 無法找到憑證發行者。 | Unable to find certificate issuer! |
5016 | 不合法的憑證簽章。 | Certificate signature is invalid! |
5017 | 憑證用途(加解密或簽驗章)不合適。 | Invalid certificate key usage! |
5020 | 憑證已撤銷。 | Certificate is revoked! |
5021 | 憑證已撤銷(金鑰洩露)。 | Certificate is revoked (key compromised) |
5022 | 憑證已撤銷(CA compromised)。 | Certificate is revoked (CA compromised) |
5023 | 憑證已撤銷(聯盟已變更)。 | Certificate is revoked (affiliation changed) |
5024 | 憑證已撤銷(已取代)。 | Certificate is revoked (superseded) |
5025 | 憑證已撤銷(已停止)。 | Certificate is revoked (cessation) |
5026 | 憑證保留或暫禁。 | Certificate is revoked (hold) |
5028 | 憑證己撤銷(凍結)。 | Certificate is revoked (hold) |
5030 | CRL 已過期。 | CRL expired |
5031 | 不合法的 CRL。 | CRL not yet valid |
5032 | 無法找到 CRL。 | CRL not found |
5034 | CRL 簽章值無效。 | CRL signature invalid |
5035 | Digest 錯誤。 | Get Digest error |
5036 | 不合法的簽章。 | Invalid data signature |
5037 | 內容錯誤。 | Content not match |
5040 | 憑證格式錯誤。 | Incorrect Certificate format |
5041 | CRL 格式錯誤。 | Incorrect CRL format |
5042 | 錯誤的 PKCS7 格式。 | Incorrect PKCS7 |
5043 | Key 的格式錯誤。 | Incorrect KEY format |
5044 | 不合法的 PKCS10 格式。 | Incorrect PKCS10 |
5045 | 無效的格式。 | Incorrect format |
5046 | 無效的 PKCS12。 | Invalid PKCS12 |
5050 | 找不到物件。 | Object No found |
5051 | 無內容於 PKCS7 資料中。 | (PKCS7) No content |
5052 | 無憑證於 PKCS7 資料中。 | (PKCS7) No certificate |
5053 | 無簽章資料於 PKCS7 資料中。 | (PKCS7) No signerinfo |
5060 | 錯誤的憑證或金鑰。 | Certificate/PrivateKey not match |
5061 | 簽章失敗。 | Sign error |
5062 | 驗章失敗。 | Verify error |
5063 | 加密失敗。 | Encrypt error |
5064 | 解密失敗。 | Decrypt error |
5065 | 產生金鑰失敗。 | Generate key error |
5070 | 取消操作。 | Operation Cancel |
5071 | 密碼不正確。 | Password Invalid |
5080 | 無法剖析 XML 文件。 | (XML) Parse error |
5081 | 無法在 XML 中,找到指定的標籤名稱。 | (XML) Tag not found |
5100 | 無效狀態。 | Invalid State |
5101 | 超出範圍。 | Out Of Range |
5201 | 開啟 store 錯誤。 | Open store error |
5202 | 產生 chain 錯誤。 | Create chain error |
5203 | Crypt context 錯誤。 | Crypt context error |
5204 | 沒有私密金鑰。 | no private key |
5205 | 不可匯出。 | unexportable |
5206 | 不可存取 store。 | Store accessdeny |
5401 | CRL 沒有發行者。 | CRL no issure |
5410 | OCSP 沒有簽章值。 | OCSP no signature |
5411 | OCSP 沒有簽署者憑證。 | OCSP no signcert |
5412 | OCSP 沒有原始資料。 | OCSP no data |
5413 | 不支援的 OCSP 回應。 | unsupport response |
5414 | 無效的 OCSP 回應。 | OCSP invalid response |
5415 | 沒有對應的 OCSP 憑證編號。 | OCSP no match certid |
5416 | 未知的 OCSP 憑證狀態。 | OCSP cert status unknown |
5417 | 無效的 OCSP 回應編號。 | OCSP invalid respid |
5418 | 無效的 OCSP 回應。 | OCSP invalid respnonce |
5420 | 無效的 OCSP 請求。 | OCSP rspstatus invalid request |
5421 | OCSP 內部錯誤。 | OCSP rspstatus internal error |
5422 | OCSP 忙碌中,請稍後重試。 | OCSP rspstatus trylater |
5423 | OCSP 請求需要簽章。 | OCSP rspstatus sigrequired |
5424 | 未被授權的 OCSP 請求。 | OCSP rspstatus unauthorized |
5425 | 未知的 OCSP 狀態。 | OCSP rspstatus unknown |
5500 | Socket 錯誤。 | Socket error |
5501 | Socket 未知的主機。 | Socket unkown host |
5502 | Socket 連結錯誤。 | Socket connect error |
5503 | Socket 傳送錯誤。 | Socket send error |
5504 | Socket 接收錯誤。 | Socket recv error |
5505 | Socket 已關閉。 | Socket closed |
7706 | XML 簽章值錯誤。 | Incorrect xml signature |
7707 | XML 指定參考的摘要值錯誤。 | Incorrect xml referenceTs digest value |
7711 | 無法找到此 ID 所指的 XML 簽章, ID 錯誤或 XML 簽章不存在。 | CanTt find XMLSignature with this ID |
7712 | 解析 XML 文件時發生錯誤。 | Parse xml document error |
7713 | URI 所指向的文件不存在或為空值。 | Specified uri is not existed |
7716 | XML 參數不正確。 | XML Incorrect parameter |
26004 | 送至 Servlet 的參數缺少或不正確。 | Illeagle argument |
26006 | Servlet 無法連結。 | Unable to connect to Servlet |
26008 | Servlet 沒有回傳任何資料。 | Servlet returns no data |
26007 | Servlet 回傳資料型態或回傳格式錯誤。 | Servlet returns invalid data/type/format |
66001 | 一般性錯誤。 | General Error |
66003 | 不合法的參數。 | ILLEGALE ARGUMENT |
66007 | 應用程式無法使用此函式。 | User has no permission of this function. |
66008 | 簽章原文已過期, 請重整網頁以取得新的簽章原文。 | Challenge-Response token expired |
66101 | Servlet 服務已經啟動,正常執行中。 | Servlet already running |
66102 | Servlet 服務未啟動。 | Servlet not start |
66105 | 使用者的密碼不正確。 | User password not correct |
66201 | 使用者的帳號已刪除。 | User account is deleted |
66202 | 登入失敗次數太多,使用者的帳號已凍結。 | User account is freezed |
66203 | 使用者的帳號不存在 | User acount not exit |
66204 | 帳號已存在。 | ACCOUNT_ALREADY_EXIST |
66205 | 使用者未登入。 | User not login |
66216 | 未信任的 CA,請將該 CA 加入信任清單中。 | Untrusted CA, add this CA to the trusted list |
66302 | 請求服務的 IP 未被授權。 | Unallowed IP |
66303 | 請求服務的 IP 未被授權。 | Unallowed IP |
66306 | 序號控管錯誤。 | Sequence check fail |
66315 | 備份檔的設定無效。 | Backup setting is invalid |
66401 | 連結資料庫失敗。 | DATABASE_FAIL |
66402 | 資料庫內沒有找到符合的使用者資料。 | No user data in database |
66501 | 憑證已過期或憑證已註銷 | CERT_STATE_EXPIRED |
66503 | 憑證己撤銷。 | Certificate is revoked |
66504 | 憑證撤銷中。 | Certificate is revoking |
66505 | 憑證己暫禁。 | Certificate is suspended |
66506 | 憑證暫禁中。 | Certificate is suspending |
66513 | 無效憑證的狀態。 | Invalid certificate state |
66520 | 憑證的格式錯誤。 | Invalid certificate |
66521 | 該憑證不存在系統中。 | certificate is not exist in system |
66522 | 憑證簽章有問題。 | CERT_BAD_SIGNATURE |
66601 | 回傳訊息格式錯誤。 | Return MSG FORMAT ERROR |
66710 | PKCS7 格式錯誤。 | PKCS7_FORMAT_ERROR |
66720 | 簽章原文錯誤。 | VERIFY_BAD_CONTENT |
66725 | 無法找到對應的金鑰。 | UNMATCH_CERT_PRIKEY |
66801 | 此憑證未登記於該使用者 ID。 | This Certificate is not registered with this UserID |
66802 | 此憑證已登記於其他使用者 ID。 | The Certificate was registered with other UserID |
66804 | 憑證已存在。 | Certificate is exist |
//CGP11 元件初始
objCGP11CryptATL = new CGP11CryptATLLib.CGP11Crypt();
//解析軟憑pfx檔案
int iRtn = objCGP11CryptATL.CryptParsePKCS12(textPfxFilePath.Text, textPfxPassword.Text, textPfxPassword.Tesxt);
//檢查憑證有效性
if (iRtn == 0)
{
//取得憑證
sCert = objCGP11CryptATL.GetRtnCertificate();
HospitalSignatureTextBoxText = sCert;
//取得數位簽章值
int CG_FLAG_DETACHMSG = 0x00004000;
int CG_KU_NON_REPUDIATION = 0x0040;
int CG_ALGOR_SHA256 = 0x04;
signature = objCGP11CryptATL.P12Sign(textPfxFilePath.Text, textPfxPassword.Text, DownloadtextBox.Text, CG_FLAG_DETACHMSG, CG_KU_NON_REPUDIATION, CG_ALGOR_SHA256);
//取得軟憑的私鑰
sPrivateKey = objCGP11CryptATL.GetRtnPrivateKey();
//使用憑證加密資料
int CG_ALGOR_AES_256 = 0x07;
encryptDownloadTextBox.Text = objCGP11CryptATL.CryptCertEncrypt(sCert, DownloadtextBox.Text, CG_ALGOR_AES_256, 0);
}
署端
va = new CGVAATLLib.VAATLClass();
//CGP11 元件初始
objCGP11CryptATL = new CGP11CryptATLLib.CGP11Crypt();
//連接認證伺服器
int rtn = va.VA_ServerAddURL(CGVAAccount, CGVAPass, CGVAURL, "SoftwareCert API Login");
//取得憑證的檢驗機構代碼
va.setRtnFields("cert");
rtn = va.VA_VerifySign(sCert, "", 0, 0, "");
HospitalCertTextBox.Text = va.VA_GetCert();
hospitalCodetextBox.Text = objCGP11CryptATL.CGCrypt_CertGetSubjectDirectoryAttrs(sCert, "2.16.886.1.100.2.111", 0);
//取得錯誤訊息
msg = va.VA_GetErrorMsg(va.CG_CHINESE_ERROR_MSG() | va.CG_SERVLET_ERROR_MSG());
//解密資料
//設定codepage
//objCGP11CryptATL.SetCodePage(65001);
objCGP11CryptATL.SetCodePage(950);
decryptTextBox.Text = objCGP11CryptATL.CryptCertDecrypt(sCert, sPrivateKey, textPfxPassword.Text, encryptDownloadTextBox2.Text, 0, 0);
int rtn = objCGP11CryptATL.GetErrorCode();
//使用憑證加密資料
int CG_ALGOR_AES_256 = 0x07;
encryptDownloadTextBox.Text = objCGP11CryptATL.CryptCertEncrypt(sCert, DownloadtextBox.Text, CG_ALGOR_AES_256, 0);
檢驗機構端解密收到資料
//設定codepage
//objCGP11CryptATL.SetCodePage(65001);
objCGP11CryptATL.SetCodePage(950);
decryptTextBox.Text = objCGP11CryptATL.CryptCertDecrypt(sCert, sPrivateKey, textPfxPassword.Text, encryptDownloadTextBox2.Text, 0, 0);
int rtn = objCGP11CryptATL.GetErrorCode();