MCPcopy Create free account
hub / github.com/apache/httpd / md_pkey_spec_from_json

Function md_pkey_spec_from_json

modules/md/md_crypt.c:427–460  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

425}
426
427md_pkey_spec_t *md_pkey_spec_from_json(struct md_json_t *json, apr_pool_t *p)
428{
429 md_pkey_spec_t *spec = apr_pcalloc(p, sizeof(*spec));
430 const char *s;
431 long l;
432
433 if (spec) {
434 s = md_json_gets(json, MD_KEY_TYPE, NULL);
435 if (!s || !apr_cstr_casecmp("Default", s)) {
436 spec->type = MD_PKEY_TYPE_DEFAULT;
437 }
438 else if (!apr_cstr_casecmp("RSA", s)) {
439 spec->type = MD_PKEY_TYPE_RSA;
440 l = md_json_getl(json, MD_KEY_BITS, NULL);
441 if (l >= MD_PKEY_RSA_BITS_MIN) {
442 spec->params.rsa.bits = (unsigned int)l;
443 }
444 else {
445 spec->params.rsa.bits = MD_PKEY_RSA_BITS_DEF;
446 }
447 }
448 else if (!apr_cstr_casecmp("EC", s)) {
449 spec->type = MD_PKEY_TYPE_EC;
450 s = md_json_gets(json, MD_KEY_CURVE, NULL);
451 if (s) {
452 spec->params.ec.curve = apr_pstrdup(p, s);
453 }
454 else {
455 spec->params.ec.curve = NULL;
456 }
457 }
458 }
459 return spec;
460}
461
462static apr_status_t spec_from_json(void **pvalue, md_json_t *json, apr_pool_t *p, void *baton)
463{

Callers 2

spec_from_jsonFunction · 0.85
md_pkeys_spec_from_jsonFunction · 0.85

Calls 2

md_json_getsFunction · 0.85
md_json_getlFunction · 0.85

Tested by

no test coverage detected