static int _libssh2_dtor(LIBSSH2_SESSION * session, void **abstract) { struct crypt_ctx **cctx = (struct crypt_ctx **) abstract; if (cctx && *cctx) { _libssh2_cipher_dtor(&(*cctx)->h); LIBSSH2_FREE(session, *cctx); *abstract = NULL; } return 0; }
static int aes_ctr_cleanup(EVP_CIPHER_CTX *ctx) /* cleanup ctx */ { aes_ctr_ctx *c = EVP_CIPHER_CTX_get_app_data(ctx); if (c == NULL) { return 1; } if (c->aes_ctx != NULL) { _libssh2_cipher_dtor(c->aes_ctx); free(c->aes_ctx); } free(c); return 1; }
static int aes_ctr_cleanup(EVP_CIPHER_CTX *ctx) /* cleanup ctx */ { aes_ctr_ctx *c = EVP_CIPHER_CTX_get_app_data(ctx); if(c == NULL) { return 1; } if(c->aes_ctx != NULL) { #ifdef HAVE_OPAQUE_STRUCTS EVP_CIPHER_CTX_free(c->aes_ctx); #else _libssh2_cipher_dtor(c->aes_ctx); free(c->aes_ctx); #endif } free(c); return 1; }