Move key_usage to more that 8 bits
diff --git a/ChangeLog b/ChangeLog
index 1d7b95a..950eba1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,7 @@
* Support for DTLS 1.0 and 1.2 (RFC 6347).
API Changes
+ * Last argument of x509_crt_check_key_usage() changed from int to unsigned.
* test_ca_list (from certs.h) is renamed to test_cas_pem and is only
available if POLARSSL_PEM_PARSE_C is defined (it never worked without).
* Test certificates in certs.c are no longer guaranteed to be nul-terminated
@@ -33,6 +34,7 @@
Semi-API changes (technically public, morally private)
* Change md_info_t into an opaque structure (use md_get_xxx() accessors).
* Remove sig_oid2 and rename sig_oid1 to sig_oid in x509_crt and x509_crl.
+ * x509_crt.key_usage changed from unsigned char to unsigned int.
Changes
* Support for receiving SSLv2 ClientHello is now disabled by default at
diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h
index 4da8f84..7816801 100644
--- a/include/mbedtls/x509_crt.h
+++ b/include/mbedtls/x509_crt.h
@@ -79,7 +79,7 @@
int ca_istrue; /**< Optional Basic Constraint extension value: 1 if this certificate belongs to a CA, 0 otherwise. */
int max_pathlen; /**< Optional Basic Constraint extension value: The maximum path length to the root certificate. Path length is 1 higher than RFC 5280 'meaning', so 1+ */
- unsigned char key_usage; /**< Optional key usage extension value: See the values in x509.h */
+ unsigned int key_usage; /**< Optional key usage extension value: See the values in x509.h */
x509_sequence ext_key_usage; /**< Optional list of extended key usage OIDs. */
@@ -261,7 +261,7 @@
* (intermediate) CAs the keyUsage extension is automatically
* checked by \c x509_crt_verify().
*/
-int x509_crt_check_key_usage( const x509_crt *crt, int usage );
+int x509_crt_check_key_usage( const x509_crt *crt, unsigned int usage );
#endif /* POLARSSL_X509_CHECK_KEY_USAGE) */
#if defined(POLARSSL_X509_CHECK_EXTENDED_KEY_USAGE)
diff --git a/library/x509_crt.c b/library/x509_crt.c
index 03e6488..b911c4e 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -247,7 +247,7 @@
static int x509_get_key_usage( unsigned char **p,
const unsigned char *end,
- unsigned char *key_usage)
+ unsigned int *key_usage)
{
int ret;
x509_bitstring bs = { 0, 0, NULL };
@@ -1381,7 +1381,7 @@
}
#if defined(POLARSSL_X509_CHECK_KEY_USAGE)
-int x509_crt_check_key_usage( const x509_crt *crt, int usage )
+int x509_crt_check_key_usage( const x509_crt *crt, unsigned int usage )
{
if( ( crt->ext_types & EXT_KEY_USAGE ) != 0 &&
( crt->key_usage & usage ) != usage )