Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

nl::Weave::프로필::보안::AppKeys::GroupKeyStoreBase

이 클래스는 추상 클래스입니다.

#include <src/lib/profiles/security/WeaveApplicationKeys.h>

Weave 그룹 키 저장소 클래스의 정의입니다.

요약

이 클래스의 함수는 애플리케이션 그룹 키를 관리하기 위해 호출됩니다.

상속

직접 알려진 서브클래스:
nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
nl::Weave::DeviceLayer::Group:GroupKeyStoreImpl}nl }

보호된 속성

LastUsedEpochKeyId
uint32_t
NextEpochKeyStartTime
uint32_t

공개 함수

Clear(void)=0
virtual WEAVE_ERROR
DeleteGroupKey(uint32_t keyId)=0
virtual WEAVE_ERROR
DeleteGroupKeysOfAType(uint32_t keyType)=0
virtual WEAVE_ERROR
DeriveApplicationKey(uint32_t & appKeyId, const uint8_t *keySalt, uint8_t saltLen, const uint8_t *keyDiversifier, uint8_t diversifierLen, uint8_t *appKey, uint8_t keyBufSize, uint8_t keyLen, uint32_t & appGroupGlobalId)
애플리케이션 키를 가져옵니다.
EnumerateGroupKeys(uint32_t keyType, uint32_t *keyIds, uint8_t keyIdsArraySize, uint8_t & keyCount)=0
virtual WEAVE_ERROR
GetCurrentAppKeyId(uint32_t keyId, uint32_t & curKeyId)
현재 키 ID를 반환합니다.
GetCurrentUTCTime(uint32_t & utcTime)
virtual WEAVE_ERROR
현재 플랫폼 UTC 시간(초)을 가져옵니다.
GetGroupKey(uint32_t keyId, WeaveGroupKey & groupKey)
애플리케이션 그룹 키를 가져옵니다.
RetrieveGroupKey(uint32_t keyId, WeaveGroupKey & key)=0
virtual WEAVE_ERROR
StoreGroupKey(const WeaveGroupKey & key)=0
virtual WEAVE_ERROR

보호된 함수

Init(void)
void
로컬 그룹 키 저장소 매개변수를 초기화합니다.
OnEpochKeysChange(void)
void
현재 키 ID를 반환합니다.
RetrieveLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR
StoreLastUsedEpochKeyId(void)=0
virtual WEAVE_ERROR

보호된 속성

LastUsedEpochKeyId

uint32_t LastUsedEpochKeyId

NextEpochKeyStartTime

uint32_t NextEpochKeyStartTime

공개 함수

지우기

virtual WEAVE_ERROR Clear(
  void
)=0

그룹 삭제

virtual WEAVE_ERROR DeleteGroupKey(
  uint32_t keyId
)=0

그룹 삭제

virtual WEAVE_ERROR DeleteGroupKeysOfAType(
  uint32_t keyType
)=0

DeriveApplicationKey:

WEAVE_ERROR DeriveApplicationKey(
  uint32_t & appKeyId,
  const uint8_t *keySalt,
  uint8_t saltLen,
  const uint8_t *keyDiversifier,
  uint8_t diversifierLen,
  uint8_t *appKey,
  uint8_t keyBufSize,
  uint8_t keyLen,
  uint32_t & appGroupGlobalId
)

애플리케이션 키를 가져옵니다.

현재 애플리케이션 키, 순환하는 애플리케이션 키, 정적 애플리케이션 키라는 세 가지 유형의 애플리케이션 키가 지원됩니다. 현재 애플리케이션 키가 요청되면 함수는 현재 시스템 시간과 각 에포크 키의 시작 시간 매개변수를 기반으로 현재 에포크 키를 찾아서 사용합니다.

세부정보
매개변수
[in,out] keyId
요청된 키 ID에 대한 참조입니다. 현재 애플리케이션 키가 요청되면 이 필드는 애플리케이션 유형 생성에 사용된 새 유형 (회전하는 애플리케이션 키)과 실제 에포크 키 ID를 반영하도록 업데이트됩니다.
[in] keySalt
애플리케이션 키 솔트 값을 포함하는 버퍼에 대한 포인터.
[in] saltLen
애플리케이션 키 솔트의 길이입니다.
[in] keyDiversifier
애플리케이션 키 다양화 값이 있는 버퍼 포인터
[in] diversifierLen
애플리케이션 키 다각화의 길이입니다.
[out] appKey
파생된 키를 작성할 버퍼에 대한 포인터입니다.
[in] keyBufSize
제공된 키 버퍼의 길이입니다.
[in] keyLen
요청된 키 자료의 길이입니다.
[out] appGroupGlobalId
연결된 키의 애플리케이션 그룹 전역 ID입니다.
반환 값
WEAVE_NO_ERROR
성공했습니다.
WEAVE_ERROR_BUFFER_TOO_SMALL
제공된 키 버퍼 크기가 충분하지 않은 경우
WEAVE_ERROR_INVALID_KEY_ID
요청된 키의 키 ID가 잘못된 경우
WEAVE_ERROR_INVALID_ARGUMENT
플랫폼 키 저장소에서 잘못된 키 매개변수 또는 키 식별자의 값이 잘못된 경우
other
플랫폼 키 저장소 API에서 반환하는 기타 플랫폼별 오류입니다.

