From 003f722c56a10df54f1c6c391d61c4a6fc085856 Mon Sep 17 00:00:00 2001 From: MauriceHendrix Date: Tue, 28 Jul 2026 21:08:39 +0200 Subject: [PATCH 1/3] Updated test certificate generation so newly created CA certs include proper X.509 CA key usage extensions, fixing Python/OpenSSL verification failures while preserving existing server cert generation behavior. --- s2energy-connection/testdata/gen_cert.sh | 10 +++ .../testdata/localhost.chain.pem | 68 +++++++++---------- s2energy-connection/testdata/localhost.key | 52 +++++++------- s2energy-connection/testdata/localhost.pem | 34 +++++----- s2energy-connection/testdata/root.key | 52 +++++++------- s2energy-connection/testdata/root.pem | 34 +++++----- 6 files changed, 130 insertions(+), 120 deletions(-) diff --git a/s2energy-connection/testdata/gen_cert.sh b/s2energy-connection/testdata/gen_cert.sh index 32f7ce2..15ab123 100755 --- a/s2energy-connection/testdata/gen_cert.sh +++ b/s2energy-connection/testdata/gen_cert.sh @@ -20,6 +20,16 @@ NAME="${1:-localhost}" CA="${2:-root}" FILENAME="${3:-$NAME}" +# generate the CA with proper key usage extensions if it does not exist +if [ ! -f "$CA".pem ] || [ ! -f "$CA".key ]; then + openssl genrsa -out "$CA".key 2048 + openssl req -x509 -new -key "$CA".key -sha256 -days 1825 \ + -subj "/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd" \ + -addext "basicConstraints=critical,CA:TRUE" \ + -addext "keyUsage=critical,keyCertSign,cRLSign" \ + -out "$CA".pem +fi + # generate a key openssl genrsa -out "$FILENAME".key 2048 diff --git a/s2energy-connection/testdata/localhost.chain.pem b/s2energy-connection/testdata/localhost.chain.pem index 51f34fd..13dfb4d 100644 --- a/s2energy-connection/testdata/localhost.chain.pem +++ b/s2energy-connection/testdata/localhost.chain.pem @@ -1,43 +1,43 @@ -----BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIUZeLrw4Ef1ghsGyyOQ7o4NRI4by8wDQYJKoZIhvcNAQEL +MIIDnzCCAoegAwIBAgIUKba/dLfPtKU0qpER3r6DKyzfTn4wDQYJKoZIhvcNAQEL BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjAyMTcxMjE0NDVaFw0yNzAy -MTcxMjE0NDVaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjA3MjgxNzU5MjhaFw0yNzA3 +MjgxNzU5MjhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCwtrLZGNMRtGKPZFNCbDu5Fgf+Zx7291enIj6Fp/DW -+TvgZT5ZlaihGn849/P2IVY+0qKQgDPIkfgqh5Xx2atJO74shcr/BAPPGdrVkW1d -9Xte93Qlqi/3497Syy51cXM1+/SmatH1RfbJ7opUKHFw/J2LZOtOo0X7FB4Y2mGz -pA02FGFe7gsZi018z7UBDaw6s4Uhn0VGlCS7/wHwa3RFA0eT70/uon5TDeGlthtX -xa0kw2Wu0uVCDHRThIyh3S2F3YDsqpN9oNafmwlASqD0k5IqnRKZICkL8t0H424G -8V9auyemPdPAz6lQR9XzlVBHjMVy5KAPk4C3rk1klEn9AgMBAAGjgYYwgYMwHwYD -VR0jBBgwFoAU/s43TRxw6GnGd7XFg0DaX7vRhnAwCQYDVR0TBAIwADALBgNVHQ8E +AQUAA4IBDwAwggEKAoIBAQD5pq9kQqDE9T61jjx0syi+0ztqVPJwewFyOeGy1rc2 +EEmwPEL2sXe+WYDbwh+bJd0AOddzVd52AzT5BiI12umuRuzf4bTs8NnPI0c0ofCM +htG7m/qkTPjq60oB/xbzE3JxOD6VdAMKQtdb3oX1djkmmZAKeGh4zIV4BJFLfL9u +nE5/9Tuzjj1d/rSHc6rdM1+RFOWTFtJSzqSaABrDdn51WR7hyGWlcyRnpyJ0GEqk +AkX4SxyDXxzq5UodGBaaY3X9J1bqNpnxH/i7dxC6p6V9JdAlvCluKR4FqzAFVL2T +M5GH+9wIIeNNnpSu83gKiuiYnRVu/evRGLSAI+lEpxNdAgMBAAGjgYYwgYMwHwYD +VR0jBBgwFoAUTGpCsU4DM5zefgi+7wcQHZq2SggwCQYDVR0TBAIwADALBgNVHQ8E BAMCA6gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0 -MB0GA1UdDgQWBBTLzjoq/J2PyhSPRcy1QZZGuiUWhzANBgkqhkiG9w0BAQsFAAOC -AQEAI8w9HGhK4iRSA4vHxRTc7JhkFuCAf/V9JLrPtEXubtUfZKsVgKNpIsuwjMgl -dORwBXH5z3UIwU8AeZBgsSex9iufXfQV3hf6z9u647F+Vz7DgrsYsfapKs59olci -Z3Wcf6NFTuQEhEZdzl35w2PpTbIK0lrrJ2WMoVgYFljvCRojuzqDPEJQtiWgxQ7f -MSgFmHkRfJ+gJbYzwozIJPS1uH/ZQQa/iIXRV4UIZddRp6XI2tqBsaqT1r/KjF8P -wMaLefxC0+6C6yHcB5sMptHSvl2VeerWLs4Dag/O53N1QzLoCZnRzAZodiO39FyU -fcvdl6j2lIbax24bgxR3zQUZ2Q== +MB0GA1UdDgQWBBT5++AT9N5L4+adnOUULYmEy9qg4DANBgkqhkiG9w0BAQsFAAOC +AQEAkdFUgNLTbhX/ZTsTsVsHAwW9kCxeva6eY/KGDHhyM/F/jB9PJEXMefHqgQl/ +DNdgkGAs2Bqtn+Nd8pxRC13/sLk5goKFlAlAsxsQT0Xnr2uvaunoML66o477+HzF +3fEhgsLB11v7AApaBwbNBy8c56Vb7P3xgKfEa4lJI6vjUY/5jTr2hKwFzOR0bl9m +K6+US8Gn0Z/TcMPnPHtk4iNCzmYZoJNzeMnKUwzNdNLEAjO7lqXPHqnIGrDaNKXV +ibq+eYw1a9URPW+m5C0drDZ+28HPt8ZsUmT/awxrB84WBkvt4kpSe2WKjWLQEEdj +jP7U6xGIDOM+I2e7OVhHIDa1rg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIDazCCAlOgAwIBAgIURu/3EiBqW5zBHLYfNRjzTfs2QMQwDQYJKoZIhvcNAQEL +MIIDezCCAmOgAwIBAgIUf89A0bk6STgh2OAQc6mS5UyaDF0wDQYJKoZIhvcNAQEL BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjAyMTAwODI3NDRaFw0zMTAy -MDkwODI3NDRaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjA3MjgxNzU5MjhaFw0zMTA3 +MjcxNzU5MjhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQDXr9mtQIgvaDBkxr6mw5UVg9Ox35e01rCz1rrl9MqS -c9SaKtjCCQVyotokHsXT6DKJ4H+CGDD+Y8ULhEQN7B8VSfGB8gg/nD7KHk2dzxNt -8kkZGWDKanyWWdawrsegcApvwV2eHa5/94sHHkJCZNJoRMtmoimZ0o848jOIAUoS -pO1bIxRq7N2YluJVaMYk/U2GBOfwpjhXcy74kQrq1mGyyE3hzJUgtaRGlDsvp3c0 -99b9Pd2fRAmqUzjijibQfheuum4KCLwoZCGvwnY4iQM6vQjNY06djAqyR6XFGH8s -7EVzNFSJyhJZK30FaAYPDeVDIJUKTSrJlTr2ddjF5Gp/AgMBAAGjUzBRMB0GA1Ud -DgQWBBT+zjdNHHDoacZ3tcWDQNpfu9GGcDAfBgNVHSMEGDAWgBT+zjdNHHDoacZ3 -tcWDQNpfu9GGcDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCI -3ZjK6htARQAYx80BIV4ZOm/MPtQxEOMJ0gywcOckwUICHbmdjj5T2XdsE1L9EbYw -8U/5XItzcfnmf5A+7Pf1UqnfOgeCAw7tl4zX5zCHDm0l3nXmOSnyU1RMetJ+aXTT -LZyV6JJxcEFseQsqdBwx6AkXGz4CqLBDMbwi6j+1yRfib11m2gZGYozNFKDrw6xS -L0KFcBWCM8lzb6W5oc3P+oA+EoF3nhgydtb1vNwe9wkubrRl5GkFzRrnEHTDRpLe -NShyxRuBPtQoKwcIfMaNt+9W5qMwrYjh21mCGX122K8kAdXDT35AYcAK2X8WpT9F -nL09Lv6HBpesSih6ZRS3 +AQUAA4IBDwAwggEKAoIBAQCVx5CSqXQBlXF6q0T+kh1Z0JWvfwfnkXxxHKlakTg4 +s25VC3tjoZ8f5Me+w96YkU9DKQzLDiGYZIn6YE9pqTBPa5jnMncmausEHOUOjLlL +UXIsr6BfXYwHIX+M+bC67QgOTOc3mxSuuM1fwhqvXuzm/mLz1bappTqetHt/H7jE +URn0ZsExZ6qNTxJ/DFi3ZkVeaGO0MpF2JV0X7m/DHWbkfDYzZf/e6x6mPn+iG1ok +/UQb9kvTGqlWnDkbZd58lLWwMR/IPW7Ib1HfbVY3hvi/X+xfSM/Sb5+r7sPPeeNU +v6DCcB9iVIwPbLbd/pkBJpnN4n8wDTTZLb4ZjRloYqkXAgMBAAGjYzBhMB0GA1Ud +DgQWBBRMakKxTgMznN5+CL7vBxAdmrZKCDAfBgNVHSMEGDAWgBRMakKxTgMznN5+ +CL7vBxAdmrZKCDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkq +hkiG9w0BAQsFAAOCAQEAHnYOU787vSBee7A227FcxW2gvXMwoeLxOhnhk8CtGZ19 +unsOuRh2wTgdrJaws8RXM2AvzFBCE1aVcQJT7w6co8MrybACk3Ifzt+q+bUmU2x8 +WXx5UFFFVqWtDFgwMmHMHDSNKRpkHi6zwXpnIV/pUyUFRIdhdYs7xyxaAV0FAlLU +EdzQ0elrqMW83WCxaEYK8ZOzLsgYWWAGMea/C8ykKuDBI3bMg3svDbQqLN0UEYUU +3KfGRPHt1F1q9OXOeTKYbDnWSkAoHq0NazvRc61SDTCdtdRTQ6gNbAMJI0zY27kk +0LoTY2yNObPShZ4Siio7UGDQmj+lbCAzWSjT/FYnDA== -----END CERTIFICATE----- diff --git a/s2energy-connection/testdata/localhost.key b/s2energy-connection/testdata/localhost.key index 0ece3c1..f7ee1b2 100644 --- a/s2energy-connection/testdata/localhost.key +++ b/s2energy-connection/testdata/localhost.key @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCwtrLZGNMRtGKP -ZFNCbDu5Fgf+Zx7291enIj6Fp/DW+TvgZT5ZlaihGn849/P2IVY+0qKQgDPIkfgq -h5Xx2atJO74shcr/BAPPGdrVkW1d9Xte93Qlqi/3497Syy51cXM1+/SmatH1RfbJ -7opUKHFw/J2LZOtOo0X7FB4Y2mGzpA02FGFe7gsZi018z7UBDaw6s4Uhn0VGlCS7 -/wHwa3RFA0eT70/uon5TDeGlthtXxa0kw2Wu0uVCDHRThIyh3S2F3YDsqpN9oNaf -mwlASqD0k5IqnRKZICkL8t0H424G8V9auyemPdPAz6lQR9XzlVBHjMVy5KAPk4C3 -rk1klEn9AgMBAAECggEACRKNgsEthPPX444TtY33pab7PhUZQotXAAkCthCgjXOP -nr5T7Hwsg349bd/9Bx6Vs5/+IfZoXNxxpe1UG23rcf++jGv0t2cDXbdGxD7fzeUe -h7T4oj5nPA4s5cbyBFbmGALEKrnCkcRyc9JACStnt5SgmgQnuIqAEJtAeFIt60UO -MdWwn+5NWUu1E9EbYGDP3X+295VkcJXaJQEoqnFA5JEj9T09VTVa9vq/pTUYn/qB -aW/bmfWiZl5bfu2L+Qv1zs/i0ieEmkC8yMV61msjgwPvaS56KSo2qVBmk3V7/+hJ -eqEtjC0Eg0+87Bn3oi9kSV7ZQD523wzBF3SKZUqJgQKBgQDzP8bErUWnuhMEh75z -7nGa+0vYq1WeC52yPebXnW48mtTvbaZIB2ZK4pypJZHaObqNZPcscLzJ87/rIlwN -J1UvyeOCIXFyjuo/0ehSb4+drs3fyydKrMHFwwl/oXVJ/YW2LUZP7iO/LW2++5oI -9oKXdgvMt5BDJO5uBDMcqAdZ0QKBgQC5+hDCj/Uv62KzAUcVCI1W0PY4nOlT/shi -wQAlyhflz6m2xSkiF9OLuQyJ0C1YuSuiHLo9Q3hufd7U+eRb4GN0xgsD9uu32feJ -jSh48NcRaZ/6HKqISv1eGKTLod+MXrcVC/rXAelvZVuBpnp9MHqrKqO4btxRVoLF -/d6Rh3lMbQKBgQCakiNPpT+G9pHRJiUa7CEat6cZtr5AIOeDdRx0VODQ+B5pSscI -LFOPMHMWdP46qsZlxQvgHH+K4S5KT1opLZ5PML42WeQKRNCL32n+wE+FhqfiFukP -5bl4Xphxlvq+GrDV8+0jK5Nhj4+WdbELEwInFucmnlq4oAY2uMp14jxRkQKBgDf9 -EqKgWD5O7O3bCp1Ib9SdICM3Cf+hio5AcFzwFHW5KOy/OnzrE2LTGPU8WQqG5J3v -bBoZf94zwqv3d0o5qXd0T8inw5sb4avldTPDvdueIu1XR/e0K8byQFqVpwlJUnDh -pGiqSK6iowPLLMEXoTZ6pcNWjLloBAK7RRAm6tuZAoGAbR03owQ2zWjBzKZhIY24 -2MWLdhvdQmKK05x8k13fDG25iMdti9c7V9hf639f/vMGJBDTKdsnoMR7fGLuPkFg -wSBglTSrWMVqMPozCSeVu+JFtmv2nYdUcJyn7HAe4kHErydVzw9Rff9j9AuDWu4d -s1nWYDiS6FgnIYFBcnkl0P4= +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQD5pq9kQqDE9T61 +jjx0syi+0ztqVPJwewFyOeGy1rc2EEmwPEL2sXe+WYDbwh+bJd0AOddzVd52AzT5 +BiI12umuRuzf4bTs8NnPI0c0ofCMhtG7m/qkTPjq60oB/xbzE3JxOD6VdAMKQtdb +3oX1djkmmZAKeGh4zIV4BJFLfL9unE5/9Tuzjj1d/rSHc6rdM1+RFOWTFtJSzqSa +ABrDdn51WR7hyGWlcyRnpyJ0GEqkAkX4SxyDXxzq5UodGBaaY3X9J1bqNpnxH/i7 +dxC6p6V9JdAlvCluKR4FqzAFVL2TM5GH+9wIIeNNnpSu83gKiuiYnRVu/evRGLSA +I+lEpxNdAgMBAAECggEADC5lqvT0Tr/vqCCxUvll8M+yO7k63iGmW6o22MjQxjbL +valnFA3rO5K27qIddC7IBomL+XD0apoz9L2noCyXD92ek7r53sDOw+RjBk6rg9PV +Onv9IhSuZZoG8at+dWxavmsB5L11I4RI6U7lhulWlwtRo60l3dUO4yEH7ODAn3cw +0k6Aj4SFCHiw6k7yMUF6AVT4Ko2vDVFQP+GuFLHW00Ki91MceAuIgfTHWGc8A88Y +4Qyo4J3e/DRO8KlHGmu8Y6sYS6Q/mfa+9YDBzLW5m/2YxMxykh+cGc2XoKEmgHgy +ecmPSr9lEIokgFaYUak78zEfmyA3WmWlzvNk4ggzYQKBgQD6G0wRkoqnssIgP3yE +4E1jHj9lwoXbp9IaNH/28+jAoArNqNCHFPNeV++3ISOFd689jcZPWvJA+5vMr99Y +Tfg7vxQnFLHrYWUHN2NQTWhOBd/kCn3qC/LsHX+eDawLj6a+jWaRO2nPNSNC8CDC +Zn3PJubtoX16gOkUTELaUIKYfQKBgQD/iKPkN90X8PKdxJBqhRnC+8W1VJxxdEI+ +hwy94507F+VTSX5hZ2j5Mrz6oVhJZxOiHMfvOEGpHOppWt8PI7P+bZbxQEozibfe +D/VOWWQ42N2CFIqIG+2Goipf+XpfTl3lQL/qcoVMPYf8JZFPm80V4zm5YpnNWU/4 +22u1joY8YQKBgHKzoidM9ZoDOVRgyVKHK/aRILIijBE43fp2qVkwc0YkH9BB46CP +0y0pVx69a/UB9rRcGN677u4udj1hSyTMXVPJRgzGSPKSMCsnE7z4QyXFO/Dxft2f +rUDsJmLuEkEbGHW7k5Z3kQceb5V7WwrMxlYCmVXSAiH0jPBqKR7GXZ5hAoGALhhJ +6CsjmOP///GrU2u7H+8m1PT0W4rrQDhAViiu/i/rUEDbqVpsFzfN2zArquILKp0i +e8acIZNzvZmEz0hTebvvFInSWMWpA0fBqmZ5q7+DBaoK606OZFDwb+ui5XpPecFa +XUJXRU98LkHgmomyTxZ0HTrqH57SzENYhKG3GUECgYB91U/GUXjkS+uplhZUGrBr +gGdm1xzbYTakwl3wT0JCltVcgV8dLvZ2L7w13+tPujQDhfiqbZ7whSmpJxQaB/qb +4p6LkC9t5239GwYzm7YcQjHxWIBCa/HsFGRzmszNZNGQMF+1/2EtZbmvomhJL04Y +hcjT/aA9TC1cQPOejcUDhQ== -----END PRIVATE KEY----- diff --git a/s2energy-connection/testdata/localhost.pem b/s2energy-connection/testdata/localhost.pem index 96f666f..b64086e 100644 --- a/s2energy-connection/testdata/localhost.pem +++ b/s2energy-connection/testdata/localhost.pem @@ -1,22 +1,22 @@ -----BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIUZeLrw4Ef1ghsGyyOQ7o4NRI4by8wDQYJKoZIhvcNAQEL +MIIDnzCCAoegAwIBAgIUKba/dLfPtKU0qpER3r6DKyzfTn4wDQYJKoZIhvcNAQEL BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjAyMTcxMjE0NDVaFw0yNzAy -MTcxMjE0NDVaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjA3MjgxNzU5MjhaFw0yNzA3 +MjgxNzU5MjhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCwtrLZGNMRtGKPZFNCbDu5Fgf+Zx7291enIj6Fp/DW -+TvgZT5ZlaihGn849/P2IVY+0qKQgDPIkfgqh5Xx2atJO74shcr/BAPPGdrVkW1d -9Xte93Qlqi/3497Syy51cXM1+/SmatH1RfbJ7opUKHFw/J2LZOtOo0X7FB4Y2mGz -pA02FGFe7gsZi018z7UBDaw6s4Uhn0VGlCS7/wHwa3RFA0eT70/uon5TDeGlthtX -xa0kw2Wu0uVCDHRThIyh3S2F3YDsqpN9oNafmwlASqD0k5IqnRKZICkL8t0H424G -8V9auyemPdPAz6lQR9XzlVBHjMVy5KAPk4C3rk1klEn9AgMBAAGjgYYwgYMwHwYD -VR0jBBgwFoAU/s43TRxw6GnGd7XFg0DaX7vRhnAwCQYDVR0TBAIwADALBgNVHQ8E +AQUAA4IBDwAwggEKAoIBAQD5pq9kQqDE9T61jjx0syi+0ztqVPJwewFyOeGy1rc2 +EEmwPEL2sXe+WYDbwh+bJd0AOddzVd52AzT5BiI12umuRuzf4bTs8NnPI0c0ofCM +htG7m/qkTPjq60oB/xbzE3JxOD6VdAMKQtdb3oX1djkmmZAKeGh4zIV4BJFLfL9u +nE5/9Tuzjj1d/rSHc6rdM1+RFOWTFtJSzqSaABrDdn51WR7hyGWlcyRnpyJ0GEqk +AkX4SxyDXxzq5UodGBaaY3X9J1bqNpnxH/i7dxC6p6V9JdAlvCluKR4FqzAFVL2T +M5GH+9wIIeNNnpSu83gKiuiYnRVu/evRGLSAI+lEpxNdAgMBAAGjgYYwgYMwHwYD +VR0jBBgwFoAUTGpCsU4DM5zefgi+7wcQHZq2SggwCQYDVR0TBAIwADALBgNVHQ8E BAMCA6gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0 -MB0GA1UdDgQWBBTLzjoq/J2PyhSPRcy1QZZGuiUWhzANBgkqhkiG9w0BAQsFAAOC -AQEAI8w9HGhK4iRSA4vHxRTc7JhkFuCAf/V9JLrPtEXubtUfZKsVgKNpIsuwjMgl -dORwBXH5z3UIwU8AeZBgsSex9iufXfQV3hf6z9u647F+Vz7DgrsYsfapKs59olci -Z3Wcf6NFTuQEhEZdzl35w2PpTbIK0lrrJ2WMoVgYFljvCRojuzqDPEJQtiWgxQ7f -MSgFmHkRfJ+gJbYzwozIJPS1uH/ZQQa/iIXRV4UIZddRp6XI2tqBsaqT1r/KjF8P -wMaLefxC0+6C6yHcB5sMptHSvl2VeerWLs4Dag/O53N1QzLoCZnRzAZodiO39FyU -fcvdl6j2lIbax24bgxR3zQUZ2Q== +MB0GA1UdDgQWBBT5++AT9N5L4+adnOUULYmEy9qg4DANBgkqhkiG9w0BAQsFAAOC +AQEAkdFUgNLTbhX/ZTsTsVsHAwW9kCxeva6eY/KGDHhyM/F/jB9PJEXMefHqgQl/ +DNdgkGAs2Bqtn+Nd8pxRC13/sLk5goKFlAlAsxsQT0Xnr2uvaunoML66o477+HzF +3fEhgsLB11v7AApaBwbNBy8c56Vb7P3xgKfEa4lJI6vjUY/5jTr2hKwFzOR0bl9m +K6+US8Gn0Z/TcMPnPHtk4iNCzmYZoJNzeMnKUwzNdNLEAjO7lqXPHqnIGrDaNKXV +ibq+eYw1a9URPW+m5C0drDZ+28HPt8ZsUmT/awxrB84WBkvt4kpSe2WKjWLQEEdj +jP7U6xGIDOM+I2e7OVhHIDa1rg== -----END CERTIFICATE----- diff --git a/s2energy-connection/testdata/root.key b/s2energy-connection/testdata/root.key index a40f6e5..c563d19 100644 --- a/s2energy-connection/testdata/root.key +++ b/s2energy-connection/testdata/root.key @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDXr9mtQIgvaDBk -xr6mw5UVg9Ox35e01rCz1rrl9MqSc9SaKtjCCQVyotokHsXT6DKJ4H+CGDD+Y8UL -hEQN7B8VSfGB8gg/nD7KHk2dzxNt8kkZGWDKanyWWdawrsegcApvwV2eHa5/94sH -HkJCZNJoRMtmoimZ0o848jOIAUoSpO1bIxRq7N2YluJVaMYk/U2GBOfwpjhXcy74 -kQrq1mGyyE3hzJUgtaRGlDsvp3c099b9Pd2fRAmqUzjijibQfheuum4KCLwoZCGv -wnY4iQM6vQjNY06djAqyR6XFGH8s7EVzNFSJyhJZK30FaAYPDeVDIJUKTSrJlTr2 -ddjF5Gp/AgMBAAECggEABrdf82OJiym0xaz9u7MzO49P9tTUoAi9sDg1DcPD4eNE -FU+zHk5ZAmF5Xjlwjg82uczcV1XWx2SeJUZLrnu0LuIXvccM8QmcRsxcCaVGRvqe -9aGf18yy4ovOwgOlJv6mKmpAriSuASfIOml7ow2SNPEyZ1R2ycR6l5ZVlGSmr2ev -TuEdYa5RsuO9PszPChvauMTfHYjto4neqbUISPpsOHqw82WTW4Yiei4SujDU1/ad -bXNC8TxSMo2uDsmGm9cE2W26JV5+hw6xj7ZJD1f9FgDX5Zces19+7u38+xDlZmKO -N3ko0qASF/kST8KpAt0Ag4ok3stDgWGXHGioDh+9VQKBgQDzuZZ1CRkMi+hoxHqW -oij2ggxhrWRV9zBsqBp+Gu7+JOWR0d5aBAO+54Z8YLCCDqOJCFWnv8a6JGvfyXam -L4DrEvii2gpHcHfxdxpY7TxZ2leNzfZtzxWqeilm4+zgI2TlB4ttaqUyjbwGbZ4F -AczMug0ajo9Z44jsVhkZAnFTIwKBgQDijMKxhZDoZtlzksneehDhCq/gz5bWbfzC -+lWgW+fbe1Kjeyfvruh687KH1eG7hqmIG6qKFVJa0xIcNCblE05Q/DE1ANsU1wvr -PmAOGoANSv8PdJQidLZnxqs/Gk3jYHVEQleB65icGaHymheoLCQRJ3hO7uGiXs73 -ahIJGINe9QKBgDTqhW0xpXug4LvmdMtBt+0VfUSz1cYIXj4pHV9lz5/kOOe5DjKz -DnEjaYKVp50FOqJk6dv6+lWt1LII1rbsN2xSeSM6feLW22PUvSazk1fa3QmPv0JG -JOkXjuek8ugTJzPGuJHwBp/8P+eRYy6pHmMQvgmXDC6zBSZy5w4UBrDLAoGBANwg -h4C0VlPqs3l/9JQuqT3xA2n+awLZhhLx6MdS5du2XVqp7OkQW6Y0KpGf+aEbvJia -wT9Abm//zQYIio5lDuDT2wA0X6tFNLiUOAMcLrY7289pqBI+s4nsWTKMXYgEjo0P -pTWA9R0gLuKqZTgsA7ODVXvk0urREmsG7pVV8zgNAoGAYJIR6IVY3t0i5JLSpQix -WmwDW8AOyL90J9ODU4wWOcpcFsuy5VMJYqGceKZ7I8Tb3t2FWPRrrn3FEGrdIfuX -/tUqpVv+9jqnokHmuFf8FaaGtjmqoiOig/KZnpYNvBp6o5rCgXVURvHBAHinNLhM -hRlVokufe2t2gaOlR9uUmtU= +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCVx5CSqXQBlXF6 +q0T+kh1Z0JWvfwfnkXxxHKlakTg4s25VC3tjoZ8f5Me+w96YkU9DKQzLDiGYZIn6 +YE9pqTBPa5jnMncmausEHOUOjLlLUXIsr6BfXYwHIX+M+bC67QgOTOc3mxSuuM1f +whqvXuzm/mLz1bappTqetHt/H7jEURn0ZsExZ6qNTxJ/DFi3ZkVeaGO0MpF2JV0X +7m/DHWbkfDYzZf/e6x6mPn+iG1ok/UQb9kvTGqlWnDkbZd58lLWwMR/IPW7Ib1Hf +bVY3hvi/X+xfSM/Sb5+r7sPPeeNUv6DCcB9iVIwPbLbd/pkBJpnN4n8wDTTZLb4Z +jRloYqkXAgMBAAECggEABc3lUXgSObEWMM546E0DdZFEPVG00QM0Nj8jZV7Lgqln +BRIVvR9fxvQhaEg3ezEYyCQyNAVyeHESk13VGTKhxfCIM3lv4NDAfJKdrv0o4+Oe +aZK0XWdTv4wx4OXLzmQ67WO+JOUBHa4/fM6Z8Yh1Sy3tHSbmIvF3JPxSIHO7WZXK +mn75dyDDtfPAKOvZvd30Pc+f/lLXaprr5iCJyvMQjASkt9eel/GsCI0XnmJKG5Pu +hXm2HgNj6s9UAwfJ0baZrffJMlvKlm42mpBpIeMcrhe0BoGnVlvUOY53KfBvJJqj +Or6hKHdMYq+aoXJ6Ic4wne5f8IIipNdwiNT7N1JAlQKBgQC6qS3DhnR4XIXfNSUd +aDrG/OYfmhgT9p++KcCEpf/UnKUOWGrPz23ps8KFlnmWihhBpTad1pTQ5jxbwx8I +u4AkAVEyFBv+DCrbA5nZCCoJA2d46TRMVj8KnigRMSZlYNGowoAg677ZEBuM2UFQ +8K6k4UzCKwitHFzH3puUV3F6awKBgQDNaxj7HgeQTiHsNTVGNDJJZOtUJPIqncIH +iPaJio6/zacKX3+NxGg7lmlfSmisFPA6iazxGJrRmDxr4RTdH1shGoL+wR/2y9nV +2BrtAxE9Txa6tImZAShUFH2JGUgF2Lxh1z+52X5Rk422bUHlKWydU9MMJhUYq0yL +ULbpBL0PBQKBgHmFLn/+htDdG2KHTNRqSOnHN2IXhdlpU/IPaIBzOayHFoXSVidY +WawuFVO29Q1mdgg2sOntCxE88sqiqw+aUgAew2eg4+But2/CVmSPBh68Ep8K47tW +4s/cyyT2JJMXhychCR1lnOffrq/xuK4jIu/ApaI7NfjNYDHW4N6gVwZlAoGBAMfu +FvBCeAYhpa6q0uEzaEY67TiGhRSpWvHOgnW339waoxvbeuBWa0SjzocqetoRvwaa +fTJjSjv5OcWd2pqlLCL6FMky2pNwMOKLZRmNxLexRGQP12SN1dyP3OcVLh5Spndr +8uBGKUXooSMPD/Wk7cvqjBzk69+IygVGV+BP9lqpAoGBALoAmi8XpWrengO44BnE +9MWpy1VODlWl/jlD+AknwqYPUyS150N4ld16vT65ETJU2+9vIQpS522Yys0ok3hx +8ErdXlIhEZda77MyvicGKmzRyNb7m9VtvkTgrjDm2SWu7I630qEsqwZxUwetJVCH +PmwfBeytQ7v9uTp3fCxv03go -----END PRIVATE KEY----- diff --git a/s2energy-connection/testdata/root.pem b/s2energy-connection/testdata/root.pem index 654db6c..f3eeab2 100644 --- a/s2energy-connection/testdata/root.pem +++ b/s2energy-connection/testdata/root.pem @@ -1,21 +1,21 @@ -----BEGIN CERTIFICATE----- -MIIDazCCAlOgAwIBAgIURu/3EiBqW5zBHLYfNRjzTfs2QMQwDQYJKoZIhvcNAQEL +MIIDezCCAmOgAwIBAgIUf89A0bk6STgh2OAQc6mS5UyaDF0wDQYJKoZIhvcNAQEL BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjAyMTAwODI3NDRaFw0zMTAy -MDkwODI3NDRaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjA3MjgxNzU5MjhaFw0zMTA3 +MjcxNzU5MjhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQDXr9mtQIgvaDBkxr6mw5UVg9Ox35e01rCz1rrl9MqS -c9SaKtjCCQVyotokHsXT6DKJ4H+CGDD+Y8ULhEQN7B8VSfGB8gg/nD7KHk2dzxNt -8kkZGWDKanyWWdawrsegcApvwV2eHa5/94sHHkJCZNJoRMtmoimZ0o848jOIAUoS -pO1bIxRq7N2YluJVaMYk/U2GBOfwpjhXcy74kQrq1mGyyE3hzJUgtaRGlDsvp3c0 -99b9Pd2fRAmqUzjijibQfheuum4KCLwoZCGvwnY4iQM6vQjNY06djAqyR6XFGH8s -7EVzNFSJyhJZK30FaAYPDeVDIJUKTSrJlTr2ddjF5Gp/AgMBAAGjUzBRMB0GA1Ud -DgQWBBT+zjdNHHDoacZ3tcWDQNpfu9GGcDAfBgNVHSMEGDAWgBT+zjdNHHDoacZ3 -tcWDQNpfu9GGcDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCI -3ZjK6htARQAYx80BIV4ZOm/MPtQxEOMJ0gywcOckwUICHbmdjj5T2XdsE1L9EbYw -8U/5XItzcfnmf5A+7Pf1UqnfOgeCAw7tl4zX5zCHDm0l3nXmOSnyU1RMetJ+aXTT -LZyV6JJxcEFseQsqdBwx6AkXGz4CqLBDMbwi6j+1yRfib11m2gZGYozNFKDrw6xS -L0KFcBWCM8lzb6W5oc3P+oA+EoF3nhgydtb1vNwe9wkubrRl5GkFzRrnEHTDRpLe -NShyxRuBPtQoKwcIfMaNt+9W5qMwrYjh21mCGX122K8kAdXDT35AYcAK2X8WpT9F -nL09Lv6HBpesSih6ZRS3 +AQUAA4IBDwAwggEKAoIBAQCVx5CSqXQBlXF6q0T+kh1Z0JWvfwfnkXxxHKlakTg4 +s25VC3tjoZ8f5Me+w96YkU9DKQzLDiGYZIn6YE9pqTBPa5jnMncmausEHOUOjLlL +UXIsr6BfXYwHIX+M+bC67QgOTOc3mxSuuM1fwhqvXuzm/mLz1bappTqetHt/H7jE +URn0ZsExZ6qNTxJ/DFi3ZkVeaGO0MpF2JV0X7m/DHWbkfDYzZf/e6x6mPn+iG1ok +/UQb9kvTGqlWnDkbZd58lLWwMR/IPW7Ib1HfbVY3hvi/X+xfSM/Sb5+r7sPPeeNU +v6DCcB9iVIwPbLbd/pkBJpnN4n8wDTTZLb4ZjRloYqkXAgMBAAGjYzBhMB0GA1Ud +DgQWBBRMakKxTgMznN5+CL7vBxAdmrZKCDAfBgNVHSMEGDAWgBRMakKxTgMznN5+ +CL7vBxAdmrZKCDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkq +hkiG9w0BAQsFAAOCAQEAHnYOU787vSBee7A227FcxW2gvXMwoeLxOhnhk8CtGZ19 +unsOuRh2wTgdrJaws8RXM2AvzFBCE1aVcQJT7w6co8MrybACk3Ifzt+q+bUmU2x8 +WXx5UFFFVqWtDFgwMmHMHDSNKRpkHi6zwXpnIV/pUyUFRIdhdYs7xyxaAV0FAlLU +EdzQ0elrqMW83WCxaEYK8ZOzLsgYWWAGMea/C8ykKuDBI3bMg3svDbQqLN0UEYUU +3KfGRPHt1F1q9OXOeTKYbDnWSkAoHq0NazvRc61SDTCdtdRTQ6gNbAMJI0zY27kk +0LoTY2yNObPShZ4Siio7UGDQmj+lbCAzWSjT/FYnDA== -----END CERTIFICATE----- From 768de9fa79644a0b8aef79ed406444016daee354 Mon Sep 17 00:00:00 2001 From: MauriceHendrix Date: Wed, 29 Jul 2026 16:13:09 +0200 Subject: [PATCH 2/3] Edited readme and regenerated certificates --- README.md | 13 ++++++ localhost.chain.pem | 43 +++++++++++++++++++ .../testdata/localhost.local.chain.pem | 43 +++++++++++++++++++ .../testdata/localhost.local.key | 28 ++++++++++++ .../testdata/localhost.local.pem | 22 ++++++++++ 5 files changed, 149 insertions(+) create mode 100644 localhost.chain.pem create mode 100644 s2energy-connection/testdata/localhost.local.chain.pem create mode 100644 s2energy-connection/testdata/localhost.local.key create mode 100644 s2energy-connection/testdata/localhost.local.pem diff --git a/README.md b/README.md index 1ffac48..6c01fec 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,13 @@ These crates require the avahi client libraries on linux. On debian or debian-li sudo apt install libavahi-client-dev ``` +The discovery examples also require a running mDNS stack. On Debian-like systems this typically means installing and starting Avahi and D-Bus: +```sh +sudo apt install avahi-daemon dbus +sudo service dbus start +sudo service avahi-daemon start +``` + ## Running full client and server examples The full-client and full-server examples provide complete examples of an s2-connect client and server. Both examples assume local running, which means that the server example needs certificates for the hostname of the machine it is being run on. To generate this, run @@ -44,5 +51,11 @@ and the client with cargo run --example full-client ``` +Note: the full examples use `.local` hostnames such as `https://.local:8000`. On WSL this hostname often does not resolve by default. If `https://localhost.local:8000` times out even though the server is running, add a hosts entry such as: +```sh +sudo sh -c 'printf "\n127.0.0.1 localhost.local\n::1 localhost.local\n" >> /etc/hosts' +``` +Alternatively, configure mDNS resolution in WSL so `.local` names resolve through Avahi. + ## Documentation You can find the crate documentation at [docs.rs](https://docs.rs/s2energy). The crate documentation assumes that you are familiar with S2; if this is not the case, it may be useful to refer to [the S2 documentation website](https://docs.s2standard.org/docs/welcome/). That documentation explains S2 concepts in more detail, and contains a reference of all messages and types in the S2 specification. diff --git a/localhost.chain.pem b/localhost.chain.pem new file mode 100644 index 0000000..13dfb4d --- /dev/null +++ b/localhost.chain.pem @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIDnzCCAoegAwIBAgIUKba/dLfPtKU0qpER3r6DKyzfTn4wDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjA3MjgxNzU5MjhaFw0yNzA3 +MjgxNzU5MjhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQD5pq9kQqDE9T61jjx0syi+0ztqVPJwewFyOeGy1rc2 +EEmwPEL2sXe+WYDbwh+bJd0AOddzVd52AzT5BiI12umuRuzf4bTs8NnPI0c0ofCM +htG7m/qkTPjq60oB/xbzE3JxOD6VdAMKQtdb3oX1djkmmZAKeGh4zIV4BJFLfL9u +nE5/9Tuzjj1d/rSHc6rdM1+RFOWTFtJSzqSaABrDdn51WR7hyGWlcyRnpyJ0GEqk +AkX4SxyDXxzq5UodGBaaY3X9J1bqNpnxH/i7dxC6p6V9JdAlvCluKR4FqzAFVL2T +M5GH+9wIIeNNnpSu83gKiuiYnRVu/evRGLSAI+lEpxNdAgMBAAGjgYYwgYMwHwYD +VR0jBBgwFoAUTGpCsU4DM5zefgi+7wcQHZq2SggwCQYDVR0TBAIwADALBgNVHQ8E +BAMCA6gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0 +MB0GA1UdDgQWBBT5++AT9N5L4+adnOUULYmEy9qg4DANBgkqhkiG9w0BAQsFAAOC +AQEAkdFUgNLTbhX/ZTsTsVsHAwW9kCxeva6eY/KGDHhyM/F/jB9PJEXMefHqgQl/ +DNdgkGAs2Bqtn+Nd8pxRC13/sLk5goKFlAlAsxsQT0Xnr2uvaunoML66o477+HzF +3fEhgsLB11v7AApaBwbNBy8c56Vb7P3xgKfEa4lJI6vjUY/5jTr2hKwFzOR0bl9m +K6+US8Gn0Z/TcMPnPHtk4iNCzmYZoJNzeMnKUwzNdNLEAjO7lqXPHqnIGrDaNKXV +ibq+eYw1a9URPW+m5C0drDZ+28HPt8ZsUmT/awxrB84WBkvt4kpSe2WKjWLQEEdj +jP7U6xGIDOM+I2e7OVhHIDa1rg== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIUf89A0bk6STgh2OAQc6mS5UyaDF0wDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjA3MjgxNzU5MjhaFw0zMTA3 +MjcxNzU5MjhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCVx5CSqXQBlXF6q0T+kh1Z0JWvfwfnkXxxHKlakTg4 +s25VC3tjoZ8f5Me+w96YkU9DKQzLDiGYZIn6YE9pqTBPa5jnMncmausEHOUOjLlL +UXIsr6BfXYwHIX+M+bC67QgOTOc3mxSuuM1fwhqvXuzm/mLz1bappTqetHt/H7jE +URn0ZsExZ6qNTxJ/DFi3ZkVeaGO0MpF2JV0X7m/DHWbkfDYzZf/e6x6mPn+iG1ok +/UQb9kvTGqlWnDkbZd58lLWwMR/IPW7Ib1HfbVY3hvi/X+xfSM/Sb5+r7sPPeeNU +v6DCcB9iVIwPbLbd/pkBJpnN4n8wDTTZLb4ZjRloYqkXAgMBAAGjYzBhMB0GA1Ud +DgQWBBRMakKxTgMznN5+CL7vBxAdmrZKCDAfBgNVHSMEGDAWgBRMakKxTgMznN5+ +CL7vBxAdmrZKCDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkq +hkiG9w0BAQsFAAOCAQEAHnYOU787vSBee7A227FcxW2gvXMwoeLxOhnhk8CtGZ19 +unsOuRh2wTgdrJaws8RXM2AvzFBCE1aVcQJT7w6co8MrybACk3Ifzt+q+bUmU2x8 +WXx5UFFFVqWtDFgwMmHMHDSNKRpkHi6zwXpnIV/pUyUFRIdhdYs7xyxaAV0FAlLU +EdzQ0elrqMW83WCxaEYK8ZOzLsgYWWAGMea/C8ykKuDBI3bMg3svDbQqLN0UEYUU +3KfGRPHt1F1q9OXOeTKYbDnWSkAoHq0NazvRc61SDTCdtdRTQ6gNbAMJI0zY27kk +0LoTY2yNObPShZ4Siio7UGDQmj+lbCAzWSjT/FYnDA== +-----END CERTIFICATE----- diff --git a/s2energy-connection/testdata/localhost.local.chain.pem b/s2energy-connection/testdata/localhost.local.chain.pem new file mode 100644 index 0000000..248a877 --- /dev/null +++ b/s2energy-connection/testdata/localhost.local.chain.pem @@ -0,0 +1,43 @@ +-----BEGIN CERTIFICATE----- +MIIDpTCCAo2gAwIBAgIUHgiSuycpUO/qLjBiAwejQRqGoEswDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjA3MjkxMzMxNTlaFw0yNzA3 +MjkxMzMxNTlaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCsJXV7kvFGGuDb/6G170IgQRuUjFmjfebSIMjvA9kv +k2NfFTnnhLSnBynRIJ/TZ5nSfV3WMm8Eagpk2EWBb43YYash4/vlOD341VM1llLu +5Iy0QIvLYK3bhcuZNlP+xn6YSmC2BBq+xYVsEuJS//8b2uC8j9/e6u5hIeAoUQMB +9ccSRpa3oMKiASbPK0qtpEI8xisb5rMHjT0jNpADS9GH0055E0mCfkL2f7n5FmCt +yt8Ob/ecCcTEwF576p8Wf5d052aXkoOjvanIVahvvZ1Ucudf4YYYEFJpLbAed6KW +mjU+We5DfP8ps+NwLgsjPm1SDYlgSR1eff3jqUiEwZD/AgMBAAGjgYwwgYkwHwYD +VR0jBBgwFoAUTGpCsU4DM5zefgi+7wcQHZq2SggwCQYDVR0TBAIwADALBgNVHQ8E +BAMCA6gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGgYDVR0RBBMwEYIPbG9jYWxob3N0 +LmxvY2FsMB0GA1UdDgQWBBS7YLOCmyYFxMuqGs2CBGNV7mRQjzANBgkqhkiG9w0B +AQsFAAOCAQEAYwqVyLB+lv7ohqweh1LvPlTRNfO1ZXVVkZ3fvEYs8C2LP2BHGZ7V +JcyqkIHeaNX2xkNarEDcycPq1w08jH45PnWbnv++/RZTbS7iT7b1CCdTqOVMhTdL +UeBb/tK9xPezVcklCb6f3PnzZkd2aYXtiSgeieAL34eZsvq6x1nAYKvSg6mCpU2V +VHqoAvn0njSU279ZbpdXb61rvz9lg+ZMQHTMojULpxIs1Z4DolO1mcEXWYaltzqy +9xO8Vh06X7JclzVDurLq+Ox7Na3Wk0kfqQ4KEHWcivBGNiaIb8UO+PE1/dnN+/me +46+jttLwVfr9euxraqU8vaR+NS5VNlIaYA== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIUf89A0bk6STgh2OAQc6mS5UyaDF0wDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjA3MjgxNzU5MjhaFw0zMTA3 +MjcxNzU5MjhaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCVx5CSqXQBlXF6q0T+kh1Z0JWvfwfnkXxxHKlakTg4 +s25VC3tjoZ8f5Me+w96YkU9DKQzLDiGYZIn6YE9pqTBPa5jnMncmausEHOUOjLlL +UXIsr6BfXYwHIX+M+bC67QgOTOc3mxSuuM1fwhqvXuzm/mLz1bappTqetHt/H7jE +URn0ZsExZ6qNTxJ/DFi3ZkVeaGO0MpF2JV0X7m/DHWbkfDYzZf/e6x6mPn+iG1ok +/UQb9kvTGqlWnDkbZd58lLWwMR/IPW7Ib1HfbVY3hvi/X+xfSM/Sb5+r7sPPeeNU +v6DCcB9iVIwPbLbd/pkBJpnN4n8wDTTZLb4ZjRloYqkXAgMBAAGjYzBhMB0GA1Ud +DgQWBBRMakKxTgMznN5+CL7vBxAdmrZKCDAfBgNVHSMEGDAWgBRMakKxTgMznN5+ +CL7vBxAdmrZKCDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkq +hkiG9w0BAQsFAAOCAQEAHnYOU787vSBee7A227FcxW2gvXMwoeLxOhnhk8CtGZ19 +unsOuRh2wTgdrJaws8RXM2AvzFBCE1aVcQJT7w6co8MrybACk3Ifzt+q+bUmU2x8 +WXx5UFFFVqWtDFgwMmHMHDSNKRpkHi6zwXpnIV/pUyUFRIdhdYs7xyxaAV0FAlLU +EdzQ0elrqMW83WCxaEYK8ZOzLsgYWWAGMea/C8ykKuDBI3bMg3svDbQqLN0UEYUU +3KfGRPHt1F1q9OXOeTKYbDnWSkAoHq0NazvRc61SDTCdtdRTQ6gNbAMJI0zY27kk +0LoTY2yNObPShZ4Siio7UGDQmj+lbCAzWSjT/FYnDA== +-----END CERTIFICATE----- diff --git a/s2energy-connection/testdata/localhost.local.key b/s2energy-connection/testdata/localhost.local.key new file mode 100644 index 0000000..41c079c --- /dev/null +++ b/s2energy-connection/testdata/localhost.local.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCsJXV7kvFGGuDb +/6G170IgQRuUjFmjfebSIMjvA9kvk2NfFTnnhLSnBynRIJ/TZ5nSfV3WMm8Eagpk +2EWBb43YYash4/vlOD341VM1llLu5Iy0QIvLYK3bhcuZNlP+xn6YSmC2BBq+xYVs +EuJS//8b2uC8j9/e6u5hIeAoUQMB9ccSRpa3oMKiASbPK0qtpEI8xisb5rMHjT0j +NpADS9GH0055E0mCfkL2f7n5FmCtyt8Ob/ecCcTEwF576p8Wf5d052aXkoOjvanI +VahvvZ1Ucudf4YYYEFJpLbAed6KWmjU+We5DfP8ps+NwLgsjPm1SDYlgSR1eff3j +qUiEwZD/AgMBAAECggEAAxQh+gVmAnU7mbHZuue6joTIAuEmIs2NVw7PJ1sjin1x +lMpaHM8/JrsdkLm5lZFasmV/PbsJgVlQztOsATcYrycmrGg2Go1JcY2iO5rUdoh9 +9M+Fl5209WIlkPDyg4AaDZqhJSWFFu3FuVuTGZ11M8ua6d8N8kqXajxKP15VwNLp +10JyxZpbUnh7sUVMtivlcyELfzQbG1qPNXyM7bAloxVyICnCdXsiTEeD1Y6FTr1M +U79HKWXrQJG24fg7KeTeL+W6Vuot8tLIgbCKu2Bj+dr1iTrzVkbmEqpLabEYInot +YQXDlU0jMgXho2nUOpljFBKWq29spryySmvCT043UQKBgQDjw41KoHiosDJhsv8K +aUZS3sLJ7kqa38V00e8UH8bnOKrU0ai2zvuIsqs5jVbOySRpdAsyz/sqjGjVJ4su +X1dI86TdYaMwQYFmm0m35SwERhOSeNw7yPlwGh/iI26U142Z2AuS8iR4kEw3L88B +Q9hq5k7UYdYzx8HORK/GaA+zLwKBgQDBfMu13f/qlc+CzPYGsgz767t62VBOyADi +syjWvFIWAN96MDh60Q/c5CquB9peOobYx649AsQEArcOmSNVaPG1Upjq8lRvczWZ +8WtrFJVOi6ytCrw21QCBKKQYwYRBi28fFluGE8ziLdpYJ/nd9jKwyg278Re0DYcq +JaGzoXbLMQKBgGutPHPmb4SYYAkuPUKnyHZPF9mtTRnw5oG26gciir8vXBvmzpM2 +QVY72ZUIy9xQ3WT5Vn38M2rHHJyA6FzQ+AvmG7AJg8PBhDKFAZHtxyRyGLiraLre +5YXo49/eDl5RlYEA0V/0F+fjmBSTBpM7hunq3aOsaT7rliU09cCf26RDAoGAY3zp +ug/2YQa69oSxFGxE5NwnQFmxQ3Dvk6GPpCqdApdcUZWt1OjegTQJBgcfr0fkwl6a +JuDfLTjAK49ubaJSdmuMGXKVG+FfdFKAa0TgKM0E8s0MTh1j7wWYquoGOTWa4585 +XE2eEcaF+MJFZm4LTn/2Y+bpyzkRgQhshtLFJGECgYBhLljCiPYwXnMSgjwzOasC +woEIldzbJNHFSl9ruJg9eCGjN4XV4DRxKag2MC/hZoZYBR8uYaQmikE9STWRXUer +irImqaG7FQmzw7ekKd9F1R2WUT7UU0nLad2QsLPvriv3ROHZqev8ELzOzNTELICb +KAgxC3xr+Q13rlkRFvi2kA== +-----END PRIVATE KEY----- diff --git a/s2energy-connection/testdata/localhost.local.pem b/s2energy-connection/testdata/localhost.local.pem new file mode 100644 index 0000000..8ab45f9 --- /dev/null +++ b/s2energy-connection/testdata/localhost.local.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDpTCCAo2gAwIBAgIUHgiSuycpUO/qLjBiAwejQRqGoEswDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNjA3MjkxMzMxNTlaFw0yNzA3 +MjkxMzMxNTlaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCsJXV7kvFGGuDb/6G170IgQRuUjFmjfebSIMjvA9kv +k2NfFTnnhLSnBynRIJ/TZ5nSfV3WMm8Eagpk2EWBb43YYash4/vlOD341VM1llLu +5Iy0QIvLYK3bhcuZNlP+xn6YSmC2BBq+xYVsEuJS//8b2uC8j9/e6u5hIeAoUQMB +9ccSRpa3oMKiASbPK0qtpEI8xisb5rMHjT0jNpADS9GH0055E0mCfkL2f7n5FmCt +yt8Ob/ecCcTEwF576p8Wf5d052aXkoOjvanIVahvvZ1Ucudf4YYYEFJpLbAed6KW +mjU+We5DfP8ps+NwLgsjPm1SDYlgSR1eff3jqUiEwZD/AgMBAAGjgYwwgYkwHwYD +VR0jBBgwFoAUTGpCsU4DM5zefgi+7wcQHZq2SggwCQYDVR0TBAIwADALBgNVHQ8E +BAMCA6gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGgYDVR0RBBMwEYIPbG9jYWxob3N0 +LmxvY2FsMB0GA1UdDgQWBBS7YLOCmyYFxMuqGs2CBGNV7mRQjzANBgkqhkiG9w0B +AQsFAAOCAQEAYwqVyLB+lv7ohqweh1LvPlTRNfO1ZXVVkZ3fvEYs8C2LP2BHGZ7V +JcyqkIHeaNX2xkNarEDcycPq1w08jH45PnWbnv++/RZTbS7iT7b1CCdTqOVMhTdL +UeBb/tK9xPezVcklCb6f3PnzZkd2aYXtiSgeieAL34eZsvq6x1nAYKvSg6mCpU2V +VHqoAvn0njSU279ZbpdXb61rvz9lg+ZMQHTMojULpxIs1Z4DolO1mcEXWYaltzqy +9xO8Vh06X7JclzVDurLq+Ox7Na3Wk0kfqQ4KEHWcivBGNiaIb8UO+PE1/dnN+/me +46+jttLwVfr9euxraqU8vaR+NS5VNlIaYA== +-----END CERTIFICATE----- From dbc7898d2262948173638566d35e131252c913e5 Mon Sep 17 00:00:00 2001 From: MauriceHendrix Date: Wed, 29 Jul 2026 16:16:52 +0200 Subject: [PATCH 3/3] Added to readme how to retreive server node id --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 6c01fec..7859f0e 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,11 @@ and the client with cargo run --example full-client ``` +The full server example generates its S2 node ID at startup. To retrieve the current server node ID, query the nodes endpoint: +```sh +curl -sk https://.local:8000/v1/nodes +``` + Note: the full examples use `.local` hostnames such as `https://.local:8000`. On WSL this hostname often does not resolve by default. If `https://localhost.local:8000` times out even though the server is running, add a hosts entry such as: ```sh sudo sh -c 'printf "\n127.0.0.1 localhost.local\n::1 localhost.local\n" >> /etc/hosts'