Пример #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 string GenereElSujeto(string elNombre,
                                      string elPrimerApellido,
                                      string elSegundoApellido,
                                      string laIdentificacion,
                                      TipoDeIdentificacion elTipoDeIdentificacion,
                                      TipoDeCertificado elTipoDeCertificado)
 {
     return(new Sujeto(elNombre, elPrimerApellido, elSegundoApellido, laIdentificacion, elTipoDeIdentificacion, elTipoDeCertificado).ComoTexto());
 }
Пример #5
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);
        }
        public void ComoTexto_EsDeFirma_PropositoCorrecto()
        {
            elResultadoEsperado = "CN=MARCELINO NAVARRO QUIROS (FIRMA)";

            elTipo              = TipoDeCertificado.Firma;
            elNombre            = "MARCELINO";
            losApellidos        = "NAVARRO QUIROS";
            elResultadoObtenido = new CN(elTipo, elNombre, losApellidos).ComoTexto();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
Пример #7
0
 private static string DetermineElProposito(TipoDeCertificado elTipoDeCertificado)
 {
     if (EsDeAutenticacion(elTipoDeCertificado))
     {
         return(ObtengaElPropositoDeAutenticacion());
     }
     else
     {
         return(ObtengaElPropositoDeFirma());
     }
 }
        public void ComoTexto_EsDeAutenticacion_PropositoCorrecto()
        {
            elResultadoEsperado = "CN=MARCELINO NAVARRO QUIROS (AUTENTICACION)";

            elTipo              = TipoDeCertificado.Autenticacion;
            elNombre            = "MARCELINO";
            losApellidos        = "NAVARRO QUIROS";
            elResultadoObtenido = new CN(elTipo, elNombre, losApellidos).ComoTexto();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
        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));
        }
Пример #10
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;
 }
