openssl заголовок ssl - PullRequest
       8

openssl заголовок ssl

2 голосов
/ 29 марта 2010

есть ли дополнительный заголовок, который предоставляется openssl перед отправкой сообщения в сокет?

Спасибо

1 Ответ

1 голос
/ 29 марта 2010

Я полагаю, вы говорите о TLS ("Защищенный TCP").

Тогда да. После установления связи между клиентом и сервером сообщения «данных» обычно начинаются с 3 специальных байтов (если я хорошо помню), которые указывают на уровень SSL, что кадр зашифрован.

С другой стороны, вы не можете предполагать, что размер зашифрованного кадра будет таким же, как у необработанного кадра / данных.

Здесь вы видите пример функции на C / C ++.

    bool isCiphered(const char* buf, size_t buflen)
    {
        if (buflen < 3)
        {
            return false;
        }

        uint8_t c = buf[0];

        switch (c)
        {
            case 0x14:
            case 0x15:
            case 0x16:
            case 0x17:
                {
                    uint8_t v1 = buf[1];
                    uint8_t v2 = buf[2];

                    /* TLS v1 */
                    if ((v1 == 0x03) && (v2 == 0x01))
                    {
                        return true;
                    }

                    /* DTLS v1 */
                    if ((v1 == 0xfe) && (v2 == 0xff))
                    {
                        return true;
                    }

                    break;
                }
        }

        return false;
    }

Мне пришлось адаптировать свой существующий код, так что я не уверен, что он компилируется, но вы должны понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...