using GostCryptography.Properties; namespace GostCryptography.Asn1.Ber { public class Asn1CharRange : Asn1CharSet { private readonly int _lower; private readonly int _upper; public Asn1CharRange(int lower, int upper) : base((upper - lower) + 1) { _lower = lower; _upper = upper; } public override int MaxValue { get { return _upper; } } public override int GetCharAtIndex(int index) { index += _lower; if (index > _upper) { throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, "Character index", index); } return index; } public override int GetCharIndex(int charValue) { var num = charValue - _lower; if (num < 0) { throw ExceptionUtility.CryptographicException(Resources.Asn1ConsVioException, "Character index", charValue); } return num; } } }