Use ASN1_STRING_get0_data() instead of the deprecated ASN1_STRING_data()
Use HMAC_Init_ex() instead of the deprecated HMAC_Init()

Index: lib/https.c
--- lib/https.c.orig
+++ lib/https.c
@@ -231,7 +231,7 @@ _SSL_check_server_cert(SSL *ssl, const char *hostname)
         for (i = 0; i < n && match != 1; i++) {
             const GENERAL_NAME *altname = sk_GENERAL_NAME_value(altnames, i);
             if (hostnametype == altname->type) {
-                char *altptr = (char *)ASN1_STRING_data(altname->d.ia5);
+                const char *altptr = (const char *)ASN1_STRING_get0_data(altname->d.ia5);
                 size_t altsize = (size_t)ASN1_STRING_length(altname->d.ia5);
 
                 if (altname->type == GEN_DNS) {
@@ -258,7 +258,7 @@ _SSL_check_server_cert(SSL *ssl, const char *hostname)
             if ((tmp = X509_NAME_ENTRY_get_data(
                        X509_NAME_get_entry(subject, i))) != NULL &&
                 ASN1_STRING_type(tmp) == V_ASN1_UTF8STRING) {
-                const char *pattern = (char *)ASN1_STRING_data(tmp);
+                const char *pattern = (const char *)ASN1_STRING_get0_data(tmp);
                 size_t patternsize = (size_t)ASN1_STRING_length(tmp);
                 if (patternsize == strlen(pattern)) {
                     if (!strchr(pattern, '*')) {
@@ -977,7 +977,7 @@ https_send(struct https_request *req, const char *meth
         ctx.errstr = strerror(errno);
         return (HTTPS_ERR_LIB);
     }
-    HMAC_Init(hmac, skey, strlen(skey), EVP_sha512());
+    HMAC_Init_ex(hmac, skey, strlen(skey), EVP_sha512(), NULL);
     HMAC_Update(hmac, (unsigned char *)p, strlen(p));
     HMAC_Final(hmac, MD, NULL);
     HMAC_CTX_free(hmac);
