Replace vendored certificates with self-created certificates of similar structure (#862)

* Create script to reproduce certs.

* Recreate the certificates and update the tests.

* Anonymize certificates.

* Make mostly reproducable by storing the private keys.

I've tried to hide the private keys so that 'security checkers' won't find them
and won't complain. Let's see whether that works...
This commit is contained in:
Felix Fontein
2025-04-24 22:31:01 +02:00
committed by GitHub
parent dbff2a69e2
commit 04967efe26
29 changed files with 1342 additions and 4246 deletions

View File

@@ -21,6 +21,19 @@ except ImportError:
antsibull_nox.load_antsibull_nox_toml()
@nox.session(name="create-certificates", default=False)
def create_certificates(session: nox.Session) -> None:
"""
Regenerate some vendored certificates.
"""
session.install("cryptography<39.0.0") # we want support for SHA1 signatures
session.run("python", "tests/create-certificates.py")
session.warn(
"Note that you need to modify some values in tests/integration/targets/x509_certificate_info/tasks/impl.yml"
" and tests/integration/targets/filter_x509_certificate_info/tasks/impl.yml!"
)
# Allow to run the noxfile with `python noxfile.py`, `pipx run noxfile.py`, or similar.
# Requires nox >= 2025.02.09
if __name__ == "__main__":

View File

@@ -0,0 +1,703 @@
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
# SPDX-FileCopyrightText: 2025 Felix Fontein <felix@fontein.de>
from __future__ import annotations
import base64
import binascii
import datetime
import typing as t
from collections.abc import Callable
from dataclasses import dataclass
from pathlib import Path
from cryptography import x509
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import rsa, ec, types
from cryptography.hazmat.primitives.serialization import Encoding, NoEncryption, PrivateFormat, load_pem_private_key
from cryptography.x509.oid import NameOID, ExtendedKeyUsageOID, CertificatePoliciesOID, AuthorityInformationAccessOID, ExtensionOID
# To regenerate a private key, simply remove the corresponding line and run `nox -Re create-certificates`.
# It will print the parts to copy'n'paste into here.
private_keys: dict[str, str] = {
'bazbam_root': b'09PT09O8u7m3sN6srb/erqy3qL+qu961u6fT09PT0/Szt7e7kYm3vL+/tb2/r7u/is62n5DKrKa/hJedrZnIj8iHp62Hs5+RtMaylZeki4+4u8m5rpvNiZyruLWpioqR9InIkqaxhp24jMjRjc7Kx82pu5uIuLi0kI+KrtXLn42pl421zqrPqJG4qs2Gncufz7u5z7WVrMabvbO8n5PVss30rMenh7SOt4aXu621v6SwrrSqy7iVjp2ot7aal4mtx5KXv7bNx7aclLzPhrGyzMa1vKvVv5uMmqmRyYaQp7rKzPTPrJuTvKnVs82Ujsqxzri3iciVuJzGkc2Mi5iul5fHusy0rYfRvJKGhLXKsdGXvY60iaqPia6MiListpGWmK229LbJzMuutbDNrafIlLSktcq8i4ycsoyuhqa3uJ+xvciks4i4zs2SlqyzhInVmrattY+yl7a/s87Hl46EsI6fp5r0kbqYtpOdtrutt7jGusuTkJ+zz73VrL2rjZads7mkubHOyMu1iIm3ur+vv7y/kbe8v73Oi5mopJvJt86viZmYt/SvmNWUyaa5i9Wuj7uOtL+/zYaZsY/RprPMlb/PkIzPhMuJj7mUxpWEhJurp9GzhKuquI6OkZayl5KVl6TL0ZbG9Lq8h9W7trWpzZmXsY2GxrWZh8zRjrmUrq+qjoy3k4injcuMzpaQhKe/kI6rqciRhIank4y0jb+qk8eunKnM0bz0zZ2Xv5HJ1au1upK9qY2GybiYx5Kzt5Gvx5zPxqSqkpm6vYTLp5qQkImox6aMqo66ttWbypS0m8mrmsiVmo+blvS2sYSNncyckJO3k6bHx7CIrbW7u7iYloezlqes1cq3r7WUi7KEsabGytWakKm6jbaVsMyvl72ZuZu3rpudi7/R9Ka7tcian4bLsIjOicfKnbHJlrOIsq+KnNGPlJ2dkbDImMe8pK3PjIettqS8x8uW1bKaqLi0mIrRl5mHipWWqsr0ypKmp6qTu72Zp7u/zI6TycfRlKyYyYiXs6mnlYrOmKSTv5mRsbSoz7qYr4SpzauNx5aJkKuylceGi8+dx6ucsPSniJyQnYvVjpe4qMacn4iKiLWom8uakJian4zKuZO5vZ2xkMyJu5LNpq2Zn7eUycmTuZOky5+SqY+Mkou1y4TM9LDVk62tpLPOjambk8a7jbmRv5Oxtqiop5bJ0Yisypixr7GHyJOJsczImoufmLKrja66iIuIqpW9mae7v8+OiZD0k7eEkI6rqrG1hJKqxpWQmJDLsbTMy6vLm6eHyoiZkLKRkJrGnJadz5eQmZeLu7mx1bLPipCLlcewq9GH0Y2xjvS2kay0ionVprfLz8+Una/Lj5+Gy6uTxpa/tZG1hpHNkLWIpo+7iI+mzovOkpSwy7OWkoTMmdGHmpyrj5qaya7M9Mmtz6yxh42Wn6usmI+Pna2JraSJqJ28ysyNnJC6ubGbi7+Nq67Jnb2Zp7+IzrSfhMjGtoimn46Wr52ombKfv5T0h7+ExrXNhJ+5yrONrYaRqJSGhIuku6SS0cnHkZeGxpyLp66Ji6+SirbJzb2JzIusyIrKh72OuseqrrCwzJuGsPSsudGyj6enjqeExo20tpeSyoqKmobGm7uxk7uSi4mtu6+4iKm1lq60lpS5qYrVtIm5r5yEz6SRh4jOtqeatKuW9M65p6uHvb/Nq7GXm4a3p4Sbj4e9h6+1vJmvvZvVq9WIlpCVzL2wusammomdmsm1j5jHzsq8jbCMlZrPjbuz1b30h4enk6mGqoSusZSUsYqrr8+Hk4THtYfHj7qPkpK/qp2zqobPzKSLkcjOr5muibS61ayOj7+sypunipipk8+SjvSUkMmolJW3preVj6iQlI6MjZ2w1Y6/iorKqsmXpLq00beuk4ecmrmEtcbN1bmvs5mWhIiWk5q7jY6Il62tms+t9LuZjIvKibW8mb+rq6SOprfLv6aUnb+bsburp4mbl4q9uJGrhInI1Ziv1YTVv42QsZqmn4yQvYySjraRkaaaya/0ibvNxp2Ohp+KlIyRmbuqt8mUlY6oh4utuaSxrJuQidHJyZmftZTKv9XVp5qWubyuvJ+7nauLqr+7qKjIzYu5lvSqqM2WtbHRuKuPq6mkyM/Nip2vkpSturmdjpqEp5+70ZqEzIuMlqqftcmHrrHOlMqSt7SU9NPT09PTu7C63qytv96urLeov6q73rW7p9PT09PT9A==', # noqa: E501
'cert1': b'09PT09O8u7m3sN67vd6urLeov6q73rW7p9PT09PT9LO2nb2/r7u7t7eHiY+fqoSapIbNjcfPq62pk82wupOml5CXz6/JqNWKmZ3Pp4aO0aeQl52Rv5G5vb2Pua2zysf0v4m7tpGrr7qvmb+71YiOmZmIu4i1hJem1aSHt5POmLGr1cubrIaZu4bLzL+P0aa9s4+cic+ErZmYiJStz6bNp/Stk5+0s66xyaSPzLipvJmLh62Un6S9iM6Mnaycy668tr+/w8P009PT09O7sLreu73erqy3qL+qu961u6fT09PT0/Q=', # noqa: E501
'cert2': b'09PT09O8u7m3sN6srb/erqy3qL+qu961u6fT09PT0/Szt7e7jr+3vL+/tb2/r7u/krq3zaSImruMjLCEyo+2lM2qkY+GkMbGkJSct5SQn4vHy52SyYSpj8+2vNWrqc7L9I6ahsaVsM2rupe8y7PIq8eLtYq6uLWal7mZlaTJyZCWtIuHiIqbp4q6i6aRuJGth7aKvaapjq/OirjRvZ+MqZX0u6m2tsi7q9GPvayMyKSbr5PVzJeMs7avzY2UjZqQzrSpncuchJyaubS0i62vmZKVsKSKsMuakp2Qsb2Pibecu/SzhJ3VjaeQrNWnu8bNvcuasrXJiMzRmpzHqbPLtcaPmb+xuJmRrq28tZeJsa7Oz4/Glba6sY2wp8/Gyra7zcfG9MqOvZbRzJKTurbKqs6ujIu0rLm6qI6LmKTNu5Wmi4nGqpaKuL+ku4ewzb2SkpzLtKyLlayOk7i71ZWsmsm6jJ30q5WUkJHMvM+IqsnOkqS3pJHLrLm2vcaYrYqdp7G0pJmfzY+0qom3ur+vv7y/kbe8v72ch7jNjcqHkqrJuJbLm/S5h4zHn6ikkL/Gv86azY6GubuvyMekyo+Gqc7OyYnPjraYlraItpfLic6L0baIjb2SiJSdu6q2hqiHm4udj7jG9JmuypmIyr2ms7+Rz6/OiNGMqYi0isiEzbHVyKa0x5OGrbTRu4efiobNzIi0iJHLrMukv7vKtqTOsq6drp+3zoj0va67rtWqtKrOionMv5ScqZSIy7qWqrfHnbuWsJG7x5ewtZGYt6SGubqXvNW3lpPPqMnHi6fLsomLzbeNh9XNt/Szkqqcic2SlLCQioetqqS9lruE1ayktMuxy73RsZuGkIeoi46QvbjHtbyNmYSVp66xpLakvbW/zpOvrri3nLaO9MnLusa4prKTmYiVho+pq5HNubS/rNGarbKvr5aSjYqTy4a5x822lqics6SUkY3OnJiuhIqnrJC9tqmXjNWGi7T0y5bRkomLu72Zp7u/ibydtIebsYyWya3Imbyyl5ykxrnGjbq6irS3pqq0pJGkm7KIqKu6yKaQmom8j5icsK+/kPSPkJiYlbmwzMnMrIaIzrnHhKqJqrWnlsbPkbWLlImdnLuLvLqLlauatam7zpq5pKyLyairmonGk6+ks63GlrKO9Lm/u5qss83JjbSknLbJvZ+TmZWGs7+wypOuy8mwhK+q0ZqPp4mNmZWfkLKSsKvJzLivlpmdiLu9mae7v4anvab0u72YnYmfmp3OqJOSz7C9iJLMjISntoSSx7eNs7TJv6yIt9WLiZSNu6uJhM6qyZiZtZCcirGZtKfMlKi6spfHt/SJm6jRk6myhqmSp5qVvLTHy66StKmEhpidyJiszI+7hsyRza7Gtqe4z5GYpLy3zpGHh6/Lr6yQhouav6eSm6ST9IqNmp2MjLy4i5q4l7yfsLmVzJ2Eyrissaevm7OsxpWOz5+Nl6+6xr2Zp7/Kss6qlY2oiMeRt6eZn5upl4S1zcj0k6ySkrmRkbe7xrSynYqRibS3pKnPqp+5tceXy7eLms2uv7XRsNWXq86KiqmkjbPVp6e6z6jR1YSLjouptb2Ej/S7yr2czZaosZmXlamSjYzNqqnPxrGnlZO9iNWHkbeamKyJiY6VsJHIpM2/qITHu6eSiLnPtZDI1Yurl7HVv7Gr9MnJlqfMsrGpu4fGjoynrp/Mr8+Vxq+1vJmvur+cl9G8nNGojq+kpojJupySvaeajbOPjsiJkJ+qs8nHm7vRuqv0uJi1l7u6j7+fs5S0i8+8r6rLi7aIyMyLiJu0xsvPlYuZko3Mj5vIn5HRlZrNs5+0vbi0i8a2zae8vKvPiKeruvSbiq3PpMyUxonPsYapp9HJlKeThKeRtpa4z8rG0c6mkY63kYyzkpaaqZeyz5rOpKmcubiWuYmwnL2PzJKfx4fO9Ma3yZGOr7W8ma+9zJ2oyZfGkIebh7CYuMa4qaSYhqiuvK+PiJOkl7Ovsb2/zKvVjJe8l6SHp4SPiZSssMfVjZf0jZm1mpfRv7zOlKmEj7qVs7OtsofPi6exvJyJi52GkK+zy6ukl42Sp4y1upGWsMe5mJGSpLCJv7W6lIavlbiVyPTPkJy3isvOmdXPn42vnMqmkb+2rY3IppCXnZOLkqa8m6rKtqrJj8yxypOzua2Ilr+yx7+5lonDw/TT09PT07uwut6srb/erqy3qL+qu961u6fT09PT0/Q=', # noqa: E501
'foobar': b'09PT09O8u7m3sN6srb/erqy3qL+qu961u6fT09PT0/Szt7e7kZm3vL+/tb2/r7u/jYa8rZONjJKwyLXJkZWTrNGthMbIuZHIzriZh5O7qq6xsomEkKnOjc2f0cymqr+y9L3PmKiGzZOYs7iRqL/Lu6ycrY6QtZDOnaiRiLGWh8iKvLKtsKqyx5uRq5TLkre0u6umzsmdp8qUl9Gvy62ayo70yJqEq6rVn4yxvJqPjpONtL29ps3IzbmqncyUyse0s5G2zaaTyYrMrLmNz82uqLSclYmpjqSVk7qkl6aTyrqkuvTKyreHtIm1z7aGlp2Nmcavmc67q4iczbymlq29uJu8x72czJeyx4qrhq6WrqjKuIu7jJHVtp+VhpSfkry4rJKn9Jytlq6QsrmGsJyUspK3i82JsrCWr5SauayvhIeoza26k4+khse/sIiLtLyOlLqIrrLIy5Cpq66Oyciou7e0ic70jMqZusedmZqWnJu9tY3JuZnKnamSy4uvxqqnz6ydzauqnMi5uq+3ur+vv7y/kbe8v7ywkpCJu5m2mKqOtI+Xz/SUmb+Lsp+krZSkqomQsZbOsZyKq6adpseRx5Sxza22j5O1sYqPx8/GtpmxjJOT1ZWLr820lriIjY+WsInVrJGk9LOJjqSNpM2/x7qvuMeLz7+NuoaZlcnKlrqKp869lJOQmLesqbiwrZTGsbHMqciQhMydjpqct83Rp8y6l8zVnbf0mYqmkJC2vdG0rMaspM6LttGOzdWss7GKupCvqs7GzI66vJe5kaur1Y/IrNXMsNWUr6uGvaqXh8upyLS/ipKptfSqrJmKqM3Nm9GOqZyPsobMqKaGpJa0p8unj7m5t6a7n5aTuo3OqYbR1bDRvI7Hn4+tkKyXspm2nJKfkpDVmcuf9LqSlaq4yY2cyqbNkJeqv8+xzJanjq25pr2IyKqaps6GhreSqpSdj8qkq5u1iYe/jNWvho2Q1YbGz6SM0ZyPuLH0y5CH1YnLlb2Zp7u/xr2H0cuzm7y8ibqoktWotrSIy7POiLWts8upho6Rppi/mre2rrKHpLGJl6mnu7y61ZnVjfS/zs6MrJSKiYzIta3Hss+o1YvHktWZqZi4i8yOm5jVuJGtqL2myr+cq5ySlM2EtZeayMePlc+Tv820vKmMk7iG9JGG1c6JuamSn5PLx7K8pIy2j6fIlsm4kpOKlbOUt9XIs5qHmcevua6Oi5zKx5HVtc2qirGWtKu9mae7v4iKhLz0jc24vYupnJSkiI2cy824z7ewuq2sk7Way4y1qMemsa6dib2Jtoivssqbx7aHm5qdm62ql7eTuNXVyZzKmcqkvPSvtpyHuMiQqsrJh5qxismSi7i0pouq1cjRrbOZrb3HybOR0batrourms7JhNGGlsfVr8+Jj6yskcyyn7Sqroy59JObqKfGjbW3zomSjouNrJyruL+1ipvJyIaYqM2QsI3KzZqGp8uklb2Zp7zMyrvHl4rNrZiLs67RzLCnjcayqY70i8m1ipGficiSmYakpLi4xou3qrabqY+VzamOttGqpq+Kt7DOzpyMk87RjavHvJDKl7u2nKq1lNGLlZ+Tr5qVjfSayY+JmpW3rqfOk6yVmZaVp6+UtK+ZprO0mc6WpI3Nsaydq8mcpKy/pMaIv8u00buQmqSblMyTrL2okoeJqpWs9I2ulpe6tLa6irSztIaLn5uKmpGksa+1vJm6tcbKs5KWtreQt8mUyZ24lZSPmZOfnc21kqinmb23uqy4pLqssKb0pKaOz72Zi5jNkZuIx8qau8uwvZ/HkKqmyK2HmoyZxrq6xobMk4aKy52OjLTOk4uEl7yOyse1yL2YmIaHlYrVp/S4qq+EkK7Kh5mxyKSWlLG70a2vqJaLtriatci/t9GbpKaOtsinr7uOvaa8n8mPsJK/x66Sk52Xh66Q0cyqh7nJ9JbVy6y/kbm/qrKVsr+KrbCPzr22lKSqq5qxq62yt7PVm5a70ceV0auknKnJnJSIl7q1qsrRkrGUn46MqKm8i630u7u5soeJi5uLpJa3kcrPvcvOiaeIz66xirStiIaxqJiPtMuXrYe8ybWa1c+RtbKnjbrOiLeTmLK6iY/LppS2p/THtLGojqu6jsnMuYi6y4mZvLG7h83Lu4Swhq6ousqdldXOkpuRva3PpJKYrai7jLOJzonD9NPT09PTu7C63qytv96urLeov6q73rW7p9PT09PT9A==', # noqa: E501
'foobar_ecc': b'09PT09O8u7m3sN67vd6urLeov6q73rW7p9PT09PT9LO3uZW/mbu8vLq6yMeop4yVt6i2koq2i52qzorPx4eolM/Vz6uvrLDLtpqLvM+HlZCHv5HIsseUpKqUmMrNrIn0hqi5kpKOvMiNq4uZvImnuLXKu7u/vbWWpL+wl7+/rayfurG9iJHKq5euj5O/kbyuvZ2yysiwppGYqoyZpKyqhPSmi5yU0bSqiIqbh5OGi5anyp2fiaqXtou6prDLlqaripu3n8q/u46pmriRlbPGrYmPm66ZiLvPrIqYjZuLj47R9JKRy7uTl8i3zoSMp4aRn6S1h7C3rrGzpKSQq7PKucbD9NPT09PTu7C63ru93q6st6i/qrvetbun09PT09P0', # noqa: E501
'foobar_ecc_inter': b'09PT09O8u7m3sN67vd6urLeov6q73rW7p9PT09PT9LO2nb2/r7u7t7/IpKyam8eGsp+ZmbOHh4zRi5O70YeWmoefiI+tlMmur8mdutXJkqyPkqqRv5G5vb2Pua2zysf0v4m7tpGrr7qvmb+7i5Wayr3MmYnKms+zqrSTvZO9h42xl5G/zLO/rITKppunq7qXtb3Gv6i/jZvOnMmPmpCHz/STtcqcldW/q4q5tcy3qYi9urS5lbGsrIuTl4mQiZuSub+Jw8P009PT09O7sLreu73erqy3qL+qu961u6fT09PT0/Q=', # noqa: E501
'foobar_rsa': b'09PT09O8u7m3sN6srb/erqy3qL+qu961u6fT09PT0/Szt7e0tb+3vL+/tb2/mbu/kpKJlZPNssuQzrG7jJ+Y1Zm9qZupsKyYlKnIs6SfqbCRsaSLt5Onyqy8jKS5k5e19Ka5ucySrJOrkqqShKbMkZCkq7uIssfGv5+Xrbizh6+LrMepl7u2xquMiJ+0rryxp6iNvJqTsr2Oi6a5tIaOrpH0r4eSyMjPlZ2trseuuM2azJ2Su7OtybenkZqkib/LyZiZsqTOuay6iqankKjIrbmUr4uvyq2VnLuRnM6M0amVrfSbjKaql66cp7+npIzRmM2HkMmPqY2dmaSGnbuHzb+IrY7Rx73Jz4qQlMyXsY+Y1YqUiYamtZOHmsiN0c/Hy7ab9K2JyqetkbKskZ3RlLiOts7JmaSms7vOlqSytMyvtci6j5mKzbiM0ZWYtbq8qMmUkJTIramNmJWIyKSLk5GTjqv0lK6oj7bPs8qKhJu/kam1uajHjcqLk6+kzMuOqYSSiLeEnciYqZCbyLK5tb+VmIe6kbCah63Vt8uvvJG2xpDHlvSLt8e2lqyoy82zj4Su0ZGxvJWQjY6Np4mGs4rNvam8uqnN1bCuk86GjLCThLTKjs2wubaotpaEmJ+WpLTNu8iz9I7Lic2uk7LK1a+rsLOyrJyRuaawlbq9hLfNyY3PkZSWt7i/n5iQz5KZyYyalYeHtpC1p5G8vcmftrqrt7zNuMb0rKyWkKzPtImUiry7s4+U0bC5vKTLq5iRho2Is4eOtZ2QkqSckbmmx7S8tp+0mruyq9GElbWrqZfPrcvVrM2XtPTKm5aJvYyqhMqfnLObmp+akMyY1cqZyMnKs46njo+/va6Eus280dXIkJu4rI2Xk4rHj5+6j5iPzMuujNGtm7Wb9IuwtI3OrrK3ipjPj6eKqMmor5Cuq5+Py5HVq7LV1by7kp2xsKzLj5O6hpyrvMuNhqTVlaqruK6UhLzOvb+Ju7/0v6+1vb+Zv6aapsmdjpjIm6/Lk72Jjr+OlLqqx6SuzqaZi6qHiYifj8qxlKu/h7q1sMyRltGfm7+MuJGWroe4yvSbjbOLp4q9s42Mrpy/h8nGp7e8sozPhoq0jMiQqJSGh8rHt5yWk8aWs5qZkZbN1ZSXuoami722kIm1r7jJloa79JHPlL2MypitpL2qtseOhoSxy7XOnJuZiLnGlqaosKa6zc6Oy5OWyYiJxsyRma+JrYq/t6m/kIvKk83RtZmdurb0z723jLGfurG2rs/Rx6iSp72Vuam0qMqql5iczJnOiq+9y8abkrDIsarRzKiW1Zy2l66tzKu0spi3scmmraqIsPSGurW0vJi1hsu4kp24ioecyJO/n4So1bKbzpbOrYS3jsrInJOLmpOYvI/Nmaq1uam7v4iflarLjs7Ihpm/s4zJ9JmIrKiLpI7Vr7SEu7LRrsbMu7WNy6SzpM6s0cuchLLKi7amncanrYezvKeZlrKRr4Sfp6+Oy8aUn8yyjorPhKj0y5CmhtXOhomEsYunlpqfjZeVpKmszJfPk5aHqb27sYu9vIaNrM+6t4ixmMaWqa+rhKiRiMaMxr2Nj7ivhNGGy/STqMifpKadz7SGnK3Rp42Ny8epzrW2l5KRmMaEpL2MroqLhM+Oub3Mz8aHyKrGnZKWu8e0vae7yp2dj6e5ps/V9LLM1cuxvK/OsrfNlrnKtK2GsbKQiZeYmNHL1ZKOm821ubOoy4ewsMudiMyah43Ph7y2msvRuLPRqJCbkaaak470ur3LppGRp8iPj4qvl4iEy6StnK6pqL2KvJyWjcq4vbasuMmxzauVqqmmsJCMm7eWjZ26m4+6ioemp52IyMqNjPSutauqy4rJuJurnZaWkruIlZi6iLLNyZG6h5mJj6mWxrOtm5OHury3yLCSh4rLxs+Qr7W9v6+7v4m4v42Kuaqd9ImqrNWsv7uJtqast7+amo6wh9WMzIqHmJS/rsfVhJa7n8vKsJOxub/JqL2Ux5mbk7qwk62fn8jRssqalc65uMf0n6Sah7nKsJqOj7C8ys+uirLPr4m8tLq30auptobGk867jKivla6ryJG9r4+xqZeMp6eQi4inyrebl7HGxpHKs/SEm7aEuqiqiLjKmYisk7jPpoScuYiRx7u1monPmaiap8iZyrqcx5KpjY2Es5+Rkbuqt5iQt7Woz4yGnLm4s4uK9Iepna2UlKe8k4/JzpqxmKuEkoSqssedpISazorPjqSaip29i73Ipq+quMm5sJG3qpKmv8+Qio+/rcayrsiblo/0vM+curCRq7qdv5mqt6uEta+XvIq/kLqknIqslpG3rrG8z4iqjq+0t8fKxr/Ln52HjtW1mc2TlIuQib+5iqS2z/TKic/PjqiMrbi0jozVibW9v6+7v4e9mrayt821sZKayIeshKzKy5OmkY+os4ubrJHJqsqru4zHjMixqb+Py5mE9MadupmJjp+9hJyxjZKLk62Xrqi/ndW8zrqSz4eavLa8m4Svks7My4ScuauUjc/OqIyKqM2kt6ycz5SLsamJy5j0jZDJsLi0x4iGrJ+9u8vNp7PPv8yXrJWszca6sLCJypeUybSRt7+ozoastqe4u62mxr2TxrmUua7GtZGptqrIkvTHypK/hInJhIqJq7uSj5bInIvNlayklau9kZLPh86prqa9vJmNsIzKl6aMp5CQjpa7i5uXjLGdnbG5u6rOnYTM9MaVjbuLyo6IlpafvJ+nxqSZkpGQh86sn7SUjpyczLi5qZbLjLGuyoerncaWqJaqiqyVjYepycu2y5SZrs20kcj0v8+4kaTMsLiJma+VtYvVuZyRs6/Ns6Svjq/Vh5yJmZ+krIaqr5uMq4aJtb2/r7u/j6iPhqvLnIfHu8/MzL+RzfSGm5aKiq6Si5KnsY2VkYyGu6eN1Z2fkJOqi7Ocz7uypJLIs7S7tLC8iJKrkKfPiKeEz7uMuqaPnYbKhIiSjs669IyNlp2zt6aP0bjRktGrx7avv4+Q0bDHyJyms4mks52Y0ZG8yJWOzbqwjs6tuZuSkLHJv6a0zcm9mpqZvJmIxrj0kZS0h5rOmrzLlIa4kIi8jrCmmK6JkImfsMeKjqmplbWLqb+HjMiLkrzKr4eQt6/KxsuGpJeoh5GtrLvOiK6Tv/Ssl5S4yNW4iZiwyoiLvKyEl8fVyr2GzaiQlabOiIaNlrWx0aS5ys+2u8mpvMaNncycmbvJi6zRso7NqqaflMix9JipzrHGyJ3Hv5eXiseOqLOorKS/mouNyaiHzJqmiqjLqpK9kJO0qcuIqr2wsdXGj7nVlafRzbSIuMiUz4yVzpb0nJyolKmJtb2/r7+SkY6rq5m0lLPRpK7HyIuWmZqRkM2Nu7CzuK62rMqVuJu/rKSTqKaVjK2KrLyTmKaOr7GQpPSXmKSXyZmOyIy6jIaqiImUlc+Xjru3k5W/0Y3Oz6mUkY2a0aqRh6eQk7Omy6Skpoy3ypOG0c2yjrmVrYiRiZ2b9LCvhr2fma3OtaiRtoTMkM3Vxqafk8+ysam7j6zGiq2GuKSUm4iNs5i9kZCIuIi9jc2syLSnhKiyy6uZuKSGmqn0l8i/v6+91cepmZjLsZTLz5uzuJGak4SKnYzOnI69upKRscm3pJqtt9G2jYiynZPPjrqwp8yzrMicsp/KubG9x/SZjdGrjLnIjZiJz7WZuL3RsqmIhseRqbnRkMe7zK3Hpr21yLS8vZaompO8vYqYprS9qrGfqLaTl7i8qZmVhsaq9IeEk7CGqpGLzcq/z7OHlbfOtpC0iLGSrI7HuqrJqp2qv5G3vL+/yL+stofHpLOohry7zreq1ZCsl8/Mzae/s8j0n5HOjsbHkpTNk7Ko0cqci6ykrITOtJarmZmHzMm3yMubq4ebzLitpNHKkaebuayfj5DHirGdrZrNlqiIjJSwq/S90bmqrZmLs7OEk5uJyY6qj6fPjcrGr5OQspywzK2kiY+Jupewxp+zxriMmb/Lz8+pppuplIqsqYeUi7CcuYmr9IrLjtHLpNWInLSUm5O4x66LpNWVqcfVupioqtGHjJS7zJGEtYu4t5WahpmqrJqwv8zMzaiUrq/IurWsmc+Up7H0hoqrjLOYjoy2ls/Nrai1vYyyqpWbm5+7vamfsZzNx7CrhJqcz5SXmJ/Jjs6ZzbjJsY+p1YTPxpjMtKSajLqpmvTLt5KYy4eyuqSqxojLrauqu7HOnLaLhpLInNGMh6vKr5jVi5+JzrSrt7a71arVm8u9yLKnjNHIybuKxsP009PT09O7sLrerK2/3q6st6i/qrvetbun09PT09P0', # noqa: E501
'foobazbam_inter_bazbam': b'09PT09O8u7m3sN6srb/erqy3qL+qu961u6fT09PT0/Szt7e7jr+3vL+/tb2/r7u/k7HLz6e7yabKhr281YunjqvJzbOqj6nOlMyqj42TiKudjISIzbSE1czRn6Sarr+s9LemmKydt5Oqlq6smJGnj42Ns8amqZCxjIS7sY7Jx62qmbyzlM/HnaTGrru6uKa9l6edr7iSvJikjtGVlbqSh4r0r5yVr5LOu5TMtZmztpW1x9GszcvNmsao0c+HjMvNjLWwlKjGu5WGm7+xpJCmqaTPy5K9x5LRlcnKrrGYibuslPSRsqaazKqkrpyGyrPKpp+8nKS4mJeOyZKvkImVrsq9x4SruY62mMm5qb+ml8rViZLPtrikhIq6lK6djZHMm5qf9Lq9rMqsp4eKqaiJkLLIjZXIuraUz5GxhNW1qMvRic+EkbHRq4ymso61jaeNsbKJjZnHl6SMhs6MuLu4i7ecurT0y4SZlc/Rk6iTprqVibPVlZvIh4um1a+wqs6fu6+km8eorLeJh6+3ur+vv7y/kbe8v7+tstGQvJK4yaunupnPu/S2y7iLq7XGycmvupmfjIiJrZ2Ry5awp5LOjYjVn5Ctp7m1tLWTl8a9yr28hqikvbKbza6Nqri6hI62qM2Jyo2L9KeVy7W/zKyzxrmZvNWTkNWsncyMq4q7l82TqLeTkbSrhJnRkYytyp+7qrC4qMaMlZe8j7fHvMeatqzNrLyJkpX0qLKuu8uStofHu8i0l4evhK+XlZqpuczMh42SzMyv0ZmSuse6krqkjZSPqpOMn7Sfvbqnx4yKi4e2kpiQmY2wv/TH1Y2aprO/p7fIh5zK0bvNjKSHs469rdHIprqvzom6ssmWnbmGsdWWy8uUpM2ahoeKvM7PtpWOmLqkmZuXkIq29KmSrbSyh72vub2IkayyiL/Mua7LuZu/jMuurK2Su8an1aeOycfLxqSutcu7zLGxn8jMl7GMkrudjrXMmouxjdH0zJ+PhMmdlb2Zp7u/iJycu7eHhqqWkom8uLDL0ce1sc+Prpi/sqfVvJ/Py5vKyLKny5q0qrSLzIydudWWm9HIufSvrp2Si5yVn5vMnauyiZmVhqmbiqmnq7mql5GdmY6Sj6a2j4ypyaSmxpWzjLaIlLfVjq+RtLfGyp3KuYqwjMfM9Ii8kqezyI2mlMqajouTirCRtJSox5uwu8i5l4jV1Zi2iIjJk5e2m5GcpqSKyLXOpKnLitGZj869mae7v4SSzJf0t5qEjbmkis6Eh5GOmLPVlsumxsuVsYiuysictr2JkJuEmYS6qqzMm7O7h4bMtqSKzaaRl7CKhsbLkZ2ZkZyns/S9m5amzIaOtoSfqpGymJSOhLSux5jHk62Nh42at7u7qK2Nvb2Q1YSLsZmzjLeJ1a+yqMuPqbSvismuj42Pvb2U9JKXk6empqrOrcq5moiTjKqozKSyiofMjZXMqYSMhJPG0YfKyJaZzr2Zp7u/jNGfxorVxpuqnZHIl46urM+trZj0lcyXiYSwubiama+UsaqMsoupncm6h5LPq5+pt9HGhqjPvMqRz7KQzMathIzOtdGfv8yLkpGGk8iYkJufzLyIn/SskYyosL+EsazRi8m2uL+YmZevzZXIkojJx42/iabKpp25tbiO1cmHiLezn7OIkJe4yI+yu5SmtIyosZWQy8aa9J/Mx52YkZOptLmTjJeWica20ZzJyc6rvZmnu7+Whpa5y5C3icqdn5e2k5erlpXVtYafk6nJi5qZhJ28uJrPqMn0z6iRtpK2lciztKSrj42au4iJsa+puZikt7qq0Yeyz5yYlKqMtIqryJmVpJqatLO0ic+0h6iQjbyUqZq8vIiazvSqx8udy6+y0bSozpSOrc6JupCwspCqmrO0qbeOuc+Kn5C8mafPnMyok8asyZKNmo+5q7eIm66Wm5S0scaRt8uV9IeRhJbLrKu9mae/ypLItanRlbqZqYiqjJm1vKyXqovLjcqkkM29mY+bsIqZmq7LiJK5tqaaysa8kLKnkay3ubv0j7Cnl7PGnZe0pMjRk6yss9GJi5PRrMmw0YvKzpyTv6uQja3Kt7u8tIuoiIanqcmozMu7tIa90bmojq6fqo2rn/SqqM+fqLDGrb23iajMlJKKmo+WlM+XxpmvjZKTsLCnitGwu8fGi4iZzY6HzLavmIfOpsamsZnDw/TT09PT07uwut6srb/erqy3qL+qu961u6fT09PT0/Q=', # noqa: E501
'foobazbam_inter_own': b'09PT09O8u7m3sN6srb/erqy3qL+qu961u6fT09PT0/Szt7e7jr+3vL+/tb2/r7u/k7HLz6e7yabKhr281YunjqvJzbOqj6nOlMyqj42TiKudjISIzbSE1czRn6Sarr+s9LemmKydt5Oqlq6smJGnj42Ns8amqZCxjIS7sY7Jx62qmbyzlM/HnaTGrru6uKa9l6edr7iSvJikjtGVlbqSh4r0r5yVr5LOu5TMtZmztpW1x9GszcvNmsao0c+HjMvNjLWwlKjGu5WGm7+xpJCmqaTPy5K9x5LRlcnKrrGYibuslPSRsqaazKqkrpyGyrPKpp+8nKS4mJeOyZKvkImVrsq9x4SruY62mMm5qb+ml8rViZLPtrikhIq6lK6djZHMm5qf9Lq9rMqsp4eKqaiJkLLIjZXIuraUz5GxhNW1qMvRic+EkbHRq4ymso61jaeNsbKJjZnHl6SMhs6MuLu4i7ecurT0y4SZlc/Rk6iTprqVibPVlZvIh4um1a+wqs6fu6+km8eorLeJh6+3ur+vv7y/kbe8v7+tstGQvJK4yaunupnPu/S2y7iLq7XGycmvupmfjIiJrZ2Ry5awp5LOjYjVn5Ctp7m1tLWTl8a9yr28hqikvbKbza6Nqri6hI62qM2Jyo2L9KeVy7W/zKyzxrmZvNWTkNWsncyMq4q7l82TqLeTkbSrhJnRkYytyp+7qrC4qMaMlZe8j7fHvMeatqzNrLyJkpX0qLKuu8uStofHu8i0l4evhK+XlZqpuczMh42SzMyv0ZmSuse6krqkjZSPqpOMn7Sfvbqnx4yKi4e2kpiQmY2wv/TH1Y2aprO/p7fIh5zK0bvNjKSHs469rdHIprqvzom6ssmWnbmGsdWWy8uUpM2ahoeKvM7PtpWOmLqkmZuXkIq29KmSrbSyh72vub2IkayyiL/Mua7LuZu/jMuurK2Su8an1aeOycfLxqSutcu7zLGxn8jMl7GMkrudjrXMmouxjdH0zJ+PhMmdlb2Zp7u/iJycu7eHhqqWkom8uLDL0ce1sc+Prpi/sqfVvJ/Py5vKyLKny5q0qrSLzIydudWWm9HIufSvrp2Si5yVn5vMnauyiZmVhqmbiqmnq7mql5GdmY6Sj6a2j4ypyaSmxpWzjLaIlLfVjq+RtLfGyp3KuYqwjMfM9Ii8kqezyI2mlMqajouTirCRtJSox5uwu8i5l4jV1Zi2iIjJk5e2m5GcpqSKyLXOpKnLitGZj869mae7v4SSzJf0t5qEjbmkis6Eh5GOmLPVlsumxsuVsYiuysictr2JkJuEmYS6qqzMm7O7h4bMtqSKzaaRl7CKhsbLkZ2ZkZyns/S9m5amzIaOtoSfqpGymJSOhLSux5jHk62Nh42at7u7qK2Nvb2Q1YSLsZmzjLeJ1a+yqMuPqbSvismuj42Pvb2U9JKXk6empqrOrcq5moiTjKqozKSyiofMjZXMqYSMhJPG0YfKyJaZzr2Zp7u/jNGfxorVxpuqnZHIl46urM+trZj0lcyXiYSwubiama+UsaqMsoupncm6h5LPq5+pt9HGhqjPvMqRz7KQzMathIzOtdGfv8yLkpGGk8iYkJufzLyIn/SskYyosL+EsazRi8m2uL+YmZevzZXIkojJx42/iabKpp25tbiO1cmHiLezn7OIkJe4yI+yu5SmtIyosZWQy8aa9J/Mx52YkZOptLmTjJeWica20ZzJyc6rvZmnu7+Whpa5y5C3icqdn5e2k5erlpXVtYafk6nJi5qZhJ28uJrPqMn0z6iRtpK2lciztKSrj42au4iJsa+puZikt7qq0Yeyz5yYlKqMtIqryJmVpJqatLO0ic+0h6iQjbyUqZq8vIiazvSqx8udy6+y0bSozpSOrc6JupCwspCqmrO0qbeOuc+Kn5C8mafPnMyok8asyZKNmo+5q7eIm66Wm5S0scaRt8uV9IeRhJbLrKu9mae/ypLItanRlbqZqYiqjJm1vKyXqovLjcqkkM29mY+bsIqZmq7LiJK5tqaaysa8kLKnkay3ubv0j7Cnl7PGnZe0pMjRk6yss9GJi5PRrMmw0YvKzpyTv6uQja3Kt7u8tIuoiIanqcmozMu7tIa90bmojq6fqo2rn/SqqM+fqLDGrb23iajMlJKKmo+WlM+XxpmvjZKTsLCnitGwu8fGi4iZzY6HzLavmIfOpsamsZnDw/TT09PT07uwut6srb/erqy3qL+qu961u6fT09PT0/Q=', # noqa: E501
'foobazbam_root': b'09PT09O8u7m3sN6srb/erqy3qL+qu961u6fT09PT0/Szt7e0tIm3vL+/tb2/mbu/kpa3kb/Nl7+Pv6iMyZnOzJO7ua24ybW9mLfGi5KHvIazx5jItIaHyIqyva7Gk9GK9JWbybCuy6iHtK+nhJ3JipSYrZKtqqiLsauGnZK8qpqPvJGGsbWfvL+2zZzRvZepmbOXyMnGybC8h7icqLfRqpL0xpW9icyvlLuwkrmYlJicrdGvpLfPktXRr66HsMunt7yMkaupnbuZt5GMvY6Nl5WvjpaKkZyMjM+KjLWKh5fPlPSzlJSyjLGnmbzHz9WPucauzsjVk66Pls6oh5GVmayEsam2zaSMn6a1iremmazVk5ybm6+XpraZv5qsypeLtJfM9NHLncapsJW6p7DOq4qnsM2ppr2HvIeGs5mtlpyIi7aYtpOKn6a2t6arv6vRyoqVvZSJsLS0joi1t5W1sI7HyJr0utWWlruzyciXjr2Hn7eZhM+nrrG2sLWtrcunyoatrqTPhrW6t5WVqIe6iciJyai1htWZjLG3iJOSzsifn5qQhPSvjq6nrbOqypKthK+4xq6Zj5e5kNWfkqecqc+Surixs5a/q5+RuK2RtM3RqLCbramXp52wtpmXu42UlcyYzraw9JjHraikz6bIrLi6jpmGzbm5p4imrLHIh4yJpLiVyoyvyIiGloaRhra5yabLpKims7KWvZfNmLm0r6SKhLS0u5/0l8uov8eNrM+3tc+OnbzMz4mPk4vKyLOEnM+Ips+pnJiHqJCZm4izjpCUnbDKl8+piZKIi5yuqbLIq6qtvZCUyfS8tM2Gy4afuLy/nIrJybXJhKq7ts7Gt7q4z7+51YnHqMqRhqqshKqKssaTmKuNp4mzkq2yrry1tZaqkrO8hLif9LrKz86Ms8exu6m1yoiWzr2ck8iXr8qHrpiWzq3Jz5azmaev0bSH1bOTkKTGj7jMi5aMss6Prbyox6fGvb+Ju7/0v6+1vb+Zv5CXmbOpzYm2i4mInIzOkJKTy5eYtYy0tY+Os7Kbi7e0yMioqauskbTVjou0qbGKzsi6sK6Gv8mI1fSxzrO4tL+zqpzRn4+vr4mYkZW0hIi5qpDGjbm0r7yPu8nGtLuah7Cdx6mVy4StkInOnZjKp7ucrJ/V0Y2qis3J9JidmIi6tr+zlbu0rZWvktHKjY/OvLmIqr+Tm5O6yK2xzrOyz7mwtc+3rKm6hIeWxr2ok8yRmIfNismrn72di8r0jo2Y0bOMiKiGhI+XzKSSuJubkb2skZuMq4mri7CUmqy4ir3RiZy2mbq0pIq6t6rIqJGotKfLjZyYlZHHu5CWs/SklrCoi8uHrp+shLGIr7eItammyIabt6mqj4estrC3x5O8rMnRqp2Ppq68vbyKiJzIrrOukI6Gx7nNk4iWiZW49IaGmI+fsrymm5a5iru5tqy2kK/KjrKWy5yuic+YmbSUs52XkIefrLWtrpS2naaXzKeSnI2Tm66WrYSdio2mjpX0lNWxlrqdqc2Lmoywm5yLtbqVqpCTiYa1kJeNv7vJzcm2kcq3nM6dsJurxr2MsKSTlaqZv5vJrsiaqKeGtLiprPS2ra2svbCovZOnubvH1ZaWkYyay7a11c3LqsuWn7SpqpvVroiqspWEuI6zmpCVvJSNiouwyZO4vI28u7mVzceo9Lemv5WfmYSasI+ruKyvq5LIuZeXna2N0dG0j6iblsuup468qou21ZCXmrC3uo6vu4q9jse4nJ+xv5yqvbanjZP0x6qpra2tx8e6p6qXsLrPt8yVkr2RhJiKs5a9jpS4qMbMsqnPk9WEtJCRqb21rquQk6e4sqbKm7KOhJOVko+4lfSPn8yvhrbMqbiHsJCasMyQiofLuo+1jLqkzJGKy6aJnbKkloeNyq6UkKnNjL2Jz8vKr7W9v6+7v4e3trWGuYuc9MuIqI/LibCos7aJxq+KkJWV0cqXyaadtZK3uMiX1aSGiY/Kr7WRx7ayx4amtbKdyKesuprOlce/t7i/sIrVi4T0ybmQtpeVh7umtsu0zYixp5XKnIq3nbWYzJWVmZC/t6nJxruTuLXHrsqkqZrKv7WyvaqNipTLrpyGvYaKjrnOlPSO1birjJ/Omc28rbvIkrmHybCuh8qns42cytW8i7DHz7GxpKqovai11Y26qtHVqLWTkJi3t5qfrsfPvZethJyM9JWnnbjLl8aykZiYpLiZmorHn7KNq4qMhqmd0YeVjIqYlI7IprK70ceSh8abzceZuM65tbvNh9GSsr2ckcy1p730n66av8nNrZCEsLSRtbXMj7a4tcuHq5ybko6Hp8eHsYrPp7aRrYbNqsipsJqLs42Kh6yJu5iwy6eVtpiLyYmPh/SktZuN1ZvRpqfLrbOuibW9v6+7v4jLjJKmysuYq4eWxpqWkZSkjYeMsKePzc6omaSmsse8m7S/tZ/MjIerj66a9K3HkrutzYy8m4TOzdGMjauktMy2iMaZrJbLia2nkKzLmYSKuKyszY+kpKzMlZSYqJ+trcjLh5uTzq2czIfRuob0icu71Zaci7y9l7WQy5qdhMiXjYqbvZOLhKeH1bCtyJi5vMyyt6q1hMe1h7KomZKxu7qMlsqbupbOi7i2uquL0fS1lpmyjp2Tl8ins82ptLCpi667jbuIy8aYkLiHubO0pLzInayurJCZzszLq42pzM22jIiYso/Hzs2Gk7aXyM+49JvPms+/jY6RvJKPmLetiM23v8uJl7KHkL+MkZOXyJy2hJ/JyMu/j726sqq7ms+NsMfJtp3V1YjRiLjMps6rpLb0n5mpz4zIsY2Mqcitjo+dq5S9ys2mhLeup4ubpIubsaaOzo3Gq5KbvY2vtb2/r7ymz5SvlM+8lp+4zs6ckY+vlvSwzIuphp+Tqr/LrseYz5yws9WxlpmYrMq5jqqxnbq2y6rKm7axtcy7mrurp4+NjZPNtY24z6mmm4invL2QyciV9KaSn4e1iJfVsb3VsIe0jbWQz47RiKS1n4umh5ywh5C8p4fRla+2lM6wu8i6rKaErceci5+bkc+ts73LsaaEm4T0xpi4v6qrp5/LnZytxr+Qy6aoyImGt7GIhsqcmo7RvYvLsaTIlpq3k8+tyLyoubG8spCItZnMn4Sx0ZKUk8+GzfSxmbW0zJiKnISTtrvGkruVhK2Rhr2kvai/0ZeOzIuUzMq8m5mcvImIyMeUqJaq0Z+4nJOukISRqrqfyrGLt6e89NGQsrGEhKiVnIm7mZGduLiypJTHsc7Kmsi5lb/JhLfOppuSl8yxx6bMs6y5lsqVys6yubipj6y2yr+thr+onKv0s4i7z7+Rt7y/urC9mbuElrKuqM+kksjVrqmGn7eJ1YvJm7yLiJK0uYa3v8uRsNHH1cuWta23uoyulcaQtIfKsfSvnKnRpq+srMe1lri3rLCEk7Wxt6bLzaywt6bItdWsurSyk6aZuIuWiK6yjZ3J1bGLmaaElIuOibW8nJK/1dWI9LDHpq+Umc3Via2OmpK5ipiosNWMm5KPnayzqMnIvLLOsZXIjrK0y7/GkMenls22v6asyZ2Ym523vZ3MiIqvjJr0z7GbypvOtse5zY7PpLDJyb+ylrfRlbW9zI+qsru30ZjVzci/rbKksrOMlYqMp5OTspq3nKTRrLeZt7yYkbycnPS4n5KKsI/JzYSYkszLibCbicazk4uSis2UpMy5lpekn7uWk6+mpI3RkquJxqSbzLzIt6quqKaTh4TPk7HKhI7V9M7Ns7OqmM3Mi87VpprRvK/Ny4+vkJqUm86Lsb+U0bu9mZm7v622icaQx668upSHrZGLn86mkNWruqiOps3GvZH0x62ojqy3srWztZ2brse0vJ+GysmKysiPtca3uZOUx5SszLiWjb2KmZrKuanOqozLl87Rkqy8jbifybKWqMq0tfSNss+4lYeQuruvurWVr4zPuoydqpvLkc2plKqnl42okJu7lbSWms61zKfVz4vPiMaUqY+ZiJGVy4yUq8zGsLCq9InGqZHGqdGxq7mMx6Smy7+5ubzRrLqRxqu/h6q3vJKOj9WNqcmVyZWdjraNu7HGkJLRlJuEnJaslbi4uK2ujMb0kYa4rKSRubrJyIiUtpWWy4ywypmcrZy6icu0tJ+Xl5zOvdGVp7K1v6usrY6SuYzNt8etsIuqzZ2ktY2RiK+xz/SfycyImrWNxo/Olbitzqq6zqbIzMe1rL/Kzo+2nI27nKypzpnVlpDVj9WSsIq8r9XVzraWmLTLrc6vw8P009PT09O7sLrerK2/3q6st6i/qrvetbun09PT09P0', # noqa: E501
}
@dataclass
class Certificate:
cert: x509.Certificate
key: types.PrivateKeyTypes
parent: "Certificate" | None
def decode_serial(serial: str) -> int:
return int(serial.replace(':', ''), 16)
def decode_bytes(data: str) -> bytes:
return binascii.unhexlify(data.replace(':', ''))
def scramble(data: bytes) -> bytes:
return bytes(b ^ 0xFE for b in data)
new_private_keys: dict[str, str] = {}
def get_private_key(id: str, *, generate: Callable[[], types.PrivateKeyTypes]) -> types.PrivateKeyTypes:
if id in private_keys:
return load_pem_private_key(scramble(base64.b64decode(private_keys[id])), None)
key = generate()
data = key.private_bytes(encoding=Encoding.PEM, format=PrivateFormat.TraditionalOpenSSL, encryption_algorithm=NoEncryption())
private_keys[id] = new_private_keys[id] = base64.b64encode(scramble(data))
return key
def create_signed(
*,
key: types.PrivateKeyTypes,
subject: x509.Name,
issuer: x509.Name | None = None,
sign_key: types.PrivateKeyTypes | None = None,
sign_cert: Certificate | None = None,
serial: int,
hash: hashes.Hash,
not_before: datetime.datetime,
not_after: datetime.datetime,
extensions: list[tuple[x509.ExtensionType, str] | t.Literal["ski", "aki"]] | None = None,
filenames: list[str] | None = None,
) -> Certificate:
if sign_cert is None:
if issuer is None:
raise ValueError("If sign_cert is not provided, issuer must be provided!")
if sign_key is None:
raise ValueError("If sign_cert is not provided, sign_key must be provided!")
else:
if issuer is not None:
raise ValueError("If sign_cert is provided, issuer must not be provided!")
issuer = sign_cert.cert.subject
if sign_key is not None:
raise ValueError("If sign_cert is provided, sign_key must not be provided!")
sign_key = sign_cert.key
builder = x509.CertificateBuilder()
builder = builder.subject_name(subject)
builder = builder.issuer_name(issuer)
builder = builder.public_key(key.public_key())
builder = builder.serial_number(serial)
builder = builder.not_valid_before(not_before)
builder = builder.not_valid_after(not_after)
if extensions:
for extension_info in extensions:
if extension_info == "aki":
builder = builder.add_extension(x509.AuthorityKeyIdentifier.from_issuer_public_key(sign_key.public_key()), critical=False)
elif extension_info == "ski":
builder = builder.add_extension(x509.SubjectKeyIdentifier.from_public_key(key.public_key()), critical=False)
else:
extension, critical = extension_info
builder = builder.add_extension(extension, critical=critical)
cert = builder.sign(sign_key, hash)
if filenames:
data = cert.public_bytes(encoding=Encoding.PEM)
for filename in filenames:
with open(filename, "wb") as f:
f.write(data)
return Certificate(cert=cert, key=key, parent=sign_cert)
def create_self_signed(
*,
key: types.PrivateKeyTypes,
subject: x509.Name,
serial: int,
hash: hashes.Hash,
not_before: datetime.datetime,
not_after: datetime.datetime,
extensions: list[tuple[x509.ExtensionType, str] | t.Literal["ski", "aki"]] | None = None,
filenames: list[str] | None = None,
) -> Certificate:
return create_signed(
key=key,
subject=subject,
issuer=subject,
sign_key=key,
serial=serial,
hash=hash,
not_before=not_before,
not_after=not_after,
extensions=extensions,
filenames=filenames,
)
def concat_files(destination: Path, sources: list[Path | str]) -> None:
data = []
for source in sources:
if isinstance(source, str):
data.append(source.encode("utf-8"))
else:
with open(source, "rb") as f:
data.append(f.read().strip())
data.append(b"")
with open(destination, "wb") as f:
f.write(b"\n".join(data))
# Root certificates
foobar = create_self_signed(
key=get_private_key("foobar", generate=lambda: rsa.generate_private_key(public_exponent=65537, key_size=2048)),
subject=x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, "GB"),
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, "Some Area"),
x509.NameAttribute(NameOID.LOCALITY_NAME, "Some City"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, "Foobar CA Limited"),
x509.NameAttribute(NameOID.COMMON_NAME, "Foobar Certification Authority"),
]),
serial=decode_serial("9f0703517195373e68ce154665d6f407"),
hash=hashes.SHA1(),
not_before=datetime.datetime(year=2006, month=12, day=1, hour=0, minute=0, second=0, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2029, month=12, day=31, hour=23, minute=59, second=59, tzinfo=datetime.timezone.utc),
extensions=[
"ski",
(x509.KeyUsage(
digital_signature=False,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=True,
crl_sign=True,
), True),
(x509.BasicConstraints(ca=True, path_length=None), True),
(x509.CRLDistributionPoints([
x509.DistributionPoint(
full_name=[x509.UniformResourceIdentifier("http://crl.example.org/foobar-ca.crl")],
relative_name=None,
reasons=None,
crl_issuer=None,
)
]), False),
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/roots/CA_Foobar.pem",
]
)
foobar_ecc = create_self_signed(
key=get_private_key("foobar_ecc", generate=lambda: ec.generate_private_key(ec.SECP384R1())),
subject=x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, "GB"),
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, "Some Area"),
x509.NameAttribute(NameOID.LOCALITY_NAME, "Some City"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, "Foobar CA Limited"),
x509.NameAttribute(NameOID.COMMON_NAME, "Foobar ECC Certification Authority"),
]),
serial=decode_serial("89f62d74904db60b077a63c2165e7af3"),
hash=hashes.SHA384(),
not_before=datetime.datetime(year=2008, month=3, day=6, hour=0, minute=0, second=0, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2038, month=1, day=18, hour=23, minute=59, second=59, tzinfo=datetime.timezone.utc),
extensions=[
"ski",
(x509.KeyUsage(
digital_signature=False,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=True,
crl_sign=True,
), True),
(x509.BasicConstraints(ca=True, path_length=None), True),
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/roots/CA_Foobar_ECC.pem",
"tests/integration/targets/certificate_complete_chain/files/cert1-root.pem",
]
)
foobar_rsa = create_self_signed(
key=get_private_key("foobar_rsa", generate=lambda: rsa.generate_private_key(public_exponent=65537, key_size=4096)),
subject=x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, "GB"),
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, "Some Area"),
x509.NameAttribute(NameOID.LOCALITY_NAME, "Some City"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, "Foobar CA Limited"),
x509.NameAttribute(NameOID.COMMON_NAME, "Foobar RSA Certification Authority"),
]),
serial=decode_serial("6506cf0ebbcbf304c90745c46c30dc14"),
hash=hashes.SHA384(),
not_before=datetime.datetime(year=2010, month=1, day=19, hour=0, minute=0, second=0, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2038, month=1, day=18, hour=23, minute=59, second=59, tzinfo=datetime.timezone.utc),
extensions=[
"ski",
(x509.KeyUsage(
digital_signature=False,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=True,
crl_sign=True,
), True),
(x509.BasicConstraints(ca=True, path_length=None), True),
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/roots/CA_Foobar_RSA.pem",
]
)
bazbam_root = create_self_signed(
key=get_private_key("bazbam_root", generate=lambda: rsa.generate_private_key(public_exponent=65537, key_size=2048)),
subject=x509.Name([
x509.NameAttribute(NameOID.ORGANIZATION_NAME, "Bazbam International"),
x509.NameAttribute(NameOID.COMMON_NAME, "Bazbam CA"),
]),
serial=decode_serial("c9a56c6a4896e371c5ffba04b41073bf"),
hash=hashes.SHA1(),
not_before=datetime.datetime(year=2000, month=9, day=30, hour=21, minute=12, second=19, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2021, month=9, day=30, hour=14, minute=1, second=15, tzinfo=datetime.timezone.utc),
extensions=[
(x509.BasicConstraints(ca=True, path_length=None), True),
(x509.KeyUsage(
digital_signature=False,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=True,
crl_sign=True,
), True),
"ski",
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/roots/CA_Bazbam.pem",
"tests/integration/targets/certificate_complete_chain/files/cert2-root.pem",
]
)
foobazbam_root = create_self_signed(
key=get_private_key("foobazbam_root", generate=lambda: rsa.generate_private_key(public_exponent=65537, key_size=4096)),
subject=x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, "US"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, "Foo Baz Bam Incorporated"),
x509.NameAttribute(NameOID.COMMON_NAME, "Foobazbam Root"),
]),
serial=decode_serial("f8bd06c8bf6ef3a6ac85fd51c462f9a0"),
hash=hashes.SHA256(),
not_before=datetime.datetime(year=2015, month=6, day=4, hour=11, minute=4, second=38, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2035, month=6, day=4, hour=11, minute=4, second=38, tzinfo=datetime.timezone.utc),
extensions=[
(x509.KeyUsage(
digital_signature=False,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=True,
crl_sign=True,
), True),
(x509.BasicConstraints(ca=True, path_length=None), True),
"ski",
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/roots/foobazbam.pem",
"tests/integration/targets/certificate_complete_chain/files/cert2-altroot.pem",
]
)
# Intermediate certificates
foobar_ecc_inter = create_signed(
sign_cert=foobar_ecc,
key=get_private_key("foobar_ecc_inter", generate=lambda: ec.generate_private_key(ec.SECP256R1())),
subject=x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, "GB"),
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, "Some Area"),
x509.NameAttribute(NameOID.LOCALITY_NAME, "Some City"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, "Foobar CA Limited"),
x509.NameAttribute(NameOID.COMMON_NAME, "Foobar ECC Domain Validation Intermediate"),
]),
serial=decode_serial("c9aad9d1e05074e7eae62e0eb34175e1"),
hash=hashes.SHA384(),
not_before=datetime.datetime(year=2014, month=9, day=25, hour=0, minute=0, second=0, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2029, month=9, day=24, hour=23, minute=59, second=59, tzinfo=datetime.timezone.utc),
extensions=[
"aki",
"ski",
(x509.KeyUsage(
digital_signature=True,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=True,
crl_sign=True,
), True),
(x509.BasicConstraints(ca=True, path_length=0), True),
(x509.ExtendedKeyUsage([ExtendedKeyUsageOID.SERVER_AUTH, ExtendedKeyUsageOID.CLIENT_AUTH]), False),
(x509.CertificatePolicies([
x509.PolicyInformation(CertificatePoliciesOID.ANY_POLICY, policy_qualifiers=[]),
x509.PolicyInformation(x509.ObjectIdentifier("2.23.140.1.2.1"), policy_qualifiers=[]),
]), False),
(x509.CRLDistributionPoints([
x509.DistributionPoint(
full_name=[x509.UniformResourceIdentifier("http://crl.example.org/foobar-ecc-ca.crl")],
relative_name=None,
reasons=None,
crl_issuer=None,
)
]), False),
(x509.AuthorityInformationAccess([
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.CA_ISSUERS,
access_location=x509.UniformResourceIdentifier("http://crl.example.org/foobar-ecc-ca.crl"),
),
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.OCSP,
access_location=x509.UniformResourceIdentifier("http://ocsp.example.org"),
),
]), False),
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/cert1-chain.pem",
],
)
foobazbam_inter_bazbam = create_signed(
sign_cert=bazbam_root,
key=get_private_key("foobazbam_inter_bazbam", generate=lambda: rsa.generate_private_key(public_exponent=65537, key_size=2048)),
subject=x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, "US"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, "Foo Baz Bam Subsidiary"),
x509.NameAttribute(NameOID.COMMON_NAME, "FooBazBam Inter"),
]),
serial=decode_serial("f137dc8857c76a7b82be401fd03dbd4e"),
hash=hashes.SHA256(),
not_before=datetime.datetime(year=2016, month=3, day=17, hour=16, minute=40, second=46, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2021, month=3, day=17, hour=16, minute=40, second=46, tzinfo=datetime.timezone.utc),
extensions=[
(x509.BasicConstraints(ca=True, path_length=0), True),
(x509.KeyUsage(
digital_signature=True,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=True,
crl_sign=True,
), True),
(x509.AuthorityInformationAccess([
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.OCSP,
access_location=x509.UniformResourceIdentifier("http://ocsp.bazbam.example.org"),
),
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.CA_ISSUERS,
access_location=x509.UniformResourceIdentifier("http://cert.bazbam.example.org/ca.pem"),
),
]), False),
"aki",
(x509.CertificatePolicies([
x509.PolicyInformation(x509.ObjectIdentifier("2.23.140.1.2.1"), policy_qualifiers=[]),
x509.PolicyInformation(x509.ObjectIdentifier("1.3.6.1.4.1.44947.1.1.1"), policy_qualifiers=["http://foobarbaz.example.com/cps-policy"]),
]), False),
(x509.CRLDistributionPoints([
x509.DistributionPoint(
full_name=[x509.UniformResourceIdentifier("http://crl.bazbam.example.org/ca.crl")],
relative_name=None,
reasons=None,
crl_issuer=None,
)
]), False),
"ski",
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/cert2-chain.pem",
],
)
foobazbam_inter_own = create_signed(
sign_cert=foobazbam_root,
key=get_private_key("foobazbam_inter_own", generate=lambda: foobazbam_inter_bazbam.key),
subject=x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, "US"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, "Foo Baz Bam Subsidiary"),
x509.NameAttribute(NameOID.COMMON_NAME, "FooBazBam Inter"),
]),
serial=decode_serial("72cdaba696be80905df01a12a90e4f37"),
hash=hashes.SHA256(),
not_before=datetime.datetime(year=2016, month=10, day=6, hour=15, minute=43, second=55, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2021, month=10, day=6, hour=15, minute=43, second=55, tzinfo=datetime.timezone.utc),
extensions=[
(x509.KeyUsage(
digital_signature=True,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=True,
crl_sign=True,
), True),
(x509.BasicConstraints(ca=True, path_length=0), True),
(x509.CertificatePolicies([
x509.PolicyInformation(x509.ObjectIdentifier("2.23.140.1.2.1"), policy_qualifiers=[]),
x509.PolicyInformation(x509.ObjectIdentifier("1.3.6.1.4.1.44947.1.1.1"), policy_qualifiers=["http://foobarbaz.example.com/cps-policy"]),
]), False),
"ski",
(x509.CRLDistributionPoints([
x509.DistributionPoint(
full_name=[x509.UniformResourceIdentifier("http://crl.foobarbaz.example.com/inter.crl")],
relative_name=None,
reasons=None,
crl_issuer=None,
)
]), False),
(x509.AuthorityInformationAccess([
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.OCSP,
access_location=x509.UniformResourceIdentifier("http://ocsp.foobarbaz.example.com"),
),
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.CA_ISSUERS,
access_location=x509.UniformResourceIdentifier("http://cert.foobarbaz.example.com/inter.pem"),
),
]), False),
"aki",
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/cert2-altchain.pem",
],
)
# Leaf certificates
cert1 = create_signed(
sign_cert=foobar_ecc_inter,
key=get_private_key("cert1", generate=lambda: ec.generate_private_key(ec.SECP256R1())),
subject=x509.Name([
x509.NameAttribute(NameOID.ORGANIZATIONAL_UNIT_NAME, "Something Validated"),
x509.NameAttribute(NameOID.ORGANIZATIONAL_UNIT_NAME, "FooBarTLS Validated"),
x509.NameAttribute(NameOID.COMMON_NAME, "test.example.com"),
]),
serial=decode_serial("3ecc834a0ff8bb5cc06a8910f0ef9f34"),
hash=hashes.SHA256(),
not_before=datetime.datetime(year=2018, month=7, day=11, hour=0, minute=0, second=0, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2019, month=1, day=17, hour=23, minute=59, second=59, tzinfo=datetime.timezone.utc),
extensions=[
"aki",
"ski",
(x509.KeyUsage(
digital_signature=True,
content_commitment=False,
key_encipherment=False,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=False,
crl_sign=False,
), True),
(x509.BasicConstraints(ca=False, path_length=None), True),
(x509.ExtendedKeyUsage([ExtendedKeyUsageOID.SERVER_AUTH, ExtendedKeyUsageOID.CLIENT_AUTH]), False),
(x509.CertificatePolicies([
x509.PolicyInformation(x509.ObjectIdentifier("1.3.6.1.4.1.6449.1.2.2.7"), policy_qualifiers=["https://something.exmaple.org/c-p-s"]),
x509.PolicyInformation(x509.ObjectIdentifier("2.23.140.1.2.1"), policy_qualifiers=[]),
]), False),
(x509.CRLDistributionPoints([
x509.DistributionPoint(
full_name=[x509.UniformResourceIdentifier("http://crl.example.org/foobar-ecc-inter.crl")],
relative_name=None,
reasons=None,
crl_issuer=None,
)
]), False),
(x509.AuthorityInformationAccess([
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.CA_ISSUERS,
access_location=x509.UniformResourceIdentifier("http://cert.example.org/foobar-ecc-inter.pem"),
),
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.OCSP,
access_location=x509.UniformResourceIdentifier("http://ocsp.example.org"),
),
]), False),
(x509.SubjectAlternativeName([
x509.DNSName("test.example.com"),
x509.DNSName("*.test.example.com"),
x509.DNSName("something.example.com"),
]), False),
# binascii.hexlify(
# x509.load_pem_x509_certificate(
# open("tests/integration/targets/certificate_complete_chain/files/cert1.pem", "rb").read()
# ).extensions.get_extension_for_oid(oid.ExtensionOID.PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS).value.public_bytes()
# )
(x509.UnrecognizedExtension(
ExtensionOID.PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS,
decode_bytes(
"0481f200f00077000de1f2302bd30dc140621209ea552efc47747cb1d7e930ef0e421eb47e4eaa34000001960"
"be468ec0000040300483046022100b57abc31c137bc075eb2d05a402d13b65de2c668aa589395b1c8a87a2740"
"8caf022100a8833d74ec6f1d7a6cdff8446cf772cfcc4c3b61cb89baf7ed11bed00a44485a00750012f14e34b"
"d53724c840619c38f3f7a13f8e7b56287889c6d300584ebe586263a000001960be468e5000004030046304402"
"205a45d0b28451ef630bc563aa2845c59c138e83a12fef67ea217a62fe0cc65c9002206fadff98adb2857fafa"
"7683551f993e72cc3d632fcf06a461527d7debd1a5784"
),
), False),
# This doesn't work in a nicer way, see https://github.com/pyca/cryptography/issues/7824
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/cert1.pem",
],
)
cert2 = create_signed(
# sign_cert=foobazbam_inter_bazbam,
sign_cert=foobazbam_inter_own,
key=get_private_key("cert2", generate=lambda: rsa.generate_private_key(public_exponent=65537, key_size=2048)),
subject=x509.Name([
x509.NameAttribute(NameOID.COMMON_NAME, "example.net"),
]),
serial=decode_serial("2405bbfcf40fdc2b142b22ab985e3556"),
hash=hashes.SHA256(),
not_before=datetime.datetime(year=2018, month=7, day=27, hour=17, minute=31, second=27, tzinfo=datetime.timezone.utc),
not_after=datetime.datetime(year=2018, month=10, day=25, hour=17, minute=31, second=27, tzinfo=datetime.timezone.utc),
extensions=[
(x509.KeyUsage(
digital_signature=True,
content_commitment=False,
key_encipherment=True,
data_encipherment=False,
key_agreement=False,
encipher_only=False,
decipher_only=False,
key_cert_sign=False,
crl_sign=False,
), True),
(x509.ExtendedKeyUsage([ExtendedKeyUsageOID.SERVER_AUTH, ExtendedKeyUsageOID.CLIENT_AUTH]), False),
(x509.BasicConstraints(ca=False, path_length=None), True),
"ski",
"aki",
(x509.AuthorityInformationAccess([
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.OCSP,
access_location=x509.UniformResourceIdentifier("http://ocsp.foobarbaz.example.com"),
),
x509.AccessDescription(
access_method=AuthorityInformationAccessOID.CA_ISSUERS,
access_location=x509.UniformResourceIdentifier("http://cert.foobarbaz.example.com/inter.pem"),
),
]), False),
(x509.SubjectAlternativeName([
x509.DNSName("example.net"),
x509.DNSName("www.example.net"),
x509.DNSName("foo.example.net"),
x509.DNSName("bar.example.net"),
x509.DNSName("baz.example.net"),
x509.DNSName("bam.example.net"),
x509.DNSName("*.bam.example.net"),
]), False),
(x509.CertificatePolicies([
x509.PolicyInformation(x509.ObjectIdentifier("2.23.140.1.2.1"), policy_qualifiers=[]),
x509.PolicyInformation(x509.ObjectIdentifier("1.3.6.1.4.1.44947.1.1.1"), policy_qualifiers=[
"http://cps.foobarbaz.example.com/something",
x509.UserNotice(
notice_reference=None,
explicit_text=(
"Blabla whatever."
),
)
]),
]), False),
# binascii.hexlify(
# x509.load_pem_x509_certificate(
# open("tests/integration/targets/certificate_complete_chain/files/cert2.pem", "rb").read()
# ).extensions.get_extension_for_oid(oid.ExtensionOID.PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS).value.public_bytes()
# )
(x509.UnrecognizedExtension(
ExtensionOID.PRECERT_SIGNED_CERTIFICATE_TIMESTAMPS,
decode_bytes(
"0481ef00ed007400dddcca3495d7e11605e79532fac79ff83d1c50dfdb003a1412760a2cacbbc82a000001960bed082d00000"
"40300453043022005e4bbf5b87cc6e4a0e90782e46df117f1572e9d830a62f40f080d34643a7d57021f60f518e206f30974cf"
"fe5104be58d5dac4ea80e49cd47ef0858db60b6c46790075000de1f2302bd30dc140621209ea552efc47747cb1d7e930ef0e4"
"21eb47e4eaa34000001960bed07d80000040300463044022076e85e46f183ee675d6001f117a80169564d3555c6ceb12eb0dd"
"d9f60897face0220784582a60f6db10f1d07bfe1535cce9a46689bad950d7be4f02b3ecac71b42ae"
),
), False),
# This doesn't work in a nicer way, see https://github.com/pyca/cryptography/issues/7824
],
filenames=[
"tests/integration/targets/certificate_complete_chain/files/cert2.pem",
"tests/integration/targets/x509_certificate_info/files/cert1.pem",
],
)
# Concatenated files
concat_files(
Path("tests/integration/targets/certificate_complete_chain/files/cert1-fullchain.pem"),
[
Path("tests/integration/targets/certificate_complete_chain/files/cert1.pem"),
Path("tests/integration/targets/certificate_complete_chain/files/cert1-chain.pem"),
]
)
concat_files(
Path("tests/integration/targets/certificate_complete_chain/files/cert2-fullchain.pem"),
[
Path("tests/integration/targets/certificate_complete_chain/files/cert2.pem"),
Path("tests/integration/targets/certificate_complete_chain/files/cert2-chain.pem"),
]
)
concat_files(
Path("tests/integration/targets/certificate_complete_chain/files/roots.pem"),
[
"# Foo",
Path("tests/integration/targets/certificate_complete_chain/files/roots/CA_Foobar.pem"),
"\n# Bar",
Path("tests/integration/targets/certificate_complete_chain/files/roots/CA_Foobar_ECC.pem"),
"\n# Baz\n#Bam",
Path("tests/integration/targets/certificate_complete_chain/files/roots/CA_Foobar_RSA.pem"),
Path("tests/integration/targets/certificate_complete_chain/files/roots/CA_Bazbam.pem"),
"# Jar",
Path("tests/integration/targets/certificate_complete_chain/files/roots/foobazbam.pem"),
]
)
#############################
if new_private_keys:
print(f"NEW PRIVATE KEYS: {sorted(new_private_keys)}")
print("private_keys: dict[str, str] = {")
for key, value in sorted(private_keys.items()):
print(f" {key!r}: {value!r}, # noqa: E501")
print("}")

