Testzertifikate für Matter-Geräte erstellen

Es ist zwar keine Voraussetzung, aber einige Testszenarien erfordern die Erstellung einer Nicht-Produktionsversion. Matter-Zertifikate.

Einige Funktionen des Google-Ökosystems, einschließlich der OTA-Software für Geräte Aktualisierungen können nicht mit einer Test-VID/-PID durchgeführt werden.

In diesem Leitfaden wird erläutert, wie Sie eine Nicht-Produktion erstellen und verifizieren. Matter Zertifikate zum Testen. Die Arten von Zertifikate sind:

  1. Die Zertifizierungserklärung (CD)
  2. Das PAI (Product Attestation Zwischenzertifikat)
  3. Das DAC

Während der Inbetriebnahme wird eine von Matter zertifizierte Person Gerät muss sich selbst bestätigen, d. h. nachweisen, es sich um ein echtes Matter-zertifiziertes Produkt handelt. Anmeldedaten von Matter Geräten zur Bestätigung verwendet bestehen aus:

  1. Ein Attestierungsschlüsselpaar
  2. Eine Zertifikatskette

Das Device Attestation Certificate (DAC) ist die erste Verknüpfung des Zertifikats. und wird durch das Zwischenzertifikat zur Produktattestierung (Product Attestation Intermediate Certificate) (PAI), die wiederum von der Produktzertifizierungsstelle anerkannt wird. (PAA).

Zertifikate werden zur selben Zeit signiert wie das Attestierungsschlüsselpaar und werden mit dem privaten Schlüssel der Zertifizierungsstelle (Certificate Authority 1) signiert. Ebene höher und bildet eine Vertrauenskette. Ein DAC-Zertifikat wird mit einem PAI-Schlüssel und ein PAI-Zertifikat mit einem PAA-Schlüssel. PAA-Zertifikate stehen an der Spitze der Kette und sind selbst signiert. Diese Vertrauenskette bildet eine föderierte PAA-Struktur, die vom Distributed Compliance Ledger (DCL).

Weitere Informationen zum Zertifizierungsprozess und zu den Zertifizierungserklärungen gefunden werden in Zusätzliche Attestierungsdokumente und Nachrichten und in der Matter-Spezifikation.

Matter SDK installieren

Diese Anleitung setzt voraus, dass Sie eine funktionierende Installation des Matter-SDK. Weitere Informationen finden Sie in der GitHub Weitere Informationen finden Sie unter Erste Schritte mit Matter. erhalten Sie weitere Informationen.

Installieren Sie das Hexdump-Dienstprogramm xxd, falls Sie es noch nicht haben. Dieses Tool ist nützlich, zum Drucken der Anmeldedaten im C-Format:

sudo apt-get install xxd

