Объект модели безопасности Math
В файле basic.psl содержится декларация, которая создает объект модели безопасности Math с именем math. Соответственно, включение файла basic.psl в описание политики безопасности решения обеспечивает создание объекта модели безопасности Math по умолчанию.
Объект модели безопасности Math не имеет параметров и не может быть покрыт аудитом безопасности.
Создавать дополнительные объекты модели безопасности Math не требуется.
Методы модели безопасности Math
Модель безопасности Math содержит выражения, которые выполняют операции целочисленной арифметики, побитовые операции и операции приведения целочисленных типов. Для вызова части этих выражений нужно использовать следующие арифметические операторы:
Number> + <Number> – "сложение". Возвращает значения типа Number.Number> - <Number> – "вычитание". Возвращает значения типа Number.Number> * <Number> – "умножение". Возвращает значения типа Number.Number> | <Number> – "побитовое ИЛИ". Возвращает значения типа Number.Number> & <Number> – "побитовое И". Возвращает значения типа Number.~ <Number> – "побитовое отрицание". Возвращает значения типа Number.Другая часть включает следующие выражения:
neg (<Signed>) – "изменение знака числа". Возвращает значения типа Signed.abs (<Signed> ) – "получение модуля числа". Возвращает значения типа Signed.sum (<List<Number>>) – "сложение чисел из списка". Возвращает значения типа Number. Если передать через параметр пустой список значений ([]), возвращает 0.product (<List<Number>>) – "перемножение чисел из списка". Возвращает значения типа Number. Если передать через параметр пустой список значений ([]), возвращает 1.uint64 (<Unsigned>) – "приведение к типу UInt64".uint32 (<UInt8 | UInt16 | UInt32>) – "приведение к типу UInt32".uint16 (<UInt8 | UInt16>) – "приведение к типу UInt16".sint64 (<Signed | UInt8 | UInt16 | UInt32>) – "приведение к типу SInt64".sint32 (<SInt8 | SInt16 | SInt32 | UInt8 | UInt16>) – "приведение к типу SInt32".sint16 (<SInt8 | SInt16 | UInt8>) – "приведение к типу SInt16".signedToUInt64 (<Signed>) – "приведение к типу UInt64". Отрицательные числа преобразуются в положительные вычитанием из 2^64. Например, -1 преобразуется в 2^64-1.signedToUInt32 (<SInt8 | SInt16 | SInt32>) – "приведение к типу UInt32". Отрицательные числа преобразуются в положительные вычитанием из 2^32. Например, -3 преобразуется в 2^32-3.signedToUInt16 (<SInt8 | SInt16>) – "приведение к типу UInt16". Отрицательные числа преобразуются в положительные вычитанием из 2^16. Например, -5 преобразуется в 2^16-5.signedToUInt8 (<SInt8>) – "приведение к типу UInt8". Отрицательные числа преобразуются в положительные вычитанием из 2^8. Например, -7 преобразуется в 2^8-7.Для вызова этих выражений нужно использовать следующую конструкцию:
math.<имя выражения> (<параметр>)
В начало