Clipper On Line • Ver Tópico - Assinar digitalmente um arquivo

Assinar digitalmente um arquivo

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

Moderador: Moderadores

 

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 02 Ago 2017 14:15

Existe certificado especial pra assinar programa.
Sinceramente não sei se e-CNPJ vale pra isso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 02 Ago 2017 14:21

certificado.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor rochinha » 02 Ago 2017 14:48

Amiguinhos,

Quando eu estava com meu certificado digital ativo eu assinava o meu aplicativo. Notei leve diminuição de bloqueios no Windows, mas nada relevante. Era um certificado A1, não sei quanto ao A3.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 02 Ago 2017 17:50

Vê se consegue sem certificado.

Rotina saindo do forno, do primeiro teste..... rs

Ainda não testei remover algumas partes.
Aqui acabou usando o certificado de assinar código.


#define CAPICOM_CURRENT_USER_STORE   2
#define CAPICOM_MY_STORE             "My"
#define CAPICOM_STORE_OPEN_READ_ONLY 0
#define URL                          "http://timestamp.verisign.com/scripts/timstamp.dll"

PROCEDURE Main

   LOCAL oStore, oSignedCode, oSigner

   oStore      := win_OleCreateObject( "CAPICOM.Store" )
   oSignedCode := win_OleCreateObject( "CAPICOM.SignedCode" )
   oSigner     := win_OleCreateObject( "CAPICOM.Signer" )

   oStore:Open( CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY )

   oSignedCode:FileName       := "d:\temp\minigui.exe"
   oSignedCode:Description    := "José M. C. Quintas"
   oSignedCode:DescriptionURL := "www.josequintas.com.br"
   ? oSignedCode:Sign( oSigner )
   ? oSignedCode:TimeStamp( URL )
   ? oSignedCode:Verify()

   RETURN
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 02 Ago 2017 17:57

Mais testes funcionou assim, agora é confirmar se aproveitou a MyStore que estava aberta, ou se realmente precisa abrir.
Veio de um exemplo da Capicom.
Se não funcionar este último, então é o anterior, abrindo o armazenamento de certificados primeiro.

#define URL "http://timestamp.verisign.com/scripts/timstamp.dll"

PROCEDURE Main

   LOCAL oSignedCode, oSigner

   oSignedCode := win_OleCreateObject( "CAPICOM.SignedCode" )
   oSigner     := win_OleCreateObject( "CAPICOM.Signer" )

   oSignedCode:FileName       := "d:\temp\test2.exe"
   oSignedCode:Description    := "José M. C. Quintas"
   oSignedCode:DescriptionURL := "www.josequintas.com.br"
   ? oSignedCode:Sign( oSigner )
   ? oSignedCode:TimeStamp( URL )
   ? oSignedCode:Verify()

   RETURN
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor sygecom » 02 Ago 2017 18:00

rochinha escreveu:Amiguinhos,

Ainda não entendi o porque da compra de um certificado como o da COMODO para assinar nossos softwares. Os certificados e-CNPJ não servem?


Chefe,
Pior que Não serve, já tentei, eles são muito safados, cada um tem um objetivo. Esse das NFe e etc... é só com o e-cnpj ou e-nfe, que não serve para assinar aplicativo.

Da o seguinte erro:
SignTool Error: No certificates were found that met all the given criteria.

Aqui tenho 4 certificados
3 da empresa e 1 pessoa física

Empresa
1=CODE SIGNING ( para assinar aplicativos/sistemas )
2=e-CNPJ ( para emissão de nota fiscal e registros da contabilidade )
3=WILDCARD SSL ( para poder nos sites aparecer como seguro( https ), isso por que os servidores http de alguns domínio são gerenciado por nós )

Pessoa física
1=para imposto de renda, representações com advogado e cartório.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 02 Ago 2017 18:19

O novo teste:


#define URL "http://timestamp.verisign.com/scripts/timstamp.dll"

PROCEDURE Main

   LOCAL oSignedCode, oSigner, oElement

   oSignedCode := win_OleCreateObject( "CAPICOM.SignedCode" )
   oSigner     := win_OleCreateObject( "CAPICOM.Signer" )

   oSignedCode:FileName       := "d:\temp\test2.exe"
   oSignedCode:Description    := "José M. C. Quintas"
   oSignedCode:DescriptionURL := "www.josequintas.com.br"
   ? oSignedCode:Sign( oSigner )
   ? oSignedCode:TimeStamp( URL )
   ? oSignedCode:Verify()

   FOR EACH oElement IN oSignedCode:Certificates
      ? oElement:SubjectName
   NEXT

   RETURN


Um nome conhecido aparece, além de JPA Tecnologia e COMODO... esquisito... rs

