La documentation des puits BIO de mémoire Openssl est here.Chaînes OpenSSL Bio: Clarification sur la documentation
Je crée une chaîne BIO pour transformer des chaînes binaires en chaînes base64. La source/puits est toujours un emplacement de mémoire, ce qui me permet de garder la même chaîne autour. Cependant les données (devraient) aller dans un tampon de mémoire géré par OpenSSL quand j'écris dessus, et elles devraient provenir d'un tampon de mémoire fourni par l'utilisateur quand elles sont lues de la chaîne. BIO_set_mem_buf() est la fonction utilisée pour définir un tampon fourni par l'utilisateur, et je vais définir la propriété BIO_NOCLOSE comme je gère ma mémoire en utilisant new. Maintenant, afin d'utiliser la même chaîne pour l'écriture, j'ai besoin de changer la mémoire bio dans la gestion de sa propre mémoire. Ma question est: "Est-ce que BIO_reset() va revenir à la gestion de sa propre mémoire après qu'un utilisateur ait fourni un tampon personnalisé? Y a-t-il des conséquences de performance d'utiliser une seule chaîne pour ce que je veux faire?
Je suis allé sur le problème en gardant une copie du puits de mémoire BIO et le filtre bio base64 dans la mémoire locale de thread. Quand il a fallu décoder, j'ai créé un nouveau bio mem avec un tampon géré par mon application. –