Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

nl :: Dệt :: Nền tảng:: Bảo vệ

Không gian tên này bao gồm tất cả các giao diện trong Weave dành cho trình quản lý bộ nhớ Weave Security Monitor.

Tóm lược

Các chức năng trong không gian tên này sẽ được thực hiện bởi các nền tảng sử dụng Weave, tùy theo nhu cầu / ràng buộc của môi trường cụ thể.

Bảng kê

BlockSetParamFields {
kBlockSetSizeMask = 0x07,
kBlockSetSizeShift = 0,
kBlockSetSizeValueShift = 7,
kBlockSetCountMask = 0x18,
kBlockSetCountShift = 3,
kBlockSetBufferIndexMask = 0x60,
kBlockSetBufferIndexShift = 5,
kBlockSetIsLongTermMask = 0x80,
kBlockSetIsLongTermShift = 7
}
enum
Vị trí trường tham số tập hợp khối ở dạng mã hóa 8 bit.
BlockSetParams {
kNumberOfNetworkBuffers = 2,
kNumberOfBlockSets = 4,
kNetworkBuffer0BlockAllocationMask = 0x07,
kNetworkBuffer1BlockAllocationMask = 0x18,
kBlockSet1Size = 1,
kBlockSet1Count = 1,
kBlockSet1BufferIndex = 0,
kBlockSet1isLongTerm = 1,
kBlockSet2Size = 4,
kBlockSet2Count = 1,
kBlockSet2BufferIndex = 0,
kBlockSet2isLongTerm = 1,
kBlockSet3Size = 4,
kBlockSet3Count = 1,
kBlockSet3BufferIndex = 0,
kBlockSet3isLongTerm = 0,
kBlockSet4Size = 5,
kBlockSet4Count = 2,
kBlockSet4BufferIndex = 1,
kBlockSet4isLongTerm = 0,
kTotalMemorySize = (kBlockSet1Size * kBlockSet1Count + kBlockSet2Size * kBlockSet2Count + kBlockSet3Size * kBlockSet3Count + kBlockSet4Size * kBlockSet4Count) << kBlockSetSizeValueShift,
kMaxBlockSize = 600,
kMinBufferSize = 1240
}
enum
Xác định các tham số tập hợp khối.

Typedefs

BlockMark_t typedef
uint8_t
Loại được sử dụng để đánh dấu khối nào hiện đang được cấp phát / chưa được phân bổ.
BlockSetParams_t typedef
uint8_t
Loại này được sử dụng để mã hóa thông tin tập hợp khối.

Biến

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]
Khối được mã hóa đặt các thông số.
sBufferAllocationMask = { kNetworkBuffer0BlockAllocationMask, kNetworkBuffer1BlockAllocationMask, }[kNumberOfNetworkBuffers]
Bộ mặt nạ khối đệm.
sMemBlocksAllocated = 0
Cho biết khối nào được cấp phát / không được phân bổ.
sMemBufs = { NULL }[kNumberOfNetworkBuffers]
void *
Con trỏ tới bộ đệm bộ nhớ được khởi tạo thành NULL.
sNetworkBuffersUsed = true
bool
Một boolean cho biết liệu bộ đệm mạng có được Simple Allocator sử dụng (đúng) hay không (sai).

Chức năng

