Saber criptografar e decriptografar um arquivo eu já sei, e até consifo fazê-lo. Porém, surgiu a necessidade de, ao carregar um arquivo qualquer, saber se este está criptografado. Também é de extrema necessidades saber quem criptografou aquele arquivo, ou seja, pegando informações sobre a chave pública usada na sua criptografia.
Tendo em vista que estou usando política de criptografia de chaves pública, ou seja, criptografo com a pública e decriptografo com a privada, gostaria de saber se alguém pode me ajudar.
O arquivo segue algum padrão (S/MIME, PGP, PKCS#7)?
Se não seguir, então fica difícil, porque pode ser, por exemplo, que você nem saiba qual é a chave pública porque ela não foi enviada junto com o arquivo.
TiagoFoil
Não segue não. Tipo, o arquivo pode ser um de qualquer tipo, txt, doc, etc. Criptografando usando o Cipher do Java, existe alguma forma de inserir informações nele? ou de pegar alguma dele ja encriptado por esse processo? Existe algum padrão pra fazer isso? tipo inserindo metadados?
Portanto, você tem de seguir algum padrão para fazer as coisas direito. No seu caso, recomenda-se usar o PKCS#7 “envelopedData”, que inclui tudo que é necessário (os dados criptografados, a informação de chave pública, etc.)
TiagoFoil
Pois é, andei pesquisando… o software assinador desenvolvido pelo ITI utiliza esse padrão. Vou me “apegar” a ele então. Muito obrigado pelas elucidações cara! vlw Thingol!
Abraços
T
thingol
Para você pegar um atalho:
Use o BouncyCastle
As RFCs que definem o PKCS#7 chamam-no de “Cryptographic Message Standard” ou CMS
No BouncyCastle você tem de procurar as classes no pacote org.bouncycastle.cms (bcmail--.jar).
TiagoFoil
Ah, entao é esse fulando q é o tal do CMS enveloped data q o manual de condutas técnicas tanto fala!
Bom saber!!
Ow, mais uma vez obrigado! Eu levar um tempim bom pra descobrir isso.
Brigadao thingol!