From 5d89afd473dc9220b6de8016cc67c98b75e3cc00 Mon Sep 17 00:00:00 2001 From: Ravi Dondaputi Date: Mon, 14 Jul 2025 22:26:26 +0530 Subject: [PATCH 01/37] Revert "[nrf noup] samples: net: wifi: Update certificates" This reverts commit 0d44bacf58ac9ed130988d18fa960d01d4cbbd7d. Signed-off-by: Ravi Dondaputi --- samples/net/wifi/test_certs/rsa3k/ca.pem | 49 +++++++------ samples/net/wifi/test_certs/rsa3k/ca2.pem | 49 +++++++------ .../net/wifi/test_certs/rsa3k/client-key.pem | 70 +++++++++++-------- .../net/wifi/test_certs/rsa3k/client-key2.pem | 70 +++++++++++-------- samples/net/wifi/test_certs/rsa3k/client.pem | 44 ++++++------ samples/net/wifi/test_certs/rsa3k/client2.pem | 44 ++++++------ .../net/wifi/test_certs/rsa3k/server-key.pem | 70 +++++++++++-------- samples/net/wifi/test_certs/rsa3k/server.pem | 44 ++++++------ samples/net/wifi/test_certs/server-key2.pem | 30 -------- samples/net/wifi/test_certs/server2.pem | 22 ------ 10 files changed, 246 insertions(+), 246 deletions(-) delete mode 100644 samples/net/wifi/test_certs/server-key2.pem delete mode 100644 samples/net/wifi/test_certs/server2.pem diff --git a/samples/net/wifi/test_certs/rsa3k/ca.pem b/samples/net/wifi/test_certs/rsa3k/ca.pem index 2b872d2e30d..210e27daad7 100644 --- a/samples/net/wifi/test_certs/rsa3k/ca.pem +++ b/samples/net/wifi/test_certs/rsa3k/ca.pem @@ -1,24 +1,29 @@ -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIUK8+d+8IOzeX+DP3VSvdF3lHiCdcwDQYJKoZIhvcNAQEL -BQAwgZIxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIDAZSYWRpdXMxEjAQBgNVBAcMCVNv -bWV3aGVyZTEUMBIGA1UECgwLRXhhbXBsZSBJbmMxJjAkBgNVBAMMHUV4YW1wbGUg -Q2VydGlmaWNhdGUgQXV0aG9yaXR5MSAwHgYJKoZIhvcNAQkBFhFhZG1pbkBleGFt -cGxlLm9yZzAeFw0yNDEwMDgxMDI0MDZaFw0zNDEwMDYxMDI0MDZaMIGSMQswCQYD -VQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hlcmUxFDAS -BgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRpZmljYXRl -IEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5vcmcwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWKIwjdRIp9IrpZELN/ZsN13Xj -qQI6n086PNJ7BZfLi0+tD164rmxFk2eukNNksFCPhvMkqUxouGhc4mJjeivvrZxR -oT3cblOQIkkdEci6iTKC2E1a20W/Ur7cTXoIsnKwjiUjXk+cujkrZu4fcHX+O4vy -wTd5tEbhmifT/4u5nN8U2vBcEZqkGHOCp30VZSxtlGwqp4lc+tVziF3uFViW9MXk -3bVt+s1E7ztwG7+WBgVlLYe3CNSWkMxfyYBafH/l7iep6AFjoTn1z3AAjYi7IUNN -0JkW8MTgafRQIu4QsV5luq/Tiar2vwAm/GNgUJdSzUKARsfQzb/XTIgnLQqtAgMB -AAGjUzBRMB0GA1UdDgQWBBSijSC03/Thi6EOdM91V33zsbQpgzAfBgNVHSMEGDAW -gBSijSC03/Thi6EOdM91V33zsbQpgzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQAvKEfmCDoMTKC6bfP6DSs+MSAGc5tCr6w6cz2AKNJ2fOMhkq55 -JF47oBBGm9SdTB6Jqo6c109Ps69/+LMtEEGwvzL0RL0WAuTYGo6sudm9hj/jDHZh -pAqi/2BQQeVgTa6oW0jtNPFe+/cobXo9TJ7wECGrhvVbmfl5ZPc0YVOIjjR0/LhL -q7lqPAlJ5vx0WvsX+QReN97we8vD0x1D3mCySJTi3Irh+grE0yJOSN2fa7cyqi9+ -vSiNUB1eUgQwrO+S8ZazYNvAZXC2Xf4WB4SOifJD73pYPAdwOejc0FA+zfEKa/6/ -vTUs8cIhlmDWO+BEoc9wygMKMmhT5s7/T5Bv +MIIE6TCCA1GgAwIBAgIUH4N5boKrWBsvBRqfKvYDxZ0DDtgwDQYJKoZIhvcNAQEM +BQAwgYIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAlTb21ld2hlcmUxEjAQBgNVBAcM +CVNvbWV3aGVyZTEUMBIGA1UECgwLRXhhbXBsZSBJbmMxEzARBgNVBAMMCkV4YW1w +bGUgQ0ExIDAeBgkqhkiG9w0BCQEWEWFkbWluQGV4YW1wbGUub3JnMCAXDTA5MTIz +MTE2MDEyOFoYDzIxMDkxMjA3MTYwMTI4WjCBgjELMAkGA1UEBhMCQ04xEjAQBgNV +BAgMCVNvbWV3aGVyZTESMBAGA1UEBwwJU29tZXdoZXJlMRQwEgYDVQQKDAtFeGFt +cGxlIEluYzETMBEGA1UEAwwKRXhhbXBsZSBDQTEgMB4GCSqGSIb3DQEJARYRYWRt +aW5AZXhhbXBsZS5vcmcwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDA +PnXIdC5u6eCrXpQfTYwE6QwbSoxPE6kgN0CeVGqk4ya89RzmW/I6+ENw9exraeAl +xDEc2s1OSmBMeAn7b/nDiV3ik4MpQ2+5ZlmKQHYRrjfdnw/zwkcWncPX+UuTfXlx +b4PGBOF/J7HehpfCCQ9g3aXlMWYxR/A0nkFbnfy3gIX7Q0tvGmFJmYWgKxvEELOM +3qV8Jwmui+sw8SL14F+7vZgfBqjnpXfjFaSa+K63sGWLtyy7oQ7eYhpOylA3QSf7 +Hyu+lLQSnHafEys1eedD/Re+gPFUtga/f+CX111ZYDW4zud6W/V3AT1ZGrnrGmCg +k5NeEkLnxaj+GOSvd9O2pnwPSCA2mdRhhx5XxIVD3rZvfR86KflDco8D9i4jPpA0 +38QduFsYXRFS1zTVZuKSlv/bjAmwsNFb/rAS97PVcJf6UVtNkGorc2R2qGWxVDLm +lJSzv14j0swUQomb31+PzAngvB+b2HbjvFCgIb+YHu4c83Gb4tYYBYcu2VgJ0K0C +AwEAAaNTMFEwHQYDVR0OBBYEFNASTtq6TuD6opLY9NUMtneRjAicMB8GA1UdIwQY +MBaAFNASTtq6TuD6opLY9NUMtneRjAicMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQEMBQADggGBAFbPTxPsNaQeAjN9J6F32l4YQFwhOWSXI/40VQHZTtWeiP87 +EOpOaeE+oboHn6EIYE7meT92vDD/JzJ6JnD0a3kVgRFWe2Wn1FOpFWVbNMzMk03P +CNYH2Vbbcsi0fDp9mFvfU9jV8+onWz363Q2M+VJ3BxnrOFpp0+NHt0mNPFN4A8/J +58eTde+QBoUUFrKmviceuHNMqG4o3IIk71LTNg6vWUU94YFLjSSoM5LqLQ2gZapg +4vFlYrEATpk/QBzATW4bRT0KLkHDroJj1iU4U5Ju4t2mXVDRtw9Ci0TLe3iD6rO+ +GPtxw5KsR4BvY9m+UORAoRSpYWGv3ZRPPz2EL9duF9rwJsjeCxiy6r4JK32R71JC +njnSImcf2QQ5MX6Kk0hMcrdkZY4oCyMQj6yk+EuI1XlK9vK4wctPS10bPRTiDzP3 +8sSoFkQegoV2FuqCAVECtSHJE6w56fvoV+wwtwn/Q9pQiJisj+wmwCRy2EYq9R1G +pFJpUlMAmEDj5r9lYg== -----END CERTIFICATE----- diff --git a/samples/net/wifi/test_certs/rsa3k/ca2.pem b/samples/net/wifi/test_certs/rsa3k/ca2.pem index 2b872d2e30d..210e27daad7 100644 --- a/samples/net/wifi/test_certs/rsa3k/ca2.pem +++ b/samples/net/wifi/test_certs/rsa3k/ca2.pem @@ -1,24 +1,29 @@ -----BEGIN CERTIFICATE----- -MIIEBzCCAu+gAwIBAgIUK8+d+8IOzeX+DP3VSvdF3lHiCdcwDQYJKoZIhvcNAQEL -BQAwgZIxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIDAZSYWRpdXMxEjAQBgNVBAcMCVNv -bWV3aGVyZTEUMBIGA1UECgwLRXhhbXBsZSBJbmMxJjAkBgNVBAMMHUV4YW1wbGUg -Q2VydGlmaWNhdGUgQXV0aG9yaXR5MSAwHgYJKoZIhvcNAQkBFhFhZG1pbkBleGFt -cGxlLm9yZzAeFw0yNDEwMDgxMDI0MDZaFw0zNDEwMDYxMDI0MDZaMIGSMQswCQYD -VQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hlcmUxFDAS -BgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRpZmljYXRl -IEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5vcmcwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWKIwjdRIp9IrpZELN/ZsN13Xj -qQI6n086PNJ7BZfLi0+tD164rmxFk2eukNNksFCPhvMkqUxouGhc4mJjeivvrZxR -oT3cblOQIkkdEci6iTKC2E1a20W/Ur7cTXoIsnKwjiUjXk+cujkrZu4fcHX+O4vy -wTd5tEbhmifT/4u5nN8U2vBcEZqkGHOCp30VZSxtlGwqp4lc+tVziF3uFViW9MXk -3bVt+s1E7ztwG7+WBgVlLYe3CNSWkMxfyYBafH/l7iep6AFjoTn1z3AAjYi7IUNN -0JkW8MTgafRQIu4QsV5luq/Tiar2vwAm/GNgUJdSzUKARsfQzb/XTIgnLQqtAgMB -AAGjUzBRMB0GA1UdDgQWBBSijSC03/Thi6EOdM91V33zsbQpgzAfBgNVHSMEGDAW -gBSijSC03/Thi6EOdM91V33zsbQpgzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 -DQEBCwUAA4IBAQAvKEfmCDoMTKC6bfP6DSs+MSAGc5tCr6w6cz2AKNJ2fOMhkq55 -JF47oBBGm9SdTB6Jqo6c109Ps69/+LMtEEGwvzL0RL0WAuTYGo6sudm9hj/jDHZh -pAqi/2BQQeVgTa6oW0jtNPFe+/cobXo9TJ7wECGrhvVbmfl5ZPc0YVOIjjR0/LhL -q7lqPAlJ5vx0WvsX+QReN97we8vD0x1D3mCySJTi3Irh+grE0yJOSN2fa7cyqi9+ -vSiNUB1eUgQwrO+S8ZazYNvAZXC2Xf4WB4SOifJD73pYPAdwOejc0FA+zfEKa/6/ -vTUs8cIhlmDWO+BEoc9wygMKMmhT5s7/T5Bv +MIIE6TCCA1GgAwIBAgIUH4N5boKrWBsvBRqfKvYDxZ0DDtgwDQYJKoZIhvcNAQEM +BQAwgYIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAlTb21ld2hlcmUxEjAQBgNVBAcM +CVNvbWV3aGVyZTEUMBIGA1UECgwLRXhhbXBsZSBJbmMxEzARBgNVBAMMCkV4YW1w +bGUgQ0ExIDAeBgkqhkiG9w0BCQEWEWFkbWluQGV4YW1wbGUub3JnMCAXDTA5MTIz +MTE2MDEyOFoYDzIxMDkxMjA3MTYwMTI4WjCBgjELMAkGA1UEBhMCQ04xEjAQBgNV +BAgMCVNvbWV3aGVyZTESMBAGA1UEBwwJU29tZXdoZXJlMRQwEgYDVQQKDAtFeGFt +cGxlIEluYzETMBEGA1UEAwwKRXhhbXBsZSBDQTEgMB4GCSqGSIb3DQEJARYRYWRt +aW5AZXhhbXBsZS5vcmcwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDA +PnXIdC5u6eCrXpQfTYwE6QwbSoxPE6kgN0CeVGqk4ya89RzmW/I6+ENw9exraeAl +xDEc2s1OSmBMeAn7b/nDiV3ik4MpQ2+5ZlmKQHYRrjfdnw/zwkcWncPX+UuTfXlx +b4PGBOF/J7HehpfCCQ9g3aXlMWYxR/A0nkFbnfy3gIX7Q0tvGmFJmYWgKxvEELOM +3qV8Jwmui+sw8SL14F+7vZgfBqjnpXfjFaSa+K63sGWLtyy7oQ7eYhpOylA3QSf7 +Hyu+lLQSnHafEys1eedD/Re+gPFUtga/f+CX111ZYDW4zud6W/V3AT1ZGrnrGmCg +k5NeEkLnxaj+GOSvd9O2pnwPSCA2mdRhhx5XxIVD3rZvfR86KflDco8D9i4jPpA0 +38QduFsYXRFS1zTVZuKSlv/bjAmwsNFb/rAS97PVcJf6UVtNkGorc2R2qGWxVDLm +lJSzv14j0swUQomb31+PzAngvB+b2HbjvFCgIb+YHu4c83Gb4tYYBYcu2VgJ0K0C +AwEAAaNTMFEwHQYDVR0OBBYEFNASTtq6TuD6opLY9NUMtneRjAicMB8GA1UdIwQY +MBaAFNASTtq6TuD6opLY9NUMtneRjAicMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQEMBQADggGBAFbPTxPsNaQeAjN9J6F32l4YQFwhOWSXI/40VQHZTtWeiP87 +EOpOaeE+oboHn6EIYE7meT92vDD/JzJ6JnD0a3kVgRFWe2Wn1FOpFWVbNMzMk03P +CNYH2Vbbcsi0fDp9mFvfU9jV8+onWz363Q2M+VJ3BxnrOFpp0+NHt0mNPFN4A8/J +58eTde+QBoUUFrKmviceuHNMqG4o3IIk71LTNg6vWUU94YFLjSSoM5LqLQ2gZapg +4vFlYrEATpk/QBzATW4bRT0KLkHDroJj1iU4U5Ju4t2mXVDRtw9Ci0TLe3iD6rO+ +GPtxw5KsR4BvY9m+UORAoRSpYWGv3ZRPPz2EL9duF9rwJsjeCxiy6r4JK32R71JC +njnSImcf2QQ5MX6Kk0hMcrdkZY4oCyMQj6yk+EuI1XlK9vK4wctPS10bPRTiDzP3 +8sSoFkQegoV2FuqCAVECtSHJE6w56fvoV+wwtwn/Q9pQiJisj+wmwCRy2EYq9R1G +pFJpUlMAmEDj5r9lYg== -----END CERTIFICATE----- diff --git a/samples/net/wifi/test_certs/rsa3k/client-key.pem b/samples/net/wifi/test_certs/rsa3k/client-key.pem index 6ab70da2452..30736e963c2 100644 --- a/samples/net/wifi/test_certs/rsa3k/client-key.pem +++ b/samples/net/wifi/test_certs/rsa3k/client-key.pem @@ -1,30 +1,40 @@ ------BEGIN ENCRYPTED PRIVATE KEY----- -MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQILVdWyEWhWU0CAggA -MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBDMFReIusCg7gSkoUQZV2flBIIE -0BIFQH7+0dc7wHIQQ1y0ao90rrK3ExtCABH6xp4OAHUNPR1549zSEak/9Ba6WLBp -YE0m/lpLz4oUJE4Kd3rg4ekSZk4mapZoW7g5ax4qAEblmM6rqmyjiU0Q6tsAb8n1 -x+RyjUILlgTH1HDmeNA53QNMCw++xIMIJPN29SvFN6vkU2Fd2f74/TuZRSaCEPLO -LKtNMwWCMTrlv0UewEryOvZegPQuEF/Ewmmw/9l5VfkPp6zAtZKzWsfk4jUo5tv2 -5dPoHR+RKjNNVwetnCq59QYMS2My6KLqX4Vzqnbu8K1nlbm85ZHnvLGi8cDn8EB7 -QtRL+Ev5IwcwYJgV5AMojouJLQdR655jeITWI1Gsohz28YG8c1qYX4ZN6albSd1G -fd1tMOWkeu4uEzJ7ijLDfnCzrklnLuAZx8yLzyrOa7i9AwwJmdgUEdbWWsru3L6C -zDJ45rpA0FobdlTem4kpoE9yiyHkIhf3wmI3X+0aodC11pdbHP260KIC8E1K9FUh -s/IoEQCYrBp8UltNTlezwq/E5uOuIu4EpfjEgH1Z3+hSDbnmMAXNX4DbL234x7iy -3Y256DtOeHSElnRz3kDnZVNtM1Kd5fgEYJ1ptYRPYaWyJka7/hC/0UObuM9w+QeO -OlG0QgumQFloyhDa9anPBK4sYJp4g1fK8golUDW4AdpFPNOJvvgOvQUzhPpHjr+N -lpZ75Y6I3JSSKJ/UMlSCOqjak8oZtMtJNMfbx1lgwwDtgjDSJvSdl735gI9VmXXH -qnlGEtyiQ7k1Z1a4HxiY2/CiDHvkymClir/Ik8gt+wmyT9c/9BcehLRf6PxMsDVy -PCkty1LlzN+5tSZJtJnOiTlgsRn/w49Ohp74ITheSdb30/6PnFI+o8rcJHmrjN4d -t3z/bCyWAeC8mS7m0wtXlyBeG9xvdyT8dDHAFOnqxX30dEwEbjNj58kWGAgRf9i3 -HlOAP8yRy7LAV7A4HEPnEzXBxYpsROUw/8d3Jtmr2nAp2hfKP339DYZPHZpRLjJr -WQlJasHHLxHKKjSsuM06WsCO+Tt2FTSgGJuU6nFVK75fssmmJYzj9qMHVM6YSjfY -sT0ZIWRgO9NLFx5O3QxY1wgMLhhv1FREy9NVnMU0W3A1u0F7dwHywZGha2IqEXgu -+UyWIJnePMvluV/s66AN/OpIxKU48c0B4l7XzXkHHd43tDUG3ztfRuPbWCHipuRO -eo+vHGD01iBLSE1ZhrYLHKQhJvIKx/PIEaqJHP/Vy35AD/2/GH09TiIBHzX9aXie -TiKFs30FQv7SpLNHNE7jUxsYGNUbYa70S/Vgn3wkKATcXpCc749XQV4OUbFoqkDm -vuZOjkIOlm/OtZkUuDWmk96mgoVG/gWSEJPynJHUpmWdu/BCdYOgxBk/bmPa1leS -Z5NbO0fGMnNhDMXYA5rqmVzABcNSYhgYw5aciWpBlgYHEYrPxZvCxWftIyb24oEk -wdHEaFbIYbOoVZqo7Ym2hrvVrJb8Qdukf1BmUgfSSSc7BFoSrBUO4SNFtZI55NOB -OM4rnkqfoYR0IpnxzPIpxpsWljG9QsgnTaffStDgIGXiAtBWJFy+44f1IS4EoC6B -+we1Q6atPwYSyPtG8mn4Ce0BNxLDUoFDLMQ7Bt8QBMeX ------END ENCRYPTED PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIG/gIBADANBgkqhkiG9w0BAQEFAASCBugwggbkAgEAAoIBgQCyrJdw9xFpDe39 +iBbAoMdpRPY13DpcXywQSFYnnhCGttdRKahOTSiQzP+iG1sczV0WwwFlnqgL2Jh9 +p82jwhQ+UEuG/nRas7cvKlEkEol/kdUwK9+Nvbie6kGqTZqJkwVZ6Dqpm9Kq+pTU +0eJHYu1MOtreQQDIrUvmDLbz7eQsUEKfAKPnmY8NMx/DCqNLoXzmdxjeMGCJ9b5F +++3wDblipYy/+7k11EyZn+MGdtA4Uq5dcv6H7ie1AgPsVO+3p8FbOwa/O5kaCOmf +MkxZBv0jDFBqKv84KBy66wqCj3PsH1WDsd+etxGqvFleBWUb2pamEW2+mqKPmnoZ +uJtkzYK376+s5jULFH9DvHzbwFNQI2IgXriNzYVVCTHIg1ndVFzcGKFCka1DNSma +8cAnWKP2yzr58WKS3iEZ8p12UK/nW353aP0Fz0p73zuMg8fnWrTdh13UZOKudnNq +twe1Ozo+R0e5VCIxJeQIo2MovRqRcnb6U5Yf4IXOx8gjCXnbcBcCAwEAAQKCAYEA +kyAVT9rSRkxHFUaTXajGq0My7iTbFab0tK+r6dF5UESMxnNj+J4Gcj2rngOiofPk +3FJU+yWKwL5oysd7SIYOf0VE+/LZQrrLc5YH3Ik7GYWvI4xs990qggjpa1+dif07 +Ic5dR75c2ZefKCNvjVLDjcrE4NBr4dL5NYRwvim8glTQlvdC//ltVvQrCkLfNe7S +1z9ohcUWKWPmeuA5DDtw1O73GDsiRlX7gWCr423AhTBoDeEcADg2EBGJw3gpMHR8 +HGV7U/TJRb/3hvgkGvxL2pX1EbS48qbMboTBbBvIuSGjv6JiCtAQC4o0ti3RLae4 +axd/4r/u1AkJJJtcRQUJbKMPxaQ8V0aASrVgTCanUhJHS09RCeLBx02DS4zSOkHg +4ySp82oh1rM9zK0iPIo1dcoMmm1lKSmRU2c9SJyHZ0UGRNCLVgs76qzg/nV1WSyE +1Woq61RB8Qepc2v5vSiz8QB4ljrIZtZkcTJzsAS+THeVgYeNVWTIz6rXG2Zg3pCZ +AoHBAOsP/GvNSKykm8dtjRXBtjLpahPtKmOpUR2cptdfuGAIbnaANCXr8oYrLNsz +y4CmWgiTcnO7+c03oT1q8iYe50FvFw6g1xy5F1M/4av5RiPz3rEm8J+lRskC4+RR ++m8VdTF11HCIEw7um+CwPqluDq1DNLdAudIA0lyjhsHkFo+yWcJyrBKW4r2wzgwP +QP6dH3hbvcU1cvKgbj9dbshFR+FG4U4KuV/AsMEtFpEj+Uh/gfnJO6cVnFz7/1vt +iQEFPQKBwQDCls/HyCzYnXmoMvqS+DSBDliwKpGBCd6RuvwrNPJlR1GI38iaSf2t +Vu7PpabQx/uJIwTg5zzv8kVR8pXOwUlL/GcvMcoN7/hauKh7JcOlD1bQ6fPJMcHc +OOFG1JlaLcsW9o075mz/FmpvGF4s+uDPDGE5xFfeYb0E4/N7j5zvOAZJGll6BwIR +snufXR3/JW9lxdrFawqNMSRRG9Y9IkSJfLMQ+1LAY8QviOjjoUdEh0NYfsis+VpV +7/AfMKQ9p+MCgcEAmNRx990mrSjxJ76whj7GKV/dWktOzjFdzfT1/P39MGMK/vzn +6uf3bQhRR8vrOh/uVbkYJutGxQiwSvBntCVPkhmaUiZ89e3ZnoTgQyH1WpbKaT+6 +HvIkjbjVVrN+Mg8vfRLxJqEyUvkMXA/7DcnCvR/+/E6XAlUKcLTZfuK/UHpTJbvM +6OE1VsPHk8uvJFwgA+8R+VCBBgMM6yHiT0/MJkohXs5WLE1qHo8kJwXOpDZS2Ybe +xAmm+kXVh31vIDy5AoHAb4n+5CeL/UaW+6DtHN2FSwysLZ7Y9LxxhdtGvIWHBCLT +S7/qvvX2oSuZjBEKA9b+Cee23ivuNCQNNCH3WSJWH2Y4x0ak6URKecYrXRuSf8TB +INNZ2FPbKZ65Et6+YICrTyhYYKN+iuGQdMnlAad0wXn5KSGwtFoV/P2lDYiOjljw +0Wp3K4lk2DwUvI6lqSEOL6ov8sWesLwgcxWfwj8oRh7ijbNiBcGqLQ0vYXuK3G8k +XU+fO/danrQAUgCRxH29AoHAaobHyG4zSt0srMlV1qe+txcJF7fiyMg3VYGeWlZk +vUNsJjAjH1WvqgxOynN2L4/d5TIPUzrJehrwO+maP8f6UU6X181zQdBhWi3zyEaZ +rvQtoNwwoVL9+sY1/FRIW3dEyJ1+V0mbUi+td8Ygtt7Dy9/15RKLgO4oARUDOiMn +iPbd8ee/e5Zh2esjP6f+cjFMKgwVllO1VaTC5MJhUFAGJxUoMwCr/PFacNRXbyLr +7Rwf2QE670one3F+5w5mGkax +-----END PRIVATE KEY----- diff --git a/samples/net/wifi/test_certs/rsa3k/client-key2.pem b/samples/net/wifi/test_certs/rsa3k/client-key2.pem index 6ab70da2452..30736e963c2 100644 --- a/samples/net/wifi/test_certs/rsa3k/client-key2.pem +++ b/samples/net/wifi/test_certs/rsa3k/client-key2.pem @@ -1,30 +1,40 @@ ------BEGIN ENCRYPTED PRIVATE KEY----- -MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQILVdWyEWhWU0CAggA -MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBDMFReIusCg7gSkoUQZV2flBIIE -0BIFQH7+0dc7wHIQQ1y0ao90rrK3ExtCABH6xp4OAHUNPR1549zSEak/9Ba6WLBp -YE0m/lpLz4oUJE4Kd3rg4ekSZk4mapZoW7g5ax4qAEblmM6rqmyjiU0Q6tsAb8n1 -x+RyjUILlgTH1HDmeNA53QNMCw++xIMIJPN29SvFN6vkU2Fd2f74/TuZRSaCEPLO -LKtNMwWCMTrlv0UewEryOvZegPQuEF/Ewmmw/9l5VfkPp6zAtZKzWsfk4jUo5tv2 -5dPoHR+RKjNNVwetnCq59QYMS2My6KLqX4Vzqnbu8K1nlbm85ZHnvLGi8cDn8EB7 -QtRL+Ev5IwcwYJgV5AMojouJLQdR655jeITWI1Gsohz28YG8c1qYX4ZN6albSd1G -fd1tMOWkeu4uEzJ7ijLDfnCzrklnLuAZx8yLzyrOa7i9AwwJmdgUEdbWWsru3L6C -zDJ45rpA0FobdlTem4kpoE9yiyHkIhf3wmI3X+0aodC11pdbHP260KIC8E1K9FUh -s/IoEQCYrBp8UltNTlezwq/E5uOuIu4EpfjEgH1Z3+hSDbnmMAXNX4DbL234x7iy -3Y256DtOeHSElnRz3kDnZVNtM1Kd5fgEYJ1ptYRPYaWyJka7/hC/0UObuM9w+QeO -OlG0QgumQFloyhDa9anPBK4sYJp4g1fK8golUDW4AdpFPNOJvvgOvQUzhPpHjr+N -lpZ75Y6I3JSSKJ/UMlSCOqjak8oZtMtJNMfbx1lgwwDtgjDSJvSdl735gI9VmXXH -qnlGEtyiQ7k1Z1a4HxiY2/CiDHvkymClir/Ik8gt+wmyT9c/9BcehLRf6PxMsDVy -PCkty1LlzN+5tSZJtJnOiTlgsRn/w49Ohp74ITheSdb30/6PnFI+o8rcJHmrjN4d -t3z/bCyWAeC8mS7m0wtXlyBeG9xvdyT8dDHAFOnqxX30dEwEbjNj58kWGAgRf9i3 -HlOAP8yRy7LAV7A4HEPnEzXBxYpsROUw/8d3Jtmr2nAp2hfKP339DYZPHZpRLjJr -WQlJasHHLxHKKjSsuM06WsCO+Tt2FTSgGJuU6nFVK75fssmmJYzj9qMHVM6YSjfY -sT0ZIWRgO9NLFx5O3QxY1wgMLhhv1FREy9NVnMU0W3A1u0F7dwHywZGha2IqEXgu -+UyWIJnePMvluV/s66AN/OpIxKU48c0B4l7XzXkHHd43tDUG3ztfRuPbWCHipuRO -eo+vHGD01iBLSE1ZhrYLHKQhJvIKx/PIEaqJHP/Vy35AD/2/GH09TiIBHzX9aXie -TiKFs30FQv7SpLNHNE7jUxsYGNUbYa70S/Vgn3wkKATcXpCc749XQV4OUbFoqkDm -vuZOjkIOlm/OtZkUuDWmk96mgoVG/gWSEJPynJHUpmWdu/BCdYOgxBk/bmPa1leS -Z5NbO0fGMnNhDMXYA5rqmVzABcNSYhgYw5aciWpBlgYHEYrPxZvCxWftIyb24oEk -wdHEaFbIYbOoVZqo7Ym2hrvVrJb8Qdukf1BmUgfSSSc7BFoSrBUO4SNFtZI55NOB -OM4rnkqfoYR0IpnxzPIpxpsWljG9QsgnTaffStDgIGXiAtBWJFy+44f1IS4EoC6B -+we1Q6atPwYSyPtG8mn4Ce0BNxLDUoFDLMQ7Bt8QBMeX ------END ENCRYPTED PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIG/gIBADANBgkqhkiG9w0BAQEFAASCBugwggbkAgEAAoIBgQCyrJdw9xFpDe39 +iBbAoMdpRPY13DpcXywQSFYnnhCGttdRKahOTSiQzP+iG1sczV0WwwFlnqgL2Jh9 +p82jwhQ+UEuG/nRas7cvKlEkEol/kdUwK9+Nvbie6kGqTZqJkwVZ6Dqpm9Kq+pTU +0eJHYu1MOtreQQDIrUvmDLbz7eQsUEKfAKPnmY8NMx/DCqNLoXzmdxjeMGCJ9b5F +++3wDblipYy/+7k11EyZn+MGdtA4Uq5dcv6H7ie1AgPsVO+3p8FbOwa/O5kaCOmf +MkxZBv0jDFBqKv84KBy66wqCj3PsH1WDsd+etxGqvFleBWUb2pamEW2+mqKPmnoZ +uJtkzYK376+s5jULFH9DvHzbwFNQI2IgXriNzYVVCTHIg1ndVFzcGKFCka1DNSma +8cAnWKP2yzr58WKS3iEZ8p12UK/nW353aP0Fz0p73zuMg8fnWrTdh13UZOKudnNq +twe1Ozo+R0e5VCIxJeQIo2MovRqRcnb6U5Yf4IXOx8gjCXnbcBcCAwEAAQKCAYEA +kyAVT9rSRkxHFUaTXajGq0My7iTbFab0tK+r6dF5UESMxnNj+J4Gcj2rngOiofPk +3FJU+yWKwL5oysd7SIYOf0VE+/LZQrrLc5YH3Ik7GYWvI4xs990qggjpa1+dif07 +Ic5dR75c2ZefKCNvjVLDjcrE4NBr4dL5NYRwvim8glTQlvdC//ltVvQrCkLfNe7S +1z9ohcUWKWPmeuA5DDtw1O73GDsiRlX7gWCr423AhTBoDeEcADg2EBGJw3gpMHR8 +HGV7U/TJRb/3hvgkGvxL2pX1EbS48qbMboTBbBvIuSGjv6JiCtAQC4o0ti3RLae4 +axd/4r/u1AkJJJtcRQUJbKMPxaQ8V0aASrVgTCanUhJHS09RCeLBx02DS4zSOkHg +4ySp82oh1rM9zK0iPIo1dcoMmm1lKSmRU2c9SJyHZ0UGRNCLVgs76qzg/nV1WSyE +1Woq61RB8Qepc2v5vSiz8QB4ljrIZtZkcTJzsAS+THeVgYeNVWTIz6rXG2Zg3pCZ +AoHBAOsP/GvNSKykm8dtjRXBtjLpahPtKmOpUR2cptdfuGAIbnaANCXr8oYrLNsz +y4CmWgiTcnO7+c03oT1q8iYe50FvFw6g1xy5F1M/4av5RiPz3rEm8J+lRskC4+RR ++m8VdTF11HCIEw7um+CwPqluDq1DNLdAudIA0lyjhsHkFo+yWcJyrBKW4r2wzgwP +QP6dH3hbvcU1cvKgbj9dbshFR+FG4U4KuV/AsMEtFpEj+Uh/gfnJO6cVnFz7/1vt +iQEFPQKBwQDCls/HyCzYnXmoMvqS+DSBDliwKpGBCd6RuvwrNPJlR1GI38iaSf2t +Vu7PpabQx/uJIwTg5zzv8kVR8pXOwUlL/GcvMcoN7/hauKh7JcOlD1bQ6fPJMcHc +OOFG1JlaLcsW9o075mz/FmpvGF4s+uDPDGE5xFfeYb0E4/N7j5zvOAZJGll6BwIR +snufXR3/JW9lxdrFawqNMSRRG9Y9IkSJfLMQ+1LAY8QviOjjoUdEh0NYfsis+VpV +7/AfMKQ9p+MCgcEAmNRx990mrSjxJ76whj7GKV/dWktOzjFdzfT1/P39MGMK/vzn +6uf3bQhRR8vrOh/uVbkYJutGxQiwSvBntCVPkhmaUiZ89e3ZnoTgQyH1WpbKaT+6 +HvIkjbjVVrN+Mg8vfRLxJqEyUvkMXA/7DcnCvR/+/E6XAlUKcLTZfuK/UHpTJbvM +6OE1VsPHk8uvJFwgA+8R+VCBBgMM6yHiT0/MJkohXs5WLE1qHo8kJwXOpDZS2Ybe +xAmm+kXVh31vIDy5AoHAb4n+5CeL/UaW+6DtHN2FSwysLZ7Y9LxxhdtGvIWHBCLT +S7/qvvX2oSuZjBEKA9b+Cee23ivuNCQNNCH3WSJWH2Y4x0ak6URKecYrXRuSf8TB +INNZ2FPbKZ65Et6+YICrTyhYYKN+iuGQdMnlAad0wXn5KSGwtFoV/P2lDYiOjljw +0Wp3K4lk2DwUvI6lqSEOL6ov8sWesLwgcxWfwj8oRh7ijbNiBcGqLQ0vYXuK3G8k +XU+fO/danrQAUgCRxH29AoHAaobHyG4zSt0srMlV1qe+txcJF7fiyMg3VYGeWlZk +vUNsJjAjH1WvqgxOynN2L4/d5TIPUzrJehrwO+maP8f6UU6X181zQdBhWi3zyEaZ +rvQtoNwwoVL9+sY1/FRIW3dEyJ1+V0mbUi+td8Ygtt7Dy9/15RKLgO4oARUDOiMn +iPbd8ee/e5Zh2esjP6f+cjFMKgwVllO1VaTC5MJhUFAGJxUoMwCr/PFacNRXbyLr +7Rwf2QE670one3F+5w5mGkax +-----END PRIVATE KEY----- diff --git a/samples/net/wifi/test_certs/rsa3k/client.pem b/samples/net/wifi/test_certs/rsa3k/client.pem index 9e815474cd8..16397db7756 100644 --- a/samples/net/wifi/test_certs/rsa3k/client.pem +++ b/samples/net/wifi/test_certs/rsa3k/client.pem @@ -1,22 +1,26 @@ -----BEGIN CERTIFICATE----- -MIIDojCCAooCFGZ4UJXBKG70aewILFtsy4mbvaYZMA0GCSqGSIb3DQEBCwUAMIGS -MQswCQYDVQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hl -cmUxFDASBgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRp -ZmljYXRlIEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5v -cmcwHhcNMjQxMDA4MTAyNjI1WhcNMzQxMDA2MTAyNjI1WjCBhzELMAkGA1UEBhMC -RlIxDzANBgNVBAgMBlJhZGl1czESMBAGA1UEBwwJU29tZXdoZXJlMRQwEgYDVQQK -DAtFeGFtcGxlIEluYzEbMBkGA1UEAwwSY2xpZW50LmV4YW1wbGUub3JnMSAwHgYJ -KoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMu3HXJvi2Q4hQnLL4v/sCyEr5x+ZtBcSi2yETMViaf2EStW -UOs1A1pmCQbO7nadLQcWaX4tzefQCRrs1X4hIQuDIqRPNi6h6G1g5HEtqBWZhvwu -hDbmFiX8/Vtw/P0/9sox2DzyLG0mjJUAYAbKtyC1kQalybVBtrSaazyyAyh6oOuU -chAb7SmmNDsRB959TWM/mp+6yCcFGzCDKNBwlwthB6Uw92d3SfOyXEnZm8rPf0hV -4ICL5iB+xEYBv1LKmznFK/4UAyKpxAygc5fxKVWwlSsq8MrES5ak0n6H71wViaXK -BrH5yh9jEkK9XSeaUwg8C9eOOexyx/5JDY3TTE8CAwEAATANBgkqhkiG9w0BAQsF -AAOCAQEAUNddNiRUlJH0acJJv8ztXNWjNewd17tAk1BBHp6yyGAD8b52p6QbDAdS -xO3WsSc2bqSy599jp4GshO27TMQsBRMfoggCG21Aj6sIs0Hd4shTE4T0GUBEBxC2 -/HReuD+cGIzzKMYlvK8RPSaGLPvPw5SryvmOnjD368V0KCHwT04Z14i4sMxlkd5q -wB7fxTkVla9MR4uWObX62mJykmqT86chScJpldtBpRh8wrEa3Gt9FZoi/eqP0De8 -oCxmCZDrozGTZ4IIaNzchx3Ensh1RQwvvxd6ATerYdUjq4V2TlTksDRdCXtj+uNJ -FnB32sUHiIouxudAsqDf8UL9/99RCw== +MIIEaDCCAtACAQEwDQYJKoZIhvcNAQEMBQAwgYIxCzAJBgNVBAYTAkNOMRIwEAYD +VQQIDAlTb21ld2hlcmUxEjAQBgNVBAcMCVNvbWV3aGVyZTEUMBIGA1UECgwLRXhh +bXBsZSBJbmMxEzARBgNVBAMMCkV4YW1wbGUgQ0ExIDAeBgkqhkiG9w0BCQEWEWFk +bWluQGV4YW1wbGUub3JnMCAXDTA5MTIzMTE2MDM1MVoYDzIxMDkxMjA3MTYwMzUx +WjBvMQswCQYDVQQGEwJDTjESMBAGA1UECAwJU29tZXdoZXJlMRQwEgYDVQQKDAtF +eGFtcGxlIEluYzEVMBMGA1UEAwwMRXhhbXBsZSBVc2VyMR8wHQYJKoZIhvcNAQkB +FhB1c2VyQGV4YW1wbGUub3JnMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKC +AYEAsqyXcPcRaQ3t/YgWwKDHaUT2Ndw6XF8sEEhWJ54QhrbXUSmoTk0okMz/ohtb +HM1dFsMBZZ6oC9iYfafNo8IUPlBLhv50WrO3LypRJBKJf5HVMCvfjb24nupBqk2a +iZMFWeg6qZvSqvqU1NHiR2LtTDra3kEAyK1L5gy28+3kLFBCnwCj55mPDTMfwwqj +S6F85ncY3jBgifW+Rfvt8A25YqWMv/u5NdRMmZ/jBnbQOFKuXXL+h+4ntQID7FTv +t6fBWzsGvzuZGgjpnzJMWQb9IwxQair/OCgcuusKgo9z7B9Vg7HfnrcRqrxZXgVl +G9qWphFtvpqij5p6GbibZM2Ct++vrOY1CxR/Q7x828BTUCNiIF64jc2FVQkxyINZ +3VRc3BihQpGtQzUpmvHAJ1ij9ss6+fFikt4hGfKddlCv51t+d2j9Bc9Ke987jIPH +51q03Ydd1GTirnZzarcHtTs6PkdHuVQiMSXkCKNjKL0akXJ2+lOWH+CFzsfIIwl5 +23AXAgMBAAEwDQYJKoZIhvcNAQEMBQADggGBACYMd24RQJEdzLqmG3mQ7zLbCWS3 +grla+4o1qsWtkS+SZDWdDb0rgkB7ZmBoPklhpHPIWe8ijkPzjdIu2y5kopyM3+ey +GkJL3nF7xIleayN052dEhrkWiZcFEM84z2yVflhEdfs42PyQbxlMLf1RFcsLkuYG +yubuoT03+S2xvdfYEOqiSROYsKNMB6ZyXc4N/HtdYjf+fgYXc4vp6vZAT1Y6HAEK +IDppcggfn6y16fczU8g3SLkfnYOzOgJYi2EqcbetsjvNwXHpI3JWeei63rIxv/yh +UctQue5iv9esiLvRsNmAPA5D99YO3gAovdSRNRhTbXYDSa8jkRFFLJ/VPiR9nSYS +w2n+ZYPR3/i0c4gh+lDBIF6QZ49c+sFdAOs0awUM+AeyFyzXpYliF0d/Jh34kLtU +0tmu3HxxU+mBFFElK70NVIdtJ99/D5fJAiP3RHOBpXp2K3mqTgvBxqHpMpNUa0ZO +qKKoZvp6M764d8ccNQJpbCbHsxr9U0rDa/vdxg== -----END CERTIFICATE----- diff --git a/samples/net/wifi/test_certs/rsa3k/client2.pem b/samples/net/wifi/test_certs/rsa3k/client2.pem index 9e815474cd8..16397db7756 100644 --- a/samples/net/wifi/test_certs/rsa3k/client2.pem +++ b/samples/net/wifi/test_certs/rsa3k/client2.pem @@ -1,22 +1,26 @@ -----BEGIN CERTIFICATE----- -MIIDojCCAooCFGZ4UJXBKG70aewILFtsy4mbvaYZMA0GCSqGSIb3DQEBCwUAMIGS -MQswCQYDVQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hl -cmUxFDASBgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRp -ZmljYXRlIEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5v -cmcwHhcNMjQxMDA4MTAyNjI1WhcNMzQxMDA2MTAyNjI1WjCBhzELMAkGA1UEBhMC -RlIxDzANBgNVBAgMBlJhZGl1czESMBAGA1UEBwwJU29tZXdoZXJlMRQwEgYDVQQK -DAtFeGFtcGxlIEluYzEbMBkGA1UEAwwSY2xpZW50LmV4YW1wbGUub3JnMSAwHgYJ -KoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAMu3HXJvi2Q4hQnLL4v/sCyEr5x+ZtBcSi2yETMViaf2EStW -UOs1A1pmCQbO7nadLQcWaX4tzefQCRrs1X4hIQuDIqRPNi6h6G1g5HEtqBWZhvwu -hDbmFiX8/Vtw/P0/9sox2DzyLG0mjJUAYAbKtyC1kQalybVBtrSaazyyAyh6oOuU -chAb7SmmNDsRB959TWM/mp+6yCcFGzCDKNBwlwthB6Uw92d3SfOyXEnZm8rPf0hV -4ICL5iB+xEYBv1LKmznFK/4UAyKpxAygc5fxKVWwlSsq8MrES5ak0n6H71wViaXK -BrH5yh9jEkK9XSeaUwg8C9eOOexyx/5JDY3TTE8CAwEAATANBgkqhkiG9w0BAQsF -AAOCAQEAUNddNiRUlJH0acJJv8ztXNWjNewd17tAk1BBHp6yyGAD8b52p6QbDAdS -xO3WsSc2bqSy599jp4GshO27TMQsBRMfoggCG21Aj6sIs0Hd4shTE4T0GUBEBxC2 -/HReuD+cGIzzKMYlvK8RPSaGLPvPw5SryvmOnjD368V0KCHwT04Z14i4sMxlkd5q -wB7fxTkVla9MR4uWObX62mJykmqT86chScJpldtBpRh8wrEa3Gt9FZoi/eqP0De8 -oCxmCZDrozGTZ4IIaNzchx3Ensh1RQwvvxd6ATerYdUjq4V2TlTksDRdCXtj+uNJ -FnB32sUHiIouxudAsqDf8UL9/99RCw== +MIIEaDCCAtACAQEwDQYJKoZIhvcNAQEMBQAwgYIxCzAJBgNVBAYTAkNOMRIwEAYD +VQQIDAlTb21ld2hlcmUxEjAQBgNVBAcMCVNvbWV3aGVyZTEUMBIGA1UECgwLRXhh +bXBsZSBJbmMxEzARBgNVBAMMCkV4YW1wbGUgQ0ExIDAeBgkqhkiG9w0BCQEWEWFk +bWluQGV4YW1wbGUub3JnMCAXDTA5MTIzMTE2MDM1MVoYDzIxMDkxMjA3MTYwMzUx +WjBvMQswCQYDVQQGEwJDTjESMBAGA1UECAwJU29tZXdoZXJlMRQwEgYDVQQKDAtF +eGFtcGxlIEluYzEVMBMGA1UEAwwMRXhhbXBsZSBVc2VyMR8wHQYJKoZIhvcNAQkB +FhB1c2VyQGV4YW1wbGUub3JnMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKC +AYEAsqyXcPcRaQ3t/YgWwKDHaUT2Ndw6XF8sEEhWJ54QhrbXUSmoTk0okMz/ohtb +HM1dFsMBZZ6oC9iYfafNo8IUPlBLhv50WrO3LypRJBKJf5HVMCvfjb24nupBqk2a +iZMFWeg6qZvSqvqU1NHiR2LtTDra3kEAyK1L5gy28+3kLFBCnwCj55mPDTMfwwqj +S6F85ncY3jBgifW+Rfvt8A25YqWMv/u5NdRMmZ/jBnbQOFKuXXL+h+4ntQID7FTv +t6fBWzsGvzuZGgjpnzJMWQb9IwxQair/OCgcuusKgo9z7B9Vg7HfnrcRqrxZXgVl +G9qWphFtvpqij5p6GbibZM2Ct++vrOY1CxR/Q7x828BTUCNiIF64jc2FVQkxyINZ +3VRc3BihQpGtQzUpmvHAJ1ij9ss6+fFikt4hGfKddlCv51t+d2j9Bc9Ke987jIPH +51q03Ydd1GTirnZzarcHtTs6PkdHuVQiMSXkCKNjKL0akXJ2+lOWH+CFzsfIIwl5 +23AXAgMBAAEwDQYJKoZIhvcNAQEMBQADggGBACYMd24RQJEdzLqmG3mQ7zLbCWS3 +grla+4o1qsWtkS+SZDWdDb0rgkB7ZmBoPklhpHPIWe8ijkPzjdIu2y5kopyM3+ey +GkJL3nF7xIleayN052dEhrkWiZcFEM84z2yVflhEdfs42PyQbxlMLf1RFcsLkuYG +yubuoT03+S2xvdfYEOqiSROYsKNMB6ZyXc4N/HtdYjf+fgYXc4vp6vZAT1Y6HAEK +IDppcggfn6y16fczU8g3SLkfnYOzOgJYi2EqcbetsjvNwXHpI3JWeei63rIxv/yh +UctQue5iv9esiLvRsNmAPA5D99YO3gAovdSRNRhTbXYDSa8jkRFFLJ/VPiR9nSYS +w2n+ZYPR3/i0c4gh+lDBIF6QZ49c+sFdAOs0awUM+AeyFyzXpYliF0d/Jh34kLtU +0tmu3HxxU+mBFFElK70NVIdtJ99/D5fJAiP3RHOBpXp2K3mqTgvBxqHpMpNUa0ZO +qKKoZvp6M764d8ccNQJpbCbHsxr9U0rDa/vdxg== -----END CERTIFICATE----- diff --git a/samples/net/wifi/test_certs/rsa3k/server-key.pem b/samples/net/wifi/test_certs/rsa3k/server-key.pem index 5f032cad701..5eb00d2476d 100644 --- a/samples/net/wifi/test_certs/rsa3k/server-key.pem +++ b/samples/net/wifi/test_certs/rsa3k/server-key.pem @@ -1,30 +1,40 @@ ------BEGIN ENCRYPTED PRIVATE KEY----- -MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIjI78fcZSH7oCAggA -MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBDfF676hRrL290F0MgMDZiuBIIE -0Hkz7skRV8Ox0SoX5N8GsOPfN4PS1cLyHgokY6dUhJPU5vUzOn9iSiGQSEzSguQ7 -11mssjRC2T45wB/95VK2EPtRw1f/6VOUR6RJnnGb0PV1Rydp/x5TZ6vzcXpakqly -eljJR/20fIJClsZzhw0iu5la9fkF6G8WYFEkqex5jALSiN4qVLvkiqcTnh5+amem -8+OCKgvgooKD2ids4/0GGfJRQSC6DFf3kuxNl+MMvmDXmz/vrD85ONnyXzKXDA3N -3vRgL/YT6GzwIXb+7/c/tIMpnacxPAdbNOs3DY5ss4xcK68L5PwpM2BljzBa5dGw -Smgf2VRaYRVzmrte5j280QjfrlHRU2cHaxm0GCu2AOTGwMXcSNYMXfDNuxc57oQJ -vHXMeZD4K5lACbhYdZ5lJNFvv29YI7dZ7QOGu6nXlAuhZfbdc/cgT0som7eG8xpT -pERllhQ5ych9sP9nAccN6VUsWgmlF73lbSptBek1ccYkp9LIYCteJUPl2qPcz6zl -A7zrZ54f3Lg0fOm2pCtg+qKBiw1nd3MR/YbRCgyvudyZE2cCN/ZspWqxsavbGYOz -JOfIFNnyAcOYtEv1n1BGLfMa1THW2bDV8XmHVHUtM0k4z250QAmLygWLY2166iUF -qotBkvctKKdulzGdT4nVer1UEKTqcxhDf0dRiHN5spZtFrOee0uGIoQWHt2oecaK -pJovW+i0qO/1DG5spfU2m1bz6jR2u6nxi340oRrMSoe1ELVg3l1/wmM8yzh07GuK -pshzxwqAG/FnaKCvcKGUG2EfnAvOcbMgSa2w3GvyRkcDPn00arvX9nuXj0gkRDBi -eoVMkKKTeeYSGQ4ik+ja3xkgHcxh5W8aoezLvBbmUq206cmhLwfnYMhnvFTs6EBK -E0ENpCHwF/qoVBIzRCijG/eeCuf3a1YkJsWlvEeVrPeOmDFeDft3SSGOzHxE2A/7 -HWmHbWTm7dPOfgsU4zf+HglnBjN3kYU7StyM0EGxmB4lfB2BiWiL/3R13ERHQZfa -oOqa4/hOFXOXfTQk6ufXtBx8L9BemBqh36zbs2xVvIizJKeRMruoRblWZkHhUKR8 -K5GA7FYkU9ZPPP0UPKsO94xzwfbevi+7nWeUZoqcqAUy8Jt5aD2QpvFVbPBBOz17 -PGaubeVn/Ry8swPvkpddtmJ4mgF+3SVctmzY+EE/oN1XS8wa+XeuaThzk89Lvrfa -606nRWrNw3PSKjYoEEtRLhPeJCi9uOVenbOjtclio9mV5Sugwurolczvq8DAGpMG -W4WgALgOWDjQAudiNH5dtcMGkBONbYywkJc7cT2OZFmzkCbchPPWlKGopuaFGAoU -SPj7C9SenHmOWAFRX5jJrOZAuVqkdKN3ShWZUL+cDkOCCQlZ0E31u0m9yozY1MeO -Sx42GtZaSGff37FGYeMZM2ztlutw2zmv2B1g52SBHTjCqQU/ud2Q6/U0kUzjbsdF -/0KQY9wgZRdOvbnA2lBirN1rXzLWPdduOZ5QImfHfvToN+oOlEqVvvWG12DdA4e5 -y4Dumx00lfKEsGutjF3oKgE6jsjwqAwCoYEAFHTtsvA0hKPisQwNHZmpjGARvR56 -yMEmXynKvgyVGvVP2a9VdqBXSpstL24HfDIu+nlyEWGQ ------END ENCRYPTED PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIG/wIBADANBgkqhkiG9w0BAQEFAASCBukwggblAgEAAoIBgQDeiBjDByOPbWRo +bRzULnUJrAGHj4F3JSdu4DCtC5cUsEVxVGoWuZwUJ+eUJiMN9JvIvRsCSSFxoZOg +R8kldU8fsrQ/AFeYMcV+PSeHCwHVe6fM8zL8Iv+ilNy7Jxtslg+dueK2pnQG54Ia +VEKYY+Xhg068PmISaym6D+i4eWFUiqE5bOHWlp53Rz51UbaAy7gxoeDv4oIfwhzI +GjgeFUSGclTNeXD7QcsowW1R3h5lT3MUIxi6FmHiz4laDZVets8vRwvxGKdtSxAu +m/JlbFhvypyp1lJK/DPAlyMC6zuhudZKPxnSByJ/ejczcmUtILbHPp9CGEPs5+26 +vJQjJ4HTGQOefJGQzwj1oHWOkcPft4m2KJn6/GWhJLcUwwRuZB/XblVWJ99Gg6pg +C8ju52O4Akrv96CbzApwGRSxuZ2QugUe3pbiMiclFLiig9qmAmQOKrpTVHshnI1R +KHM2MdyWYQ5uDMN9nrvV6VLS7eDX8dfsaD3ZyywQungSXNADBJUCAwEAAQKCAYEA +tKCr2MJWrvkQY2MN33zGK0+e/jYR1HAoDeuUFyItQ/HArDjk1AVdF088vhgmpBFE +0jANWFGb/+wzNAqQzwLlcslPXUQd1b+wmsNw7kCVAIAauFU/sUGHVqSWdqNLs1wq +2NAlojSCQYhxJoX2eFO+KMq4gjvwxxqNCCYZtINx6XmNXFtxBQnFHvSJUhk9llXF +8SOAvbaSAM1DJ3mAy4pf0PHEu/QzLP8+tJos7iLpcTqIInRKgeHhGoVy69HSyMqA +5lfGvaL1YjbLFEGOqE215uVB2PsRLuZbyHKDeKEdSD8uwyNCOSfg+MJ1sQLG0UNR +wU/1ltXM24MSz6upvse4AfoHTx9zv2Gpc7BfyYj3m6C9cxQjSZ0GJ5XK9drJMkcj +5u1G2o9nSp/48pSfYLGLrIHLf74fh6OdGyK1xplcl/VwdZFzcdBh5CxPnosdtJyM +cdHmprqnODrE3tsPUlZ+MNtalN9stpIKgtjVq8wzMIjxeIrrmw8aGoHyPbWUd1UR +AoHBAPAGwO1ZZ0JflMYk0HmCmAezBLn/SFxrvzXH1V+DXRLOnxE7xh9/7fKmEpL6 +wNzfB5o45kxVFSel9TQxERIEGitDkCTEJThwpHVaZT+DoREKGC7xToosXalsLTUv +9IFrYgeru1g+L9UeXUkrqETi9sBppD3OnWsCJyLZAFatDQrSmLIxPGcMseyMMmDD +bzhUzLmoGzsQC+/GhWmLwylYRlzuZIvEoqwCGhQdP74B1UFcsvHZsufFO1oMxiSp +fifD3wKBwQDtV0qB4Z2oO9LTLpEeCYWif9h4S7ghihIbDhOV8o2lUrTGxr3z93Bz +ojyEoVZVVAO8dj3TiiXQLCtK77fqHMUG76S/stO4kj81Sa9ltVULvEeafxWNfjPL +xjtlAQogXcqLee0EGa9RVFglREEhvsJ7rgSlSy8XIhELdMfLOHAtbFb8OzLZhxzE +MpN8n3aTQvtgwswY5XKWhV6xdp7uPAHfAYlezCwviVat70x7G+eRmKhPtwsKsCib +ST9HnbYVpgsCgcEAuqoV6b/ojPa2Ra4lrwm/3+T53QhKJw3oQxPovYH0pQapMAbT +WnXsABPlSAbYbCzKxcZQW7ajYBUxb2hlRSSJkXHWrLEZ3R3E2Dr3mIBuh0jZa9Bf +6xb7tCGbusxTkz6Gmz6T0Nlz64LUu23HS+NSUGsXvrVrOOgQtYobOE0WYn9LHvEp +b16xFCwnlZcHbMCOAihZHQKqtcsmv+FgYkvzVJxU91lxxOFRlKj2hHb6eP11cJ6E +ArkhIjPi+GoT4SrzAoHAUdHy9J2T3UhqYLU//+vmbuPF+4qW+rD/luYeaGYK4MCH +Y7NmDrHxyVtXo51/BsGE3DajD8cjTAW+EwJbE9FBNyfsUs3SYWHBepxhZB3EKNyK +jr9a7cFhF9HJ7gMSu5+50KWCyRQVtWLvVEGYdoqtvzd5kIY/wKjU2W8z5WIagf5E +aoX5/LWwfA63e5H5rcC8qlndRIPtIejugR1Uoup69qcv9UdLwEOHZ0UEx7gR98Z5 +16lRnCiohwgUUZsUB5iLAoHBAIn1lfEQF4veH1gL/qaxggAMQxyjvG012fpj8mLA +r19y04JkuuR8HrjKQkdqFtCS2J2pnHruOzgSe1SS+Q0MY4smMdai98tWYRfced/r +Vu/LswfH60Fk7DGwh8HKTHVOePPvHXXxb1Ue7H1Wj9ef7+eEvLCSGfz9XXXALhMQ +kEjs8+NuLtijpE/h3mtkidhcDm77CuYSfmca3Glxbp8NnLUv//qLGECtq6bU+uLP +vBFFJRssGjlvHzD+5NCTaWwScg== +-----END PRIVATE KEY----- diff --git a/samples/net/wifi/test_certs/rsa3k/server.pem b/samples/net/wifi/test_certs/rsa3k/server.pem index d8f82faf6dd..f5a5dd36e8f 100644 --- a/samples/net/wifi/test_certs/rsa3k/server.pem +++ b/samples/net/wifi/test_certs/rsa3k/server.pem @@ -1,22 +1,26 @@ -----BEGIN CERTIFICATE----- -MIIDojCCAooCFCPQcj7ej5jhr6/mLlAoLYgfgsYcMA0GCSqGSIb3DQEBCwUAMIGS -MQswCQYDVQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hl -cmUxFDASBgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRp -ZmljYXRlIEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5v -cmcwHhcNMjQxMDA4MTAyNTI5WhcNMzQxMDA2MTAyNTI5WjCBhzELMAkGA1UEBhMC -RlIxDzANBgNVBAgMBlJhZGl1czESMBAGA1UEBwwJU29tZXdoZXJlMRQwEgYDVQQK -DAtFeGFtcGxlIEluYzEbMBkGA1UEAwwSc2VydmVyLmV4YW1wbGUub3JnMSAwHgYJ -KoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBANcE/OPHQK/y1b6UsIktNK7WIZB528HECY7Bz18EGba0uHod -91RbzHSJ1qI3iQyldI1UW/kY5oYjBW3lhLH0BkD/EsqvNYCV+3YzAM3ITtdOdEU9 -CqjgXttehQHfXvc7jQlF8Q2gYPUz2dDLo/gcTkz1d+mCr6nQUjT8Kq/nG54T0NnD -k8udchjUlNaQsvx/WVs3TUYxMbWzQRtpJIbv99rAWq7YgQbkNZnSYC1VgrU/BiuQ -0KrP6rfkxvBCGwIh2JXIL3FV4N8AsgGZvjXQ3zXKXwuPhxWdSmjKWlioVM3mha2A -/1e1gX6nFY/uk46D60XWxcJ6tHGHoafU7EtN3zMCAwEAATANBgkqhkiG9w0BAQsF -AAOCAQEAWwdTMphD0jxLtYO0iq/+fMtq2R96ZUN9wprZ7qg1evUNQjqLR4jKX306 -ZJX5uw+6r5Ve/k368qvcSF/sSfvBm8yd3JcegTl5t8T2/Aks8o3sfyuS0uyJC1rS -zTrd7FmJG9YMosU1BqYobda64MXq7g+6MyrQoZ6fVdPvC6Sox3+a4fl9xjdm4CTY -MsWqBJMe26LptvRIJ01/B6PjVTvsn/fxxj7rHmnJ/j63AIiBntm0vV/85cwYy/4o -HlPH/Qjvn3hZjUlBcveiYat998F+s9gH2usvCkG3kly/n1/667LLCymmCHxtH8ka -7tF3siO1EANureFY8qj6ZvlKeTkZ6g== +MIIEbDCCAtQCAQEwDQYJKoZIhvcNAQEMBQAwgYIxCzAJBgNVBAYTAkNOMRIwEAYD +VQQIDAlTb21ld2hlcmUxEjAQBgNVBAcMCVNvbWV3aGVyZTEUMBIGA1UECgwLRXhh +bXBsZSBJbmMxEzARBgNVBAMMCkV4YW1wbGUgQ0ExIDAeBgkqhkiG9w0BCQEWEWFk +bWluQGV4YW1wbGUub3JnMCAXDTA5MTIzMTE2MDI1MloYDzIxMDkxMjA3MTYwMjUy +WjBzMQswCQYDVQQGEwJDTjESMBAGA1UECAwJU29tZXdoZXJlMRQwEgYDVQQKDAtF +eGFtcGxlIEluYzEXMBUGA1UEAwwORXhhbXBsZSBTZXJ2ZXIxITAfBgkqhkiG9w0B +CQEWEnNlcnZlckBleGFtcGxlLm9yZzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCC +AYoCggGBAN6IGMMHI49tZGhtHNQudQmsAYePgXclJ27gMK0LlxSwRXFUaha5nBQn +55QmIw30m8i9GwJJIXGhk6BHySV1Tx+ytD8AV5gxxX49J4cLAdV7p8zzMvwi/6KU +3LsnG2yWD5254ramdAbnghpUQphj5eGDTrw+YhJrKboP6Lh5YVSKoTls4daWnndH +PnVRtoDLuDGh4O/igh/CHMgaOB4VRIZyVM15cPtByyjBbVHeHmVPcxQjGLoWYeLP +iVoNlV62zy9HC/EYp21LEC6b8mVsWG/KnKnWUkr8M8CXIwLrO6G51ko/GdIHIn96 +NzNyZS0gtsc+n0IYQ+zn7bq8lCMngdMZA558kZDPCPWgdY6Rw9+3ibYomfr8ZaEk +txTDBG5kH9duVVYn30aDqmALyO7nY7gCSu/3oJvMCnAZFLG5nZC6BR7eluIyJyUU +uKKD2qYCZA4qulNUeyGcjVEoczYx3JZhDm4Mw32eu9XpUtLt4Nfx1+xoPdnLLBC6 +eBJc0AMElQIDAQABMA0GCSqGSIb3DQEBDAUAA4IBgQBpKHoroH7HBdH0TVtHl6WF +C52YO02BIAWXK/vCXdWGLs81SIMwbYd0YCp6K/6wG8hWdyJWi12LVuVG7SbTgx7y +odEwO4t5ntNfcmN6SDo8Y8RbROnTDI5ubkUdsOB5AaTI3km5goeapgrwUzXpXWYi +sh2S0FJQAnrx4qdGPShCI1RF1WMV3TGcAj3oc4brnIiMFAecmj99hOkSM7ScJ27X +oqozXYf36UI8AyVUw+jBUlGko6v9jNH3k40zAgcdajfStiOXPDyr+HtL2KcV8WaV +oaXT2Sp5VUr/ghjUfbonWY4RTesXFehVktXw7BuD5koNSlJXbHY5BCUxTBC8EaiJ ++9gVQJcOdb/WhOJV2b24ZHecHckoDGYN4gHQ/lPR67HuibcNTzWYfNWSygGfknCS +HO30Yts7tzVFTudKKbUc4XvdaXpStmFPWGh1oy0hkDnPIiXcRu2WWmyOeRGeJWnb +j62Bz21jBu2V9BXJtRjuI0Uvxfjb/2Mbw95KUDncd34= -----END CERTIFICATE----- diff --git a/samples/net/wifi/test_certs/server-key2.pem b/samples/net/wifi/test_certs/server-key2.pem deleted file mode 100644 index 5f032cad701..00000000000 --- a/samples/net/wifi/test_certs/server-key2.pem +++ /dev/null @@ -1,30 +0,0 @@ ------BEGIN ENCRYPTED PRIVATE KEY----- -MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIjI78fcZSH7oCAggA -MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBDfF676hRrL290F0MgMDZiuBIIE -0Hkz7skRV8Ox0SoX5N8GsOPfN4PS1cLyHgokY6dUhJPU5vUzOn9iSiGQSEzSguQ7 -11mssjRC2T45wB/95VK2EPtRw1f/6VOUR6RJnnGb0PV1Rydp/x5TZ6vzcXpakqly -eljJR/20fIJClsZzhw0iu5la9fkF6G8WYFEkqex5jALSiN4qVLvkiqcTnh5+amem -8+OCKgvgooKD2ids4/0GGfJRQSC6DFf3kuxNl+MMvmDXmz/vrD85ONnyXzKXDA3N -3vRgL/YT6GzwIXb+7/c/tIMpnacxPAdbNOs3DY5ss4xcK68L5PwpM2BljzBa5dGw -Smgf2VRaYRVzmrte5j280QjfrlHRU2cHaxm0GCu2AOTGwMXcSNYMXfDNuxc57oQJ -vHXMeZD4K5lACbhYdZ5lJNFvv29YI7dZ7QOGu6nXlAuhZfbdc/cgT0som7eG8xpT -pERllhQ5ych9sP9nAccN6VUsWgmlF73lbSptBek1ccYkp9LIYCteJUPl2qPcz6zl -A7zrZ54f3Lg0fOm2pCtg+qKBiw1nd3MR/YbRCgyvudyZE2cCN/ZspWqxsavbGYOz -JOfIFNnyAcOYtEv1n1BGLfMa1THW2bDV8XmHVHUtM0k4z250QAmLygWLY2166iUF -qotBkvctKKdulzGdT4nVer1UEKTqcxhDf0dRiHN5spZtFrOee0uGIoQWHt2oecaK -pJovW+i0qO/1DG5spfU2m1bz6jR2u6nxi340oRrMSoe1ELVg3l1/wmM8yzh07GuK -pshzxwqAG/FnaKCvcKGUG2EfnAvOcbMgSa2w3GvyRkcDPn00arvX9nuXj0gkRDBi -eoVMkKKTeeYSGQ4ik+ja3xkgHcxh5W8aoezLvBbmUq206cmhLwfnYMhnvFTs6EBK -E0ENpCHwF/qoVBIzRCijG/eeCuf3a1YkJsWlvEeVrPeOmDFeDft3SSGOzHxE2A/7 -HWmHbWTm7dPOfgsU4zf+HglnBjN3kYU7StyM0EGxmB4lfB2BiWiL/3R13ERHQZfa -oOqa4/hOFXOXfTQk6ufXtBx8L9BemBqh36zbs2xVvIizJKeRMruoRblWZkHhUKR8 -K5GA7FYkU9ZPPP0UPKsO94xzwfbevi+7nWeUZoqcqAUy8Jt5aD2QpvFVbPBBOz17 -PGaubeVn/Ry8swPvkpddtmJ4mgF+3SVctmzY+EE/oN1XS8wa+XeuaThzk89Lvrfa -606nRWrNw3PSKjYoEEtRLhPeJCi9uOVenbOjtclio9mV5Sugwurolczvq8DAGpMG -W4WgALgOWDjQAudiNH5dtcMGkBONbYywkJc7cT2OZFmzkCbchPPWlKGopuaFGAoU -SPj7C9SenHmOWAFRX5jJrOZAuVqkdKN3ShWZUL+cDkOCCQlZ0E31u0m9yozY1MeO -Sx42GtZaSGff37FGYeMZM2ztlutw2zmv2B1g52SBHTjCqQU/ud2Q6/U0kUzjbsdF -/0KQY9wgZRdOvbnA2lBirN1rXzLWPdduOZ5QImfHfvToN+oOlEqVvvWG12DdA4e5 -y4Dumx00lfKEsGutjF3oKgE6jsjwqAwCoYEAFHTtsvA0hKPisQwNHZmpjGARvR56 -yMEmXynKvgyVGvVP2a9VdqBXSpstL24HfDIu+nlyEWGQ ------END ENCRYPTED PRIVATE KEY----- diff --git a/samples/net/wifi/test_certs/server2.pem b/samples/net/wifi/test_certs/server2.pem deleted file mode 100644 index d8f82faf6dd..00000000000 --- a/samples/net/wifi/test_certs/server2.pem +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDojCCAooCFCPQcj7ej5jhr6/mLlAoLYgfgsYcMA0GCSqGSIb3DQEBCwUAMIGS -MQswCQYDVQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hl -cmUxFDASBgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRp -ZmljYXRlIEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5v -cmcwHhcNMjQxMDA4MTAyNTI5WhcNMzQxMDA2MTAyNTI5WjCBhzELMAkGA1UEBhMC -RlIxDzANBgNVBAgMBlJhZGl1czESMBAGA1UEBwwJU29tZXdoZXJlMRQwEgYDVQQK -DAtFeGFtcGxlIEluYzEbMBkGA1UEAwwSc2VydmVyLmV4YW1wbGUub3JnMSAwHgYJ -KoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBANcE/OPHQK/y1b6UsIktNK7WIZB528HECY7Bz18EGba0uHod -91RbzHSJ1qI3iQyldI1UW/kY5oYjBW3lhLH0BkD/EsqvNYCV+3YzAM3ITtdOdEU9 -CqjgXttehQHfXvc7jQlF8Q2gYPUz2dDLo/gcTkz1d+mCr6nQUjT8Kq/nG54T0NnD -k8udchjUlNaQsvx/WVs3TUYxMbWzQRtpJIbv99rAWq7YgQbkNZnSYC1VgrU/BiuQ -0KrP6rfkxvBCGwIh2JXIL3FV4N8AsgGZvjXQ3zXKXwuPhxWdSmjKWlioVM3mha2A -/1e1gX6nFY/uk46D60XWxcJ6tHGHoafU7EtN3zMCAwEAATANBgkqhkiG9w0BAQsF -AAOCAQEAWwdTMphD0jxLtYO0iq/+fMtq2R96ZUN9wprZ7qg1evUNQjqLR4jKX306 -ZJX5uw+6r5Ve/k368qvcSF/sSfvBm8yd3JcegTl5t8T2/Aks8o3sfyuS0uyJC1rS -zTrd7FmJG9YMosU1BqYobda64MXq7g+6MyrQoZ6fVdPvC6Sox3+a4fl9xjdm4CTY -MsWqBJMe26LptvRIJ01/B6PjVTvsn/fxxj7rHmnJ/j63AIiBntm0vV/85cwYy/4o -HlPH/Qjvn3hZjUlBcveiYat998F+s9gH2usvCkG3kly/n1/667LLCymmCHxtH8ka -7tF3siO1EANureFY8qj6ZvlKeTkZ6g== ------END CERTIFICATE----- From c69c7ae8a1d58e62efaf7b984ba2fece4f42f5f0 Mon Sep 17 00:00:00 2001 From: Ravi Dondaputi Date: Mon, 14 Jul 2025 17:05:09 +0530 Subject: [PATCH 02/37] [nrf fromlist] snippets: wifi-enterprise: Increase MBEDTLS heap size With NRF security, higher heap requirement is seen for operating with RSA-3072 based certificates. Add a NRF SoC specific conf in snippets to handle this. Upstream PR #: 93096 Signed-off-by: Ravi Dondaputi --- snippets/wifi-enterprise/snippet.yml | 5 +++++ snippets/wifi-enterprise/wifi-enterprise_nrf.conf | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 snippets/wifi-enterprise/wifi-enterprise_nrf.conf diff --git a/snippets/wifi-enterprise/snippet.yml b/snippets/wifi-enterprise/snippet.yml index 6a4f73d38b4..aedb627ce08 100644 --- a/snippets/wifi-enterprise/snippet.yml +++ b/snippets/wifi-enterprise/snippet.yml @@ -1,3 +1,8 @@ name: wifi-enterprise append: EXTRA_CONF_FILE: wifi-enterprise.conf + +boards: + /.*/nrf.*/cpuapp/: + append: + EXTRA_CONF_FILE: wifi-enterprise_nrf.conf diff --git a/snippets/wifi-enterprise/wifi-enterprise_nrf.conf b/snippets/wifi-enterprise/wifi-enterprise_nrf.conf new file mode 100644 index 00000000000..a52390c1687 --- /dev/null +++ b/snippets/wifi-enterprise/wifi-enterprise_nrf.conf @@ -0,0 +1,3 @@ +# For TLS and X.509 processing MbedTLS needs large heap size and using separate heap +# for MbedTLS gives us more control over the heap size. +CONFIG_MBEDTLS_HEAP_SIZE=75000 From 2ae135b84b7ac2152f312f4599cb97d23138ac67 Mon Sep 17 00:00:00 2001 From: Ravi Dondaputi Date: Mon, 14 Jul 2025 17:14:29 +0530 Subject: [PATCH 03/37] [nrf fromlist] samples: net: wifi: Add AES-only certificates Add AES-only cipher certificates. Useful for systems which have only AES support and DES is not enabled. Upstream PR #: 93096 Signed-off-by: Ravi Dondaputi --- .../net/wifi/test_certs/rsa2k_no_des/ca.pem | 24 +++++++++++++++ .../net/wifi/test_certs/rsa2k_no_des/ca2.pem | 24 +++++++++++++++ .../test_certs/rsa2k_no_des/client-key.pem | 30 +++++++++++++++++++ .../test_certs/rsa2k_no_des/client-key2.pem | 30 +++++++++++++++++++ .../wifi/test_certs/rsa2k_no_des/client.pem | 22 ++++++++++++++ .../wifi/test_certs/rsa2k_no_des/client2.pem | 22 ++++++++++++++ .../test_certs/rsa2k_no_des/server-key.pem | 30 +++++++++++++++++++ .../wifi/test_certs/rsa2k_no_des/server.pem | 22 ++++++++++++++ 8 files changed, 204 insertions(+) create mode 100644 samples/net/wifi/test_certs/rsa2k_no_des/ca.pem create mode 100644 samples/net/wifi/test_certs/rsa2k_no_des/ca2.pem create mode 100644 samples/net/wifi/test_certs/rsa2k_no_des/client-key.pem create mode 100644 samples/net/wifi/test_certs/rsa2k_no_des/client-key2.pem create mode 100644 samples/net/wifi/test_certs/rsa2k_no_des/client.pem create mode 100644 samples/net/wifi/test_certs/rsa2k_no_des/client2.pem create mode 100644 samples/net/wifi/test_certs/rsa2k_no_des/server-key.pem create mode 100644 samples/net/wifi/test_certs/rsa2k_no_des/server.pem diff --git a/samples/net/wifi/test_certs/rsa2k_no_des/ca.pem b/samples/net/wifi/test_certs/rsa2k_no_des/ca.pem new file mode 100644 index 00000000000..2b872d2e30d --- /dev/null +++ b/samples/net/wifi/test_certs/rsa2k_no_des/ca.pem @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIIEBzCCAu+gAwIBAgIUK8+d+8IOzeX+DP3VSvdF3lHiCdcwDQYJKoZIhvcNAQEL +BQAwgZIxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIDAZSYWRpdXMxEjAQBgNVBAcMCVNv +bWV3aGVyZTEUMBIGA1UECgwLRXhhbXBsZSBJbmMxJjAkBgNVBAMMHUV4YW1wbGUg +Q2VydGlmaWNhdGUgQXV0aG9yaXR5MSAwHgYJKoZIhvcNAQkBFhFhZG1pbkBleGFt +cGxlLm9yZzAeFw0yNDEwMDgxMDI0MDZaFw0zNDEwMDYxMDI0MDZaMIGSMQswCQYD +VQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hlcmUxFDAS +BgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRpZmljYXRl +IEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5vcmcwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWKIwjdRIp9IrpZELN/ZsN13Xj +qQI6n086PNJ7BZfLi0+tD164rmxFk2eukNNksFCPhvMkqUxouGhc4mJjeivvrZxR +oT3cblOQIkkdEci6iTKC2E1a20W/Ur7cTXoIsnKwjiUjXk+cujkrZu4fcHX+O4vy +wTd5tEbhmifT/4u5nN8U2vBcEZqkGHOCp30VZSxtlGwqp4lc+tVziF3uFViW9MXk +3bVt+s1E7ztwG7+WBgVlLYe3CNSWkMxfyYBafH/l7iep6AFjoTn1z3AAjYi7IUNN +0JkW8MTgafRQIu4QsV5luq/Tiar2vwAm/GNgUJdSzUKARsfQzb/XTIgnLQqtAgMB +AAGjUzBRMB0GA1UdDgQWBBSijSC03/Thi6EOdM91V33zsbQpgzAfBgNVHSMEGDAW +gBSijSC03/Thi6EOdM91V33zsbQpgzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 +DQEBCwUAA4IBAQAvKEfmCDoMTKC6bfP6DSs+MSAGc5tCr6w6cz2AKNJ2fOMhkq55 +JF47oBBGm9SdTB6Jqo6c109Ps69/+LMtEEGwvzL0RL0WAuTYGo6sudm9hj/jDHZh +pAqi/2BQQeVgTa6oW0jtNPFe+/cobXo9TJ7wECGrhvVbmfl5ZPc0YVOIjjR0/LhL +q7lqPAlJ5vx0WvsX+QReN97we8vD0x1D3mCySJTi3Irh+grE0yJOSN2fa7cyqi9+ +vSiNUB1eUgQwrO+S8ZazYNvAZXC2Xf4WB4SOifJD73pYPAdwOejc0FA+zfEKa/6/ +vTUs8cIhlmDWO+BEoc9wygMKMmhT5s7/T5Bv +-----END CERTIFICATE----- diff --git a/samples/net/wifi/test_certs/rsa2k_no_des/ca2.pem b/samples/net/wifi/test_certs/rsa2k_no_des/ca2.pem new file mode 100644 index 00000000000..2b872d2e30d --- /dev/null +++ b/samples/net/wifi/test_certs/rsa2k_no_des/ca2.pem @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIIEBzCCAu+gAwIBAgIUK8+d+8IOzeX+DP3VSvdF3lHiCdcwDQYJKoZIhvcNAQEL +BQAwgZIxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIDAZSYWRpdXMxEjAQBgNVBAcMCVNv +bWV3aGVyZTEUMBIGA1UECgwLRXhhbXBsZSBJbmMxJjAkBgNVBAMMHUV4YW1wbGUg +Q2VydGlmaWNhdGUgQXV0aG9yaXR5MSAwHgYJKoZIhvcNAQkBFhFhZG1pbkBleGFt +cGxlLm9yZzAeFw0yNDEwMDgxMDI0MDZaFw0zNDEwMDYxMDI0MDZaMIGSMQswCQYD +VQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hlcmUxFDAS +BgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRpZmljYXRl +IEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5vcmcwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWKIwjdRIp9IrpZELN/ZsN13Xj +qQI6n086PNJ7BZfLi0+tD164rmxFk2eukNNksFCPhvMkqUxouGhc4mJjeivvrZxR +oT3cblOQIkkdEci6iTKC2E1a20W/Ur7cTXoIsnKwjiUjXk+cujkrZu4fcHX+O4vy +wTd5tEbhmifT/4u5nN8U2vBcEZqkGHOCp30VZSxtlGwqp4lc+tVziF3uFViW9MXk +3bVt+s1E7ztwG7+WBgVlLYe3CNSWkMxfyYBafH/l7iep6AFjoTn1z3AAjYi7IUNN +0JkW8MTgafRQIu4QsV5luq/Tiar2vwAm/GNgUJdSzUKARsfQzb/XTIgnLQqtAgMB +AAGjUzBRMB0GA1UdDgQWBBSijSC03/Thi6EOdM91V33zsbQpgzAfBgNVHSMEGDAW +gBSijSC03/Thi6EOdM91V33zsbQpgzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 +DQEBCwUAA4IBAQAvKEfmCDoMTKC6bfP6DSs+MSAGc5tCr6w6cz2AKNJ2fOMhkq55 +JF47oBBGm9SdTB6Jqo6c109Ps69/+LMtEEGwvzL0RL0WAuTYGo6sudm9hj/jDHZh +pAqi/2BQQeVgTa6oW0jtNPFe+/cobXo9TJ7wECGrhvVbmfl5ZPc0YVOIjjR0/LhL +q7lqPAlJ5vx0WvsX+QReN97we8vD0x1D3mCySJTi3Irh+grE0yJOSN2fa7cyqi9+ +vSiNUB1eUgQwrO+S8ZazYNvAZXC2Xf4WB4SOifJD73pYPAdwOejc0FA+zfEKa/6/ +vTUs8cIhlmDWO+BEoc9wygMKMmhT5s7/T5Bv +-----END CERTIFICATE----- diff --git a/samples/net/wifi/test_certs/rsa2k_no_des/client-key.pem b/samples/net/wifi/test_certs/rsa2k_no_des/client-key.pem new file mode 100644 index 00000000000..6ab70da2452 --- /dev/null +++ b/samples/net/wifi/test_certs/rsa2k_no_des/client-key.pem @@ -0,0 +1,30 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQILVdWyEWhWU0CAggA +MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBDMFReIusCg7gSkoUQZV2flBIIE +0BIFQH7+0dc7wHIQQ1y0ao90rrK3ExtCABH6xp4OAHUNPR1549zSEak/9Ba6WLBp +YE0m/lpLz4oUJE4Kd3rg4ekSZk4mapZoW7g5ax4qAEblmM6rqmyjiU0Q6tsAb8n1 +x+RyjUILlgTH1HDmeNA53QNMCw++xIMIJPN29SvFN6vkU2Fd2f74/TuZRSaCEPLO +LKtNMwWCMTrlv0UewEryOvZegPQuEF/Ewmmw/9l5VfkPp6zAtZKzWsfk4jUo5tv2 +5dPoHR+RKjNNVwetnCq59QYMS2My6KLqX4Vzqnbu8K1nlbm85ZHnvLGi8cDn8EB7 +QtRL+Ev5IwcwYJgV5AMojouJLQdR655jeITWI1Gsohz28YG8c1qYX4ZN6albSd1G +fd1tMOWkeu4uEzJ7ijLDfnCzrklnLuAZx8yLzyrOa7i9AwwJmdgUEdbWWsru3L6C +zDJ45rpA0FobdlTem4kpoE9yiyHkIhf3wmI3X+0aodC11pdbHP260KIC8E1K9FUh +s/IoEQCYrBp8UltNTlezwq/E5uOuIu4EpfjEgH1Z3+hSDbnmMAXNX4DbL234x7iy +3Y256DtOeHSElnRz3kDnZVNtM1Kd5fgEYJ1ptYRPYaWyJka7/hC/0UObuM9w+QeO +OlG0QgumQFloyhDa9anPBK4sYJp4g1fK8golUDW4AdpFPNOJvvgOvQUzhPpHjr+N +lpZ75Y6I3JSSKJ/UMlSCOqjak8oZtMtJNMfbx1lgwwDtgjDSJvSdl735gI9VmXXH +qnlGEtyiQ7k1Z1a4HxiY2/CiDHvkymClir/Ik8gt+wmyT9c/9BcehLRf6PxMsDVy +PCkty1LlzN+5tSZJtJnOiTlgsRn/w49Ohp74ITheSdb30/6PnFI+o8rcJHmrjN4d +t3z/bCyWAeC8mS7m0wtXlyBeG9xvdyT8dDHAFOnqxX30dEwEbjNj58kWGAgRf9i3 +HlOAP8yRy7LAV7A4HEPnEzXBxYpsROUw/8d3Jtmr2nAp2hfKP339DYZPHZpRLjJr +WQlJasHHLxHKKjSsuM06WsCO+Tt2FTSgGJuU6nFVK75fssmmJYzj9qMHVM6YSjfY +sT0ZIWRgO9NLFx5O3QxY1wgMLhhv1FREy9NVnMU0W3A1u0F7dwHywZGha2IqEXgu ++UyWIJnePMvluV/s66AN/OpIxKU48c0B4l7XzXkHHd43tDUG3ztfRuPbWCHipuRO +eo+vHGD01iBLSE1ZhrYLHKQhJvIKx/PIEaqJHP/Vy35AD/2/GH09TiIBHzX9aXie +TiKFs30FQv7SpLNHNE7jUxsYGNUbYa70S/Vgn3wkKATcXpCc749XQV4OUbFoqkDm +vuZOjkIOlm/OtZkUuDWmk96mgoVG/gWSEJPynJHUpmWdu/BCdYOgxBk/bmPa1leS +Z5NbO0fGMnNhDMXYA5rqmVzABcNSYhgYw5aciWpBlgYHEYrPxZvCxWftIyb24oEk +wdHEaFbIYbOoVZqo7Ym2hrvVrJb8Qdukf1BmUgfSSSc7BFoSrBUO4SNFtZI55NOB +OM4rnkqfoYR0IpnxzPIpxpsWljG9QsgnTaffStDgIGXiAtBWJFy+44f1IS4EoC6B ++we1Q6atPwYSyPtG8mn4Ce0BNxLDUoFDLMQ7Bt8QBMeX +-----END ENCRYPTED PRIVATE KEY----- diff --git a/samples/net/wifi/test_certs/rsa2k_no_des/client-key2.pem b/samples/net/wifi/test_certs/rsa2k_no_des/client-key2.pem new file mode 100644 index 00000000000..6ab70da2452 --- /dev/null +++ b/samples/net/wifi/test_certs/rsa2k_no_des/client-key2.pem @@ -0,0 +1,30 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQILVdWyEWhWU0CAggA +MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBDMFReIusCg7gSkoUQZV2flBIIE +0BIFQH7+0dc7wHIQQ1y0ao90rrK3ExtCABH6xp4OAHUNPR1549zSEak/9Ba6WLBp +YE0m/lpLz4oUJE4Kd3rg4ekSZk4mapZoW7g5ax4qAEblmM6rqmyjiU0Q6tsAb8n1 +x+RyjUILlgTH1HDmeNA53QNMCw++xIMIJPN29SvFN6vkU2Fd2f74/TuZRSaCEPLO +LKtNMwWCMTrlv0UewEryOvZegPQuEF/Ewmmw/9l5VfkPp6zAtZKzWsfk4jUo5tv2 +5dPoHR+RKjNNVwetnCq59QYMS2My6KLqX4Vzqnbu8K1nlbm85ZHnvLGi8cDn8EB7 +QtRL+Ev5IwcwYJgV5AMojouJLQdR655jeITWI1Gsohz28YG8c1qYX4ZN6albSd1G +fd1tMOWkeu4uEzJ7ijLDfnCzrklnLuAZx8yLzyrOa7i9AwwJmdgUEdbWWsru3L6C +zDJ45rpA0FobdlTem4kpoE9yiyHkIhf3wmI3X+0aodC11pdbHP260KIC8E1K9FUh +s/IoEQCYrBp8UltNTlezwq/E5uOuIu4EpfjEgH1Z3+hSDbnmMAXNX4DbL234x7iy +3Y256DtOeHSElnRz3kDnZVNtM1Kd5fgEYJ1ptYRPYaWyJka7/hC/0UObuM9w+QeO +OlG0QgumQFloyhDa9anPBK4sYJp4g1fK8golUDW4AdpFPNOJvvgOvQUzhPpHjr+N +lpZ75Y6I3JSSKJ/UMlSCOqjak8oZtMtJNMfbx1lgwwDtgjDSJvSdl735gI9VmXXH +qnlGEtyiQ7k1Z1a4HxiY2/CiDHvkymClir/Ik8gt+wmyT9c/9BcehLRf6PxMsDVy +PCkty1LlzN+5tSZJtJnOiTlgsRn/w49Ohp74ITheSdb30/6PnFI+o8rcJHmrjN4d +t3z/bCyWAeC8mS7m0wtXlyBeG9xvdyT8dDHAFOnqxX30dEwEbjNj58kWGAgRf9i3 +HlOAP8yRy7LAV7A4HEPnEzXBxYpsROUw/8d3Jtmr2nAp2hfKP339DYZPHZpRLjJr +WQlJasHHLxHKKjSsuM06WsCO+Tt2FTSgGJuU6nFVK75fssmmJYzj9qMHVM6YSjfY +sT0ZIWRgO9NLFx5O3QxY1wgMLhhv1FREy9NVnMU0W3A1u0F7dwHywZGha2IqEXgu ++UyWIJnePMvluV/s66AN/OpIxKU48c0B4l7XzXkHHd43tDUG3ztfRuPbWCHipuRO +eo+vHGD01iBLSE1ZhrYLHKQhJvIKx/PIEaqJHP/Vy35AD/2/GH09TiIBHzX9aXie +TiKFs30FQv7SpLNHNE7jUxsYGNUbYa70S/Vgn3wkKATcXpCc749XQV4OUbFoqkDm +vuZOjkIOlm/OtZkUuDWmk96mgoVG/gWSEJPynJHUpmWdu/BCdYOgxBk/bmPa1leS +Z5NbO0fGMnNhDMXYA5rqmVzABcNSYhgYw5aciWpBlgYHEYrPxZvCxWftIyb24oEk +wdHEaFbIYbOoVZqo7Ym2hrvVrJb8Qdukf1BmUgfSSSc7BFoSrBUO4SNFtZI55NOB +OM4rnkqfoYR0IpnxzPIpxpsWljG9QsgnTaffStDgIGXiAtBWJFy+44f1IS4EoC6B ++we1Q6atPwYSyPtG8mn4Ce0BNxLDUoFDLMQ7Bt8QBMeX +-----END ENCRYPTED PRIVATE KEY----- diff --git a/samples/net/wifi/test_certs/rsa2k_no_des/client.pem b/samples/net/wifi/test_certs/rsa2k_no_des/client.pem new file mode 100644 index 00000000000..9e815474cd8 --- /dev/null +++ b/samples/net/wifi/test_certs/rsa2k_no_des/client.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDojCCAooCFGZ4UJXBKG70aewILFtsy4mbvaYZMA0GCSqGSIb3DQEBCwUAMIGS +MQswCQYDVQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hl +cmUxFDASBgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRp +ZmljYXRlIEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5v +cmcwHhcNMjQxMDA4MTAyNjI1WhcNMzQxMDA2MTAyNjI1WjCBhzELMAkGA1UEBhMC +RlIxDzANBgNVBAgMBlJhZGl1czESMBAGA1UEBwwJU29tZXdoZXJlMRQwEgYDVQQK +DAtFeGFtcGxlIEluYzEbMBkGA1UEAwwSY2xpZW50LmV4YW1wbGUub3JnMSAwHgYJ +KoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAMu3HXJvi2Q4hQnLL4v/sCyEr5x+ZtBcSi2yETMViaf2EStW +UOs1A1pmCQbO7nadLQcWaX4tzefQCRrs1X4hIQuDIqRPNi6h6G1g5HEtqBWZhvwu +hDbmFiX8/Vtw/P0/9sox2DzyLG0mjJUAYAbKtyC1kQalybVBtrSaazyyAyh6oOuU +chAb7SmmNDsRB959TWM/mp+6yCcFGzCDKNBwlwthB6Uw92d3SfOyXEnZm8rPf0hV +4ICL5iB+xEYBv1LKmznFK/4UAyKpxAygc5fxKVWwlSsq8MrES5ak0n6H71wViaXK +BrH5yh9jEkK9XSeaUwg8C9eOOexyx/5JDY3TTE8CAwEAATANBgkqhkiG9w0BAQsF +AAOCAQEAUNddNiRUlJH0acJJv8ztXNWjNewd17tAk1BBHp6yyGAD8b52p6QbDAdS +xO3WsSc2bqSy599jp4GshO27TMQsBRMfoggCG21Aj6sIs0Hd4shTE4T0GUBEBxC2 +/HReuD+cGIzzKMYlvK8RPSaGLPvPw5SryvmOnjD368V0KCHwT04Z14i4sMxlkd5q +wB7fxTkVla9MR4uWObX62mJykmqT86chScJpldtBpRh8wrEa3Gt9FZoi/eqP0De8 +oCxmCZDrozGTZ4IIaNzchx3Ensh1RQwvvxd6ATerYdUjq4V2TlTksDRdCXtj+uNJ +FnB32sUHiIouxudAsqDf8UL9/99RCw== +-----END CERTIFICATE----- diff --git a/samples/net/wifi/test_certs/rsa2k_no_des/client2.pem b/samples/net/wifi/test_certs/rsa2k_no_des/client2.pem new file mode 100644 index 00000000000..9e815474cd8 --- /dev/null +++ b/samples/net/wifi/test_certs/rsa2k_no_des/client2.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDojCCAooCFGZ4UJXBKG70aewILFtsy4mbvaYZMA0GCSqGSIb3DQEBCwUAMIGS +MQswCQYDVQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hl +cmUxFDASBgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRp +ZmljYXRlIEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5v +cmcwHhcNMjQxMDA4MTAyNjI1WhcNMzQxMDA2MTAyNjI1WjCBhzELMAkGA1UEBhMC +RlIxDzANBgNVBAgMBlJhZGl1czESMBAGA1UEBwwJU29tZXdoZXJlMRQwEgYDVQQK +DAtFeGFtcGxlIEluYzEbMBkGA1UEAwwSY2xpZW50LmV4YW1wbGUub3JnMSAwHgYJ +KoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAMu3HXJvi2Q4hQnLL4v/sCyEr5x+ZtBcSi2yETMViaf2EStW +UOs1A1pmCQbO7nadLQcWaX4tzefQCRrs1X4hIQuDIqRPNi6h6G1g5HEtqBWZhvwu +hDbmFiX8/Vtw/P0/9sox2DzyLG0mjJUAYAbKtyC1kQalybVBtrSaazyyAyh6oOuU +chAb7SmmNDsRB959TWM/mp+6yCcFGzCDKNBwlwthB6Uw92d3SfOyXEnZm8rPf0hV +4ICL5iB+xEYBv1LKmznFK/4UAyKpxAygc5fxKVWwlSsq8MrES5ak0n6H71wViaXK +BrH5yh9jEkK9XSeaUwg8C9eOOexyx/5JDY3TTE8CAwEAATANBgkqhkiG9w0BAQsF +AAOCAQEAUNddNiRUlJH0acJJv8ztXNWjNewd17tAk1BBHp6yyGAD8b52p6QbDAdS +xO3WsSc2bqSy599jp4GshO27TMQsBRMfoggCG21Aj6sIs0Hd4shTE4T0GUBEBxC2 +/HReuD+cGIzzKMYlvK8RPSaGLPvPw5SryvmOnjD368V0KCHwT04Z14i4sMxlkd5q +wB7fxTkVla9MR4uWObX62mJykmqT86chScJpldtBpRh8wrEa3Gt9FZoi/eqP0De8 +oCxmCZDrozGTZ4IIaNzchx3Ensh1RQwvvxd6ATerYdUjq4V2TlTksDRdCXtj+uNJ +FnB32sUHiIouxudAsqDf8UL9/99RCw== +-----END CERTIFICATE----- diff --git a/samples/net/wifi/test_certs/rsa2k_no_des/server-key.pem b/samples/net/wifi/test_certs/rsa2k_no_des/server-key.pem new file mode 100644 index 00000000000..5f032cad701 --- /dev/null +++ b/samples/net/wifi/test_certs/rsa2k_no_des/server-key.pem @@ -0,0 +1,30 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIIFLTBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIjI78fcZSH7oCAggA +MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBDfF676hRrL290F0MgMDZiuBIIE +0Hkz7skRV8Ox0SoX5N8GsOPfN4PS1cLyHgokY6dUhJPU5vUzOn9iSiGQSEzSguQ7 +11mssjRC2T45wB/95VK2EPtRw1f/6VOUR6RJnnGb0PV1Rydp/x5TZ6vzcXpakqly +eljJR/20fIJClsZzhw0iu5la9fkF6G8WYFEkqex5jALSiN4qVLvkiqcTnh5+amem +8+OCKgvgooKD2ids4/0GGfJRQSC6DFf3kuxNl+MMvmDXmz/vrD85ONnyXzKXDA3N +3vRgL/YT6GzwIXb+7/c/tIMpnacxPAdbNOs3DY5ss4xcK68L5PwpM2BljzBa5dGw +Smgf2VRaYRVzmrte5j280QjfrlHRU2cHaxm0GCu2AOTGwMXcSNYMXfDNuxc57oQJ +vHXMeZD4K5lACbhYdZ5lJNFvv29YI7dZ7QOGu6nXlAuhZfbdc/cgT0som7eG8xpT +pERllhQ5ych9sP9nAccN6VUsWgmlF73lbSptBek1ccYkp9LIYCteJUPl2qPcz6zl +A7zrZ54f3Lg0fOm2pCtg+qKBiw1nd3MR/YbRCgyvudyZE2cCN/ZspWqxsavbGYOz +JOfIFNnyAcOYtEv1n1BGLfMa1THW2bDV8XmHVHUtM0k4z250QAmLygWLY2166iUF +qotBkvctKKdulzGdT4nVer1UEKTqcxhDf0dRiHN5spZtFrOee0uGIoQWHt2oecaK +pJovW+i0qO/1DG5spfU2m1bz6jR2u6nxi340oRrMSoe1ELVg3l1/wmM8yzh07GuK +pshzxwqAG/FnaKCvcKGUG2EfnAvOcbMgSa2w3GvyRkcDPn00arvX9nuXj0gkRDBi +eoVMkKKTeeYSGQ4ik+ja3xkgHcxh5W8aoezLvBbmUq206cmhLwfnYMhnvFTs6EBK +E0ENpCHwF/qoVBIzRCijG/eeCuf3a1YkJsWlvEeVrPeOmDFeDft3SSGOzHxE2A/7 +HWmHbWTm7dPOfgsU4zf+HglnBjN3kYU7StyM0EGxmB4lfB2BiWiL/3R13ERHQZfa +oOqa4/hOFXOXfTQk6ufXtBx8L9BemBqh36zbs2xVvIizJKeRMruoRblWZkHhUKR8 +K5GA7FYkU9ZPPP0UPKsO94xzwfbevi+7nWeUZoqcqAUy8Jt5aD2QpvFVbPBBOz17 +PGaubeVn/Ry8swPvkpddtmJ4mgF+3SVctmzY+EE/oN1XS8wa+XeuaThzk89Lvrfa +606nRWrNw3PSKjYoEEtRLhPeJCi9uOVenbOjtclio9mV5Sugwurolczvq8DAGpMG +W4WgALgOWDjQAudiNH5dtcMGkBONbYywkJc7cT2OZFmzkCbchPPWlKGopuaFGAoU +SPj7C9SenHmOWAFRX5jJrOZAuVqkdKN3ShWZUL+cDkOCCQlZ0E31u0m9yozY1MeO +Sx42GtZaSGff37FGYeMZM2ztlutw2zmv2B1g52SBHTjCqQU/ud2Q6/U0kUzjbsdF +/0KQY9wgZRdOvbnA2lBirN1rXzLWPdduOZ5QImfHfvToN+oOlEqVvvWG12DdA4e5 +y4Dumx00lfKEsGutjF3oKgE6jsjwqAwCoYEAFHTtsvA0hKPisQwNHZmpjGARvR56 +yMEmXynKvgyVGvVP2a9VdqBXSpstL24HfDIu+nlyEWGQ +-----END ENCRYPTED PRIVATE KEY----- diff --git a/samples/net/wifi/test_certs/rsa2k_no_des/server.pem b/samples/net/wifi/test_certs/rsa2k_no_des/server.pem new file mode 100644 index 00000000000..d8f82faf6dd --- /dev/null +++ b/samples/net/wifi/test_certs/rsa2k_no_des/server.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDojCCAooCFCPQcj7ej5jhr6/mLlAoLYgfgsYcMA0GCSqGSIb3DQEBCwUAMIGS +MQswCQYDVQQGEwJGUjEPMA0GA1UECAwGUmFkaXVzMRIwEAYDVQQHDAlTb21ld2hl +cmUxFDASBgNVBAoMC0V4YW1wbGUgSW5jMSYwJAYDVQQDDB1FeGFtcGxlIENlcnRp +ZmljYXRlIEF1dGhvcml0eTEgMB4GCSqGSIb3DQEJARYRYWRtaW5AZXhhbXBsZS5v +cmcwHhcNMjQxMDA4MTAyNTI5WhcNMzQxMDA2MTAyNTI5WjCBhzELMAkGA1UEBhMC +RlIxDzANBgNVBAgMBlJhZGl1czESMBAGA1UEBwwJU29tZXdoZXJlMRQwEgYDVQQK +DAtFeGFtcGxlIEluYzEbMBkGA1UEAwwSc2VydmVyLmV4YW1wbGUub3JnMSAwHgYJ +KoZIhvcNAQkBFhFhZG1pbkBleGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBANcE/OPHQK/y1b6UsIktNK7WIZB528HECY7Bz18EGba0uHod +91RbzHSJ1qI3iQyldI1UW/kY5oYjBW3lhLH0BkD/EsqvNYCV+3YzAM3ITtdOdEU9 +CqjgXttehQHfXvc7jQlF8Q2gYPUz2dDLo/gcTkz1d+mCr6nQUjT8Kq/nG54T0NnD +k8udchjUlNaQsvx/WVs3TUYxMbWzQRtpJIbv99rAWq7YgQbkNZnSYC1VgrU/BiuQ +0KrP6rfkxvBCGwIh2JXIL3FV4N8AsgGZvjXQ3zXKXwuPhxWdSmjKWlioVM3mha2A +/1e1gX6nFY/uk46D60XWxcJ6tHGHoafU7EtN3zMCAwEAATANBgkqhkiG9w0BAQsF +AAOCAQEAWwdTMphD0jxLtYO0iq/+fMtq2R96ZUN9wprZ7qg1evUNQjqLR4jKX306 +ZJX5uw+6r5Ve/k368qvcSF/sSfvBm8yd3JcegTl5t8T2/Aks8o3sfyuS0uyJC1rS +zTrd7FmJG9YMosU1BqYobda64MXq7g+6MyrQoZ6fVdPvC6Sox3+a4fl9xjdm4CTY +MsWqBJMe26LptvRIJ01/B6PjVTvsn/fxxj7rHmnJ/j63AIiBntm0vV/85cwYy/4o +HlPH/Qjvn3hZjUlBcveiYat998F+s9gH2usvCkG3kly/n1/667LLCymmCHxtH8ka +7tF3siO1EANureFY8qj6ZvlKeTkZ6g== +-----END CERTIFICATE----- From 1962184a1216d0332bcab0b128d9430b47254b68 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Tue, 15 Jul 2025 01:15:40 +0530 Subject: [PATCH 04/37] Revert "[nrf fromtree] modules: nrf_wifi: Implement new Raw TX APIs" This reverts commit 366f234fcc0fafd24f3ecf579be14c70f4035af7. Signed-off-by: Chaitanya Tata --- modules/nrf_wifi/os/shim.c | 57 -------------------------------------- 1 file changed, 57 deletions(-) diff --git a/modules/nrf_wifi/os/shim.c b/modules/nrf_wifi/os/shim.c index 29b72203b55..b892d50df7f 100644 --- a/modules/nrf_wifi/os/shim.c +++ b/modules/nrf_wifi/os/shim.c @@ -275,9 +275,6 @@ struct nwb { void (*cleanup_cb)(); unsigned char priority; bool chksum_done; -#ifdef CONFIG_NRF70_RAW_DATA_TX - void *raw_tx_hdr; -#endif /* CONFIG_NRF70_RAW_DATA_TX */ #ifdef CONFIG_NRF_WIFI_ZERO_COPY_TX struct net_pkt *pkt; #endif @@ -403,55 +400,6 @@ static void zep_shim_nbuf_set_chksum_done(void *nbuf, unsigned char chksum_done) nwb->chksum_done = (bool)chksum_done; } -#ifdef CONFIG_NRF70_RAW_DATA_TX -static void *zep_shim_nbuf_set_raw_tx_hdr(void *nbuf, unsigned short raw_hdr_len) -{ - struct nwb *nwb = (struct nwb *)nbuf; - - if (!nwb) { - LOG_ERR("%s: Received network buffer is NULL", __func__); - return NULL; - } - - nwb->raw_tx_hdr = zep_shim_nbuf_data_get(nwb); - if (!nwb->raw_tx_hdr) { - LOG_ERR("%s: Unable to set raw Tx header in network buffer", __func__); - return NULL; - } - - zep_shim_nbuf_data_pull(nwb, raw_hdr_len); - - return nwb->raw_tx_hdr; -} - -static void *zep_shim_nbuf_get_raw_tx_hdr(void *nbuf) -{ - struct nwb *nwb = (struct nwb *)nbuf; - - if (!nwb) { - LOG_ERR("%s: Received network buffer is NULL", __func__); - return NULL; - } - - return nwb->raw_tx_hdr; -} - -static bool zep_shim_nbuf_is_raw_tx(void *nbuf) -{ - struct nwb *nwb = (struct nwb *)nbuf; - - if (!nwb) { - LOG_ERR("%s: Received network buffer is NULL", __func__); - return false; - } - - return (nwb->raw_tx_hdr != NULL); -} -#endif /* CONFIG_NRF70_RAW_DATA_TX */ - - - - #include #include @@ -1244,11 +1192,6 @@ const struct nrf_wifi_osal_ops nrf_wifi_os_zep_ops = { .nbuf_get_priority = zep_shim_nbuf_get_priority, .nbuf_get_chksum_done = zep_shim_nbuf_get_chksum_done, .nbuf_set_chksum_done = zep_shim_nbuf_set_chksum_done, -#ifdef CONFIG_NRF70_RAW_DATA_TX - .nbuf_set_raw_tx_hdr = zep_shim_nbuf_set_raw_tx_hdr, - .nbuf_get_raw_tx_hdr = zep_shim_nbuf_get_raw_tx_hdr, - .nbuf_is_raw_tx = zep_shim_nbuf_is_raw_tx, -#endif /* CONFIG_NRF70_RAW_DATA_TX */ .tasklet_alloc = zep_shim_work_alloc, .tasklet_free = zep_shim_work_free, From 019884924a492bfabc05747c8d793878fe404b1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Cab=C3=A9?= Date: Mon, 16 Jun 2025 20:40:22 +0200 Subject: [PATCH 05/37] [nrf fromtree] drivers: nrf_wifi: put driver ops in flash MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add const qualifiers to the driver ops to save on RAM usage. Signed-off-by: Benjamin CabĂ© (cherry picked from commit 8d6316c5b70dc3923c5a187152c4fd014718d41b) --- drivers/wifi/nrf_wifi/src/fmac_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/wifi/nrf_wifi/src/fmac_main.c b/drivers/wifi/nrf_wifi/src/fmac_main.c index 3d599412651..92a58be9a09 100644 --- a/drivers/wifi/nrf_wifi/src/fmac_main.c +++ b/drivers/wifi/nrf_wifi/src/fmac_main.c @@ -852,7 +852,7 @@ static int nrf_wifi_drv_main_zep(const struct device *dev) #ifndef CONFIG_NRF70_RADIO_TEST #ifdef CONFIG_NET_L2_WIFI_MGMT -static struct wifi_mgmt_ops nrf_wifi_mgmt_ops = { +static const struct wifi_mgmt_ops nrf_wifi_mgmt_ops = { .scan = nrf_wifi_disp_scan_zep, #ifdef CONFIG_NET_STATISTICS_WIFI .get_stats = nrf_wifi_stats_get, @@ -883,7 +883,7 @@ static struct wifi_mgmt_ops nrf_wifi_mgmt_ops = { #ifdef CONFIG_NRF70_STA_MODE -static struct zep_wpa_supp_dev_ops wpa_supp_ops = { +static const struct zep_wpa_supp_dev_ops wpa_supp_ops = { .init = nrf_wifi_wpa_supp_dev_init, .deinit = nrf_wifi_wpa_supp_dev_deinit, .scan2 = nrf_wifi_wpa_supp_scan2, From b6baae029cfc32040b27f15ddb1f87d3df657dbf Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Tue, 17 Jun 2025 22:01:04 +0530 Subject: [PATCH 06/37] [nrf fromtree] modules: nrf_wifi: Improve power down sequence Swap the order, IOVDD should be powered first and then BUCKEN. Signed-off-by: Chaitanya Tata (cherry picked from commit 9cd933e5b010bd76ac5a2f17b23cef00a861ad44) --- modules/nrf_wifi/bus/rpu_hw_if.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/nrf_wifi/bus/rpu_hw_if.c b/modules/nrf_wifi/bus/rpu_hw_if.c index 5dd71a86de2..62291251fb7 100644 --- a/modules/nrf_wifi/bus/rpu_hw_if.c +++ b/modules/nrf_wifi/bus/rpu_hw_if.c @@ -260,15 +260,15 @@ static int rpu_pwroff(void) { int ret; - ret = gpio_pin_set_dt(&bucken_spec, 0); /* BUCKEN = 0 */ + ret = gpio_pin_set_dt(&iovdd_ctrl_spec, 0); /* IOVDD CNTRL = 0 */ if (ret) { - LOG_ERR("BUCKEN GPIO set failed..."); + LOG_ERR("IOVDD GPIO set failed..."); return ret; } - ret = gpio_pin_set_dt(&iovdd_ctrl_spec, 0); /* IOVDD CNTRL = 0 */ + ret = gpio_pin_set_dt(&bucken_spec, 0); /* BUCKEN = 0 */ if (ret) { - LOG_ERR("IOVDD GPIO set failed..."); + LOG_ERR("BUCKEN GPIO set failed..."); return ret; } From de70a927bcdcaef4b481aa917e79b81405e49962 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Tue, 17 Jun 2025 22:06:06 +0530 Subject: [PATCH 07/37] [nrf fromtree] modules: nrf_wifi: Remove co-ex GPIOs first Before powering off remove co-ex GPIOs. Signed-off-by: Chaitanya Tata (cherry picked from commit 2b0876c850017f95c92d472daed616b9ac49d7c7) --- modules/nrf_wifi/bus/rpu_hw_if.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/nrf_wifi/bus/rpu_hw_if.c b/modules/nrf_wifi/bus/rpu_hw_if.c index 62291251fb7..39525211486 100644 --- a/modules/nrf_wifi/bus/rpu_hw_if.c +++ b/modules/nrf_wifi/bus/rpu_hw_if.c @@ -503,21 +503,23 @@ int rpu_disable(void) { int ret; - ret = rpu_pwroff(); + #ifdef CONFIG_NRF70_SR_COEX_RF_SWITCH + ret = sr_gpio_remove(); if (ret) { goto out; } - ret = rpu_gpio_remove(); +#endif + + ret = rpu_pwroff(); if (ret) { goto out; } - -#ifdef CONFIG_NRF70_SR_COEX_RF_SWITCH - ret = sr_gpio_remove(); + ret = rpu_gpio_remove(); if (ret) { goto out; } -#endif + + qdev = NULL; cfg = NULL; From 377ad9d7c3d795547443e5c048981b8d7833df2c Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Tue, 17 Jun 2025 22:12:13 +0530 Subject: [PATCH 08/37] [nrf fromtree] modules: nrf_wifi: Implement QSPI deinit By default QSPI is uninitialized after every transaction, so, deinit is a no-op, but if QSPI_LOW_POWER is disabled, then we need to uninitialize the QSPI in the deinit. Signed-off-by: Chaitanya Tata (cherry picked from commit 4eb7b9f06bdb1daba8d0638e62abfb1a65fb343e) --- modules/nrf_wifi/bus/qspi_if.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/modules/nrf_wifi/bus/qspi_if.c b/modules/nrf_wifi/bus/qspi_if.c index 6107a5c4157..ad0534a95a3 100644 --- a/modules/nrf_wifi/bus/qspi_if.c +++ b/modules/nrf_wifi/bus/qspi_if.c @@ -528,14 +528,10 @@ static int qspi_device_init(const struct device *dev) return ret; } -static void qspi_device_uninit(const struct device *dev) +static void _qspi_device_uninit(const struct device *dev) { bool last = true; - if (!IS_ENABLED(CONFIG_NRF70_QSPI_LOW_POWER)) { - return; - } - qspi_lock(dev); #ifdef CONFIG_MULTITHREADING @@ -568,6 +564,15 @@ static void qspi_device_uninit(const struct device *dev) qspi_unlock(dev); } +static void qspi_device_uninit(const struct device *dev) +{ + if (!IS_ENABLED(CONFIG_NRF70_QSPI_LOW_POWER)) { + return; + } + + _qspi_device_uninit(dev); +} + /* QSPI send custom command. * * If this is used for both send and receive the buffer sizes must be @@ -1191,7 +1196,7 @@ struct device qspi_perip = { int qspi_deinit(void) { - LOG_DBG("TODO : %s", __func__); + _qspi_device_uninit(&qspi_perip); return 0; } From 6e96327408ce4a489225c3905d2e8e8c2b5ceb5e Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Tue, 17 Jun 2025 22:17:11 +0530 Subject: [PATCH 09/37] [nrf fromtree] modules: nrf_wifi: Implement SPI deinit Release the SPI during the deinit to put respective GPIOs in low-power state or disconnected. Signed-off-by: Chaitanya Tata (cherry picked from commit 945ddf0acbafa6e0bca3fc145e0a39a408903546) --- modules/nrf_wifi/bus/spi_if.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/nrf_wifi/bus/spi_if.c b/modules/nrf_wifi/bus/spi_if.c index 7ef1694da58..641e1322899 100644 --- a/modules/nrf_wifi/bus/spi_if.c +++ b/modules/nrf_wifi/bus/spi_if.c @@ -263,9 +263,7 @@ int spim_init(struct qspi_config *config) int spim_deinit(void) { - LOG_DBG("TODO : %s", __func__); - - return 0; + return spi_release_dt(&spi_spec); } static void spim_addr_check(unsigned int addr, const void *data, unsigned int len) From 32dc2ede508ae7962f3322e5351011d2f24ac5c4 Mon Sep 17 00:00:00 2001 From: Ravi Dondaputi Date: Tue, 25 Mar 2025 17:03:43 +0530 Subject: [PATCH 10/37] [nrf fromtree] drivers: wifi: Introduce option to use K_HEAP Provide option to revert to K_HEAP instead of using dedicated heaps in Wi-Fi driver. Signed-off-by: Ravi Dondaputi (cherry picked from commit 11a39692218c7c0a6a0222c3b0066b7e6c515f84) --- drivers/wifi/nrf_wifi/Kconfig.nrfwifi | 16 ++++++++++++++++ modules/nrf_wifi/os/shim.c | 24 ++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/drivers/wifi/nrf_wifi/Kconfig.nrfwifi b/drivers/wifi/nrf_wifi/Kconfig.nrfwifi index 8980cce8205..bfc1ce0c7f0 100644 --- a/drivers/wifi/nrf_wifi/Kconfig.nrfwifi +++ b/drivers/wifi/nrf_wifi/Kconfig.nrfwifi @@ -570,6 +570,21 @@ config NRF70_RSSI_STALE_TIMEOUT_MS value as the driver does not store it and requires RPU to provide the information. +config NRF_WIFI_GLOBAL_HEAP + bool "Use Zephyr kernel heap for Wi-Fi driver" + depends on KERNEL_MEM_POOL && ((HEAP_MEM_POOL_SIZE > 0) || HEAP_MEM_POOL_IGNORE_MIN) + help + Enable this option to use K_HEAP for memory allocations in Wi-Fi driver. + +if NRF_WIFI_GLOBAL_HEAP +config HEAP_MEM_POOL_ADD_SIZE_NRF70 + # Use a maximum that works for typical use cases and boards, each sample/app can override + # this value if needed by using CONFIG_HEAP_MEM_POOL_IGNORE_MIN + def_int 25000 if NRF70_SCAN_ONLY + def_int 150000 +endif # NRF_WIFI_GLOBAL_HEAP + +if !NRF_WIFI_GLOBAL_HEAP config NRF_WIFI_CTRL_HEAP_SIZE int "Dedicated memory pool for control plane" default 20000 @@ -580,6 +595,7 @@ config NRF_WIFI_DATA_HEAP_SIZE default 8000 if NRF70_SCAN_ONLY default 110000 if !SOC_FAMILY_NORDIC_NRF default 130000 +endif if NETWORKING # Finetune defaults for certain system components used by the driver diff --git a/modules/nrf_wifi/os/shim.c b/modules/nrf_wifi/os/shim.c index b892d50df7f..e20b2629012 100644 --- a/modules/nrf_wifi/os/shim.c +++ b/modules/nrf_wifi/os/shim.c @@ -33,6 +33,8 @@ #include "common/hal_structs_common.h" LOG_MODULE_REGISTER(wifi_nrf, CONFIG_WIFI_NRF70_LOG_LEVEL); + +#if !defined(CONFIG_NRF_WIFI_GLOBAL_HEAP) #if defined(CONFIG_NOCACHE_MEMORY) K_HEAP_DEFINE_NOCACHE(wifi_drv_ctrl_mem_pool, CONFIG_NRF_WIFI_CTRL_HEAP_SIZE); K_HEAP_DEFINE_NOCACHE(wifi_drv_data_mem_pool, CONFIG_NRF_WIFI_DATA_HEAP_SIZE); @@ -40,6 +42,8 @@ K_HEAP_DEFINE_NOCACHE(wifi_drv_data_mem_pool, CONFIG_NRF_WIFI_DATA_HEAP_SIZE); K_HEAP_DEFINE(wifi_drv_ctrl_mem_pool, CONFIG_NRF_WIFI_CTRL_HEAP_SIZE); K_HEAP_DEFINE(wifi_drv_data_mem_pool, CONFIG_NRF_WIFI_DATA_HEAP_SIZE); #endif /* CONFIG_NOCACHE_MEMORY */ +#endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ + #define WORD_SIZE 4 struct zep_shim_intr_priv *intr_priv; @@ -48,14 +52,22 @@ static void *zep_shim_mem_alloc(size_t size) { size_t size_aligned = ROUND_UP(size, 4); +#if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP) + return k_malloc(size_aligned); +#else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ return k_heap_aligned_alloc(&wifi_drv_ctrl_mem_pool, WORD_SIZE, size_aligned, K_FOREVER); +#endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ } static void *zep_shim_data_mem_alloc(size_t size) { size_t size_aligned = ROUND_UP(size, 4); +#if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP) + return k_malloc(size_aligned); +#else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ return k_heap_aligned_alloc(&wifi_drv_data_mem_pool, WORD_SIZE, size_aligned, K_FOREVER); +#endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ } static void *zep_shim_mem_zalloc(size_t size) @@ -99,14 +111,22 @@ static void *zep_shim_data_mem_zalloc(size_t size) static void zep_shim_mem_free(void *buf) { if (buf) { +#if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP) + k_free(buf); +#else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ k_heap_free(&wifi_drv_ctrl_mem_pool, buf); +#endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ } } static void zep_shim_data_mem_free(void *buf) { if (buf) { +#if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP) + k_free(buf); +#else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ k_heap_free(&wifi_drv_data_mem_pool, buf); +#endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ } } @@ -197,7 +217,11 @@ static void *zep_shim_spinlock_alloc(void) static void zep_shim_spinlock_free(void *lock) { +#if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP) + k_free(lock); +#else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ k_heap_free(&wifi_drv_ctrl_mem_pool, lock); +#endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */ } static void zep_shim_spinlock_init(void *lock) From dbeacd73372a4050dced2a20ed359f5fbb51bab3 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Tue, 1 Jul 2025 03:24:00 +0530 Subject: [PATCH 11/37] [nrf fromtree] modules: nrf_wifi: Fix interface down hang When QSPI LPM is enabled, QSPI will already be uninitialized, and during deinit if uninitialized is being called again then it leads to a hang as it waits for mem busy check to pass which it won't. Fix by checking if the device is initialized before calling uninitialize. Signed-off-by: Chaitanya Tata (cherry picked from commit 1fb2c56e86f2518b67ed56bae1736396afd791c6) --- modules/nrf_wifi/bus/qspi_if.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/nrf_wifi/bus/qspi_if.c b/modules/nrf_wifi/bus/qspi_if.c index ad0534a95a3..949aa591274 100644 --- a/modules/nrf_wifi/bus/qspi_if.c +++ b/modules/nrf_wifi/bus/qspi_if.c @@ -1196,7 +1196,9 @@ struct device qspi_perip = { int qspi_deinit(void) { - _qspi_device_uninit(&qspi_perip); + if (nrfx_qspi_init_check()) { + _qspi_device_uninit(&qspi_perip); + } return 0; } From 2231002d444fe6eb42242fc8e603b0279b2cce71 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Sun, 29 Jun 2025 20:58:44 +0530 Subject: [PATCH 12/37] [nrf fromtree] modules: nrf_wifi: Fix accuracy of microseconds API Using ms and converting to us is a bad idea as we still get ms granualrity in us units. Use the proper API to get us granularity. Signed-off-by: Chaitanya Tata (cherry picked from commit 54573e2a678e607a1367438637bddc0d0ced66ee) --- modules/nrf_wifi/os/shim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nrf_wifi/os/shim.c b/modules/nrf_wifi/os/shim.c index e20b2629012..2bb706125a1 100644 --- a/modules/nrf_wifi/os/shim.c +++ b/modules/nrf_wifi/os/shim.c @@ -802,7 +802,7 @@ static void zep_shim_work_kill(void *item) static unsigned long zep_shim_time_get_curr_us(void) { - return k_uptime_get() * USEC_PER_MSEC; + return k_ticks_to_us_floor64(k_uptime_ticks()); } static unsigned int zep_shim_time_elapsed_us(unsigned long start_time_us) From 929993ca3f98891a36206c4e90c0bc82370accdf Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Sun, 29 Jun 2025 22:48:43 +0530 Subject: [PATCH 13/37] [nrf fromtree] wifi: nrf70: Fix system work queue stack size override Defaults cannot be overidden (even with configdefault extension), they only work if the original symbol is defined after the override e.g., "drivers and then subsys/net" but for kernel symbols,the default value overrides don't work due "kernel and drivers" order, the kernel defines the original symbol with the default and then it cannot be overridden. Move the kernel symbol override to the original definition to make it affect. Else any sample that uses nRF70 but doesn't enable WPA supplicant ends up with 1024 and crashes. Signed-off-by: Chaitanya Tata (cherry picked from commit 4bd1d39c67dfb4860fbd4f9ccc17e084aa32d763) --- drivers/wifi/nrf_wifi/Kconfig.nrfwifi | 6 ++---- kernel/Kconfig | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/wifi/nrf_wifi/Kconfig.nrfwifi b/drivers/wifi/nrf_wifi/Kconfig.nrfwifi index bfc1ce0c7f0..8d414276038 100644 --- a/drivers/wifi/nrf_wifi/Kconfig.nrfwifi +++ b/drivers/wifi/nrf_wifi/Kconfig.nrfwifi @@ -599,10 +599,8 @@ endif if NETWORKING # Finetune defaults for certain system components used by the driver - -config SYSTEM_WORKQUEUE_STACK_SIZE - default 4096 - +# Note: These will take effect only if the symbol is not defined already +# (i.e., the original symbol is processed after "drivers/Kconfig") config NET_TX_STACK_SIZE default 4096 diff --git a/kernel/Kconfig b/kernel/Kconfig index 1e9155cf241..c2976b9f281 100644 --- a/kernel/Kconfig +++ b/kernel/Kconfig @@ -578,7 +578,7 @@ rsource "Kconfig.obj_core" menu "System Work Queue Options" config SYSTEM_WORKQUEUE_STACK_SIZE int "System workqueue stack size" - default 4096 if COVERAGE_GCOV + default 4096 if COVERAGE_GCOV || WIFI_NRF70 default 2560 if WIFI_NM_WPA_SUPPLICANT default 1024 From 4c5e962f87ac352fe9226b28ba42eec45c1052f6 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Fri, 4 Jul 2025 00:34:36 +0530 Subject: [PATCH 14/37] [nrf fromtree] drivers: nrf_wifi: Fix TX drop statistics In case FMAC API fails, increment the TX drop counter, helpful in debug. Signed-off-by: Chaitanya Tata (cherry picked from commit e728f804165e9f8ceb578af2b632aabe530828d7) --- drivers/wifi/nrf_wifi/src/net_if.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/wifi/nrf_wifi/src/net_if.c b/drivers/wifi/nrf_wifi/src/net_if.c index 25c9ed5da75..bf6fa06f525 100644 --- a/drivers/wifi/nrf_wifi/src/net_if.c +++ b/drivers/wifi/nrf_wifi/src/net_if.c @@ -429,6 +429,10 @@ int nrf_wifi_if_send(const struct device *dev, #ifdef CONFIG_NRF70_RAW_DATA_TX } #endif /* CONFIG_NRF70_RAW_DATA_TX */ + if (ret == NRF_WIFI_STATUS_FAIL) { + /* FMAC API takes care of freeing the nbuf */ + host_stats->total_tx_drop_pkts++; + } goto unlock; drop: if (host_stats != NULL) { From 27a9e1ae2452c79f6a39f78b72b5614e6f298ee5 Mon Sep 17 00:00:00 2001 From: Gaetan Perrot Date: Tue, 8 Jul 2025 14:09:56 +0900 Subject: [PATCH 15/37] [nrf fromtree] drivers: wifi: nrf_wifi: wifi_mgmt: remove redundant null check Deleted a redundant check for 'rpu_ctx_zep' pointer after it was already dereferenced. Clarifies code logic in nrf_wifi_get_power_save_config function. Signed-off-by: Gaetan Perrot (cherry picked from commit bac20e419eabf36625c073a366008f1384fcc272) --- drivers/wifi/nrf_wifi/src/wifi_mgmt.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/wifi/nrf_wifi/src/wifi_mgmt.c b/drivers/wifi/nrf_wifi/src/wifi_mgmt.c index e6ac9d8fc39..a323faf21dd 100644 --- a/drivers/wifi/nrf_wifi/src/wifi_mgmt.c +++ b/drivers/wifi/nrf_wifi/src/wifi_mgmt.c @@ -203,11 +203,6 @@ int nrf_wifi_get_power_save_config(const struct device *dev, fmac_dev_ctx = rpu_ctx_zep->rpu_ctx; - if (!rpu_ctx_zep) { - LOG_ERR("%s: rpu_ctx_zep is NULL", __func__); - goto out; - } - vif_ctx_zep->ps_info = ps_config; vif_ctx_zep->ps_config_info_evnt = false; From 8db32c52c31066021168f1e721effd2ca361cbf6 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Fri, 27 Jun 2025 14:28:52 +0530 Subject: [PATCH 16/37] [nrf fromtree] modules: nrf_wifi: Implement new Raw TX APIs The new raw TX handling relies on these APIs, so, implement them for Zephyr shim. Signed-off-by: Chaitanya Tata (cherry picked from commit b8d31f10d9e7052bbcdad7f68522340d8af17399) --- modules/nrf_wifi/os/shim.c | 57 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/modules/nrf_wifi/os/shim.c b/modules/nrf_wifi/os/shim.c index 2bb706125a1..df460d5ab53 100644 --- a/modules/nrf_wifi/os/shim.c +++ b/modules/nrf_wifi/os/shim.c @@ -299,6 +299,9 @@ struct nwb { void (*cleanup_cb)(); unsigned char priority; bool chksum_done; +#ifdef CONFIG_NRF70_RAW_DATA_TX + void *raw_tx_hdr; +#endif /* CONFIG_NRF70_RAW_DATA_TX */ #ifdef CONFIG_NRF_WIFI_ZERO_COPY_TX struct net_pkt *pkt; #endif @@ -424,6 +427,55 @@ static void zep_shim_nbuf_set_chksum_done(void *nbuf, unsigned char chksum_done) nwb->chksum_done = (bool)chksum_done; } +#ifdef CONFIG_NRF70_RAW_DATA_TX +static void *zep_shim_nbuf_set_raw_tx_hdr(void *nbuf, unsigned short raw_hdr_len) +{ + struct nwb *nwb = (struct nwb *)nbuf; + + if (!nwb) { + LOG_ERR("%s: Received network buffer is NULL", __func__); + return NULL; + } + + nwb->raw_tx_hdr = zep_shim_nbuf_data_get(nwb); + if (!nwb->raw_tx_hdr) { + LOG_ERR("%s: Unable to set raw Tx header in network buffer", __func__); + return NULL; + } + + zep_shim_nbuf_data_pull(nwb, raw_hdr_len); + + return nwb->raw_tx_hdr; +} + +static void *zep_shim_nbuf_get_raw_tx_hdr(void *nbuf) +{ + struct nwb *nwb = (struct nwb *)nbuf; + + if (!nwb) { + LOG_ERR("%s: Received network buffer is NULL", __func__); + return NULL; + } + + return nwb->raw_tx_hdr; +} + +static bool zep_shim_nbuf_is_raw_tx(void *nbuf) +{ + struct nwb *nwb = (struct nwb *)nbuf; + + if (!nwb) { + LOG_ERR("%s: Received network buffer is NULL", __func__); + return false; + } + + return (nwb->raw_tx_hdr != NULL); +} +#endif /* CONFIG_NRF70_RAW_DATA_TX */ + + + + #include #include @@ -1216,6 +1268,11 @@ const struct nrf_wifi_osal_ops nrf_wifi_os_zep_ops = { .nbuf_get_priority = zep_shim_nbuf_get_priority, .nbuf_get_chksum_done = zep_shim_nbuf_get_chksum_done, .nbuf_set_chksum_done = zep_shim_nbuf_set_chksum_done, +#ifdef CONFIG_NRF70_RAW_DATA_TX + .nbuf_set_raw_tx_hdr = zep_shim_nbuf_set_raw_tx_hdr, + .nbuf_get_raw_tx_hdr = zep_shim_nbuf_get_raw_tx_hdr, + .nbuf_is_raw_tx = zep_shim_nbuf_is_raw_tx, +#endif /* CONFIG_NRF70_RAW_DATA_TX */ .tasklet_alloc = zep_shim_work_alloc, .tasklet_free = zep_shim_work_free, From 79f1cd216c72cae53a90abb3d04561f56c984477 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Tue, 15 Jul 2025 01:20:52 +0530 Subject: [PATCH 17/37] Revert "[nrf fromlist] manifest: Update nrf_wifi SHA to remove sta mode from monitor" This reverts commit 926fafbe9f0745eb3c3f0b37e8bfa9c0afc1db13. Signed-off-by: Chaitanya Tata --- west.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/west.yml b/west.yml index 8620c16f1e2..9807058ac13 100644 --- a/west.yml +++ b/west.yml @@ -328,7 +328,7 @@ manifest: revision: 968d55ff22579080466bf2f482596dd6e35361c6 path: modules/bsim_hw_models/nrf_hw_models - name: nrf_wifi - revision: 936b502c717ac413afea2b62f20f6bf7a84ffee0 + revision: 52286f111b4765e0dd40f43124e7bb5c14758dff path: modules/lib/nrf_wifi - name: open-amp revision: f7f4d083c7909a39d86e217376c69b416ec4faf3 From a428b5f02a1ef4a18f32c09f50310d75c232b576 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Thu, 3 Jul 2025 21:37:14 +0530 Subject: [PATCH 18/37] [nrf fromtree] manifest: nrf_wifi: Pull fix for raw TX memory leak Fixes memory leak seen during continuous raw TX transmission. Signed-off-by: Chaitanya Tata (cherry picked from commit d5c7cb171b21049758f2907ec4b5a85ac73b43eb) --- west.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/west.yml b/west.yml index 9807058ac13..9e29918fb21 100644 --- a/west.yml +++ b/west.yml @@ -328,7 +328,7 @@ manifest: revision: 968d55ff22579080466bf2f482596dd6e35361c6 path: modules/bsim_hw_models/nrf_hw_models - name: nrf_wifi - revision: 52286f111b4765e0dd40f43124e7bb5c14758dff + revision: 5f59c2336c69f28ae83f93812a1d726f9fceabfe path: modules/lib/nrf_wifi - name: open-amp revision: f7f4d083c7909a39d86e217376c69b416ec4faf3 From 0ca446fcff36dcccbdc6cb380658ae472c5038a6 Mon Sep 17 00:00:00 2001 From: Qingling Wu Date: Fri, 30 May 2025 02:29:20 -0700 Subject: [PATCH 19/37] [nrf fromtree] manifest: hostap: sync for coverity fix sync for coverity fix in hostap Signed-off-by: Qingling Wu (cherry picked from commit f089959651d8894243ae9cd25f7d32b5d6d1b859) --- west.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/west.yml b/west.yml index 9e29918fb21..c7f54a8dda8 100644 --- a/west.yml +++ b/west.yml @@ -281,7 +281,7 @@ manifest: - hal - name: hostap path: modules/lib/hostap - revision: 8412f4b23b6267ee6035d25515a23aaf243f6ad7 + revision: cf270006050cf944af699301c7f4de2b427cd862 - name: liblc3 revision: 48bbd3eacd36e99a57317a0a4867002e0b09e183 path: modules/lib/liblc3 From 9543530b7b168b7616eb4c91858b20c7f5b1c3be Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Thu, 22 May 2025 11:21:26 +0300 Subject: [PATCH 20/37] [nrf fromtree] manifest: Use k_fifo for IPC in hostap Make sure to use k_fifo for IPC in hostap to save memory. Signed-off-by: Jukka Rissanen (cherry picked from commit 03ad3a32a27da098fc697376e2932c36b85c3509) --- west.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/west.yml b/west.yml index c7f54a8dda8..e1ff77d7c2b 100644 --- a/west.yml +++ b/west.yml @@ -281,7 +281,7 @@ manifest: - hal - name: hostap path: modules/lib/hostap - revision: cf270006050cf944af699301c7f4de2b427cd862 + revision: bc5d22f5838d017b889d1452a5854f9a32895414 - name: liblc3 revision: 48bbd3eacd36e99a57317a0a4867002e0b09e183 path: modules/lib/liblc3 From 58a963be4e6247f8721efc5764bbf4621f87cf7a Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Wed, 9 Jul 2025 18:13:28 +0530 Subject: [PATCH 21/37] [nrf fromtree] manifest: hostap: Pull fix for warning in interface down Fix a warning seen during interface down. Signed-off-by: Chaitanya Tata (cherry picked from commit a869c3e3a31afa893a8c88f8761f8f206769ee27) --- west.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/west.yml b/west.yml index e1ff77d7c2b..d15e692caa4 100644 --- a/west.yml +++ b/west.yml @@ -281,7 +281,7 @@ manifest: - hal - name: hostap path: modules/lib/hostap - revision: bc5d22f5838d017b889d1452a5854f9a32895414 + revision: e942f86e865d5b24bbbe8b0c333f030cbbe62bfb - name: liblc3 revision: 48bbd3eacd36e99a57317a0a4867002e0b09e183 path: modules/lib/liblc3 From ba84b9d6bdde7f7692facc528d5892c9da44d391 Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Tue, 15 Jul 2025 01:27:07 +0530 Subject: [PATCH 22/37] Revert "[nrf fromlist] net: wifi: shell: Enable Wi-Fi credentials support" This reverts commit e2f9c7bad98d2e5a029f36c83ef745ad341b7cdc. Signed-off-by: Chaitanya Tata --- modules/hostap/Kconfig | 2 +- snippets/wifi-enterprise/wifi-enterprise.conf | 9 --------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/modules/hostap/Kconfig b/modules/hostap/Kconfig index 0c08b6c01b0..95dd2531503 100644 --- a/modules/hostap/Kconfig +++ b/modules/hostap/Kconfig @@ -25,7 +25,7 @@ if WIFI_NM_WPA_SUPPLICANT config HEAP_MEM_POOL_ADD_SIZE_HOSTAP def_int 66560 if WIFI_NM_HOSTAPD_AP - def_int 55000 if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE + def_int 48000 if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE def_int 41808 if WIFI_NM_WPA_SUPPLICANT_AP # 30K is mandatory, but might need more for long duration use cases def_int 30000 diff --git a/snippets/wifi-enterprise/wifi-enterprise.conf b/snippets/wifi-enterprise/wifi-enterprise.conf index 4de1130cf69..dbac5ee6387 100644 --- a/snippets/wifi-enterprise/wifi-enterprise.conf +++ b/snippets/wifi-enterprise/wifi-enterprise.conf @@ -7,15 +7,6 @@ CONFIG_NET_BUF_VARIABLE_DATA_SIZE=y CONFIG_MBEDTLS_ENABLE_HEAP=y CONFIG_MBEDTLS_HEAP_SIZE=70000 -#For use with Wi-Fi Credentials -CONFIG_WIFI_CREDENTIALS=y -CONFIG_FLASH=y -CONFIG_FLASH_PAGE_LAYOUT=y -CONFIG_FLASH_MAP=y -CONFIG_NVS=y -CONFIG_SETTINGS=y -CONFIG_SETTINGS_NVS=y - # For use with TLS credentials CONFIG_TLS_CREDENTIALS_SHELL=y CONFIG_BASE64=y From 85742ab71436842d2cc3799dc424267032ef3d73 Mon Sep 17 00:00:00 2001 From: Ravi Dondaputi Date: Tue, 15 Apr 2025 17:32:48 +0530 Subject: [PATCH 23/37] [nrf fromtree] net: wifi: shell: Enable Wi-Fi credentials support Add a snippet for Wi-Fi credentials support. Update the heap sizes as required for enterprise mode. Signed-off-by: Ravi Dondaputi (cherry picked from commit 4c14c618f69e8ae0d5ee95a6abbc8a1d5f89afac) --- modules/hostap/Kconfig | 1 + snippets/wifi-credentials/README.rst | 29 +++++++++++++++++++ snippets/wifi-credentials/snippet.yml | 3 ++ .../wifi-credentials/wifi-credentials.conf | 8 +++++ 4 files changed, 41 insertions(+) create mode 100644 snippets/wifi-credentials/README.rst create mode 100644 snippets/wifi-credentials/snippet.yml create mode 100644 snippets/wifi-credentials/wifi-credentials.conf diff --git a/modules/hostap/Kconfig b/modules/hostap/Kconfig index 95dd2531503..1dfe3541017 100644 --- a/modules/hostap/Kconfig +++ b/modules/hostap/Kconfig @@ -25,6 +25,7 @@ if WIFI_NM_WPA_SUPPLICANT config HEAP_MEM_POOL_ADD_SIZE_HOSTAP def_int 66560 if WIFI_NM_HOSTAPD_AP + def_int 55000 if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE && WIFI_CREDENTIALS def_int 48000 if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE def_int 41808 if WIFI_NM_WPA_SUPPLICANT_AP # 30K is mandatory, but might need more for long duration use cases diff --git a/snippets/wifi-credentials/README.rst b/snippets/wifi-credentials/README.rst new file mode 100644 index 00000000000..283bc395858 --- /dev/null +++ b/snippets/wifi-credentials/README.rst @@ -0,0 +1,29 @@ +.. _snippet-wifi-credentials: + +Wi-Fi Credentials Snippet (wifi-credential) +########################################### + +.. code-block:: console + + west build -S wifi-credentials [...] + +Can also be used along with the :ref:`snippet-wifi-enterprise` snippet. + +.. code-block:: console + + west build -S "wifi-enterprise,wifi-credentials" [...] + +Overview +******** + +This snippet enables Wi-Fi credentials support. + +Requirements +************ + +Hardware support for: + +- :kconfig:option:`CONFIG_WIFI` +- :kconfig:option:`CONFIG_WIFI_USE_NATIVE_NETWORKING` +- :kconfig:option:`CONFIG_WIFI_NM_WPA_SUPPLICANT` +- :kconfig:option:`CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE` diff --git a/snippets/wifi-credentials/snippet.yml b/snippets/wifi-credentials/snippet.yml new file mode 100644 index 00000000000..6046c0865dc --- /dev/null +++ b/snippets/wifi-credentials/snippet.yml @@ -0,0 +1,3 @@ +name: wifi-credentials +append: + EXTRA_CONF_FILE: wifi-credentials.conf diff --git a/snippets/wifi-credentials/wifi-credentials.conf b/snippets/wifi-credentials/wifi-credentials.conf new file mode 100644 index 00000000000..4ac28169825 --- /dev/null +++ b/snippets/wifi-credentials/wifi-credentials.conf @@ -0,0 +1,8 @@ +# For use with Wi-Fi Credentials +CONFIG_WIFI_CREDENTIALS=y +CONFIG_FLASH=y +CONFIG_FLASH_PAGE_LAYOUT=y +CONFIG_FLASH_MAP=y +CONFIG_NVS=y +CONFIG_SETTINGS=y +CONFIG_SETTINGS_NVS=y From 48a8c50fec79ab07565a79cab0996f36e0bbed23 Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Wed, 21 May 2025 13:25:21 +0300 Subject: [PATCH 24/37] [nrf fromtree] hostap: Replace wifi event mechanism by k_fifo Earlier we had socketpair to pass wifi event information from wpa_supplicant side to zephyr adaption layer. This is now replaced by k_fifo to save some RAM. Signed-off-by: Jukka Rissanen (cherry picked from commit 96818f45a91472cb0eabd5cfe42b5b256860f6a5) --- modules/hostap/Kconfig | 3 +- modules/hostap/src/supp_main.c | 171 +++++++++++++++++---------------- subsys/net/lib/sockets/Kconfig | 5 - 3 files changed, 92 insertions(+), 87 deletions(-) diff --git a/modules/hostap/Kconfig b/modules/hostap/Kconfig index 1dfe3541017..11feefbb42d 100644 --- a/modules/hostap/Kconfig +++ b/modules/hostap/Kconfig @@ -13,11 +13,12 @@ config WIFI_NM_WPA_SUPPLICANT select XSI_SINGLE_PROCESS select NET_SOCKETS select NET_SOCKETS_PACKET - select NET_SOCKETPAIR select NET_L2_WIFI_MGMT select WIFI_NM select EXPERIMENTAL select COMMON_LIBC_MALLOC + select ZVFS + select ZVFS_EVENTFD help WPA supplicant as a network management backend for WIFI_NM. diff --git a/modules/hostap/src/supp_main.c b/modules/hostap/src/supp_main.c index 5ba2ef5b10c..c2a4866b921 100644 --- a/modules/hostap/src/supp_main.c +++ b/modules/hostap/src/supp_main.c @@ -11,6 +11,7 @@ LOG_MODULE_REGISTER(wifi_supplicant, CONFIG_WIFI_NM_WPA_SUPPLICANT_LOG_LEVEL); #include #include #include +#include #if !defined(CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE) && !defined(CONFIG_MBEDTLS_ENABLE_HEAP) #include @@ -44,6 +45,7 @@ static K_THREAD_STACK_DEFINE(iface_wq_stack, CONFIG_WIFI_NM_WPA_SUPPLICANT_WQ_ST #include "fst/fst.h" #include "includes.h" #include "wpa_cli_zephyr.h" +#include "ctrl_iface_zephyr.h" #ifdef CONFIG_WIFI_NM_HOSTAPD_AP #include "hostapd.h" #include "hapd_main.h" @@ -109,7 +111,8 @@ struct supplicant_context { struct net_mgmt_event_callback cb; struct net_if *iface; char if_name[CONFIG_NET_INTERFACE_NAME_LEN + 1]; - int event_socketpair[2]; + struct k_fifo fifo; + int sock; struct k_work iface_work; struct k_work_q iface_wq; int (*iface_handler)(struct supplicant_context *ctx, struct net_if *iface); @@ -139,39 +142,25 @@ struct k_work_q *get_workq(void) return &get_default_context()->iface_wq; } +/* found in hostap/wpa_supplicant/ctrl_iface_zephyr.c */ +extern int send_data(struct k_fifo *fifo, int sock, const char *buf, size_t len, int flags); + int zephyr_wifi_send_event(const struct wpa_supplicant_event_msg *msg) { struct supplicant_context *ctx; - struct pollfd fds[1]; int ret; /* TODO: Fix this to get the correct container */ ctx = get_default_context(); - if (ctx->event_socketpair[1] < 0) { + if (ctx->sock < 0) { ret = -ENOENT; goto out; } - fds[0].fd = ctx->event_socketpair[0]; - fds[0].events = POLLOUT; - fds[0].revents = 0; - - ret = zsock_poll(fds, 1, WRITE_TIMEOUT); - if (ret < 0) { - ret = -errno; - LOG_ERR("Cannot write event (%d)", ret); - goto out; - } - - ret = zsock_send(ctx->event_socketpair[1], msg, sizeof(*msg), 0); - if (ret < 0) { - ret = -errno; - LOG_WRN("Event send failed (%d)", ret); - goto out; - } - - if (ret != sizeof(*msg)) { + ret = send_data(&ctx->fifo, ctx->sock, + (const char *)msg, sizeof(*msg), 0); + if (ret != 0) { ret = -EMSGSIZE; LOG_WRN("Event partial send (%d)", ret); goto out; @@ -562,84 +551,105 @@ static int setup_interface_monitoring(struct supplicant_context *ctx, struct net static void event_socket_handler(int sock, void *eloop_ctx, void *user_data) { struct supplicant_context *ctx = user_data; - struct wpa_supplicant_event_msg msg; - int ret; + struct wpa_supplicant_event_msg event_msg; + struct zephyr_msg *msg; + zvfs_eventfd_t value; ARG_UNUSED(eloop_ctx); - ARG_UNUSED(ctx); - ret = zsock_recv(sock, &msg, sizeof(msg), 0); - if (ret < 0) { - LOG_ERR("Failed to recv the message (%d)", -errno); - return; - } + do { + zvfs_eventfd_read(sock, &value); - if (ret != sizeof(msg)) { - LOG_ERR("Received incomplete message: got: %d, expected:%d", - ret, sizeof(msg)); - return; - } + msg = k_fifo_get(&ctx->fifo, K_NO_WAIT); + if (msg == NULL) { + LOG_ERR("fifo(event): %s", "empty"); + return; + } - LOG_DBG("Passing message %d to wpa_supplicant", msg.event); + if (msg->data == NULL) { + LOG_ERR("fifo(event): %s", "no data"); + goto out; + } - if (msg.global) { - wpa_supplicant_event_global(msg.ctx, msg.event, msg.data); + if (msg->len != sizeof(event_msg)) { + LOG_ERR("Received incomplete message: got: %d, expected:%d", + msg->len, sizeof(event_msg)); + goto out; + } + + memcpy(&event_msg, msg->data, sizeof(event_msg)); + + LOG_DBG("Passing message %d to wpa_supplicant", event_msg.event); + + if (event_msg.global) { + wpa_supplicant_event_global(event_msg.ctx, event_msg.event, + event_msg.data); #ifdef CONFIG_WIFI_NM_HOSTAPD_AP - } else if (msg.hostapd) { - hostapd_event(msg.ctx, msg.event, msg.data); + } else if (event_msg.hostapd) { + hostapd_event(event_msg.ctx, event_msg.event, event_msg.data); #endif - } else { - wpa_supplicant_event(msg.ctx, msg.event, msg.data); - } - - if (msg.data) { - union wpa_event_data *data = msg.data; - - /* Free up deep copied data */ - if (msg.event == EVENT_AUTH) { - os_free((char *)data->auth.ies); - } else if (msg.event == EVENT_RX_MGMT) { - os_free((char *)data->rx_mgmt.frame); - } else if (msg.event == EVENT_TX_STATUS) { - os_free((char *)data->tx_status.data); - } else if (msg.event == EVENT_ASSOC) { - os_free((char *)data->assoc_info.addr); - os_free((char *)data->assoc_info.req_ies); - os_free((char *)data->assoc_info.resp_ies); - os_free((char *)data->assoc_info.resp_frame); - } else if (msg.event == EVENT_ASSOC_REJECT) { - os_free((char *)data->assoc_reject.bssid); - os_free((char *)data->assoc_reject.resp_ies); - } else if (msg.event == EVENT_DEAUTH) { - os_free((char *)data->deauth_info.addr); - os_free((char *)data->deauth_info.ie); - } else if (msg.event == EVENT_DISASSOC) { - os_free((char *)data->disassoc_info.addr); - os_free((char *)data->disassoc_info.ie); - } else if (msg.event == EVENT_UNPROT_DEAUTH) { - os_free((char *)data->unprot_deauth.sa); - os_free((char *)data->unprot_deauth.da); - } else if (msg.event == EVENT_UNPROT_DISASSOC) { - os_free((char *)data->unprot_disassoc.sa); - os_free((char *)data->unprot_disassoc.da); + } else { + wpa_supplicant_event(event_msg.ctx, event_msg.event, event_msg.data); } - os_free(msg.data); - } + if (event_msg.data) { + union wpa_event_data *data = event_msg.data; + + /* Free up deep copied data */ + if (event_msg.event == EVENT_AUTH) { + os_free((char *)data->auth.ies); + } else if (event_msg.event == EVENT_RX_MGMT) { + os_free((char *)data->rx_mgmt.frame); + } else if (event_msg.event == EVENT_TX_STATUS) { + os_free((char *)data->tx_status.data); + } else if (event_msg.event == EVENT_ASSOC) { + os_free((char *)data->assoc_info.addr); + os_free((char *)data->assoc_info.req_ies); + os_free((char *)data->assoc_info.resp_ies); + os_free((char *)data->assoc_info.resp_frame); + } else if (event_msg.event == EVENT_ASSOC_REJECT) { + os_free((char *)data->assoc_reject.bssid); + os_free((char *)data->assoc_reject.resp_ies); + } else if (event_msg.event == EVENT_DEAUTH) { + os_free((char *)data->deauth_info.addr); + os_free((char *)data->deauth_info.ie); + } else if (event_msg.event == EVENT_DISASSOC) { + os_free((char *)data->disassoc_info.addr); + os_free((char *)data->disassoc_info.ie); + } else if (event_msg.event == EVENT_UNPROT_DEAUTH) { + os_free((char *)data->unprot_deauth.sa); + os_free((char *)data->unprot_deauth.da); + } else if (event_msg.event == EVENT_UNPROT_DISASSOC) { + os_free((char *)data->unprot_disassoc.sa); + os_free((char *)data->unprot_disassoc.da); + } + + os_free(event_msg.data); + } + +out: + os_free(msg->data); + os_free(msg); + + } while (!k_fifo_is_empty(&ctx->fifo)); } static int register_supplicant_event_socket(struct supplicant_context *ctx) { int ret; - ret = socketpair(AF_UNIX, SOCK_STREAM, 0, ctx->event_socketpair); + ret = zvfs_eventfd(0, ZVFS_EFD_NONBLOCK); if (ret < 0) { ret = -errno; LOG_ERR("Failed to initialize socket (%d)", ret); return ret; } - eloop_register_read_sock(ctx->event_socketpair[0], event_socket_handler, NULL, ctx); + ctx->sock = ret; + + k_fifo_init(&ctx->fifo); + + eloop_register_read_sock(ctx->sock, event_socket_handler, NULL, ctx); return 0; } @@ -707,7 +717,7 @@ static void handler(void) supplicant_generate_state_event(ctx->if_name, NET_EVENT_SUPPLICANT_CMD_NOT_READY, 0); - eloop_unregister_read_sock(ctx->event_socketpair[0]); + eloop_unregister_read_sock(ctx->sock); zephyr_global_wpa_ctrl_deinit(); @@ -716,8 +726,7 @@ static void handler(void) out: wpa_supplicant_deinit(ctx->supplicant); - zsock_close(ctx->event_socketpair[0]); - zsock_close(ctx->event_socketpair[1]); + close(ctx->sock); err: os_free(params.pid_file); diff --git a/subsys/net/lib/sockets/Kconfig b/subsys/net/lib/sockets/Kconfig index 6662582aed8..791fc464d38 100644 --- a/subsys/net/lib/sockets/Kconfig +++ b/subsys/net/lib/sockets/Kconfig @@ -350,7 +350,6 @@ if NET_SOCKETPAIR config NET_SOCKETPAIR_BUFFER_SIZE int "Size of the intermediate buffer, in bytes" - default 1024 if WIFI_NM_WPA_SUPPLICANT default 64 range 1 4096 help @@ -372,8 +371,6 @@ if NET_SOCKETPAIR_STATIC config NET_SOCKETPAIR_MAX int "How many socketpairs to pre-allocate" - default 6 if WIFI_NM_HOSTAPD_AP - default 4 if WIFI_NM_WPA_SUPPLICANT default 1 endif # NET_SOCKETPAIR_STATIC @@ -382,8 +379,6 @@ if NET_SOCKETPAIR_HEAP config HEAP_MEM_POOL_ADD_SIZE_SOCKETPAIR int - default 9136 if WIFI_NM_HOSTAPD_AP - default 6852 if WIFI_NM_WPA_SUPPLICANT default 296 endif # NET_SOCKETPAIR_HEAP From 0c6680f8ad552ea2dbf63ec856b454498d3d471b Mon Sep 17 00:00:00 2001 From: Chaitanya Tata Date: Fri, 27 Jun 2025 16:31:15 +0530 Subject: [PATCH 25/37] [nrf fromtree] modules: hostap: Fix EAP dependencies In case anyone enabled EAP_*_ALL explicitly without enabling the Enterprise then it leads to a build error. Fix by adding the dependency. Signed-off-by: Chaitanya Tata (cherry picked from commit 014dee722bcd63391e4a6b95a5f82bf8bc8fa580) --- modules/hostap/Kconfig | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/hostap/Kconfig b/modules/hostap/Kconfig index 11feefbb42d..6c8d88483cb 100644 --- a/modules/hostap/Kconfig +++ b/modules/hostap/Kconfig @@ -200,6 +200,7 @@ config WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE select MBEDTLS_TLS_VERSION_1_2 depends on !WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE +if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE config EAP_TLS bool "EAP-TLS support" @@ -258,7 +259,8 @@ config EAP_ALL select EAP_GTC select EAP_TTLS select EAP_MSCHAPV2 - default y if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE + default y +endif # WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE config WIFI_NM_WPA_SUPPLICANT_WPA3 bool "WPA3 support" @@ -302,6 +304,7 @@ config WIFI_NM_HOSTAPD_CRYPTO_ENTERPRISE bool "Hostapd crypto enterprise support" depends on WIFI_NM_HOSTAPD_AP +if WIFI_NM_HOSTAPD_CRYPTO_ENTERPRISE config EAP_SERVER_TLS bool "EAP-TLS server support" @@ -330,7 +333,9 @@ config EAP_SERVER_ALL select EAP_SERVER_PEAP select EAP_SERVER_GTC select EAP_SERVER_TTLS - default y if WIFI_NM_HOSTAPD_CRYPTO_ENTERPRISE + default y + +endif # WIFI_NM_HOSTAPD_CRYPTO_ENTERPRISE config WIFI_NM_WPA_SUPPLICANT_BSS_MAX_IDLE_TIME int "BSS max idle timeout in seconds" From 2ca3fdb4fccf05733267b85a34fb66e06cdaf029 Mon Sep 17 00:00:00 2001 From: Jordan Yates Date: Mon, 7 Jul 2025 12:06:01 +1000 Subject: [PATCH 26/37] [nrf fromtree] modules: hostap: fix connection termination report If the disconnect event is raised before the network has been connected, report the connection result as `WIFI_STATUS_CONN_FAIL`, instead of as `WIFI_REASON_DISCONN_SUCCESS`, which is interpretted as `WIFI_STATUS_CONN_SUCCESS`. Signed-off-by: Jordan Yates (cherry picked from commit 9245f58b4ccf32b261341fdfc09e993b7eba74f0) --- modules/hostap/src/supp_events.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/hostap/src/supp_events.c b/modules/hostap/src/supp_events.c index 596ffa6ff56..f13552e8416 100644 --- a/modules/hostap/src/supp_events.c +++ b/modules/hostap/src/supp_events.c @@ -224,20 +224,24 @@ int supplicant_send_wifi_mgmt_conn_event(void *ctx, int status_code) int supplicant_send_wifi_mgmt_disc_event(void *ctx, int reason_code) { struct wpa_supplicant *wpa_s = ctx; - int status = wpas_to_wifi_mgmt_disconn_status(reason_code); enum net_event_wifi_cmd event; + int status; if (!wpa_s || !wpa_s->current_ssid) { return -EINVAL; } if (wpa_s->wpa_state >= WPA_COMPLETED) { + /* Disconnect event code & status */ + status = wpas_to_wifi_mgmt_disconn_status(reason_code); if (wpa_s->current_ssid->mode == WPAS_MODE_AP) { event = NET_EVENT_WIFI_CMD_AP_DISABLE_RESULT; } else { event = NET_EVENT_WIFI_CMD_DISCONNECT_RESULT; } } else { + /* Connect event code & status */ + status = WIFI_STATUS_CONN_FAIL; if (wpa_s->current_ssid->mode == WPAS_MODE_AP) { event = NET_EVENT_WIFI_CMD_AP_ENABLE_RESULT; } else { From dc431e3acb4d93be61bfcc5c10285236e3abecb0 Mon Sep 17 00:00:00 2001 From: Flavio Ceolin Date: Tue, 8 Jul 2025 10:26:20 -0700 Subject: [PATCH 27/37] [nrf fromtree] hostap: Set enterprise crypto insecure Set enterprise crypto insecure because certifcate validation is disabled. Signed-off-by: Flavio Ceolin (cherry picked from commit 979fcc0b6e57f0a41ee84ea89045744825c977b1) --- modules/hostap/Kconfig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/hostap/Kconfig b/modules/hostap/Kconfig index 6c8d88483cb..743cbf37204 100644 --- a/modules/hostap/Kconfig +++ b/modules/hostap/Kconfig @@ -198,7 +198,12 @@ config WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE select MBEDTLS_SERVER_NAME_INDICATION if MBEDTLS_BUILTIN select MBEDTLS_X509_CRL_PARSE_C select MBEDTLS_TLS_VERSION_1_2 + select NOT_SECURE depends on !WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE + help + Enable Enterprise Crypto support for WiFi. This feature + is considered NOT SECURE due the lack of certificate + validation. if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE config EAP_TLS From 94d7151311aac2625082c62331325655d694592a Mon Sep 17 00:00:00 2001 From: Gaetan Perrot Date: Tue, 8 Jul 2025 15:51:11 +0900 Subject: [PATCH 28/37] [nrf fromtree] modules: hostap: supp_api: Fix possible null deference Ensure 'params' is not NULL before accessing its fields. Prevents possible null pointer dereference when calling strlen(params->ssid). Delay access to ssid->ssid and ssid->ssid_len until after null check. Prevents potential crash if wpa_s->current_ssid is NULL. Signed-off-by: Gaetan Perrot (cherry picked from commit b6a5202e55cf0f010d523f31f642dc5ebf66eeea) --- modules/hostap/src/supp_api.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/hostap/src/supp_api.c b/modules/hostap/src/supp_api.c index f58a9f7f78a..c459171329b 100644 --- a/modules/hostap/src/supp_api.c +++ b/modules/hostap/src/supp_api.c @@ -1287,8 +1287,8 @@ int supplicant_status(const struct device *dev, struct wifi_iface_status *status struct wpa_ssid *ssid = wpa_s->current_ssid; u8 channel; struct signal_poll_resp signal_poll; - u8 *_ssid = ssid->ssid; - size_t ssid_len = ssid->ssid_len; + u8 *_ssid; + size_t ssid_len; struct status_resp cli_status; int proto; int key_mgmt; @@ -1299,6 +1299,8 @@ int supplicant_status(const struct device *dev, struct wifi_iface_status *status goto out; } + _ssid = ssid->ssid; + ssid_len = ssid->ssid_len; proto = ssid->proto; key_mgmt = ssid->key_mgmt; sae_pwe = wpa_s->conf->sae_pwe; @@ -1489,9 +1491,15 @@ int supplicant_11k_cfg(const struct device *dev, struct wifi_11k_params *params) int supplicant_11k_neighbor_request(const struct device *dev, struct wifi_11k_params *params) { - int ssid_len = strlen(params->ssid); + int ssid_len; - if (params != NULL && ssid_len > 0) { + if (params == NULL) { + return -1; + } + + ssid_len = strlen(params->ssid); + + if (ssid_len > 0) { if (ssid_len > WIFI_SSID_MAX_LEN) { wpa_printf(MSG_ERROR, "%s: ssid too long %u", __func__, ssid_len); From 4044ebb714269858423d6f01667ef825bb990933 Mon Sep 17 00:00:00 2001 From: Gaetan Perrot Date: Tue, 8 Jul 2025 16:27:20 +0900 Subject: [PATCH 29/37] [nrf fromtree] modules: hostap: hapd_events: Fix possible null deference Move usage of ap_ctx pointers after null checks to prevent potential crashes. Signed-off-by: Gaetan Perrot (cherry picked from commit cd855104f24d06707373b70cd6fa73e645d8e4ce) --- modules/hostap/src/hapd_events.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/hostap/src/hapd_events.c b/modules/hostap/src/hapd_events.c index c71015f7f92..a548ab1fa73 100644 --- a/modules/hostap/src/hapd_events.c +++ b/modules/hostap/src/hapd_events.c @@ -62,13 +62,15 @@ int hostapd_send_wifi_mgmt_ap_sta_event(struct hostapd_iface *ap_ctx, void *data) { struct sta_info *sta = data; - char *ifname = ap_ctx->bss[0]->conf->iface; + char *ifname; struct wifi_ap_sta_info sta_info = { 0 }; if (!ap_ctx || !sta) { return -EINVAL; } + ifname = ap_ctx->bss[0]->conf->iface; + memcpy(sta_info.mac, sta->addr, sizeof(sta_info.mac)); if (event == NET_EVENT_WIFI_CMD_AP_STA_CONNECTED) { From 380a770fc76edb9fd4c615557e6656ea6459d768 Mon Sep 17 00:00:00 2001 From: Gaetan Perrot Date: Tue, 8 Jul 2025 16:29:09 +0900 Subject: [PATCH 30/37] [nrf fromtree] modules: hostap: supp_events: Fix possible null deference Move usage of ap_ctx pointers after null checks to prevent potential crashes. Signed-off-by: Gaetan Perrot (cherry picked from commit 8a565c0a2b8c12b1ea0298367a0ff525c1ae20b8) --- modules/hostap/src/supp_events.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/hostap/src/supp_events.c b/modules/hostap/src/supp_events.c index f13552e8416..c4175a416be 100644 --- a/modules/hostap/src/supp_events.c +++ b/modules/hostap/src/supp_events.c @@ -304,13 +304,15 @@ int supplicant_send_wifi_mgmt_ap_sta_event(void *ctx, { struct sta_info *sta = data; struct wpa_supplicant *ap_ctx = ctx; - char *ifname = ap_ctx->ifname; + char *ifname; struct wifi_ap_sta_info sta_info = { 0 }; if (!ap_ctx || !sta) { return -EINVAL; } + ifname = ap_ctx->ifname; + memcpy(sta_info.mac, sta->addr, sizeof(sta_info.mac)); if (event == NET_EVENT_WIFI_CMD_AP_STA_CONNECTED) { From 8140a8c9d63ce1282f2b380369167834bd0d2a8d Mon Sep 17 00:00:00 2001 From: Ravi Dondaputi Date: Tue, 15 Jul 2025 12:48:46 +0530 Subject: [PATCH 31/37] Revert "[nrf fromlist] net: lib: wifi_credentials: Add support for Enterprise security" This reverts commit 8b0ef98754f3c9d2cf471db7ace65dd35cffe832. Signed-off-by: Ravi Dondaputi --- subsys/net/lib/wifi_credentials/Kconfig | 26 -- .../wifi_credentials/wifi_credentials_shell.c | 224 ++---------------- 2 files changed, 16 insertions(+), 234 deletions(-) diff --git a/subsys/net/lib/wifi_credentials/Kconfig b/subsys/net/lib/wifi_credentials/Kconfig index d0843d689a2..f50e210b080 100644 --- a/subsys/net/lib/wifi_credentials/Kconfig +++ b/subsys/net/lib/wifi_credentials/Kconfig @@ -73,32 +73,6 @@ config WIFI_CREDENTIALS_CONNECT_STORED_CONNECTION_TIMEOUT help Wait period before falling back to the next entry in the list of stored SSIDs. - -if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE - -config WIFI_CREDENTIALS_RUNTIME_CERTIFICATES - bool "Provide Wi-Fi enterprise security certificates at run-time" - select TLS_CREDENTIALS - select TLS_CREDENTIALS_SHELL - select BASE64 - default y if WIFI_SHELL_RUNTIME_CERTIFICATES - help - This option enables providing Wi-Fi enterprise security certificates at run-time. - Uses the TLS credentials subsystem to store and manage the certificates. - -if WIFI_CREDENTIALS_RUNTIME_CERTIFICATES - -config HEAP_MEM_POOL_ADD_SIZE_WIFI_CERT - int "Wi-Fi enterprise security certificates memory pool size" - # STA - 6 certs and each assume 1500 bytes - default 12000 - help - The size of the memory pool used by the Wi-Fi enterprise security certificates. - -endif # WIFI_CREDENTIALS_RUNTIME_CERTIFICATES - -endif # WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE - endif # WIFI_CREDENTIALS_CONNECT_STORED endif # WIFI_CREDENTIALS diff --git a/subsys/net/lib/wifi_credentials/wifi_credentials_shell.c b/subsys/net/lib/wifi_credentials/wifi_credentials_shell.c index c5b8c2a88a3..4a51de48e12 100644 --- a/subsys/net/lib/wifi_credentials/wifi_credentials_shell.c +++ b/subsys/net/lib/wifi_credentials/wifi_credentials_shell.c @@ -22,33 +22,10 @@ #include -LOG_MODULE_REGISTER(wifi_credentials_shell, CONFIG_WIFI_CREDENTIALS_LOG_LEVEL); - #define MAX_BANDS_STR_LEN 64 #define MACSTR "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx" #ifdef CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE -#ifdef CONFIG_WIFI_CREDENTIALS_RUNTIME_CERTIFICATES -#include -enum wifi_enterprise_cert_sec_tags { - WIFI_CERT_CA_SEC_TAG = 0x1020001, - WIFI_CERT_CLIENT_KEY_SEC_TAG, - WIFI_CERT_SERVER_KEY_SEC_TAG, - WIFI_CERT_CLIENT_SEC_TAG, - WIFI_CERT_SERVER_SEC_TAG, - /* Phase 2 */ - WIFI_CERT_CA_P2_SEC_TAG, - WIFI_CERT_CLIENT_KEY_P2_SEC_TAG, - WIFI_CERT_CLIENT_P2_SEC_TAG, -}; - -struct wifi_cert_data { - enum tls_credential_type type; - uint32_t sec_tag; - uint8_t **data; - size_t *len; -}; -#else static const char ca_cert_test[] = { #include '\0' @@ -75,184 +52,25 @@ static const char client_cert2_test[] = { static const char client_key2_test[] = { #include '\0'}; -#endif /* CONFIG_WIFI_CREDENTIALS_RUNTIME_CERTIFICATES */ #endif /* CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE */ #if defined CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE -#ifdef CONFIG_WIFI_CREDENTIALS_RUNTIME_CERTIFICATES - -struct wifi_enterprise_creds_params enterprise_creds_params; - -static int process_certificates(struct wifi_cert_data *certs, size_t cert_count) -{ - for (size_t i = 0; i < cert_count; i++) { - int err; - size_t len = 0; - uint8_t *cert_tmp; - - err = tls_credential_get(certs[i].sec_tag, certs[i].type, NULL, &len); - if (err != -EFBIG) { - LOG_ERR("Failed to get credential tag: %d length, err: %d", - certs[i].sec_tag, err); - return err; - } - - cert_tmp = k_malloc(len); - if (!cert_tmp) { - LOG_ERR("Failed to allocate memory for credential tag: %d", - certs[i].sec_tag); - return -ENOMEM; - } - - err = tls_credential_get(certs[i].sec_tag, certs[i].type, cert_tmp, &len); - if (err) { - LOG_ERR("Failed to get credential tag: %d", certs[i].sec_tag); - k_free(cert_tmp); - return err; - } - - *certs[i].data = cert_tmp; - *certs[i].len = len; - } - - return 0; -} - -static void set_enterprise_creds_params(struct wifi_enterprise_creds_params *params, - bool is_ap) -{ - struct wifi_cert_data certs_common[] = { - { - .type = TLS_CREDENTIAL_CA_CERTIFICATE, - .sec_tag = WIFI_CERT_CA_SEC_TAG, - .data = ¶ms->ca_cert, - .len = ¶ms->ca_cert_len, - }, - }; - - struct wifi_cert_data certs_sta[] = { - { - .type = TLS_CREDENTIAL_PRIVATE_KEY, - .sec_tag = WIFI_CERT_CLIENT_KEY_SEC_TAG, - .data = ¶ms->client_key, - .len = ¶ms->client_key_len, - }, - { - .type = TLS_CREDENTIAL_PUBLIC_CERTIFICATE, - .sec_tag = WIFI_CERT_CLIENT_SEC_TAG, - .data = ¶ms->client_cert, - .len = ¶ms->client_cert_len, - }, - { - .type = TLS_CREDENTIAL_CA_CERTIFICATE, - .sec_tag = WIFI_CERT_CA_P2_SEC_TAG, - .data = ¶ms->ca_cert2, - .len = ¶ms->ca_cert2_len, - }, - { - .type = TLS_CREDENTIAL_PRIVATE_KEY, - .sec_tag = WIFI_CERT_CLIENT_KEY_P2_SEC_TAG, - .data = ¶ms->client_key2, - .len = ¶ms->client_key2_len, - }, - { - .type = TLS_CREDENTIAL_PUBLIC_CERTIFICATE, - .sec_tag = WIFI_CERT_CLIENT_P2_SEC_TAG, - .data = ¶ms->client_cert2, - .len = ¶ms->client_cert2_len, - }, - }; - - memset(params, 0, sizeof(*params)); - - /* Process common certificates */ - if (process_certificates(certs_common, ARRAY_SIZE(certs_common)) != 0) { - goto cleanup; - } - - /* Process STA-specific certificates */ - if (!is_ap) { - if (process_certificates(certs_sta, ARRAY_SIZE(certs_sta)) != 0) { - goto cleanup; - } - } - - memcpy(&enterprise_creds_params, params, sizeof(*params)); - return; - -cleanup: - for (size_t i = 0; i < ARRAY_SIZE(certs_common); i++) { - if (certs_common[i].data) { - k_free(*certs_common[i].data); - *certs_common[i].data = NULL; - } - } - - if (!is_ap) { - for (size_t i = 0; i < ARRAY_SIZE(certs_sta); i++) { - if (certs_sta[i].data) { - k_free(*certs_sta[i].data); - *certs_sta[i].data = NULL; - } - } - } - -} - -static void clear_enterprise_creds_params(struct wifi_enterprise_creds_params *params) -{ - if (params == NULL) { - return; - } - - const uint8_t *certs[] = { - params->ca_cert, - params->client_cert, - params->client_key, - params->ca_cert2, - params->client_cert2, - params->client_key2, - }; - - for (size_t i = 0; i < ARRAY_SIZE(certs); i++) { - k_free((void *)certs[i]); - } - memset(params, 0, sizeof(*params)); -} -#else -static void set_enterprise_creds_params(struct wifi_enterprise_creds_params *params, - bool is_ap) -{ - params->ca_cert = (uint8_t *)ca_cert_test; - params->ca_cert_len = ARRAY_SIZE(ca_cert_test); - - if (!is_ap) { - params->client_cert = (uint8_t *)client_cert_test; - params->client_cert_len = ARRAY_SIZE(client_cert_test); - params->client_key = (uint8_t *)client_key_test; - params->client_key_len = ARRAY_SIZE(client_key_test); - params->ca_cert2 = (uint8_t *)ca_cert2_test; - params->ca_cert2_len = ARRAY_SIZE(ca_cert2_test); - params->client_cert2 = (uint8_t *)client_cert2_test; - params->client_cert2_len = ARRAY_SIZE(client_cert2_test); - params->client_key2 = (uint8_t *)client_key2_test; - params->client_key2_len = ARRAY_SIZE(client_key2_test); - - return; - } -} -#endif /* CONFIG_WIFI_CREDENTIALS_RUNTIME_CERTIFICATES */ - -static int wifi_set_enterprise_creds(const struct shell *sh, struct net_if *iface, - bool is_ap) +static int cmd_wifi_set_enterprise_creds(const struct shell *sh, struct net_if *iface) { struct wifi_enterprise_creds_params params = {0}; -#ifdef CONFIG_WIFI_SHELL_RUNTIME_CERTIFICATES - clear_enterprise_creds_params(&enterprise_creds_params); -#endif /* CONFIG_WIFI_SHELL_RUNTIME_CERTIFICATES */ - - set_enterprise_creds_params(¶ms, is_ap); + params.ca_cert = (uint8_t *)ca_cert_test; + params.ca_cert_len = ARRAY_SIZE(ca_cert_test); + params.client_cert = (uint8_t *)client_cert_test; + params.client_cert_len = ARRAY_SIZE(client_cert_test); + params.client_key = (uint8_t *)client_key_test; + params.client_key_len = ARRAY_SIZE(client_key_test); + params.ca_cert2 = (uint8_t *)ca_cert2_test; + params.ca_cert2_len = ARRAY_SIZE(ca_cert2_test); + params.client_cert2 = (uint8_t *)client_cert2_test; + params.client_cert2_len = ARRAY_SIZE(client_cert2_test); + params.client_key2 = (uint8_t *)client_key2_test; + params.client_key2_len = ARRAY_SIZE(client_key2_test); if (net_mgmt(NET_REQUEST_WIFI_ENTERPRISE_CREDS, iface, ¶ms, sizeof(params))) { shell_warn(sh, "Set enterprise credentials failed\n"); @@ -522,7 +340,7 @@ static int cmd_add_network(const struct shell *sh, size_t argc, char *argv[]) } #ifdef CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE - struct net_if *iface = net_if_get_wifi_sta(); + struct net_if *iface = net_if_get_first_by_type(&NET_L2_GET_NAME(ETHERNET)); /* Load the enterprise credentials if needed */ if (creds.header.type == WIFI_SECURITY_TYPE_EAP_TLS || @@ -530,7 +348,7 @@ static int cmd_add_network(const struct shell *sh, size_t argc, char *argv[]) creds.header.type == WIFI_SECURITY_TYPE_EAP_PEAP_GTC || creds.header.type == WIFI_SECURITY_TYPE_EAP_TTLS_MSCHAPV2 || creds.header.type == WIFI_SECURITY_TYPE_EAP_PEAP_TLS) { - wifi_set_enterprise_creds(sh, iface, 0); + cmd_wifi_set_enterprise_creds(sh, iface); } #endif /* CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE */ @@ -550,12 +368,6 @@ static int cmd_delete_network(const struct shell *sh, size_t argc, char *argv[]) } shell_print(sh, "\tDeleting network ssid: \"%s\", ssid_len: %d", argv[1], strlen(argv[1])); - -#ifdef CONFIG_WIFI_SHELL_RUNTIME_CERTIFICATES - /* Clear the certificates */ - clear_enterprise_creds_params(&enterprise_creds_params); -#endif /* CONFIG_WIFI_SHELL_RUNTIME_CERTIFICATES */ - return wifi_credentials_delete_by_ssid(argv[1], strlen(argv[1])); } @@ -569,11 +381,7 @@ static int cmd_list_networks(const struct shell *sh, size_t argc, char *argv[]) static int cmd_auto_connect(const struct shell *sh, size_t argc, char *argv[]) { - struct net_if *iface = net_if_get_wifi_sta(); - -#ifdef CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE - wifi_set_enterprise_creds(sh, iface, 0); -#endif /* CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE */ + struct net_if *iface = net_if_get_first_by_type(&NET_L2_GET_NAME(ETHERNET)); int rc = net_mgmt(NET_REQUEST_WIFI_CONNECT_STORED, iface, NULL, 0); if (rc) { From baa495ec6abf56b88e3b1d2d12c123a9cabbfe9e Mon Sep 17 00:00:00 2001 From: Ravi Dondaputi Date: Tue, 15 Apr 2025 17:32:28 +0530 Subject: [PATCH 32/37] [nrf fromtree] net: lib: wifi_credentials: Add support for Enterprise security Add support for configuring enterprise mode security. Signed-off-by: Ravi Dondaputi (cherry picked from commit d289bed4aff64c112c743bad73129a39c1ae6627) --- subsys/net/lib/wifi_credentials/Kconfig | 26 ++ .../wifi_credentials/wifi_credentials_shell.c | 224 ++++++++++++++++-- 2 files changed, 234 insertions(+), 16 deletions(-) diff --git a/subsys/net/lib/wifi_credentials/Kconfig b/subsys/net/lib/wifi_credentials/Kconfig index f50e210b080..d0843d689a2 100644 --- a/subsys/net/lib/wifi_credentials/Kconfig +++ b/subsys/net/lib/wifi_credentials/Kconfig @@ -73,6 +73,32 @@ config WIFI_CREDENTIALS_CONNECT_STORED_CONNECTION_TIMEOUT help Wait period before falling back to the next entry in the list of stored SSIDs. + +if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE + +config WIFI_CREDENTIALS_RUNTIME_CERTIFICATES + bool "Provide Wi-Fi enterprise security certificates at run-time" + select TLS_CREDENTIALS + select TLS_CREDENTIALS_SHELL + select BASE64 + default y if WIFI_SHELL_RUNTIME_CERTIFICATES + help + This option enables providing Wi-Fi enterprise security certificates at run-time. + Uses the TLS credentials subsystem to store and manage the certificates. + +if WIFI_CREDENTIALS_RUNTIME_CERTIFICATES + +config HEAP_MEM_POOL_ADD_SIZE_WIFI_CERT + int "Wi-Fi enterprise security certificates memory pool size" + # STA - 6 certs and each assume 1500 bytes + default 12000 + help + The size of the memory pool used by the Wi-Fi enterprise security certificates. + +endif # WIFI_CREDENTIALS_RUNTIME_CERTIFICATES + +endif # WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE + endif # WIFI_CREDENTIALS_CONNECT_STORED endif # WIFI_CREDENTIALS diff --git a/subsys/net/lib/wifi_credentials/wifi_credentials_shell.c b/subsys/net/lib/wifi_credentials/wifi_credentials_shell.c index 4a51de48e12..c5b8c2a88a3 100644 --- a/subsys/net/lib/wifi_credentials/wifi_credentials_shell.c +++ b/subsys/net/lib/wifi_credentials/wifi_credentials_shell.c @@ -22,10 +22,33 @@ #include +LOG_MODULE_REGISTER(wifi_credentials_shell, CONFIG_WIFI_CREDENTIALS_LOG_LEVEL); + #define MAX_BANDS_STR_LEN 64 #define MACSTR "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx" #ifdef CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE +#ifdef CONFIG_WIFI_CREDENTIALS_RUNTIME_CERTIFICATES +#include +enum wifi_enterprise_cert_sec_tags { + WIFI_CERT_CA_SEC_TAG = 0x1020001, + WIFI_CERT_CLIENT_KEY_SEC_TAG, + WIFI_CERT_SERVER_KEY_SEC_TAG, + WIFI_CERT_CLIENT_SEC_TAG, + WIFI_CERT_SERVER_SEC_TAG, + /* Phase 2 */ + WIFI_CERT_CA_P2_SEC_TAG, + WIFI_CERT_CLIENT_KEY_P2_SEC_TAG, + WIFI_CERT_CLIENT_P2_SEC_TAG, +}; + +struct wifi_cert_data { + enum tls_credential_type type; + uint32_t sec_tag; + uint8_t **data; + size_t *len; +}; +#else static const char ca_cert_test[] = { #include '\0' @@ -52,25 +75,184 @@ static const char client_cert2_test[] = { static const char client_key2_test[] = { #include '\0'}; +#endif /* CONFIG_WIFI_CREDENTIALS_RUNTIME_CERTIFICATES */ #endif /* CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE */ #if defined CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE -static int cmd_wifi_set_enterprise_creds(const struct shell *sh, struct net_if *iface) +#ifdef CONFIG_WIFI_CREDENTIALS_RUNTIME_CERTIFICATES + +struct wifi_enterprise_creds_params enterprise_creds_params; + +static int process_certificates(struct wifi_cert_data *certs, size_t cert_count) +{ + for (size_t i = 0; i < cert_count; i++) { + int err; + size_t len = 0; + uint8_t *cert_tmp; + + err = tls_credential_get(certs[i].sec_tag, certs[i].type, NULL, &len); + if (err != -EFBIG) { + LOG_ERR("Failed to get credential tag: %d length, err: %d", + certs[i].sec_tag, err); + return err; + } + + cert_tmp = k_malloc(len); + if (!cert_tmp) { + LOG_ERR("Failed to allocate memory for credential tag: %d", + certs[i].sec_tag); + return -ENOMEM; + } + + err = tls_credential_get(certs[i].sec_tag, certs[i].type, cert_tmp, &len); + if (err) { + LOG_ERR("Failed to get credential tag: %d", certs[i].sec_tag); + k_free(cert_tmp); + return err; + } + + *certs[i].data = cert_tmp; + *certs[i].len = len; + } + + return 0; +} + +static void set_enterprise_creds_params(struct wifi_enterprise_creds_params *params, + bool is_ap) +{ + struct wifi_cert_data certs_common[] = { + { + .type = TLS_CREDENTIAL_CA_CERTIFICATE, + .sec_tag = WIFI_CERT_CA_SEC_TAG, + .data = ¶ms->ca_cert, + .len = ¶ms->ca_cert_len, + }, + }; + + struct wifi_cert_data certs_sta[] = { + { + .type = TLS_CREDENTIAL_PRIVATE_KEY, + .sec_tag = WIFI_CERT_CLIENT_KEY_SEC_TAG, + .data = ¶ms->client_key, + .len = ¶ms->client_key_len, + }, + { + .type = TLS_CREDENTIAL_PUBLIC_CERTIFICATE, + .sec_tag = WIFI_CERT_CLIENT_SEC_TAG, + .data = ¶ms->client_cert, + .len = ¶ms->client_cert_len, + }, + { + .type = TLS_CREDENTIAL_CA_CERTIFICATE, + .sec_tag = WIFI_CERT_CA_P2_SEC_TAG, + .data = ¶ms->ca_cert2, + .len = ¶ms->ca_cert2_len, + }, + { + .type = TLS_CREDENTIAL_PRIVATE_KEY, + .sec_tag = WIFI_CERT_CLIENT_KEY_P2_SEC_TAG, + .data = ¶ms->client_key2, + .len = ¶ms->client_key2_len, + }, + { + .type = TLS_CREDENTIAL_PUBLIC_CERTIFICATE, + .sec_tag = WIFI_CERT_CLIENT_P2_SEC_TAG, + .data = ¶ms->client_cert2, + .len = ¶ms->client_cert2_len, + }, + }; + + memset(params, 0, sizeof(*params)); + + /* Process common certificates */ + if (process_certificates(certs_common, ARRAY_SIZE(certs_common)) != 0) { + goto cleanup; + } + + /* Process STA-specific certificates */ + if (!is_ap) { + if (process_certificates(certs_sta, ARRAY_SIZE(certs_sta)) != 0) { + goto cleanup; + } + } + + memcpy(&enterprise_creds_params, params, sizeof(*params)); + return; + +cleanup: + for (size_t i = 0; i < ARRAY_SIZE(certs_common); i++) { + if (certs_common[i].data) { + k_free(*certs_common[i].data); + *certs_common[i].data = NULL; + } + } + + if (!is_ap) { + for (size_t i = 0; i < ARRAY_SIZE(certs_sta); i++) { + if (certs_sta[i].data) { + k_free(*certs_sta[i].data); + *certs_sta[i].data = NULL; + } + } + } + +} + +static void clear_enterprise_creds_params(struct wifi_enterprise_creds_params *params) +{ + if (params == NULL) { + return; + } + + const uint8_t *certs[] = { + params->ca_cert, + params->client_cert, + params->client_key, + params->ca_cert2, + params->client_cert2, + params->client_key2, + }; + + for (size_t i = 0; i < ARRAY_SIZE(certs); i++) { + k_free((void *)certs[i]); + } + memset(params, 0, sizeof(*params)); +} +#else +static void set_enterprise_creds_params(struct wifi_enterprise_creds_params *params, + bool is_ap) +{ + params->ca_cert = (uint8_t *)ca_cert_test; + params->ca_cert_len = ARRAY_SIZE(ca_cert_test); + + if (!is_ap) { + params->client_cert = (uint8_t *)client_cert_test; + params->client_cert_len = ARRAY_SIZE(client_cert_test); + params->client_key = (uint8_t *)client_key_test; + params->client_key_len = ARRAY_SIZE(client_key_test); + params->ca_cert2 = (uint8_t *)ca_cert2_test; + params->ca_cert2_len = ARRAY_SIZE(ca_cert2_test); + params->client_cert2 = (uint8_t *)client_cert2_test; + params->client_cert2_len = ARRAY_SIZE(client_cert2_test); + params->client_key2 = (uint8_t *)client_key2_test; + params->client_key2_len = ARRAY_SIZE(client_key2_test); + + return; + } +} +#endif /* CONFIG_WIFI_CREDENTIALS_RUNTIME_CERTIFICATES */ + +static int wifi_set_enterprise_creds(const struct shell *sh, struct net_if *iface, + bool is_ap) { struct wifi_enterprise_creds_params params = {0}; - params.ca_cert = (uint8_t *)ca_cert_test; - params.ca_cert_len = ARRAY_SIZE(ca_cert_test); - params.client_cert = (uint8_t *)client_cert_test; - params.client_cert_len = ARRAY_SIZE(client_cert_test); - params.client_key = (uint8_t *)client_key_test; - params.client_key_len = ARRAY_SIZE(client_key_test); - params.ca_cert2 = (uint8_t *)ca_cert2_test; - params.ca_cert2_len = ARRAY_SIZE(ca_cert2_test); - params.client_cert2 = (uint8_t *)client_cert2_test; - params.client_cert2_len = ARRAY_SIZE(client_cert2_test); - params.client_key2 = (uint8_t *)client_key2_test; - params.client_key2_len = ARRAY_SIZE(client_key2_test); +#ifdef CONFIG_WIFI_SHELL_RUNTIME_CERTIFICATES + clear_enterprise_creds_params(&enterprise_creds_params); +#endif /* CONFIG_WIFI_SHELL_RUNTIME_CERTIFICATES */ + + set_enterprise_creds_params(¶ms, is_ap); if (net_mgmt(NET_REQUEST_WIFI_ENTERPRISE_CREDS, iface, ¶ms, sizeof(params))) { shell_warn(sh, "Set enterprise credentials failed\n"); @@ -340,7 +522,7 @@ static int cmd_add_network(const struct shell *sh, size_t argc, char *argv[]) } #ifdef CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE - struct net_if *iface = net_if_get_first_by_type(&NET_L2_GET_NAME(ETHERNET)); + struct net_if *iface = net_if_get_wifi_sta(); /* Load the enterprise credentials if needed */ if (creds.header.type == WIFI_SECURITY_TYPE_EAP_TLS || @@ -348,7 +530,7 @@ static int cmd_add_network(const struct shell *sh, size_t argc, char *argv[]) creds.header.type == WIFI_SECURITY_TYPE_EAP_PEAP_GTC || creds.header.type == WIFI_SECURITY_TYPE_EAP_TTLS_MSCHAPV2 || creds.header.type == WIFI_SECURITY_TYPE_EAP_PEAP_TLS) { - cmd_wifi_set_enterprise_creds(sh, iface); + wifi_set_enterprise_creds(sh, iface, 0); } #endif /* CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE */ @@ -368,6 +550,12 @@ static int cmd_delete_network(const struct shell *sh, size_t argc, char *argv[]) } shell_print(sh, "\tDeleting network ssid: \"%s\", ssid_len: %d", argv[1], strlen(argv[1])); + +#ifdef CONFIG_WIFI_SHELL_RUNTIME_CERTIFICATES + /* Clear the certificates */ + clear_enterprise_creds_params(&enterprise_creds_params); +#endif /* CONFIG_WIFI_SHELL_RUNTIME_CERTIFICATES */ + return wifi_credentials_delete_by_ssid(argv[1], strlen(argv[1])); } @@ -381,7 +569,11 @@ static int cmd_list_networks(const struct shell *sh, size_t argc, char *argv[]) static int cmd_auto_connect(const struct shell *sh, size_t argc, char *argv[]) { - struct net_if *iface = net_if_get_first_by_type(&NET_L2_GET_NAME(ETHERNET)); + struct net_if *iface = net_if_get_wifi_sta(); + +#ifdef CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE + wifi_set_enterprise_creds(sh, iface, 0); +#endif /* CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE */ int rc = net_mgmt(NET_REQUEST_WIFI_CONNECT_STORED, iface, NULL, 0); if (rc) { From eaebd837d42046f3126195ac5ccc56b04c5d7840 Mon Sep 17 00:00:00 2001 From: Ravi Dondaputi Date: Tue, 15 Jul 2025 13:58:36 +0530 Subject: [PATCH 33/37] Revert "[nrf fromlist] drivers: nrf_wifi: Remove station mode from monitor mode" This reverts commit 807abfe0145ad590fa755e555a2b9ef76683ac43. Signed-off-by: Ravi Dondaputi --- drivers/wifi/nrf_wifi/inc/fmac_main.h | 4 +- drivers/wifi/nrf_wifi/inc/wifi_mgmt.h | 2 - drivers/wifi/nrf_wifi/src/fmac_main.c | 10 ++-- drivers/wifi/nrf_wifi/src/net_if.c | 66 +++++++++++++-------------- drivers/wifi/nrf_wifi/src/wifi_mgmt.c | 2 - 5 files changed, 38 insertions(+), 46 deletions(-) diff --git a/drivers/wifi/nrf_wifi/inc/fmac_main.h b/drivers/wifi/nrf_wifi/inc/fmac_main.h index cfe68378ab5..23f96089eb6 100644 --- a/drivers/wifi/nrf_wifi/inc/fmac_main.h +++ b/drivers/wifi/nrf_wifi/inc/fmac_main.h @@ -62,9 +62,6 @@ struct nrf_wifi_vif_ctx_zep { #ifdef CONFIG_NET_STATISTICS_ETHERNET struct net_stats_eth eth_stats; #endif /* CONFIG_NET_STATISTICS_ETHERNET */ -#if defined(CONFIG_NRF70_STA_MODE) || defined(CONFIG_NRF70_RAW_DATA_RX) - bool authorized; -#endif #ifdef CONFIG_NRF70_STA_MODE unsigned int assoc_freq; enum nrf_wifi_fmac_if_carr_state if_carr_state; @@ -75,6 +72,7 @@ struct nrf_wifi_vif_ctx_zep { unsigned char twt_flow_in_progress_map; struct wifi_ps_config *ps_info; bool ps_config_info_evnt; + bool authorized; bool cookie_resp_received; #ifdef CONFIG_NRF70_DATA_TX struct k_work nrf_wifi_net_iface_work; diff --git a/drivers/wifi/nrf_wifi/inc/wifi_mgmt.h b/drivers/wifi/nrf_wifi/inc/wifi_mgmt.h index a4ae2030210..e2aa91caa48 100644 --- a/drivers/wifi/nrf_wifi/inc/wifi_mgmt.h +++ b/drivers/wifi/nrf_wifi/inc/wifi_mgmt.h @@ -22,7 +22,6 @@ #define WIFI_MGMT_DATA_CTRL_FILTER_SETTING 0xE #define WIFI_ALL_FILTER_SETTING 0xF -#ifdef CONFIG_NRF70_STA_MODE struct twt_interval_float { unsigned short mantissa; unsigned char exponent; @@ -55,7 +54,6 @@ int nrf_wifi_get_power_save_config(const struct device *dev, void nrf_wifi_event_proc_get_power_save_info(void *vif_ctx, struct nrf_wifi_umac_event_power_save_info *ps_info, unsigned int event_len); -#endif /* CONFIG_NRF70_STA_MODE */ #ifdef CONFIG_NRF70_SYSTEM_WITH_RAW_MODES int nrf_wifi_mode(const struct device *dev, diff --git a/drivers/wifi/nrf_wifi/src/fmac_main.c b/drivers/wifi/nrf_wifi/src/fmac_main.c index 92a58be9a09..72055fb0299 100644 --- a/drivers/wifi/nrf_wifi/src/fmac_main.c +++ b/drivers/wifi/nrf_wifi/src/fmac_main.c @@ -350,7 +350,7 @@ int nrf_wifi_reg_domain(const struct device *dev, struct wifi_reg_domain *reg_do goto out; } -#if defined(CONFIG_NRF70_SCAN_ONLY) || defined(CONFIG_NRF70_RAW_DATA_RX) +#ifdef CONFIG_NRF70_SCAN_ONLY if (reg_domain->oper == WIFI_MGMT_SET) { memcpy(reg_domain_info.alpha2, reg_domain->country_code, WIFI_COUNTRY_CODE_LEN); @@ -739,10 +739,10 @@ static int nrf_wifi_drv_main_zep(const struct device *dev) data_config.rate_protection_type = rate_protection_type; callbk_fns.if_carr_state_chg_callbk_fn = nrf_wifi_if_carr_state_chg; callbk_fns.rx_frm_callbk_fn = nrf_wifi_if_rx_frm; -#endif #if defined(CONFIG_NRF70_RAW_DATA_RX) || defined(CONFIG_NRF70_PROMISC_DATA_RX) callbk_fns.sniffer_callbk_fn = nrf_wifi_if_sniffer_rx_frm; #endif /* CONFIG_NRF70_RAW_DATA_RX || CONFIG_NRF70_PROMISC_DATA_RX */ +#endif rx_buf_pools[0].num_bufs = rx1_num_bufs; rx_buf_pools[1].num_bufs = rx2_num_bufs; rx_buf_pools[2].num_bufs = rx3_num_bufs; @@ -756,7 +756,6 @@ static int nrf_wifi_drv_main_zep(const struct device *dev) callbk_fns.scan_start_callbk_fn = nrf_wifi_event_proc_scan_start_zep; callbk_fns.scan_done_callbk_fn = nrf_wifi_event_proc_scan_done_zep; callbk_fns.reg_change_callbk_fn = reg_change_callbk_fn; - callbk_fns.event_get_reg = nrf_wifi_event_get_reg_zep; #ifdef CONFIG_NET_L2_WIFI_MGMT callbk_fns.disp_scan_res_callbk_fn = nrf_wifi_event_proc_disp_scan_res_zep; #endif /* CONFIG_NET_L2_WIFI_MGMT */ @@ -770,6 +769,7 @@ static int nrf_wifi_drv_main_zep(const struct device *dev) callbk_fns.twt_config_callbk_fn = nrf_wifi_event_proc_twt_setup_zep; callbk_fns.twt_teardown_callbk_fn = nrf_wifi_event_proc_twt_teardown_zep; callbk_fns.twt_sleep_callbk_fn = nrf_wifi_event_proc_twt_sleep_zep; + callbk_fns.event_get_reg = nrf_wifi_event_get_reg_zep; callbk_fns.event_get_ps_info = nrf_wifi_event_proc_get_power_save_info; callbk_fns.cookie_rsp_callbk_fn = nrf_wifi_event_proc_cookie_rsp; callbk_fns.process_rssi_from_rx = nrf_wifi_process_rssi_from_rx; @@ -858,12 +858,10 @@ static const struct wifi_mgmt_ops nrf_wifi_mgmt_ops = { .get_stats = nrf_wifi_stats_get, .reset_stats = nrf_wifi_stats_reset, #endif /* CONFIG_NET_STATISTICS_WIFI */ -#if defined(CONFIG_NRF70_STA_MODE) || defined(CONFIG_NRF70_RAW_DATA_RX) - .reg_domain = nrf_wifi_reg_domain, -#endif #ifdef CONFIG_NRF70_STA_MODE .set_power_save = nrf_wifi_set_power_save, .set_twt = nrf_wifi_set_twt, + .reg_domain = nrf_wifi_reg_domain, .get_power_save_config = nrf_wifi_get_power_save_config, .set_rts_threshold = nrf_wifi_set_rts_threshold, .get_rts_threshold = nrf_wifi_get_rts_threshold, diff --git a/drivers/wifi/nrf_wifi/src/net_if.c b/drivers/wifi/nrf_wifi/src/net_if.c index bf6fa06f525..9108a0dab3b 100644 --- a/drivers/wifi/nrf_wifi/src/net_if.c +++ b/drivers/wifi/nrf_wifi/src/net_if.c @@ -239,6 +239,39 @@ static void nrf_wifi_net_iface_work_handler(struct k_work *work) } } +#if defined(CONFIG_NRF70_RAW_DATA_RX) || defined(CONFIG_NRF70_PROMISC_DATA_RX) +void nrf_wifi_if_sniffer_rx_frm(void *os_vif_ctx, void *frm, + struct raw_rx_pkt_header *raw_rx_hdr, + bool pkt_free) +{ + struct nrf_wifi_vif_ctx_zep *vif_ctx_zep = os_vif_ctx; + struct net_if *iface = vif_ctx_zep->zep_net_if_ctx; + struct net_pkt *pkt; + struct nrf_wifi_ctx_zep *rpu_ctx_zep = vif_ctx_zep->rpu_ctx_zep; + struct nrf_wifi_fmac_dev_ctx *fmac_dev_ctx = rpu_ctx_zep->rpu_ctx; + struct nrf_wifi_sys_fmac_dev_ctx *sys_dev_ctx = NULL; + int ret; + + sys_dev_ctx = wifi_dev_priv(fmac_dev_ctx); + + pkt = net_raw_pkt_from_nbuf(iface, frm, sizeof(struct raw_rx_pkt_header), + raw_rx_hdr, + pkt_free); + if (!pkt) { + LOG_DBG("Failed to allocate net_pkt"); + return; + } + + net_capture_pkt(iface, pkt); + + ret = net_recv_data(iface, pkt); + if (ret < 0) { + LOG_DBG("RCV Packet dropped by NET stack: %d", ret); + net_pkt_unref(pkt); + } +} +#endif /* CONFIG_NRF70_RAW_DATA_RX || CONFIG_NRF70_PROMISC_DATA_RX */ + void nrf_wifi_if_rx_frm(void *os_vif_ctx, void *frm) { struct nrf_wifi_vif_ctx_zep *vif_ctx_zep = os_vif_ctx; @@ -308,39 +341,6 @@ static bool is_eapol(struct net_pkt *pkt) } #endif /* CONFIG_NRF70_DATA_TX */ -#if defined(CONFIG_NRF70_RAW_DATA_RX) || defined(CONFIG_NRF70_PROMISC_DATA_RX) -void nrf_wifi_if_sniffer_rx_frm(void *os_vif_ctx, void *frm, - struct raw_rx_pkt_header *raw_rx_hdr, - bool pkt_free) -{ - struct nrf_wifi_vif_ctx_zep *vif_ctx_zep = os_vif_ctx; - struct net_if *iface = vif_ctx_zep->zep_net_if_ctx; - struct net_pkt *pkt; - struct nrf_wifi_ctx_zep *rpu_ctx_zep = vif_ctx_zep->rpu_ctx_zep; - struct nrf_wifi_fmac_dev_ctx *fmac_dev_ctx = rpu_ctx_zep->rpu_ctx; - struct nrf_wifi_sys_fmac_dev_ctx *sys_dev_ctx = NULL; - int ret; - - sys_dev_ctx = wifi_dev_priv(fmac_dev_ctx); - - pkt = net_raw_pkt_from_nbuf(iface, frm, sizeof(struct raw_rx_pkt_header), - raw_rx_hdr, - pkt_free); - if (!pkt) { - LOG_DBG("Failed to allocate net_pkt"); - return; - } - - net_capture_pkt(iface, pkt); - - ret = net_recv_data(iface, pkt); - if (ret < 0) { - LOG_DBG("RCV Packet dropped by NET stack: %d", ret); - net_pkt_unref(pkt); - } -} -#endif /* CONFIG_NRF70_RAW_DATA_RX || CONFIG_NRF70_PROMISC_DATA_RX */ - enum ethernet_hw_caps nrf_wifi_if_caps_get(const struct device *dev) { enum ethernet_hw_caps caps = (ETHERNET_LINK_10BASE | diff --git a/drivers/wifi/nrf_wifi/src/wifi_mgmt.c b/drivers/wifi/nrf_wifi/src/wifi_mgmt.c index a323faf21dd..64003b8ff25 100644 --- a/drivers/wifi/nrf_wifi/src/wifi_mgmt.c +++ b/drivers/wifi/nrf_wifi/src/wifi_mgmt.c @@ -25,7 +25,6 @@ LOG_MODULE_DECLARE(wifi_nrf, CONFIG_WIFI_NRF70_LOG_LEVEL); extern struct nrf_wifi_drv_priv_zep rpu_drv_priv_zep; -#ifdef CONFIG_NRF70_STA_MODE int nrf_wifi_set_power_save(const struct device *dev, struct wifi_ps_params *params) { @@ -744,7 +743,6 @@ void nrf_wifi_event_proc_twt_sleep_zep(void *vif_ctx, out: k_mutex_unlock(&vif_ctx_zep->vif_lock); } -#endif /* CONFIG_NRF70_STA_MODE */ #ifdef CONFIG_NRF70_SYSTEM_WITH_RAW_MODES int nrf_wifi_mode(const struct device *dev, From 2adb057c85bcc65e8a842866e91d158e06a5d34e Mon Sep 17 00:00:00 2001 From: Kapil Bhatt Date: Thu, 26 Jun 2025 09:06:31 +0000 Subject: [PATCH 34/37] [nrf fromlist] drivers: nrf_wifi: Remove station mode from monitor mode Monitor mode doesn't require station mode. Disabling station mode require necessary changes to work monitor mode. Upstream PR #: 92226 Signed-off-by: Kapil Bhatt --- drivers/wifi/nrf_wifi/inc/fmac_main.h | 4 +- drivers/wifi/nrf_wifi/inc/wifi_mgmt.h | 2 + drivers/wifi/nrf_wifi/src/fmac_main.c | 10 ++-- drivers/wifi/nrf_wifi/src/net_if.c | 66 +++++++++++++-------------- drivers/wifi/nrf_wifi/src/wifi_mgmt.c | 2 + 5 files changed, 46 insertions(+), 38 deletions(-) diff --git a/drivers/wifi/nrf_wifi/inc/fmac_main.h b/drivers/wifi/nrf_wifi/inc/fmac_main.h index 23f96089eb6..cfe68378ab5 100644 --- a/drivers/wifi/nrf_wifi/inc/fmac_main.h +++ b/drivers/wifi/nrf_wifi/inc/fmac_main.h @@ -62,6 +62,9 @@ struct nrf_wifi_vif_ctx_zep { #ifdef CONFIG_NET_STATISTICS_ETHERNET struct net_stats_eth eth_stats; #endif /* CONFIG_NET_STATISTICS_ETHERNET */ +#if defined(CONFIG_NRF70_STA_MODE) || defined(CONFIG_NRF70_RAW_DATA_RX) + bool authorized; +#endif #ifdef CONFIG_NRF70_STA_MODE unsigned int assoc_freq; enum nrf_wifi_fmac_if_carr_state if_carr_state; @@ -72,7 +75,6 @@ struct nrf_wifi_vif_ctx_zep { unsigned char twt_flow_in_progress_map; struct wifi_ps_config *ps_info; bool ps_config_info_evnt; - bool authorized; bool cookie_resp_received; #ifdef CONFIG_NRF70_DATA_TX struct k_work nrf_wifi_net_iface_work; diff --git a/drivers/wifi/nrf_wifi/inc/wifi_mgmt.h b/drivers/wifi/nrf_wifi/inc/wifi_mgmt.h index e2aa91caa48..a4ae2030210 100644 --- a/drivers/wifi/nrf_wifi/inc/wifi_mgmt.h +++ b/drivers/wifi/nrf_wifi/inc/wifi_mgmt.h @@ -22,6 +22,7 @@ #define WIFI_MGMT_DATA_CTRL_FILTER_SETTING 0xE #define WIFI_ALL_FILTER_SETTING 0xF +#ifdef CONFIG_NRF70_STA_MODE struct twt_interval_float { unsigned short mantissa; unsigned char exponent; @@ -54,6 +55,7 @@ int nrf_wifi_get_power_save_config(const struct device *dev, void nrf_wifi_event_proc_get_power_save_info(void *vif_ctx, struct nrf_wifi_umac_event_power_save_info *ps_info, unsigned int event_len); +#endif /* CONFIG_NRF70_STA_MODE */ #ifdef CONFIG_NRF70_SYSTEM_WITH_RAW_MODES int nrf_wifi_mode(const struct device *dev, diff --git a/drivers/wifi/nrf_wifi/src/fmac_main.c b/drivers/wifi/nrf_wifi/src/fmac_main.c index 72055fb0299..92a58be9a09 100644 --- a/drivers/wifi/nrf_wifi/src/fmac_main.c +++ b/drivers/wifi/nrf_wifi/src/fmac_main.c @@ -350,7 +350,7 @@ int nrf_wifi_reg_domain(const struct device *dev, struct wifi_reg_domain *reg_do goto out; } -#ifdef CONFIG_NRF70_SCAN_ONLY +#if defined(CONFIG_NRF70_SCAN_ONLY) || defined(CONFIG_NRF70_RAW_DATA_RX) if (reg_domain->oper == WIFI_MGMT_SET) { memcpy(reg_domain_info.alpha2, reg_domain->country_code, WIFI_COUNTRY_CODE_LEN); @@ -739,10 +739,10 @@ static int nrf_wifi_drv_main_zep(const struct device *dev) data_config.rate_protection_type = rate_protection_type; callbk_fns.if_carr_state_chg_callbk_fn = nrf_wifi_if_carr_state_chg; callbk_fns.rx_frm_callbk_fn = nrf_wifi_if_rx_frm; +#endif #if defined(CONFIG_NRF70_RAW_DATA_RX) || defined(CONFIG_NRF70_PROMISC_DATA_RX) callbk_fns.sniffer_callbk_fn = nrf_wifi_if_sniffer_rx_frm; #endif /* CONFIG_NRF70_RAW_DATA_RX || CONFIG_NRF70_PROMISC_DATA_RX */ -#endif rx_buf_pools[0].num_bufs = rx1_num_bufs; rx_buf_pools[1].num_bufs = rx2_num_bufs; rx_buf_pools[2].num_bufs = rx3_num_bufs; @@ -756,6 +756,7 @@ static int nrf_wifi_drv_main_zep(const struct device *dev) callbk_fns.scan_start_callbk_fn = nrf_wifi_event_proc_scan_start_zep; callbk_fns.scan_done_callbk_fn = nrf_wifi_event_proc_scan_done_zep; callbk_fns.reg_change_callbk_fn = reg_change_callbk_fn; + callbk_fns.event_get_reg = nrf_wifi_event_get_reg_zep; #ifdef CONFIG_NET_L2_WIFI_MGMT callbk_fns.disp_scan_res_callbk_fn = nrf_wifi_event_proc_disp_scan_res_zep; #endif /* CONFIG_NET_L2_WIFI_MGMT */ @@ -769,7 +770,6 @@ static int nrf_wifi_drv_main_zep(const struct device *dev) callbk_fns.twt_config_callbk_fn = nrf_wifi_event_proc_twt_setup_zep; callbk_fns.twt_teardown_callbk_fn = nrf_wifi_event_proc_twt_teardown_zep; callbk_fns.twt_sleep_callbk_fn = nrf_wifi_event_proc_twt_sleep_zep; - callbk_fns.event_get_reg = nrf_wifi_event_get_reg_zep; callbk_fns.event_get_ps_info = nrf_wifi_event_proc_get_power_save_info; callbk_fns.cookie_rsp_callbk_fn = nrf_wifi_event_proc_cookie_rsp; callbk_fns.process_rssi_from_rx = nrf_wifi_process_rssi_from_rx; @@ -858,10 +858,12 @@ static const struct wifi_mgmt_ops nrf_wifi_mgmt_ops = { .get_stats = nrf_wifi_stats_get, .reset_stats = nrf_wifi_stats_reset, #endif /* CONFIG_NET_STATISTICS_WIFI */ +#if defined(CONFIG_NRF70_STA_MODE) || defined(CONFIG_NRF70_RAW_DATA_RX) + .reg_domain = nrf_wifi_reg_domain, +#endif #ifdef CONFIG_NRF70_STA_MODE .set_power_save = nrf_wifi_set_power_save, .set_twt = nrf_wifi_set_twt, - .reg_domain = nrf_wifi_reg_domain, .get_power_save_config = nrf_wifi_get_power_save_config, .set_rts_threshold = nrf_wifi_set_rts_threshold, .get_rts_threshold = nrf_wifi_get_rts_threshold, diff --git a/drivers/wifi/nrf_wifi/src/net_if.c b/drivers/wifi/nrf_wifi/src/net_if.c index 9108a0dab3b..bf6fa06f525 100644 --- a/drivers/wifi/nrf_wifi/src/net_if.c +++ b/drivers/wifi/nrf_wifi/src/net_if.c @@ -239,39 +239,6 @@ static void nrf_wifi_net_iface_work_handler(struct k_work *work) } } -#if defined(CONFIG_NRF70_RAW_DATA_RX) || defined(CONFIG_NRF70_PROMISC_DATA_RX) -void nrf_wifi_if_sniffer_rx_frm(void *os_vif_ctx, void *frm, - struct raw_rx_pkt_header *raw_rx_hdr, - bool pkt_free) -{ - struct nrf_wifi_vif_ctx_zep *vif_ctx_zep = os_vif_ctx; - struct net_if *iface = vif_ctx_zep->zep_net_if_ctx; - struct net_pkt *pkt; - struct nrf_wifi_ctx_zep *rpu_ctx_zep = vif_ctx_zep->rpu_ctx_zep; - struct nrf_wifi_fmac_dev_ctx *fmac_dev_ctx = rpu_ctx_zep->rpu_ctx; - struct nrf_wifi_sys_fmac_dev_ctx *sys_dev_ctx = NULL; - int ret; - - sys_dev_ctx = wifi_dev_priv(fmac_dev_ctx); - - pkt = net_raw_pkt_from_nbuf(iface, frm, sizeof(struct raw_rx_pkt_header), - raw_rx_hdr, - pkt_free); - if (!pkt) { - LOG_DBG("Failed to allocate net_pkt"); - return; - } - - net_capture_pkt(iface, pkt); - - ret = net_recv_data(iface, pkt); - if (ret < 0) { - LOG_DBG("RCV Packet dropped by NET stack: %d", ret); - net_pkt_unref(pkt); - } -} -#endif /* CONFIG_NRF70_RAW_DATA_RX || CONFIG_NRF70_PROMISC_DATA_RX */ - void nrf_wifi_if_rx_frm(void *os_vif_ctx, void *frm) { struct nrf_wifi_vif_ctx_zep *vif_ctx_zep = os_vif_ctx; @@ -341,6 +308,39 @@ static bool is_eapol(struct net_pkt *pkt) } #endif /* CONFIG_NRF70_DATA_TX */ +#if defined(CONFIG_NRF70_RAW_DATA_RX) || defined(CONFIG_NRF70_PROMISC_DATA_RX) +void nrf_wifi_if_sniffer_rx_frm(void *os_vif_ctx, void *frm, + struct raw_rx_pkt_header *raw_rx_hdr, + bool pkt_free) +{ + struct nrf_wifi_vif_ctx_zep *vif_ctx_zep = os_vif_ctx; + struct net_if *iface = vif_ctx_zep->zep_net_if_ctx; + struct net_pkt *pkt; + struct nrf_wifi_ctx_zep *rpu_ctx_zep = vif_ctx_zep->rpu_ctx_zep; + struct nrf_wifi_fmac_dev_ctx *fmac_dev_ctx = rpu_ctx_zep->rpu_ctx; + struct nrf_wifi_sys_fmac_dev_ctx *sys_dev_ctx = NULL; + int ret; + + sys_dev_ctx = wifi_dev_priv(fmac_dev_ctx); + + pkt = net_raw_pkt_from_nbuf(iface, frm, sizeof(struct raw_rx_pkt_header), + raw_rx_hdr, + pkt_free); + if (!pkt) { + LOG_DBG("Failed to allocate net_pkt"); + return; + } + + net_capture_pkt(iface, pkt); + + ret = net_recv_data(iface, pkt); + if (ret < 0) { + LOG_DBG("RCV Packet dropped by NET stack: %d", ret); + net_pkt_unref(pkt); + } +} +#endif /* CONFIG_NRF70_RAW_DATA_RX || CONFIG_NRF70_PROMISC_DATA_RX */ + enum ethernet_hw_caps nrf_wifi_if_caps_get(const struct device *dev) { enum ethernet_hw_caps caps = (ETHERNET_LINK_10BASE | diff --git a/drivers/wifi/nrf_wifi/src/wifi_mgmt.c b/drivers/wifi/nrf_wifi/src/wifi_mgmt.c index 64003b8ff25..a323faf21dd 100644 --- a/drivers/wifi/nrf_wifi/src/wifi_mgmt.c +++ b/drivers/wifi/nrf_wifi/src/wifi_mgmt.c @@ -25,6 +25,7 @@ LOG_MODULE_DECLARE(wifi_nrf, CONFIG_WIFI_NRF70_LOG_LEVEL); extern struct nrf_wifi_drv_priv_zep rpu_drv_priv_zep; +#ifdef CONFIG_NRF70_STA_MODE int nrf_wifi_set_power_save(const struct device *dev, struct wifi_ps_params *params) { @@ -743,6 +744,7 @@ void nrf_wifi_event_proc_twt_sleep_zep(void *vif_ctx, out: k_mutex_unlock(&vif_ctx_zep->vif_lock); } +#endif /* CONFIG_NRF70_STA_MODE */ #ifdef CONFIG_NRF70_SYSTEM_WITH_RAW_MODES int nrf_wifi_mode(const struct device *dev, From 1614913b6ade21f8478ebbc3b437687686e3d2d7 Mon Sep 17 00:00:00 2001 From: Kapil Bhatt Date: Fri, 11 Jul 2025 06:59:19 +0000 Subject: [PATCH 35/37] [nrf fromlist] drivers: nrf_wifi: Fix rpu recovery debug info Rpu recovey debug stats are stored in hal_dev_ctx which is not persistent in case of interface is brought down/up. Need to add in nrf_wifi_ctx_zep and update before interface goes down. Upstream PR #: 92995 Signed-off-by: Kapil Bhatt --- drivers/wifi/nrf_wifi/inc/fmac_main.h | 2 ++ drivers/wifi/nrf_wifi/src/net_if.c | 16 ++++++++++++++++ drivers/wifi/nrf_wifi/src/wifi_util.c | 23 +++++++++++++++-------- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/drivers/wifi/nrf_wifi/inc/fmac_main.h b/drivers/wifi/nrf_wifi/inc/fmac_main.h index cfe68378ab5..2f49ed8b055 100644 --- a/drivers/wifi/nrf_wifi/inc/fmac_main.h +++ b/drivers/wifi/nrf_wifi/inc/fmac_main.h @@ -120,6 +120,8 @@ struct nrf_wifi_ctx_zep { unsigned int rpu_recovery_retries; int rpu_recovery_success; int rpu_recovery_failure; + int wdt_irq_received; + int wdt_irq_ignored; #endif /* CONFIG_NRF_WIFI_RPU_RECOVERY */ }; diff --git a/drivers/wifi/nrf_wifi/src/net_if.c b/drivers/wifi/nrf_wifi/src/net_if.c index bf6fa06f525..54a3fad5b6d 100644 --- a/drivers/wifi/nrf_wifi/src/net_if.c +++ b/drivers/wifi/nrf_wifi/src/net_if.c @@ -72,6 +72,8 @@ static void nrf_wifi_rpu_recovery_work_handler(struct k_work *work) struct nrf_wifi_vif_ctx_zep, nrf_wifi_rpu_recovery_work); struct nrf_wifi_ctx_zep *rpu_ctx_zep = NULL; + struct nrf_wifi_fmac_dev_ctx *fmac_dev_ctx = NULL; + struct nrf_wifi_hal_dev_ctx *hal_dev_ctx = NULL; int ret; if (!vif_ctx_zep) { @@ -90,6 +92,18 @@ static void nrf_wifi_rpu_recovery_work_handler(struct k_work *work) return; } + fmac_dev_ctx = rpu_ctx_zep->rpu_ctx; + if (!fmac_dev_ctx) { + LOG_ERR("%s: fmac_dev_ctx is NULL", __func__); + return; + } + + hal_dev_ctx = fmac_dev_ctx->hal_dev_ctx; + if (!hal_dev_ctx) { + LOG_ERR("%s: hal_dev_ctx is NULL", __func__); + return; + } + if (rpu_ctx_zep->rpu_recovery_in_progress) { #ifdef CONFIG_NRF_WIFI_RPU_RECOVERY_DEBUG LOG_ERR("%s: RPU recovery already in progress", __func__); @@ -134,6 +148,8 @@ static void nrf_wifi_rpu_recovery_work_handler(struct k_work *work) } #endif rpu_ctx_zep->rpu_recovery_in_progress = true; + rpu_ctx_zep->wdt_irq_received += hal_dev_ctx->wdt_irq_received; + rpu_ctx_zep->wdt_irq_ignored += hal_dev_ctx->wdt_irq_ignored; #ifdef CONFIG_NRF_WIFI_RPU_RECOVERY_DEBUG LOG_ERR("%s: Bringing the interface down", __func__); #else diff --git a/drivers/wifi/nrf_wifi/src/wifi_util.c b/drivers/wifi/nrf_wifi/src/wifi_util.c index 4a31cae8121..57bda1f4ff4 100644 --- a/drivers/wifi/nrf_wifi/src/wifi_util.c +++ b/drivers/wifi/nrf_wifi/src/wifi_util.c @@ -938,10 +938,20 @@ static int nrf_wifi_util_rpu_recovery_info(const struct shell *sh, } fmac_dev_ctx = ctx->rpu_ctx; + if (!fmac_dev_ctx) { + shell_fprintf(sh, SHELL_ERROR, "FMAC context not initialized\n"); + ret = -ENOEXEC; + goto unlock; + } + hal_dev_ctx = fmac_dev_ctx->hal_dev_ctx; + if (!hal_dev_ctx) { + shell_fprintf(sh, SHELL_ERROR, "HAL context not initialized\n"); + ret = -ENOEXEC; + goto unlock; + } - shell_fprintf(sh, - SHELL_INFO, + shell_fprintf(sh, SHELL_INFO, "wdt_irq_received: %d\n" "wdt_irq_ignored: %d\n" "last_wakeup_now_asserted_time_ms: %lu milliseconds\n" @@ -950,14 +960,11 @@ static int nrf_wifi_util_rpu_recovery_info(const struct shell *sh, "current time: %lu milliseconds\n" "rpu_recovery_success: %d\n" "rpu_recovery_failure: %d\n\n", - hal_dev_ctx->wdt_irq_received, - hal_dev_ctx->wdt_irq_ignored, + ctx->wdt_irq_received, ctx->wdt_irq_ignored, hal_dev_ctx->last_wakeup_now_asserted_time_ms, hal_dev_ctx->last_wakeup_now_deasserted_time_ms, - hal_dev_ctx->last_rpu_sleep_opp_time_ms, - current_time_ms, - ctx->rpu_recovery_success, - ctx->rpu_recovery_failure); + hal_dev_ctx->last_rpu_sleep_opp_time_ms, current_time_ms, + ctx->rpu_recovery_success, ctx->rpu_recovery_failure); ret = 0; unlock: From 359ba2e3d39a5d110edac5e2ef863b48f0dcfb8e Mon Sep 17 00:00:00 2001 From: Triveni Danda Date: Mon, 14 Jul 2025 19:27:11 +0530 Subject: [PATCH 36/37] [nrf fromlist] modules: hostap: Set default stack size for softAP mode This change is needed to handle to stack overflow issues when using SPIM. Upstream PR #: 93111 Signed-off-by: Triveni Danda --- modules/hostap/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/hostap/Kconfig b/modules/hostap/Kconfig index 743cbf37204..2056a43e872 100644 --- a/modules/hostap/Kconfig +++ b/modules/hostap/Kconfig @@ -37,6 +37,8 @@ config WIFI_NM_WPA_SUPPLICANT_THREAD_STACK_SIZE # TODO: Providing higher stack size for Enterprise mode to fix stack # overflow issues. Need to identify the cause for higher stack usage. default 8192 if WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE + # This is needed to handle stack overflow issues on nRF Wi-Fi drivers. + default 5900 if WIFI_NM_WPA_SUPPLICANT_AP default 5800 config WIFI_NM_WPA_SUPPLICANT_WQ_STACK_SIZE From 0ef5d056c808d3387650b43eff5d65074fe30bac Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Mon, 9 Jun 2025 09:29:14 +0300 Subject: [PATCH 37/37] [nrf fromtree] lib: zvfs: Add default eventfd count for hostap hostap needs more eventfd to function so set a proper default value. Signed-off-by: Jukka Rissanen (cherry picked from commit 410afbaf198902077c3884257b34b333999c944b) --- lib/os/zvfs/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/os/zvfs/Kconfig b/lib/os/zvfs/Kconfig index b22d2b1f172..495d5c84968 100644 --- a/lib/os/zvfs/Kconfig +++ b/lib/os/zvfs/Kconfig @@ -25,6 +25,7 @@ if ZVFS_EVENTFD config ZVFS_EVENTFD_MAX int "Maximum number of ZVFS eventfd's" + default 8 if WIFI_NM_WPA_SUPPLICANT default 1 range 1 4096 help