DecodeBlockSetParams ( BlockSetParams_t blockSetParams, uint16_t & blockSize, uint8_t & blockCount, uint8_t & blockBufferIndex, bool & blockIsLongTerm)
void
GetSecureRandomData (uint8_t *buf, uint16_t len)
Hàm này được gọi bởi lớp Weave để tạo dữ liệu ngẫu nhiên.
InitSecureRandomDataSource ( nl::Weave::Crypto::EntropyFunct entropyFunct, uint16_t entropyLen, const uint8_t *personalizationData, uint16_t perDataLen)
Hàm này được gọi bởi lớp Weave để khởi tạo nguồn dữ liệu ngẫu nhiên.
MemoryAlloc (size_t size)
void *
Hàm này được gọi bởi lớp Weave để cấp phát một khối bộ nhớ có kích thước "byte".
MemoryAlloc (size_t size, bool isLongTermAlloc)
void *
Hàm này được gọi bởi lớp Weave để cấp phát một khối bộ nhớ có kích thước "byte".
MemoryFree (void *p)
void
Hàm này được gọi bởi lớp Weave để giải phóng một khối bộ nhớ được cấp phát bởi hàm MemeoryAlloc ().
MemoryInit (void *buf, size_t bufSize)
Chức năng này được gọi bởi lớp Weave để khởi tạo bộ nhớ và tài nguyên cần thiết cho chức năng thích hợp của trình cấp phát bộ nhớ Weave Security Manager.
MemoryShutdown (void)
void
Hàm này được gọi bởi lớp Weave để giải phóng tất cả tài nguyên đã được cấp phát bởi hàm MemoryInit () .
OnTimeConsumingCryptoDone (void)
void
Chức năng này được gọi để thông báo cho ứng dụng khi một hoạt động mật mã tốn nhiều thời gian vừa kết thúc.
OnTimeConsumingCryptoStart (void)
void
Chức năng này được gọi để thông báo cho ứng dụng khi một hoạt động mật mã tốn nhiều thời gian sắp bắt đầu.

Các lớp học

nl :: Weave :: Platform :: Security :: AES128BlockCipher
nl :: Weave :: Platform :: Security :: AES128BlockCipherDec
nl :: Weave :: Platform :: Security :: AES128BlockCipherEnc
nl :: Weave :: Platform :: Security :: AES256BlockCipher
nl :: Weave :: Platform :: Security :: AES256BlockCipherDec
nl :: Weave :: Platform :: Security :: AES256BlockCipherEnc
nl :: Weave :: Platform :: Security :: SHA1
nl :: Weave :: Platform :: Security :: SHA256

Bảng kê

BlockSetParamFields

 BlockSetParamFields

Vị trí trường tham số bộ khối ở dạng mã hóa 8 bit.

Tính chất
kBlockSetBufferIndexMask

Mặt nạ trường chỉ mục bộ đệm.

kBlockSetBufferIndexShift

Dịch chuyển trường chỉ mục bộ đệm.

kBlockSetCountMask

Mặt nạ trường đếm.

kBlockSetCountShift

Đếm chuyển trường.

kBlockSetIsLongTermMask

Nhập mặt nạ trường.

kBlockSetIsLongTermShift

Nhập trường dịch chuyển.

kBlockSetSizeMask

Mặt nạ trường kích thước.

kBlockSetSizeShift

Trường kích thước dịch chuyển.

kBlockSetSizeValueShift

Kích thước trường giải mã thay đổi (nhân với 128).

BlockSetParams

 BlockSetParams

Xác định các tham số tập hợp khối.

Tính chất
kBlockSet1BufferIndex

Đặt # 1 chỉ số bộ đệm là 0.

kBlockSet1Count

Số khối đặt # 1 là 1.

kBlockSet1Size

Kích thước bộ số 1 là 128 byte.

kBlockSet1isLongTerm

Loại # 1 là dài hạn.

kBlockSet2BufferIndex

Chỉ số bộ đệm đặt # 2 là 0.

kBlockSet2Count

Số khối đặt # 2 là 1.

kBlockSet2Size

Kích thước bộ số 2 là 512 byte.

kBlockSet2isLongTerm

Loại # 2 là dài hạn.

kBlockSet3BufferIndex

Chỉ số bộ đệm đặt # 3 là 0.

kBlockSet3Count

Bộ số 3 khối là 1.

kBlockSet3Size

Kích thước bộ 3 là 512 byte.

kBlockSet3isLongTerm

Loại số 3 là ngắn hạn.

kBlockSet4BufferIndex

Đặt # 4 chỉ số bộ đệm là 1.

kBlockSet4Count

Bộ số 4 khối là 2.

kBlockSet4Size

Kích thước bộ số 4 là 640 byte.

kBlockSet4isLongTerm

Loại bộ số 4 là ngắn hạn.

kMaxBlockSize

Kích thước khối tối đa được hỗ trợ bởi Simple Allocator.

kMinBufferSize