View File

@@ -1,22 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDnzCCAyWgAwIBAgIQWyXOaQfEJlVm0zkMmalUrTAKBggqhkjOPQQDAzCBhTEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwOTI1MDAw
MDAwWhcNMjkwOTI0MjM1OTU5WjCBkjELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
T0RPIENBIExpbWl0ZWQxODA2BgNVBAMTL0NPTU9ETyBFQ0MgRG9tYWluIFZhbGlk
YXRpb24gU2VjdXJlIFNlcnZlciBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEAjgZgTrJaYRwWQKOqIofMN+83gP8eR06JSxrQSEYgur5PkrkM8wSzypD/A7y
ZADA4SVQgiTNtkk4DyVHkUikraOCAWYwggFiMB8GA1UdIwQYMBaAFHVxpxlIGbyd
nepBR9+UxEh3mdN5MB0GA1UdDgQWBBRACWFn8LyDcU/eEggsb9TUK3Y9ljAOBgNV
HQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgGBmeBDAECATBMBgNV
HR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9FQ0ND
ZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDByBggrBgEFBQcBAQRmMGQwOwYIKwYB
BQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET0VDQ0FkZFRydXN0
Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5jb21vZG9jYTQuY29tMAoG
CCqGSM49BAMDA2gAMGUCMQCsaEclgBNPE1bAojcJl1pQxOfttGHLKIoKETKm4nHf
EQGJbwd6IGZrGNC5LkP3Um8CMBKFfI4TZpIEuppFCZRKMGHRSdxv6+ctyYnPHmp8
7IXOMCVZuoFwNLg0f+cB0eLLUg==
MIIDbzCCAvWgAwIBAgIRAMmq2dHgUHTn6uYuDrNBdeEwCgYIKoZIzj0EAwMwfjEL
MAkGA1UEBhMCR0IxEjAQBgNVBAgMCVNvbWUgQXJlYTESMBAGA1UEBwwJU29tZSBD
aXR5MRowGAYDVQQKDBFGb29iYXIgQ0EgTGltaXRlZDErMCkGA1UEAwwiRm9vYmFy
IEVDQyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNDA5MjUwMDAwMDBaFw0y
OTA5MjQyMzU5NTlaMIGFMQswCQYDVQQGEwJHQjESMBAGA1UECAwJU29tZSBBcmVh
MRIwEAYDVQQHDAlTb21lIENpdHkxGjAYBgNVBAoMEUZvb2JhciBDQSBMaW1pdGVk
MTIwMAYDVQQDDClGb29iYXIgRUNDIERvbWFpbiBWYWxpZGF0aW9uIEludGVybWVk
aWF0ZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLpHeAtoMOHdTEyZgpgsrDoq
ANjAEc+F3mFA4igvAFQLHtG+6nZ8tZiuG5PgFLRitiFrwgyRpDkUbposJ8HpRgOj
ggFKMIIBRjAfBgNVHSMEGDAWgBT7c0E1KzfUH+rPELnSxmfWdaHBLzAdBgNVHQ4E
FgQUJAcetHIabju1lupcH4HJqgYZlSowDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB
/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBsGA1Ud
IAQUMBIwBgYEVR0gADAIBgZngQwBAgEwOQYDVR0fBDIwMDAuoCygKoYoaHR0cDov
L2NybC5leGFtcGxlLm9yZy9mb29iYXItZWNjLWNhLmNybDBpBggrBgEFBQcBAQRd
MFswNAYIKwYBBQUHMAKGKGh0dHA6Ly9jcmwuZXhhbXBsZS5vcmcvZm9vYmFyLWVj
Yy1jYS5jcmwwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmV4YW1wbGUub3JnMAoG
CCqGSM49BAMDA2gAMGUCMQCVJiQwy/ityeuwAC503m/0FYYRfm31WVQGqcBJ7rfR
oipUZnbc/L+3ht9/Iu2zS3kCMBFUQk48eFWB4mUQmt80V4lnuENh0fpZ9H6x//VN
TaYZ3w2BVWvDuARpqQpxV23VIQ==
-----END CERTIFICATE-----

