Espruino:Справочник по API/Класс NRF/setSecurity()
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Функция NRF.setSecurity()[1]
Синтаксис
NRF.setSecurity(options)
Параметры
- options – объект, содержащий настройки безопасности (см. ниже)
Возвращаемое значение
Описание
Задает настройки безопасности, которые используются при подключении/сопряжении. Они применяются и в режиме центрального, и в режиме периферийного устройства.
NRF.setSecurity({
display : bool // здесь задается, будет ли пароль,
// отправленный в событии `BluetoothDevice.passkey`
// показан на дисплее устройства
// (значение по умолчанию – «false»)
keyboard : bool // здесь задается, можно ли на этом устройстве
// ввести пароль, запрошенный с помощью события
// `BluetoothDevice.passkeyRequest`
// (значение по умолчанию – «false»)
bond : bool // выполнять ли сопряжение (по умолчанию «true»)
mitm : bool // защиты от атаки посредника (по умолчанию «false»)
lesc : bool // используется ли LE Secure Connections
// (по умолчанию «false»)
passkey : // 6-циферный пароль (по умолчанию "")
oob : [0..15] // если эта настройка будет задана, это включит
// внеполосное (out-of-band или OOB) сопряжение,
// где будет использован заданный здесь 16-байтный код
});
Например, запросить сопряжение и задать пароль можно вот так:
NRF.setSecurity({passkey:"123456", mitm:1, display:1});
Хотя большинство устройств на этом этапе запрашивают пароль для сопряжения, вы по-прежнему можете подключиться к устройству и без него (например, при помощи приложения nRF Connect).
С помощью пароля можно защитить все характеристики, заданные с помощью функции NRF.setServices(). Например, код ниже потребует ввести пароль 123456 перед чтением характеристики 9d020002-bf5f-1d1a-b52a-fe52091d5b12.
NRF.setSecurity({passkey:"123456", mitm:1, display:1});
NRF.setServices({
"9d020001-bf5f-1d1a-b52a-fe52091d5b12" : {
"9d020002-bf5f-1d1a-b52a-fe52091d5b12" : {
// можно прочесть всегда:
value : "Не секрет"
},
"9d020003-bf5f-1d1a-b52a-fe52091d5b12" : {
// можно прочесть только после сопряжения:
value : "Секрет",
readable : true,
security: {
read: {
mitm: true,
encrypted: true
}
}
},
"9d020004-bf5f-1d1a-b52a-fe52091d5b12" : {
// можно прочесть всегда,
// записать можно только после сопряжения:
value : "Можно прочесть",
readable : true,
writable : true,
onWrite : function(evt) {
console.log("Данные записаны ", evt.data);
},
security: {
write: {
mitm: true,
encrypted: true
}
}
}
}
});
Примеры
См.также
Внешние ссылки