src/java.security.jgss/windows/native/libsspi_bridge/sspi.cpp
branchJDK-8199569-branch
changeset 56555 0cd4e27a12cf
parent 56554 9b381f73498a
child 56562 94c6b9e7df00
--- a/src/java.security.jgss/windows/native/libsspi_bridge/sspi.cpp	Tue May 15 12:19:38 2018 +0800
+++ b/src/java.security.jgss/windows/native/libsspi_bridge/sspi.cpp	Tue May 15 12:20:42 2018 +0800
@@ -40,7 +40,7 @@
 
 #pragma comment(lib, "secur32.lib")
 
-#define DEBUG
+//#define DEBUG
 
 #ifdef DEBUG
 TCHAR _bb[256];
@@ -87,9 +87,80 @@
 extern "C" {
 #endif /* __cplusplus */
 
-__declspec(dllexport) OM_uint32 gss_release_name
-                                (OM_uint32 *minor_status,
-                                gss_name_t *name) {
+/* This section holds supporting functions that are not exported */
+
+long
+TimeStampToLong(TimeStamp *time)
+{
+    ULARGE_INTEGER *a, *b;
+    FILETIME fnow;
+    GetSystemTimeAsFileTime(&fnow);
+    a = (ULARGE_INTEGER*)time;
+    b = (ULARGE_INTEGER*)&fnow;
+    PP("Difference %ld\n", (long)((a->QuadPart - b->QuadPart) / 10000000));
+    return (long)((a->QuadPart - b->QuadPart) / 10000000);
+}
+
+void
+FillContextAfterEstablished(Context *pc)
+{
+    QueryContextAttributes(
+            &pc->hCtxt, SECPKG_ATTR_SIZES, &pc->SecPkgContextSizes);
+}
+
+Context*
+NewContext(TCHAR* PackageName)
+{
+    SECURITY_STATUS ss;
+    PSecPkgInfo pkgInfo;
+
+    Context* out = (Context*)malloc(sizeof(Context));
+    ss = QuerySecurityPackageInfo(PackageName, &pkgInfo);
+    if (!SEC_SUCCESS(ss)) {
+        return NULL;
+    }
+    out->phCred = NULL;
+    out->cbMaxMessage = pkgInfo->cbMaxToken;
+    PP("   QuerySecurityPackageInfo %ls goes %ld\n", PackageName, out->cbMaxMessage);
+    wcscpy(out->PackageName, PackageName);
+    FreeContextBuffer(pkgInfo);
+    return out;
+}
+
+int
+flagSspi2Gss(int fin)
+{
+	int fout = 0;
+	if (fin & ISC_REQ_MUTUAL_AUTH) fout |= GSS_C_MUTUAL_FLAG;
+	if (fin & ISC_REQ_CONFIDENTIALITY) fout |= GSS_C_CONF_FLAG;
+	if (fin & ISC_REQ_DELEGATE) fout |= GSS_C_DELEG_FLAG;
+	if (fin & ISC_REQ_INTEGRITY) fout |= GSS_C_INTEG_FLAG;
+	if (fin & ISC_REQ_REPLAY_DETECT) fout |= GSS_C_REPLAY_FLAG;
+	if (fin & ISC_REQ_SEQUENCE_DETECT) fout |= GSS_C_SEQUENCE_FLAG;
+	return fout;
+}
+
+int
+flagGss2Sspi(int fin)
+{
+	int fout = 0;
+	if (fin & GSS_C_MUTUAL_FLAG) fout |= ISC_RET_MUTUAL_AUTH;
+	if (fin & GSS_C_CONF_FLAG) fout |= ISC_RET_CONFIDENTIALITY;
+	if (fin & GSS_C_DELEG_FLAG) fout |= ISC_RET_DELEGATE;
+	if (fin & GSS_C_INTEG_FLAG) fout |= ISC_RET_INTEGRITY;
+	if (fin & GSS_C_REPLAY_FLAG) fout |= ISC_RET_REPLAY_DETECT;
+	if (fin & GSS_C_SEQUENCE_FLAG) fout |= ISC_RET_SEQUENCE_DETECT;
+	return fout;
+}
+
+/* End support section */
+
+/* This section holds exported functions that currently have no implementation */
+
+__declspec(dllexport) OM_uint32
+gss_release_name(OM_uint32 *minor_status,
+                 gss_name_t *name)
+{
     if (name != NULL) {
         SecPkgCredentials_Names* names = (SecPkgCredentials_Names*)name;
         if (names->sUserName != NULL) {
@@ -101,34 +172,29 @@
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_import_name
-                                (OM_uint32 *minor_status,
-                                gss_buffer_t input_name_buffer,
-                                gss_OID input_name_type,
-                                gss_name_t *output_name) {
-PP("");
+__declspec(dllexport) OM_uint32
+gss_import_name(OM_uint32 *minor_status,
+                gss_buffer_t input_name_buffer,
+                gss_OID input_name_type,
+                gss_name_t *output_name)
+{
     if (input_name_buffer == NULL || input_name_buffer->value == NULL
             || input_name_buffer->length == 0) {
         return GSS_S_BAD_NAME;
     }
-PP("");
     SecPkgCredentials_Names* names = new SecPkgCredentials_Names();
     if (names == NULL) {
         goto err;
     }
     int len = (int)input_name_buffer->length;
-PP("%d", len);
     names->sUserName = new SEC_WCHAR[len + 1];
-PP("");
     if (names->sUserName == NULL) {
         goto err;
     }
-PP("");
     if (MultiByteToWideChar(CP_ACP, 0, (LPSTR)input_name_buffer->value, len,
             names->sUserName, len) == 0) {
         goto err;
     }
-PP("");
     names->sUserName[len] = 0;
     if (input_name_type != NULL && input_name_type->length == 10
             && !memcmp(input_name_type->elements, HOST_SERVICE_NAME_OID, 10)) {
@@ -151,11 +217,12 @@
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_compare_name
-                                (OM_uint32 *minor_status,
-                                gss_name_t name1,
-                                gss_name_t name2,
-                                int *name_equal) {
+__declspec(dllexport) OM_uint32
+gss_compare_name(OM_uint32 *minor_status,
+                 gss_name_t name1,
+                 gss_name_t name2,
+                 int *name_equal)
+{
     if (name1 == NULL || name2 == NULL) {
         *name_equal = 0;
         return GSS_S_BAD_NAME;
@@ -171,11 +238,12 @@
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_canonicalize_name
-                                (OM_uint32 *minor_status,
-                                gss_name_t input_name,
-                                gss_OID mech_type,
-                                gss_name_t *output_name) {
+__declspec(dllexport) OM_uint32
+gss_canonicalize_name(OM_uint32 *minor_status,
+                      gss_name_t input_name,
+                      gss_OID mech_type,
+                      gss_name_t *output_name)
+{
     SecPkgCredentials_Names* names1 = (SecPkgCredentials_Names*)input_name;
     SecPkgCredentials_Names* names2 = new SecPkgCredentials_Names();
     names2->sUserName = new SEC_WCHAR[lstrlen(names1->sUserName) + 1];
@@ -184,10 +252,11 @@
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_export_name
-                                (OM_uint32 *minor_status,
-                                gss_name_t input_name,
-                                gss_buffer_t exported_name) {
+__declspec(dllexport) OM_uint32
+gss_export_name(OM_uint32 *minor_status,
+                gss_name_t input_name,
+                gss_buffer_t exported_name)
+{
     SecPkgCredentials_Names* names = (SecPkgCredentials_Names*)input_name;
     int len = (int)wcslen(names->sUserName);
     char* buffer = new char[len+1];
@@ -198,11 +267,12 @@
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_display_name
-                                (OM_uint32 *minor_status,
-                                gss_name_t input_name,
-                                gss_buffer_t output_name_buffer,
-                                gss_OID *output_name_type) {
+__declspec(dllexport) OM_uint32
+gss_display_name(OM_uint32 *minor_status,
+                 gss_name_t input_name,
+                 gss_buffer_t output_name_buffer,
+                 gss_OID *output_name_type)
+{
     SecPkgCredentials_Names* names = (SecPkgCredentials_Names*)input_name;
     int len = (int)wcslen(names->sUserName);
     char* buffer = new char[len+1];
@@ -221,25 +291,16 @@
     return GSS_S_COMPLETE;
 }
 
-long TimeStampToLong(TimeStamp *time) {
-    ULARGE_INTEGER *a, *b;
-    FILETIME fnow;
-    GetSystemTimeAsFileTime(&fnow);
-    a = (ULARGE_INTEGER*)time;
-    b = (ULARGE_INTEGER*)&fnow;
-    PP("Difference %ld\n", (long)((a->QuadPart - b->QuadPart) / 10000000));
-    return (long)((a->QuadPart - b->QuadPart) / 10000000);
-}
-
-__declspec(dllexport) OM_uint32 gss_acquire_cred
-                                (OM_uint32 *minor_status,
-                                gss_name_t desired_name,
-                                OM_uint32 time_req,
-                                gss_OID_set desired_mech,
-                                gss_cred_usage_t cred_usage,
-                                gss_cred_id_t *output_cred_handle,
-                                gss_OID_set *actual_mechs,
-                                OM_uint32 *time_rec) {
+__declspec(dllexport) OM_uint32
+gss_acquire_cred(OM_uint32 *minor_status,
+                 gss_name_t desired_name,
+                 OM_uint32 time_req,
+                 gss_OID_set desired_mech,
+                 gss_cred_usage_t cred_usage,
+                 gss_cred_id_t *output_cred_handle,
+                 gss_OID_set *actual_mechs,
+                 OM_uint32 *time_rec)
+{
     if (desired_name != NULL) {
         return GSS_S_FAILURE; // Only support default cred
     }
@@ -258,8 +319,7 @@
             NULL,
             NULL,
             cred,
-            &ts
-            );
+            &ts);
 
     actual_mechs = &desired_mech;
     *output_cred_handle = (void*)cred;
@@ -270,9 +330,10 @@
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_release_cred
-                                (OM_uint32 *minor_status,
-                                gss_cred_id_t *cred_handle) {
+__declspec(dllexport) OM_uint32
+gss_release_cred(OM_uint32 *minor_status,
+                 gss_cred_id_t *cred_handle)
+{
     if (cred_handle && *cred_handle) {
         FreeCredentialsHandle((CredHandle*)*cred_handle);
         *cred_handle = GSS_C_NO_CREDENTIAL;
@@ -280,13 +341,14 @@
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_inquire_cred
-                                (OM_uint32 *minor_status,
-                                gss_cred_id_t cred_handle,
-                                gss_name_t *name,
-                                OM_uint32 *lifetime,
-                                gss_cred_usage_t *cred_usage,
-                                gss_OID_set *mechanisms) {
+__declspec(dllexport) OM_uint32
+gss_inquire_cred(OM_uint32 *minor_status,
+                 gss_cred_id_t cred_handle,
+                 gss_name_t *name,
+                 OM_uint32 *lifetime,
+                 gss_cred_usage_t *cred_usage,
+                 gss_OID_set *mechanisms)
+{
     CredHandle* cred = (CredHandle*)cred_handle;
     SECURITY_STATUS ss;
     if (name) {
@@ -298,73 +360,29 @@
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_import_sec_context
-                                (OM_uint32 *minor_status,
-                                gss_buffer_t interprocess_token,
-                                gss_ctx_id_t *context_handle) {
+__declspec(dllexport) OM_uint32
+gss_import_sec_context(OM_uint32 *minor_status,
+                       gss_buffer_t interprocess_token,
+                       gss_ctx_id_t *context_handle)
+{
     return GSS_S_FAILURE;
 }
 
-void FillContextAfterEstablished(Context *pc) {
-    QueryContextAttributes(&pc->hCtxt, SECPKG_ATTR_SIZES,
-                &pc->SecPkgContextSizes);
-}
-
-Context* NewContext(TCHAR* PackageName) {
-    SECURITY_STATUS ss;
-    PSecPkgInfo pkgInfo;
-
-    Context* out = (Context*)malloc(sizeof(Context));
-    ss = QuerySecurityPackageInfo(
-            PackageName,
-            &pkgInfo);
-    if (!SEC_SUCCESS(ss)) {
-        return NULL;
-    }
-    out->phCred = NULL;
-    out->cbMaxMessage = pkgInfo->cbMaxToken;
-    PP("   QuerySecurityPackageInfo %ls goes %ld\n", PackageName, out->cbMaxMessage);
-    wcscpy(out->PackageName, PackageName);
-    FreeContextBuffer(pkgInfo);
-    return out;
-}
-
-int flagSspi2Gss(int fin) {
-	int fout = 0;
-	if (fin & ISC_REQ_MUTUAL_AUTH) fout |= GSS_C_MUTUAL_FLAG;
-	if (fin & ISC_REQ_CONFIDENTIALITY) fout |= GSS_C_CONF_FLAG;
-	if (fin & ISC_REQ_DELEGATE) fout |= GSS_C_DELEG_FLAG;
-	if (fin & ISC_REQ_INTEGRITY) fout |= GSS_C_INTEG_FLAG;
-	if (fin & ISC_REQ_REPLAY_DETECT) fout |= GSS_C_REPLAY_FLAG;
-	if (fin & ISC_REQ_SEQUENCE_DETECT) fout |= GSS_C_SEQUENCE_FLAG;
-	return fout;
-}
-
-int flagGss2Sspi(int fin) {
-	int fout = 0;
-	if (fin & GSS_C_MUTUAL_FLAG) fout |= ISC_RET_MUTUAL_AUTH;
-	if (fin & GSS_C_CONF_FLAG) fout |= ISC_RET_CONFIDENTIALITY;
-	if (fin & GSS_C_DELEG_FLAG) fout |= ISC_RET_DELEGATE;
-	if (fin & GSS_C_INTEG_FLAG) fout |= ISC_RET_INTEGRITY;
-	if (fin & GSS_C_REPLAY_FLAG) fout |= ISC_RET_REPLAY_DETECT;
-	if (fin & GSS_C_SEQUENCE_FLAG) fout |= ISC_RET_SEQUENCE_DETECT;
-	return fout;
-}
-
-__declspec(dllexport) OM_uint32 gss_init_sec_context
-                                (OM_uint32 *minor_status,
-                                gss_cred_id_t initiator_cred_handle,
-                                gss_ctx_id_t *context_handle,
-                                gss_name_t target_name,
-                                gss_OID mech_type,
-                                OM_uint32 req_flags,
-                                OM_uint32 time_req,
-                                gss_channel_bindings_t input_chan_bindings,
-                                gss_buffer_t input_token,
-                                gss_OID *actual_mech_type,
-                                gss_buffer_t output_token,
-                                OM_uint32 *ret_flags,
-                                OM_uint32 *time_rec) {
+__declspec(dllexport) OM_uint32
+gss_init_sec_context(OM_uint32 *minor_status,
+                     gss_cred_id_t initiator_cred_handle,
+                     gss_ctx_id_t *context_handle,
+                     gss_name_t target_name,
+                     gss_OID mech_type,
+                     OM_uint32 req_flags,
+                     OM_uint32 time_req,
+                     gss_channel_bindings_t input_chan_bindings,
+                     gss_buffer_t input_token,
+                     gss_OID *actual_mech_type,
+                     gss_buffer_t output_token,
+                     OM_uint32 *ret_flags,
+                     OM_uint32 *time_rec)
+{
     SECURITY_STATUS ss;
     TimeStamp Lifetime;
     SecBufferDesc InBuffDesc;
@@ -479,76 +497,82 @@
     }
 }
 
-__declspec(dllexport) OM_uint32 gss_accept_sec_context
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t *context_handle,
-                                gss_cred_id_t acceptor_cred_handle,
-                                gss_buffer_t input_token,
-                                gss_channel_bindings_t input_chan_bindings,
-                                gss_name_t *src_name,
-                                gss_OID *mech_type,
-                                gss_buffer_t output_token,
-                                OM_uint32 *ret_flags,
-                                OM_uint32 *time_rec,
-                                gss_cred_id_t *delegated_cred_handle) {
+__declspec(dllexport) OM_uint32
+gss_accept_sec_context(OM_uint32 *minor_status,
+                       gss_ctx_id_t *context_handle,
+                       gss_cred_id_t acceptor_cred_handle,
+                       gss_buffer_t input_token,
+                       gss_channel_bindings_t input_chan_bindings,
+                       gss_name_t *src_name,
+                       gss_OID *mech_type,
+                       gss_buffer_t output_token,
+                       OM_uint32 *ret_flags,
+                       OM_uint32 *time_rec,
+                       gss_cred_id_t *delegated_cred_handle)
+{
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_inquire_context
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t context_handle,
-                                gss_name_t *src_name,
-                                gss_name_t *targ_name,
-                                OM_uint32 *lifetime_rec,
-                                gss_OID *mech_type,
-                                OM_uint32 *ctx_flags,
-                                int *locally_initiated,
-                                int *open) {
+__declspec(dllexport) OM_uint32
+gss_inquire_context(OM_uint32 *minor_status,
+                    gss_ctx_id_t context_handle,
+                    gss_name_t *src_name,
+                    gss_name_t *targ_name,
+                    OM_uint32 *lifetime_rec,
+                    gss_OID *mech_type,
+                    OM_uint32 *ctx_flags,
+                    int *locally_initiated,
+                    int *open)
+{
     Context* pc = (Context*) context_handle;
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_delete_sec_context
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t *context_handle,
-                                gss_buffer_t output_token) {
+__declspec(dllexport) OM_uint32
+gss_delete_sec_context(OM_uint32 *minor_status,
+                       gss_ctx_id_t *context_handle,
+                       gss_buffer_t output_token)
+{
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_context_time
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t context_handle,
-                                OM_uint32 *time_rec) {
+__declspec(dllexport) OM_uint32
+gss_context_time(OM_uint32 *minor_status,
+                 gss_ctx_id_t context_handle,
+                 OM_uint32 *time_rec)
+{
     Context* pc = (Context*) context_handle;
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_wrap_size_limit
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t context_handle,
-                                int conf_req_flag,
-                                gss_qop_t qop_req,
-                                OM_uint32 req_output_size,
-                                OM_uint32 *max_input_size) {
+__declspec(dllexport) OM_uint32
+gss_wrap_size_limit(OM_uint32 *minor_status,
+                    gss_ctx_id_t context_handle,
+                    int conf_req_flag,
+                    gss_qop_t qop_req,
+                    OM_uint32 req_output_size,
+                    OM_uint32 *max_input_size)
+{
     Context* pc = (Context*) context_handle;
     *max_input_size = pc->cbMaxMessage;
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_export_sec_context
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t *context_handle,
-                                gss_buffer_t interprocess_token) {
+__declspec(dllexport) OM_uint32
+gss_export_sec_context(OM_uint32 *minor_status,
+                       gss_ctx_id_t *context_handle,
+                       gss_buffer_t interprocess_token)
+{
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_get_mic
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t context_handle,
-                                gss_qop_t qop_req,
-                                gss_buffer_t message_buffer,
-                                gss_buffer_t msg_token) {
-
+__declspec(dllexport) OM_uint32
+gss_get_mic(OM_uint32 *minor_status,
+            gss_ctx_id_t context_handle,
+            gss_qop_t qop_req,
+            gss_buffer_t message_buffer,
+            gss_buffer_t msg_token)
+{
     Context* pc = (Context*) context_handle;
 
     SECURITY_STATUS ss;
@@ -578,12 +602,13 @@
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_verify_mic
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t context_handle,
-                                gss_buffer_t message_buffer,
-                                gss_buffer_t token_buffer,
-                                gss_qop_t *qop_state) {
+__declspec(dllexport) OM_uint32
+gss_verify_mic(OM_uint32 *minor_status,
+               gss_ctx_id_t context_handle,
+               gss_buffer_t message_buffer,
+               gss_buffer_t token_buffer,
+               gss_qop_t *qop_state)
+{
     Context* pc = (Context*) context_handle;
 
     SECURITY_STATUS ss;
@@ -615,15 +640,15 @@
     }
 }
 
-__declspec(dllexport) OM_uint32 gss_wrap
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t context_handle,
-                                int conf_req_flag,
-                                gss_qop_t qop_req,
-                                gss_buffer_t input_message_buffer,
-                                int *conf_state,
-                                gss_buffer_t output_message_buffer) {
-
+__declspec(dllexport) OM_uint32
+gss_wrap(OM_uint32 *minor_status,
+         gss_ctx_id_t context_handle,
+         int conf_req_flag,
+         gss_qop_t qop_req,
+         gss_buffer_t input_message_buffer,
+         int *conf_state,
+         gss_buffer_t output_message_buffer)
+{
     Context* pc = (Context*) context_handle;
 
     SECURITY_STATUS ss;
@@ -675,13 +700,14 @@
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_unwrap
-                                (OM_uint32 *minor_status,
-                                gss_ctx_id_t context_handle,
-                                gss_buffer_t input_message_buffer,
-                                gss_buffer_t output_message_buffer,
-                                int *conf_state,
-                                gss_qop_t *qop_state) {
+__declspec(dllexport) OM_uint32
+gss_unwrap(OM_uint32 *minor_status,
+           gss_ctx_id_t context_handle,
+           gss_buffer_t input_message_buffer,
+           gss_buffer_t output_message_buffer,
+           int *conf_state,
+           gss_qop_t *qop_state)
+{
     Context* pc = (Context*) context_handle;
 
     SECURITY_STATUS ss;
@@ -715,9 +741,10 @@
     return GSS_S_COMPLETE;
 }
 
-__declspec(dllexport) OM_uint32 gss_indicate_mechs
-                                (OM_uint32 *minor_status,
-                                gss_OID_set *mech_set) {
+__declspec(dllexport) OM_uint32
+gss_indicate_mechs(OM_uint32 *minor_status,
+                   gss_OID_set *mech_set)
+{
     gss_OID_set_desc *copy;
     OM_uint32 minor = 0;
     OM_uint32 major = GSS_S_COMPLETE;
@@ -784,48 +811,56 @@
     return (major);
 }
 
-__declspec(dllexport) OM_uint32 gss_inquire_names_for_mech
-                                (OM_uint32 *minor_status,
-                                const gss_OID mechanism,
-                                gss_OID_set *name_types) {
+__declspec(dllexport) OM_uint32
+gss_inquire_names_for_mech(OM_uint32 *minor_status,
+                           const gss_OID mechanism,
+                           gss_OID_set *name_types)
+{
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_add_oid_set_member
-                                (OM_uint32 *minor_status,
-                                gss_OID member_oid,
-                                gss_OID_set *oid_set) {
+__declspec(dllexport) OM_uint32
+gss_add_oid_set_member(OM_uint32 *minor_status,
+                       gss_OID member_oid,
+                       gss_OID_set *oid_set)
+{
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_display_status
-                                (OM_uint32 *minor_status,
-                                OM_uint32 status_value,
-                                int status_type,
-                                gss_OID mech_type,
-                                OM_uint32 *message_context,
-                                gss_buffer_t status_string) {
+__declspec(dllexport) OM_uint32
+gss_display_status(OM_uint32 *minor_status,
+                   OM_uint32 status_value,
+                   int status_type,
+                   gss_OID mech_type,
+                   OM_uint32 *message_context,
+                   gss_buffer_t status_string)
+{
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_create_empty_oid_set
-                                (OM_uint32 *minor_status,
-                                gss_OID_set *oid_set) {
+__declspec(dllexport) OM_uint32
+gss_create_empty_oid_set(OM_uint32 *minor_status,
+                         gss_OID_set *oid_set)
+{
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_release_oid_set
-                                (OM_uint32 *minor_status,
-                                gss_OID_set *set) {
+__declspec(dllexport) OM_uint32
+gss_release_oid_set(OM_uint32 *minor_status,
+                    gss_OID_set *set)
+{
     return GSS_S_FAILURE;
 }
 
-__declspec(dllexport) OM_uint32 gss_release_buffer
-                                (OM_uint32 *minor_status,
-                                gss_buffer_t buffer) {
+__declspec(dllexport) OM_uint32
+gss_release_buffer(OM_uint32 *minor_status,
+                   gss_buffer_t buffer)
+{
     return GSS_S_FAILURE;
 }
 
+/* End implemented section */
+
 #ifdef __cplusplus
 }
 #endif