View File

@@ -1,51 +1,49 @@
-----BEGIN CERTIFICATE-----
MIIFBTCCBKugAwIBAgIQL+c9oQXpvdcOD3BKAncbgDAKBggqhkjOPQQDAjCBkjEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxODA2BgNVBAMT
L0NPTU9ETyBFQ0MgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQSAy
MB4XDTE4MDcxMTAwMDAwMFoXDTE5MDExNzIzNTk1OVowbDEhMB8GA1UECxMYRG9t
YWluIENvbnRyb2wgVmFsaWRhdGVkMSEwHwYDVQQLExhQb3NpdGl2ZVNTTCBNdWx0
aS1Eb21haW4xJDAiBgNVBAMTG3NzbDgwMzAyNS5jbG91ZGZsYXJlc3NsLmNvbTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABMap9sMZnCzTXID1chTOmtOk8p6+SHbG
3fmyJJljI7sN9RddlLKar9VBS48WguVv1R6trvERIYj8TzKCVBzu9mmjggMGMIID
AjAfBgNVHSMEGDAWgBRACWFn8LyDcU/eEggsb9TUK3Y9ljAdBgNVHQ4EFgQUd/6a
t8j7v5DsL7xWacf8VyzOLJcwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCME8GA1UdIARIMEYwOgYLKwYB
BAGyMQECAgcwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv
bS9DUFMwCAYGZ4EMAQIBMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwuY29t
b2RvY2E0LmNvbS9DT01PRE9FQ0NEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVy
Q0EyLmNybDCBiAYIKwYBBQUHAQEEfDB6MFEGCCsGAQUFBzAChkVodHRwOi8vY3J0
LmNvbW9kb2NhNC5jb20vQ09NT0RPRUNDRG9tYWluVmFsaWRhdGlvblNlY3VyZVNl
cnZlckNBMi5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLmNvbW9kb2NhNC5j
b20wSAYDVR0RBEEwP4Ibc3NsODAzMDI1LmNsb3VkZmxhcmVzc2wuY29tghAqLmhz
Y29zY2RuNDAubmV0gg5oc2Nvc2NkbjQwLm5ldDCCAQMGCisGAQQB1nkCBAIEgfQE
gfEA7wB2AO5Lvbd1zmC64UJpH6vhnmajD35fsHLYgwDEe4l6qP3LAAABZIbVA88A
AAQDAEcwRQIhANtN489Izy3iss/eF8rUw/gir8rqyA2t3lpxnco+J2NlAiBBku5M
iGD8whW5/31byPj0/ype1MmG0QYrq3qWvYiQ3QB1AHR+2oMxrTMQkSGcziVPQnDC
v/1eQiAIxjc1eeYQe8xWAAABZIbVBB4AAAQDAEYwRAIgSjcL7B4cbgm2XED69G7/
iFPe2zkWhxnkgGISSwuXw1gCICzwPmfbjEfwDNXEuBs7JXkPRaT1pi7hZ9aR5wJJ
TKH9MAoGCCqGSM49BAMCA0gAMEUCIQDqxmFLcme3Ldd+jiMQf7fT5pSezZfMOL0S
cNmfGvNtPQIgec3sO/ylnnaztCy5KDjYsnh+rm01bxs+nz2DnOPF+xo=
MIIEszCCBFigAwIBAgIQPsyDSg/4u1zAaokQ8O+fNDAKBggqhkjOPQQDAjCBhTEL
MAkGA1UEBhMCR0IxEjAQBgNVBAgMCVNvbWUgQXJlYTESMBAGA1UEBwwJU29tZSBD
aXR5MRowGAYDVQQKDBFGb29iYXIgQ0EgTGltaXRlZDEyMDAGA1UEAwwpRm9vYmFy
IEVDQyBEb21haW4gVmFsaWRhdGlvbiBJbnRlcm1lZGlhdGUwHhcNMTgwNzExMDAw
MDAwWhcNMTkwMTE3MjM1OTU5WjBXMRwwGgYDVQQLDBNTb21ldGhpbmcgVmFsaWRh
dGVkMRwwGgYDVQQLDBNGb29CYXJUTFMgVmFsaWRhdGVkMRkwFwYDVQQDDBB0ZXN0
LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+vpggvEvKziX
+ZyIm0fOU+5eRxgEx52Aq/XCMqbw1zSgfvjS1X3YSmaJMPO7Zq2FWBguySjaZCv0
rcRb5PBHAKOCAtUwggLRMB8GA1UdIwQYMBaAFCQHHrRyGm47tZbqXB+ByaoGGZUq
MB0GA1UdDgQWBBR95+0DJsitiyh5kXQ09IhyiN+fBTAOBgNVHQ8BAf8EBAMCB4Aw
DAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwVQYD
VR0gBE4wTDBABgsrBgEEAbIxAQICBzAxMC8GCCsGAQUFBwIBFiNodHRwczovL3Nv
bWV0aGluZy5leG1hcGxlLm9yZy9jLXAtczAIBgZngQwBAgEwPAYDVR0fBDUwMzAx
oC+gLYYraHR0cDovL2NybC5leGFtcGxlLm9yZy9mb29iYXItZWNjLWludGVyLmNy
bDBtBggrBgEFBQcBAQRhMF8wOAYIKwYBBQUHMAKGLGh0dHA6Ly9jZXJ0LmV4YW1w
bGUub3JnL2Zvb2Jhci1lY2MtaW50ZXIucGVtMCMGCCsGAQUFBzABhhdodHRwOi8v
b2NzcC5leGFtcGxlLm9yZzBGBgNVHREEPzA9ghB0ZXN0LmV4YW1wbGUuY29tghIq
LnRlc3QuZXhhbXBsZS5jb22CFXNvbWV0aGluZy5leGFtcGxlLmNvbTCCAQQGCisG
AQQB1nkCBAIEgfUEgfIA8AB3AA3h8jAr0w3BQGISCepVLvxHdHyx1+kw7w5CHrR+
Tqo0AAABlgvkaOwAAAQDAEgwRgIhALV6vDHBN7wHXrLQWkAtE7Zd4sZoqliTlbHI
qHonQIyvAiEAqIM9dOxvHXps3/hEbPdyz8xMO2HLibr37RG+0ApESFoAdQAS8U40
vVNyTIQGGcOPP3oT+Oe1YoeInG0wBYTr5YYmOgAAAZYL5GjlAAAEAwBGMEQCIFpF
0LKEUe9jC8VjqihFxZwTjoOhL+9n6iF6Yv4MxlyQAiBvrf+YrbKFf6+naDVR+ZPn
LMPWMvzwakYVJ9fevRpXhDAKBggqhkjOPQQDAgNJADBGAiEA/pw5XBaGUq2O+Aiq
jqiZG+uIdVWgxPnTHDWvWAWruA8CIQDRNTFJHMg+cVRfp3nhoTQmEl8bIQjI64O6
CMfYyUA62w==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDnzCCAyWgAwIBAgIQWyXOaQfEJlVm0zkMmalUrTAKBggqhkjOPQQDAzCBhTEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwOTI1MDAw
MDAwWhcNMjkwOTI0MjM1OTU5WjCBkjELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
T0RPIENBIExpbWl0ZWQxODA2BgNVBAMTL0NPTU9ETyBFQ0MgRG9tYWluIFZhbGlk
YXRpb24gU2VjdXJlIFNlcnZlciBDQSAyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEAjgZgTrJaYRwWQKOqIofMN+83gP8eR06JSxrQSEYgur5PkrkM8wSzypD/A7y
ZADA4SVQgiTNtkk4DyVHkUikraOCAWYwggFiMB8GA1UdIwQYMBaAFHVxpxlIGbyd
nepBR9+UxEh3mdN5MB0GA1UdDgQWBBRACWFn8LyDcU/eEggsb9TUK3Y9ljAOBgNV
HQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUEFjAUBggrBgEF
BQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgGBmeBDAECATBMBgNV
HR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9FQ0ND
ZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDByBggrBgEFBQcBAQRmMGQwOwYIKwYB
BQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET0VDQ0FkZFRydXN0
Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC5jb21vZG9jYTQuY29tMAoG
CCqGSM49BAMDA2gAMGUCMQCsaEclgBNPE1bAojcJl1pQxOfttGHLKIoKETKm4nHf
EQGJbwd6IGZrGNC5LkP3Um8CMBKFfI4TZpIEuppFCZRKMGHRSdxv6+ctyYnPHmp8
7IXOMCVZuoFwNLg0f+cB0eLLUg==
MIIDbzCCAvWgAwIBAgIRAMmq2dHgUHTn6uYuDrNBdeEwCgYIKoZIzj0EAwMwfjEL
MAkGA1UEBhMCR0IxEjAQBgNVBAgMCVNvbWUgQXJlYTESMBAGA1UEBwwJU29tZSBD
aXR5MRowGAYDVQQKDBFGb29iYXIgQ0EgTGltaXRlZDErMCkGA1UEAwwiRm9vYmFy
IEVDQyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNDA5MjUwMDAwMDBaFw0y
OTA5MjQyMzU5NTlaMIGFMQswCQYDVQQGEwJHQjESMBAGA1UECAwJU29tZSBBcmVh
MRIwEAYDVQQHDAlTb21lIENpdHkxGjAYBgNVBAoMEUZvb2JhciBDQSBMaW1pdGVk
MTIwMAYDVQQDDClGb29iYXIgRUNDIERvbWFpbiBWYWxpZGF0aW9uIEludGVybWVk
aWF0ZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLpHeAtoMOHdTEyZgpgsrDoq
ANjAEc+F3mFA4igvAFQLHtG+6nZ8tZiuG5PgFLRitiFrwgyRpDkUbposJ8HpRgOj
ggFKMIIBRjAfBgNVHSMEGDAWgBT7c0E1KzfUH+rPELnSxmfWdaHBLzAdBgNVHQ4E
FgQUJAcetHIabju1lupcH4HJqgYZlSowDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB
/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBsGA1Ud
IAQUMBIwBgYEVR0gADAIBgZngQwBAgEwOQYDVR0fBDIwMDAuoCygKoYoaHR0cDov
L2NybC5leGFtcGxlLm9yZy9mb29iYXItZWNjLWNhLmNybDBpBggrBgEFBQcBAQRd
MFswNAYIKwYBBQUHMAKGKGh0dHA6Ly9jcmwuZXhhbXBsZS5vcmcvZm9vYmFyLWVj
Yy1jYS5jcmwwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmV4YW1wbGUub3JnMAoG
CCqGSM49BAMDA2gAMGUCMQCVJiQwy/ityeuwAC503m/0FYYRfm31WVQGqcBJ7rfR
oipUZnbc/L+3ht9/Iu2zS3kCMBFUQk48eFWB4mUQmt80V4lnuENh0fpZ9H6x//VN
TaYZ3w2BVWvDuARpqQpxV23VIQ==
-----END CERTIFICATE-----

