Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement CSR generation from first principles to support commissioners #18631

Merged

Conversation

tcarmelveilleux
Copy link
Contributor

Problem

  • When a commissioner is backing their key with OS or hardware support,
    the built-in P256Keypair::NewCertificateSigningRequest will not be
    usable since it relies on internal P256Keypair base class access to
    key state, as opposed to just using Pubkey() and ECDSA_sign_message
    primitives. This is OK on some embedded usecases that make use
    of P256Keypair backend directly, but not for many other usecases.
  • On iOS/Darwin and on native Android, backing the P256Keypair *
    by derived classes is bridgeable to platform APIs, but those
    platform APIs do not offer easy/direct CSR generation, and on
    Darwin, there are not ASN.1 APIs anymore.
  • If trying to make use of Darwin APIs introduced in Allow Darwin framework consumers to provide a controller NOC and keypair #18519, there
    is no easy way to write code interfacing with an external CA to
    provide a CSR for a natively bridged keypair.

Issue #18444

Change overview

This PR adds a first-principle CSR generator, written and audited
by Google personel, using the ASN1Writer API already used in
CHIPCert.h and used by all Commissioner code making use of SDK
today. This is a straightforward implementation that directly
uses a P256Keypair * (or a derived class thereof!) to generate
a CSR against it, without depending on direct key access like
like the native version P256Keypair::NewCerticateSigningRequest
does.

This PR also fixes constness of operations on P256Keypair.

Testing

  • Added unit tests for the new primitive
  • Validated generated CSR with OpenSSL
  • Validated equivalence to generated CSR from P256Keypair, on
    both mbedTLS and OpenSSL
  • Not used by CHIP-tool but usable by Darwin and Android framework
    users.

@tcarmelveilleux tcarmelveilleux added crypto security commissioning Involves placing devices on the network, initial setup labels May 19, 2022
@boring-cyborg boring-cyborg bot added the lib label May 19, 2022
@CLAassistant
Copy link

CLAassistant commented May 19, 2022

CLA assistant check
All committers have signed the CLA.

- When a commissioner is backing their key with OS or hardware support,
  the built-in P256Keypair::NewCertificateSigningRequest will not be
  usable since it relies on internal P256Keypair base class access to
  key state, as opposed to just using Pubkey() and ECDSA_sign_message
  primitives. This is OK on some embedded usecases that make use
  of P256Keypair backend directly, but not for many other usecases.
- On iOS/Darwin and on native Android, backing the P256Keypair *
  by derived classes is bridgeable to platform APIs, but those
  platform APIs do not offer easy/direct CSR generation, and on
  Darwin, there are not ASN.1 APIs anymore.
- If trying to make use of Darwin APIs introduced in project-chip#18519, there
  is no easy way to write code interfacing with an external CA to
  provide a CSR for a natively bridged keypair.

This PR adds a first-principle CSR generator, written and audited
by Google personel, using the ASN1Writer API already used in
CHIPCert.h and used by all Commissioner code making use of SDK
today. This is a straightforward implementation that directly
uses a P256Keypair * (or a derived class thereof!) to generate
a CSR against it, without depending on direct key access like
like the native version P256Keypair::NewCerticateSigningRequest
does.

This PR also fixes constness of operations on P256Keypair.

Issue project-chip#18444

Testing done:
- Added unit tests for the new primitive
- Validated generated CSR with OpenSSL
- Validated equivalence to generated CSR from P256Keypair, on
  both mbedTLS and OpenSSL
- Not used by CHIP-tool but usable by Darwin and Android framework
  users.
@github-actions
Copy link

github-actions bot commented May 19, 2022

PR #18631: Size comparison from 3ef81a8 to 7ff899a