Build chip-cert

  1. Achten Sie darauf, dass Sie mit einer aktuellen SDK-Version arbeiten. Diese Verfahren wurden getestet auf GitHub-SHA 0b17bce8 im Zweig v1.0-branch:

    $ cd connectedhomeip
    $ git checkout v1.0-branch
    $ git pull
    
  2. Erstellen Sie chip-cert, das Tool, das für mehrere Vorgänge auf Anmeldedaten für Matter Gerät:

    1. Konfigurieren Sie den Build:

      $ cd src/credentials
      $ source ../../scripts/activate.sh
      $ gn gen out
      

      Beispielausgabe für gn:

      Done. Made 5774 targets from 289 files in 658ms
      
    2. Führen Sie den Build aus:

      $ ninja -C out
      

      Beispielausgabe für ninja:

      ninja: Entering directory `out'
      [2000/2000] stamp obj/default.stamp
      

Zertifikate erstellen

Exportieren Sie Ihre benutzerdefinierte VID/PID als Umgebungsvariablen, um die Wahrscheinlichkeit Schreibfehler beim Bearbeiten der Befehlsargumente:

$ cd ../..
$ export VID=hexVendorId
$ export PID=hexProductId

CD generieren

  1. Generieren Sie die CD mit chip-cert. Derzeit überprüft der Commissioner nur dass VID und PID mit den Daten übereinstimmen, die an anderer Stelle vom Gerät bereitgestellt werden: Ursprung des Basisinformationsclusters, DAC und DAC (sofern vorhanden) Du kannst das Zuhause verlassen die anderen Felder unverändert lassen:

    $ src/credentials/out/chip-cert gen-cd \
      --key credentials/test/certification-declaration/Chip-Test-CD-Signing-Key.pem \
      --cert credentials/test/certification-declaration/Chip-Test-CD-Signing-Cert.pem \
      --out credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der \
      --format-version "1" \
      --vendor-id "${VID}" \
      --product-id "${PID}" \
      --device-type-id "0x1234" \
      --certificate-id "ZIG20141ZB330001-24" \
      --security-level "0" \
      --security-info "0" \
      --version-number "9876" \
      --certification-type "0"
    
  2. Überprüfen Sie die CD. Achte darauf, dass deine VID/PID im Dezimalformat angegeben ist:

    $ src/credentials/out/chip-cert print-cd credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der
    

    Beispielausgabe:

    SignerKeyId value: hex:62FA823359ACFAA9963E1CFA140ADDF504F37160
    0x01, tag[Anonymous]: 0xffffffff, type: Structure (0x15), container:
    0x04,     tag[Context Specific]: 0x0, type: Unsigned Fixed Point (0x04), value: 1
    0x08,     tag[Context Specific]: 0x1, type: Unsigned Fixed Point (0x04), value: XXXXX // <- VID
    0x0A,     tag[Context Specific]: 0x2, type: Array (0x16), container:
    0x0D,         tag[Anonymous]: 0xffffffff, type: Unsigned Fixed Point (0x04), value: XXXXX // <- PID
    0x12,     tag[Context Specific]: 0x3, type: Unsigned Fixed Point (0x04), value: 4660
    0x15,     tag[Context Specific]: 0x4, type: UTF-8 String (0x0c), length: 19, value: "ZIG20141ZB330001-24"
    0x2B,     tag[Context Specific]: 0x5, type: Unsigned Fixed Point (0x04), value: 0
    0x2E,     tag[Context Specific]: 0x6,type: Unsigned Fixed Point (0x04), value: 0
    0x32,     tag[Context Specific]: 0x7, type: Unsigned Fixed Point (0x04), value: 39030
    0x35,     tag[Context Specific]: 0x8, type: Unsigned Fixed Point (0x04), value: 0
    

PAI und DAC generieren

In diesem Beispiel verwenden wir das Testprodukt von Matter Zertifikat der Attestierungsstelle (Attestation Authority, PPA) und Signaturschlüssel Chip-Test-PAA-NoVID als Root-Zertifikat. Wir verwenden sie als Stammzertifizierungsstelle, um unsere eigene PAI zu generieren und DAC.

  1. Generieren Sie die PAI mithilfe der PAA. Sie können optional die PID angeben. Informationen in der PAI enthalten. Wenn Sie sie weglassen, erhalten Sie mehr Flexibilität für Tests durchführen. Wenn Sie DACs für zusätzliche PIDs benötigen, können Sie nur den Schritt für die DAC-Generierung:

    $ src/credentials/out/chip-cert gen-att-cert --type i \
      --subject-cn "Matter Test PAI" \
      --subject-vid "${VID}" \
      --valid-from "2021-06-28 14:23:43" \
      --lifetime "4294967295" \
      --ca-key credentials/test/attestation/Chip-Test-PAA-NoVID-Key.pem \
      --ca-cert credentials/test/attestation/Chip-Test-PAA-NoVID-Cert.pem \
      --out-key credentials/test/attestation/"test-PAI-${VID}-key".pem \
      --out credentials/test/attestation/"test-PAI-${VID}-cert".pem
    
  2. Generieren Sie den DAC mit der PAI:

    $ src/credentials/out/chip-cert gen-att-cert --type d \
      --subject-cn "Matter Test DAC 0" \
      --subject-vid "${VID}" \
      --subject-pid "${PID}" \
      --valid-from "2021-06-28 14:23:43" \
      --lifetime "4294967295" \
      --ca-key credentials/test/attestation/"test-PAI-${VID}-key".pem \
      --ca-cert credentials/test/attestation/"test-PAI-${VID}-cert".pem \
      --out-key credentials/test/attestation/"test-DAC-${VID}-${PID}-key".pem \
      --out credentials/test/attestation/"test-DAC-${VID}-${PID}-cert".pem
    
  3. Prüfen Sie die DAC-, PAI- und PAA-Kette. Wenn keine Fehler in der Ausgabe auftreten, bedeutet, dass die Zertifikatsattestierungskette erfolgreich verifiziert wurde:

    $ src/credentials/out/chip-cert validate-att-cert \
    --dac credentials/test/attestation/"test-DAC-${VID}-${PID}-cert".pem \
    --pai credentials/test/attestation/"test-PAI-${VID}-cert".pem \
    --paa credentials/test/attestation/Chip-Test-PAA-NoVID-Cert.pem
    
  4. Sie können Ihre Schlüssel mit openssl prüfen:

    $ openssl ec -noout -text -in \
      credentials/test/attestation/test-DAC-${VID}-${PID}-key.pem
    

    Beispielausgabe:

    read EC key
    Private-Key: (256 bit)
    priv:
        c9:f2:b3:04:b2:db:0d:6f:cd:c6:be:f3:7b:76:8d:
        8c:01:4e:0b:9e:ce:3e:72:49:3c:0e:35:63:7c:6c:
        6c:d6
    pub:
        04:4f:93:ba:3b:bf:63:90:73:98:76:1e:af:87:79:
        11:e6:77:e8:e2:df:a7:49:f1:7c:ac:a8:a6:91:76:
        08:5b:39:ce:6c:72:db:6d:9a:92:b3:ba:05:b0:e8:
        31:a0:bf:36:50:2b:5c:72:55:7f:11:c8:01:ff:3a:
        46:b9:19:60:28
    ASN1 OID: prime256v1
    NIST CURVE: P-256
    
  5. Sie können auch openssl verwenden, um Ihre generierten Zertifikate zu prüfen:

    $ openssl x509 -noout -text -in \
      credentials/test/attestation/test-DAC-${VID}-${PID}-cert.pem
    

    Beispielausgabe:

    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number: 2875998130766646679 (0x27e9990fef088d97)
            Signature Algorithm: ecdsa-with-SHA256
            Issuer: CN = Matter Test PAI, 1.3.6.1.4.1.37244.2.1 = hexVendorId
            Validity
                Not Before: Jun 28 14:23:43 2021 GMT
                Not After : Dec 31 23:59:59 9999 GMT
            Subject: CN = Matter Test DAC 0, 1.3.6.1.4.1.37244.2.1 = hexVendorId, 1.3.6.1.4.1.37244.2.2 = hexProductId
            Subject Public Key Info:
                Public Key Algorithm: id-ecPublicKey
                    Public-Key: (256 bit)
                    pub:
                        04:4f:93:ba:3b:bf:63:90:73:98:76:1e:af:87:79:
                        11:e6:77:e8:e2:df:a7:49:f1:7c:ac:a8:a6:91:76:
                        08:5b:39:ce:6c:72:db:6d:9a:92:b3:ba:05:b0:e8:
                        31:a0:bf:36:50:2b:5c:72:55:7f:11:c8:01:ff:3a:
                        46:b9:19:60:28
                    ASN1 OID: prime256v1
                    NIST CURVE: P-256
            X509v3 extensions:
                X509v3 Basic Constraints: critical
                    CA:FALSE
                X509v3 Key Usage: critical
                    Digital Signature
                X509v3 Subject Key Identifier:
                    21:0A:CA:B1:B6:5F:17:65:D8:61:19:73:84:1A:9D:52:81:19:C5:39
                X509v3 Authority Key Identifier:
                    37:7F:24:9A:73:41:4B:16:6E:6A:42:6E:F5:E8:89:FB:75:F8:77:BB
        Signature Algorithm: ecdsa-with-SHA256
        Signature Value:
            30:45:02:20:38:8f:c5:0d:3e:90:95:dd:7d:7c:e9:5a:05:19:
            1f:2d:14:08:a3:d7:0e:b5:15:6d:d3:b0:0b:f7:b8:28:4d:bf:
            02:21:00:d4:05:30:43:a6:05:00:0e:b9:99:0d:34:3d:75:fe:
            d3:c1:4e:73:ff:e7:05:64:7a:62:8d:2d:38:8f:fd:4d:ad
    

PAA

Mit einem ähnlichen Verfahren lässt sich eine selbst signierte PAA generieren. ist nicht notwendig.

Stattdessen haben wir hier eine bestehende selbst signierte Entwicklungs-PAA verwendet. die keine VID-Informationen enthält.

Weitere Beispiele zum Generieren einer CD finden Sie in credentials/test/gen-test-cds.sh Weitere Beispiele zum Generieren einer PAA, PAI und DAC finden Sie unter credentials/test/gen-test-attestation-certs.sh

Zertifikate ersetzen

PAA und PAI ersetzen

  1. Führen Sie das folgende Hilfsskript aus. das CHIP-Zertifikatstool (chip-cert) um Arrays im C-Stil für Ihre Zertifikate zu generieren.

Hilfsskript für integrierbare Zertifikate herunterladen

<ph type="x-smartling-placeholder"></ph>
#!/bin/bash

#
# generate-embeddable-certs.sh script
# —----------------------------------
#
# This script generates self-minted DAC and PAI.
# The output may easily be included in your C++ source code.
#

# Edit this information with your paths and certificates
folder="credentials/test/attestation"
chip_cert_tool="src/credentials/out/chip-cert"
cert_file_der="${folder}/test-PAI-${VID}-cert.der"
cert_file_pem="${folder}/test-PAI-${VID}-cert.pem"
key_file_pem="${folder}/test-PAI-${VID}-key.pem"

type="Pai"

printf "namespace chip {\n"
printf "namespace DevelopmentCerts {\n\n"
printf "#if CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID == ${PID}\n\n"

printcert() {
  # convert cert to DER
  if [ -f "${cert_file_der}" ]; then
      rm "${cert_file_der}"
  fi
  "${chip_cert_tool}" convert-cert "${cert_file_pem}" "${cert_file_der}" --x509-der

  printf "// ------------------------------------------------------------ \n"
  printf "// ${type} CERTIFICATE ${cert_file_der} \n\n"

  printf "constexpr uint8_t ${type}_Cert_Array[] = {\n"
  less -f "${cert_file_der}" | od -t x1 -An | sed 's/\ | sed 's/\>/,/g' | sed 's/^/   /g'
  printf "};\n\n"
  printf "ByteSpan k${type}Cert = ByteSpan(${type}_Cert_Array);\n\n"

  printf "// ${type} PUBLIC KEY FROM ${key_file_pem} \n\n"

  printf "constexpr uint8_t ${type}_PublicKey_Array[] = {\n"
  openssl ec -text -noout -in "${key_file_pem}" 2>/dev/null | sed '/ASN1 OID/d' | sed '/NIST CURVE/d' | sed -n '/pub:/,$p' | sed '/pub:/d' | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)/0x\1/g' | sed 's/:/, /g'
  printf "};\n\n"
  printf "ByteSpan k${type}PublicKey = ByteSpan(${type}_PublicKey_Array);\n\n"

  printf "// ${type} PRIVATE KEY FROM ${key_file_pem} \n\n"

  printf "constexpr uint8_t ${type}_PrivateKey_Array[] = {\n"
  openssl ec -text -noout -in "${key_file_pem}" 2>/dev/null | sed '/read EC key/d' | sed '/Private-Key/d' | sed '/priv:/d' | sed '/pub:/,$d' | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)/0x\1/g' | sed 's/:/, /g'
  printf "};\n\n"
  printf "ByteSpan k${type}PrivateKey = ByteSpan(${type}_PrivateKey_Array);\n\n"
}

# generates PAI
printcert

type="Dac"
cert_file_der="${folder}/test-DAC-${VID}-${PID}-cert.der"
cert_file_pem="${folder}/test-DAC-${VID}-${PID}-cert.pem"
key_file_pem="${folder}/test-DAC-${VID}-${PID}-key.pem"

# generates DAC
printcert

printf "#endif // CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID\n"
printf "} // namespace DevelopmentCerts\n"
printf "} // namespace chip\n"
  1. Kopieren Sie den Inhalt der PAI- und DAC-Ausgabe in die Implementierung von DeviceAttestationCredentialsProvider::GetProductAttestationIntermediateCert

    Auf Produktionsgeräten befinden sich die PAI und der DAC in Factory Data während die CD in die Firmware selbst eingebettet ist.

    1. Wenn Sie Factory Data noch nicht verwenden, sollten Sie Ihre PAI in „src/credentials/examples/ExampleDACs.cpp“. Fügen Sie in diesem Fall den resultierenden generierten Code in Ihre ExampleDACs.cpp-Datei:

      ByteSpan kDacCert       = ByteSpan(kDevelopmentDAC_Cert_FFF1_801F);
      ByteSpan kDacPrivateKey = ByteSpan(kDevelopmentDAC_PrivateKey_FFF1_801F);
      ByteSpan kDacPublicKey  = ByteSpan(kDevelopmentDAC_PublicKey_FFF1_801F);
      #endif
      } // namespace DevelopmentCerts
      } // namespace chip
      
      /* ------------------------------------------ */
      /* current end-of-file                        */
      /* ------------------------------------------ */
      
      /* ------------------------------------------ */
      /* output of creds-codelab.sh script          */
      /* ------------------------------------------ */
      
      namespace chip {
      namespace DevelopmentCerts {
      
      #if CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID == hexProductId
      
      ...
      
      ByteSpan kDacPrivateKey = ByteSpan(Dac_PrivateKey_Array);
      
      #endif // CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID
      } // namespace DevelopmentCerts
      } // namespace chip
      
    2. Wenn Sie Factory Data oder einen benutzerdefinierten Anmeldedatenanbieter verwenden, um die Anmeldedaten an den entsprechenden Stellen einzufügen. Vielleicht möchten Sie Fragen Sie Ihren SoC-Anbieter nach den Besonderheiten Ihrer Plattform.

Wechsele die CD

  1. Extrahieren Sie eine Textdarstellung des Inhalts Ihrer CD-Datei mit xxd:

      $ xxd -i credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der
    

    Beispielausgabe:

      unsigned char credentials_test_certification_declaration_Chip_Test_CD_hexVendorId_hexProductId_der[] = {
        0x30, 0x81, 0xe9, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
        0x07, 0x02, 0xa0, 0x81, 0xdb, 0x30, 0x81, 0xd8, 0x02, 0x01, 0x03, 0x31,
        0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04,
        0x02, 0x01, 0x30, 0x45, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
        0x01, 0x07, 0x01, 0xa0, 0x38, 0x04, 0x36, 0x15, 0x24, 0x00, 0x01, 0x25,
        0x01, 0xfe, 0xca, 0x36, 0x02, 0x05, 0xce, 0xfa, 0x18, 0x25, 0x03, 0x34,
        0x12, 0x2c, 0x04, 0x13, 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x31,
        0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x31, 0x2d, 0x32, 0x34, 0x24,
        0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x76, 0x98, 0x24, 0x08, 0x00,
        0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa,
        0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a,
        0xdd, 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86,
        0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0a, 0x06, 0x08, 0x2a,
        0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02,
        0x20, 0x53, 0x25, 0x03, 0x2c, 0x96, 0x50, 0xb6, 0x64, 0xf4, 0x18, 0xbf,
        0x99, 0x47, 0xf8, 0x9d, 0xe6, 0xeb, 0x43, 0x94, 0xf1, 0xce, 0xb2, 0x61,
        0x00, 0xe0, 0xf9, 0x89, 0xa8, 0x71, 0x82, 0x02, 0x0a, 0x02, 0x21, 0x00,
        0xea, 0x0a, 0x40, 0xab, 0x87, 0xad, 0x7e, 0x25, 0xe1, 0xa1, 0x6c, 0xb1,
        0x12, 0xfa, 0x86, 0xfe, 0xea, 0x8a, 0xaf, 0x4b, 0xc1, 0xf3, 0x6f, 0x09,
        0x85, 0x46, 0x50, 0xb6, 0xd0, 0x55, 0x40, 0xe2
      };
      unsigned int credentials_test_certification_declaration_Chip_Test_CD_hexVendorId_hexProductId_der_len = 236;
      ```
    
  2. Kopieren Sie den im vorherigen Schritt extrahierten Text in die Datei, die zur Definition verwendet wurde. die CD in Ihren Build ein. Wie im Fall von PAI und DAC hängt davon ab, auf welcher Plattform Sie entwickeln.

