/// <summary>Constructor</summary> /// <param name="xmlKey">string</param> /// <param name="eaa">EnumDigitalSignAlgorithm</param> public DigitalSignXML(string xmlKey, EnumDigitalSignAlgorithm eaa) { AsymmetricAlgorithm aa = null; HashAlgorithm ha = null; AsymmetricAlgorithmCmnFunc.CreateDigitalSignSP(eaa, out aa, out ha); this.AsymmetricAlgorithm = aa; this.HashAlgorithm = ha; if (aa is RSA) { RSA rsa = (RSA)aa; rsa.FromXmlString(xmlKey); this.AsymmetricAlgorithm = rsa; } else if (aa is DSA) { DSA dsa = (DSA)aa; dsa.FromXmlString(xmlKey); this.AsymmetricAlgorithm = dsa; } else { throw new NotImplementedException(PublicExceptionMessage.NOT_IMPLEMENTED); } }
/// <summary>Constructor</summary> /// <param name="eaa">EnumDigitalSignAlgorithm</param> public DigitalSignXML(EnumDigitalSignAlgorithm eaa) { AsymmetricAlgorithm aa = null; HashAlgorithm ha = null; AsymmetricAlgorithmCmnFunc.CreateDigitalSignSP(eaa, out aa, out ha); this.AsymmetricAlgorithm = aa; this.HashAlgorithm = ha; }
/// <summary>Constructor</summary> /// <param name="eaa">EnumDigitalSignAlgorithm</param> /// <param name="hashAlgorithm">HashAlgorithm</param> public DigitalSignECDsaOpenSsl(EnumDigitalSignAlgorithm eaa, HashAlgorithm hashAlgorithm) { AsymmetricAlgorithm aa = null; HashAlgorithm ha = null; AsymmetricAlgorithmCmnFunc.CreateDigitalSignSP(eaa, out aa, out ha); ECDsaOpenSsl ecdsa = (ECDsaOpenSsl)aa; this._privateKey = ecdsa.ExportParameters(true); this._publicKey = ecdsa.ExportParameters(false); this.AsymmetricAlgorithm = aa; this.HashAlgorithm = hashAlgorithm; }
/// <summary>Constructor</summary> /// <param name="eaa">EnumDigitalSignAlgorithm</param> public DigitalSignECDsaCng(EnumDigitalSignAlgorithm eaa) { AsymmetricAlgorithm aa = null; HashAlgorithm ha = null; AsymmetricAlgorithmCmnFunc.CreateDigitalSignSP(eaa, out aa, out ha); ECDsaCng ecdsa = (ECDsaCng)aa; this._privateKey = ecdsa.Key; this._publicKey = this._privateKey.Export(CngKeyBlobFormat.EccPublicBlob); this.AsymmetricAlgorithm = aa; this.HashAlgorithm = ha; }
/// <summary>Constructor</summary> /// <param name="dsaParameters">DSAParameters</param> /// <param name="eaa">EnumDigitalSignAlgorithm</param> public DigitalSignParam(DSAParameters dsaParameters, EnumDigitalSignAlgorithm eaa) { AsymmetricAlgorithm aa = null; HashAlgorithm ha = null; AsymmetricAlgorithmCmnFunc.CreateDigitalSignSP(eaa, out aa, out ha); if (aa is DSA) { ((DSA)aa).ImportParameters(dsaParameters); } else { throw new ArgumentException("unmatched"); } this.AsymmetricAlgorithm = aa; this.HashAlgorithm = ha; }
/// <summary>Constructor</summary> /// <param name="rsaParameters">RSAParameters</param> /// <param name="eaa">EnumDigitalSignAlgorithm</param> public DigitalSignParam(RSAParameters rsaParameters, EnumDigitalSignAlgorithm eaa) { AsymmetricAlgorithm aa = null; HashAlgorithm ha = null; AsymmetricAlgorithmCmnFunc.CreateDigitalSignSP(eaa, out aa, out ha); if (aa is RSA) { RSAParameters temp = new RSAParameters() { // Public Modulus = rsaParameters.Modulus, Exponent = rsaParameters.Exponent, }; if (rsaParameters.D != null && rsaParameters.D.Length != 0) { // Private temp.D = rsaParameters.D; temp.P = rsaParameters.P; temp.Q = rsaParameters.Q; temp.DP = rsaParameters.DP; temp.DQ = rsaParameters.DQ; temp.InverseQ = rsaParameters.InverseQ; } ((RSA)aa).ImportParameters(temp); } else { throw new ArgumentException("unmatched"); } this.AsymmetricAlgorithm = aa; this.HashAlgorithm = ha; }