示例#1
0
        /// <summary>
        /// Ініціалізація бібліотеки.
        /// </summary>
        public static void Initialize()
        {
            int error = IEUSignCP.Initialize();

            if (error == IEUSignCP.EU_ERROR_NONE)
            {
                IEUSignCP.SetUIMode(false);

                string issuer = "O=Інформаційно-довідковий департамент ДФС;OU=Управління (центр) сертифікації ключів ІДД ДФС;CN=Акредитований центр сертифікації ключів ІДД ДФС;Serial=UA-39384476;C=UA;L=Київ";
                string serial = "33B6CB7BF721B9CE0400000054FC1B008F645800";

                IEUSignCP.EU_CERT_INFO_EX certInfoEx;

                error = IEUSignCP.GetCertificateInfoEx(issuer, serial, out certInfoEx);

                IEUSignCP.SetUIMode(true);

                if (error != IEUSignCP.EU_ERROR_NONE &&
                    error != IEUSignCP.EU_ERROR_CERT_NOT_FOUND)
                {
                    throw new Exception(IEUSignCP.GetErrorDesc(error));
                }

                if (error != IEUSignCP.EU_ERROR_CERT_NOT_FOUND)
                {
                    Certificates.Recipient.CertInfoEx = certInfoEx;
                }
            }
            else
            {
                throw new Exception(IEUSignCP.GetErrorDesc(error));
            }
        }
示例#2
0
        /// <summary>
        /// Зчитування особистого ключа за допомогою графічного інтерфейсу бібліотеки.
        /// </summary>
        /// <param name="certOwnerInfo">Інформація про сертифікат власника.</param>
        public static void ReadPrivateKey()
        {
            if (!IEUSignCP.IsInitialized())
            {
                throw new Exception(ERROR_NOT_INITIALIZED);
            }

            if (IEUSignCP.IsPrivateKeyReaded())
            {
                IEUSignCP.ResetPrivateKey();
                Certificates.Own.Clear();
            }

            IEUSignCP.EU_CERT_OWNER_INFO certOwnerInfo;

            int error = IEUSignCP.ReadPrivateKey(out certOwnerInfo);

            if (error != IEUSignCP.EU_ERROR_NONE)
            {
                throw new Exception(IEUSignCP.GetErrorDesc(error));
            }

            IEUSignCP.EU_CERT_INFO_EX certInfoEx;

            error = IEUSignCP.GetCertificateInfoEx(certOwnerInfo.issuer, certOwnerInfo.serial, out certInfoEx);
            if (error != IEUSignCP.EU_ERROR_NONE)
            {
                throw new Exception(IEUSignCP.GetErrorDesc(error));
            }

            Certificates.Own.CertInfoEx = certInfoEx;
        }
示例#3
0
        /// <summary>
        /// Отримання інформації про сертифікат отримувача за допомогою графічного інтерфейсу бібліотеки.
        /// </summary>
        public static void GetRecipientCertificate()
        {
            if (!IEUSignCP.IsInitialized())
            {
                throw new Exception(ERROR_NOT_INITIALIZED);
            }

            Certificates.Recipient.Clear();

            IEUSignCP.EU_CERT_OWNER_INFO certOwnerInfo;
            IEUSignCP.EU_CERT_INFO_EX    certInfoEx;

            int error = IEUSignCP.SelectCertInfo(out certOwnerInfo);

            if (error != IEUSignCP.EU_ERROR_NONE)
            {
                throw new Exception(IEUSignCP.GetErrorDesc(error));
            }

            error = IEUSignCP.GetCertificateInfoEx(certOwnerInfo.issuer, certOwnerInfo.serial, out certInfoEx);
            if (error != IEUSignCP.EU_ERROR_NONE)
            {
                throw new Exception(IEUSignCP.GetErrorDesc(error));
            }

            if (certInfoEx.keyUsageBits != 16)
            {
                throw new Exception("Обраний сертифікат отримувача не призначений для шифрування.\nОберіть інший сертифікат отримувача.");
            }

            Certificates.Recipient.CertInfoEx = certInfoEx;
        }