Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
doc:jroboplc:modules:jrbustcp-protocol [2022/01/26 12:22] denis [07 - AUTH_INIT] |
doc:jroboplc:modules:jrbustcp-protocol [2022/01/27 13:35] (текущий) denis [07 - AUTH_INIT] |
||
|---|---|---|---|
| Строка 190: | Строка 190: | ||
| Инициализация процесса аутентификации. | Инициализация процесса аутентификации. | ||
| - | request: 0x07 len#2 keyname#len | + | request: 0x07 klen#2 keyname#klen |
| - | answer: 0x87 status#1 len#2 encrypted_nonce#len | + | answer: 0x87 status#1 nlen#2 nonce#nlen |
| | | ||
| - | **''len''** - длина строки keyname в байтах. | + | **''klen''** - длина строки keyname в байтах. |
| + | |||
| + | **''nlen''** - длина строки nonce в байтах. | ||
| | | ||
| ''**keyname**'' - имя файла приватного ключа, который будет использоваться на стороне клиента. | ''**keyname**'' - имя файла приватного ключа, который будет использоваться на стороне клиента. | ||
| - | ''**status**'' - статус выполнения инициализации аутентификационного процесса на серевере: | + | ''**status**'' - статус выполнения инициализации аутентификационного процесса на сервере: |
| - | | + | 0 - OK - процесс начат нормально, сформировано и зашифровано nonce (random-строка) |
| - | ''**client**'' - любое текстовое описание клиента (не обязательное). | + | 1 - FAILED - процесс не начат, в nonce находится описание проблемы |
| + | 2 - DISABLED - аутентификация на сервере отключена, вход свободный | ||
| - | ''**listsize**'' - количество выбранных тегов от 0 до 0xFFFFFF (16777215). | + | ''**nonce**'' - зашифрованное публичным ключем сгенерированное значение (строка случайных символов) |
| - | ''**flags**'' - битовые параметры:\\ | + | Сервер должен иметь у себя соответствующий публичный ключ с именем файла ''keyname.pub''. После того, как клиент получил зашифрованный nonce, он должен расшифровать его своим приватным ключем ''keyname'' и отправить на сервер последующей командой AUTH_SUBMIT. |
| - | * ''b0'' - клиент поддерживает передачу описания тегов. Если b0 не установлен, то описания тегов в ответе команды ''LIST'' будут пустыми строками. | + | |
| - | * ''b1'' - клиент поддерживает передачу статусов тегов в ответе команды ''READ''. | + | |
| - | * ''b2'' - клиент требует не включать в список теги с флагом ''external'' . | + | |
| - | * ''b3'' - клиент требует включить в список теги с флагом ''hidden'' . | + | |
| - | |||
| + | ===== 08 - AUTH_SUBMIT ===== | ||
| + | Завершение процесса аутентификации. | ||
| + | request: 0x08 nlen#2 nonce#nlen | ||
| + | answer: 0x88 status#1 | ||
| + | | ||
| + | **''nlen''** - длина строки nonce в байтах. | ||
| + | | ||
| + | ''**nonce**'' - расшифрованная приватным ключем значение nonce, полученное от сервера командой AUTH_INIT | ||
| + | |||
| + | ''**status**'' - результат аутентификации: | ||
| + | 0 - ACCEPTED - успешно | ||
| + | 0xFF - DENIED - отказано | ||
| + | |||
| + | |||
| + | ===== FE - UNAUTHENTICATED ===== | ||
| + | Ответ на любую команду, если сервер требует аутентификации, и она не выполнена. Не распространяется на команды AUTH_*. | ||
| + | |||
| + | answer: 0xFE | ||
| + | | ||
| ===== FF - UNKNOWN ===== | ===== FF - UNKNOWN ===== | ||
| - | Ответ на неизвестную команду, код которой не соответствует вышеописанным командам. | + | Ответ на неизвестную серверу команду. |
| answer: 0xFF | answer: 0xFF | ||
| | | ||