Passing in a NULL md is no longer supported

Index: RSA.xs
--- RSA.xs.orig
+++ RSA.xs
@@ -115,6 +115,7 @@ int get_digest_length(int hash_method)
 unsigned char* get_message_digest(SV* text_SV, int hash_method)
 {
     STRLEN text_length;
+    static unsigned char md[EVP_MAX_MD_SIZE];
     unsigned char* text;
 
     text = (unsigned char*) SvPV(text_SV, text_length);
@@ -122,31 +123,31 @@ unsigned char* get_message_digest(SV* text_SV, int has
     switch(hash_method)
     {
         case NID_md5:
-            return MD5(text, text_length, NULL);
+            return MD5(text, text_length, md);
             break;
         case NID_sha1:
-            return SHA1(text, text_length, NULL);
+            return SHA1(text, text_length, md);
             break;
 #ifdef SHA512_DIGEST_LENGTH
         case NID_sha224:
-            return SHA224(text, text_length, NULL);
+            return SHA224(text, text_length, md);
             break;
         case NID_sha256:
-            return SHA256(text, text_length, NULL);
+            return SHA256(text, text_length, md);
             break;
         case NID_sha384:
-            return SHA384(text, text_length, NULL);
+            return SHA384(text, text_length, md);
             break;
         case NID_sha512:
-            return SHA512(text, text_length, NULL);
+            return SHA512(text, text_length, md);
             break;
 #endif
         case NID_ripemd160:
-            return RIPEMD160(text, text_length, NULL);
+            return RIPEMD160(text, text_length, md);
             break;
 #ifdef WHIRLPOOL_DIGEST_LENGTH
         case NID_whirlpool:
-            return WHIRLPOOL(text, text_length, NULL);
+            return WHIRLPOOL(text, text_length, md);
             break;
 #endif
         default:
