Я пытаюсь написать SSL-прокси, используя API openssl.Я использую память-био.Я хочу разобраться со случаями чистого выключения и грязного выключения.Предположим, у меня есть src-ssl (клиент-> прокси) и dst-ssl (прокси-> сервер)
В случае чистого выключения, я предполагаю, что сервер отправляет предупреждение закрыть уведомление, яЯ использую приведенный ниже код для обнаружения отключения на моем прокси.
Вопрос 1: Как я могу распространить это на другую сторону, т.е. на клиентский <-> прокси?Если есть запись 1 и предупреждение о записи как часть SSL_read, получу ли я это в этих 2 записях в моем out_buf?
read = SSL_read(ssl, out_buf, *out_buf_len);
if (read > 0) {
success_read_len += read;
*out_buf_len -= read;
out_buf += read;
} else {
ret = SSL_get_error(ssl, read);
if ((ret == SSL_ERROR_ZERO_RETURN) &&
(SSL_get_shutdown(ssl) & SSL_RECEIVED_SHUTDOWN)) {
}
}
Вопрос 2: Если я не получу эти 2 записи в моемвыходной буф, мне нужно передать ту же запись оповещения клиенту?
- Если да, есть ли какие-либо API, которые я могу использовать для получения SSL-записей без использования какого-либо SSL-парсера?
- Или я могу просто вызвать SSL_shutdown () и прочитать этот буфер из BIO и передать его клиенту?
Спасибо,