.net core 如何创建id为ecc的自签名证书以用于ECDSA签名和验证?

.net core 如何创建id为ecc的自签名证书以用于ECDSA签名和验证?,.net-core,cryptography,public-key,.net-4.6,self-signed-certificate,.net Core,Cryptography,Public Key,.net 4.6,Self Signed Certificate,我正在尝试更新,以允许我创建和使用基于ECC的自签名证书,并使用它 有没有办法通过跨平台的.NET核心API实现这一点,或者需要Win32 P/Invoke? 根据,我需要使用更标准的id类型 有没有办法通过跨平台的.NET核心API来实现这一点 是的 X509证书2证书; 使用ECDsa密钥=ECDsa.CreateECCurve.NamedCurves.nistP256 { CertificateRequest请求=新的CertificateRequest CN=自签名ECDSA, 钥匙 H

我正在尝试更新,以允许我创建和使用基于ECC的自签名证书,并使用它

有没有办法通过跨平台的.NET核心API实现这一点,或者需要Win32 P/Invoke? 根据,我需要使用更标准的id类型

有没有办法通过跨平台的.NET核心API来实现这一点

是的

X509证书2证书; 使用ECDsa密钥=ECDsa.CreateECCurve.NamedCurves.nistP256 { CertificateRequest请求=新的CertificateRequest CN=自签名ECDSA, 钥匙 HashAlgorithmName.SHA256; request.CertificateExtensions.Add 新X509KeyUsageExtensionX509KeyUsageFlags.DigitalSignature,临界值:false; request.CertificateExtensions.Add 新X509BasicConstraintExtensionsFalse,false,0,false; //如果是TLS,则受试者可选择的名称和 //扩展的增强键用法也很有用。 DateTimeOffset start=DateTimeOffset.UtcNow; cert=request.CreateSelfSignednotBefore:start,notAfter:start.AddMonths3; } //如果您想保存PFX或其他东西,现在就可以这样做。 有没有办法通过跨平台的.NET核心API来实现这一点

是的

X509证书2证书; 使用ECDsa密钥=ECDsa.CreateECCurve.NamedCurves.nistP256 { CertificateRequest请求=新的CertificateRequest CN=自签名ECDSA, 钥匙 HashAlgorithmName.SHA256; request.CertificateExtensions.Add 新X509KeyUsageExtensionX509KeyUsageFlags.DigitalSignature,临界值:false; request.CertificateExtensions.Add 新X509BasicConstraintExtensionsFalse,false,0,false; //如果是TLS,则受试者可选择的名称和 //扩展的增强键用法也很有用。 DateTimeOffset start=DateTimeOffset.UtcNow; cert=request.CreateSelfSignednotBefore:start,notAfter:start.AddMonths3; } //如果您想保存PFX或其他东西,现在就可以这样做。
您真的需要用C代码创建证书吗?使用openssl命令行执行此操作会简单得多API@ZergatulOpenSSL未被批准用于我正在使用的高度受控环境,Bouncy CastleDo也未被批准。您需要动态生成大量证书吗?如果没有,您可以使用openssl生成一次证书,然后在C中使用它。在我工作的受限环境中,不允许使用openssl和bouncy castle@ZergatulWell,如果你不能使用库,那么你可能必须自己编程,不是吗?我要求对这条规则有一个例外,因为编程证书——包括所有涉及ASN.1的证书——一点也不有趣。BC有一个许可证,所以你可以复制相关的部分,当然也可以向BC提供适当的贡献声明。警告:这可能需要一些时间来提取,这将是大量的代码。你可能还想看看.NET代码本身,我想现在它也是O/S许可的,IANAL。你真的需要用C代码创建证书吗?使用openssl命令行执行此操作会简单得多API@ZergatulOpenSSL未被批准用于我正在使用的高度受控环境,Bouncy CastleDo也未被批准。您需要动态生成大量证书吗?如果没有,您可以使用openssl生成一次证书,然后在C中使用它。在我工作的受限环境中,不允许使用openssl和bouncy castle@ZergatulWell,如果你不能使用库,那么你可能必须自己编程,不是吗?我要求对这条规则有一个例外,因为编程证书——包括所有涉及ASN.1的证书——一点也不有趣。BC有一个许可证,所以你可以复制相关的部分,当然也可以向BC提供适当的贡献声明。警告:这可能需要一些时间来提取,这将是大量的代码。您可能还想了解.NET代码本身,我认为它现在也是O/S许可的,IANAL.Requires.NET7.1。我希望我能提出一个足够有说服力的论点来转换!需要.NET7.1。我希望我能提出一个足够有说服力的论点来转换!