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

1 つのペアリング コード文字でエンコードされたビット数。

kKryptonitePairingCodeLength

クリプトナイトのペア設定コードの長さ。

kPairingCodeLenMin

ペア設定コードの最小長。

kStandardPairingCodeLength

ほとんどの Google Nest 製品のペア設定コードの長さ。

関数

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

ランダムなペア設定コードを生成します。

この関数は、指定した長さの値を持つランダムな Weave ペアリングコード文字列を生成します。この文字列は、ビッグ エンディアンの base 32 数字と、末尾に Verhoeff チェック文字にエンコードされます。生成される文字列は、pairCodeLen パラメータで指定された固定長です。この長さを満たすため、文字列の左側には必要に応じてゼロがパディングされます。

詳細
パラメータ
[in] pairingCodeLen
末尾のチェック文字を含む、ペア設定コード文字列の任意の長さ。2 以上にする必要があります。
[out] outBuf
エンコードされたペアリングコードと null 終端文字を受け取る文字バッファへのポインタ。提供されるバッファは、少なくとも PairCodeLen + 1 の大きさである必要があります。
戻り値
WEAVE_NO_ERROR
メソッドが成功したかどうか。
WEAVE_ERROR_INVALID_ARGUMENT
pairCodeLen が 2 未満の場合、または、指定された整数値を、PairingCodeLen で指定された文字数からチェック文字の 1 を引いた数にエンコードできない場合。

IntToPairingCode

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

整数値を Weave ペアリングコードとしてエンコードします。

この関数は、指定された符号なし整数値(ビッグ エンディアンの base32 数値にエンコードされた値)と、末尾に Verhoeff チェック文字を組み合わせた、Weave ペアリングコード文字列を生成します。生成される文字列は、pairCodeLen パラメータで指定された固定長です。この長さを満たすため、文字列の左側には必要に応じてゼロがパディングされます。

詳細
パラメータ
[in] val
エンコードされる値。
[in] pairingCodeLen
エンコードされたペア設定コード文字列の任意の長さ(末尾のチェック文字を含む)。2 以上にする必要があります。
[out] outBuf
エンコードされたペアリングコードと null 終端文字を受け取る文字バッファへのポインタ。提供されるバッファは、少なくとも PairCodeLen + 1 の大きさである必要があります。
戻り値
WEAVE_NO_ERROR
メソッドが成功したかどうか。
WEAVE_ERROR_INVALID_ARGUMENT
pairCodeLen が 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
Kryptonite のデバイス ID。
[out] pairingCodeBuf
クリプトナイトのペア設定コード(NULL 終了文字)を受け取るバッファへのポインタ。提供されるバッファのサイズは 7 文字以上でなければなりません。
[in] pairingCodeBufSize
PeeringCodeBuf が指すバッファのサイズ。
戻り値
WEAVE_NO_ERROR
メソッドが成功したかどうか。
WEAVE_ERROR_INVALID_ARGUMENT
提供されたデバイス ID が範囲外の場合、または提供されたバッファが小さすぎる場合。

KryptonitePairingCodeToDeviceId

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

Kryptonite ペア設定コードでエンコードされたデバイス ID を返します。

詳細
パラメータ
[in] pairingCode
クリプトナイトのペア設定コードを含む NULL で終わる文字列。
[out] deviceId
デコードされた Kryptonite デバイス 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
PeeringCodeBuf が指すバッファのサイズ。
戻り値
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 で終了します。

詳細
パラメータ
[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 ペアリングコード文字列の最初の文字をビッグ エンディアンの 32 進数値として解析し、その結果の値を符号なし整数として返します。入力文字列は、デコードされた整数が uint64_t 内に収まる限り、2 以上の任意の長さにできます。

Verhoeff チェック文字の検証は試行されません(VerifyPairingCode() を参照)。

詳細
パラメータ
[in] pairingCode
デコードするペアリング コード文字列。この文字列は NULL で終わる必要はありません。
[in] pairingCodeLen
ペアリング コード文字列の長さ。NULL 終端文字は含みません。2 以上にする必要があります。
[out] val
デコードされた整数値。
戻り値
WEAVE_NO_ERROR
メソッドが成功したかどうか。
WEAVE_ERROR_INVALID_ARGUMENT
PeeringCodeLen が 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
PairCodeLen が 2 未満の場合、またはペアリングコードの最初の文字がチェック文字の値と一致しない場合。