public AsymmetricAlgorithm Recreate(IPrivateCryptoKey privateKey) { this.cryptoServiceProvider = new RSACryptoServiceProvider { PersistKeyInCsp = false }; this.cryptoServiceProvider.FromXmlString(privateKey.Contents); return this.cryptoServiceProvider; }
public AsymmetricAlgorithm Recreate(IPrivateCryptoKey privateKey) { this.cryptoServiceProvider = new RSACryptoServiceProvider { PersistKeyInCsp = false }; this.cryptoServiceProvider.FromXmlString(privateKey.Contents); return(this.cryptoServiceProvider); }
public AsymmetricAlgorithm Recreate(IPrivateCryptoKey privateKey) { CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), @"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"); this.cryptoServiceProvider = new RSACryptoServiceProvider { PersistKeyInCsp = false }; this.cryptoServiceProvider.FromXmlString(privateKey.Contents); return(this.cryptoServiceProvider); }
public IServerLicense Generate(IPrivateCryptoKey privateKey, LicenseCriteria licenseCriteria, string elementKey = null) { var licenseDocument = this.CreateLicenseDocument(licenseCriteria); if (!string.IsNullOrEmpty(elementKey)) { var hashSha256 = new SHA256CryptoServiceProvider(); var keyArray = hashSha256.ComputeHash(Encoding.UTF8.GetBytes(elementKey)); //Always release the resources and flush data // of the Cryptographic service provide. Best Practice hashSha256.Clear(); // Create a new TripleDES key. var rijndaelkey = Rijndael.Create(); rijndaelkey.Key = keyArray; try { foreach (var metaData in licenseCriteria.MetaData) { // Encrypt the metadata element. Encrypt(licenseDocument, metaData.Key, rijndaelkey); } // Display the encrypted XML to the console. //Console.WriteLine("Encrypted XML:"); //Console.WriteLine(); //Console.WriteLine(licenseDocument.OuterXml); } catch (Exception e) { Console.WriteLine(e.Message); } finally { // Clear the TripleDES key. rijndaelkey.Clear(); } } var signature = LicenseSignatureGenerator.GenerateSignature(licenseDocument, privateKey); licenseDocument.FirstChild.AppendChild(licenseDocument.ImportNode(signature, true)); return(new ServerLicense { Content = licenseDocument, Criteria = licenseCriteria, PrivateKey = privateKey, PublicKey = privateKey.ExtractPublicKey() }); }
public IServerLicense Generate(IPrivateCryptoKey privateKey, LicenseCriteria licenseCriteria) { var licenseDocument = this.CreateLicenseDocument(licenseCriteria); var signature = LicenseSignatureGenerator.GenerateSignature(licenseDocument, privateKey); licenseDocument.FirstChild.AppendChild(licenseDocument.ImportNode(signature, true)); return new ServerLicense { Content = licenseDocument, Criteria = licenseCriteria, PrivateKey = privateKey, PublicKey = privateKey.ExtractPublicKey() }; }
public static XmlElement GenerateSignature(XmlDocument licenseDocument, IPrivateCryptoKey privateKey) { using (var privateKeyProvider = new RsaPrivateKeyProvider()) { var reference = new Reference { Uri = string.Empty }; reference.AddTransform(new XmlDsigEnvelopedSignatureTransform()); var signedXml = new SignedXml(licenseDocument) { SigningKey = privateKeyProvider.Recreate(privateKey) }; signedXml.AddReference(reference); signedXml.ComputeSignature(); return signedXml.GetXml(); } }
public IServerLicense Generate(IPrivateCryptoKey privateKey, LicenseCriteria licenseCriteria) { var licenseDocument = this.CreateLicenseDocument(licenseCriteria); var signature = LicenseSignatureGenerator.GenerateSignature(licenseDocument, privateKey); licenseDocument.FirstChild.AppendChild(licenseDocument.ImportNode(signature, true)); return(new ServerLicense { Content = licenseDocument, Criteria = licenseCriteria, PrivateKey = privateKey, PublicKey = privateKey.ExtractPublicKey() }); }
public static XmlElement GenerateSignature(XmlDocument licenseDocument, IPrivateCryptoKey privateKey) { using (var privateKeyProvider = new RsaPrivateKeyProvider()) { var reference = new Reference { Uri = string.Empty }; reference.AddTransform(new XmlDsigEnvelopedSignatureTransform()); var signedXml = new SignedXml(licenseDocument) { SigningKey = privateKeyProvider.Recreate(privateKey) }; signedXml.AddReference(reference); signedXml.ComputeSignature(); return(signedXml.GetXml()); } }
public static XmlElement GenerateSignature(XmlDocument licenseDocument, IPrivateCryptoKey privateKey) { using (var privateKeyProvider = new RsaPrivateKeyProvider()) { var reference = new Reference { Uri = string.Empty }; reference.AddTransform(new XmlDsigEnvelopedSignatureTransform()); reference.AddTransform(new XmlDsigExcC14NTransform()); reference.DigestMethod = "http://www.w3.org/2001/04/xmlenc#sha256"; var signedXml = new SignedXml(licenseDocument) { SigningKey = privateKeyProvider.Recreate(privateKey) }; signedXml.SignedInfo.SignatureMethod = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"; signedXml.AddReference(reference); signedXml.ComputeSignature(); return(signedXml.GetXml()); } }