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

Kryptonite のペア設定コード長。

kPairingCodeLenMin

ペアリングコードの最小長。

kStandardPairingCodeLength

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

関数

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

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

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

詳細
パラメータ
[in] pairingCodeLen
末尾のチェック文字を含む、ペアリング コード文字列に必要な長さ。2 以上にする必要があります。
[out] outBuf
エンコードされたペアリングコードと null 終端文字を受け取る文字バッファへのポインタ。提供されるバッファは、pairingCodeLen + 1 以上のサイズにする必要があります。
戻り値
WEAVE_NO_ERROR
メソッドが成功した場合。
WEAVE_ERROR_INVALID_ARGUMENT
pipelineCodeLen が <2 または指定された整数値は、pairingCodeLen で指定された文字数(チェック文字の 1 を引いた数)にエンコードできません。

IntToPairingCode

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

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

この関数は、指定された符号なし整数値(ビッグ エンディアンの Base-32 数値でエンコード)と、末尾の Verhoeff チェック文字で構成される Weave ペアリングコード文字列を生成します。生成される文字列は、pairingCodeLen パラメータで指定された固定長になります。この長さを満たすために、文字列の左側にゼロがパディングされます。

詳細
パラメータ
[in] val
エンコードする値。
[in] pairingCodeLen
エンコードされたペアリングコード文字列に必要な長さ(末尾のチェック文字を含む)。2 以上にする必要があります。
[out] outBuf
エンコードされたペアリングコードと null 終端文字を受け取る文字バッファへのポインタ。提供されるバッファは、pairingCodeLen + 1 以上のサイズにする必要があります。
戻り値
WEAVE_NO_ERROR
メソッドが成功した場合。
WEAVE_ERROR_INVALID_ARGUMENT
pipelineCodeLen が <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
Kryptonite ペアリングコード(NULL 終了文字)を受け取るバッファへのポインタ。提供されるバッファのサイズは 7 文字以上にする必要があります。
[in] pairingCodeBufSize
paymentsCodeBuf が指すバッファのサイズ。
戻り値
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
デコードされた 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
paymentsCodeBuf が指すバッファのサイズ。
戻り値
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
pipelineCodeLen が <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
paymentsCodeLen が <または、ペアリングコードの最初の文字がチェック文字の値と一致していません。