|
21 | 21 |
|
22 | 22 | 'use strict'; |
23 | 23 | const common = require('../common'); |
| 24 | +const fixtures = require('../common/fixtures'); |
24 | 25 |
|
25 | 26 | if (!common.hasCrypto) |
26 | 27 | common.skip('missing crypto'); |
27 | 28 |
|
28 | 29 | const tls = require('tls'); |
29 | 30 |
|
30 | | -const cert = |
31 | | -`-----BEGIN CERTIFICATE----- |
32 | | -MIIDNDCCAp2gAwIBAgIJAJvXLQpGPpm7MA0GCSqGSIb3DQEBBQUAMHAxCzAJBgNV |
33 | | -BAYTAkdCMRAwDgYDVQQIEwdHd3luZWRkMREwDwYDVQQHEwhXYXVuZmF3cjEUMBIG |
34 | | -A1UEChMLQWNrbmFjayBMdGQxEjAQBgNVBAsTCVRlc3QgQ2VydDESMBAGA1UEAxMJ |
35 | | -bG9jYWxob3N0MB4XDTA5MTEwMjE5MzMwNVoXDTEwMTEwMjE5MzMwNVowcDELMAkG |
36 | | -A1UEBhMCR0IxEDAOBgNVBAgTB0d3eW5lZGQxETAPBgNVBAcTCFdhdW5mYXdyMRQw |
37 | | -EgYDVQQKEwtBY2tuYWNrIEx0ZDESMBAGA1UECxMJVGVzdCBDZXJ0MRIwEAYDVQQD |
38 | | -Ewlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANdym7nGe2yw |
39 | | -6LlJfJrQtC5TmKOGrSXiyolYCbGOy4xZI4KD31d3097jhlQFJyF+10gwkE62DuJe |
40 | | -fLvBZDUsvLe1R8bzlVhZnBVn+3QJyUIWQAL+DsRj8P3KoD7k363QN5dIaA1GOAg2 |
41 | | -vZcPy1HCUsvOgvDXGRUCZqNLAyt+h/cpAgMBAAGjgdUwgdIwHQYDVR0OBBYEFK4s |
42 | | -VBV4shKUj3UX/fvSJnFaaPBjMIGiBgNVHSMEgZowgZeAFK4sVBV4shKUj3UX/fvS |
43 | | -JnFaaPBjoXSkcjBwMQswCQYDVQQGEwJHQjEQMA4GA1UECBMHR3d5bmVkZDERMA8G |
44 | | -A1UEBxMIV2F1bmZhd3IxFDASBgNVBAoTC0Fja25hY2sgTHRkMRIwEAYDVQQLEwlU |
45 | | -ZXN0IENlcnQxEjAQBgNVBAMTCWxvY2FsaG9zdIIJAJvXLQpGPpm7MAwGA1UdEwQF |
46 | | -MAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAFxR7BA1mUlsYqPiogtxSIfLzHWh+s0bJ |
47 | | -SBuhNrHes4U8QxS8+x/KWjd/81gzsf9J1C2VzTlFaydAgigz3SkQYgs+TMnFkT2o |
48 | | -9jqoJrcdf4WpZ2DQXUALaZgwNzPumMUSx8Ac5gO+BY/RHyP6fCodYvdNwyKslnI3 |
49 | | -US7eCSHZsVo= |
50 | | ------END CERTIFICATE-----`; |
| 31 | +let key = fixtures.readKey('rsa_private.pem'); |
| 32 | +let cert = fixtures.readKey('rsa_cert.crt'); |
51 | 33 |
|
52 | | -const key = |
53 | | -`-----BEGIN RSA PRIVATE KEY----- |
54 | | -MIICXgIBAAKBgQDXcpu5xntssOi5SXya0LQuU5ijhq0l4sqJWAmxjsuMWSOCg99X |
55 | | -d9Pe44ZUBSchftdIMJBOtg7iXny7wWQ1LLy3tUfG85VYWZwVZ/t0CclCFkAC/g7E |
56 | | -Y/D9yqA+5N+t0DeXSGgNRjgINr2XD8tRwlLLzoLw1xkVAmajSwMrfof3KQIDAQAB |
57 | | -AoGBAIBHR/tT93ce2mJAJAXV0AJpWc+7x2pwX2FpXtQujnlxNZhnRlrBCRCD7h4m |
58 | | -t0bVS/86kyGaesBDvAbavfx/N5keYzzmmSp5Ht8IPqKPydGWdigk4x90yWvktai7 |
59 | | -dWuRKF94FXr0GUuBONb/dfHdp4KBtzN7oIF9WydYGGXA9ZmBAkEA8/k01bfwQZIu |
60 | | -AgcdNEM94Zcug1gSspXtUu8exNQX4+PNVbadghZb1+OnUO4d3gvWfqvAnaXD3KV6 |
61 | | -N4OtUhQQ0QJBAOIRbKMfaymQ9yE3CQQxYfKmEhHXWARXVwuYqIFqjmhSjSXx0l/P |
62 | | -7mSHz1I9uDvxkJev8sQgu1TKIyTOdqPH1tkCQQDPa6H1yYoj1Un0Q2Qa2Mg1kTjk |
63 | | -Re6vkjPQ/KcmJEOjZjtekgFbZfLzmwLXFXqjG2FjFFaQMSxR3QYJSJQEYjbhAkEA |
64 | | -sy7OZcjcXnjZeEkv61Pc57/7qIp/6Aj2JGnefZ1gvI1Z9Q5kCa88rA/9Iplq8pA4 |
65 | | -ZBKAoDW1ZbJGAsFmxc/6mQJAdPilhci0qFN86IGmf+ZBnwsDflIwHKDaVofti4wQ |
66 | | -sPWhSOb9VQjMXekI4Y2l8fqAVTS2Fn6+8jkVKxXBywSVCw== |
67 | | ------END RSA PRIVATE KEY-----`; |
| 34 | +// This test validates that we accept certificates and keys which |
| 35 | +// do not end with a newline. If a newline exists at the end |
| 36 | +// of the key or cert being used remove it |
| 37 | +let i = 0; |
| 38 | +while (key[key.length - 1 - i] === 0x0a) i++; |
| 39 | +if (i !== 0) key = key.slice(0, key.length - i); |
| 40 | + |
| 41 | +i = 0; |
| 42 | +while (cert[cert.length - 1 - i] === 0x0a) i++; |
| 43 | +if (i !== 0) cert = cert.slice(0, cert.length - i); |
68 | 44 |
|
69 | 45 | function test(cert, key, cb) { |
70 | 46 | const server = tls.createServer({ |
|
0 commit comments