View File

@@ -1,16 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
MIICejCCAgCgAwIBAgIRAIn2LXSQTbYLB3pjwhZeevMwCgYIKoZIzj0EAwMwfjEL
MAkGA1UEBhMCR0IxEjAQBgNVBAgMCVNvbWUgQXJlYTESMBAGA1UEBwwJU29tZSBD
aXR5MRowGAYDVQQKDBFGb29iYXIgQ0EgTGltaXRlZDErMCkGA1UEAwwiRm9vYmFy
IEVDQyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wODAzMDYwMDAwMDBaFw0z
ODAxMTgyMzU5NTlaMH4xCzAJBgNVBAYTAkdCMRIwEAYDVQQIDAlTb21lIEFyZWEx
EjAQBgNVBAcMCVNvbWUgQ2l0eTEaMBgGA1UECgwRRm9vYmFyIENBIExpbWl0ZWQx
KzApBgNVBAMMIkZvb2JhciBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwdjAQ
BgcqhkjOPQIBBgUrgQQAIgNiAASRaDOCvo4UiPqmAoBPCcL46NXofTrgZRTzXubj
/JTvteymxuhY4cawTiHuDXN5hXUteIa4AEpWdFokM8SwqePgvE1Rtfseuqp/lo5E
mi6I0zrYxoaZKyNIPOMZZnUM4G+jQjBAMB0GA1UdDgQWBBT7c0E1KzfUH+rPELnS
xmfWdaHBLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjO
PQQDAwNoADBlAjEA+U6IpCxxwBw5jfHrIZ09e5b6fA5S++kgBlJ9if4/LBgxdmoh
oPh9zMJ5pkhrCj74AjBT7tW80y286ZwJNGzYBWj5Iq+cP6zj+VsX24ygpg7qOt9o
y714YjfKRYDB1oPEXIQ=
-----END CERTIFICATE-----