Wenn Sie die Beispiele für Anmeldedaten verwenden, sollten Sie das Feld Inhalt von kCdForAllExamples in ExampleDACProvider::GetCertificationDeclaration, in src/credentials/examples/DeviceAttestationCredsExample.cpp:

    const uint8_t kCdForAllExamples[] = {
            0x30, 0x81, 0xe9, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
            0x07, 0x02, 0xa0, 0x81, 0xdb, 0x30, 0x81, 0xd8, 0x02, 0x01, 0x03, 0x31,
            0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04,
            0x02, 0x01, 0x30, 0x45, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
            0x01, 0x07, 0x01, 0xa0, 0x38, 0x04, 0x36, 0x15, 0x24, 0x00, 0x01, 0x25,
            0x01, 0xfe, 0xca, 0x36, 0x02, 0x05, 0xce, 0xfa, 0x18, 0x25, 0x03, 0x34,
            0x12, 0x2c, 0x04, 0x13, 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x31,
            0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x31, 0x2d, 0x32, 0x34, 0x24,
            0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x76, 0x98, 0x24, 0x08, 0x00,
            0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa,
            0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a,
            0xdd, 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86,
            0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0a, 0x06, 0x08, 0x2a,
            0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02,
            0x20, 0x53, 0x25, 0x03, 0x2c, 0x96, 0x50, 0xb6, 0x64, 0xf4, 0x18, 0xbf,
            0x99, 0x47, 0xf8, 0x9d, 0xe6, 0xeb, 0x43, 0x94, 0xf1, 0xce, 0xb2, 0x61,
            0x00, 0xe0, 0xf9, 0x89, 0xa8, 0x71, 0x82, 0x02, 0x0a, 0x02, 0x21, 0x00,
            0xea, 0x0a, 0x40, 0xab, 0x87, 0xad, 0x7e, 0x25, 0xe1, 0xa1, 0x6c, 0xb1,
            0x12, 0xfa, 0x86, 0xfe, 0xea, 0x8a, 0xaf, 0x4b, 0xc1, 0xf3, 0x6f, 0x09,
            0x85, 0x46, 0x50, 0xb6, 0xd0, 0x55, 0x40, 0xe2
        };

