code: def parse_cipher_name(cls, name):
  		
  		r = cls.__mode_re__.match(name.upper())
  		if r is None:
  			raise ValueError('Unable to find suitable cipher for: "%s"' % name)
  		key_size = int(int(r.group(2)) / 8)
  		block_mode = 'AES-%s' % r.group(4)
  		if key_size not in cls.__valid_key_sizes__:
  			raise ValueError('Unsupported secret length: "%i"' % key_size)
  		if block_mode not in cls.__modes_descriptor__.keys():
  			raise ValueError('Unsupported block cipher mode of operation: "%s"' % block_mode)
  		return key_size, block_mode
docs: Parse cipher name (name like 'aes_256_cbc' or 'AES-128-CTR'). Also this method validates If the
  		cipher is supported by this class. If no - exception is raised
  
  		:param name: name to parse
  
  		:return: tuple where the first element is a key size in bytes (int) and the second element - block cipher mode
  		of operation (str) (for example: (16, 'AES-CTR') or (24, 'AES-CBC'))