| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 09:53:03
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
Alguem ja se deparou com esse erro ou sabe o q pode ser?
Estou tentando criptografar um arquivo usando Bouncy Castle. Já coloquei o jar do provider dentro de jre/lib/ext.. ja fiz download e sobrescrevi os policy files sem restriçoes, já adicionei, dinamicamente, o provider dentro de meu código. Mas quando tento instanciar o Cipher da seguinte forma:
Dá o seguinte erro:
Alguém?
Desde já agradeço à atenção,
Saudações
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 10:00:28
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
a) Que versão do JDK você está usando
b) Quais os arquivos .jar que você acrescentou
c) Se quiser simplesmente "AES/CBC/PKCS5Padding" use o próprio algoritmo da Sun se você estiver usando JDK 1.4.2_08 ou posterior.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 10:16:22
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
a) Estou usando jdk1.5.0_06.
b) "bcprov-jdk15-132.jar", "local_policy.jar" e "US_export_policy.jar".
c) como assim usar o proprio algoritmo da sun? nao entendi. com ficaria meu getInstance do cipher?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 10:22:06
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
a) Como eu mencionei em outro post, PKCS#7 não é um algoritmo e sim um padrão.
b) Baixe estes exemplos do livro Beginning Cryptography with Java (escrito por um dos autores do BouncyCastle) :
http://media.wiley.com/product_ancillary/30/07645963/DOWNLOAD/beg_crypto_examples.zip
c) Além do bcprov, ponha também o bcmail-jdk15-* e os outros (exceto o bctest).
d) Já que está com a mão na massa, use a versão mais nova (1.33)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 10:35:18
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
Por coincidencia ja baixei esses exemplos e até criei um projeto no eclipse pra testa-los.. peguei muita idéia deles. A questao eh q acho q to fazendo tudo certo, porem ta rolando alguma coisa sinistra do tipo jce q nao ta assinada sei la. . esse erro de "Cannot set up certs for trusted CAs" ta me cheirando a algo errado fora do meu código. Já gastei dias tentando resolver, por isso tô aki desesperado.. meu projeto ja ta com o prazo enforcando-me!!!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 10:55:13
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Eclipse? Hum... Pode ser que você esteja com algum problema de classpath. O que ocorre se você roda seus programas "na mão" - em uma linha de comando?
Além disso, é melhor instalar o provider naquele arquivo java.security também.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 11:38:55
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
Num pode ser de classpath pq executei os testes desses exemplos aíi e rodaram.. tipo akele de ver se o provider ta instalado... entao descarto essa hipótese... mas acho q to quase descobrindo o problema... ja ja volto aki pra postar se consegui ou nao heheh... e se eu tiver mais dúvida tbm.. ^^
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 14:51:03
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
Opa! tô conseguindo criptografar já ! Olha como ficou o método de criptografar:
agora quero pegar informações sobre esse arquivo criptografado, isso é possível?? Desse jeito q eu criptografei tem como pegar informações do arquivo se eu tivesse extraído essa chave pública aí de um certificado??
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 14:54:09
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Do jeito que você escreveu, você só gerou um monte de dados criptografados com uma chave simétrica. Pior: cada vez que você rodar esse programa, você vai ter uma chave diferente, e você nunca vai conseguir decifrar esse troço.
Você ainda não leu os exemplos direito...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 15:13:10
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
é q isso daí eu só fiz pra ter certeza q ta tudo instalado e configurado corretamente... Quero saber o seguinte, se eu tivesse usado uma chave publica de um certificado ao inves dessas chaves doidonas aí q eu criei, eu conseguiria recuperar alguma informaçao depois do arquivo encriptado?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 15:31:12
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Vamos explicar como é que funciona o PKCS#7 envelopedData.
Esse formato contém, entre outras coisas:
- Os dados criptografados com uma chave simétrica gerada aleatoriamente;
- A chave simétrica criptografada com a chave pública do destinatário.
Não estou com o padrão aqui para dizer se é possível também mandar mais alguma coisa, como o número de série do certificado X.509 do destinatário ou outra coisa. Só olhando o padrão.
O destinatário deve fazer o seguinte:
- Decifrar a chave simétrica, usando a sua chave privada.
- Decifrar os dados, usando a chave simétrica decifrada.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 17:06:12
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
Então vc se refere a esse exemplo dakele pacote q falou no inicio né?!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 17:43:24
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Acho que é esse mesmo.
Recipient = Destinatário
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2006 12:56:54
|
TiagoFoil
JavaGuru
![[Avatar]](/images/avatar/bdcc41211aa62a8f10f26d1a2d1727bf.jpg)
Membro desde: 22/02/2005 19:46:49
Mensagens: 205
Offline
|
Hum.. Esse conceito de Recipient aí ta me confundindo pra caramba. Fiz minha versão desse exemplo aí pra carregar do token, mas até agora num deu certo.. acho q esse treco de recipiente ser o destinatário q ta me confundindo.. o recipiente nesse momento aki Como pode pegar um arquivo encriptado de um recipiente entao? afinal o que ele ta fazendo nessa linha??
Desde já agradeço a atenção,
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2006 13:38:10
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
O tal exemplo que você está mostrando é um exemplo com "ida e volta" - ou seja, tem a parte que envelopa dados com PKCS#7, e a parte que decifra os tais dados.
|
|
|
 |
|
|