SESSION_SETUP 响应的消息头须将<OpCode>设置为OC_SESSION_SETUP。SESSION_SETUP 响应的<ResponseCode>根据SESSION_SETUP请求而变化。如果SESSION_SETUP 请求是成功的并且服务器不等待客户端返回的会话密钥,则其必须被设置为RC_SUCCESS。
除非请求是要求<HS_SESSION_KEY_EXCHANGE>,否则SESSION_SETUP 响应的消息体为空。在这种情况下,SESSION_SETUP 响应的消息体可能包含来自服务器的加密的会话密钥,或者服务器的公钥,它们将用于会话密钥交换。 具体格式取决于 SESSION_SETUP 请求的<HS_SESSION_KEY_EXCHANGE>内容。如果SESSION_SETUP 请求给出<ClientCipher KeyExchange>或<HdlCipher KeyExchange>,SESSION_SETUP 响应的消息体将包含来自服务器的加密的会话密钥,并且被定义如下:
<RequestDigest>是SESSION_SETUP请求的消息摘要。<EncryptedSessionKey>是会话密钥,是使用SESSION_SETUP 请求提供的公钥来加密的。如果SESSION_SETUP 请求的<KeyExchangeData>提供了客户端的公钥,服务器将只反馈<EncryptedSessionKey>。<EncryptionAlgorithm>:(可选)UTF8编码的字符串,用于标识会话密钥使用的加密算法。(www.xing528.com)
如果SESSION_SETUP 请求中已经给出<ServerCipher KeyExchange>,服务器须在SESSION_SETUP 响应中提供其公钥。公钥可以由客户端在后续SESSION_EXCHANGEKEY 请求(定义如下)中使用,用于会话密钥的交换。在这种情况下,SESSION_SETUP 响应的消息头须将其<ResponseCode>设置为RC_SESSION_EXCHANGEKEY。SESSION_SETUP响应的消息体须包括服务器的公钥,其定义如下:
<RequestDigest>是SESSION_SETUP 请求的消息摘要。<Public Key for Session Key Exchange>:服务器提供用于密钥交换的公钥。它的编码与HS_SITE 值里的<PublicKey>记录格式相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。