diff options
author | Ted Unangst <tedu@cvs.openbsd.org> | 2014-11-16 17:39:10 +0000 |
---|---|---|
committer | Ted Unangst <tedu@cvs.openbsd.org> | 2014-11-16 17:39:10 +0000 |
commit | 4ca4597aa8f2c5415d02fa082aa0f26f8f854c85 (patch) | |
tree | e0730725f7a9779edc742f8f2a335071c40884ef /sys/crypto | |
parent | 8a93269e19baba44ca661f8656b81932b78044c3 (diff) |
Defining the interface in terms of char * means most callers are
required to cast their pointers, which is ugly and possibly error
prone. accidentally casting an int to a pointer, for example, instead
of the address of the int. implicit void * casting is safer.
This updates the kernel hash interfaces to use void *. Similar changes
are possible for userland. I think it's safe, but there may be some
peculiar source compatbility issues there, so let's just do the kernel
first.
ok dlg millert
Diffstat (limited to 'sys/crypto')
-rw-r--r-- | sys/crypto/md5.c | 5 | ||||
-rw-r--r-- | sys/crypto/md5.h | 4 | ||||
-rw-r--r-- | sys/crypto/sha1.c | 9 | ||||
-rw-r--r-- | sys/crypto/sha1.h | 4 | ||||
-rw-r--r-- | sys/crypto/sha2.c | 12 | ||||
-rw-r--r-- | sys/crypto/sha2.h | 8 |
6 files changed, 23 insertions, 19 deletions
diff --git a/sys/crypto/md5.c b/sys/crypto/md5.c index ac90af873e4..1b85f1badbb 100644 --- a/sys/crypto/md5.c +++ b/sys/crypto/md5.c @@ -1,4 +1,4 @@ -/* $OpenBSD: md5.c,v 1.2 2011/01/11 15:42:05 deraadt Exp $ */ +/* $OpenBSD: md5.c,v 1.3 2014/11/16 17:39:09 tedu Exp $ */ /* * This code implements the MD5 message-digest algorithm. @@ -62,8 +62,9 @@ MD5Init(MD5_CTX *ctx) * of bytes. */ void -MD5Update(MD5_CTX *ctx, const unsigned char *input, size_t len) +MD5Update(MD5_CTX *ctx, const void *inputptr, size_t len) { + const uint8_t *input = inputptr; size_t have, need; /* Check how many bytes we already have and how many more we need. */ diff --git a/sys/crypto/md5.h b/sys/crypto/md5.h index 99d60316ea5..24f5c4e0d53 100644 --- a/sys/crypto/md5.h +++ b/sys/crypto/md5.h @@ -1,4 +1,4 @@ -/* $OpenBSD: md5.h,v 1.2 2012/12/05 23:20:15 deraadt Exp $ */ +/* $OpenBSD: md5.h,v 1.3 2014/11/16 17:39:09 tedu Exp $ */ /* * This code implements the MD5 message-digest algorithm. @@ -26,7 +26,7 @@ typedef struct MD5Context { __BEGIN_DECLS void MD5Init(MD5_CTX *); -void MD5Update(MD5_CTX *, const u_int8_t *, size_t) +void MD5Update(MD5_CTX *, const void *, size_t) __attribute__((__bounded__(__string__,2,3))); void MD5Final(u_int8_t [MD5_DIGEST_LENGTH], MD5_CTX *) __attribute__((__bounded__(__minbytes__,1,MD5_DIGEST_LENGTH))); diff --git a/sys/crypto/sha1.c b/sys/crypto/sha1.c index c555bed77dc..8e624aeaf82 100644 --- a/sys/crypto/sha1.c +++ b/sys/crypto/sha1.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sha1.c,v 1.9 2011/01/11 15:50:40 deraadt Exp $ */ +/* $OpenBSD: sha1.c,v 1.10 2014/11/16 17:39:09 tedu Exp $ */ /* * SHA-1 in C @@ -121,8 +121,9 @@ SHA1Init(SHA1_CTX *context) /* Run your data through this. */ void -SHA1Update(SHA1_CTX *context, const unsigned char *data, unsigned int len) +SHA1Update(SHA1_CTX *context, const void *dataptr, unsigned int len) { + const uint8_t *data = dataptr; unsigned int i; unsigned int j; @@ -153,9 +154,9 @@ SHA1Final(unsigned char digest[SHA1_DIGEST_LENGTH], SHA1_CTX *context) finalcount[i] = (unsigned char)((context->count >> ((7 - (i & 7)) * 8)) & 255); /* Endian independent */ } - SHA1Update(context, (unsigned char *)"\200", 1); + SHA1Update(context, "\200", 1); while ((context->count & 504) != 448) { - SHA1Update(context, (unsigned char *)"\0", 1); + SHA1Update(context, "\0", 1); } SHA1Update(context, finalcount, 8); /* Should cause a SHA1Transform() */ diff --git a/sys/crypto/sha1.h b/sys/crypto/sha1.h index ee31467cc7a..66171aba5d5 100644 --- a/sys/crypto/sha1.h +++ b/sys/crypto/sha1.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sha1.h,v 1.5 2007/09/10 22:19:42 henric Exp $ */ +/* $OpenBSD: sha1.h,v 1.6 2014/11/16 17:39:09 tedu Exp $ */ /* * SHA-1 in C @@ -20,7 +20,7 @@ typedef struct { void SHA1Init(SHA1_CTX * context); void SHA1Transform(u_int32_t state[5], const unsigned char buffer[SHA1_BLOCK_LENGTH]); -void SHA1Update(SHA1_CTX *context, const unsigned char *data, unsigned int len); +void SHA1Update(SHA1_CTX *context, const void *data, unsigned int len); void SHA1Final(unsigned char digest[SHA1_DIGEST_LENGTH], SHA1_CTX *context); #endif /* _SHA1_H_ */ diff --git a/sys/crypto/sha2.c b/sys/crypto/sha2.c index 01a8e4d1bfe..9648c308a1f 100644 --- a/sys/crypto/sha2.c +++ b/sys/crypto/sha2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sha2.c,v 1.8 2011/01/11 15:42:05 deraadt Exp $ */ +/* $OpenBSD: sha2.c,v 1.9 2014/11/16 17:39:09 tedu Exp $ */ /* * FILE: sha2.c @@ -444,8 +444,9 @@ SHA256Transform(SHA2_CTX *context, const u_int8_t *data) #endif /* SHA2_UNROLL_TRANSFORM */ void -SHA256Update(SHA2_CTX *context, const u_int8_t *data, size_t len) +SHA256Update(SHA2_CTX *context, const void *dataptr, size_t len) { + const uint8_t *data = dataptr; size_t freespace, usedspace; /* Calling with no data is valid (we do nothing) */ @@ -730,8 +731,9 @@ SHA512Transform(SHA2_CTX *context, const u_int8_t *data) #endif /* SHA2_UNROLL_TRANSFORM */ void -SHA512Update(SHA2_CTX *context, const u_int8_t *data, size_t len) +SHA512Update(SHA2_CTX *context, const void *dataptr, size_t len) { + const uint8_t *data = dataptr; size_t freespace, usedspace; /* Calling with no data is valid (we do nothing) */ @@ -861,9 +863,9 @@ SHA384Init(SHA2_CTX *context) } void -SHA384Update(SHA2_CTX *context, const u_int8_t *data, size_t len) +SHA384Update(SHA2_CTX *context, const void *data, size_t len) { - SHA512Update((SHA2_CTX *)context, data, len); + SHA512Update(context, data, len); } void diff --git a/sys/crypto/sha2.h b/sys/crypto/sha2.h index 6bbdb80b79e..461b49b9810 100644 --- a/sys/crypto/sha2.h +++ b/sys/crypto/sha2.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sha2.h,v 1.4 2012/12/05 23:20:15 deraadt Exp $ */ +/* $OpenBSD: sha2.h,v 1.5 2014/11/16 17:39:09 tedu Exp $ */ /* * FILE: sha2.h @@ -62,19 +62,19 @@ typedef struct _SHA2_CTX { __BEGIN_DECLS void SHA256Init(SHA2_CTX *); -void SHA256Update(SHA2_CTX *, const u_int8_t *, size_t) +void SHA256Update(SHA2_CTX *, const void *, size_t) __attribute__((__bounded__(__string__,2,3))); void SHA256Final(u_int8_t[SHA256_DIGEST_LENGTH], SHA2_CTX *) __attribute__((__bounded__(__minbytes__,1,SHA256_DIGEST_LENGTH))); void SHA384Init(SHA2_CTX *); -void SHA384Update(SHA2_CTX *, const u_int8_t *, size_t) +void SHA384Update(SHA2_CTX *, const void *, size_t) __attribute__((__bounded__(__string__,2,3))); void SHA384Final(u_int8_t[SHA384_DIGEST_LENGTH], SHA2_CTX *) __attribute__((__bounded__(__minbytes__,1,SHA384_DIGEST_LENGTH))); void SHA512Init(SHA2_CTX *); -void SHA512Update(SHA2_CTX *, const u_int8_t *, size_t) +void SHA512Update(SHA2_CTX *, const void *, size_t) __attribute__((__bounded__(__string__,2,3))); void SHA512Final(u_int8_t[SHA512_DIGEST_LENGTH], SHA2_CTX *) __attribute__((__bounded__(__minbytes__,1,SHA512_DIGEST_LENGTH))); |