nl :: Tejido:: Plataforma:: Seguridad
Este espacio de nombres incluye todas las interfaces dentro de Weave para el administrador de memoria de Weave Security Monitor.
Resumen
Las funciones en este espacio de nombres deben ser implementadas por plataformas que usan Weave, de acuerdo con las necesidades / limitaciones del entorno particular.
Typedefs | |
---|---|
BlockMark_t | typedefuint8_t El tipo utilizado para marcar qué bloque está asignado / no asignado actualmente. |
BlockSetParams_t | typedefuint8_t Este tipo se utiliza para codificar información de conjuntos de bloques. |
Variables | |
---|---|
sBlockSetParams = { ((kBlockSet1Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet1Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet1BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet1isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet2Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet2Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet2BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet2isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet3Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet3Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet3BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet3isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet4Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet4Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet4BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet4isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), }[kNumberOfBlockSets] | const BlockSetParams_t El bloque codificado establece parámetros. |
sBufferAllocationMask = { kNetworkBuffer0BlockAllocationMask, kNetworkBuffer1BlockAllocationMask, }[kNumberOfNetworkBuffers] | const BlockMark_t Conjunto de máscaras de bloques tampón. |
sMemBlocksAllocated = 0 | Indica qué bloque está asignado / no asignado. |
sMemBufs = { NULL }[kNumberOfNetworkBuffers] | void * Punteros a búferes de memoria inicializados en NULL. |
sNetworkBuffersUsed = true | bool Un valor booleano que indica si (verdadero) o no (falso) los búferes de red son utilizados por Simple Allocator. |
Funciones | |
---|---|
DecodeBlockSetParams ( BlockSetParams_t blockSetParams, uint16_t & blockSize, uint8_t & blockCount, uint8_t & blockBufferIndex, bool & blockIsLongTerm) | void |
GetSecureRandomData (uint8_t *buf, uint16_t len) | Esta función es llamada por la capa Weave para generar datos aleatorios. |
InitSecureRandomDataSource ( nl::Weave::Crypto::EntropyFunct entropyFunct, uint16_t entropyLen, const uint8_t *personalizationData, uint16_t perDataLen) | La capa Weave llama a esta función para inicializar una fuente de datos aleatoria. |
MemoryAlloc (size_t size) | void * Esta función es llamada por la capa Weave para asignar un bloque de memoria de bytes de "tamaño". |
MemoryAlloc (size_t size, bool isLongTermAlloc) | void * Esta función es llamada por la capa Weave para asignar un bloque de memoria de bytes de "tamaño". |
MemoryFree (void *p) | void Esta función es llamada por la capa Weave para liberar un bloque de memoria asignado por la función MemeoryAlloc (). |
MemoryInit (void *buf, size_t bufSize) | La capa Weave llama a esta función para inicializar la memoria y los recursos necesarios para la funcionalidad adecuada del asignador de memoria Weave Security Manager. |
MemoryShutdown (void) | void Esta función es llamada por la capa Weave para liberar todos los recursos que fueron asignados por la función MemoryInit () . |
OnTimeConsumingCryptoDone (void) | void Esta función se llama para notificar a la aplicación cuando acaba de finalizar una operación criptográfica que consume mucho tiempo. |
OnTimeConsumingCryptoStart (void) | void Esta función se llama para notificar a la aplicación cuando una operación criptográfica que consume mucho tiempo está a punto de comenzar. |
Enumeraciones
BlockSetParamFields
BlockSetParamFields
Bloquear la ubicación de los campos de parámetros en un formato codificado de 8 bits.
BlockSetParams
BlockSetParams
Define los parámetros del conjunto de bloques.
Typedefs
BlockMark_t
uint8_t BlockMark_t
El tipo utilizado para marcar qué bloque está asignado / no asignado actualmente.
uint8_t - admite hasta 8 bloques de memoria en total uint16_t - admite hasta 16 bloques de memoria en total uint32_t - admite hasta 32 bloques de memoria en total
BlockSetParams_t
uint8_t BlockSetParams_t
Este tipo se utiliza para codificar información de conjuntos de bloques.
Un conjunto de bloques es un grupo de fragmentos de memoria que tienen las mismas propiedades (tamaño, tipo y pertenecen al mismo búfer). El siguiente diagrama presenta cómo se codifica la información del conjunto de bloques en un formato de 8 bits:
Es a largo plazo | Índice de bloque | Numero de bloques | Tamaño de bloque |
[7] | [6: 5] | [4: 3] | [2: 0] |
[2: 0] | Descodificación |
000 | 0 bytes |
001 | 128 bytes |
010 | 256 bytes |
... | - |
111 | 896 octetos |
[4: 3] | Descodificación |
00 | 4 bloques |
01 | 1 cuadra |
10 | 2 bloques |
11 | 3 cuadras |
[6: 5] | Descodificación |
00 | Búfer de red # 0 |
... | - |
11 | Búfer de red n. ° 3 |
[7] | Descodificación |
0 | Bloques de memoria a corto plazo |
1 | Bloques de memoria a largo plazo |
Variables
sBlockSetParams
const BlockSetParams_t sBlockSetParams[kNumberOfBlockSets] = { ((kBlockSet1Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet1Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet1BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet1isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet2Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet2Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet2BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet2isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet3Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet3Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet3BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet3isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), ((kBlockSet4Size << kBlockSetSizeShift) & kBlockSetSizeMask) | ((kBlockSet4Count << kBlockSetCountShift) & kBlockSetCountMask) | ((kBlockSet4BufferIndex << kBlockSetBufferIndexShift) & kBlockSetBufferIndexMask) | ((kBlockSet4isLongTerm << kBlockSetIsLongTermShift) & kBlockSetIsLongTermMask), }
El bloque codificado establece parámetros.
sBufferAllocationMask
const BlockMark_t sBufferAllocationMask[kNumberOfNetworkBuffers] = { kNetworkBuffer0BlockAllocationMask, kNetworkBuffer1BlockAllocationMask, }
Conjunto de máscaras de bloques tampón.
Identifica si todos los bloques en el búfer no están asignados y, a continuación, el búfer se puede liberar.
sMemBlocksAllocated
BlockMark_t sMemBlocksAllocated = 0
Indica qué bloque está asignado / no asignado.
Inicializado a 0: significa que todos los bloques de memoria y sin asignar.
sMemBufs
void * sMemBufs[kNumberOfNetworkBuffers] = { NULL }
Punteros a búferes de memoria inicializados en NULL.
Cuando se utilizan búferes de red, sMemBufs [] apuntan a los objetos PacketBuffer. Cuando se utiliza un búfer dedicado, sMemBufs [0] apunta a ese búfer y se ignoran otros punteros sMemBufs [].
sNetworkBuffersUsed
bool sNetworkBuffersUsed = true
Un valor booleano que indica si (verdadero) o no (falso) los búferes de red son utilizados por Simple Allocator.
Cuando se utiliza el búfer dedicado falso proporcionado con la función MemoryInit () .
Funciones
DecodeBlockSetParams
void DecodeBlockSetParams( BlockSetParams_t blockSetParams, uint16_t & blockSize, uint8_t & blockCount, uint8_t & blockBufferIndex, bool & blockIsLongTerm )
GetSecureRandomData
WEAVE_ERROR GetSecureRandomData( uint8_t *buf, uint16_t len )
Esta función es llamada por la capa Weave para generar datos aleatorios.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
| ||||||||
Valores devueltos |
|
InitSecureRandomDataSource
WEAVE_ERROR InitSecureRandomDataSource( nl::Weave::Crypto::EntropyFunct entropyFunct, uint16_t entropyLen, const uint8_t *personalizationData, uint16_t perDataLen )
La capa Weave llama a esta función para inicializar una fuente de datos aleatoria.
Esta función es específica de la plataforma y puede estar vacía cuando no se requiere inicialización de una fuente de datos aleatoria.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
| ||||||||
Valores devueltos |
|
MemoryAlloc
void * MemoryAlloc( size_t size )
Esta función es llamada por la capa Weave para asignar un bloque de memoria de bytes de "tamaño".
Esta función es equivalente a MemoryAlloc (tamaño, falso).
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
MemoryAlloc
void * MemoryAlloc( size_t size, bool isLongTermAlloc )
Esta función es llamada por la capa Weave para asignar un bloque de memoria de bytes de "tamaño".
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
MemoryFree
void MemoryFree( void *p )
Esta función es llamada por la capa Weave para liberar un bloque de memoria asignado por la función MemeoryAlloc ().
Detalles | |||
---|---|---|---|
Parámetros |
|
MemoryInit
WEAVE_ERROR MemoryInit( void *buf, size_t bufSize )
La capa Weave llama a esta función para inicializar la memoria y los recursos necesarios para la funcionalidad adecuada del asignador de memoria Weave Security Manager.
Esta función es específica de la plataforma y puede estar vacía en ciertos casos. Por ejemplo, esta función no hace nada cuando se utilizan las funciones malloc () y free () de la biblioteca estándar de C para la asignación de memoria.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
MemoryShutdown
void MemoryShutdown( void )
Esta función es llamada por la capa Weave para liberar todos los recursos que fueron asignados por la función MemoryInit () .
Esta función puede ser una llamada vacía si no hay necesidad de liberar recursos. Por ejemplo, este es el caso cuando las funciones malloc () y free () de la biblioteca estándar de C se utilizan para la asignación de memoria.
OnTimeConsumingCryptoDone
void OnTimeConsumingCryptoDone( void )
Esta función se llama para notificar a la aplicación cuando acaba de finalizar una operación criptográfica que consume mucho tiempo.
OnTimeConsumingCryptoStart
void OnTimeConsumingCryptoStart( void )
Esta función se llama para notificar a la aplicación cuando una operación criptográfica que consume mucho tiempo está a punto de comenzar.