【发布时间】:2008-12-12 13:34:27
【问题描述】:
我正在开发一个接口,该接口将加密的字节流作为输入——可能是一个非常大的——生成或多或少相同格式的输出。
输入格式是这样的:
{N byte envelope}
- encryption key IDs &c.
{X byte encrypted body}
输出格式相同。
这是通常的用例(当然是大量伪代码):
Message incomingMessage = new Message (inputStream);
ProcessingResults results = process (incomingMessage);
MessageEnvelope messageEnvelope = new MessageEnvelope ();
// set message encryption options &c. ...
Message outgoingMessage = new Message ();
outgoingMessage.setEnvelope (messageEnvelope);
writeProcessingResults (results, message);
message.writeToOutput (outputStream);
对我来说,使用同一个对象来封装这种行为似乎是有意义的,但我不知道应该如何去做。一次加载所有加密的正文是不切实际的;我需要能够对其进行流式传输(因此,我将使用某种输入流过滤器对其进行解密),但同时我需要能够写出该对象的新实例。什么是使这项工作的好方法? Message 内部应该是什么样子?
【问题讨论】: