summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnil Madhavapeddy <avsm@cvs.openbsd.org>2003-10-07 22:17:28 +0000
committerAnil Madhavapeddy <avsm@cvs.openbsd.org>2003-10-07 22:17:28 +0000
commitc76eb04ac867dbc8c6fbf9145f3b694883fb63e7 (patch)
tree221bb3dbe0073290a4edeaf8d9b57e076954c8e0 /include
parent47362784b4beb068c3781701f6a1b3708cb84041 (diff)
corrent __bounded__ attribute for the *Data functions, and add
__minbytes__ checks where appropriate. tested by itojun@ fixes PR 3505 from Janjaap van Velthooven
Diffstat (limited to 'include')
-rw-r--r--include/md4.h21
-rw-r--r--include/md5.h21
-rw-r--r--include/rmd160.h21
-rw-r--r--include/sha1.h21
4 files changed, 56 insertions, 28 deletions
diff --git a/include/md4.h b/include/md4.h
index ba0202273fa..4dc26c04697 100644
--- a/include/md4.h
+++ b/include/md4.h
@@ -1,5 +1,5 @@
/* MD4.H - header file for MD4C.C
- * $OpenBSD: md4.h,v 1.10 2003/08/01 17:38:33 avsm Exp $
+ * $OpenBSD: md4.h,v 1.11 2003/10/07 22:17:27 avsm Exp $
*/
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
@@ -37,13 +37,20 @@ typedef struct MD4Context {
__BEGIN_DECLS
void MD4Init(MD4_CTX *);
-void MD4Update(MD4_CTX *, const unsigned char *, size_t);
-void MD4Final(unsigned char [16], MD4_CTX *);
-void MD4Transform(u_int32_t [4], const unsigned char [64]);
-char * MD4End(MD4_CTX *, char *);
-char * MD4File(char *, char *);
+void MD4Update(MD4_CTX *, const unsigned char *, size_t)
+ __attribute__((__bounded__(__string__,2,3)));
+void MD4Final(unsigned char [16], MD4_CTX *)
+ __attribute__((__bounded__(__minbytes__,1,16)));
+void MD4Transform(u_int32_t [4], const unsigned char [64])
+ __attribute__((__bounded__(__minbytes__,1,4)))
+ __attribute__((__bounded__(__minbytes__,2,64)));
+char * MD4End(MD4_CTX *, char *)
+ __attribute__((__bounded__(__minbytes__,2,33)));
+char * MD4File(char *, char *)
+ __attribute__((__bounded__(__minbytes__,2,33)));
char * MD4Data(const unsigned char *, size_t, char *)
- __attribute__((__bounded__(__string__,3,2)));
+ __attribute__((__bounded__(__string__,1,2)))
+ __attribute__((__bounded__(__minbytes__,3,33)));
__END_DECLS
#endif /* _MD4_H_ */
diff --git a/include/md5.h b/include/md5.h
index b490c489c09..2c419aeb211 100644
--- a/include/md5.h
+++ b/include/md5.h
@@ -1,5 +1,5 @@
/* MD5.H - header file for MD5C.C
- * $OpenBSD: md5.h,v 1.10 2003/08/01 17:38:33 avsm Exp $
+ * $OpenBSD: md5.h,v 1.11 2003/10/07 22:17:27 avsm Exp $
*/
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
@@ -38,13 +38,20 @@ typedef struct MD5Context {
__BEGIN_DECLS
void MD5Init(MD5_CTX *);
-void MD5Update(MD5_CTX *, const unsigned char *, size_t);
-void MD5Final(unsigned char [16], MD5_CTX *);
-void MD5Transform(u_int32_t [4], const unsigned char [64]);
-char * MD5End(MD5_CTX *, char *);
-char * MD5File(char *, char *);
+void MD5Update(MD5_CTX *, const unsigned char *, size_t)
+ __attribute__((__bounded__(__string__,2,3)));
+void MD5Final(unsigned char [16], MD5_CTX *)
+ __attribute__((__bounded__(__minbytes__,1,16)));
+void MD5Transform(u_int32_t [4], const unsigned char [64])
+ __attribute__((__bounded__(__minbytes__,1,4)))
+ __attribute__((__bounded__(__minbytes__,2,64)));
+char * MD5End(MD5_CTX *, char *)
+ __attribute__((__bounded__(__minbytes__,2,33)));
+char * MD5File(char *, char *)
+ __attribute__((__bounded__(__minbytes__,2,33)));
char * MD5Data(const unsigned char *, size_t, char *)
- __attribute__ ((__bounded__(__string__,3,2)));
+ __attribute__((__bounded__(__string__,1,2)))
+ __attribute__((__bounded__(__minbytes__,3,33)));
__END_DECLS
#endif /* _MD5_H_ */
diff --git a/include/rmd160.h b/include/rmd160.h
index de1e034c170..1c5b885a0db 100644
--- a/include/rmd160.h
+++ b/include/rmd160.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: rmd160.h,v 1.10 2003/08/01 17:38:33 avsm Exp $ */
+/* $OpenBSD: rmd160.h,v 1.11 2003/10/07 22:17:27 avsm Exp $ */
/*
* Copyright (c) 2001 Markus Friedl. All rights reserved.
*
@@ -36,13 +36,20 @@ typedef struct RMD160Context {
__BEGIN_DECLS
void RMD160Init(RMD160_CTX *);
-void RMD160Transform(u_int32_t [5], const u_char [64]);
-void RMD160Update(RMD160_CTX *, const u_char *, u_int32_t);
-void RMD160Final(u_char [20], RMD160_CTX *);
-char *RMD160End(RMD160_CTX *, char *);
-char *RMD160File(char *, char *);
+void RMD160Transform(u_int32_t [5], const u_char [64])
+ __attribute__((__bounded__(__minbytes__,1,5)))
+ __attribute__((__bounded__(__minbytes__,2,64)));
+void RMD160Update(RMD160_CTX *, const u_char *, u_int32_t)
+ __attribute__((__bounded__(__string__,2,3)));
+void RMD160Final(u_char [20], RMD160_CTX *)
+ __attribute__((__bounded__(__minbytes__,1,20)));
+char *RMD160End(RMD160_CTX *, char *)
+ __attribute__((__bounded__(__minbytes__,2,41)));
+char *RMD160File(char *, char *)
+ __attribute__((__bounded__(__minbytes__,2,41)));
char *RMD160Data(const u_char *, size_t, char *)
- __attribute__((__bounded__(__string__,3,2)));
+ __attribute__((__bounded__(__string__,1,2)))
+ __attribute__((__bounded__(__minbytes__,3,41)));
__END_DECLS
#endif /* _RMD160_H */
diff --git a/include/sha1.h b/include/sha1.h
index 9df09a81b0d..f6bb73d04ab 100644
--- a/include/sha1.h
+++ b/include/sha1.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: sha1.h,v 1.14 2003/08/01 17:38:33 avsm Exp $ */
+/* $OpenBSD: sha1.h,v 1.15 2003/10/07 22:17:27 avsm Exp $ */
/*
* SHA-1 in C
@@ -18,14 +18,21 @@ typedef struct {
#include <sys/cdefs.h>
__BEGIN_DECLS
-void SHA1Transform(u_int32_t state[5], const u_char buffer[64]);
+void SHA1Transform(u_int32_t state[5], const u_char buffer[64])
+ __attribute__((__bounded__(__minbytes__,1,5)))
+ __attribute__((__bounded__(__minbytes__,2,64)));
void SHA1Init(SHA1_CTX *context);
-void SHA1Update(SHA1_CTX *context, const u_char *data, u_int len);
-void SHA1Final(u_char digest[20], SHA1_CTX *context);
-char *SHA1End(SHA1_CTX *, char *);
-char *SHA1File(char *, char *);
+void SHA1Update(SHA1_CTX *context, const u_char *data, u_int len)
+ __attribute__((__bounded__(__string__,2,3)));
+void SHA1Final(u_char digest[20], SHA1_CTX *context)
+ __attribute__((__bounded__(__minbytes__,1,20)));
+char *SHA1End(SHA1_CTX *, char *)
+ __attribute__((__bounded__(__minbytes__,2,41)));
+char *SHA1File(char *, char *)
+ __attribute__((__bounded__(__minbytes__,2,41)));
char *SHA1Data(const u_char *, size_t, char *)
- __attribute__((__bounded__ (__string__,3,2)));
+ __attribute__((__bounded__(__string__,1,2)))
+ __attribute__((__bounded__(__minbytes__,3,41)));
__END_DECLS
#define SHA1_DIGESTSIZE 20