nl::PairingCode

Podsumowanie

Wyliczenia

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

Funkcje

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Wygeneruj losowy kod parowania.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Zakoduj liczbę całkowitą jako kod parowania Weave.
IntToPairingCodeChar(int val)
char
Przekonwertuj wartość całkowitą z zakresu 0..31 na odpowiedni znak kodu parowania Weave.
IsValidPairingCodeChar(char ch)
bool
Zwraca wartość „prawda”, jeśli podany znak jest prawidłowym znakiem w kodzie parowania Weave.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Generuje ciąg kodu parowania Kryptonite z podanym identyfikatorem urządzenia Kryptonite.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Zwraca identyfikator urządzenia zakodowany w kodzie parowania Kryptonite.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Generuje ciąg kodu parowania Nevis z podanym identyfikatorem urządzenia Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Zwraca identyfikator urządzenia zakodowany w kodzie parowania Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Znormalizuj znaki w ciągu kodu parowania.
PairingCodeCharToInt(char ch)
int
Przekształć znak kodu parowania Weave na liczbę całkowitą z zakresu 0–31.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Zdekoduj kod parowania Weave jako liczbę całkowitą.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Zweryfikuj kod parowania Weave względem znaku kontrolnego.

Wyliczenia

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Właściwości
kBitsPerCharacter

Liczba bitów zakodowanych w pojedynczym znaku kodu parowania.

kKryptonitePairingCodeLength

Długość kodu parowania Kryptonite.

kPairingCodeLenMin

Minimalna długość kodu parowania.

kStandardPairingCodeLength

Długość kodu parowania w przypadku większości produktów Nest.

Funkcje

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Wygeneruj losowy kod parowania.

Funkcja generuje losowy ciąg kodu parowania Weave o określonej długości. Wartość jest kodowana jako liczba big-endian, base-32 i znak kontrolny Verhoeff na końcu. Wygenerowany ciąg ma stałą długość określoną przez parametr „pairCodeLen”. W razie potrzeby ciąg zostanie dopełniony po lewej stronie zerami, aby uzyskać odpowiednią długość.

Szczegóły
Parametry
[in] pairingCodeLen
Pożądana długość ciągu kodu parowania, łącznie ze znakiem wyboru na końcu. Musi wynosić >= 2.
[out] outBuf
Wskaźnik do bufora znaków, który otrzyma zakodowany kod parowania oraz pusty znak zakończenia. Dostarczony bufor powinien być co najmniej tak duży jak parowaniaCodeLen + 1.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli parametr parowaniaCodeLen ma wartość < 2 lub podana wartość całkowita nie może zostać zakodowana w liczbie znaków określonej przez parametr parowaniaCodeLen, minus 1 w przypadku znaku kontrolnego.

IntToPairingCode

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

Zakoduj liczbę całkowitą jako kod parowania Weave.

Funkcja generuje ciąg kodu parowania Weave składający się z podanej bez znaku liczby całkowitej zakodowanej w postaci liczby big-endian, w formacie base-32 i na końcu znaku kontrolnego Verhoeff. Wygenerowany ciąg ma stałą długość określoną przez parametr „pairCodeLen”. W razie potrzeby ciąg zostanie dopełniony po lewej stronie zerami, aby uzyskać odpowiednią długość.

Szczegóły
Parametry
[in] val
Wartość do zakodowania.
[in] pairingCodeLen
Wymagana długość zakodowanego ciągu kodu parowania, łącznie ze znakiem wyboru na końcu. Musi wynosić >= 2.
[out] outBuf
Wskaźnik do bufora znaków, który otrzyma zakodowany kod parowania oraz pusty znak zakończenia. Dostarczony bufor powinien być co najmniej tak duży jak parowaniaCodeLen + 1.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli parametr parowaniaCodeLen ma wartość < 2 lub podana wartość całkowita nie może zostać zakodowana w liczbie znaków określonej przez parametr parowaniaCodeLen, minus 1 w przypadku znaku kontrolnego.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

Przekonwertuj wartość całkowitą z zakresu 0..31 na odpowiedni znak kodu parowania Weave.

Pamiętaj, że ta funkcja zawsze zapisuje wielkie litery.

Szczegóły
Parametry
[in] val
Wartość liczby całkowitej do skonwertowania.
Zwroty
Znak kodu parowania, który odpowiada określonej wartości całkowitej, lub 0, jeśli liczba całkowita jest poza zakresem.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Zwraca wartość „prawda”, jeśli podany znak jest prawidłowym znakiem w kodzie parowania Weave.

Pamiętaj, że w tej funkcji wielkość liter nie jest rozróżniana.

Szczegóły
Parametry
[in] ch
Znak do przetestowania.
Zwroty
Wartość to „prawda”, jeśli podany znak jest prawidłowym znakiem w kodzie parowania Weave.

KryptoniteDeviceIdToPairingCode

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

Generuje ciąg kodu parowania Kryptonite z podanym identyfikatorem urządzenia Kryptonite.

Szczegóły
Parametry
[in] deviceId
Identyfikator urządzenia Kryptonite.
[out] pairingCodeBuf
Wskaźnik do bufora, który otrzyma kod parowania Kryptonite (znak zakończenia NULL). Przesłany bufor powinien mieć co najmniej 7 znaków.
[in] pairingCodeBufSize
Rozmiar bufora wskazany przez parowaniaCodeBuf.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_ARGUMENT
Podany identyfikator urządzenia jest poza zasięgiem lub bufor jest za mały.