View File

@@ -1,29 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIFBTCCBKugAwIBAgIQL+c9oQXpvdcOD3BKAncbgDAKBggqhkjOPQQDAjCBkjEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxODA2BgNVBAMT
L0NPTU9ETyBFQ0MgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQSAy
MB4XDTE4MDcxMTAwMDAwMFoXDTE5MDExNzIzNTk1OVowbDEhMB8GA1UECxMYRG9t
YWluIENvbnRyb2wgVmFsaWRhdGVkMSEwHwYDVQQLExhQb3NpdGl2ZVNTTCBNdWx0
aS1Eb21haW4xJDAiBgNVBAMTG3NzbDgwMzAyNS5jbG91ZGZsYXJlc3NsLmNvbTBZ
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABMap9sMZnCzTXID1chTOmtOk8p6+SHbG
3fmyJJljI7sN9RddlLKar9VBS48WguVv1R6trvERIYj8TzKCVBzu9mmjggMGMIID
AjAfBgNVHSMEGDAWgBRACWFn8LyDcU/eEggsb9TUK3Y9ljAdBgNVHQ4EFgQUd/6a
t8j7v5DsL7xWacf8VyzOLJcwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAw
HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCME8GA1UdIARIMEYwOgYLKwYB
BAGyMQECAgcwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNv
bS9DUFMwCAYGZ4EMAQIBMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwuY29t
b2RvY2E0LmNvbS9DT01PRE9FQ0NEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVy
Q0EyLmNybDCBiAYIKwYBBQUHAQEEfDB6MFEGCCsGAQUFBzAChkVodHRwOi8vY3J0
LmNvbW9kb2NhNC5jb20vQ09NT0RPRUNDRG9tYWluVmFsaWRhdGlvblNlY3VyZVNl
cnZlckNBMi5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLmNvbW9kb2NhNC5j
b20wSAYDVR0RBEEwP4Ibc3NsODAzMDI1LmNsb3VkZmxhcmVzc2wuY29tghAqLmhz
Y29zY2RuNDAubmV0gg5oc2Nvc2NkbjQwLm5ldDCCAQMGCisGAQQB1nkCBAIEgfQE
gfEA7wB2AO5Lvbd1zmC64UJpH6vhnmajD35fsHLYgwDEe4l6qP3LAAABZIbVA88A
AAQDAEcwRQIhANtN489Izy3iss/eF8rUw/gir8rqyA2t3lpxnco+J2NlAiBBku5M
iGD8whW5/31byPj0/ype1MmG0QYrq3qWvYiQ3QB1AHR+2oMxrTMQkSGcziVPQnDC
v/1eQiAIxjc1eeYQe8xWAAABZIbVBB4AAAQDAEYwRAIgSjcL7B4cbgm2XED69G7/
iFPe2zkWhxnkgGISSwuXw1gCICzwPmfbjEfwDNXEuBs7JXkPRaT1pi7hZ9aR5wJJ
TKH9MAoGCCqGSM49BAMCA0gAMEUCIQDqxmFLcme3Ldd+jiMQf7fT5pSezZfMOL0S
cNmfGvNtPQIgec3sO/ylnnaztCy5KDjYsnh+rm01bxs+nz2DnOPF+xo=
MIIEszCCBFigAwIBAgIQPsyDSg/4u1zAaokQ8O+fNDAKBggqhkjOPQQDAjCBhTEL
MAkGA1UEBhMCR0IxEjAQBgNVBAgMCVNvbWUgQXJlYTESMBAGA1UEBwwJU29tZSBD
aXR5MRowGAYDVQQKDBFGb29iYXIgQ0EgTGltaXRlZDEyMDAGA1UEAwwpRm9vYmFy
IEVDQyBEb21haW4gVmFsaWRhdGlvbiBJbnRlcm1lZGlhdGUwHhcNMTgwNzExMDAw
MDAwWhcNMTkwMTE3MjM1OTU5WjBXMRwwGgYDVQQLDBNTb21ldGhpbmcgVmFsaWRh
dGVkMRwwGgYDVQQLDBNGb29CYXJUTFMgVmFsaWRhdGVkMRkwFwYDVQQDDBB0ZXN0
LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+vpggvEvKziX
+ZyIm0fOU+5eRxgEx52Aq/XCMqbw1zSgfvjS1X3YSmaJMPO7Zq2FWBguySjaZCv0
rcRb5PBHAKOCAtUwggLRMB8GA1UdIwQYMBaAFCQHHrRyGm47tZbqXB+ByaoGGZUq
MB0GA1UdDgQWBBR95+0DJsitiyh5kXQ09IhyiN+fBTAOBgNVHQ8BAf8EBAMCB4Aw
DAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwVQYD
VR0gBE4wTDBABgsrBgEEAbIxAQICBzAxMC8GCCsGAQUFBwIBFiNodHRwczovL3Nv
bWV0aGluZy5leG1hcGxlLm9yZy9jLXAtczAIBgZngQwBAgEwPAYDVR0fBDUwMzAx
oC+gLYYraHR0cDovL2NybC5leGFtcGxlLm9yZy9mb29iYXItZWNjLWludGVyLmNy
bDBtBggrBgEFBQcBAQRhMF8wOAYIKwYBBQUHMAKGLGh0dHA6Ly9jZXJ0LmV4YW1w
bGUub3JnL2Zvb2Jhci1lY2MtaW50ZXIucGVtMCMGCCsGAQUFBzABhhdodHRwOi8v
b2NzcC5leGFtcGxlLm9yZzBGBgNVHREEPzA9ghB0ZXN0LmV4YW1wbGUuY29tghIq
LnRlc3QuZXhhbXBsZS5jb22CFXNvbWV0aGluZy5leGFtcGxlLmNvbTCCAQQGCisG
AQQB1nkCBAIEgfUEgfIA8AB3AA3h8jAr0w3BQGISCepVLvxHdHyx1+kw7w5CHrR+
Tqo0AAABlgvkaOwAAAQDAEgwRgIhALV6vDHBN7wHXrLQWkAtE7Zd4sZoqliTlbHI
qHonQIyvAiEAqIM9dOxvHXps3/hEbPdyz8xMO2HLibr37RG+0ApESFoAdQAS8U40
vVNyTIQGGcOPP3oT+Oe1YoeInG0wBYTr5YYmOgAAAZYL5GjlAAAEAwBGMEQCIFpF
0LKEUe9jC8VjqihFxZwTjoOhL+9n6iF6Yv4MxlyQAiBvrf+YrbKFf6+naDVR+ZPn
LMPWMvzwakYVJ9fevRpXhDAKBggqhkjOPQQDAgNJADBGAiEA/pw5XBaGUq2O+Aiq
jqiZG+uIdVWgxPnTHDWvWAWruA8CIQDRNTFJHMg+cVRfp3nhoTQmEl8bIQjI64O6
CMfYyUA62w==
-----END CERTIFICATE-----

View File

@@ -1,32 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFjTCCA3WgAwIBAgIRANOxciY0IzLc9AUoUSrsnGowDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTYxMDA2MTU0MzU1
WhcNMjExMDA2MTU0MzU1WjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDMwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX
NSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf
89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl
Npi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc
Gu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz
uEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB
AAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU
BgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB
FiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo
SmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js
LnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF
BQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG
AQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD
VR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB
ABnPdSA0LTqmRf/Q1eaM2jLonG4bQdEnqOJQ8nCqxOeTRrToEKtwT++36gTSlBGx
A/5dut82jJQ2jxN8RI8L9QFXrWi4xXnA2EqA10yjHiR6H9cj6MFiOnb5In1eWsRM
UM2v3e9tNsCAgBukPHAg1lQh07rvFKm/Bz9BCjaxorALINUfZ9DD64j2igLIxle2
DPxW8dI/F2loHMjXZjqG8RkqZUdoxtID5+90FgsGIfkMpqgRS05f4zPbCEHqCXl1
eO5HyELTgcVlLXXQDgAWnRzut1hFJeczY1tjQQno6f6s+nMydLN26WuU4s3UYvOu
OsUxRlJu7TSRHqDC3lSE5XggVkzdaPkuKGQbGpny+01/47hfXXNB7HntWNZ6N2Vw
p7G6OfY+YQrZwIaQmhrIqJZuigsrbe3W+gdn5ykE9+Ky0VgVUsfxo52mwFYs1JKY
2PGDuWx8M6DlS6qQkvHaRUo0FMd8TsSlbF0/v965qGFKhSDeQoMpYnwcmQilRh/0
ayLThlHLN81gSkJjVrPI0Y8xCVPB4twb1PFUd2fPM3sA1tJ83sZ5v8vgFv2yofKR
PB0t6JzUA81mSqM3kxl5e+IZwhYAyO0OTg3/fs8HqGTNKd9BqoUwSRBzp06JMg5b
rUCGwbCUDI0mxadJ3Bz4WxR6fyNpBK2yAinWEsikxqEt
MIIFlTCCA32gAwIBAgIQcs2rppa+gJBd8BoSqQ5PNzANBgkqhkiG9w0BAQsFADBJ
MQswCQYDVQQGEwJVUzEhMB8GA1UECgwYRm9vIEJheiBCYW0gSW5jb3Jwb3JhdGVk
MRcwFQYDVQQDDA5Gb29iYXpiYW0gUm9vdDAeFw0xNjEwMDYxNTQzNTVaFw0yMTEw
MDYxNTQzNTVaMEgxCzAJBgNVBAYTAlVTMR8wHQYDVQQKDBZGb28gQmF6IEJhbSBT
dWJzaWRpYXJ5MRgwFgYDVQQDDA9Gb29CYXpCYW0gSW50ZXIwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQCY7nVgTtfjEIH65ilTvcxOpbSPZOqya9RyvO/c
nP7b9pl08BEhd9FwiZOE9F+hiqywzxdac6vMQ6nv1JOAEyPX1xnw8QMVcKJhxAWU
F9mn+SQOXK1BuRCXQSPYqAweQr39Hfnd3xX/XKvneso2NXwSTF4A5mddZnXmUL2X
+Tvg85/ARGOgtd3ZNk9vHgzhdoFtkV+KnuVCfCQ/gL3NQakd/sZYBeLj7CXUcVnO
0OM9yyjZ51oMJHhFjK1ZXCcvqyToMePWg7P4pXn/DXOg79Stcukqxiw4vCyD2Jmv
HSsUQW4hsMnnOCTX+ZWZcOTAz6R7rK5f5A1PRoRBl71VEjDJAgMBAAGjggF4MIIB
dDAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBZBgNVHSAEUjBQ
MAgGBmeBDAECATBEBgsrBgEEAYLfEwEBATA1MDMGCCsGAQUFBwIBFidodHRwOi8v
Zm9vYmFyYmF6LmV4YW1wbGUuY29tL2Nwcy1wb2xpY3kwHQYDVR0OBBYEFGgVOaTe
s3MnP1bD3KkShc1RApS4MDsGA1UdHwQ0MDIwMKAuoCyGKmh0dHA6Ly9jcmwuZm9v
YmFyYmF6LmV4YW1wbGUuY29tL2ludGVyLmNybDB2BggrBgEFBQcBAQRqMGgwLQYI
KwYBBQUHMAGGIWh0dHA6Ly9vY3NwLmZvb2JhcmJhei5leGFtcGxlLmNvbTA3Bggr
BgEFBQcwAoYraHR0cDovL2NlcnQuZm9vYmFyYmF6LmV4YW1wbGUuY29tL2ludGVy
LnBlbTAfBgNVHSMEGDAWgBRuD6tNiub+d+RKV1u2hJmmtZ/Y1TANBgkqhkiG9w0B
AQsFAAOCAgEATjki6h8ze6qLSUEHiW5t+9g2Twg25awMJIvJL7FfeaA2MnBPYeON
A3dXZqrU2zJbVaxoBDf775hnhEPFyKZs+AUK4FNerhedDHIgcKZpcPSXVZPDqpXT
h1KKHK+DjTUGzrU2vu1yPyKYwb08bKBBEzYrkR/VNYr67VPhEVRWha8SiubpwT6U
gdkWIiR+1Der4Wjnx3Qw2VFa6P0futqnoTHMK8xdYqenUv21JKWc9VI2PQoaXOgU
Ho6JDjU7fvSTUKYC43Tbj7rCpIxd7qjOVP+3TmpS2HZrAETSgLGZUZ4jT7+qkK9i
B0CyY9dfLO1c3hHOq7Bu2XxPVRqiFvabstKfm3evUZbLOK7DU9Cm4/oWyuq+WaKO
2Mb6iHIAZMzU4yIRUAdaxdTftyW32INpFDGp8O96SteHzKJtvyQN66bbIn9PxGxy
M4M3LZQfO3FEAUaPDuqr+qscdEorxCL+eXmZCslWf9UOEVXQBbUeqn1w9zW1LjIJ
8FbcAwB8RPP3TlwGa26H5hHScPSqEGYmgZ1KvDUS3gWyudxTMaG7z/k/HiJEJO2f
atWporw+AT8Us3VQEE5FQsMKjrserfRVHioJcKXdmTkFeOr8gmaUtvcKI7tfb3gT
kq2w+pZaB4aM7Y6JA8tAKQbdFZfewTb4tVmgJd5Vgt0wBIhZxmpSCqo=
-----END CERTIFICATE-----

View File

@@ -1,31 +1,31 @@
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----

View File

@@ -1,27 +1,26 @@
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
MIIEcTCCA1mgAwIBAgIRAPE33IhXx2p7gr5AH9A9vU4wDQYJKoZIhvcNAQELBQAw
MzEdMBsGA1UECgwUQmF6YmFtIEludGVybmF0aW9uYWwxEjAQBgNVBAMMCUJhemJh
bSBDQTAeFw0xNjAzMTcxNjQwNDZaFw0yMTAzMTcxNjQwNDZaMEgxCzAJBgNVBAYT
AlVTMR8wHQYDVQQKDBZGb28gQmF6IEJhbSBTdWJzaWRpYXJ5MRgwFgYDVQQDDA9G
b29CYXpCYW0gSW50ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCY
7nVgTtfjEIH65ilTvcxOpbSPZOqya9RyvO/cnP7b9pl08BEhd9FwiZOE9F+hiqyw
zxdac6vMQ6nv1JOAEyPX1xnw8QMVcKJhxAWUF9mn+SQOXK1BuRCXQSPYqAweQr39
Hfnd3xX/XKvneso2NXwSTF4A5mddZnXmUL2X+Tvg85/ARGOgtd3ZNk9vHgzhdoFt
kV+KnuVCfCQ/gL3NQakd/sZYBeLj7CXUcVnO0OM9yyjZ51oMJHhFjK1ZXCcvqyTo
MePWg7P4pXn/DXOg79Stcukqxiw4vCyD2JmvHSsUQW4hsMnnOCTX+ZWZcOTAz6R7
rK5f5A1PRoRBl71VEjDJAgMBAAGjggFpMIIBZTASBgNVHRMBAf8ECDAGAQH/AgEA
MA4GA1UdDwEB/wQEAwIBhjBtBggrBgEFBQcBAQRhMF8wKgYIKwYBBQUHMAGGHmh0
dHA6Ly9vY3NwLmJhemJhbS5leGFtcGxlLm9yZzAxBggrBgEFBQcwAoYlaHR0cDov
L2NlcnQuYmF6YmFtLmV4YW1wbGUub3JnL2NhLnBlbTAfBgNVHSMEGDAWgBRubsNr
f5c+sYQkaPPJVXfYdwiLeTBZBgNVHSAEUjBQMAgGBmeBDAECATBEBgsrBgEEAYLf
EwEBATA1MDMGCCsGAQUFBwIBFidodHRwOi8vZm9vYmFyYmF6LmV4YW1wbGUuY29t
L2Nwcy1wb2xpY3kwNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5iYXpiYW0u
ZXhhbXBsZS5vcmcvY2EuY3JsMB0GA1UdDgQWBBRoFTmk3rNzJz9Ww9ypEoXNUQKU
uDANBgkqhkiG9w0BAQsFAAOCAQEAURdLiGPDr5sYXRdFEX4bCDHVa4+wYqAJQD//
jbwYwEcEO+uLkcSIiiNiBfT5Rr85Ovf2GZz7KpfUap8k0XEpEbBEj6FQGib/c4QB
8H8Gv/waG2gVfLPHUNbLuMU1juuirk1DkF+TE+xk+34NILcqHh8FQaluzIzoFrJF
+KE4R3oLEjfkpbizyFRY9VNwFGPCy9yPv1JietNiS+bKM7W5YBzfvmZ9mngzTqRG
c21uPnecVYC2LZl6v61Tl7S2RacoQEB8LZYKFIIbolmh7Ki/j7+0qvlUpUTgkme6
6bCQqsatuQgmhjeYeY519kO85btIhAwu2gCe3SMoJT6B0kls1g==
-----END CERTIFICATE-----

View File

