--- a/tls.c 2006-11-25 19:52:08.000000000 +0100 +++ b/tls.c 2026-10-16 22:48:04.873700588 +0200 @@ -73,10 +73,12 @@ void tls_init(char *egd_sock) { printf("egd_sock is %s\n", egd_sock); #ifdef HAVE_RAND_STATUS if (RAND_status() != 1) { +#ifndef OPENSSL_NO_EGD if ( RAND_egd(egd_sock) == -1 ) { fprintf(stderr, "egd_sock is %s\n", egd_sock); sys_err("RAND_egd failed\n"); } +#endif if (RAND_status() != 1) sys_err("ssl_init: System without /dev/urandom, PRNG seeding must be done manually.\r\n"); } @@ -297,14 +299,14 @@ long tls_cert2(struct user_data *ud, int subjectaltname = 1; if (!(x509_meth = X509V3_EXT_get(x509_ext))) break; - data1 = x509_ext->value->data; + data1 = ASN1_STRING_get0_data(X509_EXTENSION_get_data(x509_ext)); #if (OPENSSL_VERSION_NUMBER > 0x00907000L) if (x509_meth->it) - ext_str = ASN1_item_d2i(NULL, &data1, x509_ext->value->length, ASN1_ITEM_ptr(x509_meth->it)); + ext_str = ASN1_item_d2i(NULL, &data1, ASN1_STRING_length(X509_EXTENSION_get_data(x509_ext)), ASN1_ITEM_ptr(x509_meth->it)); else - ext_str = x509_meth->d2i(NULL, &data1, x509_ext->value->length); + ext_str = x509_meth->d2i(NULL, &data1, ASN1_STRING_length(X509_EXTENSION_get_data(x509_ext))); #else - ext_str = x509_meth->d2i(NULL, &data1, x509_ext->value->length); + ext_str = x509_meth->d2i(NULL, &data1, ASN1_STRING_length(X509_EXTENSION_get_data(x509_ext))); #endif val = x509_meth->i2v(x509_meth, ext_str, NULL); for (j = 0; j < sk_CONF_VALUE_num(val); j++) {