@classmethod
def register(cls, scheme, credential_class):
    """Registers a class to represent credentials in scheme

        scheme
            A string representing an auth scheme, e.g., 'Basic'.  The
            string is converted to lower-case before it is registered
            to allow for case insensitive look-up.

        credential_class
            A class derived from Credentials that is used to represent a
            set of base Credentials in that scheme.  The class must have
            a :meth:`from_words` class method.

        If a class has already been registered for the scheme it is
        replaced.  The mapping is kept in the :attr:`scheme_class`
        dictionary."""
    cls.scheme_class[scheme.lower()] = credential_class
