regenerate test keys, add target to regenerate as needed

This commit is contained in:
akhil 2014-09-16 13:07:02 -07:00
parent 77cb1b1201
commit 862f6b939b
12 changed files with 317 additions and 132 deletions

148
build.xml
View File

@ -153,6 +153,154 @@
<mkdir dir="${test.dir}/tmp"/>
</target>
<macrodef name="openssl">
<attribute name="algo"/>
<attribute name="arg"/>
<attribute name="key"/>
<sequential>
<echo>generating @{key}</echo>
<exec executable="openssl" dir="." failonerror="true">
<arg value="@{algo}"/>
<arg value="@{arg}"/>
<arg value="-in"/>
<arg value="${source.home}/test/fixtures/@{key}"/>
<arg value="-inform"/>
<arg value="pem"/>
<arg value="-out"/>
<arg value="crypto/fixtures/@{key}"/>
<arg value="-outform"/>
<arg value="pem"/>
<arg value="-nocrypt"/>
</exec>
</sequential>
</macrodef>
<target name="regenerate-keys" depends="init">
<openssl algo="pkcs8" arg="-topk8" key="test_key.pem"/>
<openssl algo="pkcs8" arg="-topk8" key="test_rsa_privkey.pem"/>
<openssl algo="pkcs8" arg="-topk8" key="test_rsa_privkey_2.pem"/>
<echo>generating test_rsa_pubkey_2.pem</echo>
<exec executable="openssl" dir="." failonerror="true">
<arg value="rsa"/>
<arg value="-in"/>
<arg value="crypto/fixtures/test_rsa_privkey_2.pem"/>
<arg value="-inform"/>
<arg value="pem"/>
<arg value="-out"/>
<arg value="crypto/fixtures/test_rsa_pubkey_2.pem"/>
<arg value="-outform"/>
<arg value="pem"/>
<arg value="-pubout"/>
</exec>
<echo>generating dsaparam.pem</echo>
<exec executable="openssl" dir="." failonerror="true">
<arg value="dsaparam"/>
<arg value="-out"/>
<arg value="dsaparam.pem"/>
<arg value="1024"/>
</exec>
<echo>generating test_dsa_privkey.pem</echo>
<exec executable="openssl" dir="." failonerror="true">
<arg value="gendsa"/>
<arg value="-out"/>
<arg value="crypto/fixtures/test_dsa_privkey.pem"/>
<arg value="dsaparam.pem"/>
</exec>
<openssl algo="pkcs8" arg="-topk8" key="test_dsa_privkey.pem"/>
<echo>generating test_dsa_pubkey.pem</echo>
<exec executable="openssl" dir="." failonerror="true">
<arg value="dsa"/>
<arg value="-in"/>
<arg value="${source.home}/test/fixtures/test_dsa_privkey.pem"/>
<arg value="-out"/>
<arg value="crypto/fixtures/test_dsa_pubkey.pem"/>
<arg value="-outform"/>
<arg value="pem"/>
<arg value="-pubout"/>
</exec>
<mkdir dir="crypto/fixtures/keys"/>
<openssl algo="pkcs8" arg="-topk8" key="keys/agent1-key.pem"/>
<openssl algo="pkcs8" arg="-topk8" key="keys/agent2-key.pem"/>
<openssl algo="pkcs8" arg="-topk8" key="keys/agent3-key.pem"/>
<openssl algo="pkcs8" arg="-topk8" key="keys/agent4-key.pem"/>
<exec executable="openssl" dir="." failonerror="true">
<arg value="pkcs8"/>
<arg value="-topk8"/>
<arg value="-in"/>
<arg value="${source.home}/test/fixtures/pass-key.pem"/>
<arg value="-inform"/>
<arg value="pem"/>
<arg value="-out"/>
<arg value="crypto/fixtures/pass-key.pem"/>
<arg value="-outform"/>
<arg value="pem"/>
<arg value="-nocrypt"/>
<arg value="-passin"/>
<arg value="pass:passphrase"/>
</exec>
<openssl algo="pkcs8" arg="-topk8" key="agent.key"/>
<echo>generating altnames-agent-key-trans.pem</echo>
<exec executable="openssl" dir="." failonerror="true">
<arg value="genrsa"/>
<arg value="-out"/>
<arg value="crypto/altnames/altnames-agent-key-trans.pem"/>
<arg value="1024"/>
</exec>
<exec executable="openssl" dir="." failonerror="true">
<arg value="pkcs8"/>
<arg value="-topk8"/>
<arg value="-in"/>
<arg value="crypto/altnames/altnames-agent-key-trans.pem"/>
<arg value="-inform"/>
<arg value="pem"/>
<arg value="-out"/>
<arg value="crypto/altnames/altnames-agent-key.pem"/>
<arg value="-outform"/>
<arg value="pem"/>
<arg value="-nocrypt"/>
</exec>
<exec executable="openssl" dir="." failonerror="true">
<arg value="req"/>
<arg value="-new"/>
<arg value="-key"/>
<arg value="crypto/altnames/altnames-agent-key.pem"/>
<arg value="-out"/>
<arg value="crypto/altnames/altnames-agent-key.csr"/>
<arg value="-config"/>
<arg value="crypto/altnames/altnames.cnf"/>
<arg value="-batch"/>
</exec>
<exec executable="openssl" dir="." failonerror="true">
<arg value="x509"/>
<arg value="-req"/>
<arg value="-days"/>
<arg value="-999"/>
<arg value="-in"/>
<arg value="crypto/altnames/altnames-agent-key.csr"/>
<arg value="-signkey"/>
<arg value="crypto/altnames/altnames-agent-key.pem"/>
<arg value="-out"/>
<arg value="crypto/altnames/altnames-agent.crt"/>
<arg value="-extensions"/>
<arg value="v3_req"/>
<arg value="-extfile"/>
<arg value="crypto/altnames/altnames.cnf"/>
</exec>
</target>
<target name="configure-unix" depends="config-gyp" if="isUnix">
<exec executable="python" dir="." failonerror="true">
<arg value="${source.home}/tools/gyp/gyp_main.py"/>

View File