Increases (34 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, p6)
platform target config section 3ef81a8 7ff899a change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 667211 667235 24 0.0
.rodata 100051 100067 16 0.0
.text 566932 566940 8 0.0
lock-ftd LP_CC2652R7 (read only) 677215 677235 20 0.0
.rodata 94831 94851 20 0.0
lock-mtd LP_CC2652R7 (read only) 626039 626051 12 0.0
.rodata 94719 94739 20 0.0
pump-app LP_CC2652R7 (read only) 659443 659467 24 0.0
.rodata 79347 79371 24 0.0
pump-controller-app LP_CC2652R7 (read only) 653947 653963 16 0.0
.rodata 83459 83475 16 0.0
shell LP_CC2652R7 (read only) 660278 660298 20 0.0
.rodata 97006 97026 20 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 625230 625250 20 0.0
.app_xip_area 528844 528864 20 0.0
lock cyw930739m2evb_01 (read/write) 628034 628054 20 0.0
.app_xip_area 533104 533124 20 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 570986 571014 28 0.0
.app_xip_area 466340 466368 28 0.0
efr32 lighting-app BRD4161A (read only) 917676 917700 24 0.0
.text 917668 917692 24 0.0
BRD4161A+rpc (read only) 951848 951872 24 0.0
.text 951840 951864 24 0.0
BRD4161A+rs911x (read only) 791204 791228 24 0.0
.text 791196 791220 24 0.0
lock-app BRD4161A+wf200 (read only) 947200 947220 20 0.0
.text 947192 947212 20 0.0
window-app BRD4161A (read only) 897788 897812 24 0.0
.text 897780 897804 24 0.0
esp32 all-clusters-app c3devkit (read/write) 1477874 1477898 24 0.0
.flash.rodata 209600 209624 24 0.0
m5stack (read only) 1056219 1056271 52 0.0
(read/write) 479868 479900 32 0.0
.flash.rodata 239936 239968 32 0.0
.flash.text 1050835 1050887 52 0.0
k32w light k32w061+release (read/write) 682716 682732 16 0.0
.text 598772 598788 16 0.0
lock k32w061+release (read/write) 729260 729288 28 0.0
.text 644924 644952 28 0.0
linux all-clusters-app debug (read only) 2751209 2751297 88 0.0
(read/write) 175936 175968 32 0.0
.data.rel.ro 82616 82648 32 0.0
.rodata 240797 240861 64 0.0
bridge-app debug+rpc (read only) 2033633 2033689 56 0.0
.rodata 169129 169161 32 0.0
chip-tool debug (read only) 9305573 9305901 328 0.0
(read/write) 579128 579160 32 0.0
.data.rel.ro 547752 547768 16 0.0
.rodata 480989 481021 32 0.0
.text 7497797 7498069 272 0.0
chip-tool-no-interactive-ipv6only arm64 (read only) 9077540 9077748 208 0.0
(read/write) 645249 645265 16 0.0
.data.rel.ro 583000 583024 24 0.0
.text 7169844 7170020 176 0.0
lighting-app debug+rpc (read only) 2328113 2328169 56 0.0
.rodata 188137 188169 32 0.0
lock-app debug (read only) 2241561 2241649 88 0.0
.rodata 198745 198809 64 0.0
ota-provider-app debug (read only) 2063553 2063609 56 0.0
.rodata 179360 179392 32 0.0
ota-requestor-app debug (read only) 2092473 2092545 72 0.0
.data.rel.ro 62632 62648 16 0.0
.rodata 175392 175424 32 0.0
.text 1757170 1757186 16 0.0
shell debug (read only) 2566969 2567057 88 0.0
.rodata 221778 221842 64 0.0
thermostat-no-ble arm64 (read only) 2354172 2354196 24 0.0
(read/write) 176305 176321 16 0.0
.data.rel.ro 79360 79384 24 0.0
.rodata 147356 147364 8 0.0
tv-app debug (read only) 2854489 2854545 56 0.0
(read/write) 278784 278816 32 0.0
.data.rel.ro 77064 77096 32 0.0
.rodata 221169 221201 32 0.0
tv-casting-app debug (read only) 5416553 5416609 56 0.0
(read/write) 225024 225056 32 0.0
.data.rel.ro 138064 138096 32 0.0
.rodata 339713 339745 32 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2420448 2420472 24 0.0
.text 1383092 1383116 24 0.0
p6 all-clusters-app default (read/write) 2538776 2538800 24 0.0
.text 1497040 1497064 24 0.0
light-app default (read/write) 2425240 2425264 24 0.0
.text 1383504 1383528 24 0.0
lock-app default (read/write) 2435928 2435952 24 0.0
.text 1394192 1394216 24 0.0
Decreases (9 builds for cc13x2_26x2, esp32, linux)
platform target config section 3ef81a8 7ff899a change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 183468 183444 -24 -0.0
lock-ftd LP_CC2652R7 (read/write) 165440 165420 -20 -0.0
lock-mtd LP_CC2652R7 .text 530828 530820 -8 -0.0
pump-app LP_CC2652R7 (read/write) 184492 184468 -24 -0.0
pump-controller-app LP_CC2652R7 (read/write) 189796 189780 -16 -0.0
shell LP_CC2652R7 (read/write) 185960 185940 -20 -0.0
esp32 all-clusters-app c3devkit (read only) 1000948 1000946 -2 -0.0
.flash.text 1000948 1000946 -2 -0.0
linux ota-provider-app debug (read/write) 140944 140912 -32 -0.0
.data.rel.ro 60568 60552 -16 -0.0
shell debug (read/write) 199800 199768 -32 -0.0
.data.rel.ro 76880 76848 -32 -0.0
Full report (34 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, p6)
platform target config section 3ef81a8 7ff899a change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 667211 667235 24 0.0
(read/write) 183468 183444 -24 -0.0
.bss 73660 73660 0 0.0
.data 3404 3404 0 0.0
.rodata 100051 100067 16 0.0
.text 566932 566940 8 0.0
lock-ftd LP_CC2652R7 (read only) 677215 677235 20 0.0
(read/write) 165440 165420 -20 -0.0
.bss 72692 72692 0 0.0
.data 3236 3236 0 0.0
.rodata 94831 94851 20 0.0
.text 581900 581900 0 0.0
lock-mtd LP_CC2652R7 (read only) 626039 626051 12 0.0
(read/write) 145524 145524 0 0.0
.bss 68428 68428 0 0.0
.data 3236 3236 0 0.0
.rodata 94719 94739 20 0.0
.text 530828 530820 -8 -0.0
pump-app LP_CC2652R7 (read only) 659443 659467 24 0.0
(read/write) 184492 184468 -24 -0.0
.bss 72948 72948 0 0.0
.data 3268 3268 0 0.0
.rodata 79347 79371 24 0.0
.text 579616 579616 0 0.0
pump-controller-app LP_CC2652R7 (read only) 653947 653963 16 0.0
(read/write) 189796 189780 -16 -0.0
.bss 73012 73012 0 0.0
.data 3232 3232 0 0.0
.rodata 83459 83475 16 0.0
.text 570008 570008 0 0.0
shell LP_CC2652R7 (read only) 660278 660298 20 0.0
(read/write) 185960 185940 -20 -0.0
.bss 76020 76020 0 0.0
.data 3408 3408 0 0.0
.rodata 97006 97026 20 0.0
.text 563048 563048 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 625230 625250 20 0.0
.app_xip_area 528844 528864 20 0.0
.bss 79028 79028 0 0.0
.data 708 708 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock cyw930739m2evb_01 (read/write) 628034 628054 20 0.0
.app_xip_area 533104 533124 20 0.0
.bss 77604 77604 0 0.0
.data 672 672 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 570986 571014 28 0.0
.app_xip_area 466340 466368 28 0.0
.bss 87024 87024 0 0.0
.data 584 584 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read only) 917676 917700 24 0.0
(read/write) 133244 133244 0 0.0
.bss 131184 131184 0 0.0
.data 2060 2060 0 0.0
.text 917668 917692 24 0.0
BRD4161A+rpc (read only) 951848 951872 24 0.0
(read/write) 149928 149928 0 0.0
.bss 147664 147664 0 0.0
.data 2264 2264 0 0.0
.text 951840 951864 24 0.0
BRD4161A+rs911x (read only) 791204 791228 24 0.0
(read/write) 129512 129512 0 0.0
.bss 127444 127444 0 0.0
.data 2068 2068 0 0.0
.text 791196 791220 24 0.0
lock-app BRD4161A+wf200 (read only) 947200 947220 20 0.0
(read/write) 123996 123996 0 0.0
.bss 121972 121972 0 0.0
.data 2024 2024 0 0.0
.text 947192 947212 20 0.0
window-app BRD4161A (read only) 897788 897812 24 0.0
(read/write) 133304 133304 0 0.0
.bss 131256 131256 0 0.0
.data 2048 2048 0 0.0
.text 897780 897804 24 0.0
esp32 all-clusters-app c3devkit (read only) 1000948 1000946 -2 -0.0
(read/write) 1477874 1477898 24 0.0
.dram0.bss 68216 68216 0 0.0
.dram0.data 14624 14624 0 0.0
.flash.rodata 209600 209624 24 0.0
.flash.text 1000948 1000946 -2 -0.0
.iram0.text 62954 62954 0 0.0
m5stack (read only) 1056219 1056271 52 0.0
(read/write) 479868 479900 32 0.0
.dram0.bss 73736 73736 0 0.0
.dram0.data 34200 34200 0 0.0
.flash.rodata 239936 239968 32 0.0
.flash.text 1050835 1050887 52 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 682716 682732 16 0.0
.bss 80224 80224 0 0.0
.data 2016 2016 0 0.0
.text 598772 598788 16 0.0
lock k32w061+release (read/write) 729260 729288 28 0.0
.bss 80656 80656 0 0.0
.data 1976 1976 0 0.0
.text 644924 644952 28 0.0
linux all-clusters-app debug (read only) 2751209 2751297 88 0.0
(read/write) 175936 175968 32 0.0
.bss 85088 85088 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 82616 82648 32 0.0
.dynamic 608 608 0 0.0
.got 4496 4496 0 0.0
.init 27 27 0 0.0
.init_array 1016 1016 0 0.0
.rodata 240797 240861 64 0.0
.text 2336146 2336146 0 0.0
bridge-app debug+rpc (read only) 2033633 2033689 56 0.0
(read/write) 147736 147736 0 0.0
.bss 72864 72864 0 0.0
.data 3936 3936 0 0.0
.data.rel.ro 65352 65352 0 0.0
.dynamic 592 592 0 0.0
.got 4272 4272 0 0.0
.init 27 27 0 0.0
.init_array 688 688 0 0.0
.rodata 169129 169161 32 0.0
.text 1707506 1707506 0 0.0
chip-tool debug (read only) 9305573 9305901 328 0.0
(read/write) 579128 579160 32 0.0
.bss 23936 23936 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 547752 547768 16 0.0
.dynamic 624 624 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 656 656 0 0.0
.rodata 480989 481021 32 0.0
.text 7497797 7498069 272 0.0
chip-tool-no-interactive-ipv6only arm64 (read only) 9077540 9077748 208 0.0
(read/write) 645249 645265 16 0.0
.bss 42225 42225 0 0.0
.data 1192 1192 0 0.0
.data.rel.ro 583000 583024 24 0.0
.dynamic 560 560 0 0.0
.got 14984 14984 0 0.0
.init 24 24 0 0.0
.init_array 184 184 0 0.0
.rodata 445844 445844 0 0.0
.text 7169844 7170020 176 0.0
lighting-app debug+rpc (read only) 2328113 2328169 56 0.0
(read/write) 153152 153152 0 0.0
.bss 74656 74656 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 70696 70696 0 0.0
.dynamic 608 608 0 0.0
.got 4344 4344 0 0.0
.init 27 27 0 0.0
.init_array 792 792 0 0.0
.rodata 188137 188169 32 0.0
.text 1973746 1973746 0 0.0
lock-app debug (read only) 2241561 2241649 88 0.0
(read/write) 147864 147864 0 0.0
.bss 73344 73344 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 67256 67256 0 0.0
.dynamic 592 592 0 0.0
.got 4336 4336 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 198745 198809 64 0.0
.text 1882978 1882978 0 0.0
ota-provider-app debug (read only) 2063553 2063609 56 0.0
(read/write) 140944 140912 -32 -0.0
.bss 72800 72800 0 0.0
.data 1768 1768 0 0.0
.data.rel.ro 60568 60552 -16 -0.0
.dynamic 608 608 0 0.0
.got 4504 4504 0 0.0
.init 27 27 0 0.0
.init_array 648 648 0 0.0
.rodata 179360 179392 32 0.0
.text 1725746 1725746 0 0.0
ota-requestor-app debug (read only) 2092473 2092545 72 0.0
(read/write) 143752 143752 0 0.0
.bss 73472 73472 0 0.0
.data 1992 1992 0 0.0
.data.rel.ro 62632 62648 16 0.0
.dynamic 592 592 0 0.0
.got 4344 4344 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 175392 175424 32 0.0
.text 1757170 1757186 16 0.0
shell debug (read only) 2566969 2567057 88 0.0
(read/write) 199800 199768 -32 -0.0
.bss 115784 115784 0 0.0
.data 1376 1376 0 0.0
.data.rel.ro 76880 76848 -32 -0.0
.dynamic 608 608 0 0.0
.got 4192 4192 0 0.0
.init 27 27 0 0.0
.init_array 936 936 0 0.0
.rodata 221778 221842 64 0.0
.text 2184306 2184306 0 0.0
thermostat-no-ble arm64 (read only) 2354172 2354196 24 0.0
(read/write) 176305 176321 16 0.0
.bss 87617 87617 0 0.0
.data 1520 1520 0 0.0
.data.rel.ro 79360 79384 24 0.0
.dynamic 560 560 0 0.0
.got 4768 4768 0 0.0
.init 24 24 0 0.0
.init_array 376 376 0 0.0
.rodata 147356 147364 8 0.0
.text 1977952 1977952 0 0.0
tv-app debug (read only) 2854489 2854545 56 0.0
(read/write) 278784 278816 32 0.0
.bss 190776 190776 0 0.0
.data 4672 4672 0 0.0
.data.rel.ro 77064 77096 32 0.0
.dynamic 592 592 0 0.0
.got 4720 4720 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 221169 221201 32 0.0
.text 2451266 2451266 0 0.0
tv-casting-app debug (read only) 5416553 5416609 56 0.0
(read/write) 225024 225056 32 0.0
.bss 78360 78360 0 0.0
.data 2368 2368 0 0.0
.data.rel.ro 138064 138096 32 0.0
.dynamic 608 608 0 0.0
.got 4728 4728 0 0.0
.init 27 27 0 0.0
.init_array 864 864 0 0.0
.rodata 339713 339745 32 0.0
.text 4717490 4717490 0 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2420448 2420472 24 0.0
.bss 202668 202668 0 0.0
.data 5872 5872 0 0.0
.text 1383092 1383116 24 0.0
p6 all-clusters-app default (read/write) 2538776 2538800 24 0.0
.bss 136184 136184 0 0.0
.data 2808 2808 0 0.0
.text 1497040 1497064 24 0.0
light-app default (read/write) 2425240 2425264 24 0.0
.bss 129488 129488 0 0.0
.data 2608 2608 0 0.0
.text 1383504 1383528 24 0.0
lock-app default (read/write) 2435928 2435952 24 0.0
.bss 129304 129304 0 0.0
.data 2568 2568 0 0.0
.text 1394192 1394216 24 0.0

