/// <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)); } }
/// <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; }
/// <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; }