nl::PairingCode

요약

열거

@353 enum
@354 enum
@355 enum
@356{
  kStandardPairingCodeLength = 6,
  kKryptonitePairingCodeLength = 9,
  kPairingCodeLenMin = 2,
  kBitsPerCharacter = 5
}
enum

함수

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
랜덤 페어링 코드를 생성합니다.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
정수 값을 Weave 페어링 코드로 인코딩합니다.
IntToPairingCodeChar(int val)
char
0..31 범위의 정수 값을 해당 Weave 페어링 코드 문자로 변환합니다.
IsValidPairingCodeChar(char ch)
bool
제공된 문자가 유효한 Weave 페어링 코드 문자이면 true를 반환합니다.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Kryptonite 기기 ID가 지정된 Kryptonite 페어링 코드 문자열을 생성합니다.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Kryptonite 페어링 코드로 인코딩된 기기 ID를 반환합니다.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Nevis 기기 ID가 지정된 Nevis 페어링 코드 문자열을 생성합니다.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Nevis 페어링 코드로 인코딩된 기기 ID를 반환합니다.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
페어링 코드 문자열의 문자를 정규화합니다.
PairingCodeCharToInt(char ch)
int
Weave 페어링 코드 문자를 0~31 범위의 정수 값으로 변환합니다.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Weave 페어링 코드를 정수 값으로 디코딩합니다.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Weave 페어링 코드를 검사 문자와 비교하여 확인합니다.

열거형

@353

 @353

@354

 @354

@355

 @355

@356

 @356
속성
kBitsPerCharacter

단일 페어링 코드 문자로 인코딩된 비트 수입니다.

kKryptonitePairingCodeLength

Kryptonite의 페어링 코드 길이입니다.

kPairingCodeLenMin

페어링 코드의 최소 길이입니다.

kStandardPairingCodeLength

대부분의 Nest 제품의 페어링 코드 길이

함수

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

랜덤 페어링 코드를 생성합니다.

이 함수는 지정된 길이를 가진 임의의 Weave 페어링 코드 문자열을 생성합니다. 값은 big-endian, base-32 숫자 및 후행 Verhoeff 검사 문자로 인코딩됩니다. 생성된 문자열의 길이는 pairingCodeLen 매개변수로 지정된 고정 길이입니다. 문자열은 이 길이를 충족하기 위해 필요에 따라 왼쪽에 0으로 패딩됩니다.

세부정보
매개변수
[in] pairingCodeLen
후행 검사 문자를 포함한 페어링 코드 문자열의 원하는 길이입니다. 2 이상이어야 합니다.
[out] outBuf
인코딩된 페어링 코드와 null 종결 문자를 수신할 문자 버퍼에 대한 포인터입니다. 제공된 버퍼는 최소 matchingCodeLen + 1보다 크거나 같아야 합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INVALID_ARGUMENT
LinkingCodeLen이 2보다 작거나 제공된 정수 값이 pairingCodeLen에 지정된 문자 수(확인 문자에서 1을 뺀 값)로 인코딩할 수 없습니다.

IntToPairingCode

WEAVE_ERROR IntToPairingCode(
  uint64_t val,
  uint8_t pairingCodeLen,
  char *outBuf
)

정수 값을 Weave 페어링 코드로 인코딩합니다.

이 함수는 big-endian, base-32 숫자로 인코딩된 제공된 부호 없는 정수 값과 후행 Verhoeff 검사 문자로 구성된 Weave 페어링 코드 문자열을 생성합니다. 생성된 문자열의 길이는 pairingCodeLen 매개변수로 지정된 고정 길이입니다. 문자열은 이 길이를 충족하기 위해 필요에 따라 왼쪽에 0으로 패딩됩니다.

세부정보
매개변수
[in] val
인코딩할 값입니다.
[in] pairingCodeLen
후행 검사 문자를 포함하는 인코딩된 페어링 코드 문자열의 원하는 길이입니다. 2 이상이어야 합니다.
[out] outBuf
인코딩된 페어링 코드와 null 종결 문자를 수신할 문자 버퍼에 대한 포인터입니다. 제공된 버퍼는 최소 matchingCodeLen + 1보다 크거나 같아야 합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INVALID_ARGUMENT
LinkingCodeLen이 2보다 작거나 제공된 정수 값이 pairingCodeLen에 지정된 문자 수(확인 문자에서 1을 뺀 값)로 인코딩할 수 없습니다.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

0..31 범위의 정수 값을 해당 Weave 페어링 코드 문자로 변환합니다.

이 함수는 항상 대문자를 생성합니다.

세부정보
매개변수
[in] val
변환할 정수 값입니다.
반환
지정된 정수 값에 해당하는 페어링 코드 문자 또는 정수 값이 범위를 벗어나면 0입니다.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

제공된 문자가 유효한 Weave 페어링 코드 문자이면 true를 반환합니다.

이 함수는 대소문자를 구분하지 않습니다.

세부정보
매개변수
[in] ch
테스트할 문자입니다.
반환
제공된 문자가 유효한 Weave 페어링 코드 문자인 경우 true입니다.

KryptoniteDeviceIdToPairingCode

WEAVE_ERROR KryptoniteDeviceIdToPairingCode(
  uint64_t deviceId,
  char *pairingCodeBuf,
  size_t pairingCodeBufSize
)

Kryptonite 기기 ID가 지정된 Kryptonite 페어링 코드 문자열을 생성합니다.

세부정보
매개변수
[in] deviceId
크립토나이트 기기 ID입니다.
[out] pairingCodeBuf
Kryptonite 페어링 코드를 수신할 버퍼에 대한 포인터인 NULL 종료 문자. 제공된 버퍼의 크기는 7자 이상이어야 합니다.
[in] pairingCodeBufSize
페어링 코드 Buf가 가리키는 버퍼의 크기입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INVALID_ARGUMENT
제공된 기기 ID가 범위를 벗어났거나 제공된 버퍼가 너무 작은 경우입니다.

