O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Implementar recursos avançados

Ver fonte no GitHub

Alguns recursos avançados são opcionais, dependendo se são ou não suportados na plataforma de hardware de destino.

Quadro automático pendente

O IEEE 802.15.4 define dois tipos de métodos de transmissão de dados entre pais e filhos: transmissão direta e transmissão indireta. O último é projetado principalmente para dispositivos finais sonolentos (SEDs) que dormem a maior parte do tempo, acordando periodicamente para consultar o pai quanto aos dados enfileirados.

  • Direta Transmissão - pai envia um quadro de dados diretamente para o dispositivo final Transmissão direta

  • Indireta Transmissão - mãe detenha dados até que solicitado pelo seu dispositivo final pretendido Transmissão direta

No caso indireto, um dispositivo final filho deve primeiro sondar o pai para determinar se há dados disponíveis para ele. Para fazer isso, a criança envia uma solicitação de dados, que os pais confirmam. O pai então determina se possui algum dado para o dispositivo filho; em caso afirmativo, ele envia um pacote de dados para o dispositivo filho, que confirma o recebimento dos dados.

Se os suportes de rádio configurar dinamicamente o quadro Pendente mordeu em reconhecimentos de saída para SEDs, os motoristas devem implementar o jogo endereço de origem API para habilitar essa capacidade. O OpenThread usa essa API para informar ao rádio para quais SEDs definir o bit de quadro pendente.

Se o rádio não suporta o estabelecimento do quadro Pendente mordeu dinamicamente, o rádio pode stub o jogo endereço API fonte para retornar OT_ERROR_NOT_IMPLEMENTED .

Varredura / detecção de energia com rádio

O recurso Varredura / Detecção de Energia requer que o chip de rádio faça a amostragem da energia apresentada nos canais selecionados e retorne o valor de energia detectado para a camada superior.

Se este recurso não for implementado, a camada MAC IEEE 802.15.4 envia / recebe um pacote Beacon Request / Response para avaliar o valor de energia atual no canal.

Se os suportes de chips de rádio de digitalização Energia / Detecção, certifique-se de desativar a lógica de varredura de energia software definindo a macro OPENTHREAD_CONFIG_ENABLE_SOFTWARE_ENERGY_SCAN = 0 .

Aceleração de hardware para mbedTLS

mbedTLS define várias macros no principal ficheiro de cabeçalho configuração, mbedtls-config.h , para permitir aos utilizadores para permitir implementações alternativas da AES, SHA1, SHA2, e outros módulos, bem como funções individuais para a criptografia de curva elíptica (ECC) sobre GF (p) módulo. Veja aceleração mbedTLS hardware para mais informações.

OpenThread não habilita essas macros, portanto, os algoritmos criptográficos simétricos, algoritmos hash e funções ECC utilizam implementações de software por padrão. Essas implementações requerem memória considerável e recursos computacionais. Para obter um desempenho ideal e uma melhor experiência do usuário, recomendamos habilitar a aceleração de hardware em vez de software para implementar as operações acima.

Para ativar a aceleração de hardware dentro OpenThread, os seguintes arquivos de cabeçalho de configuração mbedTLS devem ser adicionados aos ot-config definições de compilação em arquivos CEfectue da plataforma:

  • Configuração principal, que define todas as macros necessárias utilizados na OpenThread: /openthread/third-party/mbedtls/mbedtls-config.h
  • Configuração específica do utilizador, a qual define implementações alternativas dos módulos e de funções: src/ platform-name -mbedtls-config.h

Exemplo de nrf52811.cmake :

target_compile_definitions(ot-config INTERFACE
    "MBEDTLS_USER_CONFIG_FILE=\"nrf52811-mbedtls-config.h\""
)

Macros comentadas em mbedtls-config.h não são obrigatórios, e pode ser habilitado no cabeçalho do arquivo de configuração específicas do usuário para a aceleração de hardware.

Para uma configuração específica do usuário completo exemplo, consulte a mbedtls_config_autogen.h arquivo no ot-efr32 .

Módulo AES

O OpenThread Security aplica a criptografia AES CCM (Contador com CBC-MAC) para criptografar / descriptografar as mensagens IEEE 802.15.4 ou MLE e valida o código de integração da mensagem. A aceleração de hardware deve pelo menos suportar o modo básico AES ECB (Electronic Codebook Book) para chamada funcional básica AES CCM.

Para utilizar uma implementação alternativa do módulo AES:

  1. Definir o MBEDTLS_AES_ALT macro no cabeçalho do arquivo de configuração mbedTLS específicas do usuário
  2. Indicar o caminho da aes_alt.h arquivo usando o MBEDTLS_CPPFLAGS variável

Módulo SHA256

OpenThread Security aplica algoritmos de hash HMAC e SHA256 para calcular o valor de hash para gerenciamento de chave de rede e geração de PSKc de acordo com a especificação de thread.

Para utilizar uma implementação alternativa do módulo básico SHA256:

  1. Definir o MBEDTLS_SHA256_ALT macro no cabeçalho do arquivo de configuração mbedTLS específicas do usuário
  2. Indicar o caminho da sha256_alt.h arquivo usando o MBEDTLS_CPPFLAGS variável

Funções ECC

Desde mbedTLS atualmente só suporta aceleração de hardware para partes de funções ECC, em vez de todo o módulo, você pode optar por implementar algumas funções definidas em path-to-mbedtls /library/ecp.c para acelerar ponto multiplicação ECC.

Secp256r1 curva é usada no algoritmo de troca de chaves do ECJPAKE projecto. Portanto, a aceleração de hardware deve pelo menos suportar a operação de curva weierstrass curta secp256r1. Veja Silabs CRYPTO aceleração de hardware para mbedTLS para um exemplo.