Matter cihaz testi sertifikaları oluşturma

OTA testi gibi belirli geliştirme senaryoları, Üretim Dışı Matter sertifikalarının oluşturulmasını gerektirir.

Cihaz OTA Yazılım Güncellemeleri gibi Google ekosisteminin bazı özellikleri Test VID/PID'si kullanılarak gerçekleştirilemez.

Bu kılavuzda, test amacıyla kullanılmak üzere Üretim dışı Matter sertifikalarının nasıl oluşturulacağı ve doğrulanacağı açıklanmaktadır. Sertifika türleri şunlardır:

  1. Sertifika Beyanı (CD)
  2. Ürün Onayı Ara Sertifikası (PAI)
  3. Cihaz onay sertifikası (DAC)

Devreye alma işlemi sırasında Matter sertifikalı bir cihazın kendisini onaylaması, diğer bir deyişle orijinal Matter sertifikalı bir ürün olduğunu kanıtlaması gerekir. Matter cihazlar tarafından onay için kullanılan kimlik bilgileri şunlardan oluşuyor:

  1. Onay anahtarı çifti
  2. Sertifika zinciri

Cihaz Onay Sertifikası (DAC), sertifika zincirinin ilk bağlantısıdır ve Ürün Onay Yetkilisi (PAA) tarafından doğrulanan Ürün Onayı Ara Sertifikası (PAI) tarafından doğrulanır.

Sertifikalar, onay anahtarı çiftiyle aynı anda imzalanır ve bir seviye yukarıda Sertifika Yetkilisi'nin özel anahtarı kullanılarak imzalanarak bir güven zinciri oluşturur. Dolayısıyla, DAC sertifikası PAI anahtarıyla, PAI sertifikası da PAA anahtarı tarafından imzalanır. Zincirin en üstünde olan PAA sertifikaları kendinden imzalıdır. Bu güven zinciri, Dağıtılmış Uygunluk Ledger (DCL) ile senkronize edilen birleşik bir PAA yapısı oluşturur.

Onay süreci ve Sertifika Beyanları (CD) hakkında daha fazla bilgiye Ek Onay Belgeleri ve İletiler ile Matter Spesifikasyonu'ndan ulaşabilirsiniz.

Matter SDK'sını yükleyin

Bu talimatlarda, Matter SDK'sının çalışan bir kurulumu olduğu varsayılır. Daha fazla bilgi için lütfen GitHub'daki dokümanlarına bakın veya Matter'ı kullanmaya başlama bölümüne bakın.

Henüz yapmadıysanız xxd onaltılık yardımcı programını yükleyin. Bu araç, kimlik bilgilerini C stilinde yazdırmak için yararlıdır:

sudo apt-get install xxd

Derleme: chip-cert

  1. SDK'nın güncel bir sürümü üzerinde çalıştığınızdan emin olun. Bu prosedürler, GitHub SHA 0b17bce8 alanındaki v1.0-branch dalında test edilmiştir:

    $ cd connectedhomeip
    $ git checkout v1.0-branch
    $ git pull
    
  2. Matter cihazların kimlik bilgilerinde çeşitli işlemlerde kullanılan araç olan chip-cert oluşturun:

    1. Derlemeyi yapılandırın:

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

      Örnek gn çıkışı:

      Done. Made 5774 targets from 289 files in 658ms
      
    2. Derlemeyi çalıştırın:

      $ ninja -C out
      

      Örnek ninja çıkışı:

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

Sertifikalarınızı bastırın

Komut bağımsız değişkenlerinizi düzenlerken bürokratik hata olasılığını azaltmak için özel VID/PID'nizi ortam değişkenleri olarak dışa aktarın:

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

CD Oluştur

  1. chip-cert kullanarak CD'yi oluşturun. Şu anda sadece VID ve PID'nin, cihaz tarafından başka bir yerde gösterilen verilerle (Temel Bilgi Kümesi, DAC ve DAC kaynağı (varsa)) eşleştiğini doğrulamaktadır. Diğer alanları değiştirmeden bırakabilirsiniz:

    $ 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. CD'yi doğrulayın. VID/PID'nizi (ondalık biçimde) içerdiğinden emin olun:

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

    Örnek çıkış:

    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 ve DAC oluşturma

