nl::Weave::Profiles::Security::AppKeys::GroupKeyStoreBase

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

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

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

요약

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

상속

직접 알려진 서브클래스:
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Internal::GroupKeyStoreImpl
  nl::Weave::DeviceLayer::Group:Group:GroupKeyStoreI{11:SecurityStore::내부용:Group:GroupKeyStoreI{11:SecurityStore::Internal:GroupKeyStoreImpl}
nl::Weave::Profiles::Security::AppKeys::DummyGroupKeyStore

보호된 속성

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

DeleteGroupKey

virtual WEAVE_ERROR DeleteGroupKey(
  uint32_t keyId
)=0

DeleteGroupKeysOfAType

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에서 반환하는 기타 플랫폼별 오류

EnumerateGroupKeys

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

StoreGroupKey

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