A provider advertises its support for a mechanism by defining a mapping from the mechanism to a class that implements that mechanism. A provider can support more than one mechanism. For an application to use a provider, the user or administrator lists the provider in its java.security file. An application can update and manipulate the ordering of the runtime provider list through the GSSManager interface. Some other ways the two peers can decide on a mechanism are suggested in RFC 2744.
Inherent differences exist between the two bindings because of the different language paradigms.
Some of the notable differences are listed below. The list excludes differences in data types. The C bindings do not provide any such facility. The C bindings present a set of traditional APIs. The Java bindings present an object-oriented interface.