[API Proposal]: Additional X.509 collection content types in X509CertificateLoader
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- csharp
- Domain
- cryptography, security
Research direction
Start by reading the X509CertificateLoader API proposal and comparing it with the obsolete X509Certificate2Collection.Import behavior described in the issue. Define the additional collection content-type entry points, including PKCS#7, and verify that the resulting APIs load the corresponding certificate collections.
Written by the indexing model from the issue text.
Description
Background and motivation
The new X509CertificateLoader class is a regression compared to the now obsolete X509Certificate2Collection.Import in that it only supports PKCS#12 collections, whereas X509Certificate2Collection.Import supports not only PKCS#12 but also PKCS#7, Authenticode, etc. This means that users depend on an obsolete API just to load those X.509 content types.
API Proposal
namespace System.Security.Cryptography.X509Certificates;
public static class X509CertificateLoader
{
public static X509Certificate2Collection LoadPkcs7Collection(byte[] data);
public static X509Certificate2Collection LoadPkcs7Collection(ReadOnlySpan<byte> data);
// Repeat for other content types.
}
API Usage
byte[] pkcs7Bytes = []; // This will be replaced by actual bytes from a p7b file.
X509Certificate2Collection pkcs7Collection = X509CertificateLoader.LoadPkcs7Collection(pkcs7Bytes);
ReadOnlySpan<byte> pkcs7Bytes = []; // This will be replaced by actual bytes from a p7b file.
X509Certificate2Collection pkcs7Collection = X509CertificateLoader.LoadPkcs7Collection(pkcs7Bytes);
Alternative Designs
No response
Risks
No response
- Dominant language
- C#
- Stars
- 18.3k
- Forks
- 5.6k
- PR merge metrics
- PR metrics pending
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dotnet/runtime
-
agentic-workflows untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
area-System.Reflection blocking-clean-ci-optional Known Build Error os-mac-os-x untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
area-CodeGen-coreclr untriaged
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
agentic-workflows untriaged
Difficulty 1/5 Under an hour Newbie friendliness 78/100
-
area-VM-meta-mono untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SubtitleEdit/subtitleedit#15108 · 1 comment ·
-
area/docs-content Bug pulumi/docs
Difficulty 1/5 1-3 hours Newbie friendliness 94/100
-
Create parent directories only after the containment check in InstallHelper.TryExtractToDirectory Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
PowerShell/PSResourceGet#2056 ·