<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.1" />

KeyUsage

public class KeyUsage : DerBitString
namespace Org.BouncyCastle.Asn1.X509 { public class KeyUsage : DerBitString { public const int DigitalSignature = 128; public const int NonRepudiation = 64; public const int KeyEncipherment = 32; public const int DataEncipherment = 16; public const int KeyAgreement = 8; public const int KeyCertSign = 4; public const int CrlSign = 2; public const int EncipherOnly = 1; public const int DecipherOnly = 32768; public new static KeyUsage GetInstance(object obj) { KeyUsage keyUsage = obj as KeyUsage; if (keyUsage != null) return keyUsage; X509Extension x509Extension = obj as X509Extension; if (x509Extension != null) return GetInstance(X509Extension.ConvertValueToObject(x509Extension)); if (obj == null) return null; return new KeyUsage(DerBitString.GetInstance(obj)); } public static KeyUsage FromExtensions(X509Extensions extensions) { return GetInstance(X509Extensions.GetExtensionParsedValue(extensions, X509Extensions.KeyUsage)); } public KeyUsage(int usage) : base(usage) { } private KeyUsage(DerBitString usage) : base(usage.GetBytes(), usage.PadBits) { } public override string ToString() { byte[] bytes = GetBytes(); int num; if (bytes.Length == 1) { num = (bytes[0] & 255); return "KeyUsage: 0x" + num.ToString("X"); } num = (((bytes[1] & 255) << 8) | (bytes[0] & 255)); return "KeyUsage: 0x" + num.ToString("X"); } } }