1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-10-27 20:36:18 +00:00

Merge pull request #269 from hillu/gnutls-reload-cert

Add support for GnuTLS certificate reload.

Thanks a lot, Hilko Bengen!
This commit is contained in:
Alexander Barton 2020-05-06 23:36:19 +02:00 committed by GitHub
commit 02850008f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 818 additions and 16 deletions

6
.gitignore vendored
View File

@ -45,6 +45,8 @@ src/portab/portabtest.exe
src/testsuite/*.e_
src/testsuite/channel-test
src/testsuite/connect-test
src/testsuite/connect-tls-cert1-test
src/testsuite/connect-tls-cert2-test
src/testsuite/invite-test
src/testsuite/join-test
src/testsuite/kick-test
@ -56,6 +58,8 @@ src/testsuite/ngircd-test1.log
src/testsuite/ngircd-test1.motd
src/testsuite/ngircd-test2.log
src/testsuite/ngircd-test2.motd
src/testsuite/ngircd-test3.log
src/testsuite/ngircd-test3.motd
src/testsuite/opless-channel-test
src/testsuite/server-link-test
src/testsuite/server-login-test
@ -63,6 +67,8 @@ src/testsuite/T-ngircd1
src/testsuite/T-ngircd1.exe
src/testsuite/T-ngircd2
src/testsuite/T-ngircd2.exe
src/testsuite/T-ngircd3
src/testsuite/T-ngircd3.exe
src/testsuite/tests
src/testsuite/tests-skipped.lst
src/testsuite/who-test

View File

@ -506,6 +506,8 @@ if test "$x_ssl_openssl" = "yes"; then
x_ssl_lib=openssl
fi
AM_CONDITIONAL(HAVE_SSL, [test $x_ssl_lib != "no"])
# use TCP wrappers?
x_tcpwrap_on=no

View File

@ -40,6 +40,7 @@ struct ConnSSL_State {
gnutls_session_t gnutls_session;
void *cookie; /* pointer to server configuration structure
(for outgoing connections), or NULL. */
size_t x509_cred_idx; /* index of active x509 credential record */
#endif
char *fingerprint;
};

View File

