Skip to content
This repository was archived by the owner on Jan 6, 2023. It is now read-only.

Commit e0e88c2

Browse files
rojkovDmitry Rozhkov
authored and
Dmitry Rozhkov
committedMar 3, 2016
Initial commit
Signed-off-by: Dmitry Rozhkov <[email protected]>
1 parent ed86edb commit e0e88c2

12 files changed

+550
-0
lines changed
 

‎README.rst

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
This repository contains Dockerfiles and complement environments used
2+
to create Ostro-related docker images:
3+
4+
1. `swupd` - software update server.

‎swupd/Dockerfile

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
FROM fedora:23
2+
MAINTAINER Dmitry Rozhkov <dmitry.rozhkov@intel.com>
3+
4+
# Get minimal host distro
5+
ADD fs_root/ /
6+
7+
RUN /home/clrbuilder/projects/prepare_env.sh
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
From 8f24ef7f857c9d2c2eb2601a2a1e06123c086001 Mon Sep 17 00:00:00 2001
2+
From: Dmitry Rozhkov <dmitry.rozhkov@intel.com>
3+
Date: Fri, 29 Jan 2016 17:48:46 +0200
4+
Subject: [PATCH swupd-server 1/2] Add system_argv() helper for safer calls to
5+
system utilities
6+
7+
Often file names contain special characters like hashes or
8+
whitespaces and that makes escaping a difficult task when using
9+
system(). Thus add a new helper system_argv() that is based
10+
on execvp() syscall and doesn't require escaping.
11+
12+
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@intel.com>
13+
---
14+
include/swupd.h | 1 +
15+
src/fullfiles.c | 6 ++----
16+
src/helpers.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
17+
3 files changed, 66 insertions(+), 4 deletions(-)
18+
19+
diff --git a/include/swupd.h b/include/swupd.h
20+
index 00b88d4..2805186 100644
21+
--- a/include/swupd.h
22+
+++ b/include/swupd.h
23+
@@ -223,6 +223,7 @@ extern FILE * fopen_exclusive(const char *filename); /* no mode, opens for write
24+
extern void dump_file_info(struct file *file);
25+
extern void string_or_die(char **strp, const char *fmt, ...);
26+
extern void print_elapsed_time(struct timeval *previous_time, struct timeval *current_time);
27+
+extern int system_argv(char *const argv[]);
28+
29+
extern bool signature_initialize(void);
30+
extern void signature_terminate(void);
31+
diff --git a/src/fullfiles.c b/src/fullfiles.c
32+
index 1bb581e..fa78293 100644
33+
--- a/src/fullfiles.c
34+
+++ b/src/fullfiles.c
35+
@@ -138,12 +138,10 @@ static void create_fullfile(struct file *file)
36+
string_or_die(&tempfile, "%s/%s", empty, file->hash);
37+
if (link(origin, tempfile) < 0) {
38+
LOG(NULL, "hardlink failed", "%s due to %s (%s -> %s)", file->filename, strerror(errno), origin, tempfile);
39+
- string_or_die(&tarcommand, "cp -a %s %s", origin, tempfile);
40+
- if (system(tarcommand) != 0) {
41+
- LOG(NULL, "Failed to run command:", "%s", tarcommand);
42+
+ char *const argv[] = {"cp", "-a", origin, tempfile, NULL};
43+
+ if (system_argv(argv) != 0) {
44+
assert(0);
45+
}
46+
- free(tarcommand);
47+
}
48+
49+
/* step 2a: tar it with each compression type */
50+
diff --git a/src/helpers.c b/src/helpers.c
51+
index 65acffd..5884b51 100644
52+
--- a/src/helpers.c
53+
+++ b/src/helpers.c
54+
@@ -29,6 +29,7 @@
55+
#include <sys/types.h>
56+
#include <sys/stat.h>
57+
#include <sys/time.h>
58+
+#include <sys/wait.h>
59+
#include <fcntl.h>
60+
#include <errno.h>
61+
62+
@@ -124,3 +125,65 @@ void print_elapsed_time(struct timeval *previous_time, struct timeval *current_t
63+
64+
free(elapsed);
65+
}
66+
+
67+
+void concat_str_array(char **output, char *const argv[])
68+
+{
69+
+ int size = 0;
70+
+
71+
+ for (int i = 0; argv[i]; i++) {
72+
+ size += strlen(argv[i]) + 1;
73+
+ }
74+
+
75+
+ *output = malloc(size + 1);
76+
+ if (!*output) {
77+
+ LOG(NULL, "Failed to allocate", "%i bytes", size);
78+
+ assert(0);
79+
+ }
80+
+ strcpy(*output, "");
81+
+ for (int i = 0; argv[i]; i++) {
82+
+ strcat(*output, argv[i]);
83+
+ strcat(*output, " ");
84+
+ }
85+
+}
86+
+
87+
+int system_argv(char *const argv[])
88+
+{
89+
+ int child_exit_status;
90+
+ pid_t pid;
91+
+ int status;
92+
+
93+
+ pid = fork();
94+
+
95+
+ if (pid == 0) { /* child */
96+
+ execvp(*argv, argv);
97+
+ LOG(NULL, "This line must not be reached", "");
98+
+ assert(0);
99+
+ } else if (pid < 0) {
100+
+ LOG(NULL, "Failed to fork a child process", "");
101+
+ assert(0);
102+
+ } else {
103+
+ pid_t ws = waitpid(pid, &child_exit_status, 0);
104+
+
105+
+ if (ws == -1) {
106+
+ LOG(NULL, "Failed to wait for child process", "");
107+
+ assert(0);
108+
+ }
109+
+
110+
+ if (WIFEXITED(child_exit_status)) {
111+
+ status = WEXITSTATUS(child_exit_status);
112+
+ } else {
113+
+ LOG(NULL, "Child process didn't exit", "");
114+
+ assert(0);
115+
+ }
116+
+
117+
+ if (status != 0) {
118+
+ char* cmdline = NULL;
119+
+
120+
+ concat_str_array(&cmdline, argv);
121+
+ LOG(NULL, "Failed to run command:", "%s", cmdline);
122+
+ free(cmdline);
123+
+ }
124+
+
125+
+ return status;
126+
+ }
127+
+}
128+
--
129+
2.5.0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
From a7476d2cd85bf80e70bb9f67c9615c66a5c2257f Mon Sep 17 00:00:00 2001
2+
From: Dmitry Rozhkov <dmitry.rozhkov@intel.com>
3+
Date: Fri, 29 Jan 2016 17:55:03 +0200
4+
Subject: [PATCH swupd-server 2/2] Make auxilary scripts more universal
5+
6+
---
7+
basic_creator.sh | 2 +-
8+
pack_maker.sh | 4 ++--
9+
zeropack_maker.sh | 36 ++++++++++++++++++++++++++++++++++++
10+
3 files changed, 39 insertions(+), 3 deletions(-)
11+
create mode 100644 zeropack_maker.sh
12+
13+
diff --git a/basic_creator.sh b/basic_creator.sh
14+
index d5ede28..f70fbbc 100755
15+
--- a/basic_creator.sh
16+
+++ b/basic_creator.sh
17+
@@ -2,7 +2,7 @@
18+
XZ_DEFAULTS="--threads 0"
19+
PREVREL=`cat /var/lib/update/image/latest.version`
20+
21+
-SWUPDREPO=/usr/src/clear-projects/swupd-server
22+
+SWUPDREPO=`dirname $0`
23+
BUNDLEREPO=/usr/src/clear-projects/clr-bundles
24+
25+
# remove things from $BUNDLEREPO/bundles to make local build faster,
26+
diff --git a/pack_maker.sh b/pack_maker.sh
27+
index 88e7dc7..d356403 100755
28+
--- a/pack_maker.sh
29+
+++ b/pack_maker.sh
30+
@@ -20,10 +20,10 @@
31+
# consider which version-pair packs are meaningful for intermediate builds
32+
# and revert builds.
33+
34+
-SWUPDREPO=${SWUPDREPO:-"/root/swupd-server"}
35+
+SWUPDREPO=`dirname $0`
36+
BUNDLEREPO=${BUNDLEREPO:-"/root/clr-bundles"}
37+
SWUPDWEBDIR="/var/lib/update/www"
38+
-SWUPD_CERTS_DIR=${SWUPD_CERTS_DIR=:-"/root/swupd-certs"}
39+
+SWUPD_CERTS_DIR=${SWUPD_CERTS_DIR:-"/root/swupd-certs"}
40+
41+
export XZ_DEFAULTS="--threads 0"
42+
43+
diff --git a/zeropack_maker.sh b/zeropack_maker.sh
44+
new file mode 100644
45+
index 0000000..f7de590
46+
--- /dev/null
47+
+++ b/zeropack_maker.sh
48+
@@ -0,0 +1,36 @@
49+
+#!/bin/sh
50+
+
51+
+SWUPDREPO=`dirname $0`
52+
+UPDATEDIR="/var/lib/update"
53+
+VER=$1
54+
+
55+
+SWUPD_CERTS_DIR=${SWUPD_CERTS_DIR:-"/root/swupd-certs"}
56+
+
57+
+export XZ_DEFAULTS="--threads 0"
58+
+
59+
+export SWUPD_CERTS_DIR
60+
+export LEAF_KEY="leaf.key.pem"
61+
+export LEAF_CERT="leaf.cert.pem"
62+
+export CA_CHAIN_CERT="ca-chain.cert.pem"
63+
+export PASSPHRASE="${SWUPD_CERTS_DIR}/passphrase"
64+
+
65+
+MOM=${UPDATEDIR}/www/${VER}/Manifest.MoM
66+
+
67+
+if [ ! -e ${MOM} ]; then
68+
+ echo "Error: no ${MOM}"
69+
+ exit 1
70+
+fi
71+
+BUNDLE_LIST=$(cat ${MOM} | grep "^M\." | grep ${VER} | cut -f 4)
72+
+for BUNDLE in $BUNDLE_LIST; do
73+
+ #background them for parallelization
74+
+ ${SWUPDREPO}/swupd_make_pack 0 ${VER} ${BUNDLE} &
75+
+done
76+
+#now await all completing
77+
+for job in $(jobs -p); do
78+
+ wait ${job}
79+
+ RET=$?
80+
+ if [ "$RET" != "0" ]; then
81+
+ echo "Error: zero pack subprocessor failed"
82+
+ exit 1
83+
+ fi
84+
+done
85+
--
86+
2.5.0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/sh -xue
2+
3+
PROJ_DIR=/home/clrbuilder/projects
4+
PROXY_OPT=
5+
6+
if [ -n ${http_proxy} ]; then
7+
PROXY_OPT="-x http_proxy=${http_proxy}"
8+
fi
9+
10+
dnf --assumeyes --allowerasing install \
11+
hostname \
12+
which \
13+
hardlink \
14+
openssl \
15+
bzip2 \
16+
cpio \
17+
xz \
18+
rsync \
19+
libtool \
20+
pkgconfig \
21+
glib2-devel \
22+
zlib-devel \
23+
openssl-devel \
24+
file-devel \
25+
xz-devel \
26+
bzip2-devel \
27+
make patch
28+
29+
30+
31+
cd $PROJ_DIR
32+
mkdir swupd-server
33+
curl ${PROXY_OPT} -L https://download.clearlinux.org/releases/5940/clear/source/SRPMS/swupd-server-2.53-4.src.rpm | \
34+
rpm2cpio - | \
35+
cpio -iu --to-stdout swupd-server-2.53.tar.gz | \
36+
tar xzf - -C swupd-server --strip-components=1
37+
cat patches/*.patch | patch -p1 -d swupd-server
38+
cd swupd-server
39+
autoreconf -fi
40+
./configure
41+
make
42+
mkdir -p /var/lib/update/www
43+
cp /home/clrbuilder/projects/swupd-server/server.ini /var/lib/update/
44+
45+
dnf --assumeyes remove \
46+
libtool \
47+
pkgconfig \
48+
glib2-devel \
49+
zlib-devel \
50+
openssl-devel \
51+
file-devel \
52+
xz-devel \
53+
bzip2-devel \
54+
make patch
55+
56+
dnf --assumeyes --exclude="openssl tar rsync" autoremove
57+
# Just to be sure we haven't autoremoved too much even with --exclude used.
58+
dnf --assumeyes install openssl tar rsync
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/sh -xue
2+
3+
VER=$1
4+
5+
if [ -z $VER ]; then
6+
echo "ERROR: Version is not set. Exiting..."
7+
exit 1
8+
fi
9+
10+
echo "The latest version so far is " `cat /var/lib/update/image/latest.version`
11+
12+
SWUPDSRVDIR=`dirname $0`/swupd-server
13+
14+
echo "[III] Create basic repo"
15+
$SWUPDSRVDIR/basic_creator.sh $VER
16+
echo "[III] Create full files"
17+
$SWUPDSRVDIR/swupd_make_fullfiles $VER
18+
echo "[III] Create delta pack"
19+
$SWUPDSRVDIR/pack_maker.sh $VER 2
20+
echo "[III] Create zeropack"
21+
/bin/sh -xue $SWUPDSRVDIR/zeropack_maker.sh $VER

‎swupd/fs_root/root/clr-bundles/bundles/os-core

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFbDCCA1SgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwUDELMAkGA1UEBhMCVVMx
3+
DzANBgNVBAgMBk9yZWdvbjETMBEGA1UECgwKRXZpbCBJbnRlbDEMMAoGA1UECwwD
4+
T1RDMQ0wCwYDVQQDDARSMENBMB4XDTE0MDMwNDA5MjIwOVoXDTE1MDMwNDA5MjIw
5+
OVowUDELMAkGA1UEBhMCVVMxDzANBgNVBAgMBk9yZWdvbjETMBEGA1UECgwKRXZp
6+
bCBJbnRlbDEMMAoGA1UECwwDT1RDMQ0wCwYDVQQDDARSMC0wMIICIjANBgkqhkiG
7+
9w0BAQEFAAOCAg8AMIICCgKCAgEAtGYUn2zrD22WbklBsapq+9vPk/dF1ZdnjSfT
8+
T3GLC1LOMcO5lL90lcVktkxvxHi9e1gc9C7NGVAeWnDAyHwdUo7/Sf+yrXVZIzAz
9+
8u5CMljUWWXy4oibO36V5RLuUna24Rwb62zwodoe18SpDQIp0rWPJRPbR5GkuCpv
10+
EIEvCzeqWLbHO25KTsHIUcO7HGyFlvOzh7tklxmt7A6IRIxnyjgJRt7zFhq5tUE0
11+
C62abpkT9/xFUG5ZSAbTb0btOGtvzRdINmwJmgZ1soqQ4UQ5u1qBbBz+fDT+WI4P
12+
r/XYfC7c+pHH9ZXdr+QMkYzRY+0CB07u3KeURpcU4OZ6rMvZAHyJe4uqdcviU4Wo
13+
k8j/KU0rdpQc/Izz8cQeurGXjhlZFgPKgSgLqqJtWXWtJCjsS5IQFk1wCasg6qPa
14+
REYmh5/9GUEZAmmjU4q250qTmw+f1uu50xQ8u+GsCbIMH8Yimyq6v0zka5Imzt37
15+
Te0xzotxK/XeM+sZwdmGu7pWwWlBFQOS2yd5xTaXpAyM6xxLyaQyoIJfvnzPDYdk
16+
AMpE65IZ7SGZ5jkQYWkca/0QLjLfR/H0AL+OIEh5bD62/3TEKKqzb3wkcJ1eT5JL
17+
vZOOyZ5Ep+1Pbc4RuS8YB/u5O6rp3LTUJAvjgPy7hgjbyT1ZSBcanrFFrcgcNjvw
18+
CsKyzi0CAwEAAaNQME4wHQYDVR0OBBYEFH10mWAXceHZ3qIUfbaKZ19IB7G6MB8G
19+
A1UdIwQYMBaAFGq1lqCeNyqCE/UrbKLFwEKVYVcbMAwGA1UdEwQFMAMBAf8wDQYJ
20+
KoZIhvcNAQELBQADggIBAHPhZclaoOxgXFUjtRwJbWaiMFBkJKpVZBYaU18NsUlK
21+
g+51PlnvuqVOw/USP5seSA/SMr3CyFm3D+vtaczqJX5ed4ImvLdXDrU9sl6ySjrz
22+
0gz5WYB14iRhQj6E5ph/ZC7x+AmpLCwVQp1xHhK55cCj5SpXBidcpA2S5qhAcwTB
23+
ASvwXaHOMD35TveX/bDWKqAOzBcCIJ47QtVujsnjVk/EeHXqci+NfahQQzNQd+Ew
24+
1v4+DxU2jNIOV3nZzXLzdDg7qRXDvGraImh52p44M0DscBzAfGKFoo3hPJOw95lN
25+
9nqrnS7GhG5YPLzQkddP278L8goIqqb3OzblJV+m6ZessGjHiKUEh1RCkfDbq0DA
26+
jIN/40Qr5q4uFapMb9IFmKvlAH8r2A9UkNLlJVjnbVz9iOHlqIPOmIFg62jUzKW6
27+
sKhS9XkJ+paBpsSUc38hKssA6d3fDjoF2UcKxe1ICp6dXcsYGgW0xvL3ItAH0AC3
28+
jMNKKXE75QxdaHtpwcbOylM/L3pSzwwtifsFd0+jgLNSu+vHQOGn8pxUAeUBNHwz
29+
jSCod5J3vaIh1B8w32OuY/FY/jdi46cyTnStyA+2uFBs7Zbtmca/ZdnfkThj8z85
30+
uWTDnW4zJYof/BgARP/38XCCeWaUxxxi37IF26bnDmqI2X4NgdYIPRcgI1xsXdkY
31+
-----END CERTIFICATE-----
32+
-----BEGIN CERTIFICATE-----
33+
MIIFczCCA1ugAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwVzELMAkGA1UEBhMCVVMx
34+
DzANBgNVBAgMBk9yZWdvbjETMBEGA1UECgwKRXZpbCBJbnRlbDEMMAoGA1UECwwD
35+
T1RDMRQwEgYDVQQDDAtDb21tb2RvcmVDQTAeFw0xNDAzMDQwOTIyMDdaFw0xNTAz
36+
MDQwOTIyMDdaMFAxCzAJBgNVBAYTAlVTMQ8wDQYDVQQIDAZPcmVnb24xEzARBgNV
37+
BAoMCkV2aWwgSW50ZWwxDDAKBgNVBAsMA09UQzENMAsGA1UEAwwEUjBDQTCCAiIw
38+
DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALwLycfGzU6fuEFSgDSl1cw6PuMr
39+
g9jRFnJlpb9WD3dd8mcf/eNph8CN4hYNKeeCWyPPWK9hvkVB52WMgcZlyZgWi+aM
40+
AyKs2MUXJ86PYsz4A35323kC2H4gNtUFVD/+oBECe0ifZkpuZwgH7YQPQc0S7Q83
41+
wVlAHUfzCxlrUBSsBa9RjrPURgC+NY1f/0MsCFrDRLjfOXjeH87NyeGRQs+nScLa
42+
Y3/N5Udovo/1synWMLDIHYMV48XtTxYmrUuTXZW9zYNS9Ewm5TEBht8r5qZMxT8f
43+
JGntyZ9HL/N41IKcSnVruqV/ad+gtff/kNfJwxVae7UpJBbYvms7soVgNC0UUUQu
44+
1J0GyS9oz0astOOokQK0ZyeZpEdc+h9iI1ywHXpLHXYjhKL4aN1/UnV0yJg4DKh4
45+
9zxCGg3Au2HbwZVm602Z9/zBdfY5x/rLzXGUo4Akw+PGEW9Z8BQGkcrjTP93edH6
46+
IPjRJOcXcDpm+Q6lzWrKZZvcnuxneaPX+0o6ScAL/x7jlHpcMUU7MiPtgPS1luqO
47+
UEPwjVeQQQ5r7lQX6HmtR71MUJbqdYJtFYl0+PG36s7XVHM0/9r/bqglGyP+WNmf
48+
dGJyDV2BDBbrS8OqC57sCZZ51s05HNwGU1t1vssaJVp7mbSRaQNeXTSWOiNkPvlH
49+
m+1WViRHXESUGYBzAgMBAAGjUDBOMB0GA1UdDgQWBBRqtZagnjcqghP1K2yixcBC
50+
lWFXGzAfBgNVHSMEGDAWgBQ/SlcQH9cBi+e/vui9eaVBlkNwDDAMBgNVHRMEBTAD
51+
AQH/MA0GCSqGSIb3DQEBCwUAA4ICAQB4z7ZlBKWMsWXtw1p81PEJmKsIcBxRstfH
52+
EIJzZuS5jpwSOgiUjoNXLTe9s1IxUi4u+PHJ904s5eNR2o153rdHCbKCFkI6Q4Ee
53+
txvXjNLgCwLrxL7siVQB9DwKS3CB9HYxoccW8ACI/oCv//p3iKAV8BIPeCTvGDEq
54+
KWVlHC7WjW4uPki+qtcFADoCmstDRqCs9saohF+2doVXMZIqp2SL8YJpeE72oRlP
55+
KyHhEugeEzJYpvsDUhQ4VivkZzvygf6CAtxX+n0T8WszBRjsCeD9bxXGeHn4Ur30
56+
6PqgH+G1CF+Ki5/UyqN4B2iUZM56SoQPGdZ/X2HiQW8Q0LJTTBLMwJw+mbgQV5CV
57+
klPzMekE7Cp1Rk6MjfJoeZUuZXq+9H6Pwd5FoU8nAkplhuNM4dVp281Jq0/9HTV/
58+
8+U1rh6LKSIB43oG2Y2Hh77LaJtVivdiAxATo7qR+osDgpYqSuLQ9HI2NPmtrR4V
59+
DxtZQBSuNnKQUrVcsf5a1EO8C+/rie5PMUT2p0YKsKd+PsGg4PF00T2rqmXd0rNc
60+
X08lrzhU8esOMN8L5Tj/MDuI0mqQPnbel5uvJ1oPGiVmR9RGef/g++t684nY498g
61+
74sdKuzQDZ7w3C0zpItt5Ws8Htmu2VVRuS8yPapJCAHm+EHVgciI563eb0FSD3dV
62+
+jS+wZNTbQ==
63+
-----END CERTIFICATE-----
64+
-----BEGIN CERTIFICATE-----
65+
MIIFeDCCA2CgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwVTELMAkGA1UEBhMCVVMx
66+
DzANBgNVBAgMBk9yZWdvbjESMBAGA1UEBwwJSGlsbHNib3JvMRMwEQYDVQQKDApF
67+
dmlsIEludGVsMQwwCgYDVQQLDANPVEMwHhcNMTQwMzA0MDkyMjAzWhcNMTUwMzA0
68+
MDkyMjAzWjBXMQswCQYDVQQGEwJVUzEPMA0GA1UECAwGT3JlZ29uMRMwEQYDVQQK
69+
DApFdmlsIEludGVsMQwwCgYDVQQLDANPVEMxFDASBgNVBAMMC0NvbW1vZG9yZUNB
70+
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApKLuCeei+VnFNBxazGRW
71+
Ru7L88Xh2sdP3A4NbxMzQC2DOgJmG9jmykVN54Ea8DLzrSZJHxE2LXP6DnHbs/e4
72+
gnlZR4P8bA23a/9R6iItRHJNTDMNyDZv0iuEvkyp2Q9lfUl6AIWIrmm3KhCG22cT
73+
iWh1jrkrDhPEo8IvGEzMEfpYCU0UnO4aZFQmgXioLeBHCOtXBgDZU96URR+FX1ni
74+
Pye/onr0nEVMH/nOSg3FmAKw3zeDKD4rOjLVDJ4P/qM77ylUM0DieXiHqOiIf39T
75+
Da0XHDNJgaNSVR09tdo58/eLHAquzuu1FQxkX1U/yMOFJBcnh3XvtJt3+VIs8s3A
76+
LOdU8sMKfhxfrBGdqdxX7OUK0O6tbHZd1sRFqdeqkRPdQDQBRRfk2VRhmaC7g0+o
77+
gz1zU1gBlLGaJ7wIXjGtuZCERWigc1CqIm3912TjdvnVybM2EvraA38Di0uUhBWJ
78+
QCi8GgD52aXyEoLmsfaYCdNAYsGMnG5WgC+efzV6Qzqsj5yHSmDF+TlwmtkVrD92
79+
ulCB/Qty51tfgjHykmFSwBfR1YFLlu6+QzN7HX8uqbaNe86f2G5ak+S9kE9RCbg1
80+
Ndu5iN3rqZPad3bbEks7WoCbt2+xbDUwYOahlka54uyNgCX9Mnrm/Ufm0NePoURv
81+
7mLULIQDnzIJs1P+hsPhY0sCAwEAAaNQME4wHQYDVR0OBBYEFD9KVxAf1wGL57++
82+
6L15pUGWQ3AMMB8GA1UdIwQYMBaAFDYFcnyPhF1xR8pJ0DaoJDloOVMfMAwGA1Ud
83+
EwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAE7fjyh3YHHl9WyqHwi7JjhrXdqE
84+
fDix9Q8MbVAUqcUu40sOuCz4aTKJHzAmGr8PhAjW8oTvPBEIVNAj5uHjmNVxIrdm
85+
/GCq/1hIAoBJThlaHS1v6kyBa4LKFq6qBqg7ZPB3J705GwZSastZ+8Ks96CGKpz8
86+
0iMkeYQbYogB3rxCi+f5c3adj/9LOMKvisQUZgy/IhrP8Bxht6FyDqudKIMePEJN
87+
yWBj+dWorVwqY6nryjEnDj7smD65i01b7F+VK6DoT0h6fny9Dp+7RPxqqmJ6ZUMV
88+
m3PmJzqu81Kk5MxI3RroJQvsjlPuvN+txSGEnyj2+j3gX7bZ4cHaloGvJYoJ7Qsf
89+
H8l2Et+QOVZngDe11DujlLW26kpvpe05LxN4yCtgTfX5FmrdARiOWXtL36IIueTv
90+
yaBeDCRNXBCMQFOy2enjBfF2pKdkeBpINBckhNSotr2sgGO9AXhKo3hPflQRQc0J
91+
9vzu5QGskr0TukKyvDZDhwfZbVR3fZe8K3kq1Qmic9CIFxV8EcTEmRnPOn+kGkkR
92+
4wETQrpNJ0X42+vASqU68OOK2ttFtHmn8B+YqOm6nbsPCCL9E1/YJAk3oewIwDNh
93+
0LblFDi77xEeAtbMBZ2QHuEqisjzlfZbSXL4ODHXbMwIf1how5CV4XsJqW5SFZ4b
94+
PzdL7jODD20ER5P1
95+
-----END CERTIFICATE-----
96+
-----BEGIN CERTIFICATE-----
97+
MIIFfTCCA2WgAwIBAgIJAOyj3Hsl4pJDMA0GCSqGSIb3DQEBBQUAMFUxCzAJBgNV
98+
BAYTAlVTMQ8wDQYDVQQIDAZPcmVnb24xEjAQBgNVBAcMCUhpbGxzYm9ybzETMBEG
99+
A1UECgwKRXZpbCBJbnRlbDEMMAoGA1UECwwDT1RDMB4XDTE0MDMwNDA5MjIwMVoX
100+
DTI0MDMwMTA5MjIwMVowVTELMAkGA1UEBhMCVVMxDzANBgNVBAgMBk9yZWdvbjES
101+
MBAGA1UEBwwJSGlsbHNib3JvMRMwEQYDVQQKDApFdmlsIEludGVsMQwwCgYDVQQL
102+
DANPVEMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/x0Di5j14AJa/
103+
uEEjUjq/m4vyvYJVQEf/SC3LdhG8o9H7pdf9Z+QS7C7XnvQAmguM7MUoaXwhUsb0
104+
kEGQd6qk0MK16P1j4IwpuHudbNLuu2PyRnJKC2DCGCFpZi/rxpSsjsISJdTW1CJn
105+
+fZm/vG9VrIPpmkFKl/H0lUx4WTF2JcSpGzQbE0XblJq8i6YBSzjTKfWeVuj1cDE
106+
48L6u4Gkhuh/BIT0x9RTnxqGNykbxoQ8WuGIHH+fTH4N921kVJ60rNG4Vtq3SC59
107+
35v8UW1mvxWGbPXx+lW3ZUyZ1u2MmJ85+lH/0+IEbIVpypaKrMkEWfrHezdvxAvY
108+
pgMD09H/nBy9NxAIjpXhSN4/coDHClMKN+NWAanKKbqBYVf67SF9XhKqtCU2qubd
109+
JGH4nWtY2hOk7+MbOUxIJFiP5xaaqRloY2oZi7H+3G83hwzjPp16imPD03F5Vqn+
110+
CB96Yo2HtGk0QgN9RhP6q+IPk7cSxH6hU2dQgsoTGjjavjCsFFgiohtQiCVYxNbu
111+
UE1BPTELdu+P1A3HjhBCuy3Klf/tcYCnfdgguus63N5YO+3Q8yARBAhPhnW++JUT
112+
4vwVeR3xlHsTXXUQFLwQesoTR+zeKsUdKNIyvMDGML/rcSTO+m2ArHBeB6Xzc+fL
113+
csecGg/9hMqey5/5TMdL75y3Xjrx4wIDAQABo1AwTjAdBgNVHQ4EFgQUNgVyfI+E
114+
XXFHyknQNqgkOWg5Ux8wHwYDVR0jBBgwFoAUNgVyfI+EXXFHyknQNqgkOWg5Ux8w
115+
DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAgEAvuaEpOYXFLJLXlWPVWjM
116+
ZQBHk0rtOCV2DM/Bs9b7OikyaWn0TiGKy+99B3UMdcObmfwuo632i+JLqGNFEvxh
117+
Bi/+4AkiCADSJjq7NJ7RjmNdl4V9Dzp1xptJZFYY/aU6QAS1/exp+m6nNEP+fcWc
118+
cAV0a8F2qudtQRaSA1UlyrlSvEpdgs0UYHAS38OMZ4TO1argHnC3MuUvDWeCyYPn
119+
oQw0Tr0lQrGHq5iiY6Dah7ygdprMCymlZgX/inFrGy96FenVKfLgqMaKreBXZ0XQ
120+
umXBU1hdzAvZKB1pjcFfKw4j1Szjm+kg/FRbm8ZbVxv6G2H78trXuxtXD+COu9gq
121+
wC20dwTLJcdwMx6lFoc+jil2Y0b6rSwB2f4sTuhr/pWN0CL73e/Vg26dgoIos4J3
122+
N3f1gZqgUu8ngRHL20FyP3txlM3K0VfYHubFcgMR6pw0aaULoQJluWZHGgsZDAnZ
123+
r8YNT5CmfH9FZ0WlVKmcS2JvMbZm+EBUC8By7SFo/Aq7mSLRrN/WAm73u/KdnQAd
124+
tJavcYscZwUXlTwf9/hUy5mdZwmt36bVYqHrBJ+F6aP+iDQ8xzBQ7NXutdRC+XOG
125+
T2yTi5fXw5Is6TVPEfSwxxJakup4o8oxd9SpBPhfu4b2dsACFlz8noZDZOdZoOfQ
126+
RSzL/0gYlGbdEOhAoKTb68I=
127+
-----END CERTIFICATE-----
+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFfTCCA2WgAwIBAgIJAOyj3Hsl4pJDMA0GCSqGSIb3DQEBBQUAMFUxCzAJBgNV
3+
BAYTAlVTMQ8wDQYDVQQIDAZPcmVnb24xEjAQBgNVBAcMCUhpbGxzYm9ybzETMBEG
4+
A1UECgwKRXZpbCBJbnRlbDEMMAoGA1UECwwDT1RDMB4XDTE0MDMwNDA5MjIwMVoX
5+
DTI0MDMwMTA5MjIwMVowVTELMAkGA1UEBhMCVVMxDzANBgNVBAgMBk9yZWdvbjES
6+
MBAGA1UEBwwJSGlsbHNib3JvMRMwEQYDVQQKDApFdmlsIEludGVsMQwwCgYDVQQL
7+
DANPVEMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/x0Di5j14AJa/
8+
uEEjUjq/m4vyvYJVQEf/SC3LdhG8o9H7pdf9Z+QS7C7XnvQAmguM7MUoaXwhUsb0
9+
kEGQd6qk0MK16P1j4IwpuHudbNLuu2PyRnJKC2DCGCFpZi/rxpSsjsISJdTW1CJn
10+
+fZm/vG9VrIPpmkFKl/H0lUx4WTF2JcSpGzQbE0XblJq8i6YBSzjTKfWeVuj1cDE
11+
48L6u4Gkhuh/BIT0x9RTnxqGNykbxoQ8WuGIHH+fTH4N921kVJ60rNG4Vtq3SC59
12+
35v8UW1mvxWGbPXx+lW3ZUyZ1u2MmJ85+lH/0+IEbIVpypaKrMkEWfrHezdvxAvY
13+
pgMD09H/nBy9NxAIjpXhSN4/coDHClMKN+NWAanKKbqBYVf67SF9XhKqtCU2qubd
14+
JGH4nWtY2hOk7+MbOUxIJFiP5xaaqRloY2oZi7H+3G83hwzjPp16imPD03F5Vqn+
15+
CB96Yo2HtGk0QgN9RhP6q+IPk7cSxH6hU2dQgsoTGjjavjCsFFgiohtQiCVYxNbu
16+
UE1BPTELdu+P1A3HjhBCuy3Klf/tcYCnfdgguus63N5YO+3Q8yARBAhPhnW++JUT
17+
4vwVeR3xlHsTXXUQFLwQesoTR+zeKsUdKNIyvMDGML/rcSTO+m2ArHBeB6Xzc+fL
18+
csecGg/9hMqey5/5TMdL75y3Xjrx4wIDAQABo1AwTjAdBgNVHQ4EFgQUNgVyfI+E
19+
XXFHyknQNqgkOWg5Ux8wHwYDVR0jBBgwFoAUNgVyfI+EXXFHyknQNqgkOWg5Ux8w
20+
DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAgEAvuaEpOYXFLJLXlWPVWjM
21+
ZQBHk0rtOCV2DM/Bs9b7OikyaWn0TiGKy+99B3UMdcObmfwuo632i+JLqGNFEvxh
22+
Bi/+4AkiCADSJjq7NJ7RjmNdl4V9Dzp1xptJZFYY/aU6QAS1/exp+m6nNEP+fcWc
23+
cAV0a8F2qudtQRaSA1UlyrlSvEpdgs0UYHAS38OMZ4TO1argHnC3MuUvDWeCyYPn
24+
oQw0Tr0lQrGHq5iiY6Dah7ygdprMCymlZgX/inFrGy96FenVKfLgqMaKreBXZ0XQ
25+
umXBU1hdzAvZKB1pjcFfKw4j1Szjm+kg/FRbm8ZbVxv6G2H78trXuxtXD+COu9gq
26+
wC20dwTLJcdwMx6lFoc+jil2Y0b6rSwB2f4sTuhr/pWN0CL73e/Vg26dgoIos4J3
27+
N3f1gZqgUu8ngRHL20FyP3txlM3K0VfYHubFcgMR6pw0aaULoQJluWZHGgsZDAnZ
28+
r8YNT5CmfH9FZ0WlVKmcS2JvMbZm+EBUC8By7SFo/Aq7mSLRrN/WAm73u/KdnQAd
29+
tJavcYscZwUXlTwf9/hUy5mdZwmt36bVYqHrBJ+F6aP+iDQ8xzBQ7NXutdRC+XOG
30+
T2yTi5fXw5Is6TVPEfSwxxJakup4o8oxd9SpBPhfu4b2dsACFlz8noZDZOdZoOfQ
31+
RSzL/0gYlGbdEOhAoKTb68I=
32+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFbDCCA1SgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwUDELMAkGA1UEBhMCVVMx
3+
DzANBgNVBAgMBk9yZWdvbjETMBEGA1UECgwKRXZpbCBJbnRlbDEMMAoGA1UECwwD
4+
T1RDMQ0wCwYDVQQDDARSMENBMB4XDTE0MDMwNDA5MjIwOVoXDTE1MDMwNDA5MjIw
5+
OVowUDELMAkGA1UEBhMCVVMxDzANBgNVBAgMBk9yZWdvbjETMBEGA1UECgwKRXZp
6+
bCBJbnRlbDEMMAoGA1UECwwDT1RDMQ0wCwYDVQQDDARSMC0wMIICIjANBgkqhkiG
7+
9w0BAQEFAAOCAg8AMIICCgKCAgEAtGYUn2zrD22WbklBsapq+9vPk/dF1ZdnjSfT
8+
T3GLC1LOMcO5lL90lcVktkxvxHi9e1gc9C7NGVAeWnDAyHwdUo7/Sf+yrXVZIzAz
9+
8u5CMljUWWXy4oibO36V5RLuUna24Rwb62zwodoe18SpDQIp0rWPJRPbR5GkuCpv
10+
EIEvCzeqWLbHO25KTsHIUcO7HGyFlvOzh7tklxmt7A6IRIxnyjgJRt7zFhq5tUE0
11+
C62abpkT9/xFUG5ZSAbTb0btOGtvzRdINmwJmgZ1soqQ4UQ5u1qBbBz+fDT+WI4P
12+
r/XYfC7c+pHH9ZXdr+QMkYzRY+0CB07u3KeURpcU4OZ6rMvZAHyJe4uqdcviU4Wo
13+
k8j/KU0rdpQc/Izz8cQeurGXjhlZFgPKgSgLqqJtWXWtJCjsS5IQFk1wCasg6qPa
14+
REYmh5/9GUEZAmmjU4q250qTmw+f1uu50xQ8u+GsCbIMH8Yimyq6v0zka5Imzt37
15+
Te0xzotxK/XeM+sZwdmGu7pWwWlBFQOS2yd5xTaXpAyM6xxLyaQyoIJfvnzPDYdk
16+
AMpE65IZ7SGZ5jkQYWkca/0QLjLfR/H0AL+OIEh5bD62/3TEKKqzb3wkcJ1eT5JL
17+
vZOOyZ5Ep+1Pbc4RuS8YB/u5O6rp3LTUJAvjgPy7hgjbyT1ZSBcanrFFrcgcNjvw
18+
CsKyzi0CAwEAAaNQME4wHQYDVR0OBBYEFH10mWAXceHZ3qIUfbaKZ19IB7G6MB8G
19+
A1UdIwQYMBaAFGq1lqCeNyqCE/UrbKLFwEKVYVcbMAwGA1UdEwQFMAMBAf8wDQYJ
20+
KoZIhvcNAQELBQADggIBAHPhZclaoOxgXFUjtRwJbWaiMFBkJKpVZBYaU18NsUlK
21+
g+51PlnvuqVOw/USP5seSA/SMr3CyFm3D+vtaczqJX5ed4ImvLdXDrU9sl6ySjrz
22+
0gz5WYB14iRhQj6E5ph/ZC7x+AmpLCwVQp1xHhK55cCj5SpXBidcpA2S5qhAcwTB
23+
ASvwXaHOMD35TveX/bDWKqAOzBcCIJ47QtVujsnjVk/EeHXqci+NfahQQzNQd+Ew
24+
1v4+DxU2jNIOV3nZzXLzdDg7qRXDvGraImh52p44M0DscBzAfGKFoo3hPJOw95lN
25+
9nqrnS7GhG5YPLzQkddP278L8goIqqb3OzblJV+m6ZessGjHiKUEh1RCkfDbq0DA
26+
jIN/40Qr5q4uFapMb9IFmKvlAH8r2A9UkNLlJVjnbVz9iOHlqIPOmIFg62jUzKW6
27+
sKhS9XkJ+paBpsSUc38hKssA6d3fDjoF2UcKxe1ICp6dXcsYGgW0xvL3ItAH0AC3
28+
jMNKKXE75QxdaHtpwcbOylM/L3pSzwwtifsFd0+jgLNSu+vHQOGn8pxUAeUBNHwz
29+
jSCod5J3vaIh1B8w32OuY/FY/jdi46cyTnStyA+2uFBs7Zbtmca/ZdnfkThj8z85
30+
uWTDnW4zJYof/BgARP/38XCCeWaUxxxi37IF26bnDmqI2X4NgdYIPRcgI1xsXdkY
31+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
-----BEGIN RSA PRIVATE KEY-----
2+
Proc-Type: 4,ENCRYPTED
3+
DEK-Info: AES-256-CBC,01E0DEB3F7ED1A3E5AC219BA652F0B22
4+
5+
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
54+
-----END RSA PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
correct horse battery staple

0 commit comments

Comments
 (0)
This repository has been archived.