From afffe90ed16ea95180ac90852e46ae35ca19f457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gregor=20Ho=C4=8Devar?= <51193034+ghocevar@users.noreply.github.com> Date: Wed, 1 Nov 2023 14:32:27 +0100 Subject: [PATCH 1/4] Remove "tcp://" from address in SocketError test --- test/index.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/index.test.ts b/test/index.test.ts index a6220e1..f29ed5c 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -140,7 +140,7 @@ void tap.test('SocketError is thrown on connect failure', async (t) => { t.plan(1); try { - const socket = connect('tcp://127.0.0.1:1234'); + const socket = connect('127.0.0.1:1234'); await socket.closed; } catch (err) { t.same(err, new SocketError('connect ECONNREFUSED 127.0.0.1:1234')); From d710b439740f137251c3c895723f5b70ea1dcafb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gregor=20Ho=C4=8Devar?= <51193034+ghocevar@users.noreply.github.com> Date: Fri, 3 Nov 2023 12:31:03 +0100 Subject: [PATCH 2/4] Script for generating certs --- test/certs/ca/ca.crt | 27 ---------------- test/certs/ca/ca.key | 54 ------------------------------- test/certs/client/client.crt | 19 ----------- test/certs/client/client.csr | 10 ------ test/certs/client/client.key | 15 --------- test/certs/server/server.crt | 19 ----------- test/certs/server/server.csr | 10 ------ test/certs/server/server.key | 15 --------- test/gen-certs.ts | 63 ++++++++++++++++++++++++++++++++++++ test/tls.test.ts | 6 ++++ 10 files changed, 69 insertions(+), 169 deletions(-) delete mode 100644 test/certs/ca/ca.crt delete mode 100644 test/certs/ca/ca.key delete mode 100644 test/certs/client/client.crt delete mode 100644 test/certs/client/client.csr delete mode 100644 test/certs/client/client.key delete mode 100644 test/certs/server/server.crt delete mode 100644 test/certs/server/server.csr delete mode 100644 test/certs/server/server.key create mode 100644 test/gen-certs.ts diff --git a/test/certs/ca/ca.crt b/test/certs/ca/ca.crt deleted file mode 100644 index 2380c00..0000000 --- a/test/certs/ca/ca.crt +++ /dev/null @@ -1,27 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEpDCCAowCCQDADjY1tYvFxjANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls -b2NhbGhvc3QwHhcNMjMwODE3MTUzMDE1WhcNMjQwODE2MTUzMDE1WjAUMRIwEAYD -VQQDDAlsb2NhbGhvc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC5 -ITQsxVzTfuWBL9J6cZMJMjkjlsJj/Upi4RzUzT/KCq9e2znXx7b1abzEhq+h6np3 -JZJW8bRnFwS19VEktqAh9lGKVzZtbEJAXXSPhv9ddIsekbkHTrXJkH/A6fMwqwCM -ECJ3P3ggM85MM1MiXfG+7jT88EPlSYxGq1viVlE+yM+yLlJB5mM0b3q3j35UXwV9 -GRW2BElDiqXPi2248LM1IWBnj90vXNDe8wCKH/SVAYeomO7pJ0fa//rbZ1PV5eqQ -NtHyK9BeiMGnMfFTlxPCXwdpOtF5kcm/LL+cg7h7MWQuaYh6iZhzAyC9roR/9Cao -2F0t80iIMvwB6B6AZSqHXF999G+YTsHMbmvkSyptlADhiewg+rPoqEU4HL1jrTsJ -xHYInXINSggJvpJjpoU3yCyvrJr1PJoqkjbP58MnrMsYrbA+KwDBl2ZB8seC1dkL -VL7T4sWhghwyPZWQHWtrmiB2pBl32DKhVhNGvbsVAFFetQ+v54aGuwi678CEhJAP -JVGQX4VQVXKci3o9Jm43rurZoEzcasor67tPFVim7hRiMxBEFR0T61gHfjnVD/VM -MjU2PW85ZGBISCGjFhcPiqHFFcUf5p9QHsaF+Y+ymUM8qUBNctj0LE27IVsGNGYr -Zr3wjPbMEWFIkYqcTqvlRnctqEvRN+NzBVaebtNMfwIDAQABMA0GCSqGSIb3DQEB -CwUAA4ICAQBnASi5yddNmrxnxOjEbEmbsG6rJapRbI94WhNCx0/vN00smz2MSPWn -vn6vEPfnspr3yjnP5kv16P0cgGF7Z6whl8cnG0SaQdvS+TGB+cKXJLCoip8bAaJG -lehL5L6WZ40sLwL4u/LJBL/6YgVTrMD9WKdZzkJGWxNpiGRWLY51Cs8d9qCu2qtn -OpXE0t+oY1OEpnouzXOyyu26h9drxpaeffznPLb9UE2vb9pii4fn9J3Jsi4tFJz7 -ZM3vnnmILNMp66j9RDiCMExaKO2ugB0D7Xh6iDJ2PPnV+F1mQblgKmr8JHVxybYw -2N9PRTTdVlI2pMi20Psuw43euK07tvTEFRIJvWgBpJd/H+6eDxhdMr0txx6VhRKL -tHkd/uBEpenV4IZKjykJefArsaT1163tOI8LW0kk6OC/tOP/aKQ2KYAC2oGlSfRy -VkYurWv5ZuHfNZUtk0eYhc5D2n9YCHazotuo/dRp+sFWT8WsRch9mLDEmPKbPPEL -zrMtmnH7E5b3U79ItN+X5s7U1cxAKtnR9dzkFig4c/MlSinQWSRr19CdZezLemhZ -lY+m3secg/gvS9L5yYyhdOUoJAKDRIMEOK6sY+i0G09m3ShDctorVckdnS3Q2ph3 -1wMSSS/BsM2of40VbNGN6ZhliUlDizjFkwe/FGGgO12tch0Pblbp6Q== ------END CERTIFICATE----- diff --git a/test/certs/ca/ca.key b/test/certs/ca/ca.key deleted file mode 100644 index 1797e55..0000000 --- a/test/certs/ca/ca.key +++ /dev/null @@ -1,54 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: DES-EDE3-CBC,161D49A3667674C9 - -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 ------END RSA PRIVATE KEY----- diff --git a/test/certs/client/client.crt b/test/certs/client/client.crt deleted file mode 100644 index 9dd0f02..0000000 --- a/test/certs/client/client.crt +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDGDCCAQACAQEwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJbG9jYWxob3N0 -MB4XDTIzMDgxNzE1MzE1MFoXDTI0MDgxNjE1MzE1MFowFDESMBAGA1UEAwwJbG9j -YWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1F1wMeQ5PVjiRtwa2 -KnbTn1ZOpLGsEpegAo0MyOp/3mSkKj/KrY1UhFjny1lId5bza48BkxjyKP6LIhHP -NsUJGL2Fk3P1P4sakZoNr9QVPvh6Y64uDsEuclkuilqkII8KGjLdGvFs8APgj4Ad -0eIez2trXLMeF5cSK+X7uHr5XwIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQBEDS61 -guIqElcKSlsIoZ2Wdj57caCC/muKv6BPhekb1z/QeYjF090OsVV1GxUTWE3j/Z76 -HPJ80FTA0Pg7H72/4UoiIm8rUawPq9Nz+gWiBu9E9NPxMV0GebFq9vitlwZEzQ+T -PXCtk3ZaXbDgK38ts1wWSSNDcmb6Fu9F0hWvSU6TStAfq+t2zy5DsvQwpqB1+uZk -bCDJpLPxavwZzuMBxOc0gNQnABOVn6i9wTMAXO7np90kU+WmKRbc1WA2FekbE2fO -Dirdg+DAcJ2qV63NvwmDi6fcby7K/oOVU4EcpgyaNN1bhdZVJiwVEqF2Su/0EtJ+ -huKIUgUM1MDVfPH4E8ChMqZ0Ui3LAVVq/7dHtRep9xa5zprxDQlPipZzosh2JpUl -LjD1B87mlsOYlIQ2ZNPhbrVZ8fJR0CBKY0u1TZtYtbk2sZeLox8fDo68XsDaBpQ+ -ozxpm4TAxWHw0DGr+a/KjzCRgGPmXlphyWOMuzfy4/PzXNwWzktpxY5UuR9C+iTA -DSuDgKjMJusRzyNf1LGBNR/F2wFhUBBaLAZ7mUyM8rwMuy6RFxL4ZUaIev0cFs4+ -DV9apnZeVUIdk3g9x9UIKbc//RfDywRlCQyOcA19Ks8OyQrbOOA+YLhGHwTBWxde -9RlA+whMeiM6bamLGIRn1ll70IlGV35ZjP2Ajg== ------END CERTIFICATE----- diff --git a/test/certs/client/client.csr b/test/certs/client/client.csr deleted file mode 100644 index 54c1b3d..0000000 --- a/test/certs/client/client.csr +++ /dev/null @@ -1,10 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIBUzCBvQIBADAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEB -BQADgY0AMIGJAoGBALUXXAx5Dk9WOJG3BrYqdtOfVk6ksawSl6ACjQzI6n/eZKQq -P8qtjVSEWOfLWUh3lvNrjwGTGPIo/osiEc82xQkYvYWTc/U/ixqRmg2v1BU++Hpj -ri4OwS5yWS6KWqQgjwoaMt0a8WzwA+CPgB3R4h7Pa2tcsx4XlxIr5fu4evlfAgMB -AAGgADANBgkqhkiG9w0BAQsFAAOBgQB/GKMhoqjyO5EWlasvwlsH2xTafqVdgkqH -CmGpWYvySrGnaGXdH2HvN52Xf5JDZny618atE0zc+bWe0en5afGCVgz+5niK0YMo -1fy9U/ZhGfw1L1WOmTtOWeW0464Z30AdU/oR7HAEZpPMi2Eide1J6K3gpsv8w0cG -P9NL0yaJ3g== ------END CERTIFICATE REQUEST----- diff --git a/test/certs/client/client.key b/test/certs/client/client.key deleted file mode 100644 index b98f634..0000000 --- a/test/certs/client/client.key +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQC1F1wMeQ5PVjiRtwa2KnbTn1ZOpLGsEpegAo0MyOp/3mSkKj/K -rY1UhFjny1lId5bza48BkxjyKP6LIhHPNsUJGL2Fk3P1P4sakZoNr9QVPvh6Y64u -DsEuclkuilqkII8KGjLdGvFs8APgj4Ad0eIez2trXLMeF5cSK+X7uHr5XwIDAQAB -AoGAYB4a9F/YkZGhCu6LeGsHkQF0jN9rknp30i0oco29scr3vg7Stx/w8NgiXD2Z -kRYwn9kKGXra9cV+fZjCvSpD39B7i+Ewan+exO1iy2E0+pWeR1431ndEBJeu7UPS -4hGue6nyIAj32yS0vmVf3kEn0Qjc/c2aUsErGBHH77ezXkECQQDeYe5OjNnUqt9H -tlQC2jDu74LjngkAawZ4mBa3CV40at8MYO11Q0vZ43fPJr15L2ukauvOduV9M1Nz -PtSI9+jhAkEA0Hd7D+mH2hzZBCNoogepugcIBqjKU9BgVjj1IJVuIWuCMdEgcKBb -2u9dYUygBUj28aRQ0YWscBpkJD3IlPvqPwJAHX53kMt1iJMxEd3IvqgZnVb+0RmA -sCGBtjTVrmj7qZATDR094TOPt9JHbZ4BuzTi3eegZr22KijIhJxsq83VgQJAZ578 -TKyIGqK8PJJdMC0e8JkOJEFCUOcC+9jT/55HX9VQofKRbWpIPks832B3KilalkJW -6c7IJ/D2Vg1f5q5RgQJBAIB5NB631S4yL/k3EWJn5gaHL8IcfFOXSGqt728rhbMK -4+qQc9qEps6GMQkTyOID+oZ7gaI9BRWlEvhFisXvBUI= ------END RSA PRIVATE KEY----- diff --git a/test/certs/server/server.crt b/test/certs/server/server.crt deleted file mode 100644 index 1ca3e15..0000000 --- a/test/certs/server/server.crt +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDGDCCAQACAQEwDQYJKoZIhvcNAQELBQAwFDESMBAGA1UEAwwJbG9jYWxob3N0 -MB4XDTIzMDgxNzE1MzAyMVoXDTI0MDgxNjE1MzAyMVowFDESMBAGA1UEAwwJbG9j -YWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrj0Bh3whPkxkW5K1p -qWHD6AJWf6phwjmZfN3J0S7IhSzQIE+ZuFUW2mm8Mq5Nf1LwTCOnYj3BWXoj/L9f -/OpJaVe3aYFsZLSxkFd58f8RnUwrNI+3OWDWrn3zYa9kRpCfVMLhDDiTMJIml9+E -CShKJSryhhh8Tna2oAP2Yrc2TQIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQC4jXPr -G+UyhBlod0HYqYFWABAn203TxOAQLSmPUDgpCTcHEz+Sl1wQWhQSGjM47VwOGocR -G0226wOQB0BI/oE4je+78lMaQAjUjJL+ezhD8lrh/uVLpEayxaQ8n8DOV/9xszKB -Xm41iwi4o5pJlKlMRn8Ax0wHetkZp1D1mCYYC5t/u6e0KUvR7Y5NbCmKiCcU20ks -mdWuVj0YogF43Yx+DQFOb/NuQbOdt6VXuxvoEkk6UdpeF+D73iJdOhxqFn+JTQIJ -czDqt0gyduABcxrmNd4sMOLgNLJ1X7y8WR83g7V4uHKwGOzV/PH5ielQmUl2RwAG -UiVIdTkMfhvw+7pp83fI+5LPTBrlmxGCtv69hwJGY6ZoVOA1PhkRJiO9FJhAGWF0 -5WioNgUlVhlJs2/XllJ0GqwktIq4AcsHRjV21poEDofpke9lolfJBYZswgIR4hTv -Kx0XpsgHQtIUwfPGMA1iVBlOunPnXL3kWb1/IJvLehGXyqdMx2dBuazUblKOmNy4 -PXYumpbrN8KVgHTYOCTl/0qR031D9zDntI1KYBj3NO7UwunzM8iv7zTSqGAjmoa+ -aOyDFlb5bEl2YemgjpJPDk700zYyoHJsZNR3sp041oL8k7e9THn4T5Ao94KlC0+m -jCkMLiXS9ChRpnvk6nfQ4VBaNGyHjht0szCiow== ------END CERTIFICATE----- diff --git a/test/certs/server/server.csr b/test/certs/server/server.csr deleted file mode 100644 index b4c0fab..0000000 --- a/test/certs/server/server.csr +++ /dev/null @@ -1,10 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIBUzCBvQIBADAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEB -BQADgY0AMIGJAoGBAKuPQGHfCE+TGRbkrWmpYcPoAlZ/qmHCOZl83cnRLsiFLNAg -T5m4VRbaabwyrk1/UvBMI6diPcFZeiP8v1/86klpV7dpgWxktLGQV3nx/xGdTCs0 -j7c5YNauffNhr2RGkJ9UwuEMOJMwkiaX34QJKEolKvKGGHxOdragA/ZitzZNAgMB -AAGgADANBgkqhkiG9w0BAQsFAAOBgQCrdvxRZ75CwrJugM1dmhSfjy498vIEn0KI -sUhDnp5gr+tmSKnKMcr30tGcSu+oGG1BuxfcnUTJ7Ps0sGwqjOEz8mpH5lPtuvDz -HL4ioJtMM4Pr6jPVuyQoF3PzH1/NwOoXWNBEtU6y6eqBYNJZwOKXZXo20yxfaY2s -tdLcATkDPA== ------END CERTIFICATE REQUEST----- diff --git a/test/certs/server/server.key b/test/certs/server/server.key deleted file mode 100644 index 4e75fac..0000000 --- a/test/certs/server/server.key +++ /dev/null @@ -1,15 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXgIBAAKBgQCrj0Bh3whPkxkW5K1pqWHD6AJWf6phwjmZfN3J0S7IhSzQIE+Z -uFUW2mm8Mq5Nf1LwTCOnYj3BWXoj/L9f/OpJaVe3aYFsZLSxkFd58f8RnUwrNI+3 -OWDWrn3zYa9kRpCfVMLhDDiTMJIml9+ECShKJSryhhh8Tna2oAP2Yrc2TQIDAQAB -AoGAGoM43+cn0aRZ7D/KzNlwUmY4dkWkfxcU77NsUxQQtsxd8IwNwSPLgoyeaocq -iK90kc4ydFuqT4cUaRtWN+9OBWmEanuB0ZQiVRpk+XpZP8bYg95eWkx07SImo6kG -YikG3GuAtdwtzSz/UeV8yEJAlziWgrr3+J2HlLjEVXf4kgECQQDYBcFwgm/XASR0 -VcLCjsnbXFZ1WdClEsTBRedBk2HSenhyd+vp6kFikmaGxs/A+efRagS/o1KPbXR3 -8g7mTovJAkEAy08HXWLz6QCQBenBt6kMTg/qAeJe0wKa2OcEC6JmXGbmHdDJiO/a -OhGSply0Tm2jnJtvjsf6sa9rZh9LeNGQZQJBAIxWsOS22JGFXHl3fZ+Hw/uOcVyr -jLCxEMG++A3SAasLhVRYNBsy5Gd1VMYaQr3LnJ6fkZYuNGSZZyDFUIiuXoECQQDA -w6ud9caBs1Da6moL8zKBiUE8jB+QPjYHVfJV/aLEFaQ1vNJ5DcGBsUu0hM1IV1f7 -krzRSfb+Je7UovNyGHCpAkEAi/iYyl6MlDcC+RDvrL2tKwB1fhiRnBkMmJu3LM86 -6Tz9Kxn5Erj1oOaTtTf7XIkql+MzdzExCdlBzVn5pVf4Wg== ------END RSA PRIVATE KEY----- diff --git a/test/gen-certs.ts b/test/gen-certs.ts new file mode 100644 index 0000000..3deed8a --- /dev/null +++ b/test/gen-certs.ts @@ -0,0 +1,63 @@ +import { execSync } from 'node:child_process'; +import { existsSync, unlinkSync } from 'node:fs'; +import { join } from 'node:path'; + +const certsPath = join(__dirname, '/certs'); +const caPath = join(certsPath, '/ca'); +const serverPath = join(certsPath, '/server'); + +function generateCerts(): void { + execSync(`rm -rf ${certsPath}`); + + [certsPath, caPath, serverPath].forEach((path) => { + if (!existsSync(path)) { + execSync(`mkdir -p ${path}`); + } + }); + + execSync( + `openssl genrsa -out ${join(caPath, 'ca.key')} 2048 > /dev/null 2>&1`, + ); + execSync( + `openssl req -x509 -new -nodes -key ${join( + caPath, + 'ca.key', + )} -sha256 -days 1024 -out ${join( + caPath, + 'ca.crt', + )} -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" > /dev/null 2>&1`, + ); + execSync( + `openssl genrsa -out ${join( + serverPath, + 'server.key', + )} 2048 > /dev/null 2>&1`, + ); + execSync( + `openssl req -new -key ${join(serverPath, 'server.key')} -out ${join( + serverPath, + 'server.csr', + )} -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" > /dev/null 2>&1`, + ); + execSync( + `openssl x509 -req -in ${join(serverPath, 'server.csr')} -CA ${join( + caPath, + 'ca.crt', + )} -CAkey ${join(caPath, 'ca.key')} -CAcreateserial -out ${join( + serverPath, + 'server.crt', + )} -days 500 -sha256 > /dev/null 2>&1`, + ); +} + +function deleteCerts(): void { + unlinkSync(join(caPath, 'ca.key')); + unlinkSync(join(caPath, 'ca.crt')); + unlinkSync(join(serverPath, 'server.key')); + unlinkSync(join(serverPath, 'server.csr')); + unlinkSync(join(serverPath, 'server.crt')); + + execSync(`rm -rf ${certsPath}`); +} + +export { generateCerts, deleteCerts }; diff --git a/test/tls.test.ts b/test/tls.test.ts index f8a0872..ca66b85 100644 --- a/test/tls.test.ts +++ b/test/tls.test.ts @@ -4,6 +4,7 @@ import path from 'node:path'; import tap from 'tap'; import { SocketError, connect } from '../src'; import { listenAndGetSocketAddress, writeAndReadSocket } from './utils'; +import { generateCerts, deleteCerts } from './gen-certs'; function getTLSServer(): tls.Server { const server = tls.createServer({ @@ -19,6 +20,11 @@ function getTLSServer(): tls.Server { void tap.test('Socket `connect` with TLS', (t) => { t.before(() => { process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; + generateCerts(); + }); + + t.after(() => { + deleteCerts(); }); void t.test('with `secureTransport: "on"`', (t) => { From 9108611363c468592b5c2074873a69fbc8f472de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gregor=20Ho=C4=8Devar?= <51193034+ghocevar@users.noreply.github.com> Date: Sat, 4 Nov 2023 12:48:10 +0100 Subject: [PATCH 3/4] Add client certificate generation to gen-certs.ts --- test/gen-certs.ts | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/test/gen-certs.ts b/test/gen-certs.ts index 3deed8a..62f9875 100644 --- a/test/gen-certs.ts +++ b/test/gen-certs.ts @@ -5,11 +5,16 @@ import { join } from 'node:path'; const certsPath = join(__dirname, '/certs'); const caPath = join(certsPath, '/ca'); const serverPath = join(certsPath, '/server'); +const clientPath = join(certsPath, '/client'); +/** + * Generate certificates for testing. + */ function generateCerts(): void { + // Delete certs directory if it exists execSync(`rm -rf ${certsPath}`); - [certsPath, caPath, serverPath].forEach((path) => { + [certsPath, caPath, serverPath, clientPath].forEach((path) => { if (!existsSync(path)) { execSync(`mkdir -p ${path}`); } @@ -48,14 +53,41 @@ function generateCerts(): void { 'server.crt', )} -days 500 -sha256 > /dev/null 2>&1`, ); + execSync( + `openssl genrsa -out ${join( + clientPath, + 'client.key', + )} 2048 > /dev/null 2>&1`, + ); + execSync( + `openssl req -new -key ${join(clientPath, 'client.key')} -out ${join( + clientPath, + 'client.csr', + )} -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" > /dev/null 2>&1`, + ); + execSync( + `openssl x509 -req -in ${join(clientPath, 'client.csr')} -CA ${join( + caPath, + 'ca.crt', + )} -CAkey ${join(caPath, 'ca.key')} -CAcreateserial -out ${join( + clientPath, + 'client.crt', + )} -days 500 -sha256 > /dev/null 2>&1`, + ); } +/** + * Deletes/cleans up certificates. + */ function deleteCerts(): void { unlinkSync(join(caPath, 'ca.key')); unlinkSync(join(caPath, 'ca.crt')); unlinkSync(join(serverPath, 'server.key')); unlinkSync(join(serverPath, 'server.csr')); unlinkSync(join(serverPath, 'server.crt')); + unlinkSync(join(clientPath, 'client.key')); + unlinkSync(join(clientPath, 'client.csr')); + unlinkSync(join(clientPath, 'client.crt')); execSync(`rm -rf ${certsPath}`); } From 92de7f4a3d0b8fcd45efa410119ca9badc91c4c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gregor=20Ho=C4=8Devar?= <51193034+ghocevar@users.noreply.github.com> Date: Wed, 3 Jan 2024 08:48:12 +0100 Subject: [PATCH 4/4] Refactor export --- test/gen-certs.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/gen-certs.ts b/test/gen-certs.ts index 62f9875..63441b9 100644 --- a/test/gen-certs.ts +++ b/test/gen-certs.ts @@ -10,7 +10,7 @@ const clientPath = join(certsPath, '/client'); /** * Generate certificates for testing. */ -function generateCerts(): void { +export function generateCerts(): void { // Delete certs directory if it exists execSync(`rm -rf ${certsPath}`); @@ -79,7 +79,7 @@ function generateCerts(): void { /** * Deletes/cleans up certificates. */ -function deleteCerts(): void { +export function deleteCerts(): void { unlinkSync(join(caPath, 'ca.key')); unlinkSync(join(caPath, 'ca.crt')); unlinkSync(join(serverPath, 'server.key')); @@ -91,5 +91,3 @@ function deleteCerts(): void { execSync(`rm -rf ${certsPath}`); } - -export { generateCerts, deleteCerts };