예제 #1
0
 protected CertificadoDigital ObtengaUnCertificadoExtranjeroDeFirma()
 {
     elTipoDeCertificado    = TipoDeCertificado.Firma;
     elTipoDeIdentificacion = TipoDeIdentificacion.Dimex;
     InicialiceUnaPersona();
     return(ObtengaElCertificado());
 }
예제 #2
0
 protected CertificadoDigital ObtengaUnCertificadoNacionalDeFirma()
 {
     elTipoDeCertificado    = TipoDeCertificado.Firma;
     elTipoDeIdentificacion = TipoDeIdentificacion.Cedula;
     InicialiceUnaPersona();
     return(ObtengaElCertificado());
 }
        public static string GenereElSujeto(string laIdentificacion,
                                            TipoDeIdentificacion elTipoDeIdentificacion,
                                            string elNombre,
                                            string elPrimerApellido,
                                            string elSegundoApellido,
                                            TipoDeCertificado elTipoDeCertificado)
        {
            string elNombreEnMayuscula = elNombre.ToUpper();

            string losApellidos             = $"{elPrimerApellido} {elSegundoApellido}";
            string losApellidosEnMayusculas = losApellidos.ToUpper();
            string losApellidosFormateados;

            losApellidosFormateados = losApellidosEnMayusculas.TrimEnd();

            string elProposito;

            if (elTipoDeCertificado == TipoDeCertificado.Autenticacion)
            {
                elProposito = "AUTENTICACION";
            }
            else
            {
                elProposito = "FIRMA";
            }

            string elCN;

            elCN = $"CN={elNombreEnMayuscula} {losApellidosFormateados} ({elProposito})";

            string elOU;

            if (elTipoDeIdentificacion == TipoDeIdentificacion.Cedula)
            {
                elOU = "OU=CIUDADANO";
            }
            else
            {
                elOU = "OU=EXTRANJERO";
            }

            string elO         = "O=PERSONA FISICA";
            string elC         = "C=CR";
            string elGivenName = $"GivenName={elNombreEnMayuscula}";
            string elSurName   = $"Surname={losApellidosFormateados}";

            string elSerialNumber;

            if (elTipoDeIdentificacion == TipoDeIdentificacion.Cedula)
            {
                elSerialNumber = $"SERIALNUMBER=CPF-{laIdentificacion}";
            }
            else
            {
                elSerialNumber = $"SERIALNUMBER=NUP-{laIdentificacion}";
            }

            return($"{elCN}, {elOU}, {elO}, {elC}, {elGivenName}, {elSurName}, {elSerialNumber}");
        }
        private static CertificadoDigital ObtengaElCertificadoDeAutenticacion(TipoDeIdentificacion elTipoDeIdentificacion, string laIdentificacion, string elNombre, string elPrimerApellido, string elSegundoApellido, string laDireccionDeRevocacion, int losAñosDeVigencia, DateTime laFechaActual)
        {
            DatosParaUnCertificadoDigital losDatos;

            losDatos = GenereLaInformacionDeAutenticacion(elTipoDeIdentificacion, laIdentificacion, elNombre, elPrimerApellido, elSegundoApellido, laDireccionDeRevocacion, losAñosDeVigencia, laFechaActual);

            return(new CertificadoDigital(losDatos));
        }
예제 #5
0
 public static Emision GenereLaEmision(TipoDeIdentificacion elTipoDeIdentificacion,
                                       string laIdentificacion,
                                       string elNombre,
                                       string elPrimerApellido,
                                       string elSegundoApellido)
 {
     return(new EmisionConDependencias(elTipoDeIdentificacion, laIdentificacion, elNombre, elPrimerApellido, elSegundoApellido).ComoObjeto());
 }
 private static string GenereElSujeto(string elNombre,
                                      string elPrimerApellido,
                                      string elSegundoApellido,
                                      string laIdentificacion,
                                      TipoDeIdentificacion elTipoDeIdentificacion,
                                      TipoDeCertificado elTipoDeCertificado)
 {
     return(new Sujeto(elNombre, elPrimerApellido, elSegundoApellido, laIdentificacion, elTipoDeIdentificacion, elTipoDeCertificado).ComoTexto());
 }
        private static Emision ObtengaLaEmision(TipoDeIdentificacion elTipoDeIdentificacion, string laIdentificacion, string elNombre, string elPrimerApellido, string elSegundoApellido, string laDireccionDeRevocacion, int losAñosDeVigencia, DateTime laFechaActual)
        {
            Emision laEmision = new Emision();

            laEmision.FechaDeGeneracion          = laFechaActual;
            laEmision.CertificadoDeAutenticacion = ObtengaElCertificadoDeAutenticacion(elTipoDeIdentificacion, laIdentificacion, elNombre, elPrimerApellido, elSegundoApellido, laDireccionDeRevocacion, losAñosDeVigencia, laFechaActual);
            laEmision.CertificadoDeFirma         = ObtengaElCertificadoDeFirma(elTipoDeIdentificacion, laIdentificacion, elNombre, elPrimerApellido, elSegundoApellido, laDireccionDeRevocacion, losAñosDeVigencia, laFechaActual);

            return(laEmision);
        }
