code: def _clean_ctx(self):
          
          try:
              if self.ctx is not None:
                  self.__ctxcleanup(self.ctx)
                  libcrypto.EVP_CIPHER_CTX_free(self.ctx)
                  del self.ctx
          except AttributeError:
              pass
          self.cipher_finalized = True
docs: Cleans up cipher ctx and deallocates it