Assinando e validando EXE

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Assinando e validando EXE

Mensagem por JoséQuintas »

Um brinde pelos testes com certificado.
Trechos do meu build.prg

Código: Selecionar todos

STATIC FUNCTION TestSignedEXE( cFileName )

   LOCAL oSignedCode, lOk := .F.

   BEGIN SEQUENCE WITH __BreakBlock()
      oSignedCode := win_OleCreateObject( "CAPICOM.SignedCode" )
      oSignedCode:FileName := cFileName
      oSignedCode:Verify()
      lOk := .T.
   ENDSEQUENCE
   IF ! lOk
      ShowAlert( "Not installed CAPICOM and/or EXE not signed" )
      IF .F.
         SignEXE( cFileName )
      ENDIF
   ENDIF

   RETURN lOk

Código: Selecionar todos

STATIC FUNCTION SignEXE( cFileName )

   LOCAL oSignedCode, oSigner, lOk := .F.

   BEGIN SEQUENCE WITH __BreakBlock()
      oSignedCode := win_OleCreateObject( "CAPICOM.SignedCode" )
      oSignedCode:FileName := cFileName
      oSigner := win_OleCreateObject( "CAPICOM.Signer" )
      oSigner:Certificate := CAPICOMCertificado( "Jose Quintas" )
      oSignedCode:Sign( oSigner )
      oSignedCode:TimeStamp( "http://timestamp.digicert.com" )
      lOk := .T.
   ENDSEQUENCE
   IF ! lOk
      ShowAlert( "Not installed CAPICOM and/or EXE not signed" )
   ENDIF

   RETURN lOk
Pra carregar i certificado está na sefazclass.
Talvez interessante já deixar tudo na sefazclass.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder