Я новичок в openSSL и хочу знать о различиях в использовании функций SSL_ * и BIO_ * для чтения и записи данных. Также было бы здорово, если бы у нас были некоторые примеры, рассказывающие об упрощениях для обоих.
Спасибо Рави
SSL_*
работают на SSL-соединении. BIO_*
означают базовый input and output
которые используются для операций чтения и записи на разных устройствах ввода/вывода, таких как файл, буфер памяти или даже соединение сокетов.
SSL_*
выполняет требуемое шифрование/дешифрование данных, тогда как BIO_*
- нет.
Есть много вариантов использования для обоих.
Для SSL_*
всякий раз, когда вы хотите сделать SSL-клиент или сервер, вам это нужно.
Для чтения и записи из файла или буфера памяти вам может понадобиться функция BIO_*
. i2d_
использованием является некоторые функции i2d_
или d2i_
которые записывают или читают на/с устройства ввода/вывода. Например, вы хотите записать свой открытый ключ в BIO_*
который может быть буфером памяти или файлом, вы можете открыть вход в структуру BIO *
. Ваш код записи не будет различать файл или буфер и будет писать через BIO *