def channelBindings(**kwargs):
    """
    Builds a gss_channel_bindings_struct which can be used to pass onto
    L{authGSSClientStep} to bind onto the auth. Details on Channel Bindings
    can be foud at https://tools.ietf.org/html/rfc5929. More details on the
    struct can be found at
    https://docs.oracle.com/cd/E19455-01/806-3814/overview-52/index.html

    @param initiator_addrtype: Optional integer used to set the
        initiator_addrtype, defaults to GSS_C_AF_UNSPEC if not set

    @param initiator_address: Optional byte string containing the
        initiator_address

    @param acceptor_addrtype: Optional integer used to set the
        acceptor_addrtype, defaults to GSS_C_AF_UNSPEC if not set

    @param acceptor_address: Optional byte string containing the
        acceptor_address

    @param application_data: Optional byte string containing the
        application_data. An example would be 'tls-server-end-point:{cert-hash}'
        where {cert-hash} is the hash of the server's certificate

    @return: A tuple of (result, gss_channel_bindings_struct) where result is
        the result code and gss_channel_bindings_struct is the channel bindings
        structure that can be passed onto L{authGSSClientStep}
    """
