summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am16
-rw-r--r--configure.ac2
-rwxr-xr-xtests/authenticate.sh38
-rw-r--r--tests/test-cert-1.pem17
-rw-r--r--tests/test-cert-2.pem17
-rw-r--r--tests/test-key-1.pem144
-rw-r--r--tests/test-key-2.pem144
7 files changed, 376 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index a64b713..7e31d9b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -12,7 +12,21 @@ fp2alias_CFLAGS = $(AM_CFLAGS)
std2fifo_SOURCES = std2fifo.c
std2fifo_CFLAGS = $(AM_CFLAGS)
+# tests
+
+TESTS = tests/authenticate.sh
+
+TESTS_ENVIRONMENT = \
+ builddir="$(builddir)" \
+ certdir="$(top_srcdir)/tests/"
+
+EXTRA_DIST = $(TESTS) \
+ tests/test-key-1.pem \
+ tests/test-cert-1.pem \
+ tests/test-key-2.pem \
+ tests/test-cert-2.pem
+
# docs
info_TEXINFOS = tlsd.texi
dist_man_MANS = tlsd.1 fp2alias.1 std2fifo.1
-EXTRA_DIST = examples
+EXTRA_DIST += examples
diff --git a/configure.ac b/configure.ac
index a78e808..8b877db 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
-AC_INIT(TLSd, 0.0.3, defanor@uberspace.net, tlsd,
+AC_INIT(TLSd, 0.0.4, defanor@uberspace.net, tlsd,
https://defanor.uberspace.net/projects/tlsd/)
AM_INIT_AUTOMAKE([-Wall])
AC_CONFIG_SRCDIR([tlsd.c])
diff --git a/tests/authenticate.sh b/tests/authenticate.sh
new file mode 100755
index 0000000..5e8c63b
--- /dev/null
+++ b/tests/authenticate.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+# Basic authentication test. The test is slow and unreliable: it uses
+# `sleep` where something like `expect` would be more suitable,
+# doesn't perform any checks except for the final one, the port is
+# hardcoded, etc. And maybe it would be easier to just rewrite it in
+# C. But including this for now, since there is nothing else yet, and
+# it still may be useful for testing.
+
+builddir="${builddir:-.}"
+TLSD="${builddir}/tlsd"
+certdir="${certdir:-.}"
+result=1
+
+quit () {
+ rm -f client-cmd-out
+ kill %1 %2
+ exit $result
+}
+trap quit EXIT
+
+mkfifo client-cmd-out
+# Run the server
+${TLSD} -k "${certdir}/test-key-1.pem" -c "${certdir}/test-cert-1.pem" \
+ -i tlsd-test-server -p 45678 -- \
+ sh -c 'echo "${SIDE} talks to ${SHA256}"' </dev/null &
+sleep 10
+# Run the client, connect to the server
+echo 'localhost 45678' \
+ | ${TLSD} -k "${certdir}/test-key-2.pem" -c "${certdir}/test-cert-2.pem" \
+ -i tlsd-test-client -- sh -c \
+ '( echo "${SIDE} talks to ${SHA256}" && cat ) > client-cmd-out' &
+sleep 10
+# Check the output
+diff client-cmd-out - << EOF
+CLIENT talks to 70ec32556b3682681bd45d32609cfaa13391b69a5994c5cc3b8d2b249085cd0a
+SERVER talks to c287d5c79baf7eb44756f5cad81d2f84402c57dcdf2957d70c0b11d05cbf5f80
+EOF
+result=$?
diff --git a/tests/test-cert-1.pem b/tests/test-cert-1.pem
new file mode 100644
index 0000000..2d72d66
--- /dev/null
+++ b/tests/test-cert-1.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICxDCCAaygAwIBAgIIWQxZnTFzAkkwDQYJKoZIhvcNAQELBQAwADAgFw0xNzA1
+MDUxMDUzMTlaGA85OTk5MTIzMTIzNTk1OVowADCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAOET2d8333nkA2QBMniGjwuQELe7c1YIiZxgWAeH083QCV0B
+v0PmAUPD8hkrh+TiNrWQ0ZjHepU6E8sKyg0wvXVKFFT7V5Sv4nQOnzEQ32f06fXO
+i1G5tTz4wL8ZtNSvFgRoCGfBtUJpY6YIVd/2YE0s1L/Z+z4FlAWtcayGuVaCsgK2
+Dn7D4sHza26RxAzl/L7JmAECXTIfD3PXsOyHKfyRZebOYWwpvyZo/CFsQJPTnTTV
+KCDtJeJU92zuQbQbDDCzJ7K0m/WYtlvbC3lL8YbD4kOc6lu685vOxZna4sKQN31A
+qoay5bS/y1hdVnMcGl6AEy+zCeQ9AT5zjY2X+bUCAwEAAaNAMD4wDAYDVR0TAQH/
+BAIwADAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBSwu2bJ+Yr/UAXHROMcQnkY
+NVU80TANBgkqhkiG9w0BAQsFAAOCAQEAmlNKn8biYiJge5OilHk1+8X6WcaZIjaX
+qMyWGufzhUcuZmQKqUzIlfArRIOCbzFaGEMCTgFZLvNaf65c2ue16KdRy/9IYSog
+MOm4ooGtK+PFReBl3HJRnChe8BpICxC20+pIOUMzu3gx5Lg6LNhaLU3DXHzuzwts
+2EFyC1VQgjbCxk4rXcl7yRmdyhzkYMshRmIOkcGFO8fJgYcjun0Vczhzf6/jAdDR
+nepLfPp6Z1TKPEeiXf2fLpa3dxkO04Zkj0CYWHj0BDFQEHA+GpWCeQuyc0w16uj4
+cYhnevotVDm+VyeRK4d/GcY2mWI1v/K+BZ6mOvEyYKh1k/fBWyA48A==
+-----END CERTIFICATE-----
diff --git a/tests/test-cert-2.pem b/tests/test-cert-2.pem
new file mode 100644
index 0000000..54402d9
--- /dev/null
+++ b/tests/test-cert-2.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICxDCCAaygAwIBAgIIWQxZ0h5JsC8wDQYJKoZIhvcNAQELBQAwADAgFw0xNzA1
+MDUxMDU0MTBaGA85OTk5MTIzMTIzNTk1OVowADCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAODeT85NQfHn7P0gn5G8laF2JO9eH3ew6xY14ptd6fpGorB9
+7+QqU/u4fzeopGTMcPHvUAW5EZY2gX9bFtvSN8JK4nh6Ddchd/DCwL/grVzNlVT9
+wO94JNNps7cHBtDCh/TYx3qDumgqozRFgymzw28JXBbaCRiVps9X+btF0PLPSWF7
+Zd8vNwfKOpb9nXNYDgQq4oYFqB4rZl8uZiAA3IjmiVDIX2cDaZBplXwlPhDFP6/J
+Y/k3sc2aUNqyZzse3JlSXNkOQKB4TJP1JNS6TDiEBGabtGoTp2P1KJ+P1zhkP1gM
+o790NWuG+fipdlQwESRNXJJpB5ArSj3sLx1/NHkCAwEAAaNAMD4wDAYDVR0TAQH/
+BAIwADAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBQfnonItt/FSgCBIQf48Ubp
+YpJ0VzANBgkqhkiG9w0BAQsFAAOCAQEAtZxSEvUA4g3X+bfY+ybjs0H5N/WbbcoU
+cOouU0BgI28btkmMI3tG+0o0gbpPKlIpywvCIojivJM41PQhIDkUHXPXqA6Y3IzX
+SVc8qfrTZMSbSsv0x2cEke8tnF6kvkMeAHaTntGvter1/MSrypKZVe7b9Qzs8adF
++/LazNl77reln6oWtIgCZEF5skjuvhHa1tYw0C1qvGHdthQxD0UKbMGEj1e8nCKU
+dbWQ2AigdoPtqgbjbhgrBau63VDttc0kSKs8hFJmGBnEUEYVhBtqLLjyUC9yp6zb
+kGMgblUlKlqtr8Kgc9Dst/APOLUrohoMPU+wzRNf9PvOZx5uFBXmRQ==
+-----END CERTIFICATE-----
diff --git a/tests/test-key-1.pem b/tests/test-key-1.pem
new file mode 100644
index 0000000..a202d86
--- /dev/null
+++ b/tests/test-key-1.pem
@@ -0,0 +1,144 @@
+Public Key Info:
+ Public Key Algorithm: RSA
+ Key Security Level: Medium (2048 bits)
+
+modulus:
+ 00:e1:13:d9:df:37:df:79:e4:03:64:01:32:78:86:
+ 8f:0b:90:10:b7:bb:73:56:08:89:9c:60:58:07:87:
+ d3:cd:d0:09:5d:01:bf:43:e6:01:43:c3:f2:19:2b:
+ 87:e4:e2:36:b5:90:d1:98:c7:7a:95:3a:13:cb:0a:
+ ca:0d:30:bd:75:4a:14:54:fb:57:94:af:e2:74:0e:
+ 9f:31:10:df:67:f4:e9:f5:ce:8b:51:b9:b5:3c:f8:
+ c0:bf:19:b4:d4:af:16:04:68:08:67:c1:b5:42:69:
+ 63:a6:08:55:df:f6:60:4d:2c:d4:bf:d9:fb:3e:05:
+ 94:05:ad:71:ac:86:b9:56:82:b2:02:b6:0e:7e:c3:
+ e2:c1:f3:6b:6e:91:c4:0c:e5:fc:be:c9:98:01:02:
+ 5d:32:1f:0f:73:d7:b0:ec:87:29:fc:91:65:e6:ce:
+ 61:6c:29:bf:26:68:fc:21:6c:40:93:d3:9d:34:d5:
+ 28:20:ed:25:e2:54:f7:6c:ee:41:b4:1b:0c:30:b3:
+ 27:b2:b4:9b:f5:98:b6:5b:db:0b:79:4b:f1:86:c3:
+ e2:43:9c:ea:5b:ba:f3:9b:ce:c5:99:da:e2:c2:90:
+ 37:7d:40:aa:86:b2:e5:b4:bf:cb:58:5d:56:73:1c:
+ 1a:5e:80:13:2f:b3:09:e4:3d:01:3e:73:8d:8d:97:
+ f9:b5:
+
+public exponent:
+ 01:00:01:
+
+private exponent:
+ 00:a9:54:be:ef:e1:60:1e:9a:bd:36:4a:74:47:1a:
+ ac:99:7d:5c:26:6e:3f:1a:35:b8:19:ce:9d:cb:a4:
+ 93:63:5e:a4:fc:b4:e8:c9:53:4c:16:48:5f:66:32:
+ 4a:bd:96:b6:a4:28:7c:97:5d:53:ca:da:f3:b3:28:
+ bd:d3:e8:9c:50:96:57:ef:8b:5c:5b:7f:6b:75:f6:
+ de:2b:12:cf:90:ad:40:2a:ee:a5:ff:e9:20:01:eb:
+ ff:4e:86:2f:76:66:f6:c0:7f:e7:fa:ef:4f:c7:d3:
+ f3:e5:20:96:42:b5:5f:c4:0f:fb:4b:0e:da:a6:d1:
+ 99:88:1f:f1:ca:63:5d:22:48:2e:27:33:2b:cd:9e:
+ 08:9e:aa:0e:f3:02:4d:3d:83:d3:1c:2e:13:9a:d9:
+ 24:ff:dd:c4:6d:18:d1:ce:dd:f9:c7:14:18:59:62:
+ bf:1b:5e:aa:18:72:16:f6:88:3e:e1:fb:cf:b6:0c:
+ 9a:af:20:1a:b4:86:a7:35:fb:a8:b1:71:c1:ba:fa:
+ b9:06:79:2f:90:53:da:38:61:a5:f7:41:ba:69:51:
+ df:18:0e:cb:97:ed:c3:98:4b:ff:42:e8:d8:40:ab:
+ d5:b9:dd:1d:ed:b3:bf:4c:66:e2:0c:59:24:04:af:
+ 0e:e3:03:58:df:d7:42:20:8c:aa:af:a2:38:4e:bb:
+ 4d:6d:
+
+prime1:
+ 00:ef:7f:31:68:97:70:14:ac:1b:e4:5f:6d:5a:ca:
+ e2:46:0a:62:88:e1:1c:5f:73:eb:ec:33:03:12:5c:
+ 99:8b:cc:88:21:43:d5:8d:3c:0d:be:d8:20:4c:5e:
+ 45:e7:95:c3:7d:ec:c0:6b:4b:f6:aa:77:40:0a:d6:
+ 6e:49:81:23:c8:6b:a4:16:6b:1d:f9:6a:d8:40:4b:
+ 8d:0b:41:e9:66:5d:7e:25:13:62:6a:f2:bc:a3:5b:
+ ae:e6:60:31:65:c8:eb:19:5d:a8:26:4c:34:d7:11:
+ 9f:8b:ac:46:1f:2f:b8:46:af:db:4e:f2:e2:85:3b:
+ a8:92:38:49:7d:ac:3e:8e:07:
+
+prime2:
+ 00:f0:96:4b:eb:1b:21:68:98:73:e0:51:42:0e:a2:
+ 79:6d:66:cf:4f:01:18:34:99:23:a5:df:97:1d:08:
+ e5:82:74:ba:b2:ad:4f:21:6d:12:64:ac:d2:70:1d:
+ 0a:70:03:69:99:b8:08:70:52:4a:e4:61:44:44:8b:
+ 8f:86:e6:72:4e:d1:f0:33:34:4b:10:0c:23:77:c5:
+ 4c:9c:dc:05:17:68:1d:f3:02:c4:34:ce:25:3b:34:
+ d0:18:b7:f8:b1:a4:52:53:91:68:b2:9c:70:70:27:
+ e2:37:2b:e3:ca:6b:b0:f1:78:25:37:5c:d2:d5:85:
+ bb:25:31:ed:fa:81:1d:4b:63:
+
+coefficient:
+ 71:d8:4d:f7:d9:77:e1:f0:6a:f9:72:14:bc:62:4f:
+ 2d:05:a6:c8:60:bb:5d:62:e6:a9:09:f7:59:39:54:
+ e0:df:d1:ac:d5:30:ca:a3:82:27:b1:b7:21:b5:a9:
+ 07:26:c6:7b:7c:2d:52:9c:f9:24:f8:02:47:66:94:
+ d0:97:69:6a:04:11:e4:35:98:b0:dc:af:ec:c5:fd:
+ 54:43:21:d4:34:07:9e:25:c0:32:e2:3a:96:ed:9e:
+ 86:a2:e0:1a:10:a7:78:95:bd:80:55:3b:39:65:88:
+ a0:08:05:cb:86:42:b9:16:34:b2:3b:6d:51:34:4c:
+ b4:31:78:1f:1d:e5:bb:0f:
+
+exp1:
+ 42:35:c1:ad:0e:a0:b7:b6:55:07:af:b2:05:b5:ad:
+ 14:7b:ee:7d:b4:ee:29:1d:5d:0d:b1:94:99:d0:eb:
+ ca:10:43:5a:1e:ec:bc:dc:eb:57:e5:5c:18:80:bf:
+ 86:a4:8a:a5:17:7c:a2:ad:1f:86:44:ed:79:91:8a:
+ 6f:db:b9:ce:c0:a3:5e:67:42:a4:1f:7b:a5:5a:bd:
+ a5:6d:15:5f:6d:5d:60:56:99:90:c3:86:8f:0a:db:
+ b1:68:ca:7f:3f:2a:6f:9a:ca:cf:bb:a5:a8:07:81:
+ 3a:15:e8:54:da:d6:71:04:50:f6:e4:82:e7:1e:75:
+ 1d:e7:5d:b9:d6:92:7c:a5:
+
+exp2:
+ 24:26:00:fc:2f:54:62:b9:dd:57:4b:fe:47:e2:a3:
+ aa:0b:73:84:a4:5e:75:b0:b8:c9:78:81:e5:0b:ec:
+ 28:20:cf:d8:7e:ef:cf:ce:ea:9f:93:d3:fe:a2:6e:
+ 6a:0c:29:36:be:8f:0e:09:5f:55:57:44:01:a4:92:
+ 89:2b:60:eb:74:e1:c9:5f:c7:13:7f:2f:69:14:8d:
+ 01:58:91:af:45:a6:92:57:cd:11:3e:14:1c:04:40:
+ 6c:26:60:48:98:af:01:fd:6c:24:c2:1a:a6:cf:67:
+ 4e:f0:da:46:14:ce:3e:49:d6:15:ae:6d:c3:45:57:
+ ac:2c:07:5c:c7:3f:96:8f:
+
+
+Public Key ID: B0:BB:66:C9:F9:8A:FF:50:05:C7:44:E3:1C:42:79:18:35:55:3C:D1
+Public key's random art:
++--[ RSA 2048]----+
+| .=OO..ooo |
+| o*o+ o E|
+| . .+ . |
+| o . |
+| . S |
+| o |
+| .oo |
+| .*o |
+| .+++o |
++-----------------+
+
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEA4RPZ3zffeeQDZAEyeIaPC5AQt7tzVgiJnGBYB4fTzdAJXQG/
+Q+YBQ8PyGSuH5OI2tZDRmMd6lToTywrKDTC9dUoUVPtXlK/idA6fMRDfZ/Tp9c6L
+Ubm1PPjAvxm01K8WBGgIZ8G1QmljpghV3/ZgTSzUv9n7PgWUBa1xrIa5VoKyArYO
+fsPiwfNrbpHEDOX8vsmYAQJdMh8Pc9ew7Icp/JFl5s5hbCm/Jmj8IWxAk9OdNNUo
+IO0l4lT3bO5BtBsMMLMnsrSb9Zi2W9sLeUvxhsPiQ5zqW7rzm87FmdriwpA3fUCq
+hrLltL/LWF1WcxwaXoATL7MJ5D0BPnONjZf5tQIDAQABAoIBAQCpVL7v4WAemr02
+SnRHGqyZfVwmbj8aNbgZzp3LpJNjXqT8tOjJU0wWSF9mMkq9lrakKHyXXVPK2vOz
+KL3T6JxQllfvi1xbf2t19t4rEs+QrUAq7qX/6SAB6/9Ohi92ZvbAf+f670/H0/Pl
+IJZCtV/ED/tLDtqm0ZmIH/HKY10iSC4nMyvNngieqg7zAk09g9McLhOa2ST/3cRt
+GNHO3fnHFBhZYr8bXqoYchb2iD7h+8+2DJqvIBq0hqc1+6ixccG6+rkGeS+QU9o4
+YaX3QbppUd8YDsuX7cOYS/9C6NhAq9W53R3ts79MZuIMWSQErw7jA1jf10IgjKqv
+ojhOu01tAoGBAO9/MWiXcBSsG+RfbVrK4kYKYojhHF9z6+wzAxJcmYvMiCFD1Y08
+Db7YIExeReeVw33swGtL9qp3QArWbkmBI8hrpBZrHflq2EBLjQtB6WZdfiUTYmry
+vKNbruZgMWXI6xldqCZMNNcRn4usRh8vuEav207y4oU7qJI4SX2sPo4HAoGBAPCW
+S+sbIWiYc+BRQg6ieW1mz08BGDSZI6Xflx0I5YJ0urKtTyFtEmSs0nAdCnADaZm4
+CHBSSuRhRESLj4bmck7R8DM0SxAMI3fFTJzcBRdoHfMCxDTOJTs00Bi3+LGkUlOR
+aLKccHAn4jcr48prsPF4JTdc0tWFuyUx7fqBHUtjAoGAQjXBrQ6gt7ZVB6+yBbWt
+FHvufbTuKR1dDbGUmdDryhBDWh7svNzrV+VcGIC/hqSKpRd8oq0fhkTteZGKb9u5
+zsCjXmdCpB97pVq9pW0VX21dYFaZkMOGjwrbsWjKfz8qb5rKz7ulqAeBOhXoVNrW
+cQRQ9uSC5x51HeddudaSfKUCgYAkJgD8L1Riud1XS/5H4qOqC3OEpF51sLjJeIHl
+C+woIM/Yfu/Pzuqfk9P+om5qDCk2vo8OCV9VV0QBpJKJK2DrdOHJX8cTfy9pFI0B
+WJGvRaaSV80RPhQcBEBsJmBImK8B/Wwkwhqmz2dO8NpGFM4+SdYVrm3DRVesLAdc
+xz+WjwKBgHHYTffZd+HwavlyFLxiTy0Fpshgu11i5qkJ91k5VODf0azVMMqjgiex
+tyG1qQcmxnt8LVKc+ST4AkdmlNCXaWoEEeQ1mLDcr+zF/VRDIdQ0B54lwDLiOpbt
+noai4BoQp3iVvYBVOzlliKAIBcuGQrkWNLI7bVE0TLQxeB8d5bsP
+-----END RSA PRIVATE KEY-----
diff --git a/tests/test-key-2.pem b/tests/test-key-2.pem
new file mode 100644
index 0000000..889fbc2
--- /dev/null
+++ b/tests/test-key-2.pem
@@ -0,0 +1,144 @@
+Public Key Info:
+ Public Key Algorithm: RSA
+ Key Security Level: Medium (2048 bits)
+
+modulus:
+ 00:e0:de:4f:ce:4d:41:f1:e7:ec:fd:20:9f:91:bc:
+ 95:a1:76:24:ef:5e:1f:77:b0:eb:16:35:e2:9b:5d:
+ e9:fa:46:a2:b0:7d:ef:e4:2a:53:fb:b8:7f:37:a8:
+ a4:64:cc:70:f1:ef:50:05:b9:11:96:36:81:7f:5b:
+ 16:db:d2:37:c2:4a:e2:78:7a:0d:d7:21:77:f0:c2:
+ c0:bf:e0:ad:5c:cd:95:54:fd:c0:ef:78:24:d3:69:
+ b3:b7:07:06:d0:c2:87:f4:d8:c7:7a:83:ba:68:2a:
+ a3:34:45:83:29:b3:c3:6f:09:5c:16:da:09:18:95:
+ a6:cf:57:f9:bb:45:d0:f2:cf:49:61:7b:65:df:2f:
+ 37:07:ca:3a:96:fd:9d:73:58:0e:04:2a:e2:86:05:
+ a8:1e:2b:66:5f:2e:66:20:00:dc:88:e6:89:50:c8:
+ 5f:67:03:69:90:69:95:7c:25:3e:10:c5:3f:af:c9:
+ 63:f9:37:b1:cd:9a:50:da:b2:67:3b:1e:dc:99:52:
+ 5c:d9:0e:40:a0:78:4c:93:f5:24:d4:ba:4c:38:84:
+ 04:66:9b:b4:6a:13:a7:63:f5:28:9f:8f:d7:38:64:
+ 3f:58:0c:a3:bf:74:35:6b:86:f9:f8:a9:76:54:30:
+ 11:24:4d:5c:92:69:07:90:2b:4a:3d:ec:2f:1d:7f:
+ 34:79:
+
+public exponent:
+ 01:00:01:
+
+private exponent:
+ 1c:07:79:f9:24:26:29:2a:18:9f:40:b6:c3:2a:b7:
+ 98:05:aa:fa:ef:47:8a:da:d1:a2:d6:1a:a5:f5:21:
+ da:21:7d:db:f4:06:b7:f1:12:c0:d8:b1:7a:d5:99:
+ 90:3a:ef:85:28:a8:57:de:46:b3:eb:9d:5e:ab:93:
+ 00:d9:86:3b:c0:ab:d4:0a:9a:b9:0b:21:f1:2f:c5:
+ 68:e5:6f:96:96:c5:9b:6f:79:e2:1f:9e:af:7f:88:
+ 78:32:f7:05:84:89:ff:da:19:9b:4a:da:2c:6b:cc:
+ 26:12:d8:13:95:a5:b1:ac:7f:ff:15:34:77:0d:08:
+ 5a:e6:03:69:f5:7c:e3:16:f9:96:80:c8:e1:95:70:
+ 8c:94:ae:3a:84:3d:10:fd:9c:d2:2f:af:d5:50:11:
+ 57:03:9f:44:a4:69:97:b5:89:7b:4d:e9:69:48:8d:
+ 9e:62:fa:03:c0:44:19:f2:d0:af:27:22:36:6f:f4:
+ d7:88:bd:a2:e3:25:01:d5:17:18:ea:da:ce:ea:dd:
+ 7c:fc:e2:6e:e4:1c:b4:75:33:61:7c:49:f3:3e:3f:
+ c3:2d:18:f3:23:37:1c:85:5c:ac:e0:eb:e5:2a:6a:
+ 8b:08:88:0d:4a:35:26:94:58:23:2f:9b:a3:8f:82:
+ ca:d8:b2:24:3a:9d:1e:54:b0:ff:93:70:06:1a:74:
+ 45:
+
+prime1:
+ 00:fa:ae:de:66:96:87:bf:22:f9:3b:b2:24:ac:85:
+ 0a:a3:df:4d:c7:a9:12:9f:90:cd:15:a6:49:b4:90:
+ f9:6e:1d:3f:e9:ba:de:81:15:9c:6a:2f:ba:cb:0e:
+ 80:50:29:30:d4:20:dd:ed:7c:7a:e1:be:16:27:a2:
+ 90:35:ce:1b:ac:16:82:65:23:5c:52:87:e5:70:cf:
+ d4:b4:9c:5e:7f:64:ce:6d:1e:7b:ba:5d:ff:ec:aa:
+ 4a:fc:a2:f6:64:30:12:5b:43:25:37:9f:5d:7e:8b:
+ 18:51:6c:10:d6:cf:13:05:fe:6c:bd:63:15:39:ef:
+ 9a:6b:6e:cf:38:8f:0f:2f:73:
+
+prime2:
+ 00:e5:a3:46:fe:65:11:52:ea:12:ef:d0:6e:87:c8:
+ e5:18:ab:ea:1c:0d:ce:f1:64:10:ee:d8:6d:ea:4e:
+ d8:42:fd:b4:73:cc:e1:a9:33:b4:e4:27:4b:4c:19:
+ 20:d9:e9:77:3b:a7:ec:14:b2:86:cf:e2:5d:76:3f:
+ ae:d7:14:03:9b:01:2d:67:9f:4e:db:85:04:70:a2:
+ 91:12:77:7b:d0:59:fc:82:35:93:c4:43:8a:45:ef:
+ d5:51:6d:95:e2:47:94:de:8d:55:62:7a:95:ae:9c:
+ 31:a6:f7:37:4a:f6:fd:b1:ca:cb:3f:eb:74:fa:b1:
+ 66:7d:b7:30:47:a4:63:f9:63:
+
+coefficient:
+ 67:5c:b0:fc:ac:9c:76:2a:20:4b:95:29:fe:21:4e:
+ 5c:8d:54:87:91:82:4f:f1:41:88:3b:16:9e:15:8a:
+ 2a:9d:33:e7:69:68:e9:94:ab:25:7f:1d:b8:f5:73:
+ e2:cc:12:8d:da:5f:28:6e:0b:9a:7c:ba:c3:8d:c8:
+ 8d:4a:68:ff:68:a0:18:97:75:8b:2c:1f:a0:5d:92:
+ 92:78:f4:06:8e:ae:17:eb:7d:74:32:7d:32:a1:01:
+ 91:74:0d:a8:d2:bb:59:d4:32:3c:6e:57:7e:2c:8d:
+ 74:da:25:13:0f:e0:1e:ef:d4:80:7b:24:de:0e:2c:
+ b0:69:0f:7f:08:e4:d5:cf:
+
+exp1:
+ 00:db:89:1d:38:16:88:17:39:d7:af:11:d9:d0:44:
+ 4b:07:2c:5e:7f:86:6f:ca:d2:12:e8:ec:d2:0b:92:
+ 12:fe:fe:1a:a4:e4:84:4b:e3:d3:31:a3:4f:20:d9:
+ 38:41:fb:70:c9:b5:66:e5:be:68:17:1e:53:64:ae:
+ 97:40:a7:99:d0:61:7e:1c:78:95:37:a9:cf:a3:b6:
+ 3e:ff:55:19:e4:d3:31:7c:9a:7f:9c:bd:09:8e:07:
+ ac:d8:07:17:64:b2:3c:c1:33:d2:7a:1d:d4:d1:27:
+ 9b:4a:63:2b:74:13:b1:03:44:c7:92:2c:1d:c0:b9:
+ 37:30:f2:c0:03:36:36:04:45:
+
+exp2:
+ 00:96:2c:02:bf:56:84:cf:be:37:88:10:bc:57:9b:
+ ef:06:05:56:e1:e5:bd:d1:6a:69:10:69:04:e8:57:
+ 8b:61:b3:dc:10:66:89:a4:47:26:22:95:f7:cd:da:
+ 18:fb:a8:8b:ca:bd:73:cb:cd:3c:10:32:ae:80:28:
+ 01:44:b1:d7:f1:c4:01:57:64:7d:03:5d:a7:9b:a9:
+ 14:4a:09:4d:34:e1:c4:19:ba:c3:d9:73:79:b7:66:
+ b2:0f:c0:24:66:87:fd:38:d5:20:63:78:5a:ee:87:
+ 42:89:37:de:36:ed:f2:d6:14:12:7a:c8:96:05:63:
+ 81:ec:f0:a1:68:18:7f:30:95:
+
+
+Public Key ID: 1F:9E:89:C8:B6:DF:C5:4A:00:81:21:07:F8:F1:46:E9:62:92:74:57
+Public key's random art:
++--[ RSA 2048]----+
+| .o.o+oE |
+|...++. . |
+|.o.=. . |
+|o + + . |
+| o o S . |
+| . . = = |
+| + . * o |
+| . . o o |
+| ... o |
++-----------------+
+
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEA4N5Pzk1B8efs/SCfkbyVoXYk714fd7DrFjXim13p+kaisH3v
+5CpT+7h/N6ikZMxw8e9QBbkRljaBf1sW29I3wkrieHoN1yF38MLAv+CtXM2VVP3A
+73gk02mztwcG0MKH9NjHeoO6aCqjNEWDKbPDbwlcFtoJGJWmz1f5u0XQ8s9JYXtl
+3y83B8o6lv2dc1gOBCrihgWoHitmXy5mIADciOaJUMhfZwNpkGmVfCU+EMU/r8lj
++TexzZpQ2rJnOx7cmVJc2Q5AoHhMk/Uk1LpMOIQEZpu0ahOnY/Uon4/XOGQ/WAyj
+v3Q1a4b5+Kl2VDARJE1ckmkHkCtKPewvHX80eQIDAQABAoIBABwHefkkJikqGJ9A
+tsMqt5gFqvrvR4ra0aLWGqX1Idohfdv0BrfxEsDYsXrVmZA674UoqFfeRrPrnV6r
+kwDZhjvAq9QKmrkLIfEvxWjlb5aWxZtveeIfnq9/iHgy9wWEif/aGZtK2ixrzCYS
+2BOVpbGsf/8VNHcNCFrmA2n1fOMW+ZaAyOGVcIyUrjqEPRD9nNIvr9VQEVcDn0Sk
+aZe1iXtN6WlIjZ5i+gPARBny0K8nIjZv9NeIvaLjJQHVFxjq2s7q3Xz84m7kHLR1
+M2F8SfM+P8MtGPMjNxyFXKzg6+UqaosIiA1KNSaUWCMvm6OPgsrYsiQ6nR5UsP+T
+cAYadEUCgYEA+q7eZpaHvyL5O7IkrIUKo99Nx6kSn5DNFaZJtJD5bh0/6bregRWc
+ai+6yw6AUCkw1CDd7Xx64b4WJ6KQNc4brBaCZSNcUoflcM/UtJxef2TObR57ul3/
+7KpK/KL2ZDASW0MlN59dfosYUWwQ1s8TBf5svWMVOe+aa27POI8PL3MCgYEA5aNG
+/mURUuoS79Buh8jlGKvqHA3O8WQQ7tht6k7YQv20c8zhqTO05CdLTBkg2el3O6fs
+FLKGz+Jddj+u1xQDmwEtZ59O24UEcKKREnd70Fn8gjWTxEOKRe/VUW2V4keU3o1V
+YnqVrpwxpvc3Svb9scrLP+t0+rFmfbcwR6Rj+WMCgYEA24kdOBaIFznXrxHZ0ERL
+Byxef4ZvytIS6OzSC5IS/v4apOSES+PTMaNPINk4QftwybVm5b5oFx5TZK6XQKeZ
+0GF+HHiVN6nPo7Y+/1UZ5NMxfJp/nL0Jjges2AcXZLI8wTPSeh3U0SebSmMrdBOx
+A0THkiwdwLk3MPLAAzY2BEUCgYEAliwCv1aEz743iBC8V5vvBgVW4eW90WppEGkE
+6FeLYbPcEGaJpEcmIpX3zdoY+6iLyr1zy808EDKugCgBRLHX8cQBV2R9A12nm6kU
+SglNNOHEGbrD2XN5t2ayD8AkZof9ONUgY3ha7odCiTfeNu3y1hQSesiWBWOB7PCh
+aBh/MJUCgYBnXLD8rJx2KiBLlSn+IU5cjVSHkYJP8UGIOxaeFYoqnTPnaWjplKsl
+fx249XPizBKN2l8obguafLrDjciNSmj/aKAYl3WLLB+gXZKSePQGjq4X6310Mn0y
+oQGRdA2o0rtZ1DI8bld+LI102iUTD+Ae79SAeyTeDiywaQ9/COTVzw==
+-----END RSA PRIVATE KEY-----