Kích thước bộ đệm mạng tối thiểu cần thiết để hỗ trợ các trường hợp sử dụng Simple Allocator.

Tham số này có nguồn gốc từ kích thước của hai khối bộ nhớ (640 + 600) được cấp phát trong bộ đệm mạng # 1.

kNetworkBuffer0BlockAllocationMask

Mặt nạ này xác định tất cả các khối bộ nhớ được cấp phát từ bộ đệm mạng # 0.

kNetworkBuffer1BlockAllocationMask

Mặt nạ này xác định tất cả các khối bộ nhớ được cấp phát từ bộ đệm mạng # 1.

kNumberOfBlockSets

Số lượng bộ khối được sử dụng bởi Simple Allocator.

kNumberOfNetworkBuffers

Số bộ đệm mạng được Simple Allocator sử dụng.

kTotalMemorySize

Tổng bộ nhớ được sử dụng bởi Simple Allocator.

Typedefs

BlockMark_t

uint8_t BlockMark_t

Loại được sử dụng để đánh dấu khối nào hiện đang được cấp phát / chưa được phân bổ.

uint8_t - hỗ trợ tổng cộng tối đa 8 khối bộ nhớ uint16_t - hỗ trợ tổng cộng tối đa 16 khối bộ nhớ uint32_t - hỗ trợ tổng cộng tối đa 32 khối bộ nhớ

BlockSetParams_t

uint8_t BlockSetParams_t

Loại này được sử dụng để mã hóa thông tin tập hợp khối.

Tập hợp khối là một nhóm các phần bộ nhớ có cùng thuộc tính (kích thước, kiểu và thuộc cùng một bộ đệm). Sơ đồ dưới đây trình bày cách mã hóa thông tin tập hợp khối ở định dạng 8 bit:

Dài hạn Chỉ mục khối Số khối Kích thước khối
[7] [6: 5] [4: 3] [2: 0]
[2: 0] - Kích thước của khối bộ nhớ trong một tập hợp. Giá trị kích thước được mã hóa với độ chi tiết 128 byte.
[2: 0] Giải mã
000 0 byte
001 128 byte
010 256 byte
... -
111 896 byte
[4: 3] - Số khối trong một tập hợp.
[4: 3] Giải mã
00 4 khối
01 1 khối
10 2 khối
11 3 khối
[6: 5] - Chỉ mục bộ đệm mạng nơi các khối bộ nhớ cư trú. Lưu ý rằng khi bộ đệm chuyên dụng được sử dụng, tất cả các khối bộ nhớ được cấp phát từ bộ đệm chuyên dụng và tham số chỉ mục này bị bỏ qua.
[6: 5] Giải mã
00 Bộ đệm mạng # 0
... -
11 Bộ đệm mạng # 3
[7] - Chỉ định nếu các khối được lưu trữ dài hạn / ngắn hạn.
[7] Giải mã
0 Khối bộ nhớ ngắn hạn
1 Khối bộ nhớ dài hạn

Biến

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),







}

Khối được mã hóa đặt các thông số.

sBufferAllocationMask

const BlockMark_t sBufferAllocationMask[kNumberOfNetworkBuffers] = {
                                                   kNetworkBuffer0BlockAllocationMask,
                                                   kNetworkBuffer1BlockAllocationMask,




                                                                                       }

Bộ mặt nạ khối đệm.

Xác định xem tất cả các khối trong bộ đệm và chưa được phân bổ và sau đó bộ đệm có thể được khôi phục lại.

sMemBlocksAllocated

BlockMark_t sMemBlocksAllocated = 0

Cho biết khối nào được cấp phát / không được phân bổ.

Khởi tạo thành 0 - có nghĩa là tất cả các khối bộ nhớ và chưa được phân bổ.

sMemBufs

void * sMemBufs[kNumberOfNetworkBuffers] = { NULL }

Con trỏ tới bộ đệm bộ nhớ được khởi tạo thành NULL.

Khi bộ đệm mạng được sử dụng, sMemBufs [] trỏ đến các đối tượng PacketBuffer. Khi bộ đệm chuyên dụng được sử dụng, sMemBufs [0] trỏ đến bộ đệm đó và các con trỏ sMemBufs [] khác bị bỏ qua.

