/ plugin.c
plugin.c
 1  /*
 2   * SPDX-FileCopyrightText: 2024 Le'Sec oqs plugin collective
 3   *
 4   * SPDX-License-Identifier: LGPL-3.0-or-later
 5   */
 6  
 7  #include <lscore/environment.h>
 8  #include <lscore/plugin.h>
 9  #include "local.h"
10  
11  /* ---------------------------------------------------------------------- */
12  
13  LSC_EXPORT LE_STATUS LSC_plugin_start(LSC_plugin_t *plugin)
14  {
15    LSC_env_t *env;
16    LE_STATUS sts;
17  
18    LE_status_is_OK(sts = LSC_get_plugin_parent_environment(plugin, &env))
19      && LE_status_is_OK(sts = oqs_register_sigs(env, plugin))
20      && LE_status_is_OK(sts = oqs_register_kems(env, plugin));
21  
22    return sts;
23  }
24  
25  LSC_EXPORT LE_STATUS LSC_plugin_stop(LSC_plugin_t *plugin)
26  {
27    LSC_env_t *env;
28    LE_STATUS sts;
29  
30    LE_status_is_OK(sts = LSC_get_plugin_parent_environment(plugin, &env))
31      && LE_status_is_OK(sts = oqs_deregister_sigs(env, plugin))
32      && LE_status_is_OK(sts = oqs_deregister_kems(env, plugin));
33  
34    return sts;
35  }