12345678910111213141516171819202122232425262728293031323334 |
- #include "Python.h"
- #include "../_ssl.h"
- #include "openssl/bio.h"
- /* BIO_s_mem() to PyBytes
- */
- static PyObject *
- _PySSL_BytesFromBIO(_sslmodulestate *state, BIO *bio)
- {
- long size;
- char *data = NULL;
- size = BIO_get_mem_data(bio, &data);
- if (data == NULL || size < 0) {
- PyErr_SetString(PyExc_ValueError, "Not a memory BIO");
- return NULL;
- }
- return PyBytes_FromStringAndSize(data, size);
- }
- /* BIO_s_mem() to PyUnicode
- */
- static PyObject *
- _PySSL_UnicodeFromBIO(_sslmodulestate *state, BIO *bio, const char *error)
- {
- long size;
- char *data = NULL;
- size = BIO_get_mem_data(bio, &data);
- if (data == NULL || size < 0) {
- PyErr_SetString(PyExc_ValueError, "Not a memory BIO");
- return NULL;
- }
- return PyUnicode_DecodeUTF8(data, size, error);
- }
|