e9d64c75f7769ab7f411213c3689566b6fe74498
galt
  Fri Nov 29 00:33:03 2024 -0800
fixes for MD5, evp functions mostly for OpenSSL3, not 1.1

diff --git src/utils/twoBitDup/twoBitDup.c src/utils/twoBitDup/twoBitDup.c
index fa80e63..7e22282 100644
--- src/utils/twoBitDup/twoBitDup.c
+++ src/utils/twoBitDup/twoBitDup.c
@@ -69,34 +69,34 @@
     if ((hel = hashLookup(seqHash, seq->dna)) != NULL)
 	printf("%s and %s are identical\n", index->name, (char *)hel->val);
     else
 	hel = hashAdd(seqHash, seq->dna, index->name);
     if (keyListFile)
 	{
 /* This used to be extremely slow:
 #include "md5.h"
        char *md5Sum = md5HexForString(seq->dna);
        fprintf(keyListFile, "%s\t%s\n", md5Sum, index->name);
        freeMem(md5Sum);
  * changed to use MD5() in openssl 2020-12-04:
  */
 	unsigned char md5Result[MD5_DIGEST_LENGTH];
 
-#if OPENSSL_VERSION_NUMBER < 0x10100000L   // # 1.1
-	MD5((unsigned char *)seq->dna, strlen(seq->dna), md5Result);
-#else
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L   // > #3.0
         EVP_Q_digest(NULL, "MD5", NULL, seq->dna, strlen(seq->dna), md5Result, NULL);
+#else
+	MD5((unsigned char *)seq->dna, strlen(seq->dna), md5Result);
 #endif  
 
 	int i;
 	struct dyString *ds = dyStringNew(MD5_DIGEST_LENGTH);
 	for(i = 0; i < MD5_DIGEST_LENGTH; i++)
 	    {
 	    dyStringPrintf(ds, "%02x", md5Result[i]);
 	    }
 	fprintf(keyListFile, "%s\t%s\n", ds->string, index->name);
 	dyStringFree(&ds);
 	}
     freeDnaSeq(&seq);
     }
 }