sexta-feira, 17 de junho de 2016

Curso WinDev - Certificado - 003 - Ver se Certificado é Válido



Video Youtube


Nessa aula vou mostrar como verificar se certificado é válido

In this lecture I will show how to check if certificate is valid'll call procedure

Dans cette conférence, je vais vous montrer comment vérifier si le certificat est valid'll procédure d'appel
 

doc.windev.com/en-US/?1000019307&name=Certificate_constants
http://doc.pcsoft.fr/fr-FR/?1000019307&name=constantes_gestion_des_certificats

Blog - WinDev - Curso Certificado - 001/... - Seleciona Certificado - Certificate Select 
Blog - WinDev - Curso Certificado - 002/... - Certificate Type - Pegar Dados Certificado
Blog - WinDev - Curso Certificado - 003/... - Ver se Certificado é Válido
Blog - WinDev - Curso Certificado - 004/... - CertificateLoad - Chamar pfx/arquivo
Blog - WinDev - Curso Certificado - 005/... - Assinatura Digital Nfe - Parte 1/...
Blog - WinDev - Curso Certificado - 006/... - Assinatura nfe - Parte 2/... - System.xml.xmlDocument
Blog - WinDev - Curso Certificado - 007/... - Assinatura nfe - Parte 3/... - Assinar Documento
Blog - Windev - Curso Certificado - 008/... HttpListCertificate
Blog - WinDev - Curso Soap - 009/... Consulta Cadastro Sefaz - WebService
Blog - WinDev - Curso Soap - 010 - Status Nfe Sefaz - WebService

Exemplo Se certificado é válido

//Exemplo Se certificado é válido
//Example If the certificate is valid
//Exemple Si le certificat est valide

x//Ingles

_certificado is Certificate
_certificado = CertificateSelect()

s_retorno_certificado is string="" // s_retorno certificate // certificat s_retorn
verifica_certificado()  // check certificate // chèque certificat
IF s_retorno_certificado="Certificado Valido" THEN
    dados_certificado()    // certificate data //données de certificat
END


    INTERNAL PROCEDURE verifica_certificado()
      IF _certificado..Name="" THEN
            s_retorno_certificado="Erro"
            Info(s_retorno_certificado)
            RETURN
      END
      IF _certificado..ValidForSignature=False THEN
          s_retorno_certificado="O Certificado selecionado não pode ser utilizado para gerar uma assinatura"
        Info(s_retorno_certificado)
        RETURN
      END
      SWITCH _certificado..Reliability
          CASE certificateOk:
              s_retorno_certificado="Certificado Valido"
          CASE certificateInvalid:
            s_retorno_certificado="Certificado invalidido"
        CASE certificateUntrusted:
            s_retorno_certificado="Certificado Nao Confiavel"
        CASE certificateExpired:
            s_retorno_certificado="Expirado Certificado"
      END   
       Info(s_retorno_certificado)         
         
    END

    INTERNAL PROCEDURE dados_certificado()
    EDT_DadosDoCertificado="" // Limpando edt do certificado // cleaning edt certificate // certificat edt nettoyage
    EDT_DadosDoCertificado+="=====NOVOS WINDEV 21 ===============" //Novos Windev 21//new windev 21//
    EDT_DadosDoCertificado+=CR+"Nome Completo Emissor [ "+_certificado.FullIssuer+" ] "
    EDT_DadosDoCertificado+=CR+"Numero Associado ["+_certificado.Empreinte+" ]" // Em Frances // Em Ingles (Fingerprint)
    EDT_DadosDoCertificado+=CR+"-Objeto   [ "+_certificado.objet+" ]"  // Em Frances // Em Ingles (  object )
    EDT_DadosDoCertificado+=CR+"===== Já tinha Windev 20  ==============="
    EDT_DadosDoCertificado+=CR+"Nome Resumido  [ "+_certificado.Name+" ]"
    EDT_DadosDoCertificado+=CR+"Inicio Validade  [ "+_certificado.StartValidityDate+" ]"
    EDT_DadosDoCertificado+=CR+"Final Validade  [ "+_certificado.EndValidityDate+" ]"
    EDT_DadosDoCertificado+=CR+"Issuer- Emissora  [ "+_certificado.Issuer+" ]"
    EDT_DadosDoCertificado+=CR+"Reliability-Confianca  [ "+_certificado.Reliability+" ]"
    EDT_DadosDoCertificado+=CR+"Serial Numero  [ "+_certificado.SerialNumber+" ]"
    EDT_DadosDoCertificado+=CR+"Certificado Valido  [ "+_certificado.ValidForSignature+" ]"
    EDT_DadosDoCertificado+=CR+"Subject   [ "+_certificado.Subject+" ]"
    EDT_DadosDoCertificado+=CR+"Thumprint - Impressão Digital  [ "+_certificado.ThumbPrint+" ]"
    EDT_DadosDoCertificado+=CR+"======================================"
   
    END
    
