示例#1
0
        /// <summary>Constructor</summary>
        /// <param name="eaa">EnumDigitalSignAlgorithm</param>
        public DigitalSignParam(EnumDigitalSignAlgorithm eaa)
        {
            AsymmetricAlgorithm aa = null;
            HashAlgorithm       ha = null;

            RsaAndDsaCmnFunc.CreateDigitalSignServiceProvider(eaa, out aa, out ha);

            this.AsymmetricAlgorithm = aa;
            this.HashAlgorithm       = ha;
        }
示例#2
0
        /// <summary>Constructor</summary>
        /// <param name="eaa">EnumDigitalSignAlgorithm</param>
        public DigitalSignXML(EnumDigitalSignAlgorithm eaa)
        {
            AsymmetricAlgorithm aa = null;
            HashAlgorithm       ha = null;

            RsaAndDsaCmnFunc.CreateDigitalSignServiceProvider(eaa, out aa, out ha);

            this.AsymmetricAlgorithm = aa;
            this.HashAlgorithm       = ha;

            // 秘密鍵をXML形式で取得
            this.XMLPrivateKey = this.AsymmetricAlgorithm.ToXmlString(true);
            // 公開鍵をXML形式で取得
            this.XMLPublicKey = this.AsymmetricAlgorithm.ToXmlString(false);
        }
示例#3
0
        /// <summary>Constructor</summary>
        /// <param name="eaa">EnumDigitalSignAlgorithm</param>
        /// <param name="xmlKey">string</param>
        public DigitalSignXML(EnumDigitalSignAlgorithm eaa, string xmlKey)
        {
            AsymmetricAlgorithm aa = null;
            HashAlgorithm       ha = null;

            RsaAndDsaCmnFunc.CreateDigitalSignServiceProvider(eaa, out aa, out ha);

            if (aa is RSACryptoServiceProvider)
            {
                RSACryptoServiceProvider rsaCryptoServiceProvider = (RSACryptoServiceProvider)aa;
                rsaCryptoServiceProvider.FromXmlString(xmlKey);
                this.AsymmetricAlgorithm = rsaCryptoServiceProvider;
            }
            else if (aa is DSACryptoServiceProvider)
            {
                DSACryptoServiceProvider dsaCryptoServiceProvider = (DSACryptoServiceProvider)aa;
                dsaCryptoServiceProvider.FromXmlString(xmlKey);
                this.AsymmetricAlgorithm = dsaCryptoServiceProvider;
            }

            this.HashAlgorithm = ha;

            // 秘密鍵をXML形式で取得
            try
            {
                this.XMLPrivateKey = this.AsymmetricAlgorithm.ToXmlString(true);
            }
            catch (CryptographicException cex)
            {
                cex.GetType();
                // 潰す(xmlKeyが公開鍵のケース)
            }

            // 公開鍵をXML形式で取得
            this.XMLPublicKey = this.AsymmetricAlgorithm.ToXmlString(false);
        }