2using System.Collections.Generic;
3using System.Security.Cryptography.X509Certificates;
5using System.Threading.Tasks;
19 public const string ContentType =
"application/pem-certificate-chain";
68 public Task<object>
DecodeAsync(
string ContentType,
byte[] Data, Encoding Encoding, KeyValuePair<string, string>[] Fields, Uri BaseUri)
70 List<X509Certificate2> Certificates =
new List<X509Certificate2>();
71 string s = Encoding.ASCII.GetString(Data);
74 while ((i = s.IndexOf(
"-----BEGIN CERTIFICATE-----")) >= 0)
76 s = s.Substring(i + 27).TrimStart();
78 i = s.IndexOf(
"-----END CERTIFICATE-----");
81 byte[] Bin = Convert.FromBase64String(s.Substring(0, i).TrimEnd());
82 s = s.Substring(i + 25).TrimStart();
84 X509Certificate2 Certificate =
new X509Certificate2(Bin);
86 Certificates.Add(Certificate);
90 return Task.FromResult<
object>(Certificates.ToArray());
101 if (
string.Compare(FileExtension,
"pem",
true) == 0)
124 FileExtension =
"pem";
128 FileExtension =
string.Empty;
Decodes certificates encoded using the application/pem-certificate-chain content type.
bool Decodes(string ContentType, out Grade Grade)
If the decoder decodes an object with a given content type.
string[] ContentTypes
Supported content types.
string[] FileExtensions
Supported file extensions.
bool TryGetContentType(string FileExtension, out string ContentType)
Tries to get the content type of an item, given its file extension.
bool TryGetFileExtension(string ContentType, out string FileExtension)
Tries to get the file extension of an item, given its Content-Type.
const string ContentType
application/pem-certificate-chain
Task< object > DecodeAsync(string ContentType, byte[] Data, Encoding Encoding, KeyValuePair< string, string >[] Fields, Uri BaseUri)
Decodes an object.
PemDecoder()
Decodes certificates encoded using the application/pem-certificate-chain content type.
Basic interface for Internet Content decoders. A class implementing this interface and having a defau...