예제 #8
0
 public SujetoFormateado(string laIdentificacion, TipoDeIdentificacion elTipoDeIdentificacion, TipoDeCertificado elTipoDeCertificado, string elNombreEnMayuscula, string losApellidosFormateados)
 {
     elCN           = ObtengaElCN(elTipoDeCertificado, elNombreEnMayuscula, losApellidosFormateados);
     elOU           = ObtengaElOU(elTipoDeIdentificacion);
     elO            = ObtengaElO();
     elC            = ObtengaElC();
     elGivenName    = ObtengaElGivenName(elNombreEnMayuscula);
     elSurName      = ObtengaElSurname(losApellidosFormateados);
     elSerialNumber = ObtengaElSerialNumber(laIdentificacion, elTipoDeIdentificacion);
 }
 public ActionResult Edit([Bind(Include = "Id,Descripcion,Indice")] TipoDeIdentificacion tipoDeIdentificacion)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tipoDeIdentificacion).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(tipoDeIdentificacion));
 }
        public ActionResult RealDeleteConfirmed(string id)
        {
            TipoDeIdentificacion tipoDeIdentificacion = db.TIPO_IDENTIFICACION.Find(id);

            db.TIPO_IDENTIFICACION.Remove(tipoDeIdentificacion);
            db.SaveChanges();
            TempData["Type"]    = "error";
            TempData["Message"] = "El registro se eliminó correctamente";
            return(RedirectToAction("Index"));
        }
예제 #11
0
        public static CertificadoDigital GenereUnCertificadoDigital(string elNombre,
                                                                    string elPrimerApellido,
                                                                    string elSegundoApellido,
                                                                    string laIdentificacion,
                                                                    TipoDeIdentificacion elTipoDeIdentificacion,
                                                                    TipoDeCertificado elTipoDeCertificado,
                                                                    DateTime laFechaActual,
                                                                    string laDireccionDeRevocacion,
                                                                    int losAñosDeVigencia)
        {
            CertificadoDigital elCertificado = new CertificadoDigital();

            // Genere el sujeto
            InformacionFormateada laInformacion;

            // si el proposito es de autenticacion

            if (elTipoDeCertificado == TipoDeCertificado.Autenticacion)
            {
                // Si es nacional
                if (elTipoDeIdentificacion == TipoDeIdentificacion.Cedula)
                {
                    laInformacion = new InformacionNacionalDeAutenticacion();
                }
                else
                {
                    laInformacion = new InformacionExtranjeraDeAutenticacion();
                }
            }
            else
            {
                // Si es nacional
                if (elTipoDeIdentificacion == TipoDeIdentificacion.Cedula)
                {
                    laInformacion = new InformacionNacionalDeFirma();
                }
                else
                {
                    laInformacion = new InformacionExtranjeraDeFirma();
                }
            }

            laInformacion.Nombre          = elNombre;
            laInformacion.PrimerApellido  = elPrimerApellido;
            laInformacion.SegundoApellido = elSegundoApellido;
            laInformacion.Identificacion  = laIdentificacion;
            elCertificado.Sujeto          = new SujetoFormateado(laInformacion).ComoTexto();

            elCertificado.FechaDeEmision = laFechaActual;
            // se genera de acuerdo a la vigencia
            elCertificado.FechaDeVencimiento    = laFechaActual.AddYears(losAñosDeVigencia);
            elCertificado.DireccionDeRevocacion = laDireccionDeRevocacion;

            return(elCertificado);
        }
 private static InformacionFormateada ObtengaLaInformacionFormateada(TipoDeIdentificacion elTipoDeIdentificacion, TipoDeCertificado elTipoDeCertificado)
 {
     if (ElPropositoEsDeAutenticacion(elTipoDeCertificado))
     {
         return(ObtengaLaInformacionDeAutenticacion(elTipoDeIdentificacion));
     }
     else
     {
         return(ObtengaLaInformacionDeFirma(elTipoDeIdentificacion));
     }
 }
 private static InformacionFormateada ObtengaLaInformacionDeAutenticacion(TipoDeIdentificacion elTipoDeIdentificacion)
 {
     if (EsNacional(elTipoDeIdentificacion))
     {
         return(new InformacionNacionalDeAutenticacion());
     }
     else
     {
         return(new InformacionExtranjeraDeAutenticacion());
     }
 }
 private static DatosParaUnCertificadoDigital DetermineInformacionDeFirma(TipoDeIdentificacion elTipoDeIdentificacion)
 {
     if (EsNacional(elTipoDeIdentificacion))
     {
         return(new DatosParaUnCertificadoDigitalNacionalDeFirma());
     }
     else
     {
         return(new DatosParaUnCertificadoDigitalExtranjeroDeFirma());
     }
 }
