mirror of
git://git.psyced.org/git/psyclpc
synced 2024-08-15 03:20:16 +00:00
openssl upgrade fix provided by Shokara Kou, thank you
This commit is contained in:
parent
2d84973630
commit
ea71901049
2 changed files with 24 additions and 17 deletions
|
@ -153,7 +153,8 @@ tls_verify_callback(int preverify_ok, X509_STORE_CTX *ctx)
|
||||||
char buf[512];
|
char buf[512];
|
||||||
printf("%s tls_verify_callback(%d, ...)\n", time_stamp(), preverify_ok);
|
printf("%s tls_verify_callback(%d, ...)\n", time_stamp(), preverify_ok);
|
||||||
|
|
||||||
X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert), buf, sizeof buf);
|
X509_NAME_oneline(X509_get_issuer_name(X509_STORE_CTX_get_current_cert(ctx)),
|
||||||
|
buf, sizeof buf);
|
||||||
printf("depth %d: %s\n", X509_STORE_CTX_get_error_depth(ctx), buf);
|
printf("depth %d: %s\n", X509_STORE_CTX_get_error_depth(ctx), buf);
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -1270,11 +1271,11 @@ f_tls_check_certificate(svalue_t *sp)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* extension name */
|
/* extension name */
|
||||||
len = OBJ_obj2txt(buf, sizeof buf, ext->object, 1);
|
len = OBJ_obj2txt(buf, sizeof buf, X509_EXTENSION_get_object(ext), 1);
|
||||||
if (len > sizeof buf) len = sizeof buf;
|
if (len > sizeof buf) len = sizeof buf;
|
||||||
put_c_n_string(&(extensions->item[3 * i]), (char *)buf, len);
|
put_c_n_string(&(extensions->item[3 * i]), (char *)buf, len);
|
||||||
|
|
||||||
len = OBJ_obj2txt(buf, sizeof buf, ext->object, 0);
|
len = OBJ_obj2txt(buf, sizeof buf, X509_EXTENSION_get_object(ext), 0);
|
||||||
if (len > sizeof buf) len = sizeof buf;
|
if (len > sizeof buf) len = sizeof buf;
|
||||||
put_c_n_string(&(extensions->item[3 * i + 1]), (char *)buf, len);
|
put_c_n_string(&(extensions->item[3 * i + 1]), (char *)buf, len);
|
||||||
|
|
||||||
|
@ -1573,16 +1574,18 @@ f_tls_query_connection_info (svalue_t *sp)
|
||||||
vector_t * rc;
|
vector_t * rc;
|
||||||
rc = allocate_array(TLS_INFO_MAX);
|
rc = allocate_array(TLS_INFO_MAX);
|
||||||
#ifdef HAS_OPENSSL
|
#ifdef HAS_OPENSSL
|
||||||
|
SSL_SESSION *sess = SSL_get_session(ip->tls_session);
|
||||||
|
unsigned int sess_id_len;
|
||||||
put_c_string(&(rc->item[TLS_CIPHER])
|
put_c_string(&(rc->item[TLS_CIPHER])
|
||||||
, SSL_get_cipher(ip->tls_session));
|
, SSL_get_cipher(ip->tls_session));
|
||||||
put_number(&(rc->item[TLS_COMP]), ip->tls_session->session->compress_meth);
|
put_number(&(rc->item[TLS_COMP]), SSL_SESSION_get_compress_id(sess));
|
||||||
put_number(&(rc->item[TLS_KX]), 0);
|
put_number(&(rc->item[TLS_KX]), 0);
|
||||||
put_number(&(rc->item[TLS_MAC]), 0);
|
put_number(&(rc->item[TLS_MAC]), 0);
|
||||||
put_c_string(&(rc->item[TLS_PROT])
|
put_c_string(&(rc->item[TLS_PROT])
|
||||||
, SSL_get_version(ip->tls_session));
|
, SSL_get_version(ip->tls_session));
|
||||||
/* warning: this session id is binary .. maybe fix it someday */
|
/* warning: this session id is binary .. maybe fix it someday */
|
||||||
put_c_n_string(&(rc->item[TLS_SESSION])
|
put_c_n_string(&(rc->item[TLS_SESSION])
|
||||||
, (char*) ip->tls_session->session->session_id, ip->tls_session->session->session_id_length);
|
, (char*) SSL_SESSION_get_id(sess, &sess_id_len), sess_id_len);
|
||||||
#elif defined(HAS_GNUTLS)
|
#elif defined(HAS_GNUTLS)
|
||||||
put_number(&(rc->item[TLS_CIPHER])
|
put_number(&(rc->item[TLS_CIPHER])
|
||||||
, gnutls_cipher_get(ip->tls_session));
|
, gnutls_cipher_get(ip->tls_session));
|
||||||
|
@ -1751,7 +1754,7 @@ v_hash(svalue_t *sp, int num_arg)
|
||||||
errorf("GnuTLS does not provide the hash API.\n");
|
errorf("GnuTLS does not provide the hash API.\n");
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
#else
|
#else
|
||||||
EVP_MD_CTX ctx;
|
EVP_MD_CTX *ctx;
|
||||||
const EVP_MD *md = NULL;
|
const EVP_MD *md = NULL;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
string_t *digest;
|
string_t *digest;
|
||||||
|
@ -1808,16 +1811,18 @@ v_hash(svalue_t *sp, int num_arg)
|
||||||
|
|
||||||
memsafe(tmp = xalloc(hashlen), hashlen, "hash result");
|
memsafe(tmp = xalloc(hashlen), hashlen, "hash result");
|
||||||
|
|
||||||
EVP_DigestInit(&ctx, md);
|
ctx = EVP_MD_CTX_new();
|
||||||
EVP_DigestUpdate(&ctx, (unsigned char *)get_txt(sp->u.str),
|
|
||||||
|
EVP_DigestInit(ctx, md);
|
||||||
|
EVP_DigestUpdate(ctx, (unsigned char *)get_txt(sp->u.str),
|
||||||
mstrsize(sp->u.str));
|
mstrsize(sp->u.str));
|
||||||
EVP_DigestFinal(&ctx, (unsigned char*)tmp, &len);
|
EVP_DigestFinal(ctx, (unsigned char*)tmp, &len);
|
||||||
|
|
||||||
while (--iterations > 0)
|
while (--iterations > 0)
|
||||||
{
|
{
|
||||||
EVP_DigestInit(&ctx, md);
|
EVP_DigestInit(ctx, md);
|
||||||
EVP_DigestUpdate(&ctx, tmp, len);
|
EVP_DigestUpdate(ctx, tmp, len);
|
||||||
EVP_DigestFinal(&ctx, (unsigned char*)tmp, &len);
|
EVP_DigestFinal(ctx, (unsigned char*)tmp, &len);
|
||||||
}
|
}
|
||||||
|
|
||||||
memsafe(digest = alloc_mstring(2 * len), 2 & len, "hex hash result");
|
memsafe(digest = alloc_mstring(2 * len), 2 & len, "hex hash result");
|
||||||
|
@ -1855,7 +1860,7 @@ f_hmac(svalue_t *sp)
|
||||||
errorf("OpenSSL wasn't configured to provide the hmac() method.");
|
errorf("OpenSSL wasn't configured to provide the hmac() method.");
|
||||||
/* NOTREACHED */
|
/* NOTREACHED */
|
||||||
#else
|
#else
|
||||||
HMAC_CTX ctx;
|
HMAC_CTX *ctx;
|
||||||
const EVP_MD *md = NULL;
|
const EVP_MD *md = NULL;
|
||||||
char *tmp;
|
char *tmp;
|
||||||
string_t *digest;
|
string_t *digest;
|
||||||
|
@ -1895,9 +1900,11 @@ f_hmac(svalue_t *sp)
|
||||||
|
|
||||||
memsafe(tmp = xalloc(hashlen), hashlen, "hash result");
|
memsafe(tmp = xalloc(hashlen), hashlen, "hash result");
|
||||||
|
|
||||||
HMAC_Init(&ctx, get_txt(sp[-1].u.str), mstrsize(sp[-1].u.str), md);
|
ctx = HMAC_CTX_new();
|
||||||
HMAC_Update(&ctx, (unsigned char*)get_txt(sp->u.str), mstrsize(sp->u.str));
|
|
||||||
HMAC_Final(&ctx, (unsigned char*)tmp, &len);
|
HMAC_Init(ctx, get_txt(sp[-1].u.str), mstrsize(sp[-1].u.str), md);
|
||||||
|
HMAC_Update(ctx, (unsigned char*)get_txt(sp->u.str), mstrsize(sp->u.str));
|
||||||
|
HMAC_Final(ctx, (unsigned char*)tmp, &len);
|
||||||
|
|
||||||
memsafe(digest = alloc_mstring(2 * hashlen)
|
memsafe(digest = alloc_mstring(2 * hashlen)
|
||||||
, 2 & hashlen, "hmac result");
|
, 2 & hashlen, "hmac result");
|
||||||
|
|
|
@ -17,7 +17,7 @@ version_longtype="stable"
|
||||||
# A timestamp, to be used by bumpversion and other scripts.
|
# A timestamp, to be used by bumpversion and other scripts.
|
||||||
# It can be used, for example, to 'touch' this file on every build, thus
|
# It can be used, for example, to 'touch' this file on every build, thus
|
||||||
# forcing revision control systems to add it on every checkin automatically.
|
# forcing revision control systems to add it on every checkin automatically.
|
||||||
version_stamp="Wed Mar 1 18:42:11 CET 2017"
|
version_stamp="Mon Nov 21 10:43:28 AM CET 2022"
|
||||||
|
|
||||||
# Okay, LDMUD is using 3.x.x so to avoid conflicts let's just use 4.x.x
|
# Okay, LDMUD is using 3.x.x so to avoid conflicts let's just use 4.x.x
|
||||||
version_major=4
|
version_major=4
|
||||||
|
|
Loading…
Reference in a new issue