var hcaframeId="hcaframe",hcaObjectId="myobj",gkpiframeId="gpkiframe",gkpiObjectId="fsgpkicrypt",fscframeId="fscframe",fscObjectId="cenroll",CERT_TYPE_MOICA_E="MOICA",CERT_TYPE_MOEACA_E="MOEACA",CERT_TYPE_GCA_E="GCA",CERT_TYPE_XCA_E="XCA",CERT_TYPE_HCA_E="HCA",CERT_TYPE_VERISIGN_E="VeriSign",CERT_TYPE_TWCA_E="TWCA",DEFAULT_ENCODE="UTF-8",DEFAULT_ENCODE_CODE=65001,FS_KU_DIGITAL_SIGNATURE=128,FSCAPI_FLAG_SELCERT_MANUAL=1,FSCAPI_FLAG_SELCERT_AUTO=2; function signResult(c,a,b,e,d){this.signature=a;this.errorCode=c;this.cardNo=b;this.description=e;this.attributeCert=d}function CertInfo(c,a,b,e,d,g,f,h,k,l,m){this.errorCode=c;this.description=l;this.certContent=a;this.certSubject=b;this.cardType=e;this.cardHolderRank=d;this.issuerSubject=g;this.serialNo=f;this.startTime=h;this.endTime=k;this.attributeCert=m} function transferCertType(c,a){switch(c){case 101:return"tw"==a?"\u81ea\u7136\u4eba\u6191\u8b49":CERT_TYPE_MOICA_E;case 102:return"tw"==a?"\u653f\u5e9c\u6191\u8b49":CERT_TYPE_GCA_E;case 103:return"tw"==a?"\u653f\u5e9c\u6191\u8b49":CERT_TYPE_GCA_E;case 104:return"tw"==a?"\u7d44\u7e54\u53ca\u5718\u9ad4\u6191\u8b49":CERT_TYPE_XCA_E;case 105:return"tw"==a?"\u5de5\u5546\u6191\u8b49":CERT_TYPE_MOEACA_E;case 106:return"tw"==a?"\u7d44\u7e54\u53ca\u5718\u9ad4\u6191\u8b49":CERT_TYPE_XCA_E;case 107:return"tw"== a?"\u7d44\u7e54\u53ca\u5718\u9ad4\u6191\u8b49":CERT_TYPE_XCA_E;case 108:return"tw"==a?"\u5de5\u5546\u6191\u8b49":CERT_TYPE_MOEACA_E;case 109:return"tw"==a?"\u5de5\u5546\u6191\u8b49":CERT_TYPE_MOEACA_E;case 110:return"tw"==a?"ServerAP":ServerAP;case 111:return"tw"==a?"\u91ab\u4e8b\u6191\u8b49":CERT_TYPE_HCA_E;case 112:return"tw"==a?"\u91ab\u4e8b\u6191\u8b49":CERT_TYPE_HCA_E;case 1:return"tw"==a?"\u91ab\u4e8b\u6191\u8b49":CERT_TYPE_HCA_E;case 0:return"tw"==a?"\u91ab\u4e8b\u6191\u8b49":CERT_TYPE_HCA_E; case 113:return"tw"==a?"\u7d44\u7e54\u53ca\u5718\u9ad4\u6191\u8b49":CERT_TYPE_XCA_E;case 114:return"tw"==a?"\u7d44\u7e54\u53ca\u5718\u9ad4\u6191\u8b49":CERT_TYPE_XCA_E;case 70:return"Unknown";case 0:return"";default:return c}}function installerror(){alert("\u5b89\u88ddActiveX\u5143\u4ef6\u5931\u6557\u6216IE\u5b89\u5168\u6027\u8a2d\u5b9a\u4e0d\u5141\u8a31\u57f7\u884cActiceX\u5143\u4ef6")} function signDataByFSC(c,a){var b=new signResult;isInstallActiveX(fscframeId,b);if(0!=b.errorCode)return b;fscobj=getFSCObj();fscobj.SetCodePage(DEFAULT_ENCODE_CODE);locale=transferLocale(a);signature=fscobj.CAPISign(c,DEFAULT_ENCODE,"","","","",FSCAPI_FLAG_SELCERT_MANUAL,4,FS_KU_DIGITAL_SIGNATURE);b.signature=signature;b.errorCode=fscobj.GetErrorCode();b.description=transferErrorCodeToDescription(fscobj.GetErrorCode(),locale);return b} function signDataByFSCPFX(c,a,b,e){var d=new signResult;isInstallActiveX(fscframeId,d);if(0!=d.errorCode)return d;fscobj=getFSCObj();fscobj.SetCodePage(DEFAULT_ENCODE_CODE);locale=transferLocale(e);c=fscobj.CAPI_PFXSign(c,a,b,FSCAPI_FLAG_SELCERT_AUTO,4,FS_KU_DIGITAL_SIGNATURE);d.signature=c;d.errorCode=fscobj.GetErrorCode();d.description=transferHCAErrorToDescription(fscobj.GetErrorCode(),locale);return d} function signDataByHCA(c,a,b,e){var d=new signResult;isInstallActiveX(hcaframeId,d);if(0!=d.errorCode)return d;hcaobj=getHCAObj();locale=transferLocale(e);cardNo=hcaobj.FSHCA_GetCardSN();d.cardNo=cardNo;d.errorCode=hcaobj.FSHCA_GetErrorCode();if(0!=d.errorCode)return d.description=transferHCAErrorToDescription(d.errorCode,locale),d;if(void 0!=b&&null!=b&&""!=b&&cardNo!=b)return d.errorCode="Card has changed.(CardNo not match)",d.description="Card has changed.(CardNo not match)",d;b=hcaobj.FSHCA_GetReaderNames(0); if(null==b)return d.errorCode="reader no found",d;b=b.toArray()[0];hcaobj.SetCodePage(DEFAULT_ENCODE_CODE);c=void 0!=a&&null!=a?hcaobj.HCA_SignByReader(b,a,c,0,4):hcaobj.HCA_SignByReader(b,"",c,0,4);d.signature=c;d.errorCode=hcaobj.FSHCA_GetErrorCode();d.description=transferHCAErrorToDescription(d.errorCode,locale);return d}function transferHCAErrorToDescription(c,a){return transferErrorCodeToDescription(c,a)} function transferGPKIErrorToDescription(c,a){return transferErrorCodeToDescription(c,a)} function transferErrorCodeToDescription(c,a){switch(c){case 0:return"tw"==a?"\u57f7\u884c\u5b8c\u6210":"operation success";case 5001:return"tw"==a?"\u4e00\u822c\u6027\u932f\u8aa4":"general error";case 5002:return"tw"==a?"\u914d\u7f6e\u8a18\u61b6\u9ad4\u767c\u751f\u932f\u8aa4":"Memory Allocation Error";case 5003:return"tw"==a?"\u8a18\u61b6\u9ad4\u7de9\u885d\u5340\u592a\u5c0f":"Buffer too small";case 5004:return"tw"==a?"\u672a\u652f\u63f4\u51fd\u5f0f":"function not support";case 5005:return"tw"==a? "\u932f\u8aa4\u7684\u53c3\u6578":"Invalid parameter";case 5006:return"tw"==a?"\u7121\u6548\u7684handle":"Invalid handle";case 5007:return"tw"==a?"\u8a66\u7528\u7248\u51fd\u5f0f\u5eab\u5df2\u904e\u671f":"Trial Version Library is expired";case 5008:return"tw"==a?"Base64\u7de8\u78bc\u89e3\u78bc\u932f\u8aa4":"Base64 Encoding/Decoding Error";case 5010:return"tw"==a?"\u627e\u4e0d\u5230\u6191\u8b49":"certificate not found in MS CryptoAPI Database";case 5011:return"tw"==a?"\u6191\u8b49\u5df2\u904e\u671f": "Certicate Expired";case 5012:return"tw"==a?"\u6191\u8b49\u6642\u9593\u5c1a\u672a\u5408\u6cd5":"Certificate can not be used now";case 5013:return"tw"==a?"\u6191\u8b49\u53ef\u80fd\u904e\u671f\u6216\u7121\u6cd5\u4f7f\u7528":"Some certificates are expired, some can not be used now";case 5014:return"tw"==a?"\u6191\u8b49\u4e3b\u65e8\u932f\u8aa4":"Certificate subject not match";case 5015:return"tw"==a?"\u7121\u6cd5\u627e\u5230\u6191\u8b49\u767c\u884c\u8005":"Unable to find certificate issuer";case 5016:return"tw"== a?"\u6191\u8b49\u4e0a\u7684\u7c3d\u7ae0\u503c\u662f\u932f\u8aa4\u7684":"Certificate signature is invalid";case 5017:return"tw"==a?"\u7121\u6548\u7684\u6191\u8b49\u7528\u9014\uff08\u52a0\u89e3\u5bc6\u3001\u7c3d\u9a57\u7ae0\uff09":"Invalid ertificate keyusage";case 5020:return"tw"==a?"\u6191\u8b49\u5df2\u64a4\u92b7":"Certificate is revoked";case 5021:return"tw"==a?"\u6191\u8b49\u5df2\u64a4\u92b7\uff08\u91d1\u9470\u6d29\u9732\uff09":"Certificate is revoked(key compromised)";case 5022:return"tw"==a?"\u6191\u8b49\u5df2\u64a4\u92b7\uff08CA compromised\uff09": "Certificate is revoked(CA compromised)";case 5023:return"tw"==a?"\u6191\u8b49\u5df2\u64a4\u92b7\uff08\u806f\u76df\u5df2\u8b8a\u66f4\uff09":"Certificate is revoked(affiliation changed)";case 5024:return"tw"==a?"\u6191\u8b49\u5df2\u64a4\u92b7\uff08\u5df2\u53d6\u4ee3\uff09":"Certificate is revoked(superseded)";case 5025:return"tw"==a?"\u6191\u8b49\u5df2\u64a4\u92b7\uff08\u5df2\u505c\u6b62\uff09":"Certificate is revoked(cessation)";case 5026:return"tw"==a?"\u6191\u8b49\u4fdd\u7559\u6216\u66ab\u7981": "Certificate is revoked(hold)";case 5028:return"tw"==a?"\u6191\u8b49\u5df1\u64a4\u92b7\uff08\u51cd\u7d50\uff09":"Certificate is revoked(hold)";case 5030:return"tw"==a?"CRL \u5df2\u904e\u671f":"CRL expired";case 5031:return"tw"==a?"CRL \u5c1a\u672a\u6709\u6548":"CRL not yet valid";case 5032:return"tw"==a?"\u7121\u6cd5\u627e\u5230CRL":"CRL not found";case 5034:return"tw"==a?"CRL\u4e0a\u7684\u7c3d\u7ae0\u503c\u7121\u6548":"CRL signature invalid";case 5035:return"tw"==a?"\u53d6\u5f97\u6458\u8981\u503c\u932f\u8aa4": "Get Digest error";case 5036:return"tw"==a?"\u4e0d\u5408\u6cd5\u7684\u7c3d\u7ae0":"Invalid data signature";case 5037:return"tw"==a?"\u5167\u5bb9\u932f\u8aa4":"Content not match";case 5040:return"tw"==a?"\u6191\u8b49\u683c\u5f0f\u932f\u8aa4":"Incorrect Certificate format";case 5041:return"tw"==a?"CRL \u683c\u5f0f\u932f\u8aa4":"Incorrect CRL format";case 5042:return"tw"==a?"\u932f\u8aa4\u7684PKCS7\u683c\u5f0f":"Incorrect PKCS7 format";case 5043:return"tw"==a?"\u91d1\u9470\u7684\u683c\u5f0f\u932f\u8aa4": "Incorrect KEY format";case 5044:return"tw"==a?"\u4e0d\u5408\u6cd5\u7684\u6191\u8b49\u8acb\u6c42\u6a94\u683c\u5f0f(PKCS10)":"Incorrect PKCS10 format";case 5045:return"tw"==a?"\u7121\u6548\u7684\u683c\u5f0f":"Incorrect format";case 5046:return"tw"==a?"\u7121\u6548\u7684PKCS12\u683c\u5f0f":"Invalid PKCS12";case 5050:return"tw"==a?"\u627e\u4e0d\u5230\u6307\u5b9a\u7269\u4ef6":"Object No found";case 5051:return"tw"==a?"\u7c3d\u7ae0\u503c\u4e2d\u7121\u539f\u6587":"No content in PkCS7 Signature";case 5052:return"tw"== a?"\u7c3d\u7ae0\u503c\u4e2d\u7121\u6191\u8b49":"No certificate in PkCS7 Signature";case 5053:return"tw"==a?"\u7c3d\u7ae0\u503c\u4e2d\u7121SignerInfo":"No SignerInfo in PkCS7 Signature";case 5060:return"tw"==a?"\u6191\u8b49\u8207\u79c1\u5bc6\u91d1\u9470\u4e26\u975e\u6210\u5c0d":"Certificate/PrivateKey not match";case 5061:return"tw"==a?"\u7c3d\u7ae0\u5931\u6557":"Sign error";case 5062:return"tw"==a?"\u9a57\u7ae0\u5931\u6557":"Verify error";case 5063:return"tw"==a?"\u52a0\u5bc6\u5931\u6557":"Encrypt error"; case 5064:return"tw"==a?"\u89e3\u5bc6\u5931\u6557":"Decrypt error";case 5065:return"tw"==a?"\u7522\u751f\u91d1\u9470\u5931\u6557":"Generate key error";case 5070:return"tw"==a?"\u53d6\u6d88\u64cd\u4f5c":"Operation Cancel";case 5071:return"tw"==a?"\u5bc6\u78bc\u4e0d\u6b63\u78ba":"Invalid Password";case 5091:return"tw"==a?"PKCS12\u4e0d\u6b63\u78ba":"Invalid PCKS12";case 5092:return"tw"==a?"PKCS12\u89e3\u78bc\u5931\u6557":"Decode PCKS12 Error";case 5093:return"tw"==a?"PKCS12\u89e3\u5bc6\u5931\u6557": "Derypt PCKS12 Error";case 5094:return"tw"==a?"PKCS12\u53d6\u5f97\u91d1\u9470\u5931\u6557":"PCKS12 Get Key Error";case 5095:return"tw"==a?"PKCS12\u53d6\u5f97\u6191\u8b49\u5931\u6557":"PCKS12 Get Cert Error";case 5100:return"tw"==a?"\u7121\u6548\u72c0\u614b":"Invalid State";case 5101:return"tw"==a?"\u8d85\u51fa\u7bc4\u570d":"Out of range";case 5902:return"tw"==a?"\u627e\u4e0d\u5230\u6307\u5b9a\u6a94\u6848":"File Not Found";case 5903:return"tw"==a?"\u627e\u4e0d\u5230\u6307\u5b9a\u8def\u5f91":"Path Not Found"; case 5904:return"tw"==a?"\u627e\u4e0d\u5230\u6307\u5b9a\u7db2\u8def\u8def\u5f91":"Network path was not found";case 5905:return"tw"==a?"\u4f7f\u7528\u8005\u767b\u5165\u5e33\u865f\u6216\u5bc6\u78bc\u932f\u8aa4":"Unknown logon user name or bad password";case 5906:return"tw"==a?"\u6c92\u6709\u6b0a\u9650\u5b58\u53d6":"Access Denied, no right";case 3001:return"tw"==a?"\u9023\u7d50\u5361\u7247\u5931\u6557":"Connect Card Fail.";case 3002:return"tw"==a?"\u975e\u6307\u5b9a\u4e4b\u5361\u7247":"Not Assigned Card ."; case 3003:return"tw"==a?"\u5efa\u7acb\u5361\u7247\u7269\u4ef6\u5931\u6557":"FSCARD_RTN_ESTABLISH_CONTEXT_FAIL";case 3004:return"tw"==a?"\u5361\u7247\u72c0\u614b\u4e0d\u6b63\u78ba":"FSCARD_RTN_CARD_STATUS_ERROR";case 3005:return"tw"==a?"\u5361\u7247\u4e0d\u5b58\u5728":"FSCARD_RTN_CARD_ABSENT";case 3006:return"tw"==a?"\u8cc7\u6599\u8f49\u8b6f\u932f\u8aa4":"FSCARD_RTN_TRANSMIT_ERROR";case 3007:return"tw"==a?"\u7121\u6cd5\u53d6\u5f97\u8cc7\u6599":"FSCARD_RTN_GET_DATA_ERROR";case 3008:return"tw"==a?"\u5bc6\u78bc\u767b\u5165\u5361\u7247\u5931\u6557": "FSCARD_RTN_LOGIN_FAIL";case 3009:return"tw"==a?"\u8b80\u5361\u6a5f\u7a7a\u9593\u4e0d\u8db3":"FSCARD_RTN_READERS_BUFFER_FAIL";case 3010:return"tw"==a?"\u7121\u6cd5\u53d6\u5f97\u8b80\u5361\u6a5f":"FSCARD_RTN_GET_READERS_FAIL";case 3011:return"tw"==a?"\u672a\u63a5\u4e0a\u4efb\u4f55\u8b80\u5361\u6a5f":"FSCARD_RTN_NO_READER";case 3012:return"tw"==a?"\u8a18\u61b6\u9ad4\u914d\u7f6e\u932f\u8aa4":"FSCARD_RTN_MEMALLOC_ERROR";case 3013:return"tw"==a?"\u5217\u8209\u8b80\u5361\u6a5f\u5931\u6557":"FSCARD_RTN_LIST_READERS_ERROR"; case 3014:return"tw"==a?"\u5beb\u51fa\u5b57\u5143\u5931\u6557":"FSCARD_RTN_CHAR2WCHAR_ERROR";case 3015:return"tw"==a?"\u8b80\u5165\u5b57\u5143\u5931\u6557":"FSCARD_RTN_WCHAR2CHAR_ERROR";case 3016:return"tw"==a?"\u7121\u6548\u7684\u53c3\u6578":"FSCARD_RTN_INVALID_PARAM";case 3017:return"tw"==a?"\u51fd\u5f0f\u5eab\u5df2\u904e\u671f":"FSCARD_RTN_LIB_EXPIRE";case 3018:return"tw"==a?"\u7121\u6cd5\u7522\u751fPKCS7\u683c\u5f0f\u8cc7\u6599":"FSCARD_RTN_GEN_PKCS7_FAIL";case 3019:return"tw"==a?"\u96dc\u6e4a\u5931\u6557": "FSCARD_RTN_DATA_HASH_ERROR";case 3020:return"tw"==a?"PIN \u78bc\u9577\u5ea6\u4e0d\u6b63\u78ba":"FSCARD_RTN_PIN_LENGTH_ERROR";case 3021:return"tw"==a?"\u5361\u7247\u5df2\u7d93\u9396\u5361":"FSCARD_RTN_PIN_LOCK";case 3022:return"tw"==a?"\u672a\u77e5\u7684\u6e9d\u901a\u5354\u5b9a":"FSCARD_RTN_UNKNOWN_PROTOCOL";case 3023:return"tw"==a?"\u672a\u77e5\u7684\u5361\u7247\u72c0\u614b":"FSCARD_RTN_UNKNOWN_STATE";case 3024:return"tw"==a?"\u529f\u80fd\u672a\u652f\u63f4":"FSCARD_RTN_FUNCTION_UNSUPPORT";case 3025:return"tw"== a?"\u64cd\u4f5c\u53d6\u6d88":"FSCARD_RTN_OPERATION_CANCELED";case 3026:return"tw"==a?"\u53d6\u5f97\u5bc6\u78bc\u5931\u6557":"FSCARD_RTN_GET_PASSWD_FAIL";case 3027:return"tw"==a?"\u8cc7\u6599\u7de8\u78bc\u5931\u6557":"FSCARD_RTN_DATA_ENCODE_FAIL";case 3028:return"tw"==a?"\u8f49\u63dbUnicode\u5931\u6557":"FSCARD_RTN_UNICODE_ERROR";case 3029:return"tw"==a?"\u958b\u555ficonv\u8f49\u78bc\u5931\u6557":"FSCARD_RTN_ICONV_OPEN_FAIL";case 3030:return"tw"==a?"\u8f49\u63db\u7de8\u78bc\u5931\u6557":"FSCARD_RTN_TRANSFORM_FAIL"; case 3031:return"tw"==a?"\u8f09\u5165\u51fd\u5f0f\u5eab\u5931\u6557":"FSHCACS_RTN_LOAD_LIBRARY_FAIL";case 3032:return"tw"==a?"\u51fd\u5f0f\u5eab\u672a\u8f09\u5165":"FSHCACS_RTN_LIBRARY_NOT_LOAD";case 3999:return"tw"==a?"\u4e00\u822c\u932f\u8aa4":"FSCARD_RTN_UNKNOWN_ERROR";case 9001:return"tw"==a?"PKCS#11 \u53d6\u6d88\u64cd\u4f5c":"PKCS#11 FSP11_RTN_CANCEL";case 9002:return"tw"==a?"PKCS#11 \u8a18\u61b6\u9ad4\u4e0d\u8db3":"PKCS#11 Insufficient memory";case 9003:return"tw"==a?"PKCS#11 \u6307\u5b9a\u7684Slot\u662f\u7121\u6548\u7684": "PKCS#11 Specified slot ID is not valid";case 9004:return"tw"==a?"PKCS#11 \u4e00\u822c\u6027\u932f\u8aa4":"PKCS#11 GENERAL_ERROR maybe unrecoverable error has occurred";case 9005:return"tw"==a?"PKCS#11 \u8981\u6c42\u7684\u51fd\u5f0f\u7121\u6cd5\u57f7\u884c":"PKCS#11 Requested function could not be performed";case 9006:return"tw"==a?"PKCS#11 \u932f\u8aa4\u7684\u53c3\u6578":"PKCS#11 Invalid arguments";case 9007:return"PKCS#11 FSP11_RTN_NO_EVENT";case 9008:return"PKCS#11 FSP11_RTN_NEED_TO_CREATE_THREADS"; case 9009:return"PKCS#11 FSP11_RTN_CANT_LOCK";case 9010:return"PKCS#11 FSP11_RTN_ATTRIBUTE_READ_ONLY";case 9011:return"PKCS#11 FSP11_RTN_ATTRIBUTE_SENSITIVE";case 9012:return"PKCS#11 FSP11_RTN_ATTRIBUTE_TYPE_INVALID";case 9013:return"PKCS#11 FSP11_RTN_ATTRIBUTE_VALUE_INVALID";case 9014:return"PKCS#11 FSP11_RTN_DATA_INVALID";case 9015:return"PKCS#11 FSP11_RTN_DATA_LEN_RANGE";case 9016:return"FSP11_RTN_DEVICE_ERROR";case 9017:return"tw"==a?"PKCS#11 Token\u7684\u8a18\u61b6\u9ad4\u4e0d\u8db3":"PKCS#11 token does not have sufficient memory"; case 9018:return"FSP11_RTN_DEVICE_REMOVED";case 9019:return"FSP11_RTN_ENCRYPTED_DATA_INVALID";case 9020:return"FSP11_RTN_ENCRYPTED_DATA_LEN_RANGE";case 9021:return"FSP11_RTN_FUNCTION_CANCELED";case 9022:return"FSP11_RTN_FUNCTION_NOT_PARALLEL";case 9023:return"FSP11_RTN_FUNCTION_NOT_SUPPORTED";case 9024:return"FSP11_RTN_KEY_HANDLE_INVALID";case 9025:return"FSP11_RTN_KEY_SIZE_RANGE";case 9026:return"FSP11_RTN_KEY_TYPE_INCONSISTENT";case 9027:return"FSP11_RTN_KEY_NOT_NEEDED";case 9028:return"FSP11_RTN_KEY_CHANGED"; case 9029:return"FSP11_RTN_KEY_NEEDED";case 9030:return"FSP11_RTN_KEY_INDIGESTIBLE";case 9031:return"FSP11_RTN_KEY_FUNCTION_NOT_PERMITTED";case 9032:return"FSP11_RTN_KEY_NOT_WRAPPABLE";case 9033:return"FSP11_RTN_KEY_UNEXTRACTABLE";case 9034:return"FSP11_RTN_MECHANISM_INVALID";case 9035:return"FSP11_RTN_MECHANISM_PARAM_INVALID";case 9036:return"tw"==a?"PKCS#11 \u7269\u4ef6\u7684 Handle \u4e0d\u6b63\u78ba":"PKCS#11 specified object handle is not valid";case 9037:return"FSP11_RTN_OPERATION_ACTIVE";case 9038:return"FSP11_RTN_OPERATION_NOT_INITIALIZED"; case 9039:return"tw"==a?"PKCS#11 \u5bc6\u78bc\u4e0d\u6b63\u78ba":"PKCS#11 specified PIN is incorrect";case 9040:return"tw"==a?"PKCS#11 \u5bc6\u78bc\u4e2d\u6709\u4e0d\u5408\u6cd5\u7684\u5b57\u5143":"PKCS#11 specified PIN has invalid characters";case 9041:return"tw"==a?"PKCS#11 \u5bc6\u78bc\u9577\u5ea6\u4e0d\u6b63\u78ba":"PKCS#11 specified PIN is too long or too short";case 9042:return"tw"==a?"PKCS#11 \u5bc6\u78bc\u5df2\u7d93\u904e\u671f":"PKCS#11 specified PIN has expired";case 9043:return"tw"==a? "PKCS#11 \u5bc6\u78bc\u5df2\u7d93\u9396\u4f4f":"PKCS#11 PIN is locked";case 9044:return"FSP11_RTN_SESSION_CLOSED";case 9045:return"FSP11_RTN_SESSION_COUNT";case 9046:return"FSP11_RTN_SESSION_HANDLE_INVALID";case 9047:return"FSP11_RTN_SESSION_PARALLEL_NOT_SUPPORTED";case 9048:return"FSP11_RTN_SESSION_READ_ONLY";case 9049:return"FSP11_RTN_SESSION_EXISTS";case 9050:return"FSP11_RTN_SESSION_READ_ONLY_EXISTS";case 9051:return"FSP11_RTN_SESSION_READ_WRITE_SO_EXISTS";case 9052:return"FSP11_RTN_SIGNATURE_INVALID"; case 9053:return"FSP11_RTN_SIGNATURE_LEN_RANGE";case 9054:return"FSP11_RTN_TEMPLATE_INCOMPLETE";case 9055:return"FSP11_RTN_TEMPLATE_INCONSISTENT";case 9056:return"tw"==a?"\u627e\u4e0d\u5230\u5361\u7247\uff0c\u60a8\u53ef\u80fd\u5c1a\u672a\u5c07\u5361\u7247\u63d2\u5165\u8b80\u5361\u6a5f\u5167\u6216\u5361\u7247\u985e\u5225\u932f\u8aa4":"PKCS#11 token was not present";case 9057:return"tw"==a?"PKCS#11 \u51fd\u5f0f\u5eab\u7121\u6cd5\u8fa8\u8b58 Token":"PKCS#11 does not recognize the token in the slot"; case 9058:return"FSP11_RTN_TOKEN_WRITE_PROTECTED";case 9059:return"FSP11_RTN_UNWRAPPING_KEY_HANDLE_INVALID";case 9060:return"FSP11_RTN_UNWRAPPING_KEY_SIZE_RANGE";case 9061:return"FSP11_RTN_UNWRAPPING_KEY_TYPE_INCONSISTENT";case 9062:return"tw"==a?"PKCS#11 \u4f7f\u7528\u8005\u5df2\u767b\u5165":"PKCS#11 user is already logged in";case 9063:return"tw"==a?"PKCS#11 \u4f7f\u7528\u8005\u672a\u767b\u5165":"PKCS#11 user is not logged in";case 9064:return"FSP11_RTN_USER_PIN_NOT_INITIALIZED";case 9065:return"FSP11_RTN_USER_TYPE_INVALID"; case 9066:return"FSP11_RTN_USER_ANOTHER_ALREADY_LOGGED_IN";case 9067:return"FSP11_RTN_USER_TOO_MANY_TYPES";case 9068:return"FSP11_RTN_WRAPPED_KEY_INVALID";case 9069:return"FSP11_RTN_WRAPPED_KEY_LEN_RANGE";case 9070:return"FSP11_RTN_WRAPPING_KEY_HANDLE_INVALID";case 9071:return"FSP11_RTN_WRAPPING_KEY_SIZE_RANGE";case 9072:return"FSP11_RTN_WRAPPING_KEY_TYPE_INCONSISTENT";case 9073:return"FSP11_RTN_RANDOM_SEED_NOT_SUPPORTED";case 9074:return"FSP11_RTN_RANDOM_NO_RNG";case 9075:return"tw"==a?"PKCS#11 \u8a18\u61b6\u9ad4\u7de9\u885d\u5340\u592a\u5c0f": "PKCS#11 Buffer too small";case 9076:return"FSP11_RTN_SAVED_STATE_INVALID";case 9077:return"FSP11_RTN_INFORMATION_SENSITIVE";case 9078:return"FSP11_RTN_STATE_UNSAVEABLE";case 9079:return"tw"==a?"PKCS#11 Cryptoki \u51fd\u5f0f\u5eab\u5c1a\u672a\u521d\u59cb\u5316\u904e":"PKCS#11 Cryptoki library has not yet been initialized";case 9080:return"tw"==a?"PKCS#11 Cryptoki \u51fd\u5f0f\u5eab\u5df2\u7d93\u521d\u59cb\u5316\u904e":"PKCS#11 Cryptoki library has already been initialized";case 9081:return"FSP11_RTN_MUTEX_BAD"; case 9082:return"FSP11_RTN_MUTEX_NOT_LOCKED";case 9083:return"PKCS#11 CKR_VENDOR_DEFINED";case 9100:return"tw"==a?"PKCS#11 \u6307\u5b9a\u7269\u4ef6\u4e0d\u5b58\u5728":"PKCS#11 specified object is not existed";case 9101:return"tw"==a?"PKCS#11 \u6307\u5b9a\u7269\u4ef6\u5df2\u5b58\u5728":"PKCS#11 specified object is already existed";case 9102:return"tw"==a?"PKCS#11 \u76f8\u540c\u7269\u4ef6\u8d85\u904e\u4e00\u500b":"PKCS#11 more than two objects existed";case 9110:return"tw"==a?"PKCS#11 \u8f09\u5165\u51fd\u5f0f\u5eab\u5931\u6557": "PKCS#11 load library fail";case 9111:return"FSP11_RTN_LIBRARY_NOT_LOAD";case 9112:return"FSP11_RTN_SLOT_NOT_FOUND";case 7701:return"tw"==a?"\u4e00\u822c\u6027\u932f\u8aa4":"general error";case 7704:return"tw"==a?"\u932f\u8aa4\u7684\u6f14\u7b97\u6cd5":"Invalid algorithm";case 7705:return"tw"==a?"\u57f7\u884c\u7684\u6f14\u7b97\u6cd5\u5931\u6557":"Crypto operation fail";case 7706:return"tw"==a?"XML \u7c3d\u7ae0\u503c\u932f\u8aa4":"Incorrect XML signature";case 7707:return"tw"==a?"XML \u6307\u5b9a\u53c3\u8003\u7684\u6458\u8981\u503c\u932f\u8aa4": "Incorrect XML reference's digest value";case 7708:return"tw"==a?"C14N \u932f\u8aa4":"C14N Error";case 7709:return"tw"==a?"\u57f7\u884c Transform \u6f14\u7b97\u6cd5\u5931\u6557":"Transform algorithm Error";case 7710:return"tw"==a?"\u57f7\u884c resolver \u5931\u6557":"Resolver Error";case 7711:return"tw"==a?"\u627e\u4e0d\u5230\u7c3d\u7ae0\u690d":"Signature not found";case 7712:return"tw"==a?"\u89e3\u6790XML\u6587\u4ef6\u6642\u767c\u751f\u932f\u8aa4":"Parse xml document error";case 7713:return"tw"== a?"URI\u6240\u6307\u5411\u7684\u6587\u4ef6\u4e0d\u5b58\u5728\u6216\u70ba\u7a7a\u503c":"specified URI is not existed";case 7714:return"tw"==a?"\u6191\u8b49\u5167\u5bb9\u8207\u7684\u8a18\u8f09\u4e0d\u7b26\u5408":"cert is not equal with ";case 7715:return"tw"==a?"XML\u6587\u4ef6\u932f\u8aa4\u6216\u683c\u5f0f\u932f\u8aa4":"Incorrect XML document format";case 7716:return"tw"==a?"\u53c3\u6578\u4e0d\u6b63\u78ba":"Incorrect parameter";case 7717:return"tw"==a?"\u4e0d\u652f\u63f4\u6b64C14N\u6f14\u7b97\u6cd5": "Incorrect C14N Algorithm";case 7718:return"tw"==a?"\u4e0d\u652f\u63f4\u6b64\u7c3d\u7ae0\u6f14\u7b97\u6cd5":"Incorrect Signature Algorithm";case 7719:return"tw"==a?"\u4e0d\u652f\u63f4\u6b64\u6458\u8981\u6f14\u7b97\u6cd5":"Incorrect Digest Algorithm";case 22:return"tw"==a?"\u5361\u7247\u4e0a\u7684\u6307\u5b9a\u6a94\u6848\u4e0d\u5b58\u5728":"Specific FILE on Smart Card is absent";case 14:return"tw"==a?"\u5361\u7247\u4e0d\u5b58\u5728":"Smart Card is absent";case 30:return"tw"==a?"\u6676\u7247\u91d1\u878d\u5361\u5bc6\u78bc\u932f\u8aa4": "FISCII PIN Error";case 31:return"tw"==a?"\u6676\u7247\u91d1\u878d\u5361\u5bc6\u78bc\u9396\u5361":"FISCII PIN Locked";case 32:return"tw"==a?"\u6676\u7247\u91d1\u878d\u5361\u5bc6\u78bc\u9577\u5ea6\u4e0d\u6b63\u78ba":"FISCII PIN length is invalid";case 33:return"tw"==a?"\u6676\u7247\u91d1\u878d\u5361\u5bc6\u78bc\u683c\u5f0f\u4e0d\u6b63\u78ba":"FISCII PIN format is invalid";default:return"unknown specific error message"}} function getPGKISignCertInfo(c,a,b){var e=new CertInfo;isInstallActiveX(gkpiframeId,e);if(0!=e.errorCode)return e;locale=transferLocale(c);gpkiobj=getGPKIObj();c=gpkiobj.FSGPKI_EnumCerts(FS_KU_DIGITAL_SIGNATURE);e.errorCode=gpkiobj.get_lastError();if(null==c)return e.description=transferGPKIErrorToDescription(e.errorCode,locale),e;c=c.toArray()[0];e.certContent=c;e.cardType=transferCertType(gpkiobj.GPKI_GetCertType(c,0),locale);e.cardHolderRank=gpkiobj.GPKI_GetCardHolderRank(c,0);e.certSubject=gpkiobj.FSCAPICertGetSubject(c, 0);e.serialNo=gpkiobj.FSXCAPICertGetSerialNumber(c,0);e.startTime=gpkiobj.FSCAPICertGetNotBefore(c,0);e.endTime=gpkiobj.FSCAPICertGetNotAfter(c,0);void 0!=b&&"true"==b&&void 0!=a&&""!=a&&(e.attributeCert=gpkiobj.FSGPKI_GetAttributeCert("",a,0));return e} function getHCASignCertInfo(c){var a=new CertInfo;isInstallActiveX(hcaframeId,a);if(0!=a.errorCode)return a;hcaobj=getHCAObj();locale=transferLocale(c);c=hcaobj.FSHCA_GetReaderNames(0);if(null==c)return a.errorCode="reader no found",result;c=c.toArray()[0];cert=hcaobj.FSHCA_GetCertificateByReader(c,"",0);a.certContent=cert;a.errorCode=hcaobj.FSHCA_GetErrorCode();if(0!=a.errorCode)return a.description=transferHCAErrorToDescription(a.errorCode,locale),a;a.cardType=transferCertType(hcaobj.FSHCA_GetCardType(c), locale);if(0!=a.errorCode)return a.description=transferHCAErrorToDescription(a.errorCode,locale),a;a.serialNo=hcaobj.FSHCA_GetCertSerialNumber(cert,0);a.errorCode=hcaobj.FSHCA_GetErrorCode();if(0!=a.errorCode)return a.description=transferHCAErrorToDescription(a.errorCode,locale),a;a.certSubject=hcaobj.FSHCA_GetCertSubject(cert,0);a.errorCode=hcaobj.FSHCA_GetErrorCode();if(0!=a.errorCode)return a.description=transferHCAErrorToDescription(a.errorCode,locale),a;a.issuerSubject=hcaobj.FSHCA_GetCertIssuer(cert, 0);a.errorCode=hcaobj.FSHCA_GetErrorCode();if(0!=a.errorCode)return a.description=transferHCAErrorToDescription(a.errorCode,locale),a;a.startTime=hcaobj.FSHCA_GetCertNotBefore(cert,0);a.endTime=hcaobj.FSHCA_GetCertNotAfter(cert,0);a.errorCode=hcaobj.FSHCA_GetErrorCode();0!=a.errorCode&&(a.description=transferHCAErrorToDescription(a.errorCode,locale));return a} function getPFXSignCertInfo(c,a){var b=new CertInfo;isInstallActiveX(fscframeId,b);if(0!=b.errorCode)return b;fscobj=getFSCObj();locale=transferLocale(a);fscobj.SetCodePage(DEFAULT_ENCODE_CODE);cert=fscobj.FSCAPI_ReadFile(c,0);certs=fscobj.FSXCAPIGetCertsEx("","",0,0);alert(certs[0]);b.certContent=cert;b.errorCode=fscobj.GetErrorCode();if(0!=b.errorCode)return b.description=transferHCAErrorToDescription(b.errorCode,locale),b;alert("cert:"+cert);b.serialNo=fscobj.FSXCAPICertGetSerialNumber(cert,0); b.errorCode=fscobj.GetErrorCode();alert("serialNo:"+b.errorCode);if(0!=b.errorCode)return b.description=transferHCAErrorToDescription(b.errorCode,locale),b;b.certSubject=fscobj.FSCAPICertGetSubject(cert,0);b.errorCode=fscobj.GetErrorCode();alert("certSubject:"+b.errorCode);if(0!=b.errorCode)return b.description=transferHCAErrorToDescription(b.errorCode,locale),b;b.issuerSubject=fscobj.FSCAPICertGetIssuer(cert,0);b.errorCode=fscobj.GetErrorCode();alert("issuerSubject:"+b.errorCode);if(0!=b.errorCode)return b.description= transferHCAErrorToDescription(b.errorCode,locale),b;b.startTime=hcaobj.FSCAPICertGetNotBefore(cert,0);b.endTime=hcaobj.FSCAPICertGetNotAfter(cert,0);b.errorCode=hcaobj.GetErrorCode();0!=b.errorCode&&(b.description=transferHCAErrorToDescription(b.errorCode,locale));return b}function transferLocale(c){locale="en";null!=c&&"tw"==c&&(locale="tw");return locale} function signDataByGPKI(c,a,b,e,d,g){var f=new signResult;isInstallActiveX(gkpiframeId,f);if(0!=f.errorCode)return f;gpkiobj=getGPKIObj();gpkiobj.SetCodePage(DEFAULT_ENCODE_CODE);locale=transferLocale(d);cardNo=gpkiobj.FSGPKI_GetSerialNumber();f.cardNo=cardNo;f.errorCode=gpkiobj.get_lastError();if(0!=f.errorCode)return f.description=transferGPKIErrorToDescription(f.errorCode,locale),f;if(void 0!=b&&null!=b&&""!=b&&cardNo!=b)return f.errorCode="Card has changed.(cardNo not match)",f.description="Card has changed.(cardNo not match)", f;finalEncoding=e;if(null==e||""==e)finalEncoding=DEFAULT_ENCODE;signature=void 0!=a&&null!=a?gpkiobj.FSGPKI_SignDataEx2(a,c,0,4):gpkiobj.FSGPKI_SignDataEx2("",c,0,4);f.errorCode=gpkiobj.get_lastError();f.description=transferGPKIErrorToDescription(f.errorCode,locale);f.signature=signature;void 0!=g&&"true"==g&&void 0!=a&&(f.attributeCert=gpkiobj.FSGPKI_GetAttributeCert("",a,0));return f}function getHCAObj(){return getActiveXObjFromFrame(hcaframeId,hcaObjectId)} function getGPKIObj(){return getActiveXObjFromFrame(gkpiframeId,gkpiObjectId)}function getFSCObj(){return getActiveXObjFromFrame(fscframeId,fscObjectId)}function getActiveXObjFromFrame(c,a){var b=document.getElementById(c);return result=(b.contentDocument?b.contentDocument:b.contentWindow.document).getElementById(a)} function isInstallActiveX(c,a){a.errorCode=0;if("undefined"===typeof window.ActiveXObject)try{new ActiveXObject("Microsoft.XMLDOM")}catch(b){return a.errorCode=-100,a.description="\u700f\u89bd\u5668\u4e0d\u652f\u63f4ActiveX\uff0c\u5efa\u8b70\u4f7f\u7528IE\u700f\u89bd\u5668",a}frameInnerDoc=getInnerDoc(c);"false"==frameInnerDoc.getElementById("isInstalledForm").isInstalled.value&&(a.errorCode=-200,a.description="\u5b89\u88ddActiveX\u5143\u4ef6\u5931\u6557\u6216IE\u5b89\u5168\u6027\u8a2d\u5b9a\u4e0d\u5141\u8a31\u57f7\u884cActiceX\u5143\u4ef6"); return a}function getInnerDoc(c){c=document.getElementById(c);return c.contentDocument?c.contentDocument:c.contentWindow.document};