aboutsummaryrefslogtreecommitdiffstats
path: root/src/kvilib/net/KviSSL.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kvilib/net/KviSSL.cpp')
-rw-r--r--src/kvilib/net/KviSSL.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/kvilib/net/KviSSL.cpp b/src/kvilib/net/KviSSL.cpp
index 1adaf7e28..9741373cc 100644
--- a/src/kvilib/net/KviSSL.cpp
+++ b/src/kvilib/net/KviSSL.cpp
@@ -953,12 +953,23 @@ void KviSSLCertificate::extractSignature()
m_szSignatureContents = "";
- for(i = 0; i < sig->length; i++)
+#if OPENSSL_VERSION_NUMBER >= 0x10100005L
+ int length = ASN1_STRING_length(sig);
+#else
+ int length = sig->length;
+#endif
+ for(i = 0; i < length; i++)
{
if(m_szSignatureContents.hasData())
m_szSignatureContents.append(":");
+#if OPENSSL_VERSION_NUMBER >= 0x10100005L
+ const unsigned char *data = ASN1_STRING_get0_data(sig);
+ m_szSignatureContents.append(hexdigits[(data[i] & 0xf0) >> 4]);
+ m_szSignatureContents.append(hexdigits[(data[i] & 0x0f)]);
+#else
m_szSignatureContents.append(hexdigits[(sig->data[i] & 0xf0) >> 4]);
m_szSignatureContents.append(hexdigits[(sig->data[i] & 0x0f)]);
+#endif
}
}