PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → Windev - Certificado Digital - Localizar, verificar serial, verificar se esta valido e informar a quantidade de dias que falta para expirar
Windev - Certificado Digital - Localizar, verificar serial, verificar se esta valido e informar a quantidade de dias que falta para expirar
Iniciado por adrianoboller, ago., 10 2015 11:22 PM - 3 respostas
Membro registado
3.659 mensagems
Popularité : +175 (223 votes)
Publicado em agosto, 10 2015 - 11:22 PM
//Exemplo



//CertificadoAssinatura is string = "‎66428db2ed4c2416d5861351ae2ceb1f"



MyCertificate is Certificate



// Open the certificate picker of Windows

MyCertificate = CertificateSelect()



// Cancelation or error

IF MyCertificate..Name = "" THEN

RETURN

END





// Checks the validity of certificat for the signature

IF MyCertificate..ValidForSignature = False THEN

Info("The selected certificate cannot be used to generate a signature.")

RETURN

END



// Retrieve the buffer containing the signature

bufSignature is Buffer

bufSignature = CertificateSignString("Character string to sign", MyCertificate)



// Retrieve the certificate found in the buffer of the signature

MyExtractedCertificate is Certificate

MyExtractedCertificate = CertificateExtract(bufSignature)



// Manage the errors

IF MyExtractedCertificate = Null THEN

RETURN

END



// Open the window for certificate properties

CertificateOpenProperties(MyExtractedCertificate)



//Interpretando o retorno

Certificado_Digital is string = MyCertificate..Name +CRLF+ MyCertificate..Issuer +CRLF+ MyCertificate..SerialNumber +CRLF+ MyCertificate..Reliability +CRLF+ MyCertificate..ValidForSignature

SerialCertificadoDigital is string = MyCertificate..SerialNumber

SerialCertificadoDigital = Replace(SerialCertificadoDigital," ","")

DataValidadeCertificadoDigital is string = DateToString(MyCertificate..StartValidityDate,"DD/MM/YYYY HH:MM:SS") +" até "+ DateToString(MyCertificate..EndValidityDate,"DD/MM/YYYY HH:MM:SS")



Hoje is DateTime = DateSys() + TimeSys()



UltimoPrazoCertificado is DateTime = MyCertificate..EndValidityDate



IF UltimoPrazoCertificado < Hoje THEN

Info("Certificado Vencido")

ELSE

nDias is int = DateDifference(Middle(Hoje,1,8),Middle(UltimoPrazoCertificado,1,8))

//info(nDias)

IF nDias < 30 THEN

Info("Providenciar a atualização do certificado faltam: "+nDias)

END

END





EDT_Certificado = Certificado_Digital



EDT_Serial = SerialCertificadoDigital



EDT_Validade = DataValidadeCertificadoDigital



ok is boolean = False



PathFile is string = fCurrentDir(fCurrentDrive()) +"\INFOSG.ini"



//Serial

ok = INIWrite("INFOSG", "CertificadoDigital", SerialCertificadoDigital, PathFile)

IF ErrorOccurred = True

Error()

END



//Data Validade

ok = INIWrite("INFOSG", "CertificadoDigitalValidade", DataValidadeCertificadoDigital, PathFile)

IF ErrorOccurred = True

Error()

END
Membro registado
3.659 mensagems
Popularité : +175 (223 votes)
Publicado em agosto, 10 2015 - 11:36 PM
Isso é usado para pegar os dados dos Certificados Digitais A1, A2, A3

:merci:
Membro registado
44 mensagems
Popularité : +7 (7 votes)
Publicado em agosto, 12 2015 - 4:12 PM
Dá para fazer a assinatura de XML com esse tipo de variável 'certificate'?

--
Analista de Sistemas Jr
Assessor de Comunicação
Fotografo nas horas Vagas
Pai da Alícia e Marido da Andréa <3
Membro registado
3.659 mensagems
Popularité : +175 (223 votes)
Publicado em agosto, 18 2015 - 5:13 PM
Estou estudando ainda nao tenho essa informação por completo...
Em breve posto mais detalhes sobre isso.