Skip to content

Commit

Permalink
keytypes/asymmetric: add tests for chained certificates
Browse files Browse the repository at this point in the history
  • Loading branch information
mathstuf committed Sep 27, 2020
1 parent 1c4217a commit 28c1da6
Show file tree
Hide file tree
Showing 7 changed files with 233 additions and 1 deletion.
65 changes: 64 additions & 1 deletion src/keytypes/asymmetric.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ impl RestrictableKeyType for Asymmetric {

#[cfg(test)]
mod tests {
use crate::keytypes::{AsymmetricRestriction, User};
use crate::keytypes::{Asymmetric, AsymmetricRestriction, User};
use crate::tests::utils;
use crate::KeyRestriction;

Expand Down Expand Up @@ -179,4 +179,67 @@ mod tests {
assert_eq!(restriction.restriction(), expected.as_ref());
}
}

#[test]
fn test_restrict_keyring_chain() {
let mut keyring = utils::new_test_keyring();

// Create and populate a keyring for root certificates.
let mut root = keyring.add_keyring("root-certs").unwrap();
let root1_certificate = &include_bytes!("data/ca/ca-1.root.crt")[..];
let root2_certificate = &include_bytes!("data/ca/ca-2.root.crt")[..];
root.add_key::<Asymmetric, _, _>("root1", root1_certificate)
.unwrap();
root.add_key::<Asymmetric, _, _>("root1", root2_certificate)
.unwrap();

// Create a keyring to restrict.
let mut chain = keyring.add_keyring("chain").unwrap();
let restriction = AsymmetricRestriction::Keyring {
keyring: root,
chained: true,
};
chain
.restrict_by_type::<Asymmetric, _>(restriction)
.unwrap();

// Add certificates in order.
let intermediate_a = &include_bytes!("data/ca/ca.intermediate.crt")[..];
chain
.add_key::<Asymmetric, _, _>("intermediate_a", intermediate_a)
.unwrap();
let intermediate_b = &include_bytes!("data/ca/intermediate.term.crt")[..];
chain
.add_key::<Asymmetric, _, _>("intermediate_b", intermediate_b)
.unwrap();
let terminal = &include_bytes!("data/ca/ca-1.term.crt")[..];
chain
.add_key::<Asymmetric, _, _>("terminal", terminal)
.unwrap();
}

#[test]
fn test_restrict_keyring_fail() {
let mut keyring = utils::new_test_keyring();

// Create and populate a keyring for root certificates.
let root = keyring.add_keyring("root-certs").unwrap();

// Create a keyring to restrict.
let mut chain = keyring.add_keyring("chain").unwrap();
let restriction = AsymmetricRestriction::Keyring {
keyring: root,
chained: true,
};
chain
.restrict_by_type::<Asymmetric, _>(restriction)
.unwrap();

// Add certificates in order.
let terminal = &include_bytes!("data/ca/self.term.crt")[..];
let err = chain
.add_key::<Asymmetric, _, _>("self", terminal)
.unwrap_err();
assert_eq!(err, errno::Errno(libc::EINVAL));
}
}
30 changes: 30 additions & 0 deletions src/keytypes/data/ca/ca-1.root.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFMTCCAxmgAwIBAgIUKDx8JFc/v0TROzTp0HeNRYiCy6UwDQYJKoZIhvcNAQEL
BQAwIDEeMBwGA1UEAwwVcnVzdC1rZXl1dGlscyBDQSBjYS0xMB4XDTIwMDkyNzAz
MjA0OFoXDTIwMTAyNzAzMjA0OFowIDEeMBwGA1UEAwwVcnVzdC1rZXl1dGlscyBD
QSBjYS0xMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwBzF3e1wH764
67xbEuyXNRxvVo3O8YPcTPKUhI9RmxsqqxeJ8e6grTou4Msfwm168ZYLDbjDugK7
XzBqcgIJol8pYGXAq7NoBVwBTSmlG2Pfvb6bp1Fj450Vx5LRH+4gpWLoBY8m3bNC
qw6AytXYscQ2dLoRiMDoZHFurQRCc/4sSTDP2Minxb5xOGx8fVLzzi3lOJEMNqao
wmvFo9kRE9snx4mbY3G+wlApoLFbn7kEYmkuHPgsIsWiyBzPLD5qSxWTDy2tvhFi
FUzg58UWebTXzJQ3c/iZfPUNab2rZ47aX94mPCahr+QKNZUkbBrgEEUY0qVJbNIL
6ccZD9TxXn9tNf37B3GMG82XCl1/7PecQNKrN7d4My9ekLsr7iye7hXXftq9qYdn
2TnS2SwZ+wwANnfY62MR0g2yVpAgwXVKBbUKJeZOpsEdK6p6KuAvufMyB7LKIEp3
ryruhUP1z05L/3J8VK6bHA48e3iuSAP6j0HlwGX1Hm4FRqgoY81k5nDmtAjvFKdQ
ojWxttTmNbeoqRNzehd2Ty395G91xB7PppQChrf3nPiekHn9nXmEC4JDuLq71IK0
mHXJakr4PgOLPsu+BVvqU78Uoun0BnI4K7ZMVEY0uI3rtc1CtBkLCFv6HxYahEsM
sVtRVCytYvQXKzUTnc00rVflb36Xr4UCAwEAAaNjMGEwHQYDVR0OBBYEFIUjgvlF
3KwlVXh1PwFV8674VBOKMB8GA1UdIwQYMBaAFIUjgvlF3KwlVXh1PwFV8674VBOK
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUA
A4ICAQC44VteLwJyAHJxL9/em9moSZD5+wenqgYnb24bKst2l93ALp89Ap2nNXI1
eVM6c2xhngurYya7j8rIq+i6i6fZdoZa9krIhqg7ADEekJL/tpQuRTV8aVJo/hq4
EXDgELhk5yeOtAgedsiVahOpsjfwy4k2UQRl2Bbj6I0cs/qn3u/gsYRGsBUneW0q
4R4Ez1zPt7dC53XN7coTcuMVb+Jmy5lyYbsZGlw4jGSawgE09TsUXIMJF0MYbAtA
N34Ny/Tz576bfPiz4gITQyPsooTaZ21DpW01BS15G3LeBPj53JrUAHR92+iDYREO
r85Z79EBeXTUc7EUlADBl0cj+lZuXCn8ksPhOj4TXctCkPiYsDGlvJHNIHPC5MZ0
upsd76YLlhQxsYVY2ElTR5k2bSTqSQaMV7bK5aZG4mPScwqCBwtgEKR44obqjYHx
TqEh5lqZxoYbcCozYl9f1eSINOZ9r8grOHXMACGuVjLDtR3Wd2V2ps1JTQyGPpki
F1i/bhC9vLla2ibDtDgqKER63nEvB3Vq6Tc7Xt6BWsnuhXrLItFkCkvuFffn3B0o
xf9QX4mnu+5dvVhZNeZTIfsLEngBfy2IUsr122jL39ja3qSM/Si4/deTU6hnGHTv
duXtpmDDFQELs3TgEy2GgJXj+0sEV7av+PsLae3AH+Mb6KmrZg==
-----END CERTIFICATE-----
27 changes: 27 additions & 0 deletions src/keytypes/data/ca/ca-1.term.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIElTCCAn0CAhACMA0GCSqGSIb3DQEBDQUAMCAxHjAcBgNVBAMMFXJ1c3Qta2V5
dXRpbHMgQ0EgY2EtMTAeFw0yMDA5MjcwMzIwNTFaFw0zMDA5MjUwMzIwNTFaMAAw
ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDQ9O9x7DL96hE5g+vFtBmM
pVrJMOPkM2+Dez0oEGpWvg+RtMO+CyQoGxUPI2sr3eqftEGjRUV2kMItN/Rn9FV7
UVmaURW2kzQvZT3tQn2nGegAKTrB+tGsuAaATgXGoCC+OadtGg7FiOkOvu3oXvHc
XyA1Nnblqi1ZaXbo6txSB7lcDHEx3VNOaLE/RNKuA1zvfxxHyQ48kT/Xn29Z/elm
ZVgak0Q6xsllW1+P0skOQA1/h5SQBGEMNtH6cwqPJRDE4BVVqRMcr8g7ioWkCl4q
MonxgJ+KaUhcKmtfmBpIZzUBQZZTeqSFvw+ulQzQLzSKB8lu2+z0kMlKdL/7j5aM
zb4AzOJOEKzCW7xST3E8ow75CaqH8mtODqRQxykhNq+uBA0XawQwXIG+nwNAv8Na
+uTO+kkFFQHgOvyFbQzKI1TNR/ZxXpKfHlwCGZ6V4CpVKxVTjf/KGrg+16wahWWl
h/R76JBVDdnxY7yc+lVAewamtZmrEyu/Yey7GfW//eGBSDP6OVLfonqc0Ar80Gei
CLrqfyJc77iexe53CeycHL/xrhrfWR+3wgG6AWomVNW2eVyNdj4UNr/N9/I/2qYi
zx6/gARqY6Ct6Jh6zfIAGgGf0oS3vX12vI2tXS2Quar6aQZQ2HMpp5hhUGl7UGBj
Cw9Dgv/H0vf8AA9YWyymswIDAQABMA0GCSqGSIb3DQEBDQUAA4ICAQAIEeguAZVu
JoCgZsudYnsqcUdH7pfq2HeFrjgxnJJ8OESaQIb9UohoR+o4ujtYBDGHf+myHxOJ
48syzGiOYePTX81hPOgFQOANnIOYH34zOn0EtNjj3ThkVF6rrsDOWqQK3bZoGnOE
ASn24DWqATEBqWXX+9nj7WbFCQu77izJsxhSB8bycTkTN1YyKIljThQ1kFwX36rM
jgstxGkBW0859Gfb4rbyCCLDl+4FCzdD+Tan4/at6FdAnOShqv45ookAJ0j5OQOm
/kYzW7xIoUy2cekqhs+qIHgBWNYrxudIXgxXMNzC9THOAE5ohlChFWvRstCyEDRv
1OfZlAGyc8ap+TEYNIewHC1V3S6AGhJbu4SM3LJU/jB2YI6DGGZ0MJw7FRLesvgs
vjieX+w//coeMZXTDhcHrGIxVCIVdRwAlmNSHF31tpcPDIkcjbnlaW6y7+s/Q0yz
ZSRBbFbUuDc6lt4DwVKj9yytCvQnh/fP+jchDkXPv58cVyr4jbMe1njQ/AbsUa1J
ayrPuxefzVkw+WLVnB3+1w0alsg0DnHYVPy4YwnoqXWXiDPbJOG9jFIkXZl1nhwe
zmnU1J+DeqlsbYItZN1cQRA1/bbzzQEJkV3wBcwGNPPaOhGhfMtIj3L3PLhPwZGb
SS7GKAEGWZ8fMaJhLXWs6+BrUS9yGOp+qw==
-----END CERTIFICATE-----
30 changes: 30 additions & 0 deletions src/keytypes/data/ca/ca-2.root.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFMTCCAxmgAwIBAgIUJZDxetglWOfQl0akeSJUwrBZ7x8wDQYJKoZIhvcNAQEL
BQAwIDEeMBwGA1UEAwwVcnVzdC1rZXl1dGlscyBDQSBjYS0yMB4XDTIwMDkyNzAz
MjA0OVoXDTIwMTAyNzAzMjA0OVowIDEeMBwGA1UEAwwVcnVzdC1rZXl1dGlscyBD
QSBjYS0yMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxUdaxEeFLjP5
E50IVyPURA5XknWC5WESAX00SJFXazULqkQPMBzbBuEIPxIJ1SQj5B1QfqdvzqhV
7fTB91Vve+2k5FaidMYOZa0okkFrf7r6Xko+sxQtyhA9v5wqsQXmbLID6/xRsiYE
0byUamjbi5OVPS/r5wzYfZ5sMUTeFx2iRAK0tGa2NZfuh6N9ILDHXf0qa9nlJhfM
pGydRxH71F35ITvz3J+wxsDYJwW7wtijzMgS4JzzredRK/OCA7NqY2Jr52jq+Pw0
wwEXEmCoMhCCOiwUdke88MBwI3920kGRDCcZx/56OxY3Jda/syHHHFk5+rlaMx+T
3nF1XdoYU4zLPDgp/UBllQIw6+TxIuaEjGBZEET9l9SVNH9DzBooSPlEMRJjJXK9
rFHX1bwygIlw3+fLWXkICiTWgx6oMtGpgjBN/UDmjOdktxJJlUv58dckCW0DaP/y
1yueporTQc9pZZpwWCjEI/AIlWBOazF9ZNugtH55CxiT9JUst8wz+kIfUAx7SRwg
+xMeRe71ZAYBulZ3d6AfAhnI4g1SoBKmGooszpgqKsHhlh9TLiE2lsvOwELh8YhY
JuEAhgsyd3IfatfKksQGcHL2OIUvuOp+pmENsdWMpGnrDLn3xKG5NkVfdhOPuPrG
ls5pKxNRZTHPcHUh4j1ht3YDekWR/y8CAwEAAaNjMGEwHQYDVR0OBBYEFJcFN1+Y
J3taqrEqpEawayiuF3IIMB8GA1UdIwQYMBaAFJcFN1+YJ3taqrEqpEawayiuF3II
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUA
A4ICAQAGMbqCa6k6uFy7DlMm+DQrievyxc7ZbWtGkNPdu55OnQQpYoiWorqTYbKd
7gQxNtwd0Sh0FXZVg0PeXnJh4rAB3P+90/hZwNuaKX+kwLHY0zANZKA3wpXDrRMJ
EB92BdgiYdM69Oqai0cgj0GoGIlnydwJttHWnghjmGV22MUbr1C7izOry1UTad/j
Fj3TyLo1Fi2YVLqk9gu1X9qCCHeHKMrGKVkQjjPrEfXMBaBoMaTahUGGjmgEV3AU
sb6/i3Hp252o9wZapQGcBYUNNy5UogD/rtFm9GqUIQBk8LmSixxX5toupsTa+yfv
snlfQQalzlBIexx58qnSBssry4G8lzcvyt3iIbsOWLxMsqofIzYYqjLCw2pstayJ
EYfMmi3Uh3aZpM9VrJld14dQhK8g26cDY0IGTXm/53B8GuMY+XAE9eOQIxLCwf9H
xa1RrDCj3C2g5PZLE13/r1aCwh8FIq1g+RTfIrTlP/mp3kWH4vaOYQJFq9VOsYuX
RGun90xI8IBL34ZdYaQQDdhQ83ZUFm/nwtEpiFLjRMirmcBkwULknzVkxNhXHfSc
daM81Gi6HZ052fdQN1Q0CZ+JIAjr3PpwSfjdFUzAlOwpzHTpRV7skyjHxTcJoK1j
FprB99o3TilOBo31Td/mWRYpfMC2pmYWVymGCoKDJ2LJB1eUzg==
-----END CERTIFICATE-----
27 changes: 27 additions & 0 deletions src/keytypes/data/ca/ca.intermediate.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
-----BEGIN CERTIFICATE-----
MIIElTCCAn0CAhAAMA0GCSqGSIb3DQEBDQUAMCAxHjAcBgNVBAMMFXJ1c3Qta2V5
dXRpbHMgQ0EgY2EtMTAeFw0yMDA5MjcwMzIwNDlaFw0zMDA5MjUwMzIwNDlaMAAw
ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDrHy7ew/T3SUhTUJjaR1GX
8s4gTcn4vHuqfGKdHyZ726DKA0cRMer6qqf+0evnSKB4NZXJXzdh8Fuh+8kWjD6i
uIMu6USbeK/4jL3LVVUdIYnaHhlpsIQbYUAukfH+ztzBfc4QylqBEe2izI9/r5rK
3P0fywC6XKl9iWx/1qEtCUT72SnbDiLhpS2yGKhkkHd0EAmFrsZRYjREXmCNlHOt
pBno6VvMaQVRad25qD569CEdcwnKPBMECtQkeOcBqk38H3qMtv68/TxTWbnihKdM
UaWKXudS2EroeCXBc4SHzYPRU+qX1kd5CrnCzq8G6ekFPaK62NziZEa6jYBq+B0k
9L0qef2QBNDY1ZhM15DukEvlL4NNtBBABSFoHv/8N8EgwaRoqWZeQFQhgidDRpft
b3x6NctbG99cRC4/PZW7gXq0BI1MrNdoJ6Y6DO5JCVxvYG2fPzEhevQatMskBFiH
rgKRGZf+2pVGQnWsOfShPpiTIDtRMhfViAfxVb4c766WJomzQ/z9ABxek+LKIrxE
z0mz8FyC7jceOCVnX6cSiOF9GQ6bZkKb2kVU56jRBPLHn9qQLiSOkvv1RdhbHGGY
nKLqe8FYbGEVCJsJ7LNN3zjJ73ZpMDarMxusTxO6o5EALW+uOHIX1Dh2TFboFLF0
bN25BqcTEkubVztZEaIsUwIDAQABMA0GCSqGSIb3DQEBDQUAA4ICAQCOSJZgDjKG
6zAWsoQ5AWwVlFYY8LCh6f7SFqHjFb3oOlCoQxdiYL7yeHOf6bDTJ3PGO6Vg3TDZ
x0XnatrQyUfGAylKokhIcVAGcVJav+oynBB6J4slkZxJ5/nmPixYJ0qO+eZtohxV
dYKdOSa8q9z90OyOHrKZBysj7/RPNJlNnyA1HtJ2cDUlumuuMsEY2unLCNb0qVZM
UG6Mm5d07TZYuSXlbWtcZRvyQCwJLi8zeknnq77Z2Gp1/l62TcpyLah3WsxR/VD5
tX9KBz8eIIFrDZ34WB6eudW/6XErFjCHjHDCtTNj9/1FDyhX2QX4BTuWXprUg52v
9vzUPMhQHMXq49UF+wdcWiN1n0F2RGTCPklmUNunXai6UDLWZ/iNhO1flx/dalbV
gr6btHxo4ZxUfX4JUBfThQp+bUSrNNpPUSNET9cKyfOnmz88ulFxS1mXH+b28w/M
0e8nhzdihsvBsyYSIyBIEWBPatqrgehqTKIaAnfwdxsDjvI9uKyrEvcXWLn7T7k7
2prvX2OYt35D3OmbV5NwTXLsMYtL5KNTHpvyrgsmsnXTwSdLzYi6z+8y3tAvKRjI
4aRr9cgEQU56ZOk3DDdFxT+f39PefJwHSSIBXv1PD6p2PGFWH7POUMCFvtWFwfms
G8++7KmZxmslEFqd53kxIApy/2DPATIxiQ==
-----END CERTIFICATE-----
26 changes: 26 additions & 0 deletions src/keytypes/data/ca/intermediate.term.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
-----BEGIN CERTIFICATE-----
MIIEdTCCAl0CAhABMA0GCSqGSIb3DQEBDQUAMAAwHhcNMjAwOTI3MDMyMDUwWhcN
MzAwOTI1MDMyMDUwWjAAMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
qpOB4VqMjoi2XtbfanXl6MUWQXBR7xm74N4aDqEPATzqdDRJrWWbiitkZV1jh5/Q
CCGyVV3uGEpLJz2EqbNjRvzzzWwNlu1i0/wLWn8/w3tKxzK7x+IqTn1QxifWKGzm
SJm0yfZIKKq4c87/4sEpORATAEAsC+30UyoiNdA990cV2RoBn11sFdn3UIkCJyA9
Cvh2WvR0eOrsj+14d8A0Fw/DNFHeDOA5BXBvApLnQLmaz8mT3OiI9Yyxx3AfwRSH
WuoNLa+NB1f/wFyLODFQ/gP30bQfk/xJukW1p4zzwlw3/wipGzYyX6B6YxwnsG3N
2hG0bZ2tnFjQCjeJClWpuYK7cUUz8siputJTHJBQnnssg6llW/BawqQZxmK8/3rk
CfvQ2r1aWg20wc1Nhc7d/zvBRmk/lNvJjpdGKGvv1dtNsHZ9FW0YtQSJE/kjv2Ch
lxflxP5+E6tjyZNOyZo66LS/hxn7jC69Ygosn71pnGzL6QbLhJUUybII+O9Dv44Y
J+6tOt8SpVWnagTUMA0ylqesHcRnAGW839O+P9dgcPJQ2E3TElrCarZnzREoHYe6
9wKlQKY/cVrb845GSJoUscMXnGTYAthon2T1+RBWMEsrQJad4V/65aHTmjx99JZF
EMXd7EclqEeBVNVENIA9vFQK6KawzcYU7ySGVc5yYiUCAwEAATANBgkqhkiG9w0B
AQ0FAAOCAgEAaSdbB/k4lU15gAdOgKBnXrV/zKS704NcIjAKXneIHmJu97trDhEt
DYexW7/lxmxzRXVqo+u2fMvFIQgHJH1uxu1g+ib6m+WXJXIlUkFFv0eN/Hw+3H22
M5YnDh6M4Vzn3lPIJKgWqbNRQHkgiQerWK0azZKc++I4/gcESfeDZW6Mpa6rKtM9
X3ua5EvORvuDlDNoGLyOAa9lGE56hwF6bDM88jvB2dVy6C0WgCIA6ygZQBy5ATO/
cPLmDX0O7JWu0X2jW/E4h3lJGT3jCpkDOmAPJEcf56kC20QKF/hNipgvQ7aLrsLV
TIvD4612EEU6NDwVq2WOdnwFK9MaVsyvEKaveylooA2vOr0NT0rZ1Q6BMOn6eI8m
rYV+hBsu6V9UeLlsgHgtkwhkIckqvFL+mbfm8UvMI+uaSOZLeb9ufCYIO9QZcDoU
Aa7GXJ/FpL1kJc1/heTYaj9PGujC0Ntdat6PuivQlZJ3Pvjpax2vyW5EH01PbRSH
JIryKQg6hoOPqaQre3qN5r3TrXNSNuIIx9MB8m3usM8UxFkPhw5c2ZMhUUeOuBuC
6BdxOosuzMLV0zgD3aEggO/pC0iLSxL8MvphLRKEGps2bWh+SaDYRVw4DwdiwoH/
4OV+unz099Rhyba0II/D17oVZ+maOWQ+add2CkABp0JFL8j547L3A0Y=
-----END CERTIFICATE-----
29 changes: 29 additions & 0 deletions src/keytypes/data/ca/self.term.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
-----BEGIN CERTIFICATE-----
MIIE5zCCAs8CFBWlGnDbKokrvIxdsZmrZels0CqTMA0GCSqGSIb3DQEBCwUAMDAx
LjAsBgNVBAMMJXJ1c3Qta2V5dXRpbHMgc2VsZi1zaWduZWQgQ2VydGlmaWNhdGUw
HhcNMjAwOTI3MDMyMDUxWhcNMzAwOTI1MDMyMDUxWjAwMS4wLAYDVQQDDCVydXN0
LWtleXV0aWxzIHNlbGYtc2lnbmVkIENlcnRpZmljYXRlMIICIjANBgkqhkiG9w0B
AQEFAAOCAg8AMIICCgKCAgEAzhtaw6fDhVE/68SHtAYu3N0HpaAC+YUciD6QUb2X
1wW7cj5VtIWEKmozOlF/vHMIOeSGqamm59xAOFboaV4RqznPl0M7duYTPmbZQfFj
cjY5mp+qX6BybVR4qB+5hH440/cVkZVclNTOiLLbN8eY5LkJ+8YJDSiEq2WzeeZd
6clKK40D5a306ScDqTL7497cbjjIuT3EFYeGKL5IY4sZRJfMvjnUa+hDI3xWlpxb
qg3gVgKw4JpNyWGn7njKIw9dy7OeX+kDq/cxw9CaPJ1rpppD4ihDe5aVvzAperRG
+misT/kNaqQzooa7g4ZeJ8wOojrxEku7Gtydf1oe/EiVikEAPiOi7hglRC6SYXZ3
n5FBsz1vQWdkbGX7wGSJOGA/55QSU2+14CVf4P27WDLsYDmvlERcCP0Xt6jOUxBw
1e1VEYBgrpMI1YYqY1rVRWI76cXzCX6NIQDwKSWFwNMVcZEDLBRbeY+jofw2H4iR
B/TydGUV/w0fIH9gr51PKq5A4hjbQ+9nB/1hAZ1LsLxnx+lkvBtyqk97aWvP2vXG
WxXySGRknnlHObgbZSiRQmGH+4jp9ba4PbZMSx/sVsjDMYX7UkTwmeUqxW5nZBz1
UnIThc20oytdBunIIyFhSxXh9p9wtx058a40dd6WPWbDtTcVo+ahJsU7RP/8WIMK
6EMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAVPX4urQFDzWg9iwJ9ex+kbUf7PWo
cHTD7aCDVE8OAMJ36t2J0ThuKoBc8A/e45Msaj+OgIbfWsPCN84chJvdpgfZnvxE
wL3jnI+32ENkYXQ5esetneGv3I0rrSJ/nyvz7dvTWe889rNswQq6cjyrW/NL6wyW
s8angcyEJak37JqtHK2Kcvb1VW4jMho5cZA5hsiyEW/hrqe84OhHuTx1TelvUnfb
Y1eC8moHuukngvcuB0LA2V3Avd128r7lzmGnVwLtxdIq116hT0j2/vtZ4ymDdA9z
uSQ0ejRPVXzWgpAXXv1LtUiKiIT1RvrCEzYcl1e9Gce2Pz6Goy+zfaBsxQG2zjrO
aXdCnuITlGMLalZfXK9upBzOJS5HvelKy/WB1WrMg1/J7uahdtupkTtNZegYREGj
XypGbZnF7GJMxmfiL3cKp6TokNtZZ94dsnh5HJO+p5Nl5nZjhwjQ7hSTxNx/KVq1
VQ8CN81O2QlBgip4dg1ZWsu7B/71uAQRkR5acKZIkg7UkK82J4x5BSlSs5JnEP4k
SlOwey9dTbOehrknpG24z7yqg76ZMe9RuIhO7nOBMvKh5C0pHqZwCLiGNpjt5UJc
9FgTPC65X7hNbJWSeWi+ru6KsRBkHNHkpbxEeHk5Ck0v/ddm+QkBkMP4VC5VsTN4
BWzfmMAD/R6ZMIo=
-----END CERTIFICATE-----

0 comments on commit 28c1da6

Please sign in to comment.