outputStream.write(iv);
outputStream.flush();
if(data instanceof JAXBData){
((JAXBData)data).writeTo(cos);// write in chucks
}else if(data instanceof StreamWriterData){
StAXC14nCanonicalizerImpl exc14n = new StAXEXC14nCanonicalizerImpl();
//((StAXEXC14nCanonicalizerImpl)exc14n).setInclusivePrefixList(new ArrayList());
NamespaceContextEx nsEx = ((StreamWriterData)data).getNamespaceContext();
Iterator<Binding> iter = nsEx.iterator();
while(iter.hasNext()){
Binding binding = iter.next();
exc14n.writeNamespace(binding.getPrefix(),binding.getNamespaceURI());
}
if(logger.isLoggable(Level.FINEST)){
exc14n.setStream(new ByteArrayOutputStream());
}else{
exc14n.setStream(cos);
}
try {
((StreamWriterData)data).write(exc14n);
if(logger.isLoggable(Level.FINEST)){
byte [] cd=((ByteArrayOutputStream)exc14n.getOutputStream()).toByteArray();
logger.log(Level.FINEST, LogStringsMessages.WSS_1951_ENCRYPTED_DATA_VALUE(new String(cd)));
cos.write(cd);
}
} catch (javax.xml.stream.XMLStreamException ex) {
logger.log(Level.SEVERE, LogStringsMessages.WSS_1908_ERROR_WRITING_ENCRYPTEDDATA(),ex);