x

y//Frances
//Selecionar o Certificado //Select the certificate //Spelectionnez le certificat
//Pegados Dados Do Certificado //taking certificate dice //Prenant certificat dice

_certificado est un Certificat
_certificado = CertificatSélecteur()

s_retorno_certificado est chaîne="" // s_retorno certificate // certificat s_retorno

verifica_certificado() // check certificate // chèque certificat
SI s_retorno_certificado="Certificado Valido" ALORS
    dados_certificado()     // certificate data //données de certificat
FIN


    PROCEDURE INTERNE verifica_certificado()
      SI _certificado..Nom="" ALORS
            s_retorno_certificado="Erro"
            Info(s_retorno_certificado)
            RETOUR
      FIN
      SI _certificado..ValidePourSignature=Faux ALORS
          s_retorno_certificado="O Certificado selecionado não pode ser utilizado para gerar uma assinatura"
        Info(s_retorno_certificado)
        RETOUR
      FIN
      SELON _certificado..Fiabilité
          CAS certificatOk:
              s_retorno_certificado="Certificado Valido"
          CAS certificatInvalide:
            s_retorno_certificado="Certificado invalidido"
        CAS certificatNonFiable:
            s_retorno_certificado="Certificado Nao Confiavel"
        CAS certificatExpiré:
            s_retorno_certificado="Expirado Certificado"
      FIN   
       Info(s_retorno_certificado)         
         
    FIN

    PROCEDURE INTERNE dados_certificado()
    EDT_DadosDoCertificado="" // Limpando edt do certificado // cleaning edt certificate // certificat edt nettoyage
    EDT_DadosDoCertificado+="=====NOVOS WINDEV 21 ===============" //Novos Windev 21//new windev 21//
    EDT_DadosDoCertificado+=RC+"Nome Completo Emissor [ "+_certificado.EmetteurComplet+" ] "
    EDT_DadosDoCertificado+=RC+"Numero Associado ["+_certificado.Empreinte+" ]" // Em Frances // Em Ingles (Fingerprint)
    EDT_DadosDoCertificado+=RC+"-Objeto   [ "+_certificado.objet+" ]"  // Em Frances // Em Ingles (  object )
    EDT_DadosDoCertificado+=RC+"===== Já tinha Windev 20  ==============="
    EDT_DadosDoCertificado+=RC+"Nome Resumido  [ "+_certificado.Nom+" ]"
    EDT_DadosDoCertificado+=RC+"Inicio Validade  [ "+_certificado.DateValiditéDébut+" ]"
    EDT_DadosDoCertificado+=RC+"Final Validade  [ "+_certificado.DateValiditéFin+" ]"
    EDT_DadosDoCertificado+=RC+"Issuer- Emissora  [ "+_certificado.Emetteur+" ]"
    EDT_DadosDoCertificado+=RC+"Reliability-Confianca  [ "+_certificado.Fiabilité+" ]"
    EDT_DadosDoCertificado+=RC+"Serial Numero  [ "+_certificado.NuméroSérie+" ]"
    EDT_DadosDoCertificado+=RC+"Certificado Valido  [ "+_certificado.ValidePourSignature+" ]"
    EDT_DadosDoCertificado+=RC+"Subject   [ "+_certificado.objet+" ]"
    EDT_DadosDoCertificado+=RC+"Thumprint - Impressão Digital  [ "+_certificado.Empreinte+" ]"
    EDT_DadosDoCertificado+=RC+"======================================"
   
    FIN


