+# Now the miscellaneous fixups
+
+if(defined $misc_table{$target}) {
+ my ($enc_ctx, $md_size, $md_ctx_size, $cipher_size, $cipher_ctx_size,
+ $max_md_size, $date_fix) =
+ split(/\s*:\s*/,$misc_table{$target} . ":", -1);
+
+#print "EVP_ENCODE_CTX_SIZE $enc_ctx\n";
+#print "EVP_MD_SIZE $md_size\n";
+#print "EVP_MD_CTX_SIZE $md_ctx_size\n";
+#print "EVP_CIPHER_SIZE $cipher_size\n";
+#print "EVP_CIPHER_CTX_SIZE $cipher_ctx_size\n";
+#print "EVP_MAX_MD_SIZE $max_md_size\n";
+#printf "Date fix: %s\n", $date_fix ? "Yes" : "No";
+
+# Fix the date
+
+if($date_fix) {
+ open (OUT,">crypto/date.h") || die "Can't open date.h";
+ printf OUT "#define DATE \"%s\"\n", scalar gmtime();
+ close(OUT);
+}
+
+open (IN, "crypto/pem/pem.org") || die "Can't open crypto/pem/pem.org";
+open (OUT, ">crypto/pem/pem.h") || die "Can't create crypto/pem/pem.h";
+
+# Now fix up pem.h
+while(<IN>) {
+ chop;
+ s/^(#define EVP_ENCODE_CTX_SIZE).*$/$1 $enc_ctx/;
+ s/^(#define EVP_MD_SIZE).*$/$1 $md_size/;
+ s/^(#define EVP_MD_CTX_SIZE).*$/$1 $md_ctx_size/;
+ s/^(#define EVP_CIPHER_SIZE).*$/$1 $cipher_size/;
+ s/^(#define EVP_CIPHER_CTX_SIZE).*$/$1 $cipher_ctx_size/;
+ s/^(#define EVP_MAX_MD_SIZE).*$/$1 $max_md_size/;
+ print OUT "$_\n";
+}
+
+close (IN);
+close (OUT);
+
+
+}
+