예제 #15
0
 private static string ObtengaElOU(TipoDeIdentificacion elTipoDeIdentificacion)
 {
     if (EsNacional(elTipoDeIdentificacion))
     {
         return(ObtengaElOUNacional());
     }
     else
     {
         return(ObtengaElOUExtranjero());
     }
 }
        private static string GenereElSujeto(string elNombre,
                                             string elPrimerApellido,
                                             string elSegundoApellido,
                                             string laIdentificacion,
                                             TipoDeIdentificacion elTipoDeIdentificacion,
                                             TipoDeCertificado elTipoDeCertificado)
        {
            InformacionFormateada laInformacion = ObtengaLaInformacionFormateada(elNombre, elPrimerApellido, elSegundoApellido, laIdentificacion, elTipoDeIdentificacion, elTipoDeCertificado);

            return(GenereElSujetoFormateado(laInformacion));
        }
예제 #17
0
 private static string ObtengaElSerialNumber(string laIdentificacion, TipoDeIdentificacion elTipoDeIdentificacion)
 {
     if (EsNacional(elTipoDeIdentificacion))
     {
         return(ObtengaElSerialNumberNacional(laIdentificacion));
     }
     else
     {
         return(ObtengaElSerialNumberExtranjero(laIdentificacion));
     }
 }
예제 #18
0
        public CertificadoDeAutenticacion(TipoDeIdentificacion elTipoDeIdentificacion, string laIdentificacion, string elNombre, string elPrimerApellido, string elSegundoApellido, string laDireccionDeRevocacion, int losAñosDeVigencia, DateTime laFechaActual)
        {
            laInformacionDeAutenticacion = DetermineInformacionDeAutenticacion(elTipoDeIdentificacion);

            laInformacionDeAutenticacion.Nombre                = elNombre;
            laInformacionDeAutenticacion.Identificacion        = laIdentificacion;
            laInformacionDeAutenticacion.PrimerApellido        = elPrimerApellido;
            laInformacionDeAutenticacion.SegundoApellido       = elSegundoApellido;
            laInformacionDeAutenticacion.FechaActual           = laFechaActual;
            laInformacionDeAutenticacion.DireccionDeRevocacion = laDireccionDeRevocacion;
            laInformacionDeAutenticacion.AñosDeVigencia        = losAñosDeVigencia;
        }
