private void BuildCert() { System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(typeof(ServerKey2)); FileInfo p12File = new FileInfo(Path.Combine(Path.GetDirectoryName(asm.Location), "server" + DateTime.Now.ToString("yyyyMMddHHmss") + ".pfx")); try { CertificateAuthority.subjectAltName alt = new CertificateAuthority.subjectAltName(); if ((this.ServerInstallationKey == null)) { this.NewInstallationKey(); } alt.Uri.Add(ServerInstallationKey); ca = new CertificateAuthority("123456", "w0):X,\\Q4^NoIO,):Z!."); ca.LoadOrCreateCA(p12File.FullName, this.hostname, alt); Byte[] certData = File.ReadAllBytes(p12File.FullName); this.ServerCert = CATools.GetX509CertFromPKCS12(certData, "w0):X,\\Q4^NoIO,):Z!."); this.ServerCertString = CATools.X509ToBase64(this.ServerCert); this.ServerPKCS12String = Convert.ToBase64String(certData); this.ServerPKCS12Cert = CATools.LoadCert(certData, "w0):X,\\Q4^NoIO,):Z!."); } finally { try { File.Delete(p12File.FullName); File.Delete(p12File.FullName.Replace(p12File.Extension, ".cer")); } catch { } p12File = null; asm = null; } }
static void Main(string[] args) { CertificateAuthority ca = new CertificateAuthority("123456", "RQ`EI'F9f+{;9}7![ooa"); ca.LoadOrCreateCA("license-cert.pfx", "SafeID IAM License Server"); Uri installKey = null; try { installKey = new Uri(args[0]); } catch { Console.WriteLine("Erro ao realizar o tratamento da chave de instalação"); Use(); } uint qty = 0; try { qty = uint.Parse(args[1]); } catch { Console.WriteLine("Erro ao realizar o tratamento da chave de instalação"); Use(); } DateTime?date = null; Boolean temp = false; if (args.Length > 2) { try { date = DateTime.Parse(args[2]); temp = true; } catch { Console.WriteLine("Erro ao realizar o tratamento da chave de instalação"); Use(); } } X509Certificate key = IAMKey.GenerateLicense(ca, installKey, true, qty, temp, date); String sKey = CATools.X509ToBase64(key); try { IAMKeyData k = IAMKey.ExtractFromCert(sKey); Console.WriteLine("Licen\x00e7a gerada com sucesso"); } catch (Exception ex) { Console.WriteLine("Falha na checagem de consistência: " + ex.Message); return; } using (FileStream stream = System.IO.File.Open(DateTime.Now.ToString("yyyyMMddHHmmss") + ".cer", FileMode.Create)) using (BinaryWriter writer = new BinaryWriter(stream)) writer.Write(Convert.FromBase64String(sKey)); using (FileStream stream = System.IO.File.Open(DateTime.Now.ToString("yyyyMMddHHmmss") + ".cer.txt", FileMode.Create)) using (BinaryWriter writer = new BinaryWriter(stream)) writer.Write(Encoding.UTF8.GetBytes(sKey)); }