sNetworkBuffersUsed

bool sNetworkBuffersUsed = true

Một boolean cho biết liệu bộ đệm mạng có được Simple Allocator sử dụng (đúng) hay không (sai).

Khi bộ đệm chuyên dụng sai được cung cấp với hàm MemoryInit () được sử dụng.

Chức năng

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
)

Hàm này được gọi bởi lớp Weave để tạo dữ liệu ngẫu nhiên.

Chi tiết
Thông số
[in] buf
Con trỏ tới bộ đệm bộ nhớ, nơi dữ liệu ngẫu nhiên được yêu cầu sẽ được lưu trữ.
[in] len
Chỉ định kích thước dữ liệu ngẫu nhiên được yêu cầu theo byte.
Giá trị trả lại
WEAVE_ERROR_DRBG_ENTROPY_SOURCE_FAILED
Nếu nguồn entropy không tạo ra được entropy do trình tạo dữ liệu ngẫu nhiên yêu cầu.
WEAVE_ERROR_RANDOM_DATA_UNAVAILABLE
Nếu nguồn dữ liệu ngẫu nhiên không tạo được dữ liệu ngẫu nhiên.
WEAVE_ERROR_INCORRECT_STATE
Nếu nguồn dữ liệu ngẫu nhiên được tìm thấy ở trạng thái sai.
WEAVE_NO_ERROR
Về thành công.

InitSecureRandomDataSource

WEAVE_ERROR InitSecureRandomDataSource(
  nl::Weave::Crypto::EntropyFunct entropyFunct,
  uint16_t entropyLen,
  const uint8_t *personalizationData,
  uint16_t perDataLen
)

Hàm này được gọi bởi lớp Weave để khởi tạo nguồn dữ liệu ngẫu nhiên.

Chức năng này dành riêng cho nền tảng và có thể trống khi không yêu cầu khởi tạo nguồn dữ liệu ngẫu nhiên.

Chi tiết
Thông số
[in] entropyFunct
Con trỏ đến một hàm tạo entropy tới trình tạo dữ liệu ngẫu nhiên. Khi thuật toán không yêu cầu đầu vào entropy, đầu vào này có thể là NULL, đây là trường hợp khi phiên bản OpenSSL của trình tạo dữ liệu ngẫu nhiên được sử dụng.
[in] entropyLen
Chỉ định kích thước entropy tính bằng byte sẽ được tạo bởi hàm entropy khi nó được sử dụng.
[in] personalizationData
Trỏ tới bộ đệm bộ nhớ lưu dữ liệu đầu vào cá nhân hóa. Đầu vào dữ liệu này phải dành riêng cho thiết bị và nó giúp cải thiện các thuộc tính thống kê của dữ liệu ngẫu nhiên.
[in] perDataLen
Chỉ định kích thước dữ liệu cá nhân hóa theo byte.
Giá trị trả lại
WEAVE_ERROR_INVALID_ARGUMENT
Nếu một đối số không hợp lệ đã được chuyển cho hàm này.
WEAVE_NO_ERROR
Về thành công.

MemoryAlloc

void * MemoryAlloc(
  size_t size
)

Hàm này được gọi bởi lớp Weave để cấp phát một khối bộ nhớ có kích thước "byte".

Chức năng này tương đương với MemoryAlloc (size, false).

Chi tiết
Thông số
[in] size
Chỉ định kích thước bộ nhớ được yêu cầu tính bằng byte.
Giá trị trả lại
Pointer
vào một khối bộ nhớ trong trường hợp thành công.
NULL-pointer
nếu cấp phát bộ nhớ không thành công.

MemoryAlloc

void * MemoryAlloc(
  size_t size,
  bool isLongTermAlloc
)

Hàm này được gọi bởi lớp Weave để cấp phát một khối bộ nhớ có kích thước "byte".

