| 214 | } |
| 215 | |
| 216 | static apr_status_t setup_key_authz(md_acme_authz_cha_t *cha, md_acme_authz_t *authz, |
| 217 | md_acme_t *acme, apr_pool_t *p, int *pchanged) |
| 218 | { |
| 219 | const char *thumb64, *key_authz; |
| 220 | apr_status_t rv; |
| 221 | |
| 222 | (void)authz; |
| 223 | assert(cha); |
| 224 | assert(cha->token); |
| 225 | |
| 226 | *pchanged = 0; |
| 227 | if (APR_SUCCESS == (rv = md_jws_pkey_thumb(&thumb64, p, acme->acct_key))) { |
| 228 | key_authz = apr_psprintf(p, "%s.%s", cha->token, thumb64); |
| 229 | if (cha->key_authz) { |
| 230 | if (strcmp(key_authz, cha->key_authz)) { |
| 231 | /* Hu? Did the account change key? */ |
| 232 | cha->key_authz = NULL; |
| 233 | } |
| 234 | } |
| 235 | if (!cha->key_authz) { |
| 236 | cha->key_authz = key_authz; |
| 237 | *pchanged = 1; |
| 238 | } |
| 239 | } |
| 240 | return rv; |
| 241 | } |
| 242 | |
| 243 | static apr_status_t cha_http_01_setup(md_acme_authz_cha_t *cha, md_acme_authz_t *authz, |
| 244 | md_acme_t *acme, md_store_t *store, |
no test coverage detected