@ -62,9 +62,17 @@ static bool ConnSSL_LoadServerKey_openssl PARAMS(( SSL_CTX *c ));
#define MAX_HASH_SIZE 64 /* from gnutls-int.h */
static gnutls_certificate_credentials_t x509_cred;
typedef struct {
int refcnt;
gnutls_certificate_credentials_t x509_cred;
gnutls_dh_params_t dh_params;
} x509_cred_slot;
static array x509_creds = INIT_ARRAY;
static size_t x509_cred_idx;
static gnutls_dh_params_t dh_params;
static gnutls_priority_t priorities_cache;
static gnutls_priority_t priorities_cache = NULL;
static bool ConnSSL_LoadServerKey_gnutls PARAMS(( void ));
#endif
@ -266,6 +274,21 @@ void ConnSSL_Free(CONNECTION *c)
gnutls_bye(sess, GNUTLS_SHUT_RDWR);
gnutls_deinit(sess);
}
x509_cred_slot *slot = array_get(&x509_creds, sizeof(x509_cred_slot), c->ssl_state.x509_cred_idx);
assert(slot != NULL);
assert(slot->refcnt > 0);
assert(slot->x509_cred != NULL);
slot->refcnt--;
if ((c->ssl_state.x509_cred_idx != x509_cred_idx) && (slot->refcnt <= 0)) {
Log(LOG_INFO, "Discarding X509 certificate credentials from slot %zd.",
c->ssl_state.x509_cred_idx);
gnutls_certificate_free_keys(slot->x509_cred);
gnutls_certificate_free_credentials(slot->x509_cred);
slot->x509_cred = NULL;
gnutls_dh_params_deinit(slot->dh_params);
slot->dh_params = NULL;
slot->refcnt = 0;
}
#endif
assert(Conn_OPTION_ISSET(c, CONN_SSL));
/* can't just set bitmask to 0 -- there are other, non-ssl related flags, e.g. CONN_ZIP. */
@ -348,22 +371,21 @@ out:
int err;
static bool initialized;
if (initialized) {
/* TODO: cannot reload gnutls keys: can't simply free x509
* context -- it may still be in use */
return false;
}
err = gnutls_global_init();
if (err) {
Log(LOG_ERR, "Failed to initialize GnuTLS: %s",
gnutls_strerror(err));
goto out;
if (!initialized) {
err = gnutls_global_init();
if (err) {
Log(LOG_ERR, "Failed to initialize GnuTLS: %s",
gnutls_strerror(err));
goto out;
}
}
if (!ConnSSL_LoadServerKey_gnutls())
goto out;
if (priorities_cache != NULL) {
gnutls_priority_deinit(priorities_cache);
}
if (gnutls_priority_init(&priorities_cache, Conf_SSLOptions.CipherList,
NULL) != GNUTLS_E_SUCCESS) {
Log(LOG_ERR,
@ -389,6 +411,9 @@ ConnSSL_LoadServerKey_gnutls(void)
int err;
const char *cert_file;
x509_cred_slot *slot = NULL;
gnutls_certificate_credentials_t x509_cred;
err = gnutls_certificate_allocate_credentials(&x509_cred);
if (err < 0) {
Log(LOG_ERR, "Failed to allocate certificate credentials: %s",
@ -419,6 +444,43 @@ ConnSSL_LoadServerKey_gnutls(void)
gnutls_strerror(err));
return false;
}
/* Free currently active x509 context (if any) unless it is still in use */
slot = array_get(&x509_creds, sizeof(x509_cred_slot), x509_cred_idx);
if ((slot != NULL) && (slot->refcnt <= 0) && (slot->x509_cred != NULL)) {
Log(LOG_INFO, "Discarding X509 certificate credentials from slot %zd.", x509_cred_idx);
gnutls_certificate_free_keys(slot->x509_cred);
gnutls_certificate_free_credentials(slot->x509_cred);
slot->x509_cred = NULL;
gnutls_dh_params_deinit(slot->dh_params);
slot->dh_params = NULL;
slot->refcnt = 0;
}
/* Find free slot */
x509_cred_idx = (size_t) -1;
size_t i;
for (slot = array_start(&x509_creds), i = 0;
i < array_length(&x509_creds, sizeof(x509_cred_slot));
slot++, i++) {
if (slot->refcnt <= 0) {
x509_cred_idx = i;
break;
}
}
/* ... allocate new slot otherwise. */
if (x509_cred_idx == (size_t) -1) {
x509_cred_idx = array_length(&x509_creds, sizeof(x509_cred_slot));
slot = array_alloc(&x509_creds, sizeof(x509_cred_slot), x509_cred_idx);
if (slot == NULL) {
Log(LOG_ERR, "Failed to allocate new slot for certificate credentials");
return false;
}
}
Log(LOG_INFO, "Storing new X509 certificate credentials in slot %zd.", x509_cred_idx);
slot->x509_cred = x509_cred;
slot->refcnt = 0;
return true;
}
#endif
@ -520,8 +582,13 @@ ConnSSL_Init_SSL(CONNECTION *c)
(gnutls_transport_ptr_t) (long) c->sock);
gnutls_certificate_server_set_request(c->ssl_state.gnutls_session,
GNUTLS_CERT_REQUEST);
Log(LOG_INFO, "Using X509 credentials from slot %zd", x509_cred_idx);
c->ssl_state.x509_cred_idx = x509_cred_idx;
x509_cred_slot *slot = array_get(&x509_creds, sizeof(x509_cred_slot), x509_cred_idx);
slot->refcnt++;
ret = gnutls_credentials_set(c->ssl_state.gnutls_session,
GNUTLS_CRD_CERTIFICATE, x509_cred);
GNUTLS_CRD_CERTIFICATE, slot->x509_cred);
if (ret != 0) {
Log(LOG_ERR, "Failed to set SSL credentials: %s",
gnutls_strerror(ret));

View File

@ -23,13 +23,16 @@ EXTRA_DIST = \
stress-A.e stress-B.e \
server-login-test.e \
start-server1 stop-server1 ngircd-test1.conf \
start-server2 stop-server2 ngircd-test2.conf
start-server2 stop-server2 ngircd-test2.conf \
start-server3 stop-server3 ngircd-test3.conf \
reload-server3 reload-server.sh prep-server3 cleanup-server3\
connect-ssl-cert1-test.e connect-ssl-cert2-test.e
all:
clean-local:
rm -rf logs tests *-test ngircd-test*.log procs.tmp tests-skipped.lst \
T-ngircd1 ngircd-test1.motd T-ngircd2 ngircd-test2.motd
T-ngircd1 ngircd-test1.motd T-ngircd2 ngircd-test2.motd T-ngircd3 ngircd-test3.motd
maintainer-clean-local:
rm -f Makefile Makefile.in Makefile.am
@ -39,6 +42,7 @@ check_SCRIPTS = ngircd-TEST-Binary tests.sh
ngircd-TEST-Binary:
cp ../ngircd/ngircd T-ngircd1
cp ../ngircd/ngircd T-ngircd2
cp ../ngircd/ngircd T-ngircd3
[ -f getpid.sh ] || ln -s $(srcdir)/getpid.sh .
rm -f tests-skipped.lst
@ -46,6 +50,14 @@ connect-test: tests.sh
rm -f connect-test
ln -s $(srcdir)/tests.sh connect-test
connect-ssl-cert1-test: tests.sh
rm -f connect-ssl-cert1-test
ln -s $(srcdir)/tests.sh connect-ssl-cert1-test
connect-ssl-cert2-test: tests.sh
rm -f connect-ssl-cert2-test
ln -s $(srcdir)/tests.sh connect-ssl-cert2-test
channel-test: tests.sh
rm -f channel-test
ln -s $(srcdir)/tests.sh channel-test
@ -113,4 +125,16 @@ TESTS = start-server1 \
stress-server.sh \
stop-server1
if HAVE_SSL
TESTS += \
prep-server3 \
start-server3 \
connect-ssl-cert1-test \
switch-server3 \
reload-server3 \
connect-ssl-cert2-test \
cleanup-server3 \
stop-server3
endif
# -eof-

2
src/testsuite/cleanup-server3 Executable file
View File

@ -0,0 +1,2 @@
#!/bin/sh
rm ssl/cert.pem ssl/key.pem ssl/dhparams.pem

View File

@ -0,0 +1,21 @@
# ngIRCd test suite
# Server connect test
spawn openssl s_client -quiet -connect 127.0.0.1:6697
expect {
timeout { exit 1 }
"*CN = my.first.domain.tld"
}
sleep 2
send "oper\r"
expect {
timeout { exit 1 }
"451"
}
send "quit\r"
expect {
timeout { exit 1 }
"Connection closed"
}

View File

@ -0,0 +1,22 @@
# ngIRCd test suite
# Server connect test
spawn openssl s_client -quiet -connect 127.0.0.1:6697
expect {
timeout { exit 1 }
"*CN = my.second.domain.tld"
}
sleep 2
send "oper\r"
expect {
timeout { exit 1 }
"451"
}
send "quit\r"
expect {
timeout { exit 1 }
"Connection closed"
}

View File

@ -0,0 +1,31 @@
# ngIRCd test suite
# configuration file for test server #1
[Global]
Name = ngircd.test.server
Info = ngIRCd Test-Server 3
Listen = 127.0.0.1
Ports = 6789
MotdFile = ngircd-test3.motd
AdminEMail = admin@irc.server
[SSL]
CertFile = ssl/cert.pem
KeyFile = ssl/key.pem
DHFile = ssl/dhparams.pem
Ports = 6697
[Limits]
MaxConnectionsIP = 0
MaxJoins = 4
MaxPenaltyTime = 1
[Options]
OperCanUseMode = yes
Ident = no
IncludeDir = /var/empty
DNS = no
PAM = no
# -eof-

4
src/testsuite/prep-server3 Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
cp ssl/cert-my-first-domain-tld.pem ssl/cert.pem
cp ssl/key-my-first-domain-tld.pem ssl/key.pem
cp ssl/dhparams-my-first-domain-tld.pem ssl/dhparams.pem

31
src/testsuite/reload-server.sh Executable file
View File

@ -0,0 +1,31 @@
#!/bin/sh
# ngIRCd Test Suite
[ -z "$srcdir" ] && srcdir=`dirname $0`
# read in functions
. ${srcdir}/functions.inc
if [ -n "$1" ]; then
id="$1"; shift
else
id="1"
fi
echo_n "reloading server ${id} ..."
# reload (sighup) test-server ...
pid=`./getpid.sh T-ngircd${id}`
if [ -z "$pid" ]; then
echo " failure: no running server found!?"
exit 1
fi
kill -HUP $pid > /dev/null 2>&1; r=$?
if [ $r -eq 0 ]; then
echo " ok".
exit 0
fi
echo " failure: server ${id} could not be restarted"
exit 1
# -eof-

7
src/testsuite/reload-server3 Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
# ngIRCd Test Suite
[ -z "$srcdir" ] && srcdir=`dirname $0`
${srcdir}/reload-server.sh 3
# -eof-

View File

@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEDDCCAnSgAwIBAgIBATANBgkqhkiG9w0BAQsFADAeMRwwGgYDVQQDExNteS5m
aXJzdC5kb21haW4udGxkMB4XDTIwMDQyNDA4MjQyNVoXDTQ3MDkxMDA4MjQyNVow
HjEcMBoGA1UEAxMTbXkuZmlyc3QuZG9tYWluLnRsZDCCAaIwDQYJKoZIhvcNAQEB
BQADggGPADCCAYoCggGBAJ3HvAIDQxL/o7yoemMH5OZEXyFTQ/Q838UY0lXbWBb0
Lsz9ft0UFtu/SSabHLLJHQME99IyleYiMwi0Y3oqDCVZp6eqeKS7MTRIot2D1m4T
QsK13dAvZOaEYPsltdsFDCP75s07tDp9aYYsHDsNhHu8LxUachmb3747/v1E1TGZ
T5BSnzGxEsQo1vzKKMpMbjct1d3zdQRB1o/r6BlaPykTAaB1DkM7GOOdtprhO/Sh
PbfXL+BHgldPbxboul7NTt1r2CfqFmz4Pi4PbCruv0HVG8N8egN6Jb80UuwOiCcM
BxY9uhCh6ZPoZ9ufmGALhkgD0rlt/sQfKQ0EImzx8cC/6zvSfJQ0WazLp/wCImkP
QZwKm/U6RMHWtthHg4pJRsYF5rL2+YMqebTcG655+fgQm9EI+ZcAqWIbnogGA046
oS1X7805ogBo7OPMlJ19NjxOc3yS9dXlk6hEe0AKSCCusy4lI4gcGd2gwmAtXp3i
ZVkFBsUsmBe3x5sEAEVVyQIDAQABo1UwUzAMBgNVHRMBAf8EAjAAMBMGA1UdJQQM
MAoGCCsGAQUFBwMBMA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFFst+QAEUdCP
V80/hmOEBKtjOMRLMA0GCSqGSIb3DQEBCwUAA4IBgQCOEIJgi0H1lc33dU8Na4//
CI3rOOYwFnSiiUe8A5n38LsU2ZrwwJmn60JgNdAmrNkXTI8qNTuTU6XIOAqq32FY
wdNqPt7wE7UDRMQeMDlLNo+lnuI1XrBxk9mEpfmyGeGqeIDIr5vlEWs4Snr73RC0
iQBUD6qGdhZa/ABm342psSA4OxtjCn6mBBT/gSi8yCO0Po8yFvndGMe3kNQFwir4
supxptzqFDCDOQOYSgUy2QT7wlFAqPdZWMSepdeoaBYrqBsvf9shWC0iChKJxnCp
SVZpoPysxuVyQMKjjzTJcNDwydMyIny4Z9rt+kkvgn/JDxIQe1+jJ8dJR+VWQeNe
we604uEsN0hWq1FkkMO8NQdbM4xipDciEanHunWvwFkXuIuc0aEpqIchU32O2wav
ck8ytssLLQDGaJLHx6iOB2MCi8HbS8U9xfrg8JJIFnxmnkKdI6x2akzYm+nqDxqQ
dGeoVJgegiamYlydkGskw04oGkD16H0LQwlzsDwgvP8=
-----END CERTIFICATE-----

View File

@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEDjCCAnagAwIBAgIBATANBgkqhkiG9w0BAQsFADAfMR0wGwYDVQQDExRteS5z
ZWNvbmQuZG9tYWluLnRsZDAeFw0yMDA0MjQwODIzNDBaFw00NzA5MTAwODIzNDBa
MB8xHTAbBgNVBAMTFG15LnNlY29uZC5kb21haW4udGxkMIIBojANBgkqhkiG9w0B
AQEFAAOCAY8AMIIBigKCAYEA4+442scsdqSf6O4UO/RskMzOX8BhDcSwrhGe97jd
CuQKUqS6OT1UoHK0DdMkxHlOMhifPzKxoBQlI/02l14tV//xNArKj4a+BZzNS1mp
3adjgTc3uRDQHmHVZUzH4VXhL2zZ1EXVaJULZVWJYAqMW8GOObs+Kwijo+zxBGRs
96Re9sg3XMkCUN+ZMoCpqoU4R/QiJ5z7B4AXS9CVcvczQKiULn1otP+UQQ4ABHlN
t8pZzR6P/WGy91PvGt5wWfpReGveP/Zl2tksVXXs0CQgteneblYVzj01MaobVW59
/LGUpe0oQy2rtzQVX3DZkDoGwGh4lof2Af+xMjCbVL6oDbPPooXG8TJnDP3AVhMG
KIb+EhBUIEJnd/z6ZXTWbv0KQOt4wiVBzuXVBf7xxn/aH4+3kyrnj7CsUHXM4++x
KRZq7gaP7nRbN22rw+WCHnqvMfAGnS7/6AjKFUWxmNWxRXMX+ehsSbT/XQnQm88e
oUBLzQc4JrNSPklVJ82Qp19tAgMBAAGjVTBTMAwGA1UdEwEB/wQCMAAwEwYDVR0l
BAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAwegADAdBgNVHQ4EFgQUdnjZogYk
7JK21Fj2NfYwrtJzK1EwDQYJKoZIhvcNAQELBQADggGBABDreWdgeyLMvqv1fO1f
zbkSxUp57XoQsX3G/1nUfjT2Zujxwvu8D9N74R3I/BsxVTiI4RL2LZj33q+eq0KX
LG/zBH2DEBheMmQtbMS6Ah+MTSlvG8SDlRRYPEVdYYtXOwskGNyIwcqNTr0j2Mrn
Zlre0VJQc5r94seoVCjCseio26I9qf0LW2QsGfk4vSMJlhTRkcbBjKABG8xGXv61
+Hd4OFA0e/gOzFZFwDxWEsks5d8w6kzyipdGcCezBhlDi/qNCAex1GVTdUsCbGNS
9N2i1Cty01AJbrkfWwKCc/Xg/YV/9PVncoiwJSIILllmFvLPu0vRof8AX/4DxEkS
YFnN2x+qyukW+DfSnC3YSqyKdKtvB0U0Xf4tcHQfX2kHS/PqOIR6F9trY45ZlXoA
nQKf1vcsIJzHW1mi9SvyVgyp3HftPw5xIU15mHRHBfBEzkVNwZJxyCl6nd++4vMS
DmzpJPCT/a8rl1Jj5yyQ5zJp06Z7FbPpkT9kiAB5+U/vKw==
-----END CERTIFICATE-----

View File

@ -0,0 +1,77 @@
Recommended key length: 256 bits
generator:
39:76:54:fb:49:4c:58:2c:f6:62:3a:81:d1:1e:ef:55
97:da:5a:9c:f8:11:e4:23:26:91:e2:d4:14:94:14:e1
d2:82:69:b6:f0:2e:af:08:cc:bc:21:0d:e5:a7:40:f9
8d:18:a2:52:6a:41:de:57:c7:17:0d:23:b9:36:3c:33
ef:ff:0b:85:b1:a9:59:65:49:46:36:3b:57:e4:b7:91
4b:6c:56:1a:47:44:d8:5b:8a:bd:93:93:41:81:01:9d
31:8d:3d:b8:a6:6c:7e:48:aa:86:b6:68:eb:66:0b:f3
42:58:c5:ef:65:75:9d:8d:0f:18:21:25:86:40:a6:fd
23:15:58:82:57:df:b6:0d:e5:c9:f1:85:ef:ec:ae:4a
b4:1b:70:ac:f5:c8:75:57:d6:4b:17:ca:f1:a1:45:13
c0:e7:2b:b9:26:92:c0:a1:c4:ba:87:4e:b7:37:2f:6c
02:51:86:95:2d:f3:c1:7e:c1:f7:00:52:00:0d:43:f2
aa:8d:af:f6:5a:4f:a8:65:a5:26:af:58:fa:5d:fb:77
42:e2:1e:19:f5:0f:8a:f2:9b:6b:9a:c0:2c:60:4f:45
da:9c:54:97:67:6a:e3:62:b9:c1:a0:3d:bf:cb:aa:22
23:3b:08:bc:29:6a:a5:91:5e:76:1b:60:1d:c2:02:85
2e:c6:85:20:5a:6e:0b:84:e3:e3:88:4e:c5:48:f3:c8
c1:71:b0:22:22:70:00:27:99:c6:dc:50:62:2d:be:55
65:af:60:d7:43:44:2f:97:72:a2:66:48:fa:ee:af:7a
81:cc:77:97:95:61:74:37:44:f2:b9:8e:9a:90:e4:45
89:69:66:fe:52:fe:82:d2:de:4c:11:64:a2:c3:6e:00
e4:a7:58:4f:e9:61:0d:d2:72:a1:fb:72:89:84:73:64
de:1a:2c:0f:7e:46:5f:73:f6:67:3f:14:86:1c:90:bf
49:d6:d1:3c:6a:6a:8b:42:29:22:02:47:c4:b9:bb:64
prime:
90:cb:d2:ec:9f:0c:6c:69:f5:c0:46:e1:9c:fc:4d:3b
ff:65:40:32:66:d5:fa:e0:ee:88:7d:35:ad:5e:1a:37
07:db:c0:ed:a4:b2:94:ed:41:b4:be:be:35:e3:36:ff
04:c2:48:4d:f0:e9:d2:54:54:de:10:4b:1c:6b:0e:e6
8f:c1:8a:9f:9d:e2:f0:9e:35:52:b7:2a:29:5e:e1:95
c0:e0:6e:2b:a9:eb:00:fb:fe:90:d9:aa:02:2d:52:e5
09:fe:5a:e9:5e:73:e1:94:d1:a5:a1:f5:3b:97:e8:53
67:ea:86:a7:f2:70:5c:31:7f:ed:23:f1:ce:01:62:e5
0c:7b:7c:18:67:ec:42:35:e8:d1:3d:e1:74:f9:77:02
fb:8d:24:a7:bf:3a:38:36:cf:82:9e:90:b2:7c:c3:f3
d3:e4:f1:55:ca:4b:1e:5e:50:b9:3b:d8:6a:6c:c2:51
a9:a7:e2:86:02:ef:7b:c2:d1:80:e2:dd:e0:7c:e2:03
e5:b1:e9:5b:45:c7:56:bb:37:56:9a:4a:0e:7e:b6:f6
a5:95:ef:93:5f:f9:38:16:e3:73:b5:68:a7:98:15:a2
6c:ff:6b:2e:89:f7:9f:f8:a9:d7:ce:a4:9a:de:cb:42
90:40:7b:fe:6c:3a:e0:4c:42:fe:0c:af:4e:7f:37:be
fd:3b:31:17:f6:30:0d:52:a5:ca:19:c3:c6:a4:dc:48
ec:59:02:6e:5a:80:b8:09:7d:3d:9a:00:32:7a:d7:fe
84:38:12:22:7f:c6:97:88:91:05:7f:ba:74:2b:8c:36
a0:e4:d7:1c:22:2f:0b:6a:cb:a8:71:40:d2:b1:ed:9f
43:79:2f:a6:34:7d:c0:65:c4:04:fa:d4:5c:14:7c:4b
6f:cb:b2:f8:f0:91:05:33:b7:23:58:e8:4d:ff:3f:ef
a4:f3:17:78:9b:5b:f6:f1:49:82:12:de:5d:f7:1d:47
1e:08:7f:ee:2d:10:68:f8:a5:97:03:9d:32:d2:9c:b7
-----BEGIN DH PARAMETERS-----
MIIDDQKCAYEAkMvS7J8MbGn1wEbhnPxNO/9lQDJm1frg7oh9Na1eGjcH28DtpLKU
7UG0vr414zb/BMJITfDp0lRU3hBLHGsO5o/Bip+d4vCeNVK3Kile4ZXA4G4rqesA
+/6Q2aoCLVLlCf5a6V5z4ZTRpaH1O5foU2fqhqfycFwxf+0j8c4BYuUMe3wYZ+xC
NejRPeF0+XcC+40kp786ODbPgp6QsnzD89Pk8VXKSx5eULk72GpswlGpp+KGAu97
wtGA4t3gfOID5bHpW0XHVrs3VppKDn629qWV75Nf+TgW43O1aKeYFaJs/2suifef
+KnXzqSa3stCkEB7/mw64ExC/gyvTn83vv07MRf2MA1SpcoZw8ak3EjsWQJuWoC4
CX09mgAyetf+hDgSIn/Gl4iRBX+6dCuMNqDk1xwiLwtqy6hxQNKx7Z9DeS+mNH3A
ZcQE+tRcFHxLb8uy+PCRBTO3I1joTf8/76TzF3ibW/bxSYIS3l33HUceCH/uLRBo
+KWXA50y0py3AoIBgDl2VPtJTFgs9mI6gdEe71WX2lqc+BHkIyaR4tQUlBTh0oJp
tvAurwjMvCEN5adA+Y0YolJqQd5XxxcNI7k2PDPv/wuFsalZZUlGNjtX5LeRS2xW
GkdE2FuKvZOTQYEBnTGNPbimbH5Iqoa2aOtmC/NCWMXvZXWdjQ8YISWGQKb9IxVY
glfftg3lyfGF7+yuSrQbcKz1yHVX1ksXyvGhRRPA5yu5JpLAocS6h063Ny9sAlGG
lS3zwX7B9wBSAA1D8qqNr/ZaT6hlpSavWPpd+3dC4h4Z9Q+K8ptrmsAsYE9F2pxU
l2dq42K5waA9v8uqIiM7CLwpaqWRXnYbYB3CAoUuxoUgWm4LhOPjiE7FSPPIwXGw
IiJwACeZxtxQYi2+VWWvYNdDRC+XcqJmSPrur3qBzHeXlWF0N0TyuY6akORFiWlm
/lL+gtLeTBFkosNuAOSnWE/pYQ3ScqH7comEc2TeGiwPfkZfc/ZnPxSGHJC/SdbR
PGpqi0IpIgJHxLm7ZAICAQA=
-----END DH PARAMETERS-----

View File

@ -0,0 +1,77 @@
Recommended key length: 256 bits
generator:
da:16:f5:61:0c:09:de:cd:9b:be:b8:2b:c9:96:97:1b
fc:29:b2:a5:1b:ee:d3:36:bd:6c:73:7e:1c:2a:35:71
26:c6:54:b6:28:24:db:87:9d:fc:9e:26:28:e9:01:b8
85:f2:02:9b:6a:c3:f5:3a:85:ae:1d:8c:e9:e8:c4:41
3a:78:2f:9e:f0:2a:77:18:99:a6:91:2b:2b:8c:10:98
89:04:d9:03:5f:4f:77:d6:27:1d:5e:ee:a2:d0:b1:c8
a7:64:b4:7a:67:5f:aa:3f:02:b0:d2:f7:cd:4c:7a:9d
63:57:99:8c:89:17:3f:2d:2d:1d:f5:58:61:49:62:54
55:17:be:ea:43:03:44:d7:02:39:67:26:b3:7a:4f:00
a3:a1:3b:d9:f3:aa:7a:c5:00:46:86:92:e2:2e:d8:09
ee:ca:97:06:c5:33:e5:99:f3:4c:46:81:50:59:6b:60
fb:a3:24:2a:f8:8f:e0:fb:a5:c3:9a:7d:f7:f2:d7:30
e5:1b:fa:15:a0:ca:6d:f5:64:4f:20:a3:fb:f4:31:55
b5:58:c4:6f:06:7d:5d:36:16:03:31:73:57:6b:39:c6
10:21:d9:f0:eb:74:43:2e:b0:da:ee:96:86:6e:0c:b5
08:78:af:3d:9b:66:71:bc:05:63:9d:aa:a6:2e:bc:c9
c0:e4:a4:c6:60:e8:5d:d2:96:55:a3:72:4e:7a:ec:b2
a8:23:b9:3f:7c:33:5d:f0:5f:29:57:cd:8e:9a:fd:7b
b6:83:7f:56:ba:64:bd:a8:1c:83:7f:ee:04:f1:bb:1f
70:6d:08:46:a2:95:e6:6e:2a:54:44:d9:af:9d:22:a4
50:6d:88:65:de:05:89:99:75:7e:0c:12:d9:25:43:f7
da:b6:41:f8:60:68:f7:6a:f6:a4:8d:8b:93:82:87:56
c1:80:4d:e6:66:37:1e:22:5c:86:90:d1:8e:02:3a:18
34:84:6a:da:e5:4f:a5:4f:29:78:46:97:71:24:80:92
prime:
f8:98:84:b9:b2:75:39:d5:da:14:fa:4a:03:96:57:78
95:4e:8c:ba:c3:89:de:36:2c:4a:2b:0a:31:08:09:89
bb:f6:00:a1:0b:64:02:52:1e:3f:23:67:df:2c:97:7a
7a:81:e0:b0:ae:00:bf:a6:8f:02:e1:62:d4:dc:9e:62
9a:27:f2:cf:4f:88:73:96:de:8a:61:1c:ac:3f:bb:f3
0d:be:5e:07:3b:6f:da:0c:10:03:b5:b2:5a:60:3e:c8
6f:aa:2c:3e:92:b9:ec:ee:08:29:90:c3:5e:8e:c1:a4
a7:1a:ab:87:f8:70:13:e8:b1:2f:b5:79:c1:bb:8f:21
76:b4:1f:ba:91:62:f9:d3:3a:d7:c8:23:00:3e:fe:a5
49:51:f8:eb:9f:46:e3:7d:1a:d3:54:a1:3a:d1:4b:05
ec:77:6e:80:dc:1b:22:e1:36:2a:a1:75:20:8c:48:bd
53:a6:24:c0:b2:47:36:51:0d:69:b3:cc:e6:fe:8c:34
0e:1f:16:03:af:81:b7:62:11:a8:82:06:c2:70:00:23
fe:0e:e0:fa:a1:e7:3d:cc:81:ae:76:f4:3e:66:84:df
3f:63:ba:4e:aa:21:1d:5c:a2:a2:55:0e:53:31:40:7d
7a:99:20:77:23:82:0c:a7:b3:1b:dd:13:fc:23:5f:6d
58:6c:a7:1f:f6:1a:7c:2a:57:31:c1:10:7b:f1:54:a9
8c:49:7f:17:14:5f:a4:69:16:11:6c:7d:1d:eb:d4:88
ab:6b:f8:8d:8b:be:0d:45:c7:7b:04:4f:a3:5f:f4:4f
83:12:0c:00:73:5d:57:02:0c:95:b6:ce:70:60:52:80
05:79:55:ed:99:e3:0c:23:dc:23:cd:9b:d3:a5:8e:4d
94:c8:61:2d:56:b1:15:19:ca:b2:2c:76:7c:89:04:44
18:5c:72:1e:03:9b:e0:dd:69:44:9f:68:0d:c4:2a:34
5e:bd:4f:6c:14:41:93:08:0d:4b:4d:de:97:41:9b:8d
-----BEGIN DH PARAMETERS-----
MIIDDgKCAYEA+JiEubJ1OdXaFPpKA5ZXeJVOjLrDid42LEorCjEICYm79gChC2QC
Uh4/I2ffLJd6eoHgsK4Av6aPAuFi1NyeYpon8s9PiHOW3ophHKw/u/MNvl4HO2/a
DBADtbJaYD7Ib6osPpK57O4IKZDDXo7BpKcaq4f4cBPosS+1ecG7jyF2tB+6kWL5
0zrXyCMAPv6lSVH4659G430a01ShOtFLBex3boDcGyLhNiqhdSCMSL1TpiTAskc2
UQ1ps8zm/ow0Dh8WA6+Bt2IRqIIGwnAAI/4O4Pqh5z3Mga529D5mhN8/Y7pOqiEd
XKKiVQ5TMUB9epkgdyOCDKezG90T/CNfbVhspx/2GnwqVzHBEHvxVKmMSX8XFF+k
aRYRbH0d69SIq2v4jYu+DUXHewRPo1/0T4MSDABzXVcCDJW2znBgUoAFeVXtmeMM
I9wjzZvTpY5NlMhhLVaxFRnKsix2fIkERBhcch4Dm+DdaUSfaA3EKjRevU9sFEGT
CA1LTd6XQZuNAoIBgQDaFvVhDAnezZu+uCvJlpcb/CmypRvu0za9bHN+HCo1cSbG
VLYoJNuHnfyeJijpAbiF8gKbasP1OoWuHYzp6MRBOngvnvAqdxiZppErK4wQmIkE
2QNfT3fWJx1e7qLQscinZLR6Z1+qPwKw0vfNTHqdY1eZjIkXPy0tHfVYYUliVFUX
vupDA0TXAjlnJrN6TwCjoTvZ86p6xQBGhpLiLtgJ7sqXBsUz5ZnzTEaBUFlrYPuj
JCr4j+D7pcOafffy1zDlG/oVoMpt9WRPIKP79DFVtVjEbwZ9XTYWAzFzV2s5xhAh
2fDrdEMusNruloZuDLUIeK89m2ZxvAVjnaqmLrzJwOSkxmDoXdKWVaNyTnrssqgj
uT98M13wXylXzY6a/Xu2g39WumS9qByDf+4E8bsfcG0IRqKV5m4qVETZr50ipFBt
iGXeBYmZdX4MEtklQ/fatkH4YGj3avakjYuTgodWwYBN5mY3HiJchpDRjgI6GDSE
atrlT6VPKXhGl3EkgJICAgEA
-----END DH PARAMETERS-----

View File

@ -0,0 +1,182 @@
Public Key Info:
Public Key Algorithm: RSA
Key Security Level: High (3072 bits)
modulus:
00:9d:c7:bc:02:03:43:12:ff:a3:bc:a8:7a:63:07:e4
e6:44:5f:21:53:43:f4:3c:df:c5:18:d2:55:db:58:16
f4:2e:cc:fd:7e:dd:14:16:db:bf:49:26:9b:1c:b2:c9
1d:03:04:f7:d2:32:95:e6:22:33:08:b4:63:7a:2a:0c
25:59:a7:a7:aa:78:a4:bb:31:34:48:a2:dd:83:d6:6e
13:42:c2:b5:dd:d0:2f:64:e6:84:60:fb:25:b5:db:05
0c:23:fb:e6:cd:3b:b4:3a:7d:69:86:2c:1c:3b:0d:84
7b:bc:2f:15:1a:72:19:9b:df:be:3b:fe:fd:44:d5:31
99:4f:90:52:9f:31:b1:12:c4:28:d6:fc:ca:28:ca:4c
6e:37:2d:d5:dd:f3:75:04:41:d6:8f:eb:e8:19:5a:3f
29:13:01:a0:75:0e:43:3b:18:e3:9d:b6:9a:e1:3b:f4
a1:3d:b7:d7:2f:e0:47:82:57:4f:6f:16:e8:ba:5e:cd
4e:dd:6b:d8:27:ea:16:6c:f8:3e:2e:0f:6c:2a:ee:bf
41:d5:1b:c3:7c:7a:03:7a:25:bf:34:52:ec:0e:88:27
0c:07:16:3d:ba:10:a1:e9:93:e8:67:db:9f:98:60:0b
86:48:03:d2:b9:6d:fe:c4:1f:29:0d:04:22:6c:f1:f1
c0:bf:eb:3b:d2:7c:94:34:59:ac:cb:a7:fc:02:22:69
0f:41:9c:0a:9b:f5:3a:44:c1:d6:b6:d8:47:83:8a:49
46:c6:05:e6:b2:f6:f9:83:2a:79:b4:dc:1b:ae:79:f9
f8:10:9b:d1:08:f9:97:00:a9:62:1b:9e:88:06:03:4e
3a:a1:2d:57:ef:cd:39:a2:00:68:ec:e3:cc:94:9d:7d
36:3c:4e:73:7c:92:f5:d5:e5:93:a8:44:7b:40:0a:48
20:ae:b3:2e:25:23:88:1c:19:dd:a0:c2:60:2d:5e:9d
e2:65:59:05:06:c5:2c:98:17:b7:c7:9b:04:00:45:55
c9:
public exponent:
01:00:01:
private exponent:
45:26:8b:e4:c9:ef:34:bd:6b:d2:bc:78:5f:3c:cf:7a
88:4e:b5:39:5c:18:08:31:fe:9d:21:5a:55:b6:e6:e0
80:3e:81:7f:7f:7f:55:81:5b:f5:c0:80:cc:f4:22:a6
9f:73:26:f6:2e:0b:7a:80:54:a3:a5:03:d0:3f:eb:70
d7:39:5e:87:9d:36:7d:80:54:2c:dd:8c:7e:42:95:9d
c5:6d:b6:ed:8f:57:a6:3e:4d:98:7f:9a:08:79:04:5e
4c:cb:13:5d:b1:a4:0c:da:78:4c:40:ba:e2:ba:ca:ec
bc:0e:5a:8e:6b:a1:83:aa:6d:22:b8:5f:e2:32:19:f9
da:60:23:85:f7:ee:66:8e:28:64:09:08:c5:15:dc:a7
95:71:76:41:3f:79:72:b3:34:49:81:98:08:bc:7f:e0
0d:9f:71:e6:bb:a8:85:97:23:f3:34:5b:ef:09:2a:ef
1c:30:9d:94:33:14:c4:30:65:f5:07:32:5a:b4:40:00
77:4e:93:b3:f4:6a:9d:9f:dc:6b:8f:0b:43:81:43:ff
d5:43:a9:93:68:f5:ab:2b:b9:8e:36:7b:13:0e:11:51
5f:aa:46:24:a7:3b:19:4d:31:e9:2a:a2:7b:d4:a8:68
38:9e:70:dd:68:9a:a0:f8:f3:27:40:b2:24:1b:80:93
7e:ae:d1:25:6e:90:7d:7f:52:84:a8:46:1b:54:c9:c7
9a:e5:a0:06:94:bd:d4:94:33:c7:25:f4:6c:13:e3:38
e0:83:97:51:aa:52:25:06:d9:64:b2:dc:79:53:e5:37
0e:e4:33:e6:f4:bb:10:1a:66:11:9f:86:69:b0:2f:9c
b4:f8:89:e6:a4:a1:96:5e:14:3d:a4:24:51:21:98:17
28:46:79:85:75:e6:f4:79:26:8a:db:18:94:35:07:ab
de:5f:49:e5:88:02:95:13:d6:ac:ca:e6:4d:65:be:8f
a5:f5:27:da:a9:72:b0:d5:6d:9a:4d:45:b6:69:a4:4d
prime1:
00:c2:19:9f:3e:b1:d3:f8:18:d0:79:56:3f:6d:d5:67
6b:0b:48:bd:4a:b6:c1:c9:1d:70:b5:ff:73:cf:bc:37
09:e9:b0:15:a6:6c:ff:bd:20:c9:ea:67:09:ce:f7:fe
d1:74:c3:d4:4b:87:38:47:9f:7b:b2:77:a3:a2:db:7d
64:d2:77:dc:50:a3:56:2e:44:2a:1c:90:5d:f2:f9:e8
4f:84:43:83:a6:b2:48:c4:dc:26:bd:87:d3:e3:f3:be
20:cb:7e:ce:ea:b7:93:1f:b9:6b:57:ee:73:d7:d6:08
35:b9:10:2f:60:03:e5:68:d5:5d:59:c7:e8:66:7a:51
6a:59:75:71:4a:be:1f:83:9c:01:bc:d0:5c:e5:7b:a6
5d:7f:f2:4a:e0:a2:31:58:c3:5d:c7:a5:2f:19:1e:10
56:c0:fb:83:35:84:c3:d7:ca:f7:3d:9f:1d:95:5e:3f
7d:d9:9d:ef:15:a2:15:c2:ae:ff:92:74:db:92:ae:21
43:
prime2:
00:d0:18:f2:f7:da:77:4a:6f:60:a0:93:92:d6:7e:da
bf:86:19:df:70:f5:41:99:eb:13:49:6d:c2:79:7c:51
20:4f:b0:10:01:0d:87:17:90:87:78:41:22:95:f1:72
2b:78:97:c3:12:6a:ca:49:73:50:68:fa:d7:12:56:5e
d5:bc:3f:eb:e5:ec:55:82:1b:2d:c8:15:da:d4:63:81
0e:b3:45:bb:1f:52:9b:b6:3a:96:36:87:79:43:cd:58
5d:a4:11:f6:a4:77:5f:9e:df:26:b2:e1:5d:0a:8d:bf
32:9d:52:1e:9b:21:66:ca:45:23:23:f4:04:71:23:9a
4b:19:e3:10:ff:12:9c:90:b5:ae:80:3e:0e:a8:67:64
61:ff:4e:83:db:ae:34:22:94:58:b9:e1:c3:bf:c5:39
d2:60:a0:b2:7e:e0:08:92:b7:f2:8c:28:69:2c:9c:97
59:b6:55:d9:0a:ff:c3:d3:b4:a6:eb:5a:55:35:59:26
03:
coefficient:
51:2c:52:fc:45:b3:05:bf:1b:ca:e3:12:a6:b1:20:8a
52:98:d0:87:84:a0:a5:04:12:19:af:13:4c:8c:3c:d7
91:bb:c8:0d:cc:7e:14:89:4c:bf:05:c2:fe:f2:7e:29
5c:5a:3e:37:6e:9f:16:66:5f:93:83:87:c8:e9:3c:0e
de:00:44:18:3b:7a:76:d8:fb:32:b2:4b:db:af:c3:11
45:3e:55:ae:ac:94:a5:20:ba:11:d5:4f:01:64:a4:c3
70:af:4b:e9:23:a1:9e:b8:7a:3f:79:27:e1:2b:ff:a8
ed:1f:7e:0c:27:11:6e:4d:8c:1f:37:90:a6:98:b9:e3
5a:a5:04:65:5e:36:a6:1b:2e:32:f3:14:0f:94:3b:88
be:94:ee:5d:b0:0b:3f:3e:8b:9b:b6:60:5c:94:5c:88
01:54:90:07:8b:69:ab:fe:72:4d:6b:6a:6c:5f:c1:b9
5b:52:ef:c6:38:03:06:0c:25:78:73:d1:e1:db:54:46
exp1:
33:25:37:3d:f8:f3:c6:db:1b:0b:ed:fb:16:c0:f5:d8
52:07:df:c1:31:39:0c:fa:91:f9:93:0f:7c:3c:b7:30
08:80:da:a3:98:f3:26:6d:de:66:c2:b1:e5:f4:99:13
ae:35:ef:d9:db:0e:ac:68:cc:da:71:06:10:62:cf:be
e2:6a:ad:06:1e:94:15:ea:e6:41:d2:94:be:f2:b5:11
46:e3:d7:6b:f4:6c:92:5b:04:66:4a:c5:3d:ba:bb:6d
be:d1:72:4a:8d:06:da:84:2c:51:e6:46:66:28:42:cf
8d:2d:43:9e:84:48:4e:00:72:f1:b6:68:79:a0:5f:95
ab:6e:f3:e4:63:06:c0:d2:39:ee:fb:e4:8e:9f:af:6d
d1:ca:11:8a:f1:92:19:36:99:9e:82:db:4f:3e:09:c6
22:61:e3:e8:15:4c:d9:ae:e4:c9:3b:05:3b:97:b3:19
41:5f:89:61:64:ed:60:f8:65:e5:bc:9f:23:1e:79:2b
exp2:
5f:18:97:a7:d6:49:1f:55:e8:85:59:0b:08:44:6e:38
89:d2:b6:fe:4a:c5:d0:cd:d1:41:84:0c:14:32:50:6c
80:9e:07:a2:43:89:51:a6:75:91:e9:ca:21:55:76:04
11:96:e0:c9:40:cd:f2:64:e5:01:24:68:36:74:0b:e0
86:a7:7b:68:d5:e8:79:8d:6c:0d:7c:97:44:e9:b7:e7
7c:db:47:d8:d7:8a:5a:eb:49:0b:e0:3a:f5:56:18:a4
aa:3e:9f:44:a7:5c:a6:20:79:f1:d2:f5:0e:c6:99:f2
4a:5c:65:aa:24:c8:71:74:c8:cb:3c:4e:ef:59:02:c0
81:32:f7:e8:68:9b:ed:b1:68:ee:27:ed:d0:dd:76:cd
25:bb:be:9c:1c:6e:ac:c2:b8:0d:31:f3:9f:66:44:b7
33:fb:1b:b6:c9:30:81:c3:d7:ee:5e:e5:39:42:d2:13
68:34:b0:fb:ca:c7:b5:ae:5f:7d:3c:09:a6:58:77:fb
Public Key PIN:
pin-sha256:nCxZsiBRLBQ0Lz6/eXIc9kEBwXZg06i/XORB+NNXVrE=
Public Key ID:
sha256:9c2c59b220512c14342f3ebf79721cf64101c17660d3a8bf5ce441f8d35756b1
sha1:5b2df9000451d08f57cd3f86638404ab6338c44b
-----BEGIN RSA PRIVATE KEY-----
MIIG4gIBAAKCAYEAnce8AgNDEv+jvKh6Ywfk5kRfIVND9DzfxRjSVdtYFvQuzP1+
3RQW279JJpscsskdAwT30jKV5iIzCLRjeioMJVmnp6p4pLsxNEii3YPWbhNCwrXd
0C9k5oRg+yW12wUMI/vmzTu0On1phiwcOw2Ee7wvFRpyGZvfvjv+/UTVMZlPkFKf
MbESxCjW/MooykxuNy3V3fN1BEHWj+voGVo/KRMBoHUOQzsY4522muE79KE9t9cv
4EeCV09vFui6Xs1O3WvYJ+oWbPg+Lg9sKu6/QdUbw3x6A3olvzRS7A6IJwwHFj26
EKHpk+hn25+YYAuGSAPSuW3+xB8pDQQibPHxwL/rO9J8lDRZrMun/AIiaQ9BnAqb
9TpEwda22EeDiklGxgXmsvb5gyp5tNwbrnn5+BCb0Qj5lwCpYhueiAYDTjqhLVfv
zTmiAGjs48yUnX02PE5zfJL11eWTqER7QApIIK6zLiUjiBwZ3aDCYC1eneJlWQUG
xSyYF7fHmwQARVXJAgMBAAECggGARSaL5MnvNL1r0rx4XzzPeohOtTlcGAgx/p0h
WlW25uCAPoF/f39VgVv1wIDM9CKmn3Mm9i4LeoBUo6UD0D/rcNc5XoedNn2AVCzd
jH5ClZ3Fbbbtj1emPk2Yf5oIeQReTMsTXbGkDNp4TEC64rrK7LwOWo5roYOqbSK4
X+IyGfnaYCOF9+5mjihkCQjFFdynlXF2QT95crM0SYGYCLx/4A2fcea7qIWXI/M0
W+8JKu8cMJ2UMxTEMGX1BzJatEAAd06Ts/RqnZ/ca48LQ4FD/9VDqZNo9asruY42
exMOEVFfqkYkpzsZTTHpKqJ71KhoOJ5w3WiaoPjzJ0CyJBuAk36u0SVukH1/UoSo
RhtUycea5aAGlL3UlDPHJfRsE+M44IOXUapSJQbZZLLceVPlNw7kM+b0uxAaZhGf
hmmwL5y0+InmpKGWXhQ9pCRRIZgXKEZ5hXXm9HkmitsYlDUHq95fSeWIApUT1qzK
5k1lvo+l9SfaqXKw1W2aTUW2aaRNAoHBAMIZnz6x0/gY0HlWP23VZ2sLSL1KtsHJ
HXC1/3PPvDcJ6bAVpmz/vSDJ6mcJzvf+0XTD1EuHOEefe7J3o6LbfWTSd9xQo1Yu
RCockF3y+ehPhEODprJIxNwmvYfT4/O+IMt+zuq3kx+5a1fuc9fWCDW5EC9gA+Vo
1V1Zx+hmelFqWXVxSr4fg5wBvNBc5XumXX/ySuCiMVjDXcelLxkeEFbA+4M1hMPX
yvc9nx2VXj992Z3vFaIVwq7/knTbkq4hQwKBwQDQGPL32ndKb2Cgk5LWftq/hhnf
cPVBmesTSW3CeXxRIE+wEAENhxeQh3hBIpXxcit4l8MSaspJc1Bo+tcSVl7VvD/r
5exVghstyBXa1GOBDrNFux9Sm7Y6ljaHeUPNWF2kEfakd1+e3yay4V0Kjb8ynVIe
myFmykUjI/QEcSOaSxnjEP8SnJC1roA+DqhnZGH/ToPbrjQilFi54cO/xTnSYKCy
fuAIkrfyjChpLJyXWbZV2Qr/w9O0putaVTVZJgMCgcAzJTc9+PPG2xsL7fsWwPXY
UgffwTE5DPqR+ZMPfDy3MAiA2qOY8yZt3mbCseX0mROuNe/Z2w6saMzacQYQYs++
4mqtBh6UFermQdKUvvK1EUbj12v0bJJbBGZKxT26u22+0XJKjQbahCxR5kZmKELP
jS1DnoRITgBy8bZoeaBflatu8+RjBsDSOe775I6fr23RyhGK8ZIZNpmegttPPgnG
ImHj6BVM2a7kyTsFO5ezGUFfiWFk7WD4ZeW8nyMeeSsCgcBfGJen1kkfVeiFWQsI
RG44idK2/krF0M3RQYQMFDJQbICeB6JDiVGmdZHpyiFVdgQRluDJQM3yZOUBJGg2
dAvghqd7aNXoeY1sDXyXROm353zbR9jXilrrSQvgOvVWGKSqPp9Ep1ymIHnx0vUO
xpnySlxlqiTIcXTIyzxO71kCwIEy9+hom+2xaO4n7dDdds0lu76cHG6swrgNMfOf
ZkS3M/sbtskwgcPX7l7lOULSE2g0sPvKx7WuX308CaZYd/sCgcBRLFL8RbMFvxvK
4xKmsSCKUpjQh4SgpQQSGa8TTIw815G7yA3MfhSJTL8Fwv7yfilcWj43bp8WZl+T
g4fI6TwO3gBEGDt6dtj7MrJL26/DEUU+Va6slKUguhHVTwFkpMNwr0vpI6GeuHo/
eSfhK/+o7R9+DCcRbk2MHzeQppi541qlBGVeNqYbLjLzFA+UO4i+lO5dsAs/Poub
tmBclFyIAVSQB4tpq/5yTWtqbF/BuVtS78Y4AwYMJXhz0eHbVEY=
-----END RSA PRIVATE KEY-----

View File

@ -0,0 +1,182 @@
Public Key Info:
Public Key Algorithm: RSA
Key Security Level: High (3072 bits)
modulus:
00:e3:ee:38:da:c7:2c:76:a4:9f:e8:ee:14:3b:f4:6c
90:cc:ce:5f:c0:61:0d:c4:b0:ae:11:9e:f7:b8:dd:0a
e4:0a:52:a4:ba:39:3d:54:a0:72:b4:0d:d3:24:c4:79
4e:32:18:9f:3f:32:b1:a0:14:25:23:fd:36:97:5e:2d
57:ff:f1:34:0a:ca:8f:86:be:05:9c:cd:4b:59:a9:dd
a7:63:81:37:37:b9:10:d0:1e:61:d5:65:4c:c7:e1:55
e1:2f:6c:d9:d4:45:d5:68:95:0b:65:55:89:60:0a:8c
5b:c1:8e:39:bb:3e:2b:08:a3:a3:ec:f1:04:64:6c:f7
a4:5e:f6:c8:37:5c:c9:02:50:df:99:32:80:a9:aa:85
38:47:f4:22:27:9c:fb:07:80:17:4b:d0:95:72:f7:33
40:a8:94:2e:7d:68:b4:ff:94:41:0e:00:04:79:4d:b7
ca:59:cd:1e:8f:fd:61:b2:f7:53:ef:1a:de:70:59:fa
51:78:6b:de:3f:f6:65:da:d9:2c:55:75:ec:d0:24:20
b5:e9:de:6e:56:15:ce:3d:35:31:aa:1b:55:6e:7d:fc
b1:94:a5:ed:28:43:2d:ab:b7:34:15:5f:70:d9:90:3a
06:c0:68:78:96:87:f6:01:ff:b1:32:30:9b:54:be:a8
0d:b3:cf:a2:85:c6:f1:32:67:0c:fd:c0:56:13:06:28
86:fe:12:10:54:20:42:67:77:fc:fa:65:74:d6:6e:fd
0a:40:eb:78:c2:25:41:ce:e5:d5:05:fe:f1:c6:7f:da
1f:8f:b7:93:2a:e7:8f:b0:ac:50:75:cc:e3:ef:b1:29
16:6a:ee:06:8f:ee:74:5b:37:6d:ab:c3:e5:82:1e:7a
af:31:f0:06:9d:2e:ff:e8:08:ca:15:45:b1:98:d5:b1
45:73:17:f9:e8:6c:49:b4:ff:5d:09:d0:9b:cf:1e:a1
40:4b:cd:07:38:26:b3:52:3e:49:55:27:cd:90:a7:5f
6d:
public exponent:
01:00:01:
private exponent:
30:61:85:91:f2:cb:1e:57:ed:55:8d:0b:a0:7a:4e:7d
21:ec:00:69:1e:70:c4:ba:58:08:87:7c:bf:b1:b3:b9
19:f3:d6:e1:6c:7a:f7:36:a3:82:52:98:e9:ea:06:71
b1:b2:86:42:ec:e8:c5:38:e1:75:55:2f:3c:4c:12:45
e6:9e:f5:54:01:11:1c:21:c3:a1:37:f6:71:8e:db:ec
c6:f3:4b:9c:39:5d:37:3f:eb:b6:57:2d:48:14:2d:9d
81:ea:92:06:3b:d8:83:bd:77:50:c8:2a:43:c7:99:69
74:99:52:e9:ca:d5:69:9d:0a:93:a5:c9:2f:e3:ed:60
e7:83:6c:96:4b:cc:a3:00:35:a6:18:11:35:72:6b:9a
b9:b3:39:78:bd:1a:8f:ca:01:a7:e7:1b:81:ee:b4:e3
59:a5:32:85:0e:2f:b5:3c:6b:de:a3:e4:4f:37:4e:f6
d5:be:f3:68:ce:f8:e8:fb:14:c6:e1:26:2c:24:fd:3b
dd:4b:70:c1:20:aa:0b:b5:0d:16:a8:45:4c:97:e9:0b
08:97:c3:e9:ae:bf:0b:f7:1c:b1:81:63:ea:f4:72:dd
b7:da:5d:ab:21:06:c9:e3:99:3e:6c:c7:15:ca:79:fb
44:7b:77:06:69:d9:59:a2:3c:b0:96:7b:66:6f:48:0c
42:87:9c:df:4b:3a:dc:15:1f:48:0a:eb:b0:b1:38:98
5b:6d:7f:34:ce:43:60:25:64:7c:8d:c0:d1:69:27:b8
ac:33:85:be:26:65:98:9f:8a:eb:cf:9a:6b:d7:5b:a3
49:60:f9:ff:fb:5f:67:d9:08:20:a1:d8:d0:20:25:d5
62:f9:d6:07:82:f6:c6:a6:55:65:71:3f:b8:64:b4:bd
35:a9:2d:62:6c:cb:2c:e1:96:f0:9e:40:39:03:3b:10
38:72:ac:af:6e:0a:ba:ea:f5:c1:c0:c6:86:60:58:a9
28:23:6c:dd:8a:f2:84:76:a5:db:ef:f9:29:b9:b4:81
prime1:
00:f5:32:7d:80:4d:14:b1:3d:a1:ef:1b:7f:22:87:9f
d4:3d:4d:ce:e2:11:96:29:0f:ea:0b:c4:24:9c:9a:fa
8a:4c:9a:5e:cd:48:aa:ce:6d:c0:fd:d4:53:46:1f:06
f4:4f:da:2c:e5:f1:cb:19:19:a3:a4:37:11:47:ed:3d
fc:4c:b8:f1:93:b8:d8:f7:6a:dd:5c:bd:51:4d:c6:09
27:bc:c9:9a:19:05:0a:e9:00:ec:72:75:7f:89:0d:63
65:e2:89:ac:ce:f1:78:20:0a:b8:fd:fd:a5:88:a7:7c
38:1e:55:7d:16:23:6a:4d:dc:87:56:ef:ff:02:db:bd
1b:61:60:b5:8f:7a:e1:d1:26:e3:2d:d5:21:bb:03:84
e2:a8:34:d6:7f:16:61:3c:a2:55:e1:c4:8a:82:61:74
e0:63:cb:53:fd:6d:6a:0d:f5:b5:55:e0:ef:83:2a:46
80:7f:85:57:60:d3:b6:c3:2b:ba:af:88:c8:b8:3c:2c
a1:
prime2:
00:ed:f8:fc:68:1c:ae:2e:6d:63:f1:8b:6f:85:5c:5b
ba:3e:68:f9:61:03:44:60:83:90:26:8e:4c:8b:e0:49
c1:5a:a1:5c:e5:f1:67:43:0b:f6:b5:29:84:40:a8:0f
e8:bf:bf:62:7e:33:ca:86:a2:c4:47:3b:4a:d6:9c:09
a0:bb:10:00:ec:e6:81:f2:bc:86:3f:58:4d:3a:a4:98
94:7e:5d:43:7d:33:3f:53:76:55:d1:73:a4:1f:fb:76
75:92:70:8e:82:68:d8:f4:f7:b7:36:fa:3e:cc:a7:7a
fc:a4:7b:8c:72:b4:83:d7:ce:d8:f8:b2:35:ce:36:59
7e:95:55:b8:c4:a9:44:26:a1:fe:be:f4:b9:67:bc:12
c8:e7:c3:0b:8a:51:b6:5c:1b:77:58:1f:53:ac:30:41
43:5f:97:a2:fd:70:ac:4a:91:e0:bc:f6:4f:b1:06:47
2d:89:77:ae:59:e0:5a:e2:31:c7:d9:a6:10:b8:7e:13
4d:
coefficient:
2a:54:f9:93:b2:32:7a:c4:b6:41:0e:1a:8a:0e:d9:db
4b:02:68:8d:15:10:84:42:ba:c9:35:e5:6d:ac:8e:ca
47:5d:6f:fe:e4:81:c6:ce:ab:7c:b8:5a:59:12:96:a4
0b:af:fb:d0:d7:e2:92:60:1b:81:05:4f:43:4c:5c:98
e1:84:a8:6e:bf:ad:cc:ac:de:26:d5:a8:58:09:45:ec
38:d8:5d:ec:a7:39:46:88:d1:cc:ea:b9:13:5c:9d:bb
db:69:d0:a7:e4:0e:33:b1:71:eb:13:14:28:72:45:b0
71:05:2a:a1:45:26:6c:a1:35:bf:a8:b0:1d:01:80:d9
af:66:71:3a:f4:e4:3c:fe:e8:68:2b:aa:64:a7:43:f3
7f:38:4b:51:a1:ed:73:69:52:30:25:b8:62:5b:c7:cd
02:f5:6f:4a:21:94:cb:29:44:76:f0:f8:96:50:57:33
8c:eb:7b:08:70:fc:bc:fd:69:c1:3a:3a:82:5a:4c:15
exp1:
71:83:42:5e:97:50:b1:0d:1b:5e:9a:98:2c:e0:24:ba
18:f7:60:83:80:28:c8:31:b9:e4:60:95:a2:7a:8c:ea
61:b4:45:97:3b:c0:f7:78:10:14:72:ab:6a:97:0a:9d
28:2a:95:06:8e:fd:bb:4d:07:59:0a:b5:51:5b:1f:8b
21:e9:ac:cc:fa:92:57:58:7d:ca:65:4a:b2:7a:af:da
59:a7:eb:53:11:e6:8f:20:02:56:aa:d6:b4:18:22:a0
14:54:30:50:4d:b1:93:03:e3:c8:92:18:84:3f:25:5e
c5:8c:46:30:6d:8c:d5:26:f6:f0:e4:82:66:4c:5c:2b
c4:d5:04:b8:bb:e6:b6:f1:0d:d3:36:0c:3b:8b:d1:85
2c:e1:e9:3b:44:9d:17:78:ff:d1:59:2f:d6:54:4f:cb
61:e7:cb:a6:53:74:f9:a9:7a:9d:9b:58:c6:9c:57:af
3d:59:f9:ad:b5:d5:b2:5d:18:3c:13:52:f9:17:c2:81
exp2:
10:56:1e:65:bb:4a:4d:cf:9e:a3:cf:51:a9:93:0c:8c
fd:89:d1:4c:d2:9f:98:0c:90:11:c5:85:05:b9:30:f7
00:14:c1:be:db:52:9e:6c:ac:d4:04:f4:9a:47:af:47
e8:19:e8:56:07:92:28:a9:f5:d5:7a:01:8a:38:0e:05
25:b2:54:8d:ee:c9:0e:f3:d8:37:73:05:62:38:38:6d
41:3b:7f:cd:91:7e:10:69:b8:3c:77:b6:d5:a7:3a:9b
99:a0:f6:77:87:61:15:78:07:f0:d3:3f:0a:67:98:ee
cd:0f:da:35:69:a4:ff:64:a8:ca:71:d9:75:bd:8f:69
3c:31:35:4c:f2:dd:c5:d5:2b:1a:ca:cc:0b:8e:02:b0
1e:10:ea:b2:e5:27:22:ad:94:04:cd:a9:bd:d1:56:39
9c:cf:59:16:12:ed:10:f5:70:bb:28:21:92:62:7e:f2
66:54:7b:f8:99:89:43:ab:ed:2f:48:d2:2f:08:20:a5
Public Key PIN:
pin-sha256:NiuGB0c98aUqMKk4SVQIIwXNglOf+6m1LuVn6aQ2A1U=
Public Key ID:
sha256:362b8607473df1a52a30a9384954082305cd82539ffba9b52ee567e9a4360355
sha1:7678d9a20624ec92b6d458f635f630aed2732b51
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

6
src/testsuite/start-server3 Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
# ngIRCd Test Suite
[ -z "$srcdir" ] && srcdir=`dirname $0`
${srcdir}/start-server.sh 3
# -eof-

7
src/testsuite/stop-server3 Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
# ngIRCd Test Suite
[ -z "$srcdir" ] && srcdir=`dirname $0`
${srcdir}/stop-server.sh 3
# -eof-

5
src/testsuite/switch-server3 Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
cp ssl/cert-my-second-domain-tld.pem ssl/cert.pem
cp ssl/key-my-second-domain-tld.pem ssl/key.pem
cp ssl/dhparams-my-second-domain-tld.pem ssl/dhparams.pem
# -eof-