From 91e4c140b3196b03bce94ce86538c23b56b1b1a5 Mon Sep 17 00:00:00 2001
From: Michele Calgaro <michele.calgaro@yahoo.it>
Date: Fri, 16 Oct 2026 15:19:44 +0900
Subject: Add support for openssl 4

Co-authored-by: Opencode/Big Pickle
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
---
 src/kvilib/net/kvi_ssl.cpp | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/kvilib/net/kvi_ssl.cpp b/src/kvilib/net/kvi_ssl.cpp
index ce0bdab7..7d31293a 100644
--- a/src/kvilib/net/kvi_ssl.cpp
+++ b/src/kvilib/net/kvi_ssl.cpp
@@ -637,13 +637,17 @@ void KviSSLCertificate::extractSignature()
 	int i = OBJ_obj2nid(sig_alg->algorithm);
 	m_szSignatureType = (i == NID_undef) ? __tr("Unknown") : OBJ_nid2ln(i);
 
-	m_szSignatureContents = "";
-
-	for(i = 0;i < signature->length;i++)
+	m_szSignatureContents.clear();
+	if (signature)
 	{
-		if(m_szSignatureContents.hasData())m_szSignatureContents.append(":");
-		m_szSignatureContents.append(hexdigits[(signature->data[i] & 0xf0) >> 4]);
-		m_szSignatureContents.append(hexdigits[(signature->data[i] & 0x0f)]);
+		int len = ASN1_STRING_length(signature);
+		const unsigned char *data = ASN1_STRING_get0_data(signature);
+		for (i = 0; i < len; ++i)
+		{
+			if (m_szSignatureContents.hasData()) m_szSignatureContents.append(":");
+			m_szSignatureContents.append(hexdigits[(data[i] & 0xf0) >> 4]);
+			m_szSignatureContents.append(hexdigits[(data[i] & 0x0f)]);
+		}
 	}
 }
 
-- 
cgit v1.2.3

