Example #1
0
        /// <summary>
        ///     Провекра наличия контейнера.
        /// </summary>
        /// <param name="keyContainerName">Название контейнера.</param>
        /// <returns>True - контейнер существует, иначе False.</returns>
        public static bool Exist(string keyContainerName)
        {
            var providerParams = gostProviderParams;

            using (var kk = new GostCrypt(providerParams))
            {
                return(kk.Exist(keyContainerName));
            }
        }
Example #2
0
        /// <summary>
        ///     Открыть существующий контейнер.
        /// </summary>
        /// <param name="keyContainerName">Название контейнера.</param>
        /// <param name="keycontainerPassword">Пароль ключевого контейнера.</param>
        /// <returns>
        ///     Экземпляр <see cref="GostCryptFacade" />.
        /// </returns>
        public static GostCryptFacade Open(string keyContainerName, string keycontainerPassword)
        {
            var providerParams = gostProviderParams;

            using (var kk = new GostCrypt(providerParams))
            {
                return(kk.Open(keyContainerName, keycontainerPassword));
            }
        }
Example #3
0
        /// <summary>
        ///     Создать <see cref="GostCryptFacade" />.
        /// </summary>
        /// <param name="keyContainerName">Название ключевого контейнера.</param>
        /// <param name="keyNumber">Тип ключа.</param>
        /// <returns>
        ///     Экземпляр <see cref="GostCryptFacade" />.
        /// </returns>
        public static GostCryptFacade Create(string keyContainerName, KeyNumber keyNumber)
        {
            var providerParams = gostProviderParams;

            using (var kk = new GostCrypt(providerParams))
            {
                return(kk.Create(keyContainerName, keyNumber));
            }
        }
Example #4
0
        /// <summary>
        ///     Получить сертификат для конкретного ключа
        /// </summary>
        /// <returns></returns>
        public static byte[] ExportCertificateData(string keyContainerName)
        {
            var providerParams = gostProviderParams;

            using (var kk = new GostCrypt(providerParams))
            {
                return(kk.ExportCertificateData(keyContainerName));
            }
        }
Example #5
0
        /// <summary>
        /// Возвращает открытый ключ сертификата
        /// </summary>
        /// <param name="certificateData">данные сертификата</param>
        /// <returns></returns>
        public static byte[] GetCertificatePublicKey(byte[] certificateData)
        {
            var providerParams = gostProviderParams;

            using (var kk = new GostCrypt(providerParams))
            {
                return(kk.GetCertificatePublicKey(certificateData));
            }
        }
Example #6
0
        /// <summary>
        ///     Проверка подписи.
        /// </summary>
        /// <param name="signature">Подпись.</param>
        /// <param name="data">Данные.</param>
        /// <param name="certificateData">Сертификат.</param>
        /// <returns>True - провека прошла успешно, иначе False.</returns>
        public static bool VerifyCertificate(byte[] signature, byte[] data, byte[] certificateData)
        {
            var providerParams = gostProviderParams;

            using (var kk = new GostCrypt(providerParams))
            {
                return(kk.VerifyCertificate(signature, data, certificateData));
            }
        }
Example #7
0
        private static readonly GostProviderParams gostProviderParams = ProviderHelper.ParamsForSignAlgoOid("1.2.643.2.2.3"); //new InfotecsProviderParams();

        /// <summary>
        ///     Подсчет хэша.
        /// </summary>
        /// <param name="data">Данные.</param>
        /// <returns>Хэш.</returns>
        public static byte[] ComputeHash(byte[] data)
        {
            var providerParams = gostProviderParams;

            using (var kk = new GostCrypt(providerParams))
            {
                return(kk.ComputeHash(data));
            }
        }
Example #8
0
        /// <summary>
        ///     Проверка подписи.
        /// </summary>
        /// <param name="signature">Подпись.</param>
        /// <param name="data">Данные.</param>
        /// <param name="publicKey">Открытый ключ.</param>
        /// <returns>True - провека прошла успешно, иначе False.</returns>
        public static bool VerifySignature(byte[] signature, byte[] data, byte[] publicKey)
        {
            var providerParams = gostProviderParams;

            using (var kk = new GostCrypt(providerParams))
            {
                return(kk.VerifySignature(signature, data, publicKey));
            }
        }
Example #9
0
        /// <summary>
        ///     Удаление ключевого контейнера.
        /// </summary>
        /// <param name="keyContainerName">Название контейнера.</param>
        public static void Remove(string keyContainerName)
        {
            var providerParams = gostProviderParams;

            using (var kk = new GostCrypt(providerParams))
            {
                kk.Remove(keyContainerName);
            }
        }
Example #10
0
        public static void Get(Signature signature, Action <IGostCrypt> procedure)
        {
            var oid = signatureOids[signature];

            if (!ProviderHelper.IsCompatible(oid))
            {
                throw new ArgumentException();
            }
            using (var prm = ProviderHelper.ParamsForSignAlgoOid(oid))
            {
                using (var gostCrypt = new GostCrypt(prm))
                {
                    procedure(gostCrypt);
                }
            }
        }