Primeiro peço perdão se a solução deste problema já tiver sido discutido
aqui na lista mas não achei nada que me ajudasse.
Estou precisando saber como seria possível assinar arquivos digitalmente
usando o Python. Eu crio certificados de teste no formato X.509 e preciso
assinar qualquer tipo de arquivo usando esse certificado (tanto o tipo A1
quanto o A3).
A intenção é fazer o seguinte processo:
- pegar um arquivo com extensão qualquer
- assinar o arquivo com um determinado certificado
- gerar um arquivo p7s (que é o arquivo final já assinado)
eu consegui fazer essas coisas em meio termo, mas usando .net e o sdk
CAPICOM da microsoft. Gostaria mesmo de usar python pois assim tenho mais
segurança para aplicações mais pesadas, sem contar que isso é pra um projeto
open-source.
Agradeço se alguém puder me dar uma luz. Qualquer material de referência e
dicas irão me ajudar.
Um abraço a todos.
[As partes desta mensagem que não continham texto foram removidas]
------------------------------------
,-----------------------------------------------------------.
| Antes de enviar um e-mail para o grupo leia: |
| http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar |
| E se você é usuário do BOL lembre-se de cadastrar o |
| e-mail do grupo na lista branca do seu sistema anti-spam. |
`-----------------------------------------------------------´Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html
Existe a biblioteca Chilkat que é comercial [1] e existe uma maneira
de se fazer utilizando uma biblioteca de java (iText) com Jython.
[1] http://www.example-code.com/python/cert_usePrivateKeyFromPEM.asp
[2] http://kelpi.com/script/00cd7c
Talvez outras pessoas daqui saibam outra maneira.
Acredito que M2CRYPTO [1] seja exatamente o que vc precisa. Veja [2].
[1] http://freshmeat.net/projects/m2crypto/
[2] http://sandbox.rulemaker.net/ngps/m2/howto.smime.html
Exato, eu conheço as duas ferramentas. O problema do Chilkat é que é pago e
já elimina a possibildiade de uso. A questão do iText pelo que eu olhei ele
assina arquivos pdf (o que seria exatamente meu problema) porém usando a
assinatura do reader, o que não é o que eu preciso.
Tem de ser uma assinatura para arquivos binários de forma genérica, sem ser
nada específico para um tipo de arquivo.
Mas já agradeço a ajuda e se alguém mais tiver indicações eu agradeço.
2008/9/1 Jociel Andrade <jca...@gmail.com>
> 2008/9/1 Danilo Lucena <ryg...@gmail.com <rygaweb%40gmail.com>>:
>
> > Estou precisando saber como seria possível assinar arquivos digitalmente
> > usando o Python. Eu crio certificados de teste no formato X.509 e preciso
> > assinar qualquer tipo de arquivo usando esse certificado (tanto o tipo A1
> > quanto o A3).
> >
> > A intenção é fazer o seguinte processo:
> > - pegar um arquivo com extensão qualquer
> > - assinar o arquivo com um determinado certificado
> > - gerar um arquivo p7s (que é o arquivo final já assinado)
> >
> > eu consegui fazer essas coisas em meio termo, mas usando .net e o sdk
> > CAPICOM da microsoft. Gostaria mesmo de usar python pois assim tenho mais
> > segurança para aplicações mais pesadas, sem contar que isso é pra um
> projeto
> > open-source.
>
> Existe a biblioteca Chilkat que é comercial [1] e existe uma maneira
> de se fazer utilizando uma biblioteca de java (iText) com Jython.
>
> [1] http://www.example-code.com/python/cert_usePrivateKeyFromPEM.asp
> [2] http://kelpi.com/script/00cd7c
>
> Talvez outras pessoas daqui saibam outra maneira.
>
>
[As partes desta mensagem que não continham texto foram removidas]
Tente o M2Crypto. Ele é um binding Python para o OpenSSL, que realiza
assinatura digital usando o certificado (quando você diz que quer
assinar algo com um certificado eu estou assumindo que é com a chave
privada associada à chave pública do certificado).
Existe um ótimo livro sobre OpenSSL, que aborda o M2Crypto, denominado
"Network Security with OpenSSL".
Eu nunca usei o M2Crypto, uso o OpenSSL com C, mas pelo que li neste
livro a interface para Python é praticamente a mesma.
Ronaldo
Esse post [1] fala sobre assintatura, não necesariamente de um arquivo,
mas de um dado.
> A intenção é fazer o seguinte processo:
> - pegar um arquivo com extensão qualquer
> - assinar o arquivo com um determinado certificado
> - gerar um arquivo p7s (que é o arquivo final já assinado)
>
pyopenssl nele [2]!
> eu consegui fazer essas coisas em meio termo, mas usando .net e o sdk
> CAPICOM da microsoft. Gostaria mesmo de usar python pois assim tenho mais
> segurança para aplicações mais pesadas, sem contar que isso é pra um projeto
> open-source.
>
CAPICOM. Urghhh... utilize pyopenssl!
> Agradeço se alguém puder me dar uma luz. Qualquer material de referência e
> dicas irão me ajudar.
>
> Um abraço a todos.
[1] - http://victorpoluceno.blogspot.com/2008/03/python-ssl-certificado-digital.html
[2] - http://pyopenssl.sourceforge.net/
Atenciosamente,
Victor Godoy Poluceno
Mas acredito que a solução esteja nos links passados. Caso tenha sucesso
repassarei para a lista tutoriais mostrando a implementação.
Muito obrigado a todos.
2008/9/4 Victor Godoy Poluceno <victorp...@gmail.com>
> Em 01/09/08, Danilo Lucena<ryg...@gmail.com <rygaweb%40gmail.com>>
[As partes desta mensagem que não continham texto foram removidas]