aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorwsliwka <wojciech.sliwka@nokia.com>2019-11-25 11:05:39 +0100
committerMariusz Wagner <mariusz.wagner@nokia.com>2019-12-03 07:48:13 +0000
commitc310382470d5e499bb933b051bf3434c83a0ddbe (patch)
treea6ff2a8130251ee317263d6c1412b7f6ffb70e4e /test
parentbe1df2cdc3e8f2b16cd007dcdb59c8093024a0a3 (diff)
Configure netopeer to support mTLS
Issue-ID: INT-1372 Signed-off-by: wsliwka <wojciech.sliwka@nokia.com> Change-Id: I11281c2a0703b97e1075d01bba9ec076766daf0d
Diffstat (limited to 'test')
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/README.md25
-rwxr-xr-xtest/mocks/pnfsimulator/netconfsimulator/netconf/initialize_netopeer.sh2
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/netconf/load_server_certs.xml4
-rwxr-xr-xtest/mocks/pnfsimulator/netconfsimulator/netconf/set-up-xmls.py35
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/netconf/tls_listen.xml3
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/tls/ca.crt52
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/tls/ca.key54
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/tls/client.crt30
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/tls/client.key51
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/tls/client.req28
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/tls/server.req28
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/tls/server_cert.crt50
-rw-r--r--test/mocks/pnfsimulator/netconfsimulator/tls/server_key.pem74
13 files changed, 350 insertions, 86 deletions
diff --git a/test/mocks/pnfsimulator/netconfsimulator/README.md b/test/mocks/pnfsimulator/netconfsimulator/README.md
index 94bcd760f..b82522602 100644
--- a/test/mocks/pnfsimulator/netconfsimulator/README.md
+++ b/test/mocks/pnfsimulator/netconfsimulator/README.md
@@ -26,14 +26,17 @@ The command *docker-compose down* can be used to shut the simulator down.
## Usage of simulator
### Netconf TLS support
-Embedded netconf server supports connections over TLS on port 6513. Default server and CA certificate have been taken from Netopeer2 repository: https://github.com/CESNET/Netopeer2/tree/master/server/configuration/tls
+Embedded netconf server supports connections over TLS on port 6513. Default server and CA certificate have been generated using method described below. Please proceed with these steps to recreate own certificates. Important is to fulfill all needed data during certificate preparation because Netconf verifies certs description pretty strictly.
Mentioned Github repository contains sample client certificate, which works out of the box.
+
#### Replacing server certificates
In order to replace TLS certificates with third-party ones, the following naming schema must be followed:
* CA certificate file should be named 'ca.crt'
* Netconf server certificate file should be named 'server_cert.crt'
* Netconf server keyfile file should be named 'server_key.pem'
+* Client certificate file should be named 'client.crt'
+* Client keyfile should be named 'client.key'
Certificates and keys should follow PEM formatting guidelines.
Prepared files should be placed under _tls/_ directory (existing files must be overwritten).
@@ -41,7 +44,25 @@ After copying, it is necessary to restart the Netconf Simulator (please refer to
This is a sample curl command to test client connection (the example assumes that Netconf Simulator runs on 127.0.0.1):
```
-curl -k -v https://127.0.0.1:6513 --cacert ca.crt --key client.key --cert client.crt
+curl --cacert ca.crt --cert client.crt --key client.key https://127.0.0.1:6513 -kv --http0.9
+```
+or using openssl:
+```
+openssl s_client -connect 127.0.0.1:6513 -cert client.crt -key client.key -CAfile ca.crt
+```
+
+To regenerate all required certificates follow steps:
+1. Generate your private key and public certificate: ```openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.crt```
+2. Create a private client key:```openssl genrsa -out client.key 4096```
+3. Generate certificate signing request:```openssl req -new -key client.key -out client.req```
+4. Generating signed client certificate: ```openssl x509 -req -in client.req -CA ca.crt -CAkey ca.key -set_serial 101 -extensions client -days 365 -outform PEM -out client.crt```
+5. Create a private server key:```openssl genrsa -out server_key.pem 4096```
+6. Generate certificate signing request:```openssl req -new -key server_key.pem -out server.req -sha256```
+7. Generating signed server certificate: ```openssl x509 -req -in server.req -CA ca.crt -CAkey ca.key -set_serial 100 -extensions server -days 1460 -outform PEM -out server_cert.crt -sha256```
+
+Client authenticates using described TLS configuration, their username will resolve to test (more information in tls_listen.xml under the cert-to-name section). It is required that this username exists on the local system (just like for SSH), so you will need to (temporarily) create this user. The simplest way is executing # useradd -MN test, which creates the user without a home directory and user group.
+
+Currently by default there is only a possibility to substitute existing certificates for single user.
```
diff --git a/test/mocks/pnfsimulator/netconfsimulator/netconf/initialize_netopeer.sh b/test/mocks/pnfsimulator/netconfsimulator/netconf/initialize_netopeer.sh
index 550a64ff4..3ce53d510 100755
--- a/test/mocks/pnfsimulator/netconfsimulator/netconf/initialize_netopeer.sh
+++ b/test/mocks/pnfsimulator/netconfsimulator/netconf/initialize_netopeer.sh
@@ -34,7 +34,7 @@ cp /tls/* /usr/local/etc/keystored/keys/
cp /netconf/*.xml /tmp/
chmod +x /netconf/set-up-xmls.py
-/netconf/set-up-xmls.py /tls ca.crt server_cert.crt server_key.pem /tmp/load_server_certs.xml /tmp/tls_listen.xml
+/netconf/set-up-xmls.py /tls ca.crt server_cert.crt server_key.pem /tmp/load_server_certs.xml /tmp/tls_listen.xml client.crt
/usr/bin/supervisord -c /etc/supervisord.conf &
sysrepoctl --install --yang=/netconf/pnf-simulator.yang --owner=netconf:nogroup --permissions=777
diff --git a/test/mocks/pnfsimulator/netconfsimulator/netconf/load_server_certs.xml b/test/mocks/pnfsimulator/netconfsimulator/netconf/load_server_certs.xml
index 2524e08b0..b52f911c9 100644
--- a/test/mocks/pnfsimulator/netconfsimulator/netconf/load_server_certs.xml
+++ b/test/mocks/pnfsimulator/netconfsimulator/netconf/load_server_certs.xml
@@ -36,5 +36,9 @@
<name>CA_CERT_NAME</name>
<certificate>CA_CERTIFICATE_HERE</certificate>
</trusted-certificate>
+ <trusted-certificate>
+ <name>CLIENT_CERT_NAME</name>
+ <certificate>CLIENT_CERTIFICATE_HERE</certificate>
+ </trusted-certificate>
</trusted-certificates>
</keystore>
diff --git a/test/mocks/pnfsimulator/netconfsimulator/netconf/set-up-xmls.py b/test/mocks/pnfsimulator/netconfsimulator/netconf/set-up-xmls.py
index d46ff91f9..cdc4e4f3d 100755
--- a/test/mocks/pnfsimulator/netconfsimulator/netconf/set-up-xmls.py
+++ b/test/mocks/pnfsimulator/netconfsimulator/netconf/set-up-xmls.py
@@ -35,9 +35,10 @@ SERVER_KEY_NAME = "SERVER_KEY_NAME"
SERVER_CERT_NAME = "SERVER_CERT_NAME"
SERVER_CERTIFICATE_HERE = "SERVER_CERTIFICATE_HERE"
CA_CERT_NAME = "CA_CERT_NAME"
+CLIENT_CERT_NAME = "CLIENT_CERT_NAME"
+CLIENT_CERTIFICATE_HERE="CLIENT_CERTIFICATE_HERE"
CA_CERTIFICATE_HERE = "CA_CERTIFICATE_HERE"
-CA_FINGERPRINT_HERE = "CA_FINGERPRINT_HERE"
-CA_FINGERPRINT_ENV = "CA_FINGERPRINT"
+CLIENT_FINGERPRINT_HERE = "CLIENT_FINGERPRINT_HERE"
SERVER_CERTIFICATE_ENV = "SERVER_CERTIFICATE_ENV"
CA_CERTIFICATE_ENV = "CA_CERTIFICATE_ENV"
@@ -64,7 +65,7 @@ class CertHelper(object):
@classmethod
def get_cert_fingerprint(cls, directory, cert_filename):
cmd = "openssl x509 -fingerprint -noout -in {}/{} | sed -e " \
- "'s/SHA1 Fingerprint//; s/=//; s/=//p'" \
+ "'s/SHA1 Fingerprint//; s/=//; s/=//p'" \
.format(directory, cert_filename)
fingerprint = CertHelper.system(cmd)
return fingerprint
@@ -84,19 +85,21 @@ class App(object):
@classmethod
def patch_server_certs(cls, data, server_key_filename_noext,
server_cert_filename_noext, ca_cert_filename_noext,
- server_cert, ca_cert):
+ server_cert, ca_cert, client_cert_filename_noext, client_cert):
data = data.replace(SERVER_KEY_NAME, server_key_filename_noext)
data = data.replace(SERVER_CERT_NAME, server_cert_filename_noext)
data = data.replace(CA_CERT_NAME, ca_cert_filename_noext)
+ data = data.replace(CLIENT_CERT_NAME, client_cert_filename_noext)
+ data = data.replace(CLIENT_CERTIFICATE_HERE, client_cert)
data = data.replace(SERVER_CERTIFICATE_HERE, server_cert)
data = data.replace(CA_CERTIFICATE_HERE, ca_cert)
return data
@classmethod
- def patch_tls_listen(cls, data, server_cert_filename_noext, ca_fingerprint,
+ def patch_tls_listen(cls, data, server_cert_filename_noext, client_fingerprint,
server_cert, ca_cert):
data = data.replace(SERVER_CERT_NAME, server_cert_filename_noext)
- data = data.replace(CA_FINGERPRINT_HERE, ca_fingerprint)
+ data = data.replace(CLIENT_FINGERPRINT_HERE, client_fingerprint)
data = data.replace(SERVER_CERTIFICATE_HERE, server_cert)
data = data.replace(CA_CERTIFICATE_HERE, ca_cert)
return data
@@ -110,40 +113,46 @@ class App(object):
server_key_filename = sys.argv[4]
load_server_certs_xml_file = sys.argv[5]
tls_listen_xml_file = sys.argv[6]
+ client_cert_filename = sys.argv[7]
+
# strip extensions
ca_cert_filename_noext = ca_cert_filename.replace(".crt", "")
server_cert_filename_noext = server_cert_filename.replace(".crt", "")
server_key_filename_noext = server_key_filename.replace(".pem", "")
+ client_cert_filename_noext = client_cert_filename.replace(".crt", "")
# get certificates from files
server_cert = CertHelper.get_pem_content_stripped(cert_dir,
server_cert_filename)
ca_cert = CertHelper.get_pem_content_stripped(cert_dir,
ca_cert_filename)
- ca_fingerprint = CertHelper.get_cert_fingerprint(cert_dir,
- ca_cert_filename)
- CertHelper.print_certs_info(ca_cert, ca_fingerprint, server_cert)
+ client_fingerprint = CertHelper.get_cert_fingerprint(cert_dir,
+ client_cert_filename)
+ CertHelper.print_certs_info(ca_cert, client_fingerprint, server_cert)
+ client_cert = CertHelper.get_pem_content_stripped(cert_dir,
+ client_cert_filename)
# patch TLS configuration files
data_srv = FileHelper.get_file_contents(load_server_certs_xml_file)
patched_srv = App.patch_server_certs(data_srv, server_key_filename_noext,
server_cert_filename_noext,
ca_cert_filename_noext,
- server_cert, ca_cert)
+ server_cert, ca_cert,
+ client_cert_filename_noext, client_cert)
FileHelper.write_file_contents(load_server_certs_xml_file, patched_srv)
data_tls = FileHelper.get_file_contents(tls_listen_xml_file)
patched_tls = App.patch_tls_listen(data_tls, server_cert_filename_noext,
- ca_fingerprint, server_cert, ca_cert)
+ client_fingerprint, server_cert, ca_cert)
FileHelper.write_file_contents(tls_listen_xml_file, patched_tls)
def main():
- if len(sys.argv) is not 7:
+ if len(sys.argv) is not 8:
print("Usage: {1} <cert_dir> <ca_cert_filename> <server_cert_filename> "
"<server_key_filename> <load_server_certs_xml_full_path> "
- "<tls_listen_full_path>", sys.argv[0])
+ "<tls_listen_full_path> <client_cert_filename>", sys.argv[0])
return 1
App.run()
logger.info("XML files patched successfully")
diff --git a/test/mocks/pnfsimulator/netconfsimulator/netconf/tls_listen.xml b/test/mocks/pnfsimulator/netconfsimulator/netconf/tls_listen.xml
index 4f45b28a2..4f610b580 100644
--- a/test/mocks/pnfsimulator/netconfsimulator/netconf/tls_listen.xml
+++ b/test/mocks/pnfsimulator/netconfsimulator/netconf/tls_listen.xml
@@ -32,11 +32,12 @@
</certificates>
<client-auth>
<trusted-ca-certs>test_trusted_ca_list</trusted-ca-certs>
+ <trusted-client-certs>test_trusted_ca_list</trusted-client-certs>
<cert-maps>
<cert-to-name>
<id>1</id>
<!-- This is not a typo - 0x02 should stay there -->
- <fingerprint>02:CA_FINGERPRINT_HERE</fingerprint>
+ <fingerprint>02:CLIENT_FINGERPRINT_HERE</fingerprint>
<map-type xmlns:x509c2n="urn:ietf:params:xml:ns:yang:ietf-x509-cert-to-name">x509c2n:specified</map-type>
<name>test</name>
</cert-to-name>
diff --git a/test/mocks/pnfsimulator/netconfsimulator/tls/ca.crt b/test/mocks/pnfsimulator/netconfsimulator/tls/ca.crt
index 62593ab7c..a72e926d4 100644
--- a/test/mocks/pnfsimulator/netconfsimulator/tls/ca.crt
+++ b/test/mocks/pnfsimulator/netconfsimulator/tls/ca.crt
@@ -1,24 +1,32 @@
-----BEGIN CERTIFICATE-----
-MIID7TCCAtWgAwIBAgIJAMtE1NGAR5KoMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYD
-VQQGEwJDWjEWMBQGA1UECAwNU291dGggTW9yYXZpYTENMAsGA1UEBwwEQnJubzEP
-MA0GA1UECgwGQ0VTTkVUMQwwCgYDVQQLDANUTUMxEzARBgNVBAMMCmV4YW1wbGUg
-Q0ExIjAgBgkqhkiG9w0BCQEWE2V4YW1wbGVjYUBsb2NhbGhvc3QwHhcNMTQwNzI0
-MTQxOTAyWhcNMjQwNzIxMTQxOTAyWjCBjDELMAkGA1UEBhMCQ1oxFjAUBgNVBAgM
-DVNvdXRoIE1vcmF2aWExDTALBgNVBAcMBEJybm8xDzANBgNVBAoMBkNFU05FVDEM
-MAoGA1UECwwDVE1DMRMwEQYDVQQDDApleGFtcGxlIENBMSIwIAYJKoZIhvcNAQkB
-FhNleGFtcGxlY2FAbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
-CgKCAQEArD3TDHPAMT2Z84orK4lMlarbgooIUCcRZyLe+QM+8KY8Hn+mGaxPEOTS
-L3ywszqefB/Utm2hPKLHX684iRC14ID9WDGHxPjvoPArhgFhfV+qnPfxKTgxZC12
-uOj4u1V9y+SkTCocFbRfXVBGpojrBuDHXkDMDEWNvr8/52YCv7bGaiBwUHolcLCU
-bmtKILCG0RNJyTaJpXQdAeq5Z1SJotpbfYFFtAXB32hVoLug1dzl2tjG9sb1wq3Q
-aDExcbC5w6P65qOkNoyym9ne6QlQagCqVDyFn3vcqkRaTjvZmxauCeUxXgJoXkyW
-cm0lM1KMHdoTArmchw2Dz0yHHSyDAQIDAQABo1AwTjAdBgNVHQ4EFgQUc1YQIqjZ
-sHVwlea0AB4N+ilNI2gwHwYDVR0jBBgwFoAUc1YQIqjZsHVwlea0AB4N+ilNI2gw
-DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAI/1KH60qnw9Xs2RGfi0/
-IKf5EynXt4bQX8EIyVKwSkYKe04zZxYfLIl/Q2HOPYoFmm3daj5ddr0ZS1i4p4fT
-UhstjsYWvXs3W/HhVmFUslakkn3PrswhP77fCk6eEJLxdfyJ1C7Uudq2m1isZbKi
-h+XF0mG1LxJaDMocSz4eAya7M5brwjy8DoOmA1TnLQFCVcpn+sCr7VC4wE/JqxyV
-hBCk/MuGqqM3B1j90bGFZ112ZOecyE0EDSr6IbiRBtmeNbEwOFjKXhNLYdxpBZ9D
-8A/368OckZkCrVLGuJNxK9UwCVTe8IhotHUqU9EqFDmxdV8oIdU/OzUwwNPA/Bd/
-9g==
+MIIFlTCCA32gAwIBAgIUYjGBXIujymdkS9A2MzssbetWn9gwDQYJKoZIhvcNAQEL
+BQAwWjELMAkGA1UEBhMCUEwxCzAJBgNVBAgMAkRTMRAwDgYDVQQHDAdXcm9jbGF3
+MQ4wDAYDVQQKDAVOb2tpYTENMAsGA1UECwwETWFubzENMAsGA1UEAwwET25hcDAe
+Fw0xOTExMDYxNTExNDBaFw0yOTExMDMxNTExNDBaMFoxCzAJBgNVBAYTAlBMMQsw
+CQYDVQQIDAJEUzEQMA4GA1UEBwwHV3JvY2xhdzEOMAwGA1UECgwFTm9raWExDTAL
+BgNVBAsMBE1hbm8xDTALBgNVBAMMBE9uYXAwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQC7zJGm+qODeBm0citmi+VKOwhVUg1QTyofXsqoib+yeiepYz+c
+MRMXMK20TA2m4ObAG5JoU0Ht1bT08f4K8BAoutq0rwb28YodSKiq8PCtD4Pn81Up
+FdP+Ymsl4YqXhydLEsqv/tpZgVvsCr/a6esxPfGSrScqw2PUf8qrHEXV48lX2Ho9
+19nZWjQTgqDzmOAShyMQabdrfuKII6/A6w/Q8eghzMQrJFsnfOS35RmH6MJyi1vl
+Hn37uEpZWjh0untRA4mtAHB6f3exw36gfpGyQgfMUiCBCbsr8SgJbHCaDpozD9ZE
+Ny+R+jRsqt0RlBoZsSPToNw1o6YjzBZZi1qYyDuNz0bQR/hedQxkwwKcj0Y7tfxF
+IfwUkb1XQ0e4mDia6R6tptphSfrSKLouVFGTVdVtoP5lpGhsw3+KWuTbwB64cZuS
+YuWW1BJ7gM6xj8b9cWRtOakHJ7WKt98Z3U7wDrQqZpnWk893kWoo0Q22X4uTipHX
++ETSdtTq5mVvYQQNub2CcA/4GQyODfdlC0gDkNeT9t6yfMJcOAJUBvW1JMoDAkED
+nWnWm/kS7aflFH6IHfqHbt1ZXUGJG94wTpvGJAHTnaiyX0mL4KK/r+ivdii+Tais
+VFKOqW7EqNZziOvZ0TMfkHtrBY89DgG8+XNwa0KUQIqVIQoJwOfQl4pAjQIDAQAB
+o1MwUTAdBgNVHQ4EFgQUQ9QHKoM/JUSm7ZnO+JvsHMVo6M0wHwYDVR0jBBgwFoAU
+Q9QHKoM/JUSm7ZnO+JvsHMVo6M0wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
+AQsFAAOCAgEAK6bcNkkAVY11yUg1Vm3e9QGRWPeWNbKVIHR/uJIvq4R8AthvFcEG
+6GxApE9Zdd0oWpUG9cM/EZ3ZB5drDnpqUYURkQ8YNrIPJXByvqXFeQPej+m7DHOE
+vPtbm780cE+Z6abfctRFdujJX8hQ5s3UEKjpk0HsbZqEX4JbNeLT+LKgH+kwU/SA
+puVFZXN7dTACdX2gg2F1Fg52L54ZTWMlFMNn32b1a8zrKY0HaoLQd+yXS4RfrMpd
+jPsaytuOimU+OFRFb8cvSpuC+gkCEwQFVKb/B+0Rp1No3edEE4N92hpkiDh5/+ML
+/B8kSh0InaGxu6uTC3QzqTRgzbaRpOoWkdVRkDSpU6xNtyQN5jXDExpXtPe4LMP6
+Vk1jGpJ3E6kjSzzSvZFsH9Fko++aF6m5qqAHgG/Yc0j+7bmWCoMZWVqoxE9fHjfc
+mFs8N7R2HYA7G3qKs1fZy5SzAhuMkggys6z3c6ZW2BtD82GClSlXIlPwBu6KpCNy
+6cDeQ245wH1pO7pKfaIu3hbY6m5Z9jkbyOeW4I2Pj2s13345qjF9pRggkJ0MQtgi
+M6vU/13o/WhF0lEVz37pbriJ106412tF60uyyzZvJkAqhBCJyJ0jxqtwKr8GhL9g
+PnTRJkhFAE/5KvAi0ETbOIScRz/B+v+nm08ZGe1nHQ/Vu+NIY5gLp18=
-----END CERTIFICATE-----
diff --git a/test/mocks/pnfsimulator/netconfsimulator/tls/ca.key b/test/mocks/pnfsimulator/netconfsimulator/tls/ca.key
new file mode 100644
index 000000000..1e87b9010
--- /dev/null
+++ b/test/mocks/pnfsimulator/netconfsimulator/tls/ca.key
@@ -0,0 +1,54 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+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
+ETq+BbQtrvmZb6x5IrRU3Kt5QmkS/K/1
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/test/mocks/pnfsimulator/netconfsimulator/tls/client.crt b/test/mocks/pnfsimulator/netconfsimulator/tls/client.crt
new file mode 100644
index 000000000..3c0d20cce
--- /dev/null
+++ b/test/mocks/pnfsimulator/netconfsimulator/tls/client.crt
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFKDCCAxACAWUwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UEBhMCUEwxCzAJBgNV
+BAgMAkRTMRAwDgYDVQQHDAdXcm9jbGF3MQ4wDAYDVQQKDAVOb2tpYTENMAsGA1UE
+CwwETWFubzENMAsGA1UEAwwET25hcDAeFw0xOTExMDYxNTEyMjlaFw0yMDExMDUx
+NTEyMjlaMFoxCzAJBgNVBAYTAlBMMQswCQYDVQQIDAJETjEQMA4GA1UEBwwHV3Jv
+Y2xhdzEOMAwGA1UECgwFTm9raWExDTALBgNVBAsMBE1hbm8xDTALBgNVBAMMBE9u
+YXAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC1kEo6cAykAqNE4R53
+8VJn5Rzbs5HDDk9+0HCxgEp/7suRMWLOgeG5/L+nRgrLLcFPscwnIwIHUUE1pzyj
+aDux6cXjpto+1APq/sd1ofVMMl3I/zqcrqojixjFJO1INgN/i1CaAeBRO+mNmIUN
+IJKy2KbTYvTYYJrJbzIRh1NBsUvuIzvj5Wkq3cri4oJmz82lsNDAh4BGedWQT4RU
+mjb/EC7D9WpfOlMhsgLVJgPdG5ESFqN+xx/n4xJUcM/HGqVlfZED5XDcfQjp56Ba
+FBpNhLW41qVy8UoeixYiduLaVvKDoJc2Ea3N/pyE3YU1LBOy7znpULX3UdMb+bX5
+jGn4uauKz77hLZA5nurgb8v1ofbj1GCM28JfaiPRtIuWVtWKI+8RyKjaXjKd/rcG
+W/5T9aM9um/lH2v/DteaTa4i8zebL7k/DJFTXP+DCtJTi8e23Xalkp+O+MWQQrGR
+O07NHdl1gjDmEoc3NMRO51Ux5CDyqCbhF4QdX0ND+vDJmD8GBuxb6A3HjdmT5/iB
+iH5/HO6FRHFhMtR9xABryT01gYkDWJHszTStNLx/ZzW4Dz3i2WyoEvDa2meLkSh5
+edE1skowZriSeoOuGWJlfpjjvn1p4kjk0msg3T8EgJqZu9AiKzuVgILa8u6Kny8/
+p12MN+yltB02hiJZyMlyJDCn3QIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQAf227R
+PWMNcdVKbDz8pKXOYUN5RtvvisabF25CrxVMNzH2+3nQIuICOEg7dFI1qKEEh+DJ
+51dAgwCC7d+levHBHximFaW7ED1rRFZJUoHlF9Ku74KA3eWPcWBJdzIAk2KzcQhu
+GXVQs2RUv5nJJogAPTtt9hFU9e3vqfpb+DNrzO0BTCfTsO3QSSojrtOpLOhH4EBV
+z6TyKDYJH7XCIvhApJjbuWsvVi3WTYFpFtF3dBNTMXjMZaHqMQBmMO4VzoQeu422
+fAcCVb+UUIrdU/Jdm+6tjuUqfQj3lVIZFPhTXrZ0MfBkowHoioos34u+JJ3Hjd+5
+mK27OhNA4SKaYQfi2DQ8jV1Jf/yA+lcmZddAiLZyOgHXPNZpP6glG802/k67i61J
+PIxaoaVmgxccZINzqov4Sn7A6hgt3S68izpsrIu1R9JqKjjgNA5HqtkMjyYqaMoX
+nQ0jIxkd5lkHL8MzAecaR37Y4hibpgsDl2SsuLTtfcO3NQO0bGFMRqYaIHN6DYd0
+4S1vOrsCWc3njvUGW8UcvB8GC4puwTi9en9SPaVcgSEBZ8gsJ4E1XWAdyTQZJWon
+aMn8iAeapfJu7N3UA5nM9L0f7dvODkLDqXOJuLl1IhhNFu6E864Ld+BVH8EQjIrr
+xCvjvlMQ4pnp7kjQdEekswN9ON6e3pxT/W3t7g==
+-----END CERTIFICATE-----
diff --git a/test/mocks/pnfsimulator/netconfsimulator/tls/client.key b/test/mocks/pnfsimulator/netconfsimulator/tls/client.key
new file mode 100644
index 000000000..cb80fca8d
--- /dev/null
+++ b/test/mocks/pnfsimulator/netconfsimulator/tls/client.key
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY----- \ No newline at end of file
diff --git a/test/mocks/pnfsimulator/netconfsimulator/tls/client.req b/test/mocks/pnfsimulator/netconfsimulator/tls/client.req
new file mode 100644
index 000000000..ace54c096
--- /dev/null
+++ b/test/mocks/pnfsimulator/netconfsimulator/tls/client.req
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIE0zCCArsCAQAwWjELMAkGA1UEBhMCUEwxCzAJBgNVBAgMAkROMRAwDgYDVQQH
+DAdXcm9jbGF3MQ4wDAYDVQQKDAVOb2tpYTENMAsGA1UECwwETWFubzENMAsGA1UE
+AwwET25hcDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALWQSjpwDKQC
+o0ThHnfxUmflHNuzkcMOT37QcLGASn/uy5ExYs6B4bn8v6dGCsstwU+xzCcjAgdR
+QTWnPKNoO7HpxeOm2j7UA+r+x3Wh9UwyXcj/OpyuqiOLGMUk7Ug2A3+LUJoB4FE7
+6Y2YhQ0gkrLYptNi9NhgmslvMhGHU0GxS+4jO+PlaSrdyuLigmbPzaWw0MCHgEZ5
+1ZBPhFSaNv8QLsP1al86UyGyAtUmA90bkRIWo37HH+fjElRwz8capWV9kQPlcNx9
+COnnoFoUGk2EtbjWpXLxSh6LFiJ24tpW8oOglzYRrc3+nITdhTUsE7LvOelQtfdR
+0xv5tfmMafi5q4rPvuEtkDme6uBvy/Wh9uPUYIzbwl9qI9G0i5ZW1Yoj7xHIqNpe
+Mp3+twZb/lP1oz26b+Ufa/8O15pNriLzN5svuT8MkVNc/4MK0lOLx7bddqWSn474
+xZBCsZE7Ts0d2XWCMOYShzc0xE7nVTHkIPKoJuEXhB1fQ0P68MmYPwYG7FvoDceN
+2ZPn+IGIfn8c7oVEcWEy1H3EAGvJPTWBiQNYkezNNK00vH9nNbgPPeLZbKgS8Nra
+Z4uRKHl50TWySjBmuJJ6g64ZYmV+mOO+fWniSOTSayDdPwSAmpm70CIrO5WAgtry
+7oqfLz+nXYw37KW0HTaGIlnIyXIkMKfdAgMBAAGgNDAYBgkqhkiG9w0BCQIxCwwJ
+Y29sbGVjdG9yMBgGCSqGSIb3DQEJBzELDAljb2xsZWN0b3IwDQYJKoZIhvcNAQEL
+BQADggIBAG4zPJVwotinJdDfBY8sGj6ARcWNtRuCmLj4Xri6pzzvUCaSLFAvIkd1
+Tdm7uIrfUMU+/stvu2E1myWJGnITL8njUahMqrTwI0yZF3Do8bw12kr9lf3wDNLT
+CvPApGpUEegcGQS/pp6ksa7zd4iDkWPLqf4CqnooDKprPQXz2HL2clBCmSrD2u61
+zTVey/G6FCU1tfAXisykmF2pElC8AJpY9EkY/ShSwk31n3ARe0XZAqo9NfcwvgAx
+isqevdXQ+D/FROjVwSKb8CB1rANn36ziZRMz02cyVj3FLbOgSBsrAfunbLNDyQ9z
+C3FYNA/tTtaPlwL8aOz0T5N6iyjmpqcvlFFFB+H5zg1tP0rcYwGnto3d85GgBYBF
+BK+ikAzYgZlpB48VceMQydZk3aMOcUIVSWpzsVhr9GkUYmYE6DxSZlzXGs75FkFf
+aP7/Qqf8Ut8G8fZV2QziOcuMbCnZ2fZl/lLLHO6A4e86bDyUjqPQK/LPylvJGgmY
+CivXpuBVA7j5SZZ4YnwqtWe4xh5vgbxZU7sq9omHnJaLfINHfQepeHcL4mWRo1oP
+xnacKz0ju2rlPNRN2jFciFQnZTUvmWO5KvoipadyjWqd7QzM0J4rdW56+a4tR1LA
+0JiV+yzsq9NB6/wKGGtwjYOEhr5AJOEb3qJPNJ45KI3nag2l3HWj
+-----END CERTIFICATE REQUEST----- \ No newline at end of file
diff --git a/test/mocks/pnfsimulator/netconfsimulator/tls/server.req b/test/mocks/pnfsimulator/netconfsimulator/tls/server.req
new file mode 100644
index 000000000..7e3e70a0d
--- /dev/null
+++ b/test/mocks/pnfsimulator/netconfsimulator/tls/server.req
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE REQUEST-----
+MIIEuTCCAqECAQAwWjELMAkGA1UEBhMCUEwxCzAJBgNVBAgMAkROMRAwDgYDVQQH
+DAdXcm9jbGF3MQ4wDAYDVQQKDAVOb2tpYTENMAsGA1UECwwETWFubzENMAsGA1UE
+AwwET25hcDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALFl14dsyahU
+bDm8WxD2VPGHOy8CccW77WFyxbUUM0JxfawM8cJC8AZlb2RRVNmwsq5mtQa5XWnp
+rZBx1BaMmN+ek201QSec5m3Nwesz6m7w8xIn+JJqrerdQ6vDqKTsCIINhekHgNAb
+3QdRnIE2dSk8ORZgVTPxNMyLG832U/8lGic2yi+P/jB3j4Ianx33k18GUb851H60
+DSDYkT1QDP97DSw/2k2YThljBcUKaKKuajJpA+IwL2s7vDbaJj1neIuE+tDSKZAS
+TPzUJSS9d0yFk090wI42idZ9szByP+v08hBQDc4Uo0CWUrSxebKJ8Z7k347U3uG6
+MEjY6FqjL7y4oZo670fjiKiOnJVRxFDdj/5DR37hFGjHg1x6BSRt4aJ4SSdYuNu5
+X2LGijqJ6FBeKc+TZfj4g1eH2bLvEI03Z0V1Q2p8qq59jVJAb5U2qwPRU30JRrFY
+R84kPj8xV1xi3tZke0T0nszCLnDa5oCImm1Q31Ncbe1ZruSNNmGhpjGqe+nGaLOg
+jSQaoYfe982i9hhsEIgLOtOLSOYSRsIwd6tWoH5WrsrkotTawby9dMDA7ghkQ8lL
+xkuLkcm/VIKrqCofkP1KNi0NzAa4F3HXhwN8xd/UrbYz5jjjh0s6DOxX5Eu5P1+7
+JIGnuSc2Trd2iHSob2Cf97a5OrQ7/farAgMBAAGgGjAYBgkqhkiG9w0BCQcxCwwJ
+Y29sbGVjdG9yMA0GCSqGSIb3DQEBCwUAA4ICAQCJb4dJS4ddeL/IzuOA6kKpqOz/
+YJUECLCRPSvdf5DCH/ezf5L+UE8WUpcvSkRo36rwBPR/R2hDnshfKUYYZoi5UqzT
++Y7E3Kdrim4K9MGJGVTqtIYqoNS0jgbmX2zw7FDXHBVfP2TQhalzBO4BMshB916o
+IWs8esTRNhXZ7P4hDOkYyWp4qPeOjzdUgqEQosz+OkB+RdVpKfs3sG0eqZRDVnHz
+Hk7cfpn6m9OZf+0aLlAlhs1d9KvvdmUn0vC3QVktPLXZpa1XNTrE7tml3crYNmU0
+JSuP7MBwgjJMBe400aIXIKssqVUJjlAzNARFWo/84Fzb6QuyfVwNp1tMzBAFFDc3
+BOv891fwIKAOKRSSui2Eq3nxt6+8JTTx8YeuppS79V50XNl6PolY5jDEkxED7sst
+ScpU7rOURDfgT2EdqjWzSmW7JzBuuTkAz4T/lg4dAspKacVi9hG28Jt+gX6xlM5Y
+qS43o2YhSze4PfOgjkUIvqSiDa6uORMJPi5iCwGVpomKfMtZCmXrPiCyQg6u8TqJ
+LXA9pm++mehgj79kl+yb8A2eQvIqEb8eOG/CzZjW5IZxLZgKk/AjAcBn0yhhIrVq
+6rBaIlVbXOdxMsxxVgyktziA7DFCt/1TvQylSn9hWaBkpdjVlbFmMyuNU+KHZA41
+8raJhp+mC5IUG/98UQ==
+-----END CERTIFICATE REQUEST-----
diff --git a/test/mocks/pnfsimulator/netconfsimulator/tls/server_cert.crt b/test/mocks/pnfsimulator/netconfsimulator/tls/server_cert.crt
index c0e03a3f0..5909026f9 100644
--- a/test/mocks/pnfsimulator/netconfsimulator/tls/server_cert.crt
+++ b/test/mocks/pnfsimulator/netconfsimulator/tls/server_cert.crt
@@ -1,24 +1,30 @@
-----BEGIN CERTIFICATE-----
-MIIECTCCAvGgAwIBAgIBCDANBgkqhkiG9w0BAQsFADCBjDELMAkGA1UEBhMCQ1ox
-FjAUBgNVBAgMDVNvdXRoIE1vcmF2aWExDTALBgNVBAcMBEJybm8xDzANBgNVBAoM
-BkNFU05FVDEMMAoGA1UECwwDVE1DMRMwEQYDVQQDDApleGFtcGxlIENBMSIwIAYJ
-KoZIhvcNAQkBFhNleGFtcGxlY2FAbG9jYWxob3N0MB4XDTE1MDczMDA3MjU1MFoX
-DTM1MDcyNTA3MjU1MFowgYUxCzAJBgNVBAYTAkNaMRYwFAYDVQQIDA1Tb3V0aCBN
-b3JhdmlhMQ8wDQYDVQQKDAZDRVNORVQxDDAKBgNVBAsMA1RNQzEXMBUGA1UEAwwO
-ZXhhbXBsZSBzZXJ2ZXIxJjAkBgkqhkiG9w0BCQEWF2V4YW1wbGVzZXJ2ZXJAbG9j
-YWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsdI1TBjzX1Pg
-QXFuPCw5/kQwU7qkrhirMcFAXhI8EoXepPa9fKAVuMjHW32P6nNzDpnhFe0YGdNl
-oIEN3hJJ87cVOqj4o7zZMbq3zVG2L8As7MTA8tYXm2fSC/0rIxxRRemcGUXM0q+4
-LEACjZj2pOKonaivF5VbhgNjPCO1Jj/TamUc0aViE577C9L9EiObGM+bGbabWk/K
-WKLsvxUc+sKZXaJ7psTVgpggJAkUszlmwOQgFiMSR53E9/CAkQYhzGVCmH44Vs6H
-zs3RZjOTbce4wr4ongiA5LbPeSNSCFjy9loKpaE1rtOjkNBVdiNPCQTmLuODXUTK
-gkeL+9v/OwIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVu
-U1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU83qEtQDFzDvLoaII
-vqiU6k7j1uswHwYDVR0jBBgwFoAUc1YQIqjZsHVwlea0AB4N+ilNI2gwDQYJKoZI
-hvcNAQELBQADggEBAJ+QOLi4gPWGofMkLTqSsbv5xRvTw0xa/sJnEeiejtygAu3o
-McAsyevSH9EYVPCANxzISPzd9SFaO56HxWgcxLn9vi8ZNvo2wIp9zucNu285ced1
-K/2nDZfBmvBxXnj/n7spwqOyuoIc8sR7P7YyI806Qsfhk3ybNZE5UHJFZKDRQKvR
-J1t4nk9saeo87kIuNEDfYNdwYZzRfXoGJ5qIJQK+uJJv9noaIhfFowDW/G14Ji5p
-Vh/YtvnOPh7aBjOj8jmzk8MqzK+TZgT7GWu48Nd/NaV8g/DNg9hlN047LaNsJly3
-NX3+VBlpMnA4rKwl1OnmYSirIVh9RJqNwqe6k/k=
+MIIFKDCCAxACAWQwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UEBhMCUEwxCzAJBgNV
+BAgMAkRTMRAwDgYDVQQHDAdXcm9jbGF3MQ4wDAYDVQQKDAVOb2tpYTENMAsGA1UE
+CwwETWFubzENMAsGA1UEAwwET25hcDAeFw0xOTExMDYxNTEzMjJaFw0yMzExMDUx
+NTEzMjJaMFoxCzAJBgNVBAYTAlBMMQswCQYDVQQIDAJETjEQMA4GA1UEBwwHV3Jv
+Y2xhdzEOMAwGA1UECgwFTm9raWExDTALBgNVBAsMBE1hbm8xDTALBgNVBAMMBE9u
+YXAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCxZdeHbMmoVGw5vFsQ
+9lTxhzsvAnHFu+1hcsW1FDNCcX2sDPHCQvAGZW9kUVTZsLKuZrUGuV1p6a2QcdQW
+jJjfnpNtNUEnnOZtzcHrM+pu8PMSJ/iSaq3q3UOrw6ik7AiCDYXpB4DQG90HUZyB
+NnUpPDkWYFUz8TTMixvN9lP/JRonNsovj/4wd4+CGp8d95NfBlG/OdR+tA0g2JE9
+UAz/ew0sP9pNmE4ZYwXFCmiirmoyaQPiMC9rO7w22iY9Z3iLhPrQ0imQEkz81CUk
+vXdMhZNPdMCONonWfbMwcj/r9PIQUA3OFKNAllK0sXmyifGe5N+O1N7hujBI2Oha
+oy+8uKGaOu9H44iojpyVUcRQ3Y/+Q0d+4RRox4NcegUkbeGieEknWLjbuV9ixoo6
+iehQXinPk2X4+INXh9my7xCNN2dFdUNqfKqufY1SQG+VNqsD0VN9CUaxWEfOJD4/
+MVdcYt7WZHtE9J7Mwi5w2uaAiJptUN9TXG3tWa7kjTZhoaYxqnvpxmizoI0kGqGH
+3vfNovYYbBCICzrTi0jmEkbCMHerVqB+Vq7K5KLU2sG8vXTAwO4IZEPJS8ZLi5HJ
+v1SCq6gqH5D9SjYtDcwGuBdx14cDfMXf1K22M+Y444dLOgzsV+RLuT9fuySBp7kn
+Nk63doh0qG9gn/e2uTq0O/32qwIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQBqW8/0
+u85VTUWA8tpfjqgmMd9WdM5YVty/oRQ3sT+1k6mdPF2u8HgTD5vNR71XEkpQuNbZ
+9UrJ1UOgcbxcodDh2v2Jv5faSyQBnmkSjagyH+7goN/mcM+CtIZQsdp8drzlty/M
+x1CeVW54jVrInk01yS3cATCdxqkel9nhTT0qcPOmHxugTyTwApzwN4dRMf1WHQ9B
+U1K95yWvscZdY2cMKRw3Ps90+AU8eSoAbV1qQEl95qcWani7LPNfc8nii3nCINBR
+KTdbP1uG8hck4BFxOZye6mbNMx086T7O3Buzcve5O/3isCCZQhV6PZIE7zL5+hyY
+RLx7MxUUETy4QFapGCfOGvixK8QM/xXJone2CjnmptiRJjC11Imv84bL3KUziKPR
+DTyX2f4oKEwaVpbfJgyyxMmoNUAB2NaKNAW9NhvYjVqmCUvgrvL7L6WZTe9N5gkX
+H7cQZ7PyAdgGKet0b0Spr8NfBATyZKNI6ZRcGJduO7sOblqAsC6GToq7Jcz9xkYd
+ItNdhoDohZIDwW1XnHuNKgE1tEXm1KAbdlGrUEOTsyuK4bz4kDdVu58/nFT4ZYnC
+2HSyLwsNNeKChwdVFL8d/Rj9ojjVyUBH6wuQHRAcs0Ui2Cpy+OPWcNjDuHjkiw2J
+KEzFqRi6zQqj1y2Sjv1HQpn8dxppKOsV6rjoXQ==
-----END CERTIFICATE-----
diff --git a/test/mocks/pnfsimulator/netconfsimulator/tls/server_key.pem b/test/mocks/pnfsimulator/netconfsimulator/tls/server_key.pem
index d61c77bdf..b10a07608 100644
--- a/test/mocks/pnfsimulator/netconfsimulator/tls/server_key.pem
+++ b/test/mocks/pnfsimulator/netconfsimulator/tls/server_key.pem
@@ -1,27 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
-MIIEowIBAAKCAQEAsdI1TBjzX1PgQXFuPCw5/kQwU7qkrhirMcFAXhI8EoXepPa9
-fKAVuMjHW32P6nNzDpnhFe0YGdNloIEN3hJJ87cVOqj4o7zZMbq3zVG2L8As7MTA
-8tYXm2fSC/0rIxxRRemcGUXM0q+4LEACjZj2pOKonaivF5VbhgNjPCO1Jj/TamUc
-0aViE577C9L9EiObGM+bGbabWk/KWKLsvxUc+sKZXaJ7psTVgpggJAkUszlmwOQg
-FiMSR53E9/CAkQYhzGVCmH44Vs6Hzs3RZjOTbce4wr4ongiA5LbPeSNSCFjy9loK
-paE1rtOjkNBVdiNPCQTmLuODXUTKgkeL+9v/OwIDAQABAoIBAG/4MG1JbL4C/7vV
-pBcpth7Aaznd1eJ2UB4VVOWnT8JOH2L6p1h5KRRhAP9AMkXsCnAQPyZiVAG3FlAZ
-01SZaY2YJDr6uQ3JVW4155TWtgSdWux//Ass+lJ17lJ0SRxjsV13ez6CsDWeRjc+
-2xy0S+KJgqk71XzhJG9fZLYyuddp3U/i3xFPUAcQM9xXKxcaD7g6LJf+a9pt6rim
-Eqq/pjJxDgTsRLARsazYuxrlOB445mvnLiYhOf2/MvI80jIUKaj8BeAhg49UIg/k
-mIh0xdevkcxBFer/BjBjscWaFjx14D6nkFMw7vtCum5KfalLN2edZKAzByOudGD4
-5KnRp3ECgYEA6vnSoNGg9Do80JOpXRGYWhcR1lIDO5yRW5rVagncCcW5Pn/GMtNd
-x2q6k1ks8mXKR9CxZrxZGqeYObZ9a/5SLih7ZkpiVWXG8ZiBIPhP6lnwm5OeIqLa
-hr0BYWcRfrGg1phj5uySZgsVBE+D8jH42O9ccdvrWv1OiryAHfKIcwMCgYEAwbs+
-HfQtvHOQXSYNhtOeA7IetkGy3cKVg2oILNcROvI96hS0MZKt1Rko0UAapx96eCIr
-el7vfdT0eUzNqt2wTKp1zmiG+SnX3fMDJNzMwu/jb/b4wQ20IHWNDnqcqTUVRUnL
-iksLFoHbTxsN5NpEQExcSt/zzP4qi1W2Bmo18WkCgYEAnhrk16LVux9ohiulHONW
-8N9u+BeM51JtGAcxrDzgGo85Gs2czdwc0K6GxdiN/rfxCKtqgqcfCWlVaxfYgo7I
-OxiwF17blXx7BVrJICcUlqpX1Ebac5HCmkCYqjJQuj/I6jv1lI7/3rt8M79RF+j5
-+PXt7Qq97SZd78nwJrZni4MCgYAiPjZ8lOyAouyhilhZvI3xmUpUbMhw6jQDRnqr
-clhZUvgeqAoxuPuA7zGHywzq/WVoVqHYv28Vjs6noiu4R/chlf+8vD0fTYYadRnZ
-Ki4HRt+sqrrNZN6x3hVQudt3DSr1VFXl293Z3JonIWETUoE93EFz+qHdWg+rETtb
-ZuqiAQKBgD+HI/syLECyO8UynuEaDD7qPl87PJ/CmZLMxa2/ZZUjhaXAW7CJMaS6
-9PIzsLk33y3O4Qer0wx/tEdfnxMTBJrgGt/lFFdAKhSJroZ45l5apiavg1oZYp89
-jSd0lVxWSmrBjBZLnqOl336gzaBVkBD5ND+XUPdR1UuVQExJlem4
+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
-----END RSA PRIVATE KEY-----