[Fido-syspopup] Fix Coverity Issue
[platform/core/account/fido-syspopup.git] / src / key_storage_handler.c
1
2 #include "util.h"
3 #include <buxton2.h>
4
5 #define PWD_VERIFY_STATUS_TS_KEY "db/account/lock_pwd_verify_status_key"
6 #define PWD_VERIFY_STATUS_KEY "db/account/lock_pwd_verify_status_ts_key"
7
8 /*1. auth_plugin sends ts to syspopup via bundle*/
9 /*2. auth_plugin waits until PWD_VERIFY_STATUS_TS_KEY is same as set in 1 */
10 /*3. syspopup verifies user password*/
11 /*4. syspopup sets PWD_VERIFY_STATUS_KEY = true/false*/
12 /*5. syspopup sets PWD_VERIFY_STATUS_TS_KEY = ts sent during 1 and exits*/
13 /*6. When auth_plugin finds PWD_VERIFY_STATUS_TS_KEY = same as ts sent during 1*/
14 /*7. auth_plugin gets PWD_VERIFY_STATUS_KEY*/
15
16 int
17 ks_notify(const char *ts, bool data)
18 {
19         _INFO("fido ts = [%s]", ts);
20
21         int r;
22         struct buxton_client *cli;
23         struct buxton_layer *layer;
24         struct buxton_value *val_bool = buxton_value_create_boolean(data);
25         struct buxton_value *val_ts = buxton_value_create_string(ts);
26
27         r = buxton_open(&cli, NULL, NULL);
28         if (r) {
29                 _ERR("buxton_open=[%d]", r);
30                 buxton_value_free(val_bool);
31                 buxton_value_free(val_ts);
32                 return -1;
33         }
34
35         layer = buxton_create_layer("system");
36         _INFO("buxton layer=[%p]", layer);
37
38         r = buxton_set_value_sync(cli, layer, PWD_VERIFY_STATUS_KEY, val_bool);
39         _INFO("buxton_set_value_sync=[%d]", r);
40         if (r != 0) {
41                 char err_buf[1024];
42                 strerror_r(errno, err_buf, sizeof(err_buf));
43                 _ERR("buxton_set_value_sync=[%s]", err_buf);
44 //              r = buxton_key_create("fido", PWD_VERIFY_STATUS_KEY, "system", INT32);
45 //              _INFO("buxton_key_create=[%d]", r);
46
47 //              r = buxton_set_value_sync(cli, layer, PWD_VERIFY_STATUS_KEY, val_bool);
48 //              _INFO("buxton_set_value_sync=[%d]", r);
49         }
50         r = buxton_set_value_sync(cli, layer, PWD_VERIFY_STATUS_TS_KEY, val_ts);
51         _INFO("buxton_set_value_sync=[%d]", r);
52         if (r != 0) {
53                 char err_buf[1024];
54                 strerror_r(errno, err_buf, sizeof(err_buf));
55                 _ERR("buxton_set_value_sync=[%s]", err_buf);
56         }
57
58         buxton_value_free(val_bool);
59         buxton_value_free(val_ts);
60
61         buxton_free_layer(layer);
62
63         buxton_close(cli);
64
65         return 0;
66
67 }