y
//Blog com Video e Exemplo
http://windevdesenvolvimento.blogspot.com.br/2016/06/curso-windev-certificado-003-ver-se.html
https://www.youtube.com/watch?v=kE0T04bbxz4   


/Selecionar o Certificado //Select the certificate //Spelectionnez le certificat
//Pegados Dados Do Certificado //taking certificate dice //Prenant certificat dice

_certificado is Certificate
_certificado = CertificateSelect()

s_retorno_certificado is string=""

verifica_certificado()
IF s_retorno_certificado="Certificado Valido" THEN
    dados_certificado()   
END




    INTERNAL PROCEDURE verifica_certificado()
      IF _certificado..Name="" THEN
            s_retorno_certificado="Erro"
            Info(s_retorno_certificado)
            RETURN
      END
      IF _certificado..ValidForSignature=False THEN
          s_retorno_certificado="O Certificado selecionado não pode ser utilizado para gerar uma assinatura"
        Info(s_retorno_certificado)
        RETURN
      END
      SWITCH _certificado..Reliability
          CASE certificateOk:
              s_retorno_certificado="Certificado Valido"
          CASE certificateInvalid:
            s_retorno_certificado="Certificado invalidido"
        CASE certificateUntrusted:
            s_retorno_certificado="Certificado Nao Confiavel"
        CASE certificateExpired:
            s_retorno_certificado="Expirado Certificado"
      END   
       Info(s_retorno_certificado)         
         
    END




    INTERNAL PROCEDURE dados_certificado()
    EDT_DadosDoCertificado="" // Limpando edt do certificado // cleaning edt certificate // certificat edt nettoyage
    EDT_DadosDoCertificado+="=====NOVOS WINDEV 21 ===============" //Novos Windev 21//new windev 21//
    EDT_DadosDoCertificado+=CR+"Nome Completo Emissor [ "+_certificado.FullIssuer+" ] "
    EDT_DadosDoCertificado+=CR+"Numero Associado ["+_certificado.Empreinte+" ]" // Em Frances // Em Ingles (Fingerprint)
    EDT_DadosDoCertificado+=CR+"-Objeto   [ "+_certificado.objet+" ]"  // Em Frances // Em Ingles (  object )
    EDT_DadosDoCertificado+=CR+"===== Já tinha Windev 20  ==============="
    EDT_DadosDoCertificado+=CR+"Nome Resumido  [ "+_certificado.Name+" ]"
    EDT_DadosDoCertificado+=CR+"Inicio Validade  [ "+_certificado.StartValidityDate+" ]"
    EDT_DadosDoCertificado+=CR+"Final Validade  [ "+_certificado.EndValidityDate+" ]"
    EDT_DadosDoCertificado+=CR+"Issuer- Emissora  [ "+_certificado.Issuer+" ]"
    EDT_DadosDoCertificado+=CR+"Reliability-Confianca  [ "+_certificado.Reliability+" ]"
    EDT_DadosDoCertificado+=CR+"Serial Numero  [ "+_certificado.SerialNumber+" ]"
    EDT_DadosDoCertificado+=CR+"Certificado Valido  [ "+_certificado.ValidForSignature+" ]"
    EDT_DadosDoCertificado+=CR+"Subject   [ "+_certificado.Subject+" ]"
    EDT_DadosDoCertificado+=CR+"Thumprint - Impressão Digital  [ "+_certificado.ThumbPrint+" ]"
    EDT_DadosDoCertificado+=CR+"======================================"
   
    END






















Teste

Teste
teste