Assinatura Digital

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.