Skip to content

Commit

Permalink
Update namespaces
Browse files Browse the repository at this point in the history
  • Loading branch information
damienbod committed Oct 31, 2024
1 parent 32a787b commit 15f1668
Show file tree
Hide file tree
Showing 24 changed files with 1,434 additions and 1,456 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Update serial conversion to use big endian only

## 2020-01-27 version 1.0.2
* Small fixes for RSA certificates KeySize
* IdentityServer4 example certificates
* IdentityServer example certificates

## 2020-01-24 version 1.0.1
* Support RSA certificates
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Now the package is ready to use. See the [Documentation](https://github.com/dami
- [Create verify certificate for Azure IoT Hub .pem or .cer](https://github.com/damienbod/AspNetCoreCertificates/tree/master/src/IoTHubVerifyCertificate)
- [Create device (Leaf) certificate for Azure IoT Hub device](https://github.com/damienbod/AspNetCoreCertificates/tree/master/src/IoTHubCreateDeviceCertificate)
- [Create development certificates for SPAs HTTPS development, like Vue.js, Angular](https://github.com/damienbod/AspNetCoreCertificates/tree/master/src/CreateAngularVueJsDevelopmentCertificates)
- [Create certificates for IdentityServer4 RSA and ECDsa](https://github.com/damienbod/AspNetCoreCertificates/tree/master/src/CreateIdentityServer4Certificates)
- [Create certificates for IdentityServer RSA and ECDsa](https://github.com/damienbod/AspNetCoreCertificates/tree/master/src/CreateIdentityServer4Certificates)


# Examples Using Certificates:
Expand All @@ -70,6 +70,6 @@ https://github.com/oocx/ReadX509CertificateFromPem

- [Creating Certificates for X.509 security in Azure IoT Hub using .NET Core](https://damienbod.com/2020/01/29/creating-certificates-for-x-509-security-in-azure-iot-hub-using-net-core/)
- [Creating Certificates in .NET Core for Vue.js development using HTTPS](https://damienbod.com/2020/02/04/creating-certificates-in-net-core-for-vue-js-development-using-https/)
- [Create Certificates for IdentityServer4 signing using .NET Core](https://damienbod.com/2020/02/10/create-certificates-for-identityserver4-signing-using-net-core/)
- [Create Certificates for IdentityServer signing using .NET Core](https://damienbod.com/2020/02/10/create-certificates-for-identityserver4-signing-using-net-core/)
- [Provisioning X.509 Devices for Azure IoT Hub using .NET Core](https://damienbod.com/2020/02/20/provisioning-x-509-devices-for-azure-iot-hub-using-net-core)

2 changes: 1 addition & 1 deletion src/CertificateManager.sln
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IoTHubCreateDeviceCertifica
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CreateAngularVueJsDevelopmentCertificates", "CreateAngularVueJsDevelopmentCertificates\CreateAngularVueJsDevelopmentCertificates.csproj", "{4761AF09-95B5-4632-92D6-872652C354C7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CreateIdentityServer4Certificates", "CreateIdentityServer4Certificates\CreateIdentityServer4Certificates.csproj", "{C22EB3CB-0F6F-4F64-847B-63E0A75AA999}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CreateIdentityServerCertificates", "CreateIdentityServer4Certificates\CreateIdentityServerCertificates.csproj", "{C22EB3CB-0F6F-4F64-847B-63E0A75AA999}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
117 changes: 58 additions & 59 deletions src/CertificateManagerTests/BuildChainUtil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,78 +2,77 @@
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

namespace CertificateManagerTests
namespace CertificateManagerTests;

public static class BuildChainUtil
{
public static class BuildChainUtil
{
private static readonly Oid ServerCertificateOid = OidLookup.ServerAuthentication;
private static readonly Oid ClientCertificateOid = OidLookup.ClientAuthentication;
private static readonly Oid ServerCertificateOid = OidLookup.ServerAuthentication;
private static readonly Oid ClientCertificateOid = OidLookup.ClientAuthentication;

public static X509ChainPolicy BuildChainPolicySelfSigned(
X509Certificate2 certificate,
bool ValidateCertificateUse,
bool ValidateValidityPeriod)
public static X509ChainPolicy BuildChainPolicySelfSigned(
X509Certificate2 certificate,
bool ValidateCertificateUse,
bool ValidateValidityPeriod)
{
// Turn off chain validation, because we have a self signed certificate.
var revocationFlag = X509RevocationFlag.EntireChain;
var revocationMode = X509RevocationMode.NoCheck;
var chainPolicy = new X509ChainPolicy
{
// Turn off chain validation, because we have a self signed certificate.
var revocationFlag = X509RevocationFlag.EntireChain;
var revocationMode = X509RevocationMode.NoCheck;
var chainPolicy = new X509ChainPolicy
{
RevocationFlag = revocationFlag,
RevocationMode = revocationMode,
};

if (ValidateCertificateUse)
{
chainPolicy.ApplicationPolicy.Add(ClientCertificateOid);
}
RevocationFlag = revocationFlag,
RevocationMode = revocationMode,
};

chainPolicy.VerificationFlags |= X509VerificationFlags.AllowUnknownCertificateAuthority;
chainPolicy.VerificationFlags |= X509VerificationFlags.IgnoreEndRevocationUnknown;
chainPolicy.ExtraStore.Add(certificate);
if (ValidateCertificateUse)
{
chainPolicy.ApplicationPolicy.Add(ClientCertificateOid);
}

if (!ValidateValidityPeriod)
{
chainPolicy.VerificationFlags |= X509VerificationFlags.IgnoreNotTimeValid;
}
chainPolicy.VerificationFlags |= X509VerificationFlags.AllowUnknownCertificateAuthority;
chainPolicy.VerificationFlags |= X509VerificationFlags.IgnoreEndRevocationUnknown;
chainPolicy.ExtraStore.Add(certificate);

return chainPolicy;
if (!ValidateValidityPeriod)
{
chainPolicy.VerificationFlags |= X509VerificationFlags.IgnoreNotTimeValid;
}

public static X509ChainPolicy BuildChainPolicyChained(
X509Certificate2 root, X509Certificate2 intermediate,
X509Certificate2 server, X509Certificate2 client,
X509RevocationFlag revocationFlag,
X509RevocationMode revocationMode,
bool ValidateCertificateUse,
bool ValidateValidityPeriod)
{
var chainPolicy = new X509ChainPolicy
{
RevocationFlag = revocationFlag,
RevocationMode = revocationMode,
};
return chainPolicy;
}

if (ValidateCertificateUse)
{
chainPolicy.ApplicationPolicy.Add(ClientCertificateOid);
}
public static X509ChainPolicy BuildChainPolicyChained(
X509Certificate2 root, X509Certificate2 intermediate,
X509Certificate2 server, X509Certificate2 client,
X509RevocationFlag revocationFlag,
X509RevocationMode revocationMode,
bool ValidateCertificateUse,
bool ValidateValidityPeriod)
{
var chainPolicy = new X509ChainPolicy
{
RevocationFlag = revocationFlag,
RevocationMode = revocationMode,
};

// This is NOT the default !!!
// Only set this to validate the other parts of the chained flow
chainPolicy.VerificationFlags |= X509VerificationFlags.AllowUnknownCertificateAuthority;
if (ValidateCertificateUse)
{
chainPolicy.ApplicationPolicy.Add(ClientCertificateOid);
}

chainPolicy.ExtraStore.Add(root);
chainPolicy.ExtraStore.Add(intermediate);
chainPolicy.ExtraStore.Add(server);
chainPolicy.ExtraStore.Add(client);
// This is NOT the default !!!
// Only set this to validate the other parts of the chained flow
chainPolicy.VerificationFlags |= X509VerificationFlags.AllowUnknownCertificateAuthority;

if (!ValidateValidityPeriod)
{
chainPolicy.VerificationFlags |= X509VerificationFlags.IgnoreNotTimeValid;
}
chainPolicy.ExtraStore.Add(root);
chainPolicy.ExtraStore.Add(intermediate);
chainPolicy.ExtraStore.Add(server);
chainPolicy.ExtraStore.Add(client);

return chainPolicy;
if (!ValidateValidityPeriod)
{
chainPolicy.VerificationFlags |= X509VerificationFlags.IgnoreNotTimeValid;
}

return chainPolicy;
}
}
Loading

0 comments on commit 15f1668

Please sign in to comment.