pretend to support chain (#245)
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
a349292fc2
commit
406df57f9d
@@ -9,6 +9,7 @@ using Org.BouncyCastle.OpenSsl;
|
|||||||
using Org.BouncyCastle.Pkcs;
|
using Org.BouncyCastle.Pkcs;
|
||||||
using Org.BouncyCastle.Security;
|
using Org.BouncyCastle.Security;
|
||||||
using Org.BouncyCastle.X509;
|
using Org.BouncyCastle.X509;
|
||||||
|
using X509Certificate = Org.BouncyCastle.X509.X509Certificate;
|
||||||
|
|
||||||
namespace k8s
|
namespace k8s
|
||||||
{
|
{
|
||||||
@@ -21,13 +22,19 @@ namespace k8s
|
|||||||
/// <returns>x509 instance.</returns>
|
/// <returns>x509 instance.</returns>
|
||||||
public static X509Certificate2 LoadPemFileCert(string file)
|
public static X509Certificate2 LoadPemFileCert(string file)
|
||||||
{
|
{
|
||||||
var certdata = File.ReadAllText(file)
|
var certs = new X509CertificateParser().ReadCertificates(File.OpenRead(file));
|
||||||
.Replace("-----BEGIN CERTIFICATE-----", "")
|
var store = new Pkcs12StoreBuilder().Build();
|
||||||
.Replace("-----END CERTIFICATE-----", "")
|
foreach (X509Certificate cert in certs)
|
||||||
.Replace("\r", "")
|
{
|
||||||
.Replace("\n", "");
|
store.SetCertificateEntry(Guid.NewGuid().ToString(), new X509CertificateEntry(cert));
|
||||||
|
}
|
||||||
|
|
||||||
return new X509Certificate2(Convert.FromBase64String(certdata));
|
using (var pkcs = new MemoryStream())
|
||||||
|
{
|
||||||
|
store.Save(pkcs, new char[0], new SecureRandom());
|
||||||
|
// TODO not a chain
|
||||||
|
return new X509Certificate2(pkcs.ToArray());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -70,5 +70,15 @@ namespace k8s.Tests
|
|||||||
var cert = CertUtils.GeneratePfx(cfg);
|
var cert = CertUtils.GeneratePfx(cfg);
|
||||||
Assert.NotNull(cert.PrivateKey);
|
Assert.NotNull(cert.PrivateKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Checks
|
||||||
|
/// </summary>
|
||||||
|
[Fact]
|
||||||
|
public void LoadPemWithMultiCert()
|
||||||
|
{
|
||||||
|
var cert = CertUtils.LoadPemFileCert("assets/ca3.crt");
|
||||||
|
Assert.NotNull(cert.PublicKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
36
tests/KubernetesClient.Tests/assets/ca3.crt
Normal file
36
tests/KubernetesClient.Tests/assets/ca3.crt
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC5zCCAc+gAwIBAgIBATANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwptaW5p
|
||||||
|
a3ViZUNBMB4XDTE3MDcyNDA1NDExNloXDTI3MDcyMjA1NDExNlowFTETMBEGA1UE
|
||||||
|
AxMKbWluaWt1YmVDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMfj
|
||||||
|
J9bJarUsN5Ynt/sbDFQQLp6BeHPXOcUdbNan1YbXdFGN8qLKkkQz0YY1hcVGrXdj
|
||||||
|
3vd2s8x9XlOyQPZ1SX4vJa5x/67BzFdxbCLg6jBYAisGvYu0hV4jvhHYOZH8sWUp
|
||||||
|
6n+gPm5c3J8gjqAmM0VwpvtG9HBIr1MWQ4HSTCBVoPvuG9TkOyxrB9RCha16hG7j
|
||||||
|
B3m9XNEkRVl1xvW6wkeTO4n5cFSoDG0bfCnnjf0oz+pf0yJoSHbl/f2jI/rggMft
|
||||||
|
0R0LJfqdGlNCKCuN4g0jMmf26313oe+7i8uU4ut9iM1OBv6vD+xy115DGYG7EQIy
|
||||||
|
lC1rd+gNlGQSxDafAb8CAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgKkMB0GA1UdJQQW
|
||||||
|
MBQGCCsGAQUFBwMCBggrBgEFBQcDATAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
|
||||||
|
DQEBCwUAA4IBAQAnXDZUdfC22zyFpZ+Rez3tyk9SqpOeiN1xGirZ5obDgvOS9vSR
|
||||||
|
GLrsdN4UtXfGpKeMNQJV4e9YDz1ehLd1MK1BoxDVZHB0Sm2QxuyA4EyPfpHH9zaY
|
||||||
|
qoRgDeUKBmCteLLcY3ukOzGf915j+lWQHv+tk52gvHfxvRyEuawSxSnowkGGFY9R
|
||||||
|
6AQ2cFm7G3SdygRWVXT1hk5hVQXvBY9DNU1YNvN0qWE6ss5RHJ/cxHFWtrdcr86K
|
||||||
|
DqW9Ylr1l2iwkWpnXR4OMK3ZFjwX/qi11Z8eMDOi+0FxZ/6BkGQxe7X6D2GjCZ3r
|
||||||
|
Lfbj0HBpynkd6lfLmIWgEzGYxrQjvczbAKBD
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIC3zCCAcegAwIBAgIQWNOfSGBRn4EUcsj7E1UN8zANBgkqhkiG9w0BAQsFADAZ
|
||||||
|
MRcwFQYDVQQKEw5EYXZpZCBPcmJlbGlhbjAeFw0xODA2MDgxMjI2MDBaFw0yMTA1
|
||||||
|
MjMxMjI2MDBaMBkxFzAVBgNVBAoTDkRhdmlkIE9yYmVsaWFuMIIBIjANBgkqhkiG
|
||||||
|
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnXGK1ZHqF4fhO3WOtlo5kqVYHHYTasNmzbQh
|
||||||
|
MJ0IHiFrCVNi6apohleHi0IlzVFCQY5+yab2Lz7J2qcadRVWLlfhskMx4hbSD+eX
|
||||||
|
H9MDcnV1k4AyFz+9I+dL4rb5DPcK9vNQF0KXtdpaq4qVs+IoRR4Ck00yvzLmOMTs
|
||||||
|
YvFVjW6XgKPR+y89y8iykW2puiJ/y6DLKlP+2HDGGEI07C+4Tkxps6uRkPz6ySVb
|
||||||
|
6mhJ6P/+8WmuMc0Ur1kNgA0GEUTFYlRNuF0nNjBvncGBUwOWAUNbsYQgElaqXJKe
|
||||||
|
XZ6M44+oBvRsCsnf7j3hfKti4u/Qy9nDejJ/15R6I6A5JdYOxwIDAQABoyMwITAO
|
||||||
|
BgNVHQ8BAf8EBAMCAqwwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
|
||||||
|
AQEAU2Rp4T7iWomEsCC8nrQPXh/6AlVnfb/vhC7aCq+g6CF+LvksfM3Uj+JLQ5rM
|
||||||
|
QNavSXowqe11vNb1Qu7LcQT5ff76XEoK0dKA8uMs60wUkHttfPzXM522rdv+i8EF
|
||||||
|
QwVirN85W5i2q669MQ2BeJ37gQ6vQAOLvHXTuspDo1qrfT3zkeGiLEXRM4k4d6OT
|
||||||
|
BnZNYvfdTTZX7OlvHfw5hdcRtoOTBmTAh+UKJvOUIQ2g/Mp2VBxNNC5zhJHTwEXj
|
||||||
|
ssHyR24e9+GODLviep2H1uB+mHZQ5Yvzxxlkz8NTDx+mUmBSF1gGuDNdmKrCrP92
|
||||||
|
bJZY0LcRrXX0aqPymVZrINDvtA==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
Reference in New Issue
Block a user