Revamp the simple password flag and rPi fixes (#1056)

MY_SIGNING_SIMPLE_PASSWD is now
called MY_SECURITY_SIMPLE_PASSWD.
MY_SIGNING_SIMPLE_PASSWD only affects signing,
and a new flag, MY_ENCRYPTION_SIMPLE_PASSWD
only affects encryption.
MY_SECURITY_SIMPLE_PASSWD enable both these flags.

The rPi port has been improved to support more
security settings and it is now also possible to
enable encryption for RFM69 transport.

Documentation has been improved to provide a
"Security" section under "Library customisation"
which has a table that summarize all security
related configuration flags, and the corresponding
rPi configuration flags.

The signing personalization documentation has been
updated to include the procedure for rPi.

Fixes #1055
This commit is contained in:
Patrick Fallberg
2018-02-11 11:22:48 +01:00
committed by tekka
parent 968b2daff7
commit 8a1f5f4cf9
8 changed files with 151 additions and 32 deletions
+3 -3
View File
@@ -134,7 +134,7 @@ void print_soft_sign_hmac_key(uint8_t *key_ptr = NULL)
printf("\n\n");
printf("The next line is intended to be used in SecurityPersonalizer.ino:\n");
printf("#define MY_SOFT_HMAC_KEY ");
printf("#define MY_HMAC_KEY ");
for (int i=0; i<32; i++) {
printf("%#02X", key_ptr[i]);
if (i < 31) {
@@ -265,9 +265,9 @@ void print_aes_key(uint8_t *key_ptr = NULL)
uint8_t key[16];
if (key_ptr == NULL) {
#ifdef MY_SIGNING_SIMPLE_PASSWD
#ifdef MY_ENCRYPTION_SIMPLE_PASSWD
memset(key, 0, 16);
memcpy(key, MY_SIGNING_SIMPLE_PASSWD, strnlen(MY_SIGNING_SIMPLE_PASSWD, 16));
memcpy(key, MY_ENCRYPTION_SIMPLE_PASSWD, strnlen(MY_ENCRYPTION_SIMPLE_PASSWD, 16));
#else
hwReadConfigBlock(&key, reinterpret_cast<void*>EEPROM_RF_ENCRYPTION_AES_KEY_ADDRESS, 16);
#endif
+2 -2
View File
@@ -39,9 +39,9 @@ uint8_t _psk[16];
bool transportInit(void)
{
#if defined(MY_NRF5_ESB_ENABLE_ENCRYPTION)
#ifdef MY_SIGNING_SIMPLE_PASSWD
#ifdef MY_ENCRYPTION_SIMPLE_PASSWD
memset(_psk, 0, 16);
memcpy(_psk, MY_SIGNING_SIMPLE_PASSWD, strnlen(MY_SIGNING_SIMPLE_PASSWD, 16));
memcpy(_psk, MY_ENCRYPTION_SIMPLE_PASSWD, strnlen(MY_ENCRYPTION_SIMPLE_PASSWD, 16));
#else
hwReadConfigBlock((void*)_psk, (void*)EEPROM_RF_ENCRYPTION_AES_KEY_ADDRESS, 16);
#endif
+2 -2
View File
@@ -68,9 +68,9 @@ uint8_t _psk[16];
bool transportInit(void)
{
#if defined(MY_RF24_ENABLE_ENCRYPTION)
#ifdef MY_SIGNING_SIMPLE_PASSWD
#ifdef MY_ENCRYPTION_SIMPLE_PASSWD
memset(_psk, 0, 16);
memcpy(_psk, MY_SIGNING_SIMPLE_PASSWD, strnlen(MY_SIGNING_SIMPLE_PASSWD, 16));
memcpy(_psk, MY_ENCRYPTION_SIMPLE_PASSWD, strnlen(MY_ENCRYPTION_SIMPLE_PASSWD, 16));
#else
hwReadConfigBlock((void*)_psk, (void*)EEPROM_RF_ENCRYPTION_AES_KEY_ADDRESS, 16);
#endif
+4 -4
View File
@@ -35,9 +35,9 @@ bool transportInit(void)
#ifdef MY_RFM69_ENABLE_ENCRYPTION
uint8_t _psk[16];
#ifdef MY_SIGNING_SIMPLE_PASSWD
#ifdef MY_ENCRYPTION_SIMPLE_PASSWD
memset(_psk, 0, 16);
memcpy(_psk, MY_SIGNING_SIMPLE_PASSWD, strnlen(MY_SIGNING_SIMPLE_PASSWD, 16));
memcpy(_psk, MY_ENCRYPTION_SIMPLE_PASSWD, strnlen(MY_ENCRYPTION_SIMPLE_PASSWD, 16));
#else
hwReadConfigBlock((void*)_psk, (void*)EEPROM_RF_ENCRYPTION_AES_KEY_ADDRESS, 16);
#endif
@@ -170,9 +170,9 @@ bool transportInit(void)
if (_radio.initialize(MY_RFM69_FREQUENCY, _address, MY_RFM69_NETWORKID)) {
#ifdef MY_RFM69_ENABLE_ENCRYPTION
uint8_t _psk[16];
#ifdef MY_SIGNING_SIMPLE_PASSWD
#ifdef MY_ENCRYPTION_SIMPLE_PASSWD
memset(_psk, 0, 16);
memcpy(_psk, MY_SIGNING_SIMPLE_PASSWD, strnlen(MY_SIGNING_SIMPLE_PASSWD, 16));
memcpy(_psk, MY_ENCRYPTION_SIMPLE_PASSWD, strnlen(MY_ENCRYPTION_SIMPLE_PASSWD, 16));
#else
hwReadConfigBlock((void*)_psk, (void*)EEPROM_RF_ENCRYPTION_AES_KEY_ADDRESS, 16);
#endif