nl::Weave::WeaveKeyId

#include <src/lib/core/WeaveKeyIds.h>

Weave 키 식별자의 정의입니다.

요약

이 클래스에는 키 유형, 키 플래그, 키 ID 필드 정의 및 API 함수가 포함됩니다.

공개 유형

@52{
  kType_None = 0x00000000,
  kType_General = 0x00001000,
  kType_Session = 0x00002000,
  kType_AppStaticKey = 0x00004000,
  kType_AppRotatingKey = kType_AppStaticKey | kTypeModifier_IncorporatesEpochKey,
  kType_AppRootKey = 0x00010000,
  kType_AppEpochKey = 0x00020000 | kTypeModifier_IncorporatesEpochKey,
  kType_AppGroupMasterKey = 0x00030000,
  kType_AppIntermediateKey = kType_AppRootKey | kTypeModifier_IncorporatesEpochKey,
  kNone = kType_None | 0x0000,
  kFabricSecret = kType_General | 0x0001,
  kFabricRootKey = kType_AppRootKey | (0 << kShift_RootKeyNumber),
  kClientRootKey = kType_AppRootKey | (1 << kShift_RootKeyNumber),
  kServiceRootKey = kType_AppRootKey | (2 << kShift_RootKeyNumber),
  kKeyNumber_Max = kMask_KeyNumber
}
enum
공개 Weave 키 ID 필드, 플래그, 유형

공개 정적 함수

