mirrored from https://www.bouncycastle.org/repositories/bc-csharp
-
Notifications
You must be signed in to change notification settings - Fork 602
Expand file tree
/
Copy pathX509ExtensionBase.cs
More file actions
52 lines (43 loc) · 1.75 KB
/
Copy pathX509ExtensionBase.cs
File metadata and controls
52 lines (43 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System.Collections.Generic;
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.X509;
namespace Org.BouncyCastle.X509
{
public abstract class X509ExtensionBase
: IX509Extension
{
protected abstract X509Extensions GetX509Extensions();
protected virtual ISet<string> GetExtensionOids(bool critical)
{
X509Extensions extensions = GetX509Extensions();
if (extensions == null)
return null;
var set = new HashSet<string>();
foreach (DerObjectIdentifier oid in extensions.ExtensionOids)
{
X509Extension ext = extensions.GetExtension(oid);
if (ext.IsCritical == critical)
{
set.Add(oid.Id);
}
}
return set;
}
/// <summary>
/// Get non critical extensions.
/// </summary>
/// <returns>A set of non critical extension oids.</returns>
public virtual ISet<string> GetNonCriticalExtensionOids() => GetExtensionOids(critical: false);
/// <summary>
/// Get any critical extensions.
/// </summary>
/// <returns>A sorted list of critical entension.</returns>
public virtual ISet<string> GetCriticalExtensionOids() => GetExtensionOids(critical: true);
public virtual X509Extension GetExtension(DerObjectIdentifier oid) =>
GetX509Extensions()?.GetExtension(oid);
public virtual Asn1Object GetExtensionParsedValue(DerObjectIdentifier oid) =>
GetX509Extensions()?.GetExtensionParsedValue(oid);
public virtual Asn1OctetString GetExtensionValue(DerObjectIdentifier oid) =>
GetX509Extensions()?.GetExtensionValue(oid);
}
}