열거형 그룹 키

virtual WEAVE_ERROR EnumerateGroupKeys(
  uint32_t keyType,
  uint32_t *keyIds,
  uint8_t keyIdsArraySize,
  uint8_t & keyCount
)=0

GetCurrentAppKeyId

WEAVE_ERROR GetCurrentAppKeyId(
  uint32_t keyId,
  uint32_t & curKeyId
)

현재 키 ID를 반환합니다.

현재 시스템 시간과 각 에포크 키의 시작 시간 매개변수를 기반으로 현재 에포크 키를 찾습니다. 시스템에서 유효하고 정확한 시간이 없는 경우 마지막으로 사용된 에포크 키 ID가 반환됩니다.

세부정보
매개변수
[in] keyId
애플리케이션 키 ID
[out] curKeyId
애플리케이션의 현재 키 ID입니다.
반환 값
WEAVE_NO_ERROR
성공했습니다.
WEAVE_ERROR_INVALID_KEY_ID
입력 키 ID의 값이 잘못된 경우
WEAVE_ERROR_KEY_NOT_FOUND
플랫폼 키 저장소에서 에포크 키를 찾을 수 없는 경우.
other
플랫폼 키 저장소 API에서 반환하는 기타 플랫폼별 오류입니다.

GetCurrentUTCTime

virtual WEAVE_ERROR GetCurrentUTCTime(
  uint32_t & utcTime
)

현재 플랫폼 UTC 시간(초)을 가져옵니다.

세부정보
매개변수
[out] utcTime
시간 값에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
성공했습니다.
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
플랫폼에서 실시간 시계를 지원하지 않는 경우
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
시스템의 실시간 시계가 정확한 시간 소스와 동기화되지 않은 경우
other
기타 Weave 또는 플랫폼 오류 코드

GetGroupKey

WEAVE_ERROR GetGroupKey(
  uint32_t keyId,
  WeaveGroupKey & groupKey
)

애플리케이션 그룹 키를 가져옵니다.

이 함수는 애플리케이션 그룹 키를 파생하거나 검색합니다. 이 함수에서 지원하는 키 유형은 패브릭 보안 비밀, 루트 키, 에포크 키, 그룹 마스터 키, 중간 키입니다.

세부정보
매개변수
[in] keyId
그룹 키 ID입니다.
[out] groupKey
그룹 키 객체에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
성공했습니다.
WEAVE_ERROR_INVALID_KEY_ID
요청된 키의 키 ID가 잘못된 경우
WEAVE_ERROR_INVALID_ARGUMENT
플랫폼 키 저장소가 잘못된 키 매개변수를 반환하는 경우
other
플랫폼 키 저장소 API에서 반환하는 기타 플랫폼별 오류입니다.

RetrieveGroupKey

virtual WEAVE_ERROR RetrieveGroupKey(
  uint32_t keyId,
  WeaveGroupKey & key
)=0

스토어 그룹 키

virtual WEAVE_ERROR StoreGroupKey(
  const WeaveGroupKey & key
)=0

보호된 함수

Init

void Init(
  void
)

로컬 그룹 키 저장소 매개변수를 초기화합니다.

OnEpochKeysChange

void OnEpochKeysChange(
  void
)

현재 키 ID를 반환합니다.

변경사항 (삭제 또는 저장)이 애플리케이션 에포크 키 세트에 변경될 때 에포크 키와 연결된 멤버 변수를 기본값으로 설정합니다. 이 메서드를 호출하려면 StoreGroupKey(), DeleteGroupKey(), DeleteGroupKeysOfAType() 함수를 구현하는 서브클래스에서 담당합니다.

RetrieveLastUsedEpochKeyId

virtual WEAVE_ERROR RetrieveLastUsedEpochKeyId(
  void
)=0

StoreLastUsedEpochKeyId

virtual WEAVE_ERROR StoreLastUsedEpochKeyId(
  void
)=0