Author: ngie
Date: Sat Nov  1 22:00:46 2014
New Revision: 273952
URL: https://svnweb.freebsd.org/changeset/base/273952

Log:
  Port h_hash and t_sha2 to FreeBSD
  
  t_sha2 contains dirty copy-paste hacks that need to be fixed with the openssh
  OpenBSD compat layer
  
  Submitted by: pho

Modified:
  head/contrib/netbsd-tests/lib/libc/hash/h_hash.c
  head/contrib/netbsd-tests/lib/libc/hash/t_sha2.c

Modified: head/contrib/netbsd-tests/lib/libc/hash/h_hash.c
==============================================================================
--- head/contrib/netbsd-tests/lib/libc/hash/h_hash.c    Sat Nov  1 21:30:18 
2014        (r273951)
+++ head/contrib/netbsd-tests/lib/libc/hash/h_hash.c    Sat Nov  1 22:00:46 
2014        (r273952)
@@ -35,8 +35,13 @@
 #include <unistd.h>
 #include <string.h>
 #include <md5.h>
+#ifdef __NetBSD__
 #include <sha1.h>
+#endif
 
+#ifdef __FreeBSD__
+#include <sha.h>
+#endif
 
 int mflag, rflag, sflag, tflag;
 
@@ -102,17 +107,32 @@ regress(void)
                        MD5Final(out, &ctx);
                        outlen = 16;
                } else {
+#ifdef __FreeBSD__
+                       SHA_CTX ctx;
+
+                       SHA1_Init(&ctx);
+                       SHA1_Update(&ctx, buf, len);
+#else
                        SHA1_CTX ctx;
 
                        SHA1Init(&ctx);
                        SHA1Update(&ctx, buf, len);
+#endif
                        while (!last &&
                            fgets((char *)buf, sizeof(buf), stdin) != NULL) {
                                len = strlen((char *)buf);
                                CHOMP(buf, len, last);                          
+#ifdef __FreeBSD__
+                               SHA1_Update(&ctx, buf, len);
+#else
                                SHA1Update(&ctx, buf, len);
+#endif
                        }
+#ifdef __FreeBSD__
+                       SHA1_Final(out, &ctx);
+#else
                        SHA1Final(out, &ctx);
+#endif
                        outlen = 20;
                }
                hexdump(out, outlen);

Modified: head/contrib/netbsd-tests/lib/libc/hash/t_sha2.c
==============================================================================
--- head/contrib/netbsd-tests/lib/libc/hash/t_sha2.c    Sat Nov  1 21:30:18 
2014        (r273951)
+++ head/contrib/netbsd-tests/lib/libc/hash/t_sha2.c    Sat Nov  1 22:00:46 
2014        (r273952)
@@ -36,9 +36,23 @@ __RCSID("$NetBSD: t_sha2.c,v 1.3 2012/09
 
 #include <atf-c.h>
 #include <sys/types.h>
+#ifdef __NetBSD__
 #include <sha2.h>
+#endif
 #include <string.h>
 
+#ifdef __FreeBSD__
+#include <openssl/sha.h>
+typedef SHA512_CTX SHA384_CTX;
+/* From /usr/src/crypto/openssh/openbsd-compat/sha2.h */
+#define SHA256_DIGEST_LENGTH           32
+#define SHA256_DIGEST_STRING_LENGTH    (SHA256_DIGEST_LENGTH * 2 + 1)
+#define SHA384_DIGEST_LENGTH           48
+#define SHA384_DIGEST_STRING_LENGTH    (SHA384_DIGEST_LENGTH * 2 + 1)
+#define SHA512_DIGEST_LENGTH           64
+#define SHA512_DIGEST_STRING_LENGTH    (SHA512_DIGEST_LENGTH * 2 + 1)
+#endif
+
 ATF_TC(t_sha256);
 ATF_TC(t_sha384);
 ATF_TC(t_sha512);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to