'Load a hashed entry from a string representing a line in a known_hosts
file.
@param string: A complete single line from a I{known_hosts} file,
formatted as defined by OpenSSH.
@type string: L{bytes}
@raise DecodeError: if the key, the hostname, or the is not valid
encoded as valid base64
@raise InvalidEntry: if the entry does not have the right number of
elements and is therefore invalid, or the host/hash portion contains
more items than just the host and hash.
@raise BadKeyError: if the key, once decoded from base64, is not
actually an SSH key.
@return: The newly created L{HashedEntry} instance, initialized with the
information from C{string}.'

@classmethod
def fromString(cls, string):

    (stuff, keyType, key, comment) = _extractCommon(string)
    saltAndHash = stuff[len(cls.MAGIC):].split('|')
    if (len(saltAndHash) != 2):
        raise InvalidEntry()
    (hostSalt, hostHash) = saltAndHash
    self = cls(a2b_base64(hostSalt), a2b_base64(hostHash), keyType, key, comment)
    return self