@@ -1,72 +1,60 @@
-----BEGIN CERTIFICATE-----
MIIH5jCCBs6gAwIBAgISA2gSCm/BtvCR2e2bIap5YbXaMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODA3MjcxNzMxMjdaFw0x
ODEwMjUxNzMxMjdaMB4xHDAaBgNVBAMTE3d3dy5sZXRzZW5jcnlwdC5vcmcwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpL8ZjVL0MUkUAIbYO9+ZCni+c
ghGd9WhM2Ztaay6Wyh6lNoCdltdqTwUhE4O+d7UFModjM3G/KMyfuujr06c5iGKL
3saPmIzLaRPIEOUlB2rKgasKhe8mDRyRLzQSXXgnsaKcTBBuhIHvtP51ZMr05nJJ
sX/5FGjj96w+KJel6E/Ux1a1ZDOFkAYNSIrJJhA5jjIvUPr+Ri6Oc6UlhF9oueKI
uWBILxQpC778tBWdHoZeBCNTHA1VvtwC53OeuHvdZm1jB/e30Mgf5DtVizYpFXVD
mztkrd6z/3B6ZwPyfCE4KgzSf70/byOz971OJxNKTUVWedKHHDlrMxfsPclbAgMB
AAGjggTwMIIE7DAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFG1w4j/KDrYSFu7m9DPE
xRR0E5gzMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUF
BwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNy
eXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNy
eXB0Lm9yZy8wggHxBgNVHREEggHoMIIB5IIbY2VydC5pbnQteDEubGV0c2VuY3J5
cHQub3JnghtjZXJ0LmludC14Mi5sZXRzZW5jcnlwdC5vcmeCG2NlcnQuaW50LXgz
LmxldHNlbmNyeXB0Lm9yZ4IbY2VydC5pbnQteDQubGV0c2VuY3J5cHQub3Jnghxj
ZXJ0LnJvb3QteDEubGV0c2VuY3J5cHQub3Jngh9jZXJ0LnN0YWdpbmcteDEubGV0
c2VuY3J5cHQub3Jngh9jZXJ0LnN0Zy1pbnQteDEubGV0c2VuY3J5cHQub3JngiBj
ZXJ0LnN0Zy1yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ISY3AubGV0c2VuY3J5cHQu
b3JnghpjcC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ITY3BzLmxldHNlbmNyeXB0
Lm9yZ4IbY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3Jnghtjcmwucm9vdC14MS5s
ZXRzZW5jcnlwdC5vcmeCD2xldHNlbmNyeXB0Lm9yZ4IWb3JpZ2luLmxldHNlbmNy
eXB0Lm9yZ4IXb3JpZ2luMi5sZXRzZW5jcnlwdC5vcmeCFnN0YXR1cy5sZXRzZW5j
cnlwdC5vcmeCE3d3dy5sZXRzZW5jcnlwdC5vcmcwgf4GA1UdIASB9jCB8zAIBgZn
gQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYGCCsGAQUFBwIBFhpodHRwOi8vY3Bz
LmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUHAgIwgZ4MgZtUaGlzIENlcnRpZmlj
YXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9uIGJ5IFJlbHlpbmcgUGFydGllcyBh
bmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIENlcnRpZmljYXRlIFBvbGlj
eSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNyeXB0Lm9yZy9yZXBvc2l0b3J5LzCC
AQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2AMEWSuCnctLUOS3ICsEHcNTwxJvemRpI
QMH6B1Fk9jNgAAABZN0ChToAAAQDAEcwRQIgblal8oXnfoopr1+dWVhvBx+sqHT0
eLYxJHBTaRp3j1QCIQDhFQqMk6DDXUgcU12K36zLVFwJTdAJI4RBisnX+g+W0AB2
ACk8UZZUyDlluqpQ/FgH1Ldvv1h6KXLcpMMM9OVFR/R4AAABZN0Chz4AAAQDAEcw
RQIhAImOjvkritUNKJZB7dcUtjoyIbfNwdCspvRiEzXuvVQoAiAZryoyg3TcMun5
Gb2dEn1cttMnPW9u670/JdRjvjU/wTANBgkqhkiG9w0BAQsFAAOCAQEAGepCmckP
Tn9Sz268FEwkdD+6wWaPfeYlh+9nacFh90nQ35EYQMOK8a+X7ixHGbRz19On3Wt4
1fcbPa9SefocTjAintMwwreCxpRTmwGACYojd7vRWEmA6q7+/HO2BfZahWzclOjw
mSDBycDEm8R0ZK52vYjzVno8x0mrsmSO0403S/6syYB/guH6P17kIBw+Tgx6/i/c
I1C6MoFkuaAKUUcZmgGGBgE+L/7cWtWjbkVXyA3ZQQy9G7rcBT+N/RrDfBh4iZDq
jAN5UIIYL8upBhjiMYVuoJrH2nklzEwr5SWKcccJX5eWkGLUwlcY9LGAA8+17l2I
l1Ou20Dm9TxnNw==
MIIF5jCCBM6gAwIBAgIQJAW7/PQP3CsUKyKrmF41VjANBgkqhkiG9w0BAQsFADBI
MQswCQYDVQQGEwJVUzEfMB0GA1UECgwWRm9vIEJheiBCYW0gU3Vic2lkaWFyeTEY
MBYGA1UEAwwPRm9vQmF6QmFtIEludGVyMB4XDTE4MDcyNzE3MzEyN1oXDTE4MTAy
NTE3MzEyN1owFjEUMBIGA1UEAwwLZXhhbXBsZS5uZXQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCUMjdm90Sus3PioePdOirGfzyeNsiOdq73lyXvNarU
cH5RbTml3HyQ3dQOIHkzpT24q0MUp2IaCRnvueEm7K+15i0O5egWhLIe0JdalDS0
X8JqtaQRYcfoRT+oJGvpl5Cb7aKswdDeyOx2fQlZzlvNt0Ykm5JCCWQ1m03l2Vyc
4KrAhsQzNz6xidH5gTzcLl0sru/b91v1YzkryqAA4WCg9IEqLA4/TWryQcM6w1jX
zgcTf3zikKH/aWYMfhPQ+u4lEYNWm59ncSRe7DxOG0UBkTI3cKWVvklG6RGmYUT6
RF3sOtxSSOejYHW9PvSVkhmjlEYcLx9K1xg4lmBreolPAgMBAAGjggL8MIIC+DAO
BgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFKrSg0bjsNT/azaYMbqxdfHe8FWgMB8GA1Ud
IwQYMBaAFGgVOaTes3MnP1bD3KkShc1RApS4MHYGCCsGAQUFBwEBBGowaDAtBggr
BgEFBQcwAYYhaHR0cDovL29jc3AuZm9vYmFyYmF6LmV4YW1wbGUuY29tMDcGCCsG
AQUFBzAChitodHRwOi8vY2VydC5mb29iYXJiYXouZXhhbXBsZS5jb20vaW50ZXIu
cGVtMH4GA1UdEQR3MHWCC2V4YW1wbGUubmV0gg93d3cuZXhhbXBsZS5uZXSCD2Zv
by5leGFtcGxlLm5ldIIPYmFyLmV4YW1wbGUubmV0gg9iYXouZXhhbXBsZS5uZXSC
D2JhbS5leGFtcGxlLm5ldIIRKi5iYW0uZXhhbXBsZS5uZXQwfAYDVR0gBHUwczAI
BgZngQwBAgEwZwYLKwYBBAGC3xMBAQEwWDA2BggrBgEFBQcCARYqaHR0cDovL2Nw
cy5mb29iYXJiYXouZXhhbXBsZS5jb20vc29tZXRoaW5nMB4GCCsGAQUFBwICMBIM
EEJsYWJsYSB3aGF0ZXZlci4wggEBBgorBgEEAdZ5AgQCBIHyBIHvAO0AdADd3Mo0
ldfhFgXnlTL6x5/4PRxQ39sAOhQSdgosrLvIKgAAAZYL7QgtAAAEAwBFMEMCIAXk
u/W4fMbkoOkHguRt8RfxVy6dgwpi9A8IDTRkOn1XAh9g9RjiBvMJdM/+UQS+WNXa
xOqA5JzUfvCFjbYLbEZ5AHUADeHyMCvTDcFAYhIJ6lUu/Ed0fLHX6TDvDkIetH5O
qjQAAAGWC+0H2AAABAMARjBEAiB26F5G8YPuZ11gAfEXqAFpVk01VcbOsS6w3dn2
CJf6zgIgeEWCpg9tsQ8dB7/hU1zOmkZom62VDXvk8Cs+yscbQq4wDQYJKoZIhvcN
AQELBQADggEBABB+hQSRRdeAvg4V/FL/JNncN+gW04KA8bwP30iLRLOrHFvu94Wl
S8QymnFaouIRehYa6VrzSdGc8qqSvRGq87dv5jSPMS+vz8+PL1jPGie62HSrBtm7
TTUPQ+5zu1b/G4L5ojcHqwcaSPAUygzFETFceYLaXqmKKx4O3MBMfm3wDp+OnEZW
GtGwQAsGRIfLPZhxY+HQG0brhZKzxR0oLMgtZg+lWp2jati6zvS663mGt+AZsj2f
bpx65OcZIqtBBKjLUP00Cz/xwh59KQre+lP7NbtAkeBQ+ufQPBwZEN8NDvnUou0I
Mw6bgRI+nSUgXOqFk4ip6vsHiRU3dLu4P1g=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
MIIEcTCCA1mgAwIBAgIRAPE33IhXx2p7gr5AH9A9vU4wDQYJKoZIhvcNAQELBQAw
MzEdMBsGA1UECgwUQmF6YmFtIEludGVybmF0aW9uYWwxEjAQBgNVBAMMCUJhemJh
bSBDQTAeFw0xNjAzMTcxNjQwNDZaFw0yMTAzMTcxNjQwNDZaMEgxCzAJBgNVBAYT
AlVTMR8wHQYDVQQKDBZGb28gQmF6IEJhbSBTdWJzaWRpYXJ5MRgwFgYDVQQDDA9G
b29CYXpCYW0gSW50ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCY
7nVgTtfjEIH65ilTvcxOpbSPZOqya9RyvO/cnP7b9pl08BEhd9FwiZOE9F+hiqyw
zxdac6vMQ6nv1JOAEyPX1xnw8QMVcKJhxAWUF9mn+SQOXK1BuRCXQSPYqAweQr39
Hfnd3xX/XKvneso2NXwSTF4A5mddZnXmUL2X+Tvg85/ARGOgtd3ZNk9vHgzhdoFt
kV+KnuVCfCQ/gL3NQakd/sZYBeLj7CXUcVnO0OM9yyjZ51oMJHhFjK1ZXCcvqyTo
MePWg7P4pXn/DXOg79Stcukqxiw4vCyD2JmvHSsUQW4hsMnnOCTX+ZWZcOTAz6R7
rK5f5A1PRoRBl71VEjDJAgMBAAGjggFpMIIBZTASBgNVHRMBAf8ECDAGAQH/AgEA
MA4GA1UdDwEB/wQEAwIBhjBtBggrBgEFBQcBAQRhMF8wKgYIKwYBBQUHMAGGHmh0
dHA6Ly9vY3NwLmJhemJhbS5leGFtcGxlLm9yZzAxBggrBgEFBQcwAoYlaHR0cDov
L2NlcnQuYmF6YmFtLmV4YW1wbGUub3JnL2NhLnBlbTAfBgNVHSMEGDAWgBRubsNr
f5c+sYQkaPPJVXfYdwiLeTBZBgNVHSAEUjBQMAgGBmeBDAECATBEBgsrBgEEAYLf
EwEBATA1MDMGCCsGAQUFBwIBFidodHRwOi8vZm9vYmFyYmF6LmV4YW1wbGUuY29t
L2Nwcy1wb2xpY3kwNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5iYXpiYW0u
ZXhhbXBsZS5vcmcvY2EuY3JsMB0GA1UdDgQWBBRoFTmk3rNzJz9Ww9ypEoXNUQKU
uDANBgkqhkiG9w0BAQsFAAOCAQEAURdLiGPDr5sYXRdFEX4bCDHVa4+wYqAJQD//
jbwYwEcEO+uLkcSIiiNiBfT5Rr85Ovf2GZz7KpfUap8k0XEpEbBEj6FQGib/c4QB
8H8Gv/waG2gVfLPHUNbLuMU1juuirk1DkF+TE+xk+34NILcqHh8FQaluzIzoFrJF
+KE4R3oLEjfkpbizyFRY9VNwFGPCy9yPv1JietNiS+bKM7W5YBzfvmZ9mngzTqRG
c21uPnecVYC2LZl6v61Tl7S2RacoQEB8LZYKFIIbolmh7Ki/j7+0qvlUpUTgkme6
6bCQqsatuQgmhjeYeY519kO85btIhAwu2gCe3SMoJT6B0kls1g==
-----END CERTIFICATE-----

View File

@@ -1,20 +1,20 @@
-----BEGIN CERTIFICATE-----
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
QASgYpmsQA==
-----END CERTIFICATE-----

View File

@@ -1,45 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIH5jCCBs6gAwIBAgISA2gSCm/BtvCR2e2bIap5YbXaMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODA3MjcxNzMxMjdaFw0x
ODEwMjUxNzMxMjdaMB4xHDAaBgNVBAMTE3d3dy5sZXRzZW5jcnlwdC5vcmcwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpL8ZjVL0MUkUAIbYO9+ZCni+c
ghGd9WhM2Ztaay6Wyh6lNoCdltdqTwUhE4O+d7UFModjM3G/KMyfuujr06c5iGKL
3saPmIzLaRPIEOUlB2rKgasKhe8mDRyRLzQSXXgnsaKcTBBuhIHvtP51ZMr05nJJ
sX/5FGjj96w+KJel6E/Ux1a1ZDOFkAYNSIrJJhA5jjIvUPr+Ri6Oc6UlhF9oueKI
uWBILxQpC778tBWdHoZeBCNTHA1VvtwC53OeuHvdZm1jB/e30Mgf5DtVizYpFXVD
mztkrd6z/3B6ZwPyfCE4KgzSf70/byOz971OJxNKTUVWedKHHDlrMxfsPclbAgMB
AAGjggTwMIIE7DAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFG1w4j/KDrYSFu7m9DPE
xRR0E5gzMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUF
BwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNy
eXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNy
eXB0Lm9yZy8wggHxBgNVHREEggHoMIIB5IIbY2VydC5pbnQteDEubGV0c2VuY3J5
cHQub3JnghtjZXJ0LmludC14Mi5sZXRzZW5jcnlwdC5vcmeCG2NlcnQuaW50LXgz
LmxldHNlbmNyeXB0Lm9yZ4IbY2VydC5pbnQteDQubGV0c2VuY3J5cHQub3Jnghxj
ZXJ0LnJvb3QteDEubGV0c2VuY3J5cHQub3Jngh9jZXJ0LnN0YWdpbmcteDEubGV0
c2VuY3J5cHQub3Jngh9jZXJ0LnN0Zy1pbnQteDEubGV0c2VuY3J5cHQub3JngiBj
ZXJ0LnN0Zy1yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ISY3AubGV0c2VuY3J5cHQu
b3JnghpjcC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ITY3BzLmxldHNlbmNyeXB0
Lm9yZ4IbY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3Jnghtjcmwucm9vdC14MS5s
ZXRzZW5jcnlwdC5vcmeCD2xldHNlbmNyeXB0Lm9yZ4IWb3JpZ2luLmxldHNlbmNy
eXB0Lm9yZ4IXb3JpZ2luMi5sZXRzZW5jcnlwdC5vcmeCFnN0YXR1cy5sZXRzZW5j
cnlwdC5vcmeCE3d3dy5sZXRzZW5jcnlwdC5vcmcwgf4GA1UdIASB9jCB8zAIBgZn
gQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYGCCsGAQUFBwIBFhpodHRwOi8vY3Bz
LmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUHAgIwgZ4MgZtUaGlzIENlcnRpZmlj
YXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9uIGJ5IFJlbHlpbmcgUGFydGllcyBh
bmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIENlcnRpZmljYXRlIFBvbGlj
eSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNyeXB0Lm9yZy9yZXBvc2l0b3J5LzCC
AQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2AMEWSuCnctLUOS3ICsEHcNTwxJvemRpI
QMH6B1Fk9jNgAAABZN0ChToAAAQDAEcwRQIgblal8oXnfoopr1+dWVhvBx+sqHT0
eLYxJHBTaRp3j1QCIQDhFQqMk6DDXUgcU12K36zLVFwJTdAJI4RBisnX+g+W0AB2
ACk8UZZUyDlluqpQ/FgH1Ldvv1h6KXLcpMMM9OVFR/R4AAABZN0Chz4AAAQDAEcw
RQIhAImOjvkritUNKJZB7dcUtjoyIbfNwdCspvRiEzXuvVQoAiAZryoyg3TcMun5
Gb2dEn1cttMnPW9u670/JdRjvjU/wTANBgkqhkiG9w0BAQsFAAOCAQEAGepCmckP
Tn9Sz268FEwkdD+6wWaPfeYlh+9nacFh90nQ35EYQMOK8a+X7ixHGbRz19On3Wt4
1fcbPa9SefocTjAintMwwreCxpRTmwGACYojd7vRWEmA6q7+/HO2BfZahWzclOjw
mSDBycDEm8R0ZK52vYjzVno8x0mrsmSO0403S/6syYB/guH6P17kIBw+Tgx6/i/c
I1C6MoFkuaAKUUcZmgGGBgE+L/7cWtWjbkVXyA3ZQQy9G7rcBT+N/RrDfBh4iZDq
jAN5UIIYL8upBhjiMYVuoJrH2nklzEwr5SWKcccJX5eWkGLUwlcY9LGAA8+17l2I
l1Ou20Dm9TxnNw==
MIIF5jCCBM6gAwIBAgIQJAW7/PQP3CsUKyKrmF41VjANBgkqhkiG9w0BAQsFADBI
MQswCQYDVQQGEwJVUzEfMB0GA1UECgwWRm9vIEJheiBCYW0gU3Vic2lkaWFyeTEY
MBYGA1UEAwwPRm9vQmF6QmFtIEludGVyMB4XDTE4MDcyNzE3MzEyN1oXDTE4MTAy
NTE3MzEyN1owFjEUMBIGA1UEAwwLZXhhbXBsZS5uZXQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCUMjdm90Sus3PioePdOirGfzyeNsiOdq73lyXvNarU
cH5RbTml3HyQ3dQOIHkzpT24q0MUp2IaCRnvueEm7K+15i0O5egWhLIe0JdalDS0
X8JqtaQRYcfoRT+oJGvpl5Cb7aKswdDeyOx2fQlZzlvNt0Ykm5JCCWQ1m03l2Vyc
4KrAhsQzNz6xidH5gTzcLl0sru/b91v1YzkryqAA4WCg9IEqLA4/TWryQcM6w1jX
zgcTf3zikKH/aWYMfhPQ+u4lEYNWm59ncSRe7DxOG0UBkTI3cKWVvklG6RGmYUT6
RF3sOtxSSOejYHW9PvSVkhmjlEYcLx9K1xg4lmBreolPAgMBAAGjggL8MIIC+DAO
BgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFKrSg0bjsNT/azaYMbqxdfHe8FWgMB8GA1Ud
IwQYMBaAFGgVOaTes3MnP1bD3KkShc1RApS4MHYGCCsGAQUFBwEBBGowaDAtBggr
BgEFBQcwAYYhaHR0cDovL29jc3AuZm9vYmFyYmF6LmV4YW1wbGUuY29tMDcGCCsG
AQUFBzAChitodHRwOi8vY2VydC5mb29iYXJiYXouZXhhbXBsZS5jb20vaW50ZXIu
cGVtMH4GA1UdEQR3MHWCC2V4YW1wbGUubmV0gg93d3cuZXhhbXBsZS5uZXSCD2Zv
by5leGFtcGxlLm5ldIIPYmFyLmV4YW1wbGUubmV0gg9iYXouZXhhbXBsZS5uZXSC
D2JhbS5leGFtcGxlLm5ldIIRKi5iYW0uZXhhbXBsZS5uZXQwfAYDVR0gBHUwczAI
BgZngQwBAgEwZwYLKwYBBAGC3xMBAQEwWDA2BggrBgEFBQcCARYqaHR0cDovL2Nw
cy5mb29iYXJiYXouZXhhbXBsZS5jb20vc29tZXRoaW5nMB4GCCsGAQUFBwICMBIM
EEJsYWJsYSB3aGF0ZXZlci4wggEBBgorBgEEAdZ5AgQCBIHyBIHvAO0AdADd3Mo0
ldfhFgXnlTL6x5/4PRxQ39sAOhQSdgosrLvIKgAAAZYL7QgtAAAEAwBFMEMCIAXk
u/W4fMbkoOkHguRt8RfxVy6dgwpi9A8IDTRkOn1XAh9g9RjiBvMJdM/+UQS+WNXa
xOqA5JzUfvCFjbYLbEZ5AHUADeHyMCvTDcFAYhIJ6lUu/Ed0fLHX6TDvDkIetH5O
qjQAAAGWC+0H2AAABAMARjBEAiB26F5G8YPuZ11gAfEXqAFpVk01VcbOsS6w3dn2
CJf6zgIgeEWCpg9tsQ8dB7/hU1zOmkZom62VDXvk8Cs+yscbQq4wDQYJKoZIhvcN
AQELBQADggEBABB+hQSRRdeAvg4V/FL/JNncN+gW04KA8bwP30iLRLOrHFvu94Wl
S8QymnFaouIRehYa6VrzSdGc8qqSvRGq87dv5jSPMS+vz8+PL1jPGie62HSrBtm7
TTUPQ+5zu1b/G4L5ojcHqwcaSPAUygzFETFceYLaXqmKKx4O3MBMfm3wDp+OnEZW
GtGwQAsGRIfLPZhxY+HQG0brhZKzxR0oLMgtZg+lWp2jati6zvS663mGt+AZsj2f
bpx65OcZIqtBBKjLUP00Cz/xwh59KQre+lP7NbtAkeBQ+ufQPBwZEN8NDvnUou0I
Mw6bgRI+nSUgXOqFk4ip6vsHiRU3dLu4P1g=
-----END CERTIFICATE-----