ConvertToCurrentAppKeyId(uint32_t keyId)
uint32_t
애플리케이션 그룹 키 ID를 애플리케이션 현재 키 ID로 변환합니다.
ConvertToStaticAppKeyId(uint32_t keyId)
uint32_t
애플리케이션 키 ID를 애플리케이션 정적 키 ID로 변환합니다.
DescribeKey(uint32_t keyId)
const char *
설명 문자열로 Weave 키 식별자를 디코딩합니다.
GetAppGroupLocalNumber(uint32_t keyId)
uint8_t
지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 로컬 번호를 가져옵니다.
GetAppGroupMasterKeyId(uint32_t keyId)
uint32_t
지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 마스터 키 ID를 가져옵니다.
GetEpochKeyId(uint32_t keyId)
uint32_t
지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 에포크 키 ID를 가져옵니다.
GetEpochKeyNumber(uint32_t keyId)
uint8_t
지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 에포크 키 번호를 가져옵니다.
GetRootKeyId(uint32_t keyId)
uint32_t
지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 루트 키 ID를 가져옵니다.
GetRootKeyNumber(uint32_t keyId)
uint8_t
지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 루트 키 번호를 가져옵니다.
GetType(uint32_t keyId)
uint32_t
지정된 키 ID의 Get Weave 키 유형입니다.
IncorporatesAppGroupMasterKey(uint32_t keyId)
bool
지정된 애플리케이션 그룹 키 ID에 그룹 마스터 키가 통합되는지 확인합니다.
IncorporatesEpochKey(uint32_t keyId)
bool
지정된 애플리케이션 그룹 키 ID에 에포크 키를 통합하는지 확인합니다.
IncorporatesRootKey(uint32_t keyId)
bool
지정된 애플리케이션 그룹 키 ID에 루트 키가 통합되는지 확인합니다.
IsAppEpochKey(uint32_t keyId)
bool
지정된 키 ID가 애플리케이션 에포크 키 유형인지 확인합니다.
IsAppGroupKey(uint32_t keyId)
bool
지정된 키 ID가 애플리케이션 그룹 키 유형 (정적 또는 순환) 중 하나에 속하는지 확인합니다.
IsAppGroupMasterKey(uint32_t keyId)
bool
지정된 키 ID가 애플리케이션 그룹 마스터 키 유형인지 확인합니다.
IsAppRootKey(uint32_t keyId)
bool
지정된 키 ID가 애플리케이션 루트 키 유형인지 확인합니다.
IsAppRotatingKey(uint32_t keyId)
bool
지정된 키 ID가 애플리케이션 순환 유형인지 확인합니다.
IsAppStaticKey(uint32_t keyId)
bool
지정된 키 ID가 애플리케이션 정적 유형인지 확인합니다.
IsGeneralKey(uint32_t keyId)
bool
지정된 키 ID가 일반 유형인지 확인합니다.
IsMessageEncryptionKeyId(uint32_t keyId, bool allowLogicalKeys)
bool
지정된 키 ID가 Weave 메시지 암호화에 적합한 키를 식별하는지 확인합니다.
IsSameKeyOrGroup(uint32_t keyId1, uint32_t keyId2)
bool
두 키 ID가 동일한 키를 식별하는지, 또는 키를 순환하는 경우에는 특정 에포크와 관계없이 동일한 키 그룹을 식별하는지 확인합니다.
IsSessionKey(uint32_t keyId)
bool
지정된 키 ID가 세션 유형인지 확인합니다.
IsValidKeyId(uint32_t keyId)
bool
키 식별자에 유효한 (법적) 값이 있는지 확인합니다.
MakeAppGroupMasterKeyId(uint8_t appGroupLocalNumber)
uint32_t
애플리케이션 그룹 로컬 번호로 애플리케이션 그룹 마스터 키 ID를 구성합니다.
MakeAppIntermediateKeyId(uint32_t rootKeyId, uint32_t epochKeyId, bool useCurrentEpochKey)
uint32_t
구성 키 ID가 지정된 애플리케이션 중간 키 ID를 구성합니다.
MakeAppKeyId(uint32_t keyType, uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
구성 키 ID 및 기타 정보를 고려하여 애플리케이션 그룹 키 ID를 구성합니다.
MakeAppRotatingKeyId(uint32_t rootKeyId, uint32_t epochKeyId, uint32_t appGroupMasterKeyId, bool useCurrentEpochKey)
uint32_t
구성요소 키 ID 및 기타 정보를 고려하여 애플리케이션 순환 키 ID를 구성합니다.
MakeAppStaticKeyId(uint32_t rootKeyId, uint32_t appGroupMasterKeyId)
uint32_t
구성 키 ID가 지정된 애플리케이션 정적 키 ID를 구성합니다.
MakeEpochKeyId(uint8_t epochKeyNumber)
uint32_t
에포크 키 번호로 애플리케이션 그룹 루트 키 ID를 구성합니다.
MakeGeneralKeyId(uint16_t generalKeyNumber)
uint16_t
일반 키 번호가 주어진 일반 키 ID를 구성합니다.
MakeRootKeyId(uint8_t rootKeyNumber)
uint32_t
루트 키 번호로 애플리케이션 그룹 루트 키 ID를 구성합니다.
MakeSessionKeyId(uint16_t sessionKeyNumber)
uint16_t
세션 키 번호가 지정된 세션 키 ID를 구성합니다.
UpdateEpochKeyId(uint32_t keyId, uint32_t epochKeyId)
uint32_t
애플리케이션 그룹 키 ID를 새 에포크 키 번호로 업데이트합니다.
UsesCurrentEpochKey(uint32_t keyId)
bool
지정된 애플리케이션 그룹 키 ID가 '현재' 에포크 키를 사용하는지 확인합니다.

공개 유형

@52

 @52

공개 Weave 키 ID 필드, 플래그, 유형

속성
kClientRootKey

클라이언트 루트 키 ID입니다.

kFabricRootKey

Fabric 루트 키 ID입니다.

kFabricSecret

Weave 패브릭 보안 비밀 ID입니다.

kKeyNumber_Max

키 ID 하위 필드의 최댓값입니다.

kNone

Weave 전역 키 ID

지정되지 않은 Weave 키 ID입니다.

kServiceRootKey

서비스 루트 키 ID입니다.

kType_AppEpochKey

애플리케이션 그룹 에포크 키 유형입니다.

kType_AppGroupMasterKey

애플리케이션 그룹 마스터 키 유형입니다.

kType_AppIntermediateKey

애플리케이션 그룹 중간 키 유형입니다.

kType_AppRootKey

Weave 키 유형 (Weave 메일 암호화 유형 제외)

kType_AppRotatingKey

애플리케이션 순환 키 유형입니다.

kType_AppStaticKey

애플리케이션 정적 키 유형입니다.

kType_General

일반 키 유형입니다.

kType_None

Weave 메일 암호화에 사용되는 Weave 키 유형입니다.

kType_Session

세션 키 유형입니다.

공개 정적 함수

ConvertToCurrentAppKeyId

uint32_t ConvertToCurrentAppKeyId(
  uint32_t keyId
)

애플리케이션 그룹 키 ID를 애플리케이션 현재 키 ID로 변환합니다.

세부정보
매개변수
[in] keyId
애플리케이션 키 ID입니다.
반환
애플리케이션 현재 키 ID입니다.

ConvertToStaticAppKeyId

uint32_t ConvertToStaticAppKeyId(
  uint32_t keyId
)

애플리케이션 키 ID를 애플리케이션 정적 키 ID로 변환합니다.

세부정보
매개변수
[in] keyId
애플리케이션 키 ID입니다.
반환
애플리케이션 정적 키 ID입니다.

DescribeKey

const char * DescribeKey(
  uint32_t keyId
)

설명 문자열로 Weave 키 식별자를 디코딩합니다.

세부정보
매개변수
[in] keyId
디코딩하고 설명 문자열을 반환할 Weave 키 ID입니다.
반환
지정된 키 ID를 설명하는 NULL로 끝나는 문자열에 대한 포인터입니다.

GetAppGroupLocalNumber

uint8_t GetAppGroupLocalNumber(
  uint32_t keyId
)

지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 로컬 번호를 가져옵니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
애플리케이션 그룹 로컬 번호입니다.

GetAppGroupMasterKeyId

uint32_t GetAppGroupMasterKeyId(
  uint32_t keyId
)

지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 마스터 키 ID를 가져옵니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
애플리케이션 그룹 마스터 키 ID입니다.

GetEpochKeyId

uint32_t GetEpochKeyId(
  uint32_t keyId
)

지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 에포크 키 ID를 가져옵니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
에포크 키 ID입니다.

GetEpochKeyNumber

uint8_t GetEpochKeyNumber(
  uint32_t keyId
)

지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 에포크 키 번호를 가져옵니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
에포크 키 번호입니다.

GetRootKeyId

uint32_t GetRootKeyId(
  uint32_t keyId
)

지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 루트 키 ID를 가져옵니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
루트 키 ID입니다.

GetRootKeyNumber

uint8_t GetRootKeyNumber(
  uint32_t keyId
)

지정된 애플리케이션 키를 파생하는 데 사용된 애플리케이션 그룹 루트 키 번호를 가져옵니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
루트 키 번호입니다.

GetType

uint32_t GetType(
  uint32_t keyId
)

지정된 키 ID의 Get Weave 키 유형입니다.

세부정보
매개변수
[in] keyId
Weave 키 식별자입니다.
반환
키 ID 유형입니다.

IncorporatesAppGroupMasterKey

bool IncorporatesAppGroupMasterKey(
  uint32_t keyId
)

지정된 애플리케이션 그룹 키 ID에 그룹 마스터 키가 통합되는지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
keyId가 그룹 마스터 키를 통합하면 true입니다.

IncorporatesEpochKey

bool IncorporatesEpochKey(
  uint32_t keyId
)

지정된 애플리케이션 그룹 키 ID에 에포크 키를 통합하는지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
keyId에 에포크 키를 통합하면 true입니다.

IncorporatesRootKey

bool IncorporatesRootKey(
  uint32_t keyId
)

지정된 애플리케이션 그룹 키 ID에 루트 키가 통합되는지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
keyId가 루트 키를 통합하면 true입니다.

IsAppEpochKey

bool IsAppEpochKey(
  uint32_t keyId
)

지정된 키 ID가 애플리케이션 에포크 키 유형인지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 식별자입니다.
반환
애플리케이션 에포크 키 유형의 keyId인 경우 true입니다.

IsAppGroupKey

bool IsAppGroupKey(
  uint32_t keyId
)

지정된 키 ID가 애플리케이션 그룹 키 유형 (정적 또는 순환) 중 하나에 속하는지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 식별자입니다.
반환
keyId가 회전 또는 정적 키 유형인 경우 true입니다.

IsAppGroupMasterKey

bool IsAppGroupMasterKey(
  uint32_t keyId
)

지정된 키 ID가 애플리케이션 그룹 마스터 키 유형인지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 식별자입니다.
반환
애플리케이션 그룹 마스터 키 유형의 keyId인 경우 true입니다.

IsAppRootKey

bool IsAppRootKey(
  uint32_t keyId
)

지정된 키 ID가 애플리케이션 루트 키 유형인지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 식별자입니다.
반환
애플리케이션 루트 키 유형의 keyId인 경우 true입니다.

IsAppRotatingKey

bool IsAppRotatingKey(
  uint32_t keyId
)

지정된 키 ID가 애플리케이션 순환 유형인지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 식별자입니다.
반환
애플리케이션 회전 유형의 keyId인 경우 true입니다.

IsAppStaticKey

bool IsAppStaticKey(
  uint32_t keyId
)

지정된 키 ID가 애플리케이션 정적 유형인지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 식별자입니다.
반환
애플리케이션 정적 유형의 keyId인 경우 true입니다.

IsGeneralKey

bool IsGeneralKey(
  uint32_t keyId
)

지정된 키 ID가 일반 유형인지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 식별자입니다.
반환
키 ID에 일반 유형이 있으면 true입니다.

IsMessageEncryptionKeyId

bool IsMessageEncryptionKeyId(
  uint32_t keyId,
  bool allowLogicalKeys
)

지정된 키 ID가 Weave 메시지 암호화에 적합한 키를 식별하는지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 ID입니다.
[in] allowLogicalKeys
논리 키 ID (예: '현재' 순환 키)가 메시지 암호화에 적합한 것으로 간주되어야 하는지 여부를 지정합니다.
반환
확인된 키를 Weave 메시지를 암호화하는 데 사용할 수 있는 경우 true입니다.

IsSameKeyOrGroup

bool IsSameKeyOrGroup(
  uint32_t keyId1,
  uint32_t keyId2
)

두 키 ID가 동일한 키를 식별하는지, 또는 키를 순환하는 경우에는 특정 에포크와 관계없이 동일한 키 그룹을 식별하는지 확인합니다.

세부정보
매개변수
[in] keyId1
테스트할 첫 번째 키 ID입니다.
[in] keyId2
테스트할 두 번째 키 ID입니다.
반환
키 ID가 동일한 키를 나타내면 true입니다.

IsSessionKey

bool IsSessionKey(
  uint32_t keyId
)

지정된 키 ID가 세션 유형인지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 식별자입니다.
반환
세션 유형의 keyId인 경우 true입니다.

IsValidKeyId

bool IsValidKeyId(
  uint32_t keyId
)

키 식별자에 유효한 (법적) 값이 있는지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 키 ID입니다.
반환
키 ID 값이 유효하면 true입니다.

MakeAppGroupMasterKeyId

uint32_t MakeAppGroupMasterKeyId(
  uint8_t appGroupLocalNumber
)

애플리케이션 그룹 로컬 번호로 애플리케이션 그룹 마스터 키 ID를 구성합니다.

세부정보
매개변수
[in] appGroupLocalNumber
애플리케이션 그룹 로컬 번호입니다.
반환
애플리케이션 그룹 마스터 키 ID입니다.

MakeAppIntermediateKeyId

uint32_t MakeAppIntermediateKeyId(
  uint32_t rootKeyId,
  uint32_t epochKeyId,
  bool useCurrentEpochKey
)

구성 키 ID가 지정된 애플리케이션 중간 키 ID를 구성합니다.

세부정보
매개변수
[in] rootKeyId
애플리케이션 중간 키를 파생하는 데 사용되는 루트 키 ID입니다.
[in] epochKeyId
애플리케이션 중간 키를 파생하는 데 사용되는 에포크 키 ID입니다.
[in] useCurrentEpochKey
'현재' 에포크 키를 사용하여 키를 파생해야 하는지 나타내는 불리언 플래그입니다.
반환
애플리케이션 중간 키 ID입니다.

MakeAppKeyId

uint32_t MakeAppKeyId(
  uint32_t keyType,
  uint32_t rootKeyId,
  uint32_t epochKeyId,
  uint32_t appGroupMasterKeyId,
  bool useCurrentEpochKey
)

구성 키 ID 및 기타 정보를 고려하여 애플리케이션 그룹 키 ID를 구성합니다.

세부정보
매개변수
[in] keyType
파생된 애플리케이션 그룹 키 유형입니다.
[in] rootKeyId
애플리케이션 그룹 키를 파생하는 데 사용되는 루트 키 ID입니다.
[in] epochKeyId
애플리케이션 그룹 키를 파생하는 데 사용되는 에포크 키 ID입니다.
[in] appGroupMasterKeyId
애플리케이션 그룹 키를 파생하는 데 사용되는 애플리케이션 그룹 마스터 키 ID입니다.
[in] useCurrentEpochKey
'현재' 에포크 키를 사용하여 키를 파생해야 하는지 나타내는 불리언 플래그입니다.
반환
애플리케이션 그룹 키 ID입니다.

MakeAppRotatingKeyId

uint32_t MakeAppRotatingKeyId(
  uint32_t rootKeyId,
  uint32_t epochKeyId,
  uint32_t appGroupMasterKeyId,
  bool useCurrentEpochKey
)

구성요소 키 ID 및 기타 정보를 고려하여 애플리케이션 순환 키 ID를 구성합니다.

세부정보
매개변수
[in] rootKeyId
애플리케이션 순환 키를 파생하는 데 사용되는 루트 키 ID입니다.
[in] epochKeyId
애플리케이션 순환 키를 파생하는 데 사용되는 에포크 키 ID입니다.
[in] appGroupMasterKeyId
애플리케이션 순환 키를 파생하는 데 사용되는 애플리케이션 그룹 마스터 키 ID입니다.
[in] useCurrentEpochKey
'현재' 에포크 키를 사용하여 키를 파생해야 하는지 나타내는 불리언 플래그입니다.
반환
애플리케이션 순환 키 ID입니다.

MakeAppStaticKeyId

uint32_t MakeAppStaticKeyId(
  uint32_t rootKeyId,
  uint32_t appGroupMasterKeyId
)

구성 키 ID가 지정된 애플리케이션 정적 키 ID를 구성합니다.

세부정보
매개변수
[in] rootKeyId
애플리케이션 정적 키를 얻는 데 사용되는 루트 키 ID입니다.
[in] appGroupMasterKeyId
애플리케이션 정적 키를 파생하는 데 사용되는 애플리케이션 그룹 마스터 키 ID입니다.
반환
애플리케이션 정적 키 ID입니다.

MakeEpochKeyId

uint32_t MakeEpochKeyId(
  uint8_t epochKeyNumber
)

에포크 키 번호로 애플리케이션 그룹 루트 키 ID를 구성합니다.

세부정보
매개변수
[in] epochKeyNumber
에포크 키 번호입니다.
반환
에포크 키 ID입니다.

MakeGeneralKeyId

uint16_t MakeGeneralKeyId(
  uint16_t generalKeyNumber
)

일반 키 번호가 주어진 일반 키 ID를 구성합니다.

세부정보
매개변수
[in] generalKeyNumber
일반 키 번호입니다.
반환
일반 키 ID입니다.

MakeRootKeyId

uint32_t MakeRootKeyId(
  uint8_t rootKeyNumber
)

루트 키 번호로 애플리케이션 그룹 루트 키 ID를 구성합니다.

세부정보
매개변수
[in] rootKeyNumber
루트 키 번호입니다.
반환
루트 키 ID입니다.

MakeSessionKeyId

uint16_t MakeSessionKeyId(
  uint16_t sessionKeyNumber
)

세션 키 번호가 지정된 세션 키 ID를 구성합니다.

세부정보
매개변수
[in] sessionKeyNumber
세션 키 번호
반환
세션 키 ID입니다.

UpdateEpochKeyId

uint32_t UpdateEpochKeyId(
  uint32_t keyId,
  uint32_t epochKeyId
)

애플리케이션 그룹 키 ID를 새 에포크 키 번호로 업데이트합니다.

세부정보
매개변수
[in] keyId
애플리케이션 키 ID입니다.
[in] epochKeyId
업데이트된 애플리케이션 키 ID를 생성하는 데 사용될 에포크 키 ID입니다.
반환
애플리케이션 키 ID입니다.

UsesCurrentEpochKey

bool UsesCurrentEpochKey(
  uint32_t keyId
)

지정된 애플리케이션 그룹 키 ID가 '현재' 에포크 키를 사용하는지 확인합니다.

세부정보
매개변수
[in] keyId
Weave 애플리케이션 그룹 키 식별자입니다.
반환
keyId가 현재 에포크 키의 사용을 나타내면 true입니다.