Пример #11
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));
        }
        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);
        }
        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 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 GenereUnSujeto_FirmaParaUnaPersonaNacional_PropósitoOUYSerialCorrectos()
        {
            elResultadoEsperado = "CN=MARCELINO NAVARRO QUIROS (FIRMA), OU=CIUDADANO, O=PERSONA FISICA, C=CR, GivenName=MARCELINO, Surname=NAVARRO QUIROS, SERIALNUMBER=CPF-01-0078-5935";

            laIdentificacion      = "01-0078-5935";
            elTipDeIdentificacion = TipoDeIdentificacion.Cedula;
            elNombre            = "Marcelino";
            elPrimerApellido    = "Navarro";
            elSegundoApellido   = "Quiros";
            elTipoDeCertificado = TipoDeCertificado.Firma;
            elResultadoObtenido = GeneracionDeSujetos.GenereElSujeto(laIdentificacion,
                                                                     elTipDeIdentificacion,
                                                                     elNombre,
                                                                     elPrimerApellido,
                                                                     elSegundoApellido,
                                                                     elTipoDeCertificado
                                                                     );

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
        public void GenereUnSujeto_FirmaParaUnaPersonaExtranjeraConUnSoloApellido_ApellidosBienFormateados()
        {
            elResultadoEsperado = "CN=JOHN SMITH (FIRMA), OU=EXTRANJERO, O=PERSONA FISICA, C=CR, GivenName=JOHN, Surname=SMITH, SERIALNUMBER=NUP-114145540011";

            laIdentificacion      = "114145540011";
            elTipDeIdentificacion = TipoDeIdentificacion.Didi;
            elNombre            = "John";
            elPrimerApellido    = "Smith";
            elSegundoApellido   = "";
            elTipoDeCertificado = TipoDeCertificado.Firma;
            elResultadoObtenido = GeneracionDeSujetos.GenereElSujeto(laIdentificacion,
                                                                     elTipDeIdentificacion,
                                                                     elNombre,
                                                                     elPrimerApellido,
                                                                     elSegundoApellido,
                                                                     elTipoDeCertificado
                                                                     );

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
        public void GenereUnSujeto_FirmaaraUnaPersonaExtranjera_PropósitoOUYSerialCorrectos()
        {
            elResultadoEsperado = "CN=JOSE MIGUEL SUAREZ GODINEZ (FIRMA), OU=EXTRANJERO, O=PERSONA FISICA, C=CR, GivenName=JOSE MIGUEL, Surname=SUAREZ GODINEZ, SERIALNUMBER=NUP-114145540011";

            laIdentificacion      = "114145540011";
            elTipDeIdentificacion = TipoDeIdentificacion.Dimex;
            elNombre            = "Jose Miguel";
            elPrimerApellido    = "Suarez";
            elSegundoApellido   = "Godinez";
            elTipoDeCertificado = TipoDeCertificado.Firma;
            elResultadoObtenido = GeneracionDeSujetos.GenereElSujeto(laIdentificacion,
                                                                     elTipDeIdentificacion,
                                                                     elNombre,
                                                                     elPrimerApellido,
                                                                     elSegundoApellido,
                                                                     elTipoDeCertificado
                                                                     );

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
        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);
        }
Пример #19
0
 public CN(TipoDeCertificado elTipoDeCertificado, string elNombreEnMayuscula, string losApellidosFormateados)
 {
     elProposito = DetermineElProposito(elTipoDeCertificado);
     this.elNombreEnMayuscula     = elNombreEnMayuscula;
     this.losApellidosFormateados = losApellidosFormateados;
 }
        private static InformacionFormateada ObtengaLaInformacionFormateada(string elNombre, string elPrimerApellido, string elSegundoApellido, string laIdentificacion, TipoDeIdentificacion elTipoDeIdentificacion, TipoDeCertificado elTipoDeCertificado)
        {
            InformacionFormateada laInformacion = ObtengaLaInformacionFormateada(elTipoDeIdentificacion, elTipoDeCertificado);

            laInformacion.Nombre          = elNombre;
            laInformacion.PrimerApellido  = elPrimerApellido;
            laInformacion.SegundoApellido = elSegundoApellido;
            laInformacion.Identificacion  = laIdentificacion;

            return(laInformacion);
        }
Пример #21
0
 private static string ObtengaElCN(TipoDeCertificado elTipoDeCertificado, string elNombreEnMayuscula, string losApellidosFormateados)
 {
     return(new CN(elTipoDeCertificado, elNombreEnMayuscula, losApellidosFormateados).ComoTexto());
 }
Пример #22
0
 private static bool EsDeAutenticacion(TipoDeCertificado elTipoDeCertificado)
 {
     return(elTipoDeCertificado == TipoDeCertificado.Autenticacion);
 }
Пример #23
0
        private static string ObtengaElCN(TipoDeCertificado elTipoDeCertificado, string elNombreEnMayuscula, string losApellidosFormateados)
        {
            string elProposito = DetermineElProposito(elTipoDeCertificado);

            return(FormateeECN(elNombreEnMayuscula, losApellidosFormateados, elProposito));
        }
Пример #24
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 Sujeto(string elNombre, string elPrimerApellido, string elSegundoApellido, string laIdentificacion, TipoDeIdentificacion elTipoDeIdentificacion, TipoDeCertificado elTipoDeCertificado)
 {
     laInformacion                 = ObtengaLaInformacionFormateada(elTipoDeIdentificacion, elTipoDeCertificado);
     laInformacion.Nombre          = elNombre;
     laInformacion.PrimerApellido  = elPrimerApellido;
     laInformacion.SegundoApellido = elSegundoApellido;
     laInformacion.Identificacion  = laIdentificacion;
 }
 private static InformacionFormateada ObtengaLaInformacionFormateada(TipoDeIdentificacion elTipoDeIdentificacion, TipoDeCertificado elTipoDeCertificado)
 {
     if (ElPropositoEsDeAutenticacion(elTipoDeCertificado))
     {
         return(ObtengaLaInformacionDeAutenticacion(elTipoDeIdentificacion));
     }
     else
     {
         return(ObtengaLaInformacionDeFirma(elTipoDeIdentificacion));
     }
 }
Пример #27
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);
 }