using System;
using System.Xml;
using System.Text;
using System.IO;
using System.Security.Cryptography;
namespace AnticipatingMinds.PlatformServices.Licensing{
/// <summary>
/// Summary description for AnticipatingMindsLicenseManager.
/// </summary>
public class AnticipatingMindsLicenseManager : LicenseManager
{
public AnticipatingMindsLicenseManager():base("ProductLicensing")
{
}
protected override void SignLicense(XmlElement licenseElement,string RSAKeyName)
{
CspParameters cp = new CspParameters();
cp.Flags = CspProviderFlags.UseMachineKeyStore;
cp.KeyContainerName = RSAKeyName;
RSACryptoServiceProvider rsaCSP = new RSACryptoServiceProvider(cp);
byte[] data = UnicodeEncoding.Unicode.GetBytes(licenseElement.InnerXml);
byte[] signature = rsaCSP.SignData(data,"MD5");
licenseElement.SetAttribute("RSAKeyName",RSAKeyName);
licenseElement.SetAttribute("Signature",System.Convert.ToBase64String(signature));
}
}
}
|