Estou desenvolvendo um pequeno assinador digital, porém buscando exemplos na internet encontrei um que gera o contéudo do arquivo e a assinatura da seguinte forma;
[code] //Gerar assinatura
geradorAss.update(txtContrato.getBytes());
byte[] assinatura = geradorAss.sign();
//Grava os dados do contrato e a assinatura num arquivo properties
Properties p = new Properties();
p.put("dadosContrato", txtContrato);
p.put("assinatura", CriptoUtils.byteArrayToHexString(assinatura));
//arquivo gravado dado.properties
p.store(new FileOutputStream("dado.properties"), null);[/code]
utliza Properties e ae na validação é feito da seguinte forma:
[code]Properties p = new Properties();
p.load(new FileInputStream("dado.properties"));
//Captura os dados do contrato
String contratoAssinado = (String)p.get("dadosContrato");
System.out.println("Contrato: " + contratoAssinado);
System.out.println("Assinatura: " + (String)p.get("assinatura"));
//Captura assinatura
byte[] assinatura = CriptoUtils.hexStringToByteArray((String)p.get("assinatura"));
//valida o dado
sig.update(contratoAssinado.getBytes());
//faz a verificação da integridade dos dados e da validade da assinatura
if (sig.verify(assinatura)) {
System.out.println("Assinatura oK!");
} else {
System.out.println("Erro, assinatura não confere!");
}[/code]
O que gostaria de fazer é gravar essa assinatura em um arquivo word e não no properties.
Estou usando a biblioteca POI da apache para leitura de .doc creio que ela possa ser utilizada para gravação. A minha dúvida é como concatenar a string de assinatura e recupera-la como é feito no Properties.