SOAP响应MTOM附件无法解密(AES算法)

时间:2015-03-19 03:00:53

标签: soap aes mtom

我正在使用soap客户端,并且在响应附件的读取(和解密)方面存在问题。附件使用MTOM机制包含在响应中,并通过AES128-CBC算法加密(秘密密钥包含在响应xml标头中)。

以下是回复的基本结构:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope>

.. the xml data that includes the secret key for the attachment 
decryption usign AES algorithm.

</soapenv:Envelope>

--MIMEBoundaryurn_uuid_174A74CB7221A5AF451426570004765
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <urn:uuid:174A74CB7221A5AF451426570004768@apache.org>

iQ�<]�+)B�ل�$O:���'�zT�F�x�����������}�t��݄��')#^��&�a�p}Q��¨גZ<G�%_"��|
Ps�<���'9��g](ǧ">�l��� ��XPrJ��jM�f�<$�)Q�*��
--MIMEBoundaryurn_uuid_174A74CB7221A5AF451426570004765--

MTOM机制意味着附件以二进制字符串形式发送(不对base64进行编码)。正如我的建议,这个二进制字符串是必须通过AES解密的。但不幸的是,应用AES解密的长度错误 - AES使用16字节块,因此密码必须是16的倍数。但它不会,例如在上面的示例中,附件长度为250.

也许我错过了某些东西,在解密之前必须对附件二进制字符串应用某种转换?

P.S。响应xml主体的一部分使用相同的算法(AES128-CBC)加密,但是作为base64密码发送,必须对其进行解码以获取二进制字符串然后解密。哪个工作正常。解码后的体密码具有适当的长度 - 16的倍数,可以毫无问题地解密。

提前感谢您的任何想法或想法!

1 个答案:

答案 0 :(得分:0)

旧的,但是从Oracle大约一半的页面

  

注意:流式MTOM不能与消息一起使用   加密。

http://docs.oracle.com/cd/E14571_01/web.1111/e13734/mtom.htm#WSADV141