View File

@@ -0,0 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIDMzCCAhugAwIBAgIRAMmlbGpIluNxxf+6BLQQc78wDQYJKoZIhvcNAQEFBQAw
MzEdMBsGA1UECgwUQmF6YmFtIEludGVybmF0aW9uYWwxEjAQBgNVBAMMCUJhemJh
bSBDQTAeFw0wMDA5MzAyMTEyMTlaFw0yMTA5MzAxNDAxMTVaMDMxHTAbBgNVBAoM
FEJhemJhbSBJbnRlcm5hdGlvbmFsMRIwEAYDVQQDDAlCYXpiYW0gQ0EwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3QdqfhFcDOJxKDqrrJhLIxqgnwuSJ
m6oUTsY97fBtQUpa22jDqVc7FwWvr+zTj3dYR68UUmeq0/7lqxaKwrRPVWgVPfFz
lrUQbUqRHx4IwFqb4vdH1jImkjGIRIoBk08lPkWSlxUgd2LBL2WIAff0duMHXE4v
bwoFT4B6t1ajvGdgPjbVF6YFb4zeOng7QUjDqQVvyjeu58+KL0PYlLL8GXHMrg7+
IKknBOrA+u8VEeiF9Icfvbk8o3dJjqMlkrgG6tsus/FcgVo4Lpky8XTeWFEzPD50
dIqouIcAzT2KnM2lph2gN8eZwcRIgXwPmadozUL5EJSyFwwZkY7Trkq/AgMBAAGj
QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRu
bsNrf5c+sYQkaPPJVXfYdwiLeTANBgkqhkiG9w0BAQUFAAOCAQEAV0Iw/I/nMPje
VERXN54oapMIBn8wAPkPA2dGmr8O9cR9k6mM5jsltBhJUxmIAop2ROj6l1iG1ojg
oXxgkzxwByzc9kmT5rUmrb5/YLRvBWVxZVvE5uixiDUZta3IJUf2hKWzIJMRfQU6
7exXmAt6cFp4nWG3GoXw2YtJ+DwPDTJTQ/10eiCEidql/w99HqDd3YdWqFLqCvMT
p5HXUIoyEIVsxMfGBUcoaYUUD0vaQxuYk8YuJFokdapl3hxCR3FwbYlk2R9A501R
XOj464QualzdUHWW9q8fzX1qtt7M25dYEParMJTNl6uITdwf9vpmnSiTOjI4tesA
QASgYpmsQA==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIID+DCCAuCgAwIBAgIRAJ8HA1FxlTc+aM4VRmXW9AcwDQYJKoZIhvcNAQEFBQAw
ejELMAkGA1UEBhMCR0IxEjAQBgNVBAgMCVNvbWUgQXJlYTESMBAGA1UEBwwJU29t
ZSBDaXR5MRowGAYDVQQKDBFGb29iYXIgQ0EgTGltaXRlZDEnMCUGA1UEAwweRm9v
YmFyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTIwMTAwMDAwMFoXDTI5
MTIzMTIzNTk1OVowejELMAkGA1UEBhMCR0IxEjAQBgNVBAgMCVNvbWUgQXJlYTES
MBAGA1UEBwwJU29tZSBDaXR5MRowGAYDVQQKDBFGb29iYXIgQ0EgTGltaXRlZDEn
MCUGA1UEAwweRm9vYmFyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsxBSmsrlN6K7okmR/Sz86Go60FgymETP
OLwznW0s3a/2XTALC1fVx3mfMFoVA5ERbSpnKn0cVovOhy6tBLSNTL9eoUj5lIJE
UX07cY4ji/Q5Sd4p6dzUT+arOBdqpmsJCCX363GTc2j49JMoH3Xm7t2RGs13PVJb
kwWpZkmDZiXm4DZD44IyJwK1Hxhcsg8Qg0EUvb3BXhSCFeB9Cb2iL9tUxPhPV4Fu
Ero+HakxjalBFRlYbShPnLGxNbjLlIu3wLNhQjdGRQzyV3SDmqZx9ANvuJBpjDvP
L65nWUPp76VEIJw0r4gD9cgdhbeCKs7Gg4cWl5uQ8TY1Rc3UTb6GDQIDAQABo3kw
dzAdBgNVHQ4EFgQUU/xgUF0ubcDWcEXR/FC6ecqcjWEwDgYDVR0PAQH/BAQDAgEG
MA8GA1UdEwEB/wQFMAMBAf8wNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL2NybC5l
eGFtcGxlLm9yZy9mb29iYXItY2EuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQB+8NuG
nNffcLNcwGy1jayev3CiKiJbBX+VMx1EgbwL2eSO4ZtI/X2fUAX+K3FTYwp2/szj
B1h8x2rY2iJSQBCMXaMAo4k1x422adLIbcF03x9wDefewyFQxWTMSnjiDpy9GUSq
YJ1gi7TjGTd9OnyKv2/ET0eNQxX5au9Rtblz0OAZ72z3DEHG0LQddsSlKiDVvmOV
VtOBCJXFdlJSEf9pFbRRi1v1Th4oJ8xQ35w7zkGWvG2I6725bH+hr8jeHsjd0gsp
/Qvpj0b5xm8nVt1OG9o8h0uljIvRP/OWCWsPkI55i8EZqoNxnJhaKMqrV/eM41Ox
ClFnsYcsRxA3CGbk
-----END CERTIFICATE-----

View File

@@ -0,0 +1,16 @@
-----BEGIN CERTIFICATE-----
MIICejCCAgCgAwIBAgIRAIn2LXSQTbYLB3pjwhZeevMwCgYIKoZIzj0EAwMwfjEL
MAkGA1UEBhMCR0IxEjAQBgNVBAgMCVNvbWUgQXJlYTESMBAGA1UEBwwJU29tZSBD
aXR5MRowGAYDVQQKDBFGb29iYXIgQ0EgTGltaXRlZDErMCkGA1UEAwwiRm9vYmFy
IEVDQyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wODAzMDYwMDAwMDBaFw0z
ODAxMTgyMzU5NTlaMH4xCzAJBgNVBAYTAkdCMRIwEAYDVQQIDAlTb21lIEFyZWEx
EjAQBgNVBAcMCVNvbWUgQ2l0eTEaMBgGA1UECgwRRm9vYmFyIENBIExpbWl0ZWQx
KzApBgNVBAMMIkZvb2JhciBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwdjAQ
BgcqhkjOPQIBBgUrgQQAIgNiAASRaDOCvo4UiPqmAoBPCcL46NXofTrgZRTzXubj
/JTvteymxuhY4cawTiHuDXN5hXUteIa4AEpWdFokM8SwqePgvE1Rtfseuqp/lo5E
mi6I0zrYxoaZKyNIPOMZZnUM4G+jQjBAMB0GA1UdDgQWBBT7c0E1KzfUH+rPELnS
xmfWdaHBLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjO
PQQDAwNoADBlAjEA+U6IpCxxwBw5jfHrIZ09e5b6fA5S++kgBlJ9if4/LBgxdmoh
oPh9zMJ5pkhrCj74AjBT7tW80y286ZwJNGzYBWj5Iq+cP6zj+VsX24ygpg7qOt9o
y714YjfKRYDB1oPEXIQ=
-----END CERTIFICATE-----

View File

@@ -0,0 +1,33 @@
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----

View File

@@ -1,25 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB
gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw
MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW
/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u
QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY
SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv
IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/
RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4
zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd
BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB
ZQ==
-----END CERTIFICATE-----

View File

@@ -1,16 +0,0 @@
-----BEGIN CERTIFICATE-----
MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
-----END CERTIFICATE-----

View File

@@ -1,34 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
+pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
NVOFBkpdn627G190
-----END CERTIFICATE-----

View File

@@ -1,20 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----

View File

@@ -1,31 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----

View File

@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFXzCCA0egAwIBAgIRAPi9Bsi/bvOmrIX9UcRi+aAwDQYJKoZIhvcNAQELBQAw
STELMAkGA1UEBhMCVVMxITAfBgNVBAoMGEZvbyBCYXogQmFtIEluY29ycG9yYXRl
ZDEXMBUGA1UEAwwORm9vYmF6YmFtIFJvb3QwHhcNMTUwNjA0MTEwNDM4WhcNMzUw
NjA0MTEwNDM4WjBJMQswCQYDVQQGEwJVUzEhMB8GA1UECgwYRm9vIEJheiBCYW0g
SW5jb3Jwb3JhdGVkMRcwFQYDVQQDDA5Gb29iYXpiYW0gUm9vdDCCAiIwDQYJKoZI
hvcNAQEBBQADggIPADCCAgoCggIBAJYSKAN4gKgFa+4NNphBkheygnyPLpcgcTPX
+iccurSwj/Jv7ZHuzT+VciUGM3O7Y30pUk1bjlMXJQU3agaMTimgQB92/woloDIu
u/OzQchW1SP05fJAsNkIxDZRn4320v0GSNZfv0D8jeWCAa6FFnBICKKwqbIpEKYb
aG669bayrcotYzI4y6zmIAfdfqhvD9Ovpj6odFcqJIEczlh92a2lyrSF4Efpm3nk
Ilx4AHUeIriYtv+XPFjZA2DdFLWDd1lwsgcsTIEoW77h3x5rWlxyF1AFP+LZAo8D
SSabyiJCjafenQ/oYRDO+oqQsmiIM9WDzhzSkkuWOMUj2dcSgyJJFcg8OsO1Ssfo
KziL5pdOmmnZ80KT2EjE+JUs0BfD4Kohp/mpWG1tZQxTjIQFGqBUqCd/1TXklomH
DR4IhLI5Nn9BzX/UlWdV+kRQ6YMdxhmL10Tusq8GRZOK0Or8YcaMRxu1+WVVzC4Q
ot3xiUGbcySRGouVQPbEdSCtaXAdtcKpruOjM29b19Vm38lZ4HrzKZ43DeItVsJb
7mz1i+lE0gp4+wSd8ecWhQQG7e+yu80xB9PCAxdQBvsPVeKMU0c07S/Jn1LGMDJU
izwSioU5TAcxWg+NdKzPThFiuL4dAm5uokOMj34dEu9YTIGEPycvjJp2fKhdroay
9KkgVfWPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
MB0GA1UdDgQWBBRuD6tNiub+d+RKV1u2hJmmtZ/Y1TANBgkqhkiG9w0BAQsFAAOC
AgEAHy7Clwene8ImlORrynFo99JcuAbw+gPf0c9U2Dx/MOvuzbflspI6JCpRUcMH
zGJFwHMx/LxWxvw7fjbuFa3WC53UGr214ai6Il/8m7uRV2LoVGMJ2U1G2hgyWYAa
MmIDHCMbVfNwbVTldjL2DxW0EkJezli8RtNzX6jmXGnGIqZJ/lBE+xSkpBnNET/c
IMrsWrKJ2VeQLOiccdSV5RhPahsw9O3hbq+ncaMujvBBQtsUqL548p75K9VSrhgK
PaeL0t/wbxuVkSzNd+Yr/C723s9E0ic5OoCz9G1wZ6dm+rPYC6Mjxz41phEqh7ng
GfZBmtJUdWIYEn3P4miTa8rJNFWHVjOP4tFH5H9tlppI2msBCI8LBGCgP/inH/Hb
1EgAV3rzZPVE6VC2jIAOuq59bxyoHIBZgMfykMgbYAeM/Y08D8pGLQJgTqZSrLZG
mClz1RUV+MHBZ7STPIEsYh5VXYkHIqs+pS1jHBxtfpZGP3K2FiyxVWCO4eSRViid
5LEMh8xexA+5Z8hOGsPPPkufIFeIqjKHdgkKtqQ5TatFmuv8nZADfJ2StVSs9BTj
IZDKm/9n2Dj+VSbjWyEuHB5gKyeZ7RD5IOYGfA6t+NS/ps4tp1Q61DMqc7Ij12V7
QHq3BicTS9OUuB7wZNsIjD/i0vvi7mkkHI3h2ZxFWzDJWLM=
-----END CERTIFICATE-----

View File

@@ -131,42 +131,42 @@
assert:
that:
- "'ocsp_uri' in result"
- "result.ocsp_uri == 'http://ocsp.int-x3.letsencrypt.org'"
- "result.ocsp_uri == 'http://ocsp.foobarbaz.example.com'"
- "'issuer_uri' in result"
- "result.issuer_uri == 'http://cert.int-x3.letsencrypt.org/'"
- "result.issuer_uri == 'http://cert.foobarbaz.example.com/inter.pem'"
- result.extensions_by_oid | length == 9
# Precert Signed Certificate Timestamps
- result.extensions_by_oid['1.3.6.1.4.1.11129.2.4.2'].critical == false
- result.extensions_by_oid['1.3.6.1.4.1.11129.2.4.2'].value == 'BIHyAPAAdgDBFkrgp3LS1DktyArBB3DU8MSb3pkaSEDB+gdRZPYzYAAAAWTdAoU6AAAEAwBHMEUCIG5WpfKF536KKa9fnVlYbwcfrKh09Hi2MSRwU2kad49UAiEA4RUKjJOgw11IHFNdit+sy1RcCU3QCSOEQYrJ1/oPltAAdgApPFGWVMg5ZbqqUPxYB9S3b79Yeily3KTDDPTlRUf0eAAAAWTdAoc+AAAEAwBHMEUCIQCJjo75K4rVDSiWQe3XFLY6MiG3zcHQrKb0YhM17r1UKAIgGa8qMoN03DLp+Rm9nRJ9XLbTJz1vbuu9PyXUY741P8E='
- result.extensions_by_oid['1.3.6.1.4.1.11129.2.4.2'].value == 'BIHvAO0AdADd3Mo0ldfhFgXnlTL6x5/4PRxQ39sAOhQSdgosrLvIKgAAAZYL7QgtAAAEAwBFMEMCIAXku/W4fMbkoOkHguRt8RfxVy6dgwpi9A8IDTRkOn1XAh9g9RjiBvMJdM/+UQS+WNXaxOqA5JzUfvCFjbYLbEZ5AHUADeHyMCvTDcFAYhIJ6lUu/Ed0fLHX6TDvDkIetH5OqjQAAAGWC+0H2AAABAMARjBEAiB26F5G8YPuZ11gAfEXqAFpVk01VcbOsS6w3dn2CJf6zgIgeEWCpg9tsQ8dB7/hU1zOmkZom62VDXvk8Cs+yscbQq4='
# Authority Information Access
- result.extensions_by_oid['1.3.6.1.5.5.7.1.1'].critical == false
- result.extensions_by_oid['1.3.6.1.5.5.7.1.1'].value == 'MGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5sZXRzZW5jcnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5jcnlwdC5vcmcv'
- result.extensions_by_oid['1.3.6.1.5.5.7.1.1'].value == 'MGgwLQYIKwYBBQUHMAGGIWh0dHA6Ly9vY3NwLmZvb2JhcmJhei5leGFtcGxlLmNvbTA3BggrBgEFBQcwAoYraHR0cDovL2NlcnQuZm9vYmFyYmF6LmV4YW1wbGUuY29tL2ludGVyLnBlbQ=='
# Subject Key Identifier
- result.extensions_by_oid['2.5.29.14'].critical == false
- result.extensions_by_oid['2.5.29.14'].value == 'BBRtcOI/yg62Ehbu5vQzxMUUdBOYMw=='
# Key Usage (The certificate has 'AwIFoA==', while de-serializing and re-serializing yields 'AwIAoA=='!)
- result.extensions_by_oid['2.5.29.14'].value == 'BBSq0oNG47DU/2s2mDG6sXXx3vBVoA=='
# Key Usage
- result.extensions_by_oid['2.5.29.15'].critical == true
- result.extensions_by_oid['2.5.29.15'].value in ['AwIFoA==', 'AwIAoA==']
- result.extensions_by_oid['2.5.29.15'].value == 'AwIFoA=='
# Subject Alternative Names
- result.extensions_by_oid['2.5.29.17'].critical == false
- result.extensions_by_oid['2.5.29.17'].value == 'MIIB5IIbY2VydC5pbnQteDEubGV0c2VuY3J5cHQub3JnghtjZXJ0LmludC14Mi5sZXRzZW5jcnlwdC5vcmeCG2NlcnQuaW50LXgzLmxldHNlbmNyeXB0Lm9yZ4IbY2VydC5pbnQteDQubGV0c2VuY3J5cHQub3JnghxjZXJ0LnJvb3QteDEubGV0c2VuY3J5cHQub3Jngh9jZXJ0LnN0YWdpbmcteDEubGV0c2VuY3J5cHQub3Jngh9jZXJ0LnN0Zy1pbnQteDEubGV0c2VuY3J5cHQub3JngiBjZXJ0LnN0Zy1yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ISY3AubGV0c2VuY3J5cHQub3JnghpjcC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ITY3BzLmxldHNlbmNyeXB0Lm9yZ4IbY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3Jnghtjcmwucm9vdC14MS5sZXRzZW5jcnlwdC5vcmeCD2xldHNlbmNyeXB0Lm9yZ4IWb3JpZ2luLmxldHNlbmNyeXB0Lm9yZ4IXb3JpZ2luMi5sZXRzZW5jcnlwdC5vcmeCFnN0YXR1cy5sZXRzZW5jcnlwdC5vcmeCE3d3dy5sZXRzZW5jcnlwdC5vcmc='
- result.extensions_by_oid['2.5.29.17'].value == 'MHWCC2V4YW1wbGUubmV0gg93d3cuZXhhbXBsZS5uZXSCD2Zvby5leGFtcGxlLm5ldIIPYmFyLmV4YW1wbGUubmV0gg9iYXouZXhhbXBsZS5uZXSCD2JhbS5leGFtcGxlLm5ldIIRKi5iYW0uZXhhbXBsZS5uZXQ='
# Basic Constraints
- result.extensions_by_oid['2.5.29.19'].critical == true
- result.extensions_by_oid['2.5.29.19'].value == 'MAA='
# Certificate Policies
- result.extensions_by_oid['2.5.29.32'].critical == false
- result.extensions_by_oid['2.5.29.32'].value == 'MIHzMAgGBmeBDAECATCB5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5IG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5kIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkv'
- result.extensions_by_oid['2.5.29.32'].value == 'MHMwCAYGZ4EMAQIBMGcGCysGAQQBgt8TAQEBMFgwNgYIKwYBBQUHAgEWKmh0dHA6Ly9jcHMuZm9vYmFyYmF6LmV4YW1wbGUuY29tL3NvbWV0aGluZzAeBggrBgEFBQcCAjASDBBCbGFibGEgd2hhdGV2ZXIu'
# Authority Key Identifier
- result.extensions_by_oid['2.5.29.35'].critical == false
- result.extensions_by_oid['2.5.29.35'].value == 'MBaAFKhKamMEfd265tE5t6ZFZe/zqOyh'
- result.extensions_by_oid['2.5.29.35'].value == 'MBaAFGgVOaTes3MnP1bD3KkShc1RApS4'
# Extended Key Usage
- result.extensions_by_oid['2.5.29.37'].critical == false
- result.extensions_by_oid['2.5.29.37'].value == 'MBQGCCsGAQUFBwMBBggrBgEFBQcDAg=='
- name: Check fingerprints
assert:
that:
- (result.fingerprints.sha256 == '57:7c:f1:f5:dd:cc:6e:e9:f3:17:28:73:17:e4:25:c7:69:74:3e:f7:9a:df:58:20:7a:5a:e4:aa:de:bf:24:5b' if result.fingerprints.sha256 is defined else true)
- (result.fingerprints.sha1 == 'b7:79:64:f4:2b:e0:ae:45:74:d4:f3:08:f6:53:cb:39:26:fa:52:6b' if result.fingerprints.sha1 is defined else true)
- (result.fingerprints.sha256 == '08:26:60:3d:29:11:f2:88:09:3f:40:71:bb:67:cb:59:9c:6e:cf:e0:49:22:ab:e8:60:bd:f6:9a:01:e3:0e:2c' if result.fingerprints.sha256 is defined else true)
- (result.fingerprints.sha1 == '5a:32:7f:22:61:f3:2e:ad:a7:d8:77:07:1c:7f:08:cd:ab:7f:bc:11' if result.fingerprints.sha1 is defined else true)
- name: Get invalid certificate info
set_fact:

View File

