private string Obtener_Certificado(byte[] pCertificado)
        {
            Cert loCert = new Cert();
            Rsa  loRsa  = new Rsa();

            bool success = true;

            // Desbloquea componente
            success = loRsa.UnlockComponent("RSAT34MB34N_7F1CD986683M");
            if (success != true)
            {
                throw new ArgumentException("No se pudo debloquear componente Chilkat RSA");
            }

            success = loCert.LoadFromBinary(pCertificado);

            if (success != true)
            {
                throw new ArgumentException("No se pudo cargar el archivo certificado");
            }

            string strCertificado = loCert.GetEncoded();
            int    LongitudCer    = strCertificado.Length;

            strCertificado = strCertificado.Substring(1 - 1, LongitudCer - 2);

            return(strCertificado);
        }
        /// <summary>
        /// Obtiene la informacion del certificado
        /// </summary>
        /// <param name="rutaArvhivoCertificado"></param>
        /// <param name="xml"></param>
        private static void obtenerCertificado(string rutaArchivoCertificado, ref XDocument xml)
        {
            try
            {
                Cert certificado = new Cert();

                if (certificado.LoadFromFile(rutaArchivoCertificado) == false)
                {
                    return;
                }

                if (certificado.Expired == true)
                {
                    return;
                }

                string serie         = certificado.SerialNumber;
                string noCertificado = string.Empty;

                for (int i = 0; i < serie.Length; i++)
                {
                    if (i % 2 != 0)
                    {
                        noCertificado += serie.ElementAt(i);
                    }
                }

                serie = noCertificado;

                xml.Root.SetAttributeValue("NoCertificado", noCertificado);
                xml.Root.SetAttributeValue("Certificado", certificado.GetEncoded());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#3
0
        public CfdiResult AgregarCertificado(String rutaCert)
        {
            Cert cert = new Cert();

            if (!cert.LoadFromFile(rutaCert))
            {
                return new CfdiResult()
                       {
                           Mensaje = cert.LastErrorText, Correcto = false
                       }
            }
            ;

            if (cert.Expired)
            {
                return new CfdiResult()
                       {
                           Mensaje = "Certificado expirado", Correcto = false
                       }
            }
            ;

            String serie = cert.SerialNumber;

            String noCertificado = "";

            for (int i = 1; i < serie.Length; i += 2)
            {
                noCertificado += serie[i];
            }

            this.Certificado   = cert.GetEncoded().Replace(Environment.NewLine, "");
            this.NoCertificado = noCertificado;

            return(new CfdiResult());
        }