/// <summary> /// Signs the XML document. /// </summary> /// <param name="doc">The document.</param> /// <param name="cert">The cert.</param> /// <param name="xmlPrivateKey">The XML private key.</param> /// <returns></returns> private XmlElement SignXmlDocument(XmlDocument doc, X509Certificate2 cert, string xmlPrivateKey) { var key = new RSACryptoServiceProvider(new CspParameters(24)); key.PersistKeyInCsp = false; //Full Framework Only //key.FromXmlString(xmlPrivateKey); //.Net Standard Extension RSAKeyExtensions.FromXmlString(key, xmlPrivateKey); SignedXml signedXml = new SignedXml(doc); signedXml.SigningKey = key; signedXml.SignedInfo.SignatureMethod = key.SignatureAlgorithm;// "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"; signedXml.SignedInfo.CanonicalizationMethod = SignedXml.XmlDsigExcC14NTransformUrl; Reference reference = new Reference(); reference.Uri = ""; reference.DigestMethod = "http://www.w3.org/2001/04/xmlenc#sha256"; reference.AddTransform(new XmlDsigEnvelopedSignatureTransform()); reference.AddTransform(new XmlDsigExcC14NTransform()); signedXml.AddReference(reference); KeyInfo keyInfo = new KeyInfo(); keyInfo.AddClause(new KeyInfoX509Data(cert)); signedXml.KeyInfo = keyInfo; signedXml.ComputeSignature(); XmlElement signature = signedXml.GetXml(); return(signature); }
/// <summary> /// Signs the XML document. /// </summary> /// <param name="doc">The document.</param> /// <param name="cert">The cert.</param> /// <returns></returns> private XmlElement SignXmlDocument(XmlDocument doc, X509Certificate2 cert) { //Full Framework Only //var xmlPrivateKey = cert.PrivateKey.ToXmlString(true); //.Net Standard Extension var xmlPrivateKey = RSAKeyExtensions.ToXmlString((RSA)cert.PrivateKey, true); return(SignXmlDocument(doc, cert, xmlPrivateKey)); }
/// <summary> /// Gets the signed authentication request. /// </summary> /// <param name="cert">The cert.</param> /// <returns></returns> public string GetSignedAuthRequest(X509Certificate2 cert) { var xmlPrivateKey = ""; #if NETFULL xmlPrivateKey = cert.PrivateKey.ToXmlString(true); #else xmlPrivateKey = RSAKeyExtensions.ToXmlString((RSA)cert.PrivateKey, true); #endif return(GetSignedAuthRequest(cert, xmlPrivateKey)); }
/// <summary> /// Signs the XML document. /// </summary> /// <param name="doc">The document.</param> /// <param name="cert">The cert.</param> /// <returns></returns> public static XmlElement SignXmlDocument(XmlDocument doc, X509Certificate2 cert) { string xmlPrivateKey = ""; //Full Framework Only #if NETFULL xmlPrivateKey = cert.PrivateKey.ToXmlString(true); #else //.Net Standard Extension xmlPrivateKey = RSAKeyExtensions.ToXmlString((RSA)cert.PrivateKey, true); #endif return(SignXmlDocument(doc, cert, xmlPrivateKey)); }
/// <summary> /// Gets the signed authentication request. /// </summary> /// <param name="cert">The cert.</param> /// <returns></returns> public string GetSignedAuthRequest(X509Certificate2 cert) { var xmlPrivateKey = ""; //Full Framework Only //var xmlPrivateKey = cert.PrivateKey.ToXmlString(true); //.Net Standard Extension //var xmlPrivateKey = RSAKeyExtensions.ToXmlString((RSA)cert.PrivateKey, true); #if NETFULL xmlPrivateKey = cert.PrivateKey.ToXmlString(true); #endif #if NETSTANDARD1_0 xmlPrivateKey = RSAKeyExtensions.ToXmlString((RSA)cert.PrivateKey, true); #endif return(GetSignedAuthRequest(cert, xmlPrivateKey)); }