/** Decrypt an EncryptedData element referenced by dataRefURI */
  private WSDataRef decryptDataRef(Document doc, String dataRefURI, byte[] decryptedData)
      throws WSSecurityException {
    if (log.isDebugEnabled()) {
      log.debug("found data reference: " + dataRefURI);
    }
    //
    // Find the encrypted data element referenced by dataRefURI
    //
    Element encryptedDataElement = ReferenceListProcessor.findEncryptedDataElement(doc, dataRefURI);
    //
    // Prepare the SecretKey object to decrypt EncryptedData
    //
    String symEncAlgo = X509Util.getEncAlgo(encryptedDataElement);
    SecretKey symmetricKey = WSSecurityUtil.prepareSecretKey(symEncAlgo, decryptedData);

    return ReferenceListProcessor.decryptEncryptedData(
        doc, dataRefURI, encryptedDataElement, symmetricKey, symEncAlgo);
  }