forked from mirrors/kore
make sure this works with latest openssl
This commit is contained in:
parent
1a9197ffeb
commit
58678ff0ad
21
src/keymgr.c
21
src/keymgr.c
|
@ -142,7 +142,7 @@ struct acme_order {
|
||||||
char *domain;
|
char *domain;
|
||||||
};
|
};
|
||||||
|
|
||||||
static char *keymgr_bignum_base64(BIGNUM *);
|
static char *keymgr_bignum_base64(const BIGNUM *);
|
||||||
|
|
||||||
static void keymgr_acme_init(void);
|
static void keymgr_acme_init(void);
|
||||||
static void keymgr_acme_sign(struct kore_msg *, const void *);
|
static void keymgr_acme_sign(struct kore_msg *, const void *);
|
||||||
|
@ -678,9 +678,11 @@ keymgr_ecdsa_sign(struct kore_msg *msg, const void *data, struct key *key)
|
||||||
static void
|
static void
|
||||||
keymgr_acme_init(void)
|
keymgr_acme_init(void)
|
||||||
{
|
{
|
||||||
|
RSA *rsa;
|
||||||
struct key *key;
|
struct key *key;
|
||||||
char *e, *n;
|
char *e, *n;
|
||||||
int needsreg;
|
int needsreg;
|
||||||
|
const BIGNUM *be, *bn;
|
||||||
|
|
||||||
if (acme_provider == NULL)
|
if (acme_provider == NULL)
|
||||||
return;
|
return;
|
||||||
|
@ -703,9 +705,18 @@ keymgr_acme_init(void)
|
||||||
kore_log(LOG_INFO, "loaded existing ACME account key");
|
kore_log(LOG_INFO, "loaded existing ACME account key");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* XXX - OpenSSL 1.1.x probably denies us doing this. */
|
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
||||||
e = keymgr_bignum_base64(key->pkey->pkey.rsa->e);
|
rsa = EVP_PKEY_get0_RSA(key->pkey);
|
||||||
n = keymgr_bignum_base64(key->pkey->pkey.rsa->n);
|
be = RSA_get0_e(rsa);
|
||||||
|
bn = RSA_get0_n(rsa);
|
||||||
|
#else
|
||||||
|
rsa = key->pkey->pkey.rsa;
|
||||||
|
be = rsa->e;
|
||||||
|
bn = rsa->n;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
e = keymgr_bignum_base64(be);
|
||||||
|
n = keymgr_bignum_base64(bn);
|
||||||
|
|
||||||
kore_msg_send(KORE_WORKER_ACME, KORE_ACME_RSAKEY_E, e, strlen(e));
|
kore_msg_send(KORE_WORKER_ACME, KORE_ACME_RSAKEY_E, e, strlen(e));
|
||||||
kore_msg_send(KORE_WORKER_ACME, KORE_ACME_RSAKEY_N, n, strlen(n));
|
kore_msg_send(KORE_WORKER_ACME, KORE_ACME_RSAKEY_N, n, strlen(n));
|
||||||
|
@ -970,7 +981,7 @@ keymgr_x509_ext(X509 *x509, int extnid, const char *fmt, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
keymgr_bignum_base64(BIGNUM *bn)
|
keymgr_bignum_base64(const BIGNUM *bn)
|
||||||
{
|
{
|
||||||
int len;
|
int len;
|
||||||
void *buf;
|
void *buf;
|
||||||
|
|
Loading…
Reference in New Issue