static string?GetUri(string accessMethodOid, ref AccessDescriptionAsn desc) { if (string.Equals(accessMethodOid, desc.AccessMethod)) { return(desc.AccessLocation.Uri); } return(null); }
internal static string FindHttpAiaRecord(byte[] authorityInformationAccess, string recordTypeOid) { AsnReader reader = new AsnReader(authorityInformationAccess, AsnEncodingRules.DER); AsnReader sequenceReader = reader.ReadSequence(); reader.ThrowIfNotEmpty(); while (sequenceReader.HasData) { AccessDescriptionAsn.Decode(sequenceReader, out AccessDescriptionAsn description); if (StringComparer.Ordinal.Equals(description.AccessMethod, recordTypeOid)) { GeneralNameAsn name = description.AccessLocation; if (name.Uri != null && Uri.TryCreate(name.Uri, UriKind.Absolute, out Uri uri) && uri.Scheme == "http") { return(name.Uri); } } } return(null); }