• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/fields/cryptofield.php
  • Класс: Bitrix\Main\ORM\Fields\CryptoField
  • Вызов: CryptoField::__construct
public function __construct($name, $parameters = array())
{
	parent::__construct($name, $parameters);

	$enabled = true;
	if(isset($parameters['crypto_enabled']))
	{
		$enabled = (bool)$parameters['crypto_enabled'];
	}

	if($enabled)
	{
		if(isset($parameters['crypto_key']) && $parameters['crypto_key'] <> '')
		{
			$this->cryptoKey = $parameters['crypto_key'];
		}
		else
		{
			// get the key from the settings
			if(($key = static::getDefaultKey()) <> '')
			{
				$this->cryptoKey = $key;
			}
		}

		if(static::cryptoAvailable($this->cryptoKey))
		{
			$this->addSaveDataModifier(array($this, 'encrypt'));
			$this->addFetchDataModifier(array($this, 'decrypt'));
		}
		else
		{
			throw new \Bitrix\Main\NotSupportedException("Crypto is not available.");
		}
	}
}