Skip to content
Snippets Groups Projects
Commit dafe429b authored by Klaus Fischer's avatar Klaus Fischer
Browse files

Removed unsed files

parent 5b7696d8
No related branches found
No related tags found
1 merge request!24AutoReject planning#594
**/.dockerignore
**/.env
**/.git
**/.gitignore
**/.project
**/.settings
**/.toolstarget
**/.vs
**/.vscode
**/.idea
**/*.*proj.user
**/*.dbmdl
**/*.jfm
**/azds.yaml
**/bin
**/charts
**/docker-compose*
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
LICENSE
README.md
\ No newline at end of file
FROM mcr.microsoft.com/dotnet/runtime:6.0 AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["KeyGeneratorCli/KeyGeneratorCli.csproj", "KeyGeneratorCli/"]
RUN dotnet restore "KeyGeneratorCli/KeyGeneratorCli.csproj"
COPY . .
WORKDIR "/src/KeyGeneratorCli"
RUN dotnet build "KeyGeneratorCli.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "KeyGeneratorCli.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "KeyGeneratorCli.dll"]
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="BouncyCastle.NetCore" Version="1.9.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
</Project>
using Org.BouncyCastle.Asn1.Pkcs;
using Org.BouncyCastle.Asn1.Sec;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Asn1.X9;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Generators;
using Org.BouncyCastle.Crypto.Operators;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.X509;
using System;
using System.IO;
class Program
{
static SecureRandom secureRandom = new SecureRandom();
static AsymmetricCipherKeyPair GenerateRsaKeyPair(int length)
{
var keygenParam = new KeyGenerationParameters(secureRandom, length);
var keyGenerator = new RsaKeyPairGenerator();
keyGenerator.Init(keygenParam);
return keyGenerator.GenerateKeyPair();
}
static AsymmetricCipherKeyPair GenerateEcKeyPair(string curveName)
{
var ecParam = SecNamedCurves.GetByName(curveName);
var ecDomain = new ECDomainParameters(ecParam.Curve, ecParam.G, ecParam.N);
var keygenParam = new ECKeyGenerationParameters(ecDomain, secureRandom);
var keyGenerator = new ECKeyPairGenerator();
keyGenerator.Init(keygenParam);
return keyGenerator.GenerateKeyPair();
}
static X509Certificate GenerateCertificate(
X509Name issuer, X509Name subject,
AsymmetricKeyParameter issuerPrivate,
AsymmetricKeyParameter subjectPublic)
{
ISignatureFactory signatureFactory;
if (issuerPrivate is ECPrivateKeyParameters)
{
signatureFactory = new Asn1SignatureFactory(
X9ObjectIdentifiers.ECDsaWithSha256.ToString(),
issuerPrivate);
}
else
{
signatureFactory = new Asn1SignatureFactory(
PkcsObjectIdentifiers.Sha256WithRsaEncryption.ToString(),
issuerPrivate);
}
var certGenerator = new X509V3CertificateGenerator();
certGenerator.SetIssuerDN(issuer);
certGenerator.SetSubjectDN(subject);
certGenerator.SetSerialNumber(BigInteger.ValueOf(1));
certGenerator.SetNotAfter(DateTime.UtcNow.AddHours(1));
certGenerator.SetNotBefore(DateTime.UtcNow);
certGenerator.SetPublicKey(subjectPublic);
return certGenerator.Generate(signatureFactory);
}
static bool ValidateSelfSignedCert(X509Certificate cert, ICipherParameters pubKey)
{
cert.CheckValidity(DateTime.UtcNow);
var tbsCert = cert.GetTbsCertificate();
var sig = cert.GetSignature();
var signer = SignerUtilities.GetSigner(cert.SigAlgName);
signer.Init(false, pubKey);
signer.BlockUpdate(tbsCert, 0, tbsCert.Length);
return signer.VerifySignature(sig);
}
static void Main(string[] args)
{
var caName = new X509Name("CN=TestCA");
var eeName = new X509Name("CN=TestEE");
var caKey = GenerateEcKeyPair("secp256r1");
var eeKey = GenerateRsaKeyPair(2048);
var caCert = GenerateCertificate(caName, caName, caKey.Private, caKey.Public);
var eeCert = GenerateCertificate(caName, eeName, caKey.Private, eeKey.Public);
var caOk = ValidateSelfSignedCert(caCert, caKey.Public);
var eeOk = ValidateSelfSignedCert(eeCert, caKey.Public);
using (var f = File.OpenWrite("ca.cer"))
{
var buf = caCert.GetEncoded();
f.Write(buf, 0, buf.Length);
}
using (var f = File.OpenWrite("ee.cer"))
{
var buf = eeCert.GetEncoded();
f.Write(buf, 0, buf.Length);
}
}
}
\ No newline at end of file
{
"$id": "https://example.com/person.schema.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Person",
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "The person's first name."
},
"lastName": {
"type": "string",
"description": "The person's last name."
},
"age": {
"description": "Age in years which must be equal to or greater than zero.",
"type": "integer",
"minimum": 0
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment