Bonjour,
J'utilise OpenSSL pour programmer une couche sécurisée entre TCP et une application.
j'initialise la couche avec sec_initialize( ) et termine la couche avec un sec_terminate( );
1) sec_initialize( ) doit initialiser entre autres :
a) la méthode utilisée pour l'échange ( TLSv1_method( ), SSLv23_method( ), etc. )
b) et un contexte SSL : SSL_CTX
2) sec_terminate( ) doit desallouer les mémoires allouées dans sec_initialize( ). entre autre b)
J'ai crée une classe sslconfig contenant a) et b)
Code :
- class sslconfig {
- SSL_method *meth;
- SSL_CTX *ctx;
- sslconfig( ){
- meth = SSL_meth( );
- ctx = SSL_CTX_new(meht);
- }
- ~sslconfig( ){
- SSL_free(ctx)
- }
- }
|
Tous les membres / fonction commensant par SSL_ sont des objets d'openSSL.
dans sec_terminate( ) je dois desallouer la mémoire occupée par SSL_CTX.
Mes questions :
Q1) Est-ce que la manière de définir le destructeur dans la classe est correcte ? est ce que j'ai le droit de faire cela ? Est-ce une manière propre de desallouer la mémoire. Ou bien :
Q2) Est ce que je dois ne rien mettre dans ~sslconfig càd : ~sslconfig( ){ } ? Dans ce cas, je dois appeler explicitement SSL_free(ctx) dans sec_terminate( ) càd :
gsslconfig->SSL_free(ctx) ?
Merci d'avance.