public static AsymmetricAlgorithm GetPrivateKeyAlgorithm(this X509Certificate2 certificate)
        {
            if (certificate == null)
            {
                throw ExceptionUtility.ArgumentNull("certificate");
            }

            var cspParameters = GetPrivateKeyInfo(certificate);
            var privateKey    = new Gost3410AsymmetricAlgorithm(cspParameters);

            return(privateKey);
        }
        public static AsymmetricAlgorithm GetPrivateKeyAlgorithm(this X509Certificate2 certificate)
        {
            if (certificate == null)
            {
                throw ExceptionUtility.ArgumentNull("certificate");
            }

            var cspParameters = GetPrivateKeyInfo(certificate);
            var privateKey = new Gost3410AsymmetricAlgorithm(cspParameters);

            return privateKey;
        }
        public static AsymmetricAlgorithm GetPublicKeyAlgorithm(this X509Certificate2 certificate)
        {
            if (certificate == null)
            {
                throw ExceptionUtility.ArgumentNull("certificate");
            }

            var cspObject = new Asn1.Common.GostKeyExchangeParameters();

            cspObject.DecodeParameters(certificate.PublicKey.EncodedParameters.RawData);
            cspObject.DecodePublicKey(certificate.PublicKey.EncodedKeyValue.RawData);

            var cspBlobData = CryptoApiHelper.EncodePublicBlob(cspObject);

            var publicKey = new Gost3410AsymmetricAlgorithm();

            publicKey.ImportCspBlob(cspBlobData);

            return(publicKey);
        }
        public void SetUp()
        {
            // Получатель извлекает информацию о закрытом ключе из контейнера ключей
            var keyContainer = TestCertificates.GetKeyContainer();

            // Получатель формирует закрытый ключ для дешифрации XML
            var privateKey = new Gost3410AsymmetricAlgorithm(keyContainer);

            // Получатель экспортирует отправителю информацию о своем открытом ключе
            var publicKeyInfo = privateKey.ExportParameters(false);

            // Отправитель импортирует от получателя информацию о его открытом ключе
            var publicKey = new Gost3410AsymmetricAlgorithm();

            // Отправитель формирует открытый ключ для шифрации XML
            publicKey.ImportParameters(publicKeyInfo);

            _privateKey = privateKey;
            _publicKey = publicKey;
        }
示例#5
0
 public GostKeyValue()
 {
     Key = new Gost3410AsymmetricAlgorithm();
 }
        public void TearDown()
        {
            try
            {
                _privateKey.Dispose();
            }
            finally
            {
                _privateKey = null;
            }

            try
            {
                _publicKey.Dispose();
            }
            finally
            {
                _publicKey = null;
            }
        }
        public static AsymmetricAlgorithm GetPublicKeyAlgorithm(this X509Certificate2 certificate)
        {
            if (certificate == null)
            {
                throw ExceptionUtility.ArgumentNull("certificate");
            }

            var cspObject = new GostKeyExchangeParameters();
            cspObject.DecodeParameters(certificate.PublicKey.EncodedParameters.RawData);
            cspObject.DecodePublicKey(certificate.PublicKey.EncodedKeyValue.RawData);

            var cspBlobData = CryptoApiHelper.EncodePublicBlob(cspObject);

            var publicKey = new Gost3410AsymmetricAlgorithm();
            publicKey.ImportCspBlob(cspBlobData);

            return publicKey;
        }
 public GostKeyValue()
 {
     Key = new Gost3410AsymmetricAlgorithm();
 }