Fix boolean values according to DER specs

In BER encoding, any boolean with a non-zero value is considered as
TRUE. However, DER encoding require a value of 255 (0xFF) for TRUE.

This commit makes `mbedtls_asn1_write_bool` function uses `255` instead
of `1` for BOOLEAN values.

With this fix, boolean values are now reconized by OS X keychain (tested
on OS X 10.11).

Fixes #318.
This commit is contained in:
Jonathan Leroy 2015-10-14 09:41:56 +02:00 committed by Manuel Pégourié-Gonnard
parent c4baf98ce6
commit b76e43651e

View file

@ -192,7 +192,7 @@ int asn1_write_bool( unsigned char **p, unsigned char *start, int boolean )
if( *p - start < 1 )
return( POLARSSL_ERR_ASN1_BUF_TOO_SMALL );
*--(*p) = (boolean) ? 1 : 0;
*--(*p) = (boolean) ? 255 : 0;
len++;
ASN1_CHK_ADD( len, asn1_write_len( p, start, len ) );