Chi tiết
Thông số
[in] size
Chỉ định kích thước bộ nhớ được yêu cầu tính bằng byte.
[in] isLongTermAlloc
Boolean cho biết khối bộ nhớ được yêu cầu có sử dụng lâu dài hay không (đúng) hay không (sai). Phân bổ dài hạn là bộ nhớ sẽ được phân bổ cho đến khi hoàn tất phiên / bắt tay an toàn. Ví dụ về phân bổ dài hạn bao gồm các khối được phân bổ cho các đối tượng CASE / PASE và dữ liệu ngữ cảnh của chúng. Phân bổ ngắn hạn là một bộ nhớ cần thiết để thực hiện các hoạt động cụ thể và có thể được giải phóng ngay sau đó. Đầu vào này giúp tối ưu hóa việc sử dụng bộ nhớ trong một hệ thống hạn chế bộ nhớ. Việc sử dụng tham số này là tùy ý và phụ thuộc vào trình triển khai chức năng. Ví dụ, tham số này bị bỏ qua khi malloc () của Thư viện Chuẩn C được sử dụng.
Giá trị trả lại
Pointer
vào một khối bộ nhớ trong trường hợp thành công.
NULL-pointer
nếu cấp phát bộ nhớ không thành công.

Bộ nhớ miễn phí

void MemoryFree(
  void *p
)

Hàm này được gọi bởi lớp Weave để giải phóng một khối bộ nhớ được cấp phát bởi hàm MemeoryAlloc ().

Chi tiết
Thông số
[in] p
Con trỏ đến một khối bộ nhớ sẽ được giải phóng.

MemoryInit

WEAVE_ERROR MemoryInit(
  void *buf,
  size_t bufSize
)

Chức năng này được gọi bởi lớp Weave để khởi tạo bộ nhớ và tài nguyên cần thiết cho chức năng thích hợp của bộ cấp phát bộ nhớ Weave Security Manager.

Chức năng này dành riêng cho nền tảng và có thể trống trong một số trường hợp nhất định. Ví dụ: hàm này không làm gì khi các hàm malloc () và free () của Thư viện Chuẩn C được sử dụng để cấp phát bộ nhớ.

Chi tiết
Thông số
[in] buf
Một con trỏ đến bộ đệm bộ nhớ chuyên dụng, bộ đệm này sẽ được sử dụng làm nhóm bộ nhớ để phân bổ bộ nhớ Weave Security Manager. Đầu vào này là tùy chọn (mặc định là NULL) và sẽ không được sử dụng nếu không sử dụng bộ đệm bộ nhớ chuyên dụng.
[in] bufSize
Kích thước của bộ đệm bộ nhớ chuyên dụng. Đầu vào này là tùy chọn (mặc định là 0) và không được sử dụng nếu bộ đệm bộ nhớ chuyên dụng không được sử dụng. Khi bộ đệm bộ nhớ chuyên dụng được sử dụng, chức năng sẽ kiểm tra và tạo ra lỗi nếu kích thước bộ đệm không đủ lớn để hỗ trợ các trường hợp sử dụng Weave Security Manager.
Giá trị trả lại
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu kích thước bộ đệm đầu vào chuyên dụng không đủ để hỗ trợ các trường hợp sử dụng Weave Security Manager.
WEAVE_NO_ERROR
Về thành công.
other
Lỗi do chức năng khởi tạo bộ nhớ dành riêng cho nền tảng tạo ra.

MemoryShutdown

void MemoryShutdown(
  void
)

Hàm này được gọi bởi lớp Weave để giải phóng tất cả các tài nguyên đã được phân bổ bởi hàm MemoryInit () .

Hàm này có thể là một lệnh gọi trống nếu không có nhu cầu giải phóng tài nguyên. Ví dụ, đây là trường hợp khi các hàm malloc () và free () của Thư viện Chuẩn C được sử dụng để cấp phát bộ nhớ.

OnTimeConsumingCryptoDone

void OnTimeConsumingCryptoDone(
  void
)

Chức năng này được gọi để thông báo cho ứng dụng khi một hoạt động mật mã tốn nhiều thời gian vừa kết thúc.

OnTimeConsumingCryptoStart

void OnTimeConsumingCryptoStart(
  void
)

Chức năng này được gọi để thông báo cho ứng dụng khi một hoạt động mật mã tốn nhiều thời gian sắp bắt đầu.