aboutsummaryrefslogtreecommitdiffstats
path: root/certs
diff options
context:
space:
mode:
Diffstat (limited to 'certs')
-rw-r--r--certs/developer.cert.pem33
-rw-r--r--certs/developer.key.pem52
-rwxr-xr-xcerts/gen-certs.sh79
-rw-r--r--certs/partner.cert.pem33
-rw-r--r--certs/partner.key.pem52
-rw-r--r--certs/platform.cert.pem33
-rw-r--r--certs/platform.key.pem52
-rw-r--r--certs/public.cert.pem33
-rw-r--r--certs/public.key.pem52
-rw-r--r--certs/root.cert.pem33
-rw-r--r--certs/root.key.pem52
11 files changed, 504 insertions, 0 deletions
diff --git a/certs/developer.cert.pem b/certs/developer.cert.pem
new file mode 100644
index 0000000..445acda
--- /dev/null
+++ b/certs/developer.cert.pem
@@ -0,0 +1,33 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIFkjCCA3qgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJGUjER
+MA8GA1UECAwIQnJpdHRhbnkxDzANBgNVBAcMBlZhbm5lczEQMA4GA1UECgwHSW9U
+LmJ6aDEZMBcGA1UEAwwQUm9vdCBjZXJ0aWZpY2F0ZTAeFw0xNTExMDkxMjU1NDda
+Fw0yNTExMDkxMjU1NDdaMFwxCzAJBgNVBAYTAkZSMREwDwYDVQQIDAhCcml0dGFu
+eTEPMA0GA1UEBwwGVmFubmVzMRAwDgYDVQQKDAdJb1QuYnpoMRcwFQYDVQQDDA5S
+b290IGRldmVsb3BlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM3m
+p4vZi/LdLa2qkikJBcKbIsDK8XT4mXVhKRSPmOMvppMEBMnBg1nZR+daptVIIGq1
+O57i2D+1xCdqDSIfFcUWFoWjKYjZ28UNMep4z8QSqqCUI8LqpvHtWzgt7vBH50N7
+L2UDWOP3wE5c14b9pGfBjQtjRQ9C7nBFwckSq8g/ezsDPbCsFfAfUJhzYJ8z7u1L
+vJtw+Yht43uarGx/t8zYbCZttF6JPLhMJwCszXeJXQGQbTpcC8g2ae8gdtb56c8j
+bMg3X/TAQEishorYrceeSdsbgoHrbPyK0WGSMVyXsaiYMe6EvV3+aC4cgsF+EBdu
+Cu5HRqq83DQV5IkYKoYJcQVot2a1nsFG9RZ5OsyKUNwEVjMQGDOqhSav/InVJEcb
+KgHtCJlqeVLC63vVzff8x7DxK7SpBojqH/KF22V91Zj1g5W6AkHAYuQo8HwzI5Ts
+e8AX0Qr/KAz4oQY90CDtiMsImz2DjMNPJQFnwgYO+0+BXxExvoeIgg/+XgHj6sxT
+PKiVBJyybh8RLlCoa7x1emQwGoXWU2+Z3z6BI6puV3KV1ZEJVc0wcPkxf1nJ+WUy
+zcqXIwiGgzATcvjqTLagRaeAXR5C57eMGRI/3Y6489wEWMD43DNx7I/8OJ2r3IiW
+3qurCh7beqXiI4ep22QsjBzfz2PB3OpJB/nu41ZtAgMBAAGjXTBbMAwGA1UdEwQF
+MAMBAf8wCwYDVR0PBAQDAgKEMB0GA1UdDgQWBBSrv/IpNDZqsNSZ8XmNR1W9YxY4
+PDAfBgNVHSMEGDAWgBR5jMvcF0Q8bPDoNWafG4rcGXFizDANBgkqhkiG9w0BAQsF
+AAOCAgEAWrtbQRwM9QGacT2xkSRwkm9UXzWjfqiHwsjXyuCO2VSG4do1gtFCMNho
+4C705XhLvy51HmRXlyBW01NpSdaGZhUrH+duyfzpkyFPDUhWZq2HHeT5gx2aXBxN
+HCoYTT9G+jL8ONozZEqok6EXegVFMGLoB95fmrS9u3D4msoNCXuUj8KiMGaNus4g
+Kd4A31BNMKBXHt4zqXWM9Dzc8Djfz0ZYjfOTJdb2ygmpUYQPySzngdyHOLZ0zeoO
+nNWVoYE1PJ9hr5HJBVAUFEEhW56zFdwpSUxXbGqVs5B6pihvLzVKZiRYB4libDZw
++Br3MK7V6Gq6Uh95DdNGBaSGoqvvG6uKogtF/lQsLgL6WeatVDYQIEu3wPH4wJXk
+JUfb0kglwe3S/9mo4qHQahffKZS/wdd3BpMwOc++lwUriObGy1YUpGki0m85FSxo
+/yLhqOmn6C0ckx2vYreA06CwanISotS+BQ4AqCxcxgtXOraRJL1sq4J6yshJqi39
+BZyU6VB7aeNIDHKI1phmjBZSFYFfPocPR7pckbKJIJAUufO0Kdl1Bx6LzBfDtaL8
+UZcKx6c8s6AbDUC1uGVtCqNQ6rUYsG+MB2y7cpQV2hem1rbx9Pat+7O/rMPpusl3
+PVRdwfHA7czVLIjEObrsZyI7ussZ1/a5pWlP9x50auESxk0c4SowEAwOUm9vdCBk
+ZXZlbG9wZXI=
+-----END TRUSTED CERTIFICATE-----
diff --git a/certs/developer.key.pem b/certs/developer.key.pem
new file mode 100644
index 0000000..0393301
--- /dev/null
+++ b/certs/developer.key.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+2wQCVq5babjCVJnpIaXjdsubN5Ut
+-----END PRIVATE KEY-----
diff --git a/certs/gen-certs.sh b/certs/gen-certs.sh
new file mode 100755
index 0000000..b432ce6
--- /dev/null
+++ b/certs/gen-certs.sh
@@ -0,0 +1,79 @@
+#!/bin/sh
+#
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved. This file is offered as-is,
+# without any warranty.
+
+ORG="/C=FR/ST=Brittany/L=Vannes/O=IoT.bzh"
+
+cat > extensions << EOC
+[root]
+basicConstraints=CA:TRUE
+keyUsage=keyCertSign
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid
+[derivate]
+basicConstraints=CA:TRUE
+keyUsage=keyCertSign,digitalSignature
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid
+EOC
+
+keyof() { echo -n "$1.key.pem"; }
+certof() { echo -n "$1.cert.pem"; }
+
+generate() {
+
+local s="$1" n="$2" cn="$3" sig="$4"
+local key="$(keyof "$n")" cert="$(certof "$n")"
+
+if [ ! -f "$key" ]
+then
+ echo
+ echo "generation of the $n key"
+ openssl genpkey \
+ -algorithm RSA -pkeyopt rsa_keygen_bits:4096 \
+ -outform PEM \
+ -out "$key"
+fi
+
+if [ ! -f "$cert" -o "$key" -nt "$cert" ]
+then
+ echo
+ echo "generation of the $n certificate"
+ openssl req -new \
+ -key "$key" \
+ -subj "$ORG/CN=$cn" |
+ openssl x509 -req \
+ -days 3653 \
+ -sha256 \
+ -extfile extensions \
+ -trustout \
+ $sig \
+ -set_serial $s \
+ -setalias "$cn" \
+ -out "$cert"
+fi
+
+}
+
+
+genroot() {
+ local s="$1" n="$2" cn="$3"
+ generate "$s" "$n" "$cn" "-signkey $(keyof "$n") -extensions root"
+}
+
+derivate() {
+ local s="$1" n="$2" cn="$3" i="$4"
+ generate "$s" "$n" "$cn" "-CA $(certof "$i") -CAkey $(keyof "$i") -extensions derivate"
+}
+
+
+genroot 1 root "Root certificate"
+derivate 2 developer "Root developer" root
+derivate 3 platform "Root platform" root
+derivate 4 partner "Root partner" root
+derivate 5 public "Root public" root
+
+rm extensions
diff --git a/certs/partner.cert.pem b/certs/partner.cert.pem
new file mode 100644
index 0000000..5911db7
--- /dev/null
+++ b/certs/partner.cert.pem
@@ -0,0 +1,33 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIFkDCCA3igAwIBAgIBBDANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJGUjER
+MA8GA1UECAwIQnJpdHRhbnkxDzANBgNVBAcMBlZhbm5lczEQMA4GA1UECgwHSW9U
+LmJ6aDEZMBcGA1UEAwwQUm9vdCBjZXJ0aWZpY2F0ZTAeFw0xNTExMDkxMjU1NDda
+Fw0yNTExMDkxMjU1NDdaMFoxCzAJBgNVBAYTAkZSMREwDwYDVQQIDAhCcml0dGFu
+eTEPMA0GA1UEBwwGVmFubmVzMRAwDgYDVQQKDAdJb1QuYnpoMRUwEwYDVQQDDAxS
+b290IHBhcnRuZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM7fxE
+oniPPpCikFoM3tNlTwtz5mZiX9UEoyHBkgPF3Rf9IRXPMJ3+3My6Ji5ePuq+cF8w
+bGmQflq9vc7LnBGGuplGjxEzQGKEqvV1IYLHI9wZGHBEnrMVpBTexLlpr5HLtUjt
+BgLpjx0V4ZIXGzdkTpGogObxSaPvCPmKT6voIg1MRhNaLgW0jvJ6LPFuiviKjS7H
+kJTdOWmi6nvCLHQfzuNfAvfYqi3zkvjKFD6G8pjD+QUfUwdcvECLPYBDQgHvPKT5
+5TPLeo/ZuRandfRNjjvyynXclBbKebpNteoaejI95Mu4w0RpFpBXeuOyPES5D16D
+HK/bZOv6wwsLkdMmdI4mis9W9AbeCRBwNlVQyoGEgxr7gOC/xD6wIH0IryPgBU7p
+TioKmEoIoE2p/SY2J7v76KUhXIBlE/8k9g9VR6oAcuPWdTC4OShPxLKAuMOWnwHI
+UetIuoGtc6aT2u1ztoZpDWnDHfShN2gRx5/XJtcrh6VZxWWOALCtLdOluhHXfxsI
+LmDjPJfPIBCqqLch04GQvq4K8GVgVYNmqInzOAiF+nX5LcGn/qVH/kEgvJWpsWmA
+NJWtlrvsNL/9K+qj0qPEqRENyAeFSQWZitTldjJinHsFP7ZNQPt8jaDs58XmjPr4
+Oz0B7vYO9O7idOYnl1IaxHlVNCFDNTXol5Vd5wIDAQABo10wWzAMBgNVHRMEBTAD
+AQH/MAsGA1UdDwQEAwIChDAdBgNVHQ4EFgQUWjJrDJ22ZOMGVEmNmpIaJDw1kQcw
+HwYDVR0jBBgwFoAUeYzL3BdEPGzw6DVmnxuK3BlxYswwDQYJKoZIhvcNAQELBQAD
+ggIBAKZN5idSof+jD4JeVm/M/snXk7nLzqpqaPb/Q3xuus+pv69UrR8MKHBdz5Ag
+tlIpU1Hk9Fhgis3suQr3SNJIN/UoLv1Uw6opj/pazIGYFrP9jj6dj/6DEaiGG/oi
+4/efV2rjBd+2tFQWjz2aG3mxBl/lWKXz+sX+pveYMzd5aMpGvPaI6mdPyCHmPQ3q
+uOOdDwMT7gIF+bVGWcvc6TG5qFX1C2HTa90XYeddEyD+FOpye93wKkptKtdgXXA+
+TpUghz9s0l2BSsVKEyLoFu/4ATJZBxk7qwqgRfuLZAzizXuIBQ8/KbW9k7crkAqw
+oEGeYj2yUzmHYOrXwqG1nt7xryl5U626+JLGLBja2LCrI47ZBGOlgK4xIag3LBI6
+qBry/0GEJUTy8RUG27mfnp5ypiHe/J8+b/HFyXJeyTQaaeXPpPuRx0htrskwKsKW
+6VBGCF7O8Hlg18scUJ6JOKrScNbsYfmGfgZB7kZ8wX6FLaUg1hAdptK1LjbixJ+1
+kijVE0ZpCSqLSjBfqHAKi//xWPTkcuO4+DrvhJ3iBOLu0fp5L5X0UvWT1JrThWVq
+HlJ75IOZo/1YA7EBefDMGCho4TdVmNxy4C/+4qpfyZQhoL2kptZ0O9Xp3T6o/1Us
+LGIFk5stZTuexWa0NIRDSCXFDjDrRHKB6gRudkE3+4QqOWAmMA4MDFJvb3QgcGFy
+dG5lcg==
+-----END TRUSTED CERTIFICATE-----
diff --git a/certs/partner.key.pem b/certs/partner.key.pem
new file mode 100644
index 0000000..5a9d515
--- /dev/null
+++ b/certs/partner.key.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+vRpIvTLOmwiZts8Ygw9/HlL1APeE7bY=
+-----END PRIVATE KEY-----
diff --git a/certs/platform.cert.pem b/certs/platform.cert.pem
new file mode 100644
index 0000000..838178d
--- /dev/null
+++ b/certs/platform.cert.pem
@@ -0,0 +1,33 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIFkTCCA3mgAwIBAgIBAzANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJGUjER
+MA8GA1UECAwIQnJpdHRhbnkxDzANBgNVBAcMBlZhbm5lczEQMA4GA1UECgwHSW9U
+LmJ6aDEZMBcGA1UEAwwQUm9vdCBjZXJ0aWZpY2F0ZTAeFw0xNTExMDkxMjU1NDda
+Fw0yNTExMDkxMjU1NDdaMFsxCzAJBgNVBAYTAkZSMREwDwYDVQQIDAhCcml0dGFu
+eTEPMA0GA1UEBwwGVmFubmVzMRAwDgYDVQQKDAdJb1QuYnpoMRYwFAYDVQQDDA1S
+b290IHBsYXRmb3JtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5Ykp
+3b9gQlP+1Jdaoxu4QTmycP8f+GsWq6o+lZy9GCoH5ECxybYpbrjn5jIh2Fq8Mt6m
+HSwWi5mO9jALhbL63zYbHD4g4FjaoqwdyN3II/ECROx/+PCXxK9Lvlk2cTvlMjEu
+uD3hKl3fHw4Xi+B9fVkvtrbiirav6dfiibdsTQE2m+w6QuAlTKsF77btVvJlicpl
+yVoJkjL/ct2A+nsP4o8j7ZPz49uaQuSq7UnwzDKcvVgB11hIm0OsCMpA3omGOOro
+ipe675Yq5xVG6G3hgnHb9wRaK3hOPRSyvN5GeS2GL/rOc4I1JdReKT1U83mwUIm8
+tHNNp6tmRUQAsThXvd7016EIQbonmTHmdAEiA3uErQkNnTjGTBF4hCaDaHaj/bag
+jSkA4yvzzvV+pZjPadjAHNVtpuGQdxQ4jciSZq3lZiLq8v7nUxCi0LO5E5VB+QII
+uIABJIA+xNMEKYs307imOx2ex7JGvqgpLmfhutLwG1GiJuWRYUoKyUjHH4+RrmYf
+HU9NhhjcNQGBo8LO4WjfMbXKqgabKMM+PHyUN+5GFKSMLwF+pGECnxV+1St+zEc5
+JmI/lPkCg30ghmRL0gpLXZywDXSVzmZXcfiUIem08Z8RVTRwBySUsqYTZCBhLbRz
+w3garE+u7DUab7obnWYGMqK95jJe7966K3H3r5MCAwEAAaNdMFswDAYDVR0TBAUw
+AwEB/zALBgNVHQ8EBAMCAoQwHQYDVR0OBBYEFJUmGLv09YZRimCCdJoV1kJfW1RI
+MB8GA1UdIwQYMBaAFHmMy9wXRDxs8Og1Zp8bitwZcWLMMA0GCSqGSIb3DQEBCwUA
+A4ICAQAQpzTy7Qi4tyUpKcXug8GTmCAVytbRmY/2cmYILApRyPg2Sk7U9zrjMS0J
+iDN8WnwW3C0d5FLyqkynNxMto+Kd4jPlvPFEA2/zDek4QFfeQzB2Ddg6OdM2S2u2
+WBRMxTCvYTnD/uFEHxhxAKWbjEb25xoPRgS3kkxlkqfYaw1kOqtmMxAng62CVsvh
+3194xlkT5toD6PWcYR9woWXiL/Bb4iMWV71+bO8YMixb/4kFRkX5StncjLAA6IwK
+LXXk4Q0fxLanZwNpjIrOFyzyQzpMrUTOZ64Ju7x8K7cYm1taaLp6aY9aMlYp0Zo2
+pYkY0k3MLkDJwHlSz0k3ZiFUPlSXcSItvsIUS8TTrb5qz9gr6i3JO6IBj/hwA2O3
+4PFCWYsYHV5QF4vlXWXHJ8XC3suQuixuFou/W8ngsgQH90IiUEHYlsoPBbta9xdF
+cM74c9sCivjoVng9swr4nToSyw6MWZVNSIvyn+RW53FNOv5AKJiDJ0xbCCwUlgwg
+1Z35Epj44r46wYCh6IepQHf0erjAF6n929mLOEms8r7ph0MaaQ3joMOpPU2iDb9i
+usY4EyA4di3e39PKvdLbWBP2vMhbZSy8uW4sCn3PRkVQFXStXNSx5JpuOMY+cLGo
+yrMV5Tt9OIMffTvmdb/NVnTAS0uOTW+jXxPS6i0UeqdzN4Th7jAPDA1Sb290IHBs
+YXRmb3Jt
+-----END TRUSTED CERTIFICATE-----
diff --git a/certs/platform.key.pem b/certs/platform.key.pem
new file mode 100644
index 0000000..6445e2d
--- /dev/null
+++ b/certs/platform.key.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+dScfb3I0zsUNIYhmwaqS494AwZPah6Zh
+-----END PRIVATE KEY-----
diff --git a/certs/public.cert.pem b/certs/public.cert.pem
new file mode 100644
index 0000000..12bdea8
--- /dev/null
+++ b/certs/public.cert.pem
@@ -0,0 +1,33 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIFjzCCA3egAwIBAgIBBTANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJGUjER
+MA8GA1UECAwIQnJpdHRhbnkxDzANBgNVBAcMBlZhbm5lczEQMA4GA1UECgwHSW9U
+LmJ6aDEZMBcGA1UEAwwQUm9vdCBjZXJ0aWZpY2F0ZTAeFw0xNTExMDkxMjU1NDda
+Fw0yNTExMDkxMjU1NDdaMFkxCzAJBgNVBAYTAkZSMREwDwYDVQQIDAhCcml0dGFu
+eTEPMA0GA1UEBwwGVmFubmVzMRAwDgYDVQQKDAdJb1QuYnpoMRQwEgYDVQQDDAtS
+b290IHB1YmxpYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKZCZFjk
+w51t5FbDXMCRagoTMKF84945jcypfFl1uR9nracYINj3aNxmCqb3ImxQnQU7kzlA
+deIIrUVEbt0AO3TpO9nCViUXCPwcT805nKc5pmLvSSkCNu+GSKx/y/naACCZRnkB
+PlqdV9iwR9dbK8oByLLjzwdDQEGzRx1cyFxa17oRgcxo/EoQMAMiIRGwnD9yRPkY
+34tJyaqyY3k9wAlhre3J/UHMKIkgUIaU4//R6/6JTG5oegsqZxGoRaCTEMPy0OY6
+yzQVixZKYXuJt+XjpJsxgd/SJKJ/9NCnPG/Arfu+zuiFYl7jqDU9lABJ+XnJkIBu
+FoRCDbqzk6dURb61M4WRw9wgBHXzUWlGGfkP5ZvD6+FLdwq1eE0KkwCLcWFpxU8a
+QzRjZ6a7OB5xVorJ2mt75BivsF5ggrQGa6TM3+OM/OAGR274lTVdsbdtezNLbQxA
+OirkTHOUchjsf8r32kIIHoarnrbPh+20Fno2Vbr+AXRWi8w8DIMVD8I81sX/5oiC
+mIvtkL0SYumb6t9BB/Q92w8WBWYqvsKaPymloJy+4j7TXb/W05ubVqWDUVKrj1uf
+criqG+3Gqndojt2qGowyc/aul4LZhCGI0aUfW5PRJFIIVf1GbVxPRP49whst5O+f
+lhFJziHWqHmjlXxL4yC1M+qta4xAIPYCe76HAgMBAAGjXTBbMAwGA1UdEwQFMAMB
+Af8wCwYDVR0PBAQDAgKEMB0GA1UdDgQWBBQpgcN4yic4+ikYIksXFyfHMjLDPzAf
+BgNVHSMEGDAWgBR5jMvcF0Q8bPDoNWafG4rcGXFizDANBgkqhkiG9w0BAQsFAAOC
+AgEApJptFh2hdqqpi1HA5Pe/nbNFvvBSUk1ST7OEnddOvcQyJiiP2SnRFuovRZsR
+3VsDgQtzYqsY0HE7bnIT2E9w+49AXLJDRJKBDHi7p3tpFMVzppdwWAbW4I+CFQaD
+/tztqBH1MstgDfZSz5/eXDoBDwb0Drc/mXnfqB9LinAzlua6NZ2qHRTvE6GT4FW8
+Zp0nRfiXKxL9ADcj/+GUE6+/JTOrsLJ1/RhTeRvPdlUzvSktcYsYJu+VOMTpwMZf
+9WC+sfL7oiN0r0LrjD1+bMeOMQlKwFigIFGh2VTkYpw7eIX1o1OGL8ZCy9VnOvBy
+rkNBbI5xaW5TFR70hXtwhJM7jqGx1cbCt/zpZj4qqOkUNNIzkXrootLWzSFpfzl2
+kvYtKPl+t7Q3l9Uqj1b7+hOmZvNMvgrqDNoVtq7GX6nvx/w3dt99GEWYZUFB0UKk
+mQOkqkV8HLdp/iD2w1t9hVU0qzF0SF/CyM1CPcjQDVMjNGgYdnAjoTDe3yQkKk2t
+jWKOr3BtoGsULSUQeJr/BbTL3vjNS6y4DQNEzIGuKSALMaQYz5NUYL6/sj5XeaTP
+tPZfBCattnFpuorTRxMKKqjVixuqhYjfiQcdjA8l1Dy9KgY54EH9Rzim6vC/NTP1
+kigr7rToYPeyJJ7w6DlIgzWPXEu74gi8/gwzlEYkBMIb6cYwDQwLUm9vdCBwdWJs
+aWM=
+-----END TRUSTED CERTIFICATE-----
diff --git a/certs/public.key.pem b/certs/public.key.pem
new file mode 100644
index 0000000..e4b5152
--- /dev/null
+++ b/certs/public.key.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+tZLaTB3Qg+XgMWjozpD8b1zbSJMbX2U=
+-----END PRIVATE KEY-----
diff --git a/certs/root.cert.pem b/certs/root.cert.pem
new file mode 100644
index 0000000..b76294f
--- /dev/null
+++ b/certs/root.cert.pem
@@ -0,0 +1,33 @@
+-----BEGIN TRUSTED CERTIFICATE-----
+MIIFlDCCA3ygAwIBAgIBATANBgkqhkiG9w0BAQsFADBeMQswCQYDVQQGEwJGUjER
+MA8GA1UECAwIQnJpdHRhbnkxDzANBgNVBAcMBlZhbm5lczEQMA4GA1UECgwHSW9U
+LmJ6aDEZMBcGA1UEAwwQUm9vdCBjZXJ0aWZpY2F0ZTAeFw0xNTExMDkxMjU1NDda
+Fw0yNTExMDkxMjU1NDdaMF4xCzAJBgNVBAYTAkZSMREwDwYDVQQIDAhCcml0dGFu
+eTEPMA0GA1UEBwwGVmFubmVzMRAwDgYDVQQKDAdJb1QuYnpoMRkwFwYDVQQDDBBS
+b290IGNlcnRpZmljYXRlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
+rH/HL57mkfr5NsSb0ZEQ600D2w+NNxfA7n/YU2WwxXKhQQyZ1QWiGXLG7NxrZoEB
+QH8C0YMi1sWch8a3AxajOUueHCGTNCpvIvV/UL0rC7aqPjxliLrmJBv5JhDoUv01
+lG6P7NcTVWelEUc+RzPKDEWYCWVjK+t/BbR5Z/+0NlBcqwGNmI/Vfw/+hLy7Q+ff
+VPD8/5HRDVFDGezQlhuhWAi7iVMrBfwpJfLr5he+tuPdvXKnMdbA3WAIIREUrkT/
+2TbZUINxc/M/HQRec8/DOhcfw8ReluLl43s0wZVTdJiqIiLfNUX1Eu7Yr7QmX2X0
+73T3C6nNFiqZF0VqbbSmyjDUW9XCAcUC3xYCDP6ocS9rKmZQZK5NsI4t/tanDDR+
+KXuzrKp6Oo2wuvv1Z4wGaKTJ7bcqYOZzwkFOQXEajVzGioo89Jh0+m80Pah/R/L5
+O7kQGSlbYpTJPxeHazjgyozZKE3JRi1NiWHi2g5wbi/OJGh/EkWimuX5jDnF7Ksd
+EN7Lua30jgFlKXswfNLNsz20AMqjUsqwzn4V2cyNah4/a1ZuAjgRHZJuVBxYjeav
+fKE8MtZTRilo4WWzmbnpt9kmm1eP0Y3E5Y5IWLcSOKFEdIa5LAVJAhOrQCuGE30r
+3OSpV1NxEJvNeCGUZ1BECzigFYhTD8gmC+SXbQb39UcCAwEAAaNdMFswDAYDVR0T
+BAUwAwEB/zALBgNVHQ8EBAMCAgQwHQYDVR0OBBYEFHmMy9wXRDxs8Og1Zp8bitwZ
+cWLMMB8GA1UdIwQYMBaAFHmMy9wXRDxs8Og1Zp8bitwZcWLMMA0GCSqGSIb3DQEB
+CwUAA4ICAQCpcUJgAD2ktdZv2l0gsJp6PxtCi2yTqQVP0AFKXqDem4dTJ6wmAuub
+0I3IlsZlFcsGwUtjKZkJfNcsGnOD3WML/Shtp508pXM1jCtHcNZsg2nbbnMQNw24
+AxdlUK96bBC3AGfYg1OPTdDPszHrdF4BCByEvhYakyf6+IdOwAJy09pI644yoVLd
+QhdTqk4vLBwUweu4Yd6lhgGQd9ejxV2e4Gdgf2VI/K2WwLOIEiNnyKJt67o20g/x
+rjqIA6X4UpcMY9xvSewMS5MJodCsRNVLRctsqV+LXviTo/lo/DvzOVRPRo8Of8v7
+5B7a36/gqqDYIbxA2/dVojbRH+giR9hx2KLeG0af77MKZ4gdDPfCKUOXWNezcPBj
+7u7SUVFM/6411H2ybzIjoA+4cxS2u9bPDJDPlZ/q+JsoD6x1CJ4rUmNX9e5tv1bb
+eQl6Y7CZ4PPJ84vQw7YAimUjagvfRjAGXJEORwOkr4CG+J94NZTYEvbNweGHZ6Ts
+4IMpAOc7tCtZUdYyHwY6bzy3P9TcLL1VDFXn1r9NdMIv2JU2QfTdiKCThMeXCXFK
+zcCYBgG0b1ZP4FB/OocPg8+1LaGsgkAHUS+L9suaCvYlrz8yWMuXrszUfb+V+68E
+INH/Vdi+KsimdlAdeQCBTHjS32raCOW1q5EG2drwkbZ50KPjQRHj5zASDBBSb290
+IGNlcnRpZmljYXRl
+-----END TRUSTED CERTIFICATE-----
diff --git a/certs/root.key.pem b/certs/root.key.pem
new file mode 100644
index 0000000..9b7d07d
--- /dev/null
+++ b/certs/root.key.pem
@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCsf8cvnuaR+vk2
+xJvRkRDrTQPbD403F8Duf9hTZbDFcqFBDJnVBaIZcsbs3GtmgQFAfwLRgyLWxZyH
+xrcDFqM5S54cIZM0Km8i9X9QvSsLtqo+PGWIuuYkG/kmEOhS/TWUbo/s1xNVZ6UR
+Rz5HM8oMRZgJZWMr638FtHln/7Q2UFyrAY2Yj9V/D/6EvLtD599U8Pz/kdENUUMZ
+7NCWG6FYCLuJUysF/Ckl8uvmF7624929cqcx1sDdYAghERSuRP/ZNtlQg3Fz8z8d
+BF5zz8M6Fx/DxF6W4uXjezTBlVN0mKoiIt81RfUS7tivtCZfZfTvdPcLqc0WKpkX
+RWpttKbKMNRb1cIBxQLfFgIM/qhxL2sqZlBkrk2wji3+1qcMNH4pe7Osqno6jbC6
++/VnjAZopMnttypg5nPCQU5BcRqNXMaKijz0mHT6bzQ9qH9H8vk7uRAZKVtilMk/
+F4drOODKjNkoTclGLU2JYeLaDnBuL84kaH8SRaKa5fmMOcXsqx0Q3su5rfSOAWUp
+ezB80s2zPbQAyqNSyrDOfhXZzI1qHj9rVm4COBEdkm5UHFiN5q98oTwy1lNGKWjh
+ZbOZuem32SabV4/RjcTljkhYtxI4oUR0hrksBUkCE6tAK4YTfSvc5KlXU3EQm814
+IZRnUEQLOKAViFMPyCYL5JdtBvf1RwIDAQABAoICACJYmtdvgydD2oU+JmxWvxCq
+1/6xHQQANckHKZKJZ+YYieUC1kplAb6hbNxSkwvo2c/2uh/vRWuQEzexqFT0F/Hb
+jZK6WK4FWPWT/hKcZ8rARyt3KRxNYm+EJlqe+TM0+YshbITS2iWiKmrDTbItrKg+
+3yPXzSQ8kqEXKyk676302E6wU3oyAWd4TswtK/g8XepyxV05sm89Y+fwkCOjQr/d
+lUGljqZ1a9gDg1bgGXge7NLA1muFAAfUDCpRVVXRpUOhuSlf0qIsp79mVEwo7Q1O
+92MqYU8XxIBD0uBMlD5d+1oqqVjZIg/wALMTYqSSD2/yURJAb/Ze6vaIOsW3N5Is
+6T1Ccml3f9wpcFIkZexVFdBQKpOwluZcs7rarV02yn1CliXL9pjejl0RkmrSjEwD
++EPjJwjkrwSscRf+rX21q+GHr57PDPu5Dtpljw/irzwdPA6/eHEQIbBAvY8YurWE
+j0A7EMc6QJzdJUmPaQlvAauH0rln7bJkzxYdsP9/IzLmGpXAe1WyM6fd/ZM6pL/y
+EhS4UBZXPb2/kJ5X6B29kbDBnq5ycFIrLuWWe0uTFWV15Zzwn/Qxrl12MRF7jG31
+X+Smlgeqo6xOd4xTHrfDZlC2WSDw1a7QsEigzr97zZEQmlYf/zmG3gujbWBWEYld
+qCZBH0l8vVESIAcJSDSRAoIBAQDYKJpwKjjUR8OlsJesbmacDJTAc8BVB8z5Lqzr
+56uOaMMoMBg3gMQZUOm+c64xm7W7GfPciy7GrZ60zUkvNnhnk5XEYeDSyb1SnDrA
+WRf2dqj+lC8fZ7ftwf8EsHNnt/soo3wVYbfEWZJtQDe8SuyNQ6evKYTupMcbsRKr
+nafLBYX5bSHVjXECW2V4hAMODRY7/pxkPU2BUuATje4hrsCj633Vye9k70TACyPK
+7HSd6DJritMoNqn3ozs3774mKAeOyOt3RA8Jji5wcsi9vrJm0oZuTNp8NJqIvW6h
+2N3JzfNMO2JOMplwIzTCf7cGA8OKWi87m15K9oM1P4XHrCW/AoIBAQDMSxyv7u5u
+ysTvfpu9TW32TVAF0UQjE1VbUUtRNcHBsUQ/ZayJzXFAsehuMKI0Rr86WkQj+fgU
+M2z9r8pLyedDcfJeSZjtrMD3RLPvUguecAmqVbKvY8ZruhVvOe0ejsML1V7M0TcM
+fqoJaH2zB6Z6NB3cCLjcMrtQ7yJgK2yFexDYHhxEmKpvIWyPCNCiZqvScolzi+4c
+YWJk1ZxwLqcrRuoVM8HRcxgj13OfCOhAJZ+4bZ15KfREtmIcm7SQUzoxGbV6RGDc
+3MkppbehD/sIoeoUirOgxDYi6RWSjmw/nhY0Sh6k5DDvXdv+NH6gkwqV25HgZNpG
+akFiFZcPmWJ5AoIBAQDATV8X6ngkYrPr8+77uDwRGCA+FrxE6WuxQ5UTSkeVqh30
+4tSojCXpX9KTXNbby2shyTTqP+idWFiZAQjat9rmSqYyz+DzpgaIN/UMqjZnTamK
+0soZZmx7WNtHkLMa0tLelJMPcp/KTuW1zCvJl95azpWff5CDvpRkTmQNyXQ9aeyG
+ulAfbHXdYvIjBU6ycXIWba00gFUzeEdhHiN8U7uOGTMZv0z6vuKq9z4gibw1vx0c
+D6VLYVZUuSM14FOKHpKatKTGtgWqupMV9wgfxkdwslpmRnkZhrL0c5K46fZmUpLg
+fvQ2HU3kNW36myR4dWDA9PqQTOjWR/jyplCeEsiBAoIBAFjHS3ApJPSAqZRqMMPT
+IjYm4t+kUTfs7usAKPrhoZHKtx3V0WURImY66gb4m4ScOf3hvDrmJiihMHwOKJtG
+4nksy2auFQc0S6co9AjMXsA7b/fVxhDyCwhFlYsAYUsmPxylXM0lHgcQBFSSVA25
+BV+VxmQYZj1KzpwdT5L7S+21zVwduasVrPseS07dRc1NUN3jaFgONyueJmQrcBBQ
+NdVYu+D63P9oRNVOi7BQ7pzxvLco64X79Wrm1zwXbiBKCr/LrFG15WIVkFXI7kPP
+7geSVWcX33e9zMjfAcDuo5wB1yRiEW8Wuy1KXI/bwCuHutHk2T/qk/CFvGQjfcIJ
+pgECggEAZ3wI3dwoYRGwip6BNb0xs20yi+Of2SjHUGBIKOHx+EdizIi7Rwf3CkCz
+LEG8sH+ixczEtCs2SCXhvClTjEDGFoJNMTpVx+LWkAGZlubbDtF5AZgRASFciV1Q
+1niP+KZQJPlGbosRxV7OjCX1HW32Pb4lgikdZmfAV+ILaG0SSjHeYuow76j9Z/+L
++qeDvQWQ3wg0ncPmEzYD87F+22gQGrpIW7FMa4S3sRbJmgPXadA+8ahR8cm1h7dk
+w5XCG+mbNY+cfgiRPfsT5Uhdc8SthmVtN5AXfBua/xyiszus2IxgYGgGfcT4QOYz
+2FQAHcMR86xUHWO7tIkSM2V6pqm1zQ==
+-----END PRIVATE KEY-----