@@ -1,45 +1,34 @@
-----BEGIN CERTIFICATE-----
MIIH5jCCBs6gAwIBAgISA2gSCm/BtvCR2e2bIap5YbXaMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODA3MjcxNzMxMjdaFw0x
ODEwMjUxNzMxMjdaMB4xHDAaBgNVBAMTE3d3dy5sZXRzZW5jcnlwdC5vcmcwggEi
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpL8ZjVL0MUkUAIbYO9+ZCni+c
ghGd9WhM2Ztaay6Wyh6lNoCdltdqTwUhE4O+d7UFModjM3G/KMyfuujr06c5iGKL
3saPmIzLaRPIEOUlB2rKgasKhe8mDRyRLzQSXXgnsaKcTBBuhIHvtP51ZMr05nJJ
sX/5FGjj96w+KJel6E/Ux1a1ZDOFkAYNSIrJJhA5jjIvUPr+Ri6Oc6UlhF9oueKI
uWBILxQpC778tBWdHoZeBCNTHA1VvtwC53OeuHvdZm1jB/e30Mgf5DtVizYpFXVD
mztkrd6z/3B6ZwPyfCE4KgzSf70/byOz971OJxNKTUVWedKHHDlrMxfsPclbAgMB
AAGjggTwMIIE7DAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFG1w4j/KDrYSFu7m9DPE
xRR0E5gzMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUF
BwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNy
eXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNy
eXB0Lm9yZy8wggHxBgNVHREEggHoMIIB5IIbY2VydC5pbnQteDEubGV0c2VuY3J5
cHQub3JnghtjZXJ0LmludC14Mi5sZXRzZW5jcnlwdC5vcmeCG2NlcnQuaW50LXgz
LmxldHNlbmNyeXB0Lm9yZ4IbY2VydC5pbnQteDQubGV0c2VuY3J5cHQub3Jnghxj
ZXJ0LnJvb3QteDEubGV0c2VuY3J5cHQub3Jngh9jZXJ0LnN0YWdpbmcteDEubGV0
c2VuY3J5cHQub3Jngh9jZXJ0LnN0Zy1pbnQteDEubGV0c2VuY3J5cHQub3JngiBj
ZXJ0LnN0Zy1yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ISY3AubGV0c2VuY3J5cHQu
b3JnghpjcC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ITY3BzLmxldHNlbmNyeXB0
Lm9yZ4IbY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3Jnghtjcmwucm9vdC14MS5s
ZXRzZW5jcnlwdC5vcmeCD2xldHNlbmNyeXB0Lm9yZ4IWb3JpZ2luLmxldHNlbmNy
eXB0Lm9yZ4IXb3JpZ2luMi5sZXRzZW5jcnlwdC5vcmeCFnN0YXR1cy5sZXRzZW5j
cnlwdC5vcmeCE3d3dy5sZXRzZW5jcnlwdC5vcmcwgf4GA1UdIASB9jCB8zAIBgZn
gQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYGCCsGAQUFBwIBFhpodHRwOi8vY3Bz
LmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUHAgIwgZ4MgZtUaGlzIENlcnRpZmlj
YXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9uIGJ5IFJlbHlpbmcgUGFydGllcyBh
bmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIENlcnRpZmljYXRlIFBvbGlj
eSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNyeXB0Lm9yZy9yZXBvc2l0b3J5LzCC
AQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2AMEWSuCnctLUOS3ICsEHcNTwxJvemRpI
QMH6B1Fk9jNgAAABZN0ChToAAAQDAEcwRQIgblal8oXnfoopr1+dWVhvBx+sqHT0
eLYxJHBTaRp3j1QCIQDhFQqMk6DDXUgcU12K36zLVFwJTdAJI4RBisnX+g+W0AB2
ACk8UZZUyDlluqpQ/FgH1Ldvv1h6KXLcpMMM9OVFR/R4AAABZN0Chz4AAAQDAEcw
RQIhAImOjvkritUNKJZB7dcUtjoyIbfNwdCspvRiEzXuvVQoAiAZryoyg3TcMun5
Gb2dEn1cttMnPW9u670/JdRjvjU/wTANBgkqhkiG9w0BAQsFAAOCAQEAGepCmckP
Tn9Sz268FEwkdD+6wWaPfeYlh+9nacFh90nQ35EYQMOK8a+X7ixHGbRz19On3Wt4
1fcbPa9SefocTjAintMwwreCxpRTmwGACYojd7vRWEmA6q7+/HO2BfZahWzclOjw
mSDBycDEm8R0ZK52vYjzVno8x0mrsmSO0403S/6syYB/guH6P17kIBw+Tgx6/i/c
I1C6MoFkuaAKUUcZmgGGBgE+L/7cWtWjbkVXyA3ZQQy9G7rcBT+N/RrDfBh4iZDq
jAN5UIIYL8upBhjiMYVuoJrH2nklzEwr5SWKcccJX5eWkGLUwlcY9LGAA8+17l2I
l1Ou20Dm9TxnNw==
MIIF5jCCBM6gAwIBAgIQJAW7/PQP3CsUKyKrmF41VjANBgkqhkiG9w0BAQsFADBI
MQswCQYDVQQGEwJVUzEfMB0GA1UECgwWRm9vIEJheiBCYW0gU3Vic2lkaWFyeTEY
MBYGA1UEAwwPRm9vQmF6QmFtIEludGVyMB4XDTE4MDcyNzE3MzEyN1oXDTE4MTAy
NTE3MzEyN1owFjEUMBIGA1UEAwwLZXhhbXBsZS5uZXQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCUMjdm90Sus3PioePdOirGfzyeNsiOdq73lyXvNarU
cH5RbTml3HyQ3dQOIHkzpT24q0MUp2IaCRnvueEm7K+15i0O5egWhLIe0JdalDS0
X8JqtaQRYcfoRT+oJGvpl5Cb7aKswdDeyOx2fQlZzlvNt0Ykm5JCCWQ1m03l2Vyc
4KrAhsQzNz6xidH5gTzcLl0sru/b91v1YzkryqAA4WCg9IEqLA4/TWryQcM6w1jX
zgcTf3zikKH/aWYMfhPQ+u4lEYNWm59ncSRe7DxOG0UBkTI3cKWVvklG6RGmYUT6
RF3sOtxSSOejYHW9PvSVkhmjlEYcLx9K1xg4lmBreolPAgMBAAGjggL8MIIC+DAO
BgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFKrSg0bjsNT/azaYMbqxdfHe8FWgMB8GA1Ud
IwQYMBaAFGgVOaTes3MnP1bD3KkShc1RApS4MHYGCCsGAQUFBwEBBGowaDAtBggr
BgEFBQcwAYYhaHR0cDovL29jc3AuZm9vYmFyYmF6LmV4YW1wbGUuY29tMDcGCCsG
AQUFBzAChitodHRwOi8vY2VydC5mb29iYXJiYXouZXhhbXBsZS5jb20vaW50ZXIu
cGVtMH4GA1UdEQR3MHWCC2V4YW1wbGUubmV0gg93d3cuZXhhbXBsZS5uZXSCD2Zv
by5leGFtcGxlLm5ldIIPYmFyLmV4YW1wbGUubmV0gg9iYXouZXhhbXBsZS5uZXSC
D2JhbS5leGFtcGxlLm5ldIIRKi5iYW0uZXhhbXBsZS5uZXQwfAYDVR0gBHUwczAI
BgZngQwBAgEwZwYLKwYBBAGC3xMBAQEwWDA2BggrBgEFBQcCARYqaHR0cDovL2Nw
cy5mb29iYXJiYXouZXhhbXBsZS5jb20vc29tZXRoaW5nMB4GCCsGAQUFBwICMBIM
EEJsYWJsYSB3aGF0ZXZlci4wggEBBgorBgEEAdZ5AgQCBIHyBIHvAO0AdADd3Mo0
ldfhFgXnlTL6x5/4PRxQ39sAOhQSdgosrLvIKgAAAZYL7QgtAAAEAwBFMEMCIAXk
u/W4fMbkoOkHguRt8RfxVy6dgwpi9A8IDTRkOn1XAh9g9RjiBvMJdM/+UQS+WNXa
xOqA5JzUfvCFjbYLbEZ5AHUADeHyMCvTDcFAYhIJ6lUu/Ed0fLHX6TDvDkIetH5O
qjQAAAGWC+0H2AAABAMARjBEAiB26F5G8YPuZ11gAfEXqAFpVk01VcbOsS6w3dn2
CJf6zgIgeEWCpg9tsQ8dB7/hU1zOmkZom62VDXvk8Cs+yscbQq4wDQYJKoZIhvcN
AQELBQADggEBABB+hQSRRdeAvg4V/FL/JNncN+gW04KA8bwP30iLRLOrHFvu94Wl
S8QymnFaouIRehYa6VrzSdGc8qqSvRGq87dv5jSPMS+vz8+PL1jPGie62HSrBtm7
TTUPQ+5zu1b/G4L5ojcHqwcaSPAUygzFETFceYLaXqmKKx4O3MBMfm3wDp+OnEZW
GtGwQAsGRIfLPZhxY+HQG0brhZKzxR0oLMgtZg+lWp2jati6zvS663mGt+AZsj2f
bpx65OcZIqtBBKjLUP00Cz/xwh59KQre+lP7NbtAkeBQ+ufQPBwZEN8NDvnUou0I
Mw6bgRI+nSUgXOqFk4ip6vsHiRU3dLu4P1g=
-----END CERTIFICATE-----

View File

@@ -182,39 +182,39 @@
assert:
that:
- "'ocsp_uri' in result"
- "result.ocsp_uri == 'http://ocsp.int-x3.letsencrypt.org'"
- "result.ocsp_uri == 'http://ocsp.foobarbaz.example.com'"
- "'issuer_uri' in result"
- "result.issuer_uri == 'http://cert.int-x3.letsencrypt.org/'"
- "result.issuer_uri == 'http://cert.foobarbaz.example.com/inter.pem'"
- result.extensions_by_oid | length == 9
# Precert Signed Certificate Timestamps
- result.extensions_by_oid['1.3.6.1.4.1.11129.2.4.2'].critical == false
- result.extensions_by_oid['1.3.6.1.4.1.11129.2.4.2'].value == 'BIHyAPAAdgDBFkrgp3LS1DktyArBB3DU8MSb3pkaSEDB+gdRZPYzYAAAAWTdAoU6AAAEAwBHMEUCIG5WpfKF536KKa9fnVlYbwcfrKh09Hi2MSRwU2kad49UAiEA4RUKjJOgw11IHFNdit+sy1RcCU3QCSOEQYrJ1/oPltAAdgApPFGWVMg5ZbqqUPxYB9S3b79Yeily3KTDDPTlRUf0eAAAAWTdAoc+AAAEAwBHMEUCIQCJjo75K4rVDSiWQe3XFLY6MiG3zcHQrKb0YhM17r1UKAIgGa8qMoN03DLp+Rm9nRJ9XLbTJz1vbuu9PyXUY741P8E='
- result.extensions_by_oid['1.3.6.1.4.1.11129.2.4.2'].value == 'BIHvAO0AdADd3Mo0ldfhFgXnlTL6x5/4PRxQ39sAOhQSdgosrLvIKgAAAZYL7QgtAAAEAwBFMEMCIAXku/W4fMbkoOkHguRt8RfxVy6dgwpi9A8IDTRkOn1XAh9g9RjiBvMJdM/+UQS+WNXaxOqA5JzUfvCFjbYLbEZ5AHUADeHyMCvTDcFAYhIJ6lUu/Ed0fLHX6TDvDkIetH5OqjQAAAGWC+0H2AAABAMARjBEAiB26F5G8YPuZ11gAfEXqAFpVk01VcbOsS6w3dn2CJf6zgIgeEWCpg9tsQ8dB7/hU1zOmkZom62VDXvk8Cs+yscbQq4='
# Authority Information Access
- result.extensions_by_oid['1.3.6.1.5.5.7.1.1'].critical == false
- result.extensions_by_oid['1.3.6.1.5.5.7.1.1'].value == 'MGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5sZXRzZW5jcnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5sZXRzZW5jcnlwdC5vcmcv'
- result.extensions_by_oid['1.3.6.1.5.5.7.1.1'].value == 'MGgwLQYIKwYBBQUHMAGGIWh0dHA6Ly9vY3NwLmZvb2JhcmJhei5leGFtcGxlLmNvbTA3BggrBgEFBQcwAoYraHR0cDovL2NlcnQuZm9vYmFyYmF6LmV4YW1wbGUuY29tL2ludGVyLnBlbQ=='
# Subject Key Identifier
- result.extensions_by_oid['2.5.29.14'].critical == false
- result.extensions_by_oid['2.5.29.14'].value == 'BBRtcOI/yg62Ehbu5vQzxMUUdBOYMw=='
# Key Usage (The certificate has 'AwIFoA==', while de-serializing and re-serializing yields 'AwIAoA=='!)
- result.extensions_by_oid['2.5.29.14'].value == 'BBSq0oNG47DU/2s2mDG6sXXx3vBVoA=='
# Key Usage
- result.extensions_by_oid['2.5.29.15'].critical == true
- result.extensions_by_oid['2.5.29.15'].value in ['AwIFoA==', 'AwIAoA==']
- result.extensions_by_oid['2.5.29.15'].value == 'AwIFoA=='
# Subject Alternative Names
- result.extensions_by_oid['2.5.29.17'].critical == false
- result.extensions_by_oid['2.5.29.17'].value == 'MIIB5IIbY2VydC5pbnQteDEubGV0c2VuY3J5cHQub3JnghtjZXJ0LmludC14Mi5sZXRzZW5jcnlwdC5vcmeCG2NlcnQuaW50LXgzLmxldHNlbmNyeXB0Lm9yZ4IbY2VydC5pbnQteDQubGV0c2VuY3J5cHQub3JnghxjZXJ0LnJvb3QteDEubGV0c2VuY3J5cHQub3Jngh9jZXJ0LnN0YWdpbmcteDEubGV0c2VuY3J5cHQub3Jngh9jZXJ0LnN0Zy1pbnQteDEubGV0c2VuY3J5cHQub3JngiBjZXJ0LnN0Zy1yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ISY3AubGV0c2VuY3J5cHQub3JnghpjcC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZ4ITY3BzLmxldHNlbmNyeXB0Lm9yZ4IbY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3Jnghtjcmwucm9vdC14MS5sZXRzZW5jcnlwdC5vcmeCD2xldHNlbmNyeXB0Lm9yZ4IWb3JpZ2luLmxldHNlbmNyeXB0Lm9yZ4IXb3JpZ2luMi5sZXRzZW5jcnlwdC5vcmeCFnN0YXR1cy5sZXRzZW5jcnlwdC5vcmeCE3d3dy5sZXRzZW5jcnlwdC5vcmc='
- result.extensions_by_oid['2.5.29.17'].value == 'MHWCC2V4YW1wbGUubmV0gg93d3cuZXhhbXBsZS5uZXSCD2Zvby5leGFtcGxlLm5ldIIPYmFyLmV4YW1wbGUubmV0gg9iYXouZXhhbXBsZS5uZXSCD2JhbS5leGFtcGxlLm5ldIIRKi5iYW0uZXhhbXBsZS5uZXQ='
# Basic Constraints
- result.extensions_by_oid['2.5.29.19'].critical == true
- result.extensions_by_oid['2.5.29.19'].value == 'MAA='
# Certificate Policies
- result.extensions_by_oid['2.5.29.32'].critical == false
- result.extensions_by_oid['2.5.29.32'].value == 'MIHzMAgGBmeBDAECATCB5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5IG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5kIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkv'
- result.extensions_by_oid['2.5.29.32'].value == 'MHMwCAYGZ4EMAQIBMGcGCysGAQQBgt8TAQEBMFgwNgYIKwYBBQUHAgEWKmh0dHA6Ly9jcHMuZm9vYmFyYmF6LmV4YW1wbGUuY29tL3NvbWV0aGluZzAeBggrBgEFBQcCAjASDBBCbGFibGEgd2hhdGV2ZXIu'
# Authority Key Identifier
- result.extensions_by_oid['2.5.29.35'].critical == false
- result.extensions_by_oid['2.5.29.35'].value == 'MBaAFKhKamMEfd265tE5t6ZFZe/zqOyh'
- result.extensions_by_oid['2.5.29.35'].value == 'MBaAFGgVOaTes3MnP1bD3KkShc1RApS4'
# Extended Key Usage
- result.extensions_by_oid['2.5.29.37'].critical == false
- result.extensions_by_oid['2.5.29.37'].value == 'MBQGCCsGAQUFBwMBBggrBgEFBQcDAg=='
- name: Check fingerprints
assert:
that:
- (result.fingerprints.sha256 == '57:7c:f1:f5:dd:cc:6e:e9:f3:17:28:73:17:e4:25:c7:69:74:3e:f7:9a:df:58:20:7a:5a:e4:aa:de:bf:24:5b' if result.fingerprints.sha256 is defined else true)
- (result.fingerprints.sha1 == 'b7:79:64:f4:2b:e0:ae:45:74:d4:f3:08:f6:53:cb:39:26:fa:52:6b' if result.fingerprints.sha1 is defined else true)
- (result.fingerprints.sha256 == '08:26:60:3d:29:11:f2:88:09:3f:40:71:bb:67:cb:59:9c:6e:cf:e0:49:22:ab:e8:60:bd:f6:9a:01:e3:0e:2c' if result.fingerprints.sha256 is defined else true)
- (result.fingerprints.sha1 == '5a:32:7f:22:61:f3:2e:ad:a7:d8:77:07:1c:7f:08:cd:ab:7f:bc:11' if result.fingerprints.sha1 is defined else true)

View File

@@ -5,6 +5,8 @@
.azure-pipelines/scripts/publish-codecov.py future-import-boilerplate
.azure-pipelines/scripts/publish-codecov.py metaclass-boilerplate
docs/docsite/rst/guide_selfsigned.rst rstcheck
noxfile.py compile-2.6!skip # Uses Python 3.6+ syntax
noxfile.py compile-2.7!skip # Uses Python 3.6+ syntax
noxfile.py future-import-boilerplate
noxfile.py metaclass-boilerplate
plugins/modules/acme_account_info.py validate-modules:return-syntax-error
@@ -29,5 +31,11 @@ plugins/modules/x509_crl.py validate-modules:invalid-documentation
plugins/modules/x509_crl.py validate-modules:return-syntax-error
plugins/modules/x509_crl_info.py validate-modules:invalid-documentation
plugins/modules/x509_crl_info.py validate-modules:return-syntax-error
tests/create-certificates.py compile-2.6!skip # Uses Python 3.6+ syntax
tests/create-certificates.py compile-2.7!skip # Uses Python 3.6+ syntax
tests/create-certificates.py compile-3.5!skip # Uses Python 3.6+ syntax
tests/create-certificates.py future-import-boilerplate
tests/create-certificates.py metaclass-boilerplate
tests/create-certificates.py pylint:bad-whitespace
tests/ee/roles/smoke/library/smoke_ipaddress.py shebang
tests/ee/roles/smoke/library/smoke_pyyaml.py shebang

View File

@@ -4,6 +4,8 @@
.azure-pipelines/scripts/publish-codecov.py compile-3.5!skip # Uses Python 3.6+ syntax
.azure-pipelines/scripts/publish-codecov.py future-import-boilerplate
.azure-pipelines/scripts/publish-codecov.py metaclass-boilerplate
noxfile.py compile-2.6!skip # Uses Python 3.6+ syntax
noxfile.py compile-2.7!skip # Uses Python 3.6+ syntax
noxfile.py future-import-boilerplate
noxfile.py metaclass-boilerplate
plugins/modules/acme_account_info.py validate-modules:return-syntax-error
@@ -28,5 +30,10 @@ plugins/modules/x509_crl.py validate-modules:invalid-documentation
plugins/modules/x509_crl.py validate-modules:return-syntax-error
plugins/modules/x509_crl_info.py validate-modules:invalid-documentation
plugins/modules/x509_crl_info.py validate-modules:return-syntax-error
tests/create-certificates.py compile-2.6!skip # Uses Python 3.6+ syntax
tests/create-certificates.py compile-2.7!skip # Uses Python 3.6+ syntax
tests/create-certificates.py compile-3.5!skip # Uses Python 3.6+ syntax
tests/create-certificates.py future-import-boilerplate
tests/create-certificates.py metaclass-boilerplate
tests/ee/roles/smoke/library/smoke_ipaddress.py shebang
tests/ee/roles/smoke/library/smoke_pyyaml.py shebang

View File

@@ -5,6 +5,8 @@
.azure-pipelines/scripts/publish-codecov.py future-import-boilerplate
.azure-pipelines/scripts/publish-codecov.py metaclass-boilerplate
docs/docsite/rst/guide_selfsigned.rst rstcheck
noxfile.py compile-2.6!skip # Uses Python 3.6+ syntax
noxfile.py compile-2.7!skip # Uses Python 3.6+ syntax
noxfile.py future-import-boilerplate
noxfile.py metaclass-boilerplate
plugins/modules/acme_certificate.py validate-modules:invalid-documentation
@@ -25,5 +27,11 @@ plugins/modules/x509_crl.py validate-modules:invalid-documentation
plugins/modules/x509_crl.py validate-modules:return-syntax-error
plugins/modules/x509_crl_info.py validate-modules:invalid-documentation
plugins/modules/x509_crl_info.py validate-modules:return-syntax-error
tests/create-certificates.py compile-2.6!skip # Uses Python 3.6+ syntax
tests/create-certificates.py compile-2.7!skip # Uses Python 3.6+ syntax
tests/create-certificates.py compile-3.5!skip # Uses Python 3.6+ syntax
tests/create-certificates.py future-import-boilerplate
tests/create-certificates.py metaclass-boilerplate
tests/create-certificates.py pylint:bad-whitespace
tests/ee/roles/smoke/library/smoke_ipaddress.py shebang
tests/ee/roles/smoke/library/smoke_pyyaml.py shebang