Bu örnekte, kök sertifikamız olarak Matter adlı ürünün kendi test Ürün Onay Yetkilisi (PAA) sertifikasını ve Chip-Test-PAA-NoVID imzalama anahtarını kullanacağız. Bunu kendi PAI ve DAC'lerimizi oluşturmak için kök CA olarak kullanacağız.

  1. PAA kullanarak PAI oluşturun. PID bilgilerini isteğe bağlı olarak PAI'ya dahil edebilirsiniz ancak bunların atlanması, test için daha fazla esneklik sağlar. Ek PID'ler için DAC'lere ihtiyacınız olursa yalnızca DAC oluşturma adımını yürütebilirsiniz:

    $ 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. PAI kullanarak DAC oluşturun:

    $ 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. DAC, PAI ve PAA zincirini doğrulayın. Çıkışta hiçbir hata görünmüyorsa sertifika onay zincirinin başarıyla doğrulandığı anlamına gelir:

    $ 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. Anahtarlarınızı openssl ile inceleyebilirsiniz:

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

    Örnek çıkış:

    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. Oluşturulan sertifikaları incelemek için openssl aracını da kullanabilirsiniz:

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

    Örnek çıkış:

    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

Kendinden imzalı bir PAA oluşturmak için benzer bir süreç kullanılabilir, ancak bunu yapmak gerekli değildir.

Bunun yerine, burada VID bilgilerini içermeyen mevcut bir kendinden imzalı geliştirme PAA'sı kullanıyoruz.

CD oluşturma ile ilgili daha fazla örnek için credentials/test/gen-test-cds.sh adresini inceleyin. PAA, PAI ve DAC oluşturma ile ilgili daha fazla örnek için credentials/test/gen-test-attestation-certs.sh sayfasını inceleyin.

Sertifikaları değiştir

PAA ve PAI'yı değiştirin

  1. Sertifikalarınızın C stili dizilerini oluşturmak için CHIP Sertifika Aracı'nı (chip-cert) kullanan aşağıdaki yardımcı komut dosyasını çalıştırın.

Yerleştirilebilir Sertifikalar Yardımcısı komut dosyasını indirin

#!/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/\/,/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. PAI ve DAC çıkışının içeriğini DeviceAttestationCredentialsProvider::GetProductAttestationIntermediateCert uygulamanıza kopyalayın.

    Üretim cihazlarında PAI ve DAC, Fabrika Verileri bölümünde yer alır. CD ise donanım yazılımına yerleştirilmiştir.

    1. Henüz Fabrika Verileri'ni kullanmıyorsanız PAI'nizi src/credentials/examples/ExampleDACs.cpp konumuna yerleştirmek isteyebilirsiniz. Bu durumda, oluşturulan kodu ExampleDACs.cpp dosyanıza ekleyin:

      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. Fabrika Verileri veya özel bir Kimlik Bilgisi Sağlayıcısı kullanıyorsanız kimlik bilgilerini uygun konumlara eklediğinizden emin olun. SoC sağlayıcınıza danışarak platformunuzun özelliklerini öğrenebilirsiniz.

CD'yi değiştirin

  1. xxd kullanarak CD dosyanızın içeriğinin metin gösterimini çıkarın:

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

    Örnek çıkış:

      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. Önceki adımda çıkardığınız metni, CD'yi derlemenize tanımlamak için kullanılan dosyaya kopyalayın. PAI ve DAC'de olduğu gibi, bunu nasıl yapacağınız, geliştirme yaptığınız platforma bağlıdır.

Kimlik bilgisi örneklerini kullanıyorsanız muhtemelen ExampleDACProvider::GetCertificationDeclaration ve src/credentials/examples/DeviceAttestationCredsExample.cpp konumundaki kCdForAllExamples içeriklerini değiştirmek istersiniz:

    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
        };

Hedefi oluşturun

Yeni belirlenen kimlik bilgilerinizi kullanarak hedefinizi oluşturun ve güncelleyin. Bu bölüm platforma bağlıdır. Daha fazla bilgi için SoC dokümanlarınıza veya Desteklenen cihazlar'a bakın.

Cihazı çalıştırın

Matter cihazınızı Google Home platform üzerinde kullanmak için Matter cihazı eşleme bölümünde zaten belirtilen adımları uygulayabilirsiniz.

chip-tool kullanarak sorun ayıklayın

chip-tool, cihazınızın doğru sertifikaları gönderip göndermediğini kontrol etmek için değerli bir araç olabilir. Oluşturmak için:

$ 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 ../..

Ek günlükleri etkinleştirmek için chip-tool çalıştırırken her seferinde --trace_decode 1 işaretini ilettiğinizden emin olun. Ayrıca, PAA dosyanızın yolunu --paa-trust-store-path işaretiyle geçirmek iyi bir uygulamadır.

Böylece, bir Thread cihazı BDE kullanarak devreye almak için şu komutu çalıştırabilirsiniz:

```
$ 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
```

Test cihazları için <PAIRING CODE> değeri 20202021, <DISCRIMINATOR> değeri ise 3840 şeklindedir.

Thread kimlik bilgilerinizi Google Nest Hub (2nd gen) cihazınızdan almak için şunları çalıştırabilirsiniz:

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

Bir kablosuz cihazı devreye almak için ble-wifi seçeneğini de kullanabilirsiniz:

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