예제 #19
0
        private static string ObtengaElSujetoFormateado(string laIdentificacion, TipoDeIdentificacion elTipoDeIdentificacion, TipoDeCertificado elTipoDeCertificado, string elNombreEnMayuscula, string losApellidosFormateados)
        {
            string elCN           = ObtengaElCN(elTipoDeCertificado, elNombreEnMayuscula, losApellidosFormateados);
            string elOU           = ObtengaElOU(elTipoDeIdentificacion);
            string elO            = ObtengaElO();
            string elC            = ObtengaElC();
            string elGivenName    = ObtengaElGivenName(elNombreEnMayuscula);
            string elSurName      = ObtengaElSurname(losApellidosFormateados);
            string elSerialNumber = ObtengaElSerialNumber(laIdentificacion, elTipoDeIdentificacion);

            return(FormateeElSujeto(elCN, elOU, elO, elC, elGivenName, elSurName, elSerialNumber));
        }
        public static Emision GenereLaEmision(TipoDeIdentificacion elTipoDeIdentificacion,
                                              string laIdentificacion,
                                              string elNombre,
                                              string elPrimerApellido,
                                              string elSegundoApellido)
        {
            // Las dependencias con recursos externos
            string   laDireccionDeRevocacion = ObtengaLaDireccionDeRevocacion();
            int      losAñosDeVigencia       = ObtengaLosAnosDeVigencia();
            DateTime laFechaActual           = ObtengaLaFechaActual();

            return(ObtengaLaEmision(elTipoDeIdentificacion, laIdentificacion, elNombre, elPrimerApellido, elSegundoApellido, laDireccionDeRevocacion, losAñosDeVigencia, laFechaActual));
        }
        public EmisionConDependencias(TipoDeIdentificacion elTipoDeIdentificacion, string laIdentificacion, string elNombre, string elPrimerApellido, string elSegundoApellido)
        {
            this.elTipoDeIdentificacion = elTipoDeIdentificacion;
            this.laIdentificacion       = laIdentificacion;
            this.elNombre          = elNombre;
            this.elPrimerApellido  = elPrimerApellido;
            this.elSegundoApellido = elSegundoApellido;

            // Las dependencias con recursos externos
            laDireccionDeRevocacion = ObtengaLaDireccionDeRevocacion();
            losAñosDeVigencia       = ObtengaLosAnosDeVigencia();
            laFechaActual           = ObtengaLaFechaActual();
        }
예제 #22
0
 public Sujeto(string laIdentificacion,
               TipoDeIdentificacion elTipoDeIdentificacion,
               string elNombre,
               string elPrimerApellido,
               string elSegundoApellido,
               TipoDeCertificado elTipoDeCertificado)
 {
     elNombreEnMayuscula         = ObtengaElNombreEnMayuscula(elNombre);
     losApellidosFormateados     = ObtengaLosApellidosFormateados(elPrimerApellido, elSegundoApellido);
     this.elTipoDeCertificado    = elTipoDeCertificado;
     this.elTipoDeIdentificacion = elTipoDeIdentificacion;
     this.laIdentificacion       = laIdentificacion;
 }
