Beispiel #1
0
        private string FSP11CheckCert(string original)
        {
            var count = fsPKI.FSXP11GetObjectList(0);

            if (fsPKI.GetErrorCode() != 0)
            {
                fsPKI.FSXP11Logout();
                fsPKI.FSXP11SessionClose();
                fsPKI.FSXP11Final();
                return("Error on funtcion FSXP11GetObjectList, error code=" + fsPKI.GetErrorCode());
            }

            var CertLabel = "";

            for (var i = 0; i < count; i++)
            {
                if (fsPKI.FSXP11GetObjectListObjectType(i) == 0x00000011)
                {
                    CertLabel = fsPKI.FSXP11GetObjectListLabel(i);
                    if (CertLabel == "PlaySAFE")
                    {
                        break;
                    }
                    else
                    {
                        CertLabel = "";
                    }
                }
                if (fsPKI.GetErrorCode() != 0)
                {
                    fsPKI.FSXP11Logout();
                    fsPKI.FSXP11SessionClose();
                    fsPKI.FSXP11Final();
                    return("憑證存取失敗,請您關閉程式後重新再試(" + fsPKI.GetErrorCode() + ")");
                }
            }

            if (CertLabel != "PlaySAFE")
            {
                fsPKI.FSXP11Logout();
                fsPKI.FSXP11SessionClose();
                fsPKI.FSXP11Final();
                return("找不到指定物件 Label[PlaySAFE]");
            }

            return(SignatureData(original));
        }