- (djm) Use standard OpenSSL functions in auth-skey.c. Patch from
   Chris, the Young One <cky@pobox.com>
diff --git a/ChangeLog b/ChangeLog
index 118416f..a17e435 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
  - (djm) Fix brace mismatch from Corinna Vinschen <vinschen@cygnus.com>
  - (djm) Stop shadow expiry checking from preventing logins with NIS. Based
    on fix from HARUYAMA Seigo <haruyama@nt.phys.s.u-tokyo.ac.jp>
+ - (djm) Use standard OpenSSL functions in auth-skey.c. Patch from
+   Chris, the Young One <cky@pobox.com>
 
 20000701
  - (djm) Fix Tru64 SIA problems reported by John P Speno <speno@isc.upenn.edu>
diff --git a/auth-skey.c b/auth-skey.c
index d66d84e..208d380 100644
--- a/auth-skey.c
+++ b/auth-skey.c
@@ -4,7 +4,7 @@
 
 #include "ssh.h"
 #include "packet.h"
-#include <sha1.h>
+#include <openssl/sha.h>
 
 /* from %OpenBSD: skeylogin.c,v 1.32 1999/08/16 14:46:56 millert Exp % */
 
@@ -74,7 +74,6 @@
 	size_t secretlen = 0;
 	SHA_CTX ctx;
 	char *p, *u;
-	char md[SHA_DIGEST_LENGTH];
 
 	/*
 	 * Base first 4 chars of seed on hostname.
@@ -99,7 +98,7 @@
 
 		SHA1_Init(&ctx);
 		SHA1_Update(&ctx, username, strlen(username));
-		SHA1_End(&ctx, up);
+		SHA1_Final(up, &ctx);
 
 		/* Collapse the hash */
 		ptr = hash_collapse(up);
@@ -133,7 +132,7 @@
 		SHA1_Init(&ctx);
 		SHA1_Update(&ctx, secret, secretlen);
 		SHA1_Update(&ctx, username, strlen(username));
-		SHA1_End(&ctx, up);
+		SHA1_Final(up, &ctx);
 		
 		/* Zero out */
 		memset(secret, 0, secretlen);
@@ -141,7 +140,7 @@
 		/* Now hash the hash */
 		SHA1_Init(&ctx);
 		SHA1_Update(&ctx, up, strlen(up));
-		SHA1_End(&ctx, up);
+		SHA1_Final(up, &ctx);
 		
 		ptr = hash_collapse(up + 4);
 		
diff --git a/scp.c b/scp.c
index 0a89985..5f849cc 100644
--- a/scp.c
+++ b/scp.c
@@ -56,6 +56,14 @@
 /* For progressmeter() -- number of seconds before xfer considered "stalled" */
 #define STALLTIME	5
 
+/* Progress meter bar */
+#define BAR \
+	"************************************************************"\
+	"************************************************************"\
+	"************************************************************"\
+	"************************************************************"
+#define MAX_BARLENGTH (sizeof(BAR) - 1)
+
 /* Visual statistics about files as they are transferred. */
 void progressmeter(int);
 
@@ -1172,13 +1180,11 @@
 	snprintf(buf, sizeof(buf), "\r%-20.20s %3d%% ", curfile, ratio);
 
 	barlength = getttywidth() - 51;
+	barlength = (barlength <= MAX_BARLENGTH)?barlength:MAX_BARLENGTH;
 	if (barlength > 0) {
 		i = barlength * ratio / 100;
 		snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
-			 "|%.*s%*s|", i,
-			 "*****************************************************************************"
-			 "*****************************************************************************",
-			 barlength - i, "");
+			 "|%.*s%*s|", i, BAR, barlength - i, "");
 	}
 	i = 0;
 	abbrevsize = cursize;