| 108 | static void fs_unlock_global(md_store_t *store, apr_pool_t *p); |
| 109 | |
| 110 | static apr_status_t init_store_file(md_store_fs_t *s_fs, const char *fname, |
| 111 | apr_pool_t *p, apr_pool_t *ptemp) |
| 112 | { |
| 113 | md_json_t *json = md_json_create(p); |
| 114 | const char *key64; |
| 115 | apr_status_t rv; |
| 116 | |
| 117 | md_json_setn(MD_STORE_VERSION, json, MD_KEY_STORE, MD_KEY_VERSION, NULL); |
| 118 | |
| 119 | md_data_pinit(&s_fs->key, FS_STORE_KLEN, p); |
| 120 | if (APR_SUCCESS != (rv = md_rand_bytes((unsigned char*)s_fs->key.data, s_fs->key.len, p))) { |
| 121 | return rv; |
| 122 | } |
| 123 | |
| 124 | key64 = md_util_base64url_encode(&s_fs->key, ptemp); |
| 125 | md_json_sets(key64, json, MD_KEY_KEY, NULL); |
| 126 | rv = md_json_fcreatex(json, ptemp, MD_JSON_FMT_INDENT, fname, MD_FPROT_F_UONLY); |
| 127 | memset((char*)key64, 0, strlen(key64)); |
| 128 | |
| 129 | return rv; |
| 130 | } |
| 131 | |
| 132 | static apr_status_t rename_pkey(void *baton, apr_pool_t *p, apr_pool_t *ptemp, |
| 133 | const char *dir, const char *name, |
no test coverage detected