Ziel erstellen

Erstellen und flashen Sie Ihr Ziel mit den neu erstellten Anmeldedaten. Dieses ist plattformabhängig. Weitere Informationen finden Sie in der SoC-Dokumentation oder Unterstützte Geräte .

Gerät in Betrieb nehmen

Sie können nun die Schritte ausführen, die bereits unter Sachverhalt koppeln – beschrieben wurden Gerät Inbetriebnahme Ihres Matter-Geräts am Google Home platform.

Probleme mit chip-tool beheben

Mit chip-tool kannst du prüfen, ob dein Gerät die richtigen Zertifikate. So erstellen Sie sie:

$ cd examples/chip-tool
$ gn gen out/debug
Done. Made 114 targets from 112 files in 157ms
$ ninja -C out/debug
ninja: Entering directory `out/debug'
$ cd ../..

Um zusätzliche Logs zu aktivieren, müssen Sie bei jeder Ausführung von chip-tool den Parameter --trace_decode 1-Flag. Darüber hinaus empfiehlt es sich, den Pfad Ihres PAA-Datei mit dem Flag --paa-trust-store-path.

Um ein Thread-Gerät mit BLE in Betrieb zu nehmen, können Sie also Folgendes ausführen:

```
$ examples/chip-tool/out/debug/chip-tool pairing ble-thread 1 \
  hex:Thread_credentials \
  pairing_code \
  discriminator \
  --paa-trust-store-path <path to PAA folder> \
  --trace_decode 1
```

Bei Testgeräten ist <PAIRING CODE> 20202021 und <DISCRIMINATOR> ist 3840.

Um Ihre Thread-Anmeldedaten von Ihrem Google Nest Hub (2nd gen) zu erhalten, haben Sie folgende Möglichkeiten: ausführen:

$ adb connect border_router_ip_address
$ adb -e shell ot-ctl dataset active -x
$ adb disconnect

Um ein WLAN-Gerät in Betrieb zu nehmen, kannst du die Option ble-wifi verwenden:

$ examples/chip-tool/out/debug/chip-tool pairing ble-wifi 1 "SSID" SSID_password pairing_code discriminator