@ -8,7 +8,7 @@ Running the nodejs pummel and simple crypto tests
=================================================
- The crypto tests are located in test/crypto.
- You need to run the tests with a JDK configured with Unlimited Strength Jurisdiction Policy.
- You need to run the tests with a JDK configured with Unlimited Strength Jurisdiction Policy.
(See Installing section)
- java -jar dist/avatar-js.jar src/test/js/test-runner.js test/crypto
@ -18,7 +18,7 @@ Running the Avatar.js specific crypto tests
===========================================
- The specific crypto test is src/test/js/crypto/test-crypto.js
- You need to run the test with a JDK configured with Unlimited Strength Jurisdiction Policy.
- You need to run the test with a JDK configured with Unlimited Strength Jurisdiction Policy.
(See Installing section)
- java -jar dist/avatar-js.jar src/test/js/test-runner.js src/test/js/crypto/test-crypto.js
@ -37,7 +37,7 @@ In jre/lib/security/java.security add security.provider.11=<Your provider class>
Installing the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7
===============================================================================================
- Download the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7
- Download the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7
from: http://www.oracle.com/technetwork/java/javase/downloads/index.html
- Read the UnlimitedJCEPolicy/README.txt for installation procedure
@ -48,13 +48,13 @@ crypto module API Limitations
Cipher Class
------------
There is the flexibility to change set autoPadding after update has been called on Cipher.
This is not possible with Avatar.js. Be sure to set the autoPadding before to call update."
There is the flexibility to change set autoPadding after update has been called on Cipher.
This is not possible with Avatar.js. Be sure to set the autoPadding before to call update."
NB: I never found an example with padding called after update. Seems a documentation typo. Anyway, we should mention it.
"des-ede" support
-----------------
JCE support 3DES with three separate sub keys, for two separate sub keys triple DES (this is what des-ede is),
JCE support 3DES with three separate sub keys, for two separate sub keys triple DES (this is what des-ede is),
create a 24 bytes lon key by duplicating the first 8 bytes of your key
@ -89,9 +89,9 @@ The following algorithm are not supported by Oracle JCE provider:
- Unsupported Digest with DSA: "dsa-md5", "dsa-md2", "dsa-sha384", "dsa-sha512"
- Unsupported Digest with RSA:
- Unsupported Digest with RSA:
- What OpenSSL calls sha is in fact sha-0. What JCE default Provider calls sha in in fact sha-1 (sha-0 is not supported by the default Provider).
- What OpenSSL calls sha is in fact sha-0. What JCE default Provider calls sha in in fact sha-1 (sha-0 is not supported by the default Provider).
This is not documented but "sha" algorithm name exists. In order to have sha-0 to be applied when sha is provided, you will have to use a provider
that takes precendence over the default provider. Look at src/test/js/crypto/test-crypto.js on how to add a custom naming mapping.
@ -107,9 +107,9 @@ The regenerated keys are located in the crypto/fixtures dir. They are copied at
Some private keys are not in pk8 format. They have been regenerated as follow:
pkcs8 -topk8 -in ../test/fixtures/test_key.pem -inform pem -out test_key.pem -outform pem -nocrypt
pkcs8 -topk8 -in ../test/fixtures/test_rsa_privkey.pem -inform pem -out test_rsa_privkey.pem -outform pem -nocrypt
pkcs8 -topk8 -in ../test/fixtures/test_rsa_privkey_2.pem -inform pem -out test_rsa_privkey_2.pem -outform pem -nocrypt
openssl pkcs8 -topk8 -in ../test/fixtures/test_key.pem -inform pem -out test_key.pem -outform pem -nocrypt
openssl pkcs8 -topk8 -in ../test/fixtures/test_rsa_privkey.pem -inform pem -out test_rsa_privkey.pem -outform pem -nocrypt
openssl pkcs8 -topk8 -in ../test/fixtures/test_rsa_privkey_2.pem -inform pem -out test_rsa_privkey_2.pem -outform pem -nocrypt
Public RSA key regenerated
@ -120,9 +120,9 @@ openssl rsa -in test_rsa_privkey_2.pem -pubout -outform PEM -out test_rsa_pubkey
DSA keys regerated in 1024 bits. This is a limitation for DSS1 algorithm (DSA+SHA1) in Java. We have generated a new key pair of strength 1024.
1) openssl dsaparam -out dsaparam.pem 1024
2) openssl gendsa -out est_dsa_privkey.pem dsaparam.pem
3) pkcs8 -topk8 -in test_dsa_privkey.pem -inform pem -out test_dsa_privkey.pem -outform pem -nocrypt
4) openssl dsa -in test_dsa_privkey.pem -pubout -outform PEM -out test_dsa_pubkey.pem YES
2) openssl gendsa -out test_dsa_privkey.pem dsaparam.pem
3) openssl pkcs8 -topk8 -in test_dsa_privkey.pem -inform pem -out test_dsa_privkey.pem -outform pem -nocrypt
4) openssl dsa -in test_dsa_privkey.pem -pubout -outform PEM -out test_dsa_pubkey.pem
-------
TLS
@ -136,11 +136,11 @@ TODO
Limitations
===========
- honorCipherOrder is not supported, Java runtime is picking from the client list
- honorCipherOrder is not supported, Java runtime is picking from the client list
the strongest cipher suite as documented in http://docs.oracle.com/javase/7/docs/technotes/guides/security/SunProviders.html
- SSLv2 is not supported by Oracle JCE. SSLv2 is unsecure, use TLS 1.0 or higher.
- NPN is not supported. Need to log an RFE againt JRE to have support in JDK 9.
- In nodejs, asking the client to authenticate is a "REQUEST" not a "REQUIRE". In Java, this is a "REQUIRE".
- In nodejs, asking the client to authenticate is a "REQUEST" not a "REQUIRE". In Java, this is a "REQUIRE".
We managed to make Java to accept untrusted certificate, but there is no way to make Java to accept none certificate. In this case,
the connection is closed by the server. The test test-tls-server-verify.js has been updated to have client not sending certificate
to not be tested. test-https-pfx.js has been disabled. This behavior is tracked by: JDK-8007788
@ -155,21 +155,21 @@ Change with respect to nodejs documentation
Nodejs TLS test keys
=====================
Some keys have been regenerated to allow for Avatar.js to pass tls tests.
The regenerated keys are located in the crypto/fixtures/keys dir.
The regenerated keys are located in the crypto/fixtures/keys dir.
They are copied at install time to the test/fixtures/keys dir.
openssl pkcs8 -topk8 -in ../test/fixtures/keys/agent1-key.pem -inform pem -out crypto/fixtures/keys/agent1-key.pem -outform pem -nocrypt
openssl pkcs8 -topk8 -in ../test/fixtures/keys/agent2-key.pem -inform pem -out crypto/fixtures/keys/agent2-key.pem -outform pem -nocrypt
openssl pkcs8 -topk8 -in ../test/fixtures/keys/agent3-key.pem -inform pem -out crypto/fixtures/keys/agent3-key.pem -outform pem -nocrypt
openssl pkcs8 -topk8 -in ../test/fixtures/keys/agent4-key.pem -inform pem -out crypto/fixtures/keys/agent4-key.pem -outform pem -nocrypt
openssl pkcs8 -topk8 -in ../test/fixtures/pass-key.pem -inform pem -out crypto/fixtures/pass-key.pem -outform pem
passphrase as password.
use 'passphrase' as password.
openssl pkcs8 -topk8 -in ../test/fixtures/agent.key -inform pem -out crypto/fixtures/agent.key -outform pem -nocrypt
Nodejs tests that require Unlimited Strength
============================================
These tests require that you install Unlimited Strength. They are copied at build time in the
These tests require that you install Unlimited Strength. They are copied at build time in the
test/crypto dir
- test-tls-getcipher.js
- test-tls-getcipher.js
- test-tls-honorcipherorder.js
@ -186,16 +186,16 @@ Generation of the certificate for test-tls-altnames.js test
===========================================================
- key, cnf, csr and crt files are located in the crypto/altnames dir.
- Generate the priv key
openssl genrsa -out altnames-agent-key-trans.pem 1024
- To PK8
openssl genrsa -out altnames-agent-key-trans.pem 1024
- To PK8
openssl pkcs8 -topk8 -in altnames-agent-key-trans.pem -inform pem -out altnames-agent-key.pem -outform pem -nocrypt
- Generate the request:
openssl req -new -out altnames-agent-key.csr -key altnames-agent-key.pem -config altnames.cnf
- Generate the certificate:
- Generate the certificate:
openssl x509 -req -days 9999 -in altnames-agent-key.csr -signkey altnames-agent-key.pem -out altnames-agent.crt -extensions v3_req -extfile altnames.cnf
JRE Bugs that are affecting TLS
JRE Bugs that are affecting TLS
===============================
JDK-8005859 for wish we have a workaround: https://jbs.oracle.com/bugs/browse/JDK-8005859
JDK-8007785 for NPN support
@ -203,13 +203,13 @@ JDK-8007788 to accept null certificate when asked client to authenticate
Notes
=====
The main difference between Java and nodejs
The main difference between Java and nodejs
is related to Certificate validation handling.
Nominal usage of Java SSL support doesn't allow for unverified server certificate.
If a certificate is received and it is not trusted, then an Exception is thrown and Handshake is closed.
Nodejs allows for untrusted connection. To achieve the nodejs behavior,
Nominal usage of Java SSL support doesn't allow for unverified server certificate.
If a certificate is received and it is not trusted, then an Exception is thrown and Handshake is closed.
Nodejs allows for untrusted connection. To achieve the nodejs behavior,
the TrustManger needs to be wrapped inside a trustmanager that will delegate to the actual trustmanager
and not re-throw any exception. The status (trusted or not) is kept.
and not re-throw any exception. The status (trusted or not) is kept.
tls.js, when handshake is over, will call verifyError. According to the error value,
tls will open the secure connection, but the connection will be marked has being not authorized.
@ -217,11 +217,11 @@ The actual errors (certificate validation is NOT considered has being an error)
- invalid server side private key.
- invalid non encrypted received content
Java SSL support allows for more flexibility than nodejs in order to retrieve
Java SSL support allows for more flexibility than nodejs in order to retrieve
the set of trusted authorities.
The default source of trust is used when no "ca" option is provided (on server and/or client side)
the default mechanism to retrieve trustores is used
The default source of trust is used when no "ca" option is provided (on server and/or client side)
the default mechanism to retrieve trustores is used
(as documented in http://download.java.net/jdk8/docs/technotes/guides/security/jsse/JSSERefGuide.html).
For example, to provide your own truststore use the system properties -Djavax.net.ssl.trustStore
For example, to provide your own truststore use the system properties -Djavax.net.ssl.trustStore
and -Djavax.net.ssl.trustStorePassword.

View File

@ -1,14 +1,14 @@
-----BEGIN CERTIFICATE REQUEST-----
MIICDzCCAXgCAQAwUDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1OMREwDwYDVQQH
EwhOZXctWW9yazEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRhdGVkMIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLQBMqVCo6gb+96zaAZd+qExNvHcPB
PUkvPFRserkP4LaHsWeeZGIl3S66m7U+wgAdyg59uEjh8gRJvu2raXLFObdeY0s6
kLhobuYrAvv0rXwIBqtVJl2actfbn+1V8aw5ou+oz7MqgDI0OL6mWfXCpc2CvpWU
sfRtql/mLZIppQIDAQABoH8wfQYJKoZIhvcNAQkOMXAwbjAJBgNVHRMEAjAAMAsG
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCZYI/9pwvMWSnnP6FoxcTedS5mnGga
zNdYxroezNS/tz5QChUmzxKYIf/xmT2GKFx3q9UA7nSQvuMOWmQawbV/cBLZ2G1s
6+QkmeoVFgUIW1dGor/ngDFsPeNaDDC/zOJfZAiYJaxW81QnQAGl3Lb6MOwAx+5w
J5QsP5FRPWVQFQIDAQABoH8wfQYJKoZIhvcNAQkOMXAwbjAJBgNVHRMEAjAAMAsG
A1UdDwQEAwIF4DBUBgNVHREETTBLghNob3N0MS5hdmF0YXItanMuY29tghNob3N0
Mi5hdmF0YXItanMub3JnghNob3N0My5hdmF0YXItanMubmV0hwQKpmm5hwQKpmm6
MA0GCSqGSIb3DQEBBQUAA4GBACdXXDRzT4xDv+Q27iYzAG+gO0/BYdAr+Ps9F7sM
YDiXSs7uhAq8/HBWuy32jq6j59HPtE3wTZvRmSUC9U5wEM4E17NL802W9TzrUBwj
naUNnVTOpUUAmKil5hZXWM6bojQYxTgerxbxhyfOi538xlQBvgj4WfUAk3jKcQdv
Qh2V
MA0GCSqGSIb3DQEBCwUAA4GBAAs8taJ5QzliHVgS3gKs8b4u2fg8759EYMGxb6Ad
MSf4aigA17PX32u9wufxohFyM3kzewp2isNPKXkQwkE+wNaaui25MJbCUulIQhaS
Mc9vIHxojCp0R6ZQ8lOqZy0SPbcivPsOl0MrY3CY1/Oh/oIQH/mICoGF+qXlKeJ9
PQ0w
-----END CERTIFICATE REQUEST-----

View File

@ -1,16 +1,16 @@
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMtAEypUKjqBv73r
NoBl36oTE28dw8E9SS88VGx6uQ/gtoexZ55kYiXdLrqbtT7CAB3KDn24SOHyBEm+
7atpcsU5t15jSzqQuGhu5isC+/StfAgGq1UmXZpy19uf7VXxrDmi76jPsyqAMjQ4
vqZZ9cKlzYK+lZSx9G2qX+YtkimlAgMBAAECgYAhCpOTCAetZzZii4BaszT/EwbP
w4j1Ox9QnIAk+nZnTGKgAIkVyL/j4+ca0wFN6H/YV+avLWw7vvpPeshsW0Ia34/a
2I+C4SNwlk9kAZgHmQbpzM2sGSxr4Uh8sFl2JhpWAzkUYEAoXQV01037A/IEEsTg
YOIpozRRq7OkGb7kwQJBAPJkttyWhb0bEtY2SbeUb8/l0QF7vKtxzRSRCHJ7X32u
kXzT5RSP70EuqjJw1+EgyMIod2ANWkHJYny/BlmOk/kCQQDWqNvl/pVhti+7xOvk
OZiLKBinrfbLvZgUgA/B48xE+rj6vBez6o6xZNunwYUvzvfytjilESFeGYelQk2C
V1YNAkBb5Q7mhjJhxTfY+m/sJ1xUhx4737thjB1h5LI9JMTJEzuZBYRdzUu5fIWN
5fYSJam24jyPr8A+HKk3/fvcTA+RAkBzgpYiI2a7F9CD2CmfvCaL612pDYHajQGD
No5EJZLMI6batdCDblqutrlEgmxrF5JxNwEwQhGUk2Rc11riIqEZAkEA51pRhjMf
aiHIx0BOKJZY/SsKFNqYPYgin13YrOisC1Wdk0/QFF7jfkcxYrItvwmqN+uzT+X2
2Ag3XmQD37fdeg==
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJlgj/2nC8xZKec/
oWjFxN51LmacaBrM11jGuh7M1L+3PlAKFSbPEpgh//GZPYYoXHer1QDudJC+4w5a
ZBrBtX9wEtnYbWzr5CSZ6hUWBQhbV0aiv+eAMWw941oMML/M4l9kCJglrFbzVCdA
AaXctvow7ADH7nAnlCw/kVE9ZVAVAgMBAAECgYALckxstrnHr2PUMUh/hDr0CzTC
TavrTBxKMNKVF95MzIUm/gmkEtIlbmwmgLQ5vetgtv83iZRDdSuG17Ie2RQNaCDu
TZc6kIiIPCadzgfGEuJhXHxFpMMRM0kVG0WLlbPQnHVhNid+2eB3bAtOkNYtOxhO
rzCanSQDW/tVKCIxIQJBAMfY+WM+AdXn+HHpH4UgtQdHlnYnyFhq5ZIfxaBRtFRp
fhvtYFMBrPzZo/HvCunH3/n8Qq9hjKpZ7F0dYF6u3q0CQQDEePo8DaZz/AcQJN4V
VjbSBbsEDJLhLr0xHTgtjSN7b0kB3XkQccTYu3PWb20knn5hkPbpiHMtvbQ9LRBa
2OwJAkEAuZnP2xReXgum2Bva0yfSGGWq3icKUNtORAxP3RmkcXTb0xH9EHoQ728t
bGZF62Jep+tY/0qIejkzZDMBKk4brQJBALtEHC8VS6yNciX/Hfb0X/g7IhAv8+fS
Zt3jXeJ8/m7umYW/lV8JMXjq4vRm7H7U2t0gEVhyiGX2xU7yHv6YeBECQDTuMK6D
ZW4/Y93aqeHPKApm/U6dRnSkN52IT45TMplfBTMGBHau9JGa1i5UDyNLRZvf1+6c
STsA0E8QUrR8Rho=
-----END PRIVATE KEY-----

View File

@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICjjCCAfegAwIBAgIJALj9ti/tk4KIMA0GCSqGSIb3DQEBBQUAMFAxCzAJBgNV
MIICjjCCAfegAwIBAgIJAO35EiAE4sZCMA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNV
BAYTAlVTMQswCQYDVQQIEwJNTjERMA8GA1UEBxMITmV3LVlvcmsxITAfBgNVBAsT
GERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xMzA5MTkwNzM1MzdaFw00MTAy
MDMwNzM1MzdaMFAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjERMA8GA1UEBxMI
GERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDAeFw0xNDA5MTYxOTU3NTVaFw0xMTEy
MjIxOTU3NTVaMFAxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNTjERMA8GA1UEBxMI
TmV3LVlvcmsxITAfBgNVBAsTGERvbWFpbiBDb250cm9sIFZhbGlkYXRlZDCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAy0ATKlQqOoG/ves2gGXfqhMTbx3DwT1J
LzxUbHq5D+C2h7FnnmRiJd0uupu1PsIAHcoOfbhI4fIESb7tq2lyxTm3XmNLOpC4
aG7mKwL79K18CAarVSZdmnLX25/tVfGsOaLvqM+zKoAyNDi+pln1wqXNgr6VlLH0
bapf5i2SKaUCAwEAAaNwMG4wCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwVAYDVR0R
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAmWCP/acLzFkp5z+haMXE3nUuZpxoGszX
WMa6HszUv7c+UAoVJs8SmCH/8Zk9hihcd6vVAO50kL7jDlpkGsG1f3AS2dhtbOvk
JJnqFRYFCFtXRqK/54AxbD3jWgwwv8ziX2QImCWsVvNUJ0ABpdy2+jDsAMfucCeU
LD+RUT1lUBUCAwEAAaNwMG4wCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwVAYDVR0R
BE0wS4ITaG9zdDEuYXZhdGFyLWpzLmNvbYITaG9zdDIuYXZhdGFyLWpzLm9yZ4IT
aG9zdDMuYXZhdGFyLWpzLm5ldIcECqZpuYcECqZpujANBgkqhkiG9w0BAQUFAAOB
gQAYLiHqAw5y6CP5U0QHeNLGOZGRhph+Z54zo3Bwr/3FOiNPBnjRopYwzahVIyPu
VF2yhaEZt3nIWhM3OKxOFFVIPGJ0nAPVWQD33W6npttqNkQGu66sVFVuNZEzD6tv
pgRYjucwOvlPmaTyTXgcLS1gvJLvh6rEbhziVfs4H4xUGQ==
aG9zdDMuYXZhdGFyLWpzLm5ldIcECqZpuYcECqZpujANBgkqhkiG9w0BAQsFAAOB
gQAhERADkkFh/4Lz26tVJGNF2Bwt0FfvjDw/iSz7Eb7xgpbtcqR4YamJNExH//On
3djYKbXPHQ7WLFjTVdammUItrQ/4N7SGBVHzlV9PZlYXx9NhgDwFL9bb56Ppgkeo
yjhoo0qERzyNQO8wc5qVv8tLdiyZ0g+1p0FlNDtGttKIoA==
-----END CERTIFICATE-----

View File

@ -1,10 +1,16 @@
-----BEGIN PRIVATE KEY-----
MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAnzpAqcoXZxWJz/WF
K7BXwD23jlREyG11x7gkydteHvn6PrVBbB5yfu6cbk8w3/Ar608AcyMQ9vHjkLQK
H7cjEQIDAQABAkEAjZxTUi5H7gg7ztY/IAHvqSu6ijzsB41CSOO+5D/TT5v/ohLj
mZwQ/krDQ26RuoGEjDZ2L25D0nnUMn9l9Cv5gQIhANQdo3dmMh0nv/Dxir1nPP7e
RjYX/ETPp7h+04VbxtjZAiEAwCt5/5ZhyQKgQKA4sC8DEHWUjiPugJsBprB/Ep2c
+PkCIQCL3mtfHT1oakCwEaZJ1Jys90bW/qPzf/Z5uu+hnW4WqQIgHQCyyetFWNQH
oZlM1PJTcRF92TH9FfXO+vxaQVH+VekCIHtxRnWLxmRms+t1WDDZxvbxQkzupkdC
ddwwdNcUW/F5
MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAPFDMzOUh98P99mK
wmtR8UxzTHtspXlAsp3pHSNWTRmkHVZfO51dhxs5FXjhXwwxfJ3ucG9BFu40qhOs
HsnkAUrC/F+jWMmmbeQbpv3XXLOc3rNvqQJMGX0qKheNsgtGLDMByj7664cIpa7T
bQim8Go3WvLxCVlJAo2d6j+KW+WNAgMBAAECgYEA5L77N8d2/5ZLP3YhmdFqgDq9
ZDSBu7IM6E2Ss+NqXIpOyoqmojCAHd6ErkS4cn4lEjR1Y/aJwDYsn1RNKMxGL33K
r7y9eLZpR5YPT17UQEFzUmRIDZkX+fEvilN2YkluEjPjCtu4pSNAGbLEg+zvvkPl
A6dz139tWRKruIHXVaECQQD94UrIFHaqNR5JYQCndEeLhmpidrpZnx2w++gn+GHJ
c0C4dmXLxpGieNcmxPqQi7NeUxRFXKkVysMRsl43OicpAkEA80bvmSZAPXPfhSUH
HqWfC3vj8zwi67gObfjjPIGtaP6oOg3Phh48RlGjRP1s4ppoj/iMtgBNbHX6vhlf
EiULxQJBAJI61cvwnXjkJ5G0YaASBbODtHsKT8OXNo7eSZXcJtbVn42gBHoe4Xtn
huU5x+jBzoqh56cb+/glVb43srS0tiECQQDvl00hZ6qc2yGn32/DnxmkFb/KLc+2
lu6fIB+r14sRfLvxcOiRDfYOyxghOfWitq+EGyV5mZKm3wqzbglTtWiBAkEA7F7w
CKoWLqvFjlXy8FTF/thfmtzQTwAn69PzJ7LYyLuyDMq4RXdITzF1ovAktonUvbzM
VsYzdNe5NccfOn1aHQ==
-----END PRIVATE KEY-----

View File

@ -1,10 +1,16 @@
-----BEGIN PRIVATE KEY-----
MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAyXb8FrRdKbhrKLgL
Ssn61i1C7w7fVVVd7OQsmV/7p9WB2lWFiDlCWKGU9SiIz/A6wNZDUAuc2E+VwtpC
T561AQIDAQABAkEAxPoF/fj5QcpjU5umxsf27aOxVuUWrWta+zwY8xjqh6u3O/Cb
cOm5JSns9OA4HWctMti0IRFtDii+03y2fek4dQIhAPMgQaygKvm+XFe/LbMnC75/
Fi6FNlYxW6jXf3svRXKHAiEA1CH7LOpSBp9ZG1IHhPZbsAO0kjfkRPrWMoG3LcKo
ljcCIAjCO7t1VbcDlZ4PpBzVJkYpm+n3IJsAUjYF9XDBpjXXAiBcXc94Zy8AIzIx
ay5K/to9cd+WKzABuRa7NzADhNbTUQIgZZpyCwO9UXGZ8zk09K5P9QNNrpHkEUhI
Hl5rQ3QBHcg=
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANY5OgRa+YpShm6Z
gJqfhbBH1vYAIgbbzla1FsCv8KUmg1eH6HmAtRVwE/I6kYIa9hLd48IIkdVqUmPX
D8KZWrq7EDMLX/HUoPYHdh4caxLkKSzkh+KtFpunst2fwqog5dfegZQCviF3g2UW
N6Zh2nUCfaiX0IWGipnryXD0IvRvAgMBAAECgYEAwPDV0ipl6jEdputWKu1WKUjq
0LGZ8/dwxiNflLhh0zz2upVLynMjpWVGcbpSZ44E50U15wJ05nRWNFn0dd5NGY+Q
SFRz1BjkwleMOnjxYr7Ush7Lfcix8QTfmakROs/7dVVGdKKgbRfcI5fvcjSA4z4O
FiXm5AX/YJqzYWvLL2ECQQDuDqGUHOFMY+PBATylQEZ1XKR7oWgOtP8QmGXMbpQ6
94FXCbbSMF5oxKy5+q7Z+bzpSCZboLYlnMfUqtsRehXJAkEA5l64ZqIJD4RMUAWM
SfvzbBGrmlypY4u3m07DHTpx/rY8kq0Wxcms64FaW7jMYsPcgikPeeqHrte+C0VJ
+0Y0dwJAMqSeLxotu8iMTSTsN+OCmbkJrNtbfbV3hZpGHcVwd1LsCw4f/HsZuoQM
kswHoouEasRUlK2N0laWFGH8lK06MQJBAN2QjFppzb0WyS7NpzghEuYFuL4mEOSl
JFpDTnV2GN2Z+Hg58YUZiy6WoolFG46CQjsNsszXPNh0t1uvsI/z3dECQQCfJcAH
Q1DYQiaUWFtBEOKseCrxRG779xVbeoGs5wsYhevUrC+sg3/9mOkXCi0qNBWIzzqf
Do+lXLCY6I/suu9q
-----END PRIVATE KEY-----

View File

@ -1,10 +1,16 @@
-----BEGIN PRIVATE KEY-----
MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAtlNDZ+bHeBI0B2gD
/IWqA7Aq1hwsnS4+XpnLesjTQcL2JwFFpkR0oWrwyjrYhCogi7c5gjKrLZF1d2JD
5JgHgQIDAQABAkAiT4b2zZIqAVrzLdraMZkt+oAFLOYkaihoiw6ku5gt3p4ILfVd
QOVPis9UZGHKwpAJDj40yOB2eP1mo2e9dj9FAiEA6Bt2W2vcTLaHLtG4NbmuY54l
O5WoKtntAjyJ/IIRthMCIQDJF+9ZK+8BJ4+RlMxSEBNFSm7INBb7Tnw0TSglKKdO
mwIhAJH8U+EEYjdNxpDID1ibRPgbC8gCRRdOoid59EABfypJAiBlUk8B0hYZsdIv
2xZb3sem6QsKitxtgS0puRqaJnKuMwIhAJeVfvq22R4h3k6wkZBwXrt4UwyvZQZn
VYx/ozf2UJgd
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAM69c5za1Aj3bO1N
zl/qt/p3MaadCn7OxP3KKqeu7DiFIKOYq+k5MVjzfVZqZoy+H5z/Tuan6+7LawGW
mJHaIT7POvmsOQhy86AJE07s9Z+5tDk6SPkutzJohyPlWPlSJ+q/v7pwWU+En55z
8ihLtA5On77OZK8JL+qYjOFlhYx5AgMBAAECgYEAzg41tRjGTUmO39a04xTm2lUC
v7W2SD1+ShW9/fNyrcLCjUwVzBadALNvMTpLi+vTRn+Q/IRRu2gz9xlKZ9SpXE4R
zXRAbICbxzzzMeK4qagUUSWthHqRU1S9ZlJOwtvW/Oe+7GRqN2Q7NUTIuPtD6Vht
3R2lzXx9sx5XxUQUvoECQQDtIjTjpIjjhlywn+8gO+XW9ucaj/mRNvd6DNWkfnZS
SaNp14Fkb+I3pTHIwqU/1alrOh3ffYGevulRgPRLqDXFAkEA3zA1CT0tINetSRv/
PVYxhvHlQd8lpYEt1Vxh8cKxvLPCt0aMfvvpFvpDCA/imIAoxFQ0sA88FIVSz8xr
6QIbJQJBAKSWHF1wAq7gwA67Qu59hF46SlcOXOqkWwo0REiCmb8tayV4NU+vtDRp
DO/J4YY31vocgUVwR/oVib1PIsAsRP0CQDt0KgymAUmIap7ZGGsMdPEPqxSbDvpB
qSX3EBhI1vP/ptUPtAl3raXzULvrD1+0dCeojsh/pm+I/IBiYjSV3QkCQQCsTxhl
KmzMLBoQivH1csc9M0+AGRWCy/4sjRx6SvIsVcvTkaR8n0YtGhG2ty4sCr8GT300
n4X5HCn2yvuj3XQb
-----END PRIVATE KEY-----

View File

@ -1,10 +1,16 @@
-----BEGIN PRIVATE KEY-----
MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAzf8jH5kPM3b5o5Rp
O29zJ+sGNhY2jG+HORDSV9eb8mISktc4cep9JECJ9r3+sqhu7TuTpM9iCYg/UmtO
piuhqwIDAQABAkA3xFBv53HUDut6O11Zt8xHDDs8PTs7PZ4v9rvbCAWx0hptG5XK
kige6epXSwB6Bi00m33K75WFETDRHm3H+rMRAiEA9j6ebOnRviIVGTua0ZSYJOv2
LDDOirMhPCmETsWlCcUCIQDWKFQcVP1g8c5/zmyQzqpm/vs0SBcc7w0mZBnkZfVk
rwIgLOV74yW6jS0PpbsdXir2lnzDNIltjxJb8+kp62bT0XUCIBZPDywAYoC1z8ga
jc6r6K5gA3UXyWiXMmx8YwIa6Ow7AiAAko+3d5eKXBfdmWwNZKSVY1nuJhx9iu8B
zcmpTqAUIQ==
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMse1WcIyNXt3eNq
O1yhwIkb5kdgcdaLQY3uO1GRHCDMzfP2t49myTgoMRog9NyZN16j8sIYxWz0EX/J
pG8duSRUi8gmyV8D7+E8O+7v2mTvlqO6Et3+oEu6BgfHlr6a2jV6/yuRZ4g7qPW1
nw8c0vcdWz+ZNTolL1qb25rTPXe/AgMBAAECgYEAx6u/zFFuXB5AiVXclOrNAftT
G8dLIMQz5PnThhNHu1aY/sIBIA7Cr1mTK0RKcLCNJZO1B+ih6sDikuP9qN1nKPcn
NpNc9qG438oJlos9Jgs4oe8Xu72VquyCcLzZDqOQsnZNNWp7TDylzvcCT0DmjZ/K
O6D4EfQpOaveFw5tJcECQQDo0O/+h82KcmfvsQu/yTZ5UD2mxUNY89qkCfYJwSKC
oFzzwv4sz47U0oORiBz67HVCElr0RZ58YkmA+IJ1kE69AkEA31jg45vXm3FzkLmt
25aIbK4LIIVZ92YGtbyg7H5+MblD+vtHx4T4IV6mKTwE6D5AeO3NjW3M4mQLE5u3
Y+wWKwJBANbOKBBM1jy9z93cGT4LdUI64ZckfD3vSDR/qE1Zr/Cb6wdRStinbF46
GQBGeI6fapTagKbOMSsMOEtRfnTf/3UCQGDfAsOVz2ErRu2Jq1+nncpNfqP/UrMc
PGLMyptojcFxUovkOxDNmnWWwMj3sEUu4vXQZqwl6Ix0yd0aV+Nt/XsCQDbClXa6
Ln/elzoZUV/gM1m9MXE43vlvctFFdAr1Mn4ljA/lhKH78Q8jsoIC+lxffvFTt7MY
JzuMPGQCmIHsfnk=
-----END PRIVATE KEY-----

View File

@ -1,17 +1,16 @@
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIICoTAbBgkqhkiG9w0BBQMwDgQIgcMok3P6KYICAggABIICgGIgeQ3zhhpkqb5x
Ry9bIHAhtPsWvkn3dkuzD/4CQdG2xyArlQzHCKNRG7PdhlaNimclzByQ/C2P+g6b
TYEYrJ6p3Xl0yc8qjRBGOU2Sa4aN4iwyXnJz8D8UDnTANhWnCzXbM6mbuPK+bJzA
dYUW6E9MA49P3Z44EtSw/y7gQncKy+z6WfNbbIwxp3u/AMYFEBTT6015Yx+n4Kf1
8RX2wgpvvQWTYc5yG0vYLYOk6kg6ya3RT6toBZLkwgT6AAECiUvMkkntFwdx+wGT
Bz9uASZIO3JFzLcolFKUArWWFiWqoj+8dak0QHYtqRp6PDEkWE1r3wKCGwHP54UE
8gMf5ml+NZKKzhISZ7Qg6N1LzuVyOuHwbAoHw8XaPtdFksQU7g5udX+iUR2GkANF
zy9zid32Sg9P2rorHOMU6IBgKkHrlPnnidxkv6iYVpM5K05J7/SRLPXGycwyuYkB
MQpkHiOHRwPDXSCyvsCKh9J26nlHuA2sc4smWbCmBykfQgUap1s1mbIAv0VRN1ee
3kRg5TQdoqTjAXhksQ8bPfXfkQP0WD5e8uWp9tB3MyoOM51kopJz76VJqpTUzhoA
f+NvOIlOkiIQPjb5fdXFuQf5z5AMpDmsw0HbzeL/P0awa0PLThem+NJEyue1l2jQ
6CG4JzZ50sTe3KIFXGoy3qmMMvbcOKsTazs89sEwz2YFWniCUbqoHNoVm4TLKNmI
6+JftyPs+DLEdmoBDqrmjTQDu2xc5zMobGrrxicQkCXIdOsMpdh9msKleaLgKBAl
dOTYa6RdCQqnMtrIoluh7/5tV9LVhVJr2MRxiSZ2Vu8yG/ShGMdO2fmTCcvvH+Dj
WDSbod0=
-----END ENCRYPTED PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKGZB4XCxqia1BvD
02bnkOfopJH1uRjw8OuhBR5M1r3QGUhuEawpibiXtsRFpqwWA6uRxCmTjl90NVg+
MrGtpmIZdcqNIgNh4MAgL/4KTBAqt6OAI+YmziBXiD6em/CLWBWvY0CDt+Qk7IRb
ZMOnh2wAPyq0bwCaXQLWElfAViYHAgMBAAECgYBWBmkCxBWNXB7eSPkZJtz1F9vD
99N5e4pFZYqb/ruygD11WWL/C33NTrZ09b8sjOuXQhnzKCH6nppnR3UlMRQI/Ht7
QqhwKY2DvuLkAbR4rmL8oqNNYHhQZEPKV8N2cFdBzzXhsr5UHSatynjpT/u0sZiR
XYrP8uI2mbErAhNLgQJBAM+gDpYhTzsS6Wo65WYmcUhDYhHdLJxWKw7tNSrYwi2r
ZTgHCwDdpDh6Gk/+4l0B8kR/CLaiZFXmkZvzTqlaR88CQQDHP6KAdLy1HXVotyTv
V0PgFEFjtdkJSDobjOZhhayqPTK8zpzhifQdFytmoW9X/G4wWmFYSYwGGuou+DLr
rJRJAkEAuR6Lgt5GJ3SwOzAyEwcZoAW8bhMW0HmfwJpM+lvzngago/jbnbUA0/5C
carfp2+x09K0MSrPbSu8DiE8tJCzTwJAJXx5bEWKQ2D5d+wNDOKUKJJnAwVxgeeO
1yQZK/vkUlsVMqSEq4Iy5U44oiR5OEqLyJkYe23K5FMoABI+MkzT0QJAGuGUonBg
q5QMyneqQsGCtdipsXFm2RLYZ4UxR8txGXGgytMURzPP2VnSG5O5Bg94AA5jQZ3z
iYvSRCpNFPM0uw==
-----END PRIVATE KEY-----

View File

@ -1,9 +1,15 @@
-----BEGIN PRIVATE KEY-----
MIIBSwIBADCCASwGByqGSM44BAEwggEfAoGBAKjnkAdZJn5vwnezCVI+X0/I7y2c
VqGjuX02yLBAzzp9gEcCWpcHfm9sWHZRO4Mfe0+nwCubZuC+08Uf7PS11XvRTi2Q
53n4MCq01GlTIWVHH6r2eFkf28CwkQrnQBeaBrexVjqgT6Fybgxhf9F0wON1MaMS
u6eRyHUFKkDPCTQjAhUAzJaLx+IvUaTcOf6ZqHHrfuxXyNsCgYEAnvOdwOIotqV/
xG0Td8mTZyVAWRHlORQl6RvvztbZQbKhJotb9Apx9S/X31bpH7iR+WuIcFtadeZw
FZUUQ/J3dAROaNSa5T/LNzW6kmpm1OA+k1qQmhGh0mJG3ti/x7Lc3YgAj2kOY+eO
LO6lQnlue2EvPhFJbvrU3mi25f9cZo0EFgIUHHsERkjLjdcDESJ+X191/UI4aRE=
MIICTQIBADCCAi0GByqGSM44BAEwggIgAoIBAQCIkJHjQcK0DqmTzrheEpx6R7w3
hyGWunBymEBekfBJAYeW/UkkXKNo+q6Ba3PBkfnmDuqkiJPd+aDpXo9/M1/HixAa
VKNyRlo3TZZFQBpyfS9rpRvDJhXstnO4eUfNrIcuX9u0Z5MX7Mv714wsp+WX6v7l
slcMxaHfFQPU2V1/5+wixtVkj1A3N/cvX/TtdVMt51BhoTvs6pW675x+gG1v4rky
xB0cww3bQEaMoi8aQkgK4LjjwaQPHXCnHPa9IkSLoWpeu4zpz3Ks++EkpJ9tUVgr
afzYwxcw0270PCrCy/oiDp0hXLB0oOtLDU3P2P1NYDkGiU21rfIw8esSMK4hAhUA
qrRlnT/fqxkTVyq3qPSFlOKxZRUCggEAVsj0wqf0MEnuWjv4tFuWA0qD2WTgP/o0
EFGA54I3hac7EdCuqlJNQEb5VwAEMoR+gd8Q8j0pkqkSCnMZOmvuYbEM8sd8Yv6+
9/URhuZxMOtRaV/0H/f4ve7Ah12/c1gt6nIRnwvyDp5EZJDhK+DWhJH8YBRN4Ylz
M+DqpbRv8tOl/h54M1ZgYXpqiAlSmGc9xnRerD7K+r+LW7MBWKtTGn0KtvuSbR18
DQb8cGJJ1wS3qXwt1B3qqZwvSfFyb3Hov61KiXmFc3KdXTBzF0JDPhePmdr42hEZ
v2M9jGAuSirTuHACSqRAPIXrW3F9aAZzvOaH/HokwZ79eGDVO+DEuwQXAhUAnd1e
wtOzVXk4lFNVkz9pxTYDKhE=
-----END PRIVATE KEY-----

View File

@ -1,12 +1,20 @@
-----BEGIN PUBLIC KEY-----
MIIBtzCCASwGByqGSM44BAEwggEfAoGBAKjnkAdZJn5vwnezCVI+X0/I7y2cVqGj
uX02yLBAzzp9gEcCWpcHfm9sWHZRO4Mfe0+nwCubZuC+08Uf7PS11XvRTi2Q53n4
MCq01GlTIWVHH6r2eFkf28CwkQrnQBeaBrexVjqgT6Fybgxhf9F0wON1MaMSu6eR
yHUFKkDPCTQjAhUAzJaLx+IvUaTcOf6ZqHHrfuxXyNsCgYEAnvOdwOIotqV/xG0T
d8mTZyVAWRHlORQl6RvvztbZQbKhJotb9Apx9S/X31bpH7iR+WuIcFtadeZwFZUU
Q/J3dAROaNSa5T/LNzW6kmpm1OA+k1qQmhGh0mJG3ti/x7Lc3YgAj2kOY+eOLO6l
Qnlue2EvPhFJbvrU3mi25f9cZo0DgYQAAoGAG4lazicVINlRHwmKPXFn2d5Hz/lR
BYtJfMDTKxTomiD0OG6hSofekM3gOicakk3r2aXxpLquvgr2JZ063LT1QOiwHS6m
o+dX9HWHrKBjEB2a4VWuZm6QekaYhnrMTrSOX6E8QlCK1XQFtPbz8I2SmAfs1jVZ
9BJaJpBqx96ph7M=
MIIDOzCCAi0GByqGSM44BAEwggIgAoIBAQCIkJHjQcK0DqmTzrheEpx6R7w3hyGW
unBymEBekfBJAYeW/UkkXKNo+q6Ba3PBkfnmDuqkiJPd+aDpXo9/M1/HixAaVKNy
Rlo3TZZFQBpyfS9rpRvDJhXstnO4eUfNrIcuX9u0Z5MX7Mv714wsp+WX6v7lslcM
xaHfFQPU2V1/5+wixtVkj1A3N/cvX/TtdVMt51BhoTvs6pW675x+gG1v4rkyxB0c
ww3bQEaMoi8aQkgK4LjjwaQPHXCnHPa9IkSLoWpeu4zpz3Ks++EkpJ9tUVgrafzY
wxcw0270PCrCy/oiDp0hXLB0oOtLDU3P2P1NYDkGiU21rfIw8esSMK4hAhUAqrRl
nT/fqxkTVyq3qPSFlOKxZRUCggEAVsj0wqf0MEnuWjv4tFuWA0qD2WTgP/o0EFGA
54I3hac7EdCuqlJNQEb5VwAEMoR+gd8Q8j0pkqkSCnMZOmvuYbEM8sd8Yv6+9/UR
huZxMOtRaV/0H/f4ve7Ah12/c1gt6nIRnwvyDp5EZJDhK+DWhJH8YBRN4YlzM+Dq
pbRv8tOl/h54M1ZgYXpqiAlSmGc9xnRerD7K+r+LW7MBWKtTGn0KtvuSbR18DQb8
cGJJ1wS3qXwt1B3qqZwvSfFyb3Hov61KiXmFc3KdXTBzF0JDPhePmdr42hEZv2M9
jGAuSirTuHACSqRAPIXrW3F9aAZzvOaH/HokwZ79eGDVO+DEuwOCAQYAAoIBAQCF
3DqJJIVYwvovyP4KzPak4enwlY80mzrCFYvR34+xgk0WAP0BZzW4lmzlsz+7dnBE
BS32aCZkyu9fobWapffxkTM1fnZ8ocLkYfWFpLgjpRRw+4QxQQvntVaoVe5bWqJK
pGVNfAbJoGRv38XqjgHxJRCixO/eqzgF5rcfBdeDJ/iELXhAJonxddeNAtGxcx+u
0UmVNd6UQge0ym67k3r54XUHLSzs4YKTLqBFgI0lp4uflpJToPy8azGezBc/iqqY
dT8Ul+5IP0vMgozRbWr4mOx6yRO8FKot2f1T1eByhnh819ZNWfURP6CU7Edsk9q7
Sb0hjvZQ5OhY+bSL9Xwv
-----END PUBLIC KEY-----