KryptonitePairingCodeToDeviceId

WEAVE_ERROR KryptonitePairingCodeToDeviceId(
  const char *pairingCode,
  uint64_t & deviceId
)

Kryptonite 페어링 코드로 인코딩된 기기 ID를 반환합니다.

세부정보
매개변수
[in] pairingCode
Kryptonite 페어링 코드를 포함하는 NULL로 끝나는 문자열입니다.
[out] deviceId
디코딩된 크립토나이트 기기 ID를 수신하는 정수에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INVALID_ARGUMENT
제공된 페어링 코드의 길이가 잘못되었거나 페어링 코드에 잘못된 문자가 포함되어 있거나 페어링 코드의 첫 문자가 확인 문자와 일치하지 않습니다.

NevisDeviceIdToPairingCode

WEAVE_ERROR NevisDeviceIdToPairingCode(
  uint64_t deviceId,
  char *pairingCodeBuf,
  size_t pairingCodeBufSize
)

Nevis 기기 ID가 지정된 Nevis 페어링 코드 문자열을 생성합니다.

세부정보
매개변수
[in] deviceId
Nevis 기기 ID입니다.
[out] pairingCodeBuf
Nevis 페어링 코드(NULL 종료 문자)를 수신할 버퍼에 대한 포인터입니다. 제공된 버퍼의 크기는 7자 이상이어야 합니다.
[in] pairingCodeBufSize
페어링 코드 Buf가 가리키는 버퍼의 크기입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INVALID_ARGUMENT
제공된 기기 ID가 범위를 벗어났거나 제공된 버퍼가 너무 작은 경우입니다.

NevisPairingCodeToDeviceId

WEAVE_ERROR NevisPairingCodeToDeviceId(
  const char *pairingCode,
  uint64_t & deviceId
)

Nevis 페어링 코드로 인코딩된 기기 ID를 반환합니다.

세부정보
매개변수
[in] pairingCode
Nevis 페어링 코드를 포함하는 NULL로 끝나는 문자열입니다.
[out] deviceId
디코딩된 Nevis 기기 ID를 수신하는 정수에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INVALID_ARGUMENT
제공된 페어링 코드의 길이가 잘못되었거나 페어링 코드에 잘못된 문자가 포함되어 있거나 페어링 코드의 첫 문자가 확인 문자와 일치하지 않습니다.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

페어링 코드 문자열의 문자를 정규화합니다.

이 함수는 모든 알파벳 문자를 대문자로 변환하고 잘못된 문자 'I', 'O', 'Q', 'Z'를 각각 '1', '0', '0', '2'에 매핑하며 지정된 문자열에서 페어링이 아닌 다른 모든 코드 문자를 삭제합니다.

입력 문자열이 NULL로 종료될 필요는 없지만, NULL로 종료되었다면 출력도 NULL로 종료됩니다.

세부정보
매개변수
[in,out] pairingCode
입력 시 정규화할 페어링 코드 문자열입니다. 출력 시 정규화된 문자열입니다. 문자열이 NULL로 끝날 필요는 없습니다.
[in,out] pairingCodeLen
입력 시 페어링 코드 문자열의 길이로, NULL 종결자는 포함되지 않습니다. 출력 시 정규화된 문자열의 길이입니다.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Weave 페어링 코드 문자를 0~31 범위의 정수 값으로 변환합니다.

이 함수는 대소문자를 구분하지 않습니다.

세부정보
매개변수
[in] ch
변환할 문자입니다.
반환
지정된 페어링 코드 문자에 해당하는 정수 값이거나 ch가 유효한 문자가 아닌 경우 -1입니다.

PairingCodeToInt

WEAVE_ERROR PairingCodeToInt(
  const char *pairingCode,
  size_t pairingCodeLen,
  uint64_t & val
)

Weave 페어링 코드를 정수 값으로 디코딩합니다.

이 함수는 Weave 페어링 코드 문자열의 초기 문자를 big-endian, base-32 숫자로 파싱하고 결과 값을 부호 없는 정수로 반환합니다. 입력 문자열은 디코딩된 정수가 uint64_t 내에 적합하다면 길이 >= 2가 될 수 있습니다.

Verhoeff 검사 문자를 확인하려고 시도하지 않습니다 (VerifyPairingCode() 참조).

세부정보
매개변수
[in] pairingCode
디코딩할 페어링 코드 문자열입니다. 이 문자열은 NULL로 끝나지 않아도 됩니다.
[in] pairingCodeLen
NULL 종결자를 포함하지 않는 페어링 코드 문자열의 길이입니다. 2 이상이어야 합니다.
[out] val
디코딩된 정수 값입니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INVALID_ARGUMENT
matchingCodeLen이 2 미만이거나 제공된 페어링 코드 문자열에 잘못된 문자가 포함되어 있거나 페어링 코드에 인코딩된 정수 값이 uint64_t에 저장할 수 있는 최댓값을 초과합니다.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Weave 페어링 코드를 검사 문자와 비교하여 확인합니다.

세부정보
매개변수
[in] pairingCode
확인할 페어링 코드 문자열입니다. 이 문자열은 NULL로 끝나지 않아도 됩니다.
[in] pairingCodeLen
NULL 종결자를 포함하지 않는 페어링 코드 문자열의 길이입니다. 2 이상이어야 합니다.
반환 값
WEAVE_NO_ERROR
메서드가 성공한 경우
WEAVE_ERROR_INVALID_ARGUMENT
matchingCodeLen이 2 미만이거나 페어링 코드의 초기 문자가 검사 문자 값과 일치하지 않는 경우