Skip to content

Commit ade9166

Browse files
authored
Merge pull request #67 from Mrizzi-96/fix/issue-59
Fixed issue 59: ASN1 corrupted data exception on linux
2 parents 107547a + e8f1ae8 commit ade9166

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

RuleValidators/DgcReader.RuleValidators.Italy/CertifiateExtendedKeyUsageUtils.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using Microsoft.Extensions.Logging;
55
using DgcReader.Models;
6+
using System.Text;
67

78
#if NETSTANDARD
89
using System.Text;
@@ -55,7 +56,7 @@ public static IEnumerable<string> GetExtendedKeyUsages(SignatureValidationResult
5556
return Enumerable.Empty<string>();
5657

5758
#else
58-
var certificate = new X509Certificate2(signatureValidation.PublicKeyData.Certificate);
59+
var certificate = new X509Certificate2(signatureValidation.PublicKeyData.Certificate);
5960
var enhancedKeyExtensions = certificate.Extensions.OfType<X509EnhancedKeyUsageExtension>();
6061

6162
if (enhancedKeyExtensions == null)
@@ -82,7 +83,8 @@ private static byte[] AddPemHeaders(byte[] certificateData)
8283
const string PemHeader = "-----BEGIN CERTIFICATE-----";
8384
const string PemFooter = "-----END CERTIFICATE-----";
8485

85-
var decoded = Encoding.ASCII.GetString(certificateData);
86+
var decoded = Convert.ToBase64String(certificateData);
87+
8688
if (!decoded.StartsWith(PemHeader) && !decoded.EndsWith(PemFooter))
8789
{
8890
decoded = PemHeader + "\n" + decoded + "\n" + PemFooter;

TrustListProviders/DgcReader.TrustListProviders.Italy/ItalianTrustListProvider.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,8 +304,9 @@ private async Task<IDictionary<string, byte[]>> GetCertificatesFromServer(Cancel
304304
var response = await _httpClient.SendAsync(request, cancellationToken);
305305
if (response.IsSuccessStatusCode)
306306
{
307-
var content = await response.Content.ReadAsByteArrayAsync();
308-
307+
var stringContent = await response.Content.ReadAsStringAsync();
308+
var content = Convert.FromBase64String(stringContent);
309+
309310
int? newToken = null;
310311
if (response.Headers.TryGetValues(HeaderResumeToken, out var newTokens))
311312
{

TrustListProviders/DgcReader.TrustListProviders.Italy/X509CertificatesUtils.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public static class X509CertificatesUtils
3838
public static CertificateData GetCertificateData(string kid, byte[] certificateBytes, ILogger? logger)
3939
{
4040

41-
var cert = new X509Certificate2(Convert.FromBase64String(Encoding.ASCII.GetString(certificateBytes)));
41+
var cert = new X509Certificate2(certificateBytes);
4242
var keyAlgo = cert.GetKeyAlgorithm();
4343
var keyAlgoOid = Oid.FromOidValue(keyAlgo, OidGroup.PublicKeyAlgorithm);
4444

@@ -145,7 +145,7 @@ private static byte[] AddPemHeaders(byte[] certificateData)
145145
const string PemHeader = "-----BEGIN CERTIFICATE-----";
146146
const string PemFooter = "-----END CERTIFICATE-----";
147147

148-
var decoded = Encoding.ASCII.GetString(certificateData);
148+
var decoded = Convert.ToBase64String(certificateData);
149149
if (!decoded.StartsWith(PemHeader) && !decoded.EndsWith(PemFooter))
150150
{
151151
decoded = PemHeader + "\n" + decoded + "\n" + PemFooter;

0 commit comments

Comments
 (0)