コード例 #1
0
        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;
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: radtek/safeid
        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));
        }