'Parse the first line of a GNTP message to get security and other info values
@param data: GNTP Message
@return: GNTP Message information in a dictionary'

def parse_info(self, data):

    match = re.match((('GNTP/(?P<version>\\d+\\.\\d+)    (?P<messagetype>REGISTER|NOTIFY|SUBSCRIBE|\\-OK|\\-ERROR)' + '    (?P<encryptionAlgorithmID>[A-Z0-9]+(:(?P<ivValue>[A-F0-9]+))?)    ?') + '((?P<keyHashAlgorithmID>[A-Z0-9]+):(?P<keyHash>[A-F0-9]+).(?P<salt>[A-F0-9]+))?\r\n'), data, re.IGNORECASE)
    if (not match):
        raise ParseError('ERROR_PARSING_INFO_LINE')
    info = match.groupdict()
    if (info['encryptionAlgorithmID'] == 'NONE'):
        info['encryptionAlgorithmID'] = None
    return info