예제 #23
0
        public static string GenereElSujeto(string laIdentificacion,
                                            TipoDeIdentificacion elTipoDeIdentificacion,
                                            string elNombre,
                                            string elPrimerApellido,
                                            string elSegundoApellido,
                                            TipoDeCertificado elTipoDeCertificado)
        {
            string elNombreEnMayuscula = ObtengaElNombreEnMayuscula(elNombre);
            string losApellidosFormateados;

            losApellidosFormateados = ObtengaLosApellidosFormateados(elPrimerApellido, elSegundoApellido);

            return(ObtengaElSujetoFormateado(laIdentificacion, elTipoDeIdentificacion, elTipoDeCertificado, elNombreEnMayuscula, losApellidosFormateados));
        }
        // GET: TipoDeIdentificacions/Edit/5
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            TipoDeIdentificacion tipoDeIdentificacion = db.TIPO_IDENTIFICACION.Find(id);

            if (tipoDeIdentificacion == null)
            {
                return(HttpNotFound());
            }
            return(View(tipoDeIdentificacion));
        }
        public void ComoTexto_EsExtranjero_OUYSerialNumberCorrectos()
        {
            elResultadoEsperado = "CN=JOSE MIGUEL SUAREZ GODINEZ (AUTENTICACION), OU=EXTRANJERO, O=PERSONA FISICA, C=CR, GivenName=JOSE MIGUEL, Surname=SUAREZ GODINEZ, SERIALNUMBER=NUP-114145540011";

            laIdentificacion       = "114145540011";
            elTipoDeIdentificacion = TipoDeIdentificacion.Dimex;
            elTipoDeCertificado    = TipoDeCertificado.Autenticacion;
            elResultadoObtenido    = new SujetoFormateado(laIdentificacion,
                                                          elTipoDeIdentificacion,
                                                          elTipoDeCertificado,
                                                          "JOSE MIGUEL",
                                                          "SUAREZ GODINEZ").ComoTexto();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
        public void ComoTexto_EsNacional_OUYSerialNumberCorrectos()
        {
            elResultadoEsperado = "CN=MARCELINO NAVARRO QUIROS (AUTENTICACION), OU=CIUDADANO, O=PERSONA FISICA, C=CR, GivenName=MARCELINO, Surname=NAVARRO QUIROS, SERIALNUMBER=CPF-01-0078-5935";

            laIdentificacion       = "01-0078-5935";
            elTipoDeIdentificacion = TipoDeIdentificacion.Cedula;
            elTipoDeCertificado    = TipoDeCertificado.Autenticacion;
            elResultadoObtenido    = new SujetoFormateado(laIdentificacion,
                                                          elTipoDeIdentificacion,
                                                          elTipoDeCertificado,
                                                          "MARCELINO",
                                                          "NAVARRO QUIROS").ComoTexto();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
        private static DatosParaUnCertificadoDigital GenereLaInformacionDeFirma(TipoDeIdentificacion elTipoDeIdentificacion, string laIdentificacion, string elNombre, string elPrimerApellido, string elSegundoApellido, string laDireccionDeRevocacion, int losAñosDeVigencia, DateTime laFechaActual)
        {
            DatosParaUnCertificadoDigital losDatos;

            losDatos = DetermineInformacionDeFirma(elTipoDeIdentificacion);

            losDatos.Nombre                = elNombre;
            losDatos.Identificacion        = laIdentificacion;
            losDatos.PrimerApellido        = elPrimerApellido;
            losDatos.SegundoApellido       = elSegundoApellido;
            losDatos.FechaActual           = laFechaActual;
            losDatos.DireccionDeRevocacion = laDireccionDeRevocacion;
            losDatos.AñosDeVigencia        = losAñosDeVigencia;

            return(losDatos);
        }
예제 #28
0
 public Emision(TipoDeIdentificacion elTipoDeIdentificacion,
                string laIdentificacion,
                string elNombre,
                string elPrimerApellido,
                string elSegundoApellido,
                string laDireccionDeRevocacion,
                int losAñosDeVigencia,
                DateTime laFechaActual)
 {
     this.elTipoDeIdentificacion = elTipoDeIdentificacion;
     this.laIdentificacion       = laIdentificacion;
     this.elNombre                = elNombre;
     this.elPrimerApellido        = elPrimerApellido;
     this.elSegundoApellido       = elSegundoApellido;
     this.laDireccionDeRevocacion = laDireccionDeRevocacion;
     this.losAñosDeVigencia       = losAñosDeVigencia;
     this.laFechaActual           = laFechaActual;
 }
        public static CertificadoDigital GenereUnCertificadoDigital(string elNombre,
                                                                    string elPrimerApellido,
                                                                    string elSegundoApellido,
                                                                    string laIdentificacion,
                                                                    TipoDeIdentificacion elTipoDeIdentificacion,
                                                                    TipoDeCertificado elTipoDeCertificado,
                                                                    DateTime laFechaActual,
                                                                    string laDireccionDeRevocacion,
                                                                    int losAñosDeVigencia)
        {
            CertificadoDigital elCertificado = new CertificadoDigital();

            elCertificado.Sujeto                = GenereElSujeto(elNombre, elPrimerApellido, elSegundoApellido, laIdentificacion, elTipoDeIdentificacion, elTipoDeCertificado);
            elCertificado.FechaDeEmision        = laFechaActual;
            elCertificado.FechaDeVencimiento    = GenereLaFechaDeVencimiento(laFechaActual, losAñosDeVigencia);
            elCertificado.DireccionDeRevocacion = laDireccionDeRevocacion;

            return(elCertificado);
        }
        public void ComoTexto_NoTieneSegundoApellido_NombreYLosApellidosBienFormateados()
        {
            elResultadoEsperado = "CN=JOHN SMITH (AUTENTICACION), OU=EXTRANJERO, O=PERSONA FISICA, C=CR, GivenName=JOHN, Surname=SMITH, SERIALNUMBER=NUP-114145540011";

            laIdentificacion       = "114145540011";
            elTipoDeIdentificacion = TipoDeIdentificacion.Didi;
            elTipoDeCertificado    = TipoDeCertificado.Autenticacion;
            elNombre            = "John";
            elPrimerApellido    = "Smith";
            elSegundoApellido   = "";
            elResultadoObtenido = new Sujeto(laIdentificacion,
                                             elTipoDeIdentificacion,
                                             elNombre,
                                             elPrimerApellido,
                                             elSegundoApellido,
                                             elTipoDeCertificado
                                             ).ComoTexto();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }