Я пытаюсь создать соединение Client/Server с SSLEngine в java. Я хотел бы спросить, в чем разница между SSLEngine.getHandshakeStatus()
и SSLEngineResults.getHandshakeStatus().
. Я нашел образец кода Nuno Santos о SSLEngine
и мультиплексировании с NIO API.Разница getHandShakeStatus() в SSLEngine и SSLEngineResults в java
код я имею в виду это:
//some code here
SSLEngineResult.HandshakeStatus hs = engine.getHandshakeStatus();
String clientString = "";
while (hs != SSLEngineResult.HandshakeStatus.FINISHED && hs != SSLEngineResult.HandshakeStatus.NOT_HANDSHAKING)
{
switch (hs)
{
case NEED_UNWRAP:
if (socketChannel.read(peerNetData)< 0)
{
engine.closeInbound();
}
peerNetData.flip();
SSLEngineResult res = engine.unwrap(peerNetData, peerAppData);
peerNetData.compact();
hs = res.getHandshakeStatus();
switch (res.getStatus())
{
case OK:
//TODO something
break;
case BUFFER_UNDERFLOW:
//TODO something
break;
case BUFFER_OVERFLOW:
//TODO something
break;
case CLOSED:
//TODO something
engine.closeInbound();
break;
}
break;
//more code here
Связь с кодом я нашел это: http://onjava.com/pub/a/onjava/2004/11/03/ssl-nio.html?page=last&x-order=date
Пример кода в разделе Ресурсы
Заранее спасибо!
Они должны быть одинаковыми, хотя я сомневаюсь, что вам когда-нибудь понадобится 'SSLEngine.getHandshakeStatus()'. – irreputable