Convert another md5 to sha512.
Index: in6_ifattach.c
===================================================================
RCS file: /cvs/src/sys/netinet6/in6_ifattach.c,v
retrieving revision 1.77
diff -u -p -r1.77 in6_ifattach.c
--- in6_ifattach.c 20 Nov 2014 09:55:57 -0000 1.77
+++ in6_ifattach.c 3 Dec 2014 19:37:14 -0000
@@ -37,7 +37,7 @@
#include <sys/kernel.h>
#include <sys/syslog.h>
-#include <crypto/md5.h>
+#include <crypto/sha2.h>
#include <net/if.h>
#include <net/if_var.h>
@@ -80,15 +80,15 @@ int in6_ifattach_loopback(struct ifnet *
* IEEE802/EUI64 address sources.
* The goal here is to get an interface identifier that is
* (1) random enough and (2) does not change across reboot.
- * We currently use MD5(hostname) for it.
+ * We currently use SHA512(hostname) for it.
*
* in6 - upper 64bits are preserved
*/
int
get_last_resort_ifid(struct ifnet *ifp, struct in6_addr *in6)
{
- MD5_CTX ctxt;
- u_int8_t digest[16];
+ SHA2_CTX ctx;
+ u_int8_t digest[SHA512_DIGEST_LENGTH];
#if 0
/* we need at least several letters as seed for ifid */
@@ -97,10 +97,9 @@ get_last_resort_ifid(struct ifnet *ifp,
#endif
/* generate 8 bytes of pseudo-random value. */
- bzero(&ctxt, sizeof(ctxt));
- MD5Init(&ctxt);
- MD5Update(&ctxt, hostname, hostnamelen);
- MD5Final(digest, &ctxt);
+ SHA512Init(&ctx);
+ SHA512Update(&ctx, hostname, hostnamelen);
+ SHA512Final(digest, &ctx);
/* assumes sizeof(digest) > sizeof(ifid) */
bcopy(digest, &in6->s6_addr[8], 8);
@@ -500,8 +499,8 @@ in6_nigroup(struct ifnet *ifp, const cha
{
const char *p;
u_int8_t *q;
- MD5_CTX ctxt;
- u_int8_t digest[16];
+ SHA2_CTX ctx;
+ u_int8_t digest[SHA512_DIGEST_LENGTH];
u_int8_t l;
u_int8_t n[64]; /* a single label must not exceed 63 chars */
@@ -522,11 +521,10 @@ in6_nigroup(struct ifnet *ifp, const cha
}
/* generate 8 bytes of pseudo-random value. */
- bzero(&ctxt, sizeof(ctxt));
- MD5Init(&ctxt);
- MD5Update(&ctxt, &l, sizeof(l));
- MD5Update(&ctxt, n, l);
- MD5Final(digest, &ctxt);
+ SHA512Init(&ctx);
+ SHA512Update(&ctx, &l, sizeof(l));
+ SHA512Update(&ctx, n, l);
+ SHA512Final(digest, &ctx);
bzero(sa6, sizeof(*sa6));
sa6->sin6_family = AF_INET6;