NIL
NIL
NIL
CN=COMODO RSA Code Signing CA, O=COMODO CA Limited, L=Salford, S=Greater Manchester, C=GB
CN=J.P.A Tecnologia Ltda. ME., O=J.P.A Tecnologia Ltda. ME., STREET=Rua xxxxxx, L=SÏ€o Paulo, S=SÏ€o
Paulo, PostalCode=03676-080, C=BR
CN=Symantec Time Stamping Services Signer - G4, O=Symantec Corporation, C=US
CN=Symantec Time Stamping Services CA - G2, O=Symantec Corporation, C=US


Pior que fiquei confuso.
Se o TIMESTAMP garante a data da assinatura, ele teria que garantir que a data não foi modificada.
E se ele garantir que a data não foi modificada, ele também garantiria que o EXE não foi modificado.

Quanto mais a gente tenta entender, menos a gente entende.... exceto a parte de que sempre nós pagamos e alguém recebe...

Ou vamos mais longe:
Se o Windows é comprovado pela Microsoft em nome do usuário, seria só o Windows assinar e estaria comprovado de onde saiu....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 02 Ago 2017 18:25

Só pra completar:

certificado.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 02 Ago 2017 20:09

O que começou a acontecer de uns tempos pra cá foi certas vezes a assinatura não funcionar.

Não sei se isso faz parte do alerta de vencimento....

Mas agora com essa rotina vai dar pra verificar, pra eu não ter que ficar conferindo manualmente, o que seria péssimo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 03 Ago 2017 00:17

Quase lá....
Chegou o arquivo .CER, mas falta o .PVK com a private key.
Já não lembro mais de onde vém esse outro.
Alguém sabe dizer?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor rochinha » 03 Ago 2017 00:25

Amiguinhos,

Até onde sei tanto .CER como .PFX podem conter os dados do certificado, sendo que a diferença é que a chave no caso do .CER fica residente fora dele, no token, cartão, ou este arquivo .PVK enquanto que no PFX ficam juntos.

Faça uma inclusão no seu teste, assim:
   oSignedCode:DescriptionURL := "www.josequintas.com.br"
   
   // --------------------
   oCerts1:=oStore:Certificates()
   oCerts2:=oCerts1:Select("Selecione o certificado desejado","Selecione o certificado",.F.)
   IF oCerts2:Count() > 0
      oCerts3 := oCerts2:Item(1)
      //
      oSigner       := TOleAuto():New( "CAPICOM.Signer" )
      oSettings     := TOleAuto():New( "CAPICOM.Settings" )
      oAssinatura   := TOleAuto():New( "CAPICOM.SignedData" )
      //
      oSigner:Certificate := oCerts2:Item(1)
      oSettings:EnablePromptForCertificateUI := .t.
   EndIf
   // --------------------
   
   ? oSignedCode:Sign( oSigner )
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 03 Ago 2017 00:46

Deixei anotado aqui.

PVKIMPRT "d:\tudo\signtool\mycredentials.spc" "d:\tudo\signtool\jpateckey.pvk"


Li alguns faqs, a private key é gerada no momento da solicitação, e quando chega o .cer, é gerado o PFX.
Quando é usado outro navegador ou outra máquina, fica sem a private key.
Não lembro dela ter sido gerada.

Tem limitações também:
- Não serve o Edge
- Não funcionou no Internet Explorer
Sobrou chrome e Firefox.

Encontrei lá no site de pedido, que num determinado navegador não é gerada a private key, e que deveria ser solicitada novamente.
Já fiz isso, agora novamente aguardar.

Sei lá o que acontece no Windows 10: Se não serve o Edge, e o Internet Explorer não faz o que deveria...
Dobrou os navegadores, mas os dois juntos não valem por um.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 03 Ago 2017 10:52

Aos trancos e barrancos mas finalmente concluído.
Não serve Edge, Explorer ou Google Chrome.
Só no Firefox mesmo pra baixar o certificado novo.
Já assinando com o novo.

comodo.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Assinar digitalmente um arquivo

Mensagempor pauloa1 » 03 Ago 2017 10:54

Estranho eu baixei com o Google Chrome.
Deve ter mudado.

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 223
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes

Assinar digitalmente um arquivo

Mensagempor JoséQuintas » 03 Ago 2017 11:22

É tudo doido. Parece que tão inventando tanta segurança que daqui a pouco não dá pra fazer nada.

http://certhelp.ksoftware.net/support/solutions/articles/17157-how-do-i-export-my-code-signing-certificate-from-internet-explorer-chrome-or-safari-on-windows-

CHROME, SAFARI, EDGE and OPERA WILL NOT WORK with the code signing export process any longer (it now lacks the proper controls to generate and handle the private key). As of June 2016, our order system will not let anyone submit using an unsupported browser. This has nothing to do with support of signatures created with your certificate, it is just a limitation of the key generation at order time. Once exported, all certificates work in all browsers and is completely portable.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 21 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro