class KeyUsage { final int _value; const KeyUsage._internal(this._value); static final Set values = [ KeyUsage.digitalSignature, KeyUsage.nonRepudiation, KeyUsage.keyEncipherment, KeyUsage.dataEncipherment, KeyUsage.keyAgreement, KeyUsage.keyCertSign, KeyUsage.cRLSign, KeyUsage.encipherOnly, KeyUsage.decipherOnly, ].toSet(); static KeyUsage? fromIndex(int? value) { if (value != null) { try { return KeyUsage.values .firstWhere((element) => element.toValue() == value); } catch (e) { return null; } } return null; } int toValue() => _value; String name() => _KeyUsageMapName.containsKey(this._value) ? _KeyUsageMapName[this._value]! : ""; @override String toString() => "($_value, ${name()})"; static const digitalSignature = const KeyUsage._internal(0); static const nonRepudiation = const KeyUsage._internal(1); static const keyEncipherment = const KeyUsage._internal(2); static const dataEncipherment = const KeyUsage._internal(3); static const keyAgreement = const KeyUsage._internal(4); static const keyCertSign = const KeyUsage._internal(5); static const cRLSign = const KeyUsage._internal(6); static const encipherOnly = const KeyUsage._internal(7); static const decipherOnly = const KeyUsage._internal(8); bool operator ==(value) => value == _value; @override int get hashCode => _value.hashCode; static const Map _KeyUsageMapName = { 0: "digitalSignature", 1: "nonRepudiation", 2: "keyEncipherment", 3: "dataEncipherment", 4: "keyAgreement", 5: "keyCertSign", 6: "cRLSign", 7: "encipherOnly", 8: "decipherOnly", }; }