KryptonitePairingCodeToDeviceId

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

Zwraca identyfikator urządzenia zakodowany w kodzie parowania Kryptonite.

Szczegóły
Parametry
[in] pairingCode
Ciąg znaków zakończony wartością NULL zawierający kod parowania Kryptonite.
[out] deviceId
Odwołanie do liczby całkowitej, która otrzymuje zdekodowany identyfikator urządzenia Kryptonite.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli długość podanego kodu parowania jest nieprawidłowa, kod zawiera nieprawidłowe znaki lub początkowe znaki kodu parowania nie są zgodne ze znakiem wyboru.

NevisDeviceIdToPairingCode

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

Generuje ciąg kodu parowania Nevis z podanym identyfikatorem urządzenia Nevis.

Szczegóły
Parametry
[in] deviceId
Identyfikator urządzenia Nevis.
[out] pairingCodeBuf
Wskaźnik do bufora, który otrzyma kod parowania Nevis (znak zakończenia NULL). Przesłany bufor powinien mieć co najmniej 7 znaków.
[in] pairingCodeBufSize
Rozmiar bufora wskazany przez parowaniaCodeBuf.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_ARGUMENT
Podany identyfikator urządzenia jest poza zasięgiem lub bufor jest za mały.

NevisPairingCodeToDeviceId

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

Zwraca identyfikator urządzenia zakodowany w kodzie parowania Nevis.

Szczegóły
Parametry
[in] pairingCode
Ciąg znaków z zakończeniem wartości NULL zawierający kod parowania Nevis.
[out] deviceId
Odwołanie do liczby całkowitej, która otrzymuje zdekodowany identyfikator urządzenia Nevis.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli długość podanego kodu parowania jest nieprawidłowa, kod zawiera nieprawidłowe znaki lub początkowe znaki kodu parowania nie są zgodne ze znakiem wyboru.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Znormalizuj znaki w ciągu kodu parowania.

Ta funkcja konwertuje wszystkie znaki alfabetu na wielkie litery, mapuje niedozwolone znaki „I”, „O”, „Q” i „Z” na odpowiednio „1”, „0”, „0” i „2” oraz usuwa z danego ciągu wszystkie pozostałe znaki kodu, które nie są parami.

Ciąg wejściowy nie musi być zakończony wartością NULL, ale jeśli ten ciąg występuje, również dane wyjściowe zostaną zakończone wartością NULL.

Szczegóły
Parametry
[in,out] pairingCode
W przypadku danych wejściowych ciąg kodu parowania do znormalizowania. W przypadku danych wyjściowych znormalizowany ciąg znaków. Ciąg znaków nie musi być zakończony wartością NULL.
[in,out] pairingCodeLen
Po wpisaniu danych wejściowych długość ciągu z kodem parowania, bez znaku końcowego NULL. W przypadku danych wyjściowych długość znormalizowanego ciągu znaków.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Przekształć znak kodu parowania Weave na liczbę całkowitą z zakresu 0–31.

Pamiętaj, że w tej funkcji wielkość liter nie jest rozróżniana.

Szczegóły
Parametry
[in] ch
Znak do przekonwertowania.
Zwroty
Liczba całkowita odpowiadająca określonemu znakowi w kodzie parowania lub -1, jeśli ch nie jest prawidłowym znakiem.

PairingCodeToInt

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

Zdekoduj kod parowania Weave jako liczbę całkowitą.

Funkcja analizuje początkowe znaki ciągu z kodem parowania Weave jako ciąg big-endian, w formacie base-32, i zwraca wynikową wartość jako nieoznaczoną liczbę całkowitą. Ciąg wejściowy może mieć dowolną długość >= 2, o ile zdekodowana liczba całkowita mieści się w zakresie uint64_t.

Nie jest wykonywana żadna próba weryfikacji znaku kontrolnego Verhoeff (patrz Weryfikacja paringCode()).

Szczegóły
Parametry
[in] pairingCode
Ciąg kodu parowania do dekodowania. Ten ciąg znaków nie musi zawierać wartości NULL.
[in] pairingCodeLen
Długość ciągu z kodem parowania, bez znaku końcowego NULL. Musi wynosić >= 2.
[out] val
Zdekodowana wartość liczby całkowitej.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli parametr parowaniaCodeLen ma wartość < 2 lub podany ciąg kodu parowania zawiera nieprawidłowy znak lub wartość całkowita zakodowana w kodzie parowania przekracza maksymalną wartość, która może zostać zapisana w uint64_t

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Zweryfikuj kod parowania Weave względem znaku kontrolnego.

Szczegóły
Parametry
[in] pairingCode
Ciąg kodu parowania do sprawdzenia. Ten ciąg znaków nie musi zawierać wartości NULL.
[in] pairingCodeLen
Długość ciągu z kodem parowania, bez znaku końcowego NULL. Musi wynosić >= 2.
Zwracane wartości
WEAVE_NO_ERROR
Jeśli to się uda,
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli parametr parowaniaCodeLen ma wartość < 2 lub początkowe znaki kodu parowania nie są zgodne z wartością znaku kontrolnego.