@github-actions
Copy link

github-actions bot commented May 19, 2022

PR #18631: Size comparison from 3ef81a8 to 463ccfc

Increases above 0.2%:

platform target config section 3ef81a8 463ccfc change % change
linux chip-tool debug (read only) 9305573 9367197 61624 0.7
.text 7497797 7559269 61472 0.8
chip-tool-no-interactive-ipv6only arm64 (read only) 9077540 9148996 71456 0.8
.text 7169844 7241172 71328 1.0
Increases (34 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 3ef81a8 463ccfc change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 667211 667235 24 0.0
.rodata 100051 100067 16 0.0
.text 566932 566940 8 0.0
lock-ftd LP_CC2652R7 (read only) 677215 677235 20 0.0
.rodata 94831 94851 20 0.0
lock-mtd LP_CC2652R7 (read only) 626039 626051 12 0.0
.rodata 94719 94739 20 0.0
pump-app LP_CC2652R7 (read only) 659443 659467 24 0.0
.rodata 79347 79371 24 0.0
pump-controller-app LP_CC2652R7 (read only) 653947 653963 16 0.0
.rodata 83459 83475 16 0.0
shell LP_CC2652R7 (read only) 660278 660298 20 0.0
.rodata 97006 97026 20 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 625230 625250 20 0.0
.app_xip_area 528844 528864 20 0.0
lock cyw930739m2evb_01 (read/write) 628034 628054 20 0.0
.app_xip_area 533104 533124 20 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 570986 571014 28 0.0
.app_xip_area 466340 466368 28 0.0
efr32 lighting-app BRD4161A (read only) 917676 917700 24 0.0
.text 917668 917692 24 0.0
BRD4161A+rpc (read only) 951848 951872 24 0.0
.text 951840 951864 24 0.0
BRD4161A+rs911x (read only) 791204 791228 24 0.0
.text 791196 791220 24 0.0
lock-app BRD4161A+wf200 (read only) 947200 947220 20 0.0
.text 947192 947212 20 0.0
window-app BRD4161A (read only) 897788 897812 24 0.0
.text 897780 897804 24 0.0
esp32 all-clusters-app c3devkit (read/write) 1477874 1477898 24 0.0
.flash.rodata 209600 209624 24 0.0
m5stack (read only) 1056219 1056271 52 0.0
(read/write) 479868 479900 32 0.0
.flash.rodata 239936 239968 32 0.0
.flash.text 1050835 1050887 52 0.0
k32w light k32w061+release (read/write) 682716 682732 16 0.0
.text 598772 598788 16 0.0
lock k32w061+release (read/write) 729260 729288 28 0.0
.text 644924 644952 28 0.0
linux all-clusters-app debug (read only) 2751209 2751217 8 0.0
(read/write) 175936 175968 32 0.0
.data.rel.ro 82616 82648 32 0.0
chip-tool debug (read only) 9305573 9367197 61624 0.7
(read/write) 579128 579160 32 0.0
.data.rel.ro 547752 547768 16 0.0
.rodata 480989 481117 128 0.0
.text 7497797 7559269 61472 0.8
chip-tool-no-interactive-ipv6only arm64 (read only) 9077540 9148996 71456 0.8
(read/write) 645249 645265 16 0.0
.data.rel.ro 583000 583024 24 0.0
.rodata 445844 445940 96 0.0
.text 7169844 7241172 71328 1.0
lock-app debug (read only) 2241561 2241569 8 0.0
ota-requestor-app debug .data.rel.ro 62632 62648 16 0.0
shell debug (read only) 2566969 2566977 8 0.0
thermostat-no-ble arm64 (read/write) 176305 176321 16 0.0
.data.rel.ro 79360 79384 24 0.0
tv-app debug (read/write) 278784 278816 32 0.0
.data.rel.ro 77064 77096 32 0.0
tv-casting-app debug (read/write) 225024 225056 32 0.0
.data.rel.ro 138064 138096 32 0.0
mbed lock-app CY8CPROTO_062_4343W+release (read/write) 2420448 2420472 24 0.0
.text 1383092 1383116 24 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1180803 1180823 20 0.0
rodata 152780 152800 20 0.0
p6 all-clusters-app default (read/write) 2538776 2538800 24 0.0
.text 1497040 1497064 24 0.0
light-app default (read/write) 2425240 2425264 24 0.0
.text 1383504 1383528 24 0.0
lock-app default (read/write) 2435928 2435952 24 0.0
.text 1394192 1394216 24 0.0
telink light-switch-app tlsr9518adk80d (read/write) 782596 782620 24 0.0
lighting-app tlsr9518adk80d (read/write) 802676 802692 16 0.0
Decreases (19 builds for cc13x2_26x2, esp32, linux, telink)
platform target config section 3ef81a8 463ccfc change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read/write) 183468 183444 -24 -0.0
lock-ftd LP_CC2652R7 (read/write) 165440 165420 -20 -0.0
lock-mtd LP_CC2652R7 .text 530828 530820 -8 -0.0
pump-app LP_CC2652R7 (read/write) 184492 184468 -24 -0.0
pump-controller-app LP_CC2652R7 (read/write) 189796 189780 -16 -0.0
shell LP_CC2652R7 (read/write) 185960 185940 -20 -0.0
esp32 all-clusters-app c3devkit (read only) 1000948 1000946 -2 -0.0
.flash.text 1000948 1000946 -2 -0.0
linux all-clusters-app debug .text 2336146 2336130 -16 -0.0
bridge-app debug+rpc (read only) 2033633 2033609 -24 -0.0
.rodata 169129 169097 -32 -0.0
.text 1707506 1707490 -16 -0.0
lighting-app debug+rpc (read only) 2328113 2328089 -24 -0.0
.rodata 188137 188105 -32 -0.0
.text 1973746 1973730 -16 -0.0
lock-app debug .text 1882978 1882962 -16 -0.0
ota-provider-app debug (read only) 2063553 2063497 -56 -0.0
(read/write) 140944 140912 -32 -0.0
.data.rel.ro 60568 60552 -16 -0.0
.rodata 179360 179296 -64 -0.0
.text 1725746 1725730 -16 -0.0
ota-requestor-app debug (read only) 2092473 2092449 -24 -0.0
.rodata 175392 175360 -32 -0.0
.text 1757170 1757154 -16 -0.0
shell debug (read/write) 199800 199768 -32 -0.0
.data.rel.ro 76880 76848 -32 -0.0
.text 2184306 2184290 -16 -0.0
thermostat-no-ble arm64 (read only) 2354172 2354116 -56 -0.0
.rodata 147356 147332 -24 -0.0
.text 1977952 1977904 -48 -0.0
tv-app debug (read only) 2854489 2854465 -24 -0.0
.rodata 221169 221137 -32 -0.0
.text 2451266 2451250 -16 -0.0
tv-casting-app debug (read only) 5416553 5416529 -24 -0.0
.rodata 339713 339681 -32 -0.0
.text 4717490 4717474 -16 -0.0
telink light-switch-app tlsr9518adk80d text 553500 553498 -2 -0.0
lighting-app tlsr9518adk80d text 570266 570264 -2 -0.0
Full report (37 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
platform target config section 3ef81a8 463ccfc change % change
cc13x2_26x2 all-clusters-app LP_CC2652R7 (read only) 667211 667235 24 0.0
(read/write) 183468 183444 -24 -0.0
.bss 73660 73660 0 0.0
.data 3404 3404 0 0.0
.rodata 100051 100067 16 0.0
.text 566932 566940 8 0.0
lock-ftd LP_CC2652R7 (read only) 677215 677235 20 0.0
(read/write) 165440 165420 -20 -0.0
.bss 72692 72692 0 0.0
.data 3236 3236 0 0.0
.rodata 94831 94851 20 0.0
.text 581900 581900 0 0.0
lock-mtd LP_CC2652R7 (read only) 626039 626051 12 0.0
(read/write) 145524 145524 0 0.0
.bss 68428 68428 0 0.0
.data 3236 3236 0 0.0
.rodata 94719 94739 20 0.0
.text 530828 530820 -8 -0.0
pump-app LP_CC2652R7 (read only) 659443 659467 24 0.0
(read/write) 184492 184468 -24 -0.0
.bss 72948 72948 0 0.0
.data 3268 3268 0 0.0
.rodata 79347 79371 24 0.0
.text 579616 579616 0 0.0
pump-controller-app LP_CC2652R7 (read only) 653947 653963 16 0.0
(read/write) 189796 189780 -16 -0.0
.bss 73012 73012 0 0.0
.data 3232 3232 0 0.0
.rodata 83459 83475 16 0.0
.text 570008 570008 0 0.0
shell LP_CC2652R7 (read only) 660278 660298 20 0.0
(read/write) 185960 185940 -20 -0.0
.bss 76020 76020 0 0.0
.data 3408 3408 0 0.0
.rodata 97006 97026 20 0.0
.text 563048 563048 0 0.0
cyw30739 light cyw930739m2evb_01 (read/write) 625230 625250 20 0.0
.app_xip_area 528844 528864 20 0.0
.bss 79028 79028 0 0.0
.data 708 708 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
lock cyw930739m2evb_01 (read/write) 628034 628054 20 0.0
.app_xip_area 533104 533124 20 0.0
.bss 77604 77604 0 0.0
.data 672 672 0 0.0
.rodata 0 0 0 0.0
.text 0 0 0 0.0
ota-requestor-no-progress-logging cyw930739m2evb_01 (read/write) 570986 571014 28 0.0
.app_xip_area 466340 466368 28 0.0
.bss 87024 87024 0 0.0
.data 584 584 0 0.0
.rodata 0 0 0 0.0
.text 112 112 0 0.0
efr32 lighting-app BRD4161A (read only) 917676 917700 24 0.0
(read/write) 133244 133244 0 0.0
.bss 131184 131184 0 0.0
.data 2060 2060 0 0.0
.text 917668 917692 24 0.0
BRD4161A+rpc (read only) 951848 951872 24 0.0
(read/write) 149928 149928 0 0.0
.bss 147664 147664 0 0.0
.data 2264 2264 0 0.0
.text 951840 951864 24 0.0
BRD4161A+rs911x (read only) 791204 791228 24 0.0
(read/write) 129512 129512 0 0.0
.bss 127444 127444 0 0.0
.data 2068 2068 0 0.0
.text 791196 791220 24 0.0
lock-app BRD4161A+wf200 (read only) 947200 947220 20 0.0
(read/write) 123996 123996 0 0.0
.bss 121972 121972 0 0.0
.data 2024 2024 0 0.0
.text 947192 947212 20 0.0
window-app BRD4161A (read only) 897788 897812 24 0.0
(read/write) 133304 133304 0 0.0
.bss 131256 131256 0 0.0
.data 2048 2048 0 0.0
.text 897780 897804 24 0.0
esp32 all-clusters-app c3devkit (read only) 1000948 1000946 -2 -0.0
(read/write) 1477874 1477898 24 0.0
.dram0.bss 68216 68216 0 0.0
.dram0.data 14624 14624 0 0.0
.flash.rodata 209600 209624 24 0.0
.flash.text 1000948 1000946 -2 -0.0
.iram0.text 62954 62954 0 0.0
m5stack (read only) 1056219 1056271 52 0.0
(read/write) 479868 479900 32 0.0
.dram0.bss 73736 73736 0 0.0
.dram0.data 34200 34200 0 0.0
.flash.rodata 239936 239968 32 0.0
.flash.text 1050835 1050887 52 0.0
.iram0.text 123267 123267 0 0.0
k32w light k32w061+release (read/write) 682716 682732 16 0.0
.bss 80224 80224 0 0.0
.data 2016 2016 0 0.0
.text 598772 598788 16 0.0
lock k32w061+release (read/write) 729260 729288 28 0.0
.bss 80656 80656 0 0.0
.data 1976 1976 0 0.0
.text 644924 644952 28 0.0
linux all-clusters-app debug (read only) 2751209 2751217 8 0.0
(read/write) 175936 175968 32 0.0
.bss 85088 85088 0 0.0
.data 2064 2064 0 0.0
.data.rel.ro 82616 82648 32 0.0
.dynamic 608 608 0 0.0
.got 4496 4496 0 0.0
.init 27 27 0 0.0
.init_array 1016 1016 0 0.0
.rodata 240797 240797 0 0.0
.text 2336146 2336130 -16 -0.0
bridge-app debug+rpc (read only) 2033633 2033609 -24 -0.0
(read/write) 147736 147736 0 0.0
.bss 72864 72864 0 0.0
.data 3936 3936 0 0.0
.data.rel.ro 65352 65352 0 0.0
.dynamic 592 592 0 0.0
.got 4272 4272 0 0.0
.init 27 27 0 0.0
.init_array 688 688 0 0.0
.rodata 169129 169097 -32 -0.0
.text 1707506 1707490 -16 -0.0
chip-tool debug (read only) 9305573 9367197 61624 0.7
(read/write) 579128 579160 32 0.0
.bss 23936 23936 0 0.0
.data 1152 1152 0 0.0
.data.rel.ro 547752 547768 16 0.0
.dynamic 624 624 0 0.0
.got 5000 5000 0 0.0
.init 27 27 0 0.0
.init_array 656 656 0 0.0
.rodata 480989 481117 128 0.0
.text 7497797 7559269 61472 0.8
chip-tool-no-interactive-ipv6only arm64 (read only) 9077540 9148996 71456 0.8
(read/write) 645249 645265 16 0.0
.bss 42225 42225 0 0.0
.data 1192 1192 0 0.0
.data.rel.ro 583000 583024 24 0.0
.dynamic 560 560 0 0.0
.got 14984 14984 0 0.0
.init 24 24 0 0.0
.init_array 184 184 0 0.0
.rodata 445844 445940 96 0.0
.text 7169844 7241172 71328 1.0
lighting-app debug+rpc (read only) 2328113 2328089 -24 -0.0
(read/write) 153152 153152 0 0.0
.bss 74656 74656 0 0.0
.data 2048 2048 0 0.0
.data.rel.ro 70696 70696 0 0.0
.dynamic 608 608 0 0.0
.got 4344 4344 0 0.0
.init 27 27 0 0.0
.init_array 792 792 0 0.0
.rodata 188137 188105 -32 -0.0
.text 1973746 1973730 -16 -0.0
lock-app debug (read only) 2241561 2241569 8 0.0
(read/write) 147864 147864 0 0.0
.bss 73344 73344 0 0.0
.data 1568 1568 0 0.0
.data.rel.ro 67256 67256 0 0.0
.dynamic 592 592 0 0.0
.got 4336 4336 0 0.0
.init 27 27 0 0.0
.init_array 752 752 0 0.0
.rodata 198745 198745 0 0.0
.text 1882978 1882962 -16 -0.0
ota-provider-app debug (read only) 2063553 2063497 -56 -0.0
(read/write) 140944 140912 -32 -0.0
.bss 72800 72800 0 0.0
.data 1768 1768 0 0.0
.data.rel.ro 60568 60552 -16 -0.0
.dynamic 608 608 0 0.0
.got 4504 4504 0 0.0
.init 27 27 0 0.0
.init_array 648 648 0 0.0
.rodata 179360 179296 -64 -0.0
.text 1725746 1725730 -16 -0.0
ota-requestor-app debug (read only) 2092473 2092449 -24 -0.0
(read/write) 143752 143752 0 0.0
.bss 73472 73472 0 0.0
.data 1992 1992 0 0.0
.data.rel.ro 62632 62648 16 0.0
.dynamic 592 592 0 0.0
.got 4344 4344 0 0.0
.init 27 27 0 0.0
.init_array 672 672 0 0.0
.rodata 175392 175360 -32 -0.0
.text 1757170 1757154 -16 -0.0
shell debug (read only) 2566969 2566977 8 0.0
(read/write) 199800 199768 -32 -0.0
.bss 115784 115784 0 0.0
.data 1376 1376 0 0.0
.data.rel.ro 76880 76848 -32 -0.0
.dynamic 608 608 0 0.0
.got 4192 4192 0 0.0
.init 27 27 0 0.0
.init_array 936 936 0 0.0
.rodata 221778 221778 0 0.0
.text 2184306 2184290 -16 -0.0
thermostat-no-ble arm64 (read only) 2354172 2354116 -56 -0.0
(read/write) 176305 176321 16 0.0
.bss 87617 87617 0 0.0
.data 1520 1520 0 0.0
.data.rel.ro 79360 79384 24 0.0
.dynamic 560 560 0 0.0
.got 4768 4768 0 0.0
.init 24 24 0 0.0
.init_array 376 376 0 0.0
.rodata 147356 147332 -24 -0.0
.text 1977952 1977904 -48 -0.0
tv-app debug (read only) 2854489 2854465 -24 -0.0
(read/write) 278784 278816 32 0.0
.bss 190776 190776 0 0.0
.data 4672 4672 0 0.0
.data.rel.ro 77064 77096 32 0.0
.dynamic 592 592 0 0.0
.got 4720 4720 0 0.0
.init 27 27 0 0.0
.init_array 928 928 0 0.0
.rodata 221169 221137 -32 -0.0
.text 2451266 2451250 -16 -0.0
tv-casting-app debug (read only) 5416553 5416529 -24 -0.0
(read/write) 225024 225056 32 0.0
.bss 78360 78360 0 0.0
.data 2368 2368 0 0.0
.data.rel.ro 138064 138096 32 0.0
.dynamic 608 608 0 0.0
.got 4728 4728 0 0.0
.init 27 27 0 0.0
.init_array 864 864 0 0.0
.rodata 339713 339681 -32 -0.0
.text 4717490 4717474 -16 -0.0
mbed lock-app CY8CPROTO_062_4343W+release (read only) 6224 6224 0 0.0
(read/write) 2420448 2420472 24 0.0
.bss 202668 202668 0 0.0
.data 5872 5872 0 0.0
.text 1383092 1383116 24 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 (read/write) 1180803 1180823 20 0.0
bss 138388 138388 0 0.0
rodata 152780 152800 20 0.0
text 810768 810768 0 0.0
p6 all-clusters-app default (read/write) 2538776 2538800 24 0.0
.bss 136184 136184 0 0.0
.data 2808 2808 0 0.0
.text 1497040 1497064 24 0.0
light-app default (read/write) 2425240 2425264 24 0.0
.bss 129488 129488 0 0.0
.data 2608 2608 0 0.0
.text 1383504 1383528 24 0.0
lock-app default (read/write) 2435928 2435952 24 0.0
.bss 129304 129304 0 0.0
.data 2568 2568 0 0.0
.text 1394192 1394216 24 0.0
telink light-switch-app tlsr9518adk80d (read/write) 782596 782620 24 0.0
bss 70616 70616 0 0.0
noinit 40416 40416 0 0.0
text 553500 553498 -2 -0.0
lighting-app tlsr9518adk80d (read/write) 802676 802692 16 0.0
bss 70872 70872 0 0.0
noinit 40416 40416 0 0.0
text 570266 570264 -2 -0.0

@tcarmelveilleux tcarmelveilleux merged commit f7a321d into project-chip:master May 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants