Print this page
3882 remove xmod & friends


1889         message_buffer.value = (void *)argp->message_buffer.GSS_BUFFER_T_val;
1890 
1891         token_buffer.length = (size_t)argp->token_buffer.GSS_BUFFER_T_len;
1892         token_buffer.value = (void *)argp->token_buffer.GSS_BUFFER_T_val;
1893 
1894         /* call the gssapi routine */
1895 
1896         res->status = (OM_uint32)gss_verify(&res->minor_status,
1897                                 context_handle,
1898                                 &message_buffer,
1899                                 &token_buffer,
1900                                 &res->qop_state);
1901 
1902         if (GSS_ERROR(res->status))
1903                 syslog_gss_error(res->status, res->minor_status, "verify");
1904 
1905         /* return to caller */
1906         return (TRUE);
1907 }
1908 
1909 /* EXPORT DELETE START */
1910 
1911 bool_t
1912 gss_seal_1_svc(argp, res, rqstp)
1913 gss_seal_arg *argp;
1914 gss_seal_res *res;
1915 struct svc_req *rqstp;
1916 {
1917         uid_t uid;
1918 
1919         gss_buffer_desc input_message_buffer;
1920         gss_buffer_desc output_message_buffer;
1921         gss_ctx_id_t context_handle;
1922         bool_t context_verf_ok;
1923 
1924         memset(res, 0, sizeof (*res));
1925 
1926         if (gssd_debug)
1927                 fprintf(stderr, gettext("gss_seal\n"));
1928 
1929         gssd_convert_context_handle(&argp->context_handle, &context_handle,
1930                 argp->gssd_context_verifier, &context_verf_ok, NULL);


2055 
2056         /*
2057          * convert the output args from the parameter given in the call to the
2058          * variable in the XDR result
2059          */
2060 
2061         if (res->status == GSS_S_COMPLETE) {
2062                 res->output_message_buffer.GSS_BUFFER_T_len =
2063                                 (uint_t)output_message_buffer.length;
2064                 res->output_message_buffer.GSS_BUFFER_T_val =
2065                                 (char *)output_message_buffer.value;
2066         } else
2067                 syslog_gss_error(res->status, res->minor_status, "unseal");
2068 
2069 
2070         /* return to caller */
2071 
2072         return (TRUE);
2073 }
2074 
2075 /* EXPORT DELETE END */
2076 
2077 bool_t
2078 gss_display_status_1_svc(argp, res, rqstp)
2079 gss_display_status_arg *argp;
2080 gss_display_status_res *res;
2081 struct svc_req *rqstp;
2082 {
2083         uid_t uid;
2084         gss_OID mech_type;
2085         gss_OID_desc mech_type_desc;
2086         gss_buffer_desc status_string;
2087 
2088         memset(res, 0, sizeof (*res));
2089 
2090         if (gssd_debug)
2091                 fprintf(stderr, gettext("gss_display_status\n"));
2092 
2093         /*
2094          * if the request isn't from root, null out the result pointer
2095          * entries, so the next time through xdr_free won't try to
2096          * free unmalloc'd memory and then return NULL




1889         message_buffer.value = (void *)argp->message_buffer.GSS_BUFFER_T_val;
1890 
1891         token_buffer.length = (size_t)argp->token_buffer.GSS_BUFFER_T_len;
1892         token_buffer.value = (void *)argp->token_buffer.GSS_BUFFER_T_val;
1893 
1894         /* call the gssapi routine */
1895 
1896         res->status = (OM_uint32)gss_verify(&res->minor_status,
1897                                 context_handle,
1898                                 &message_buffer,
1899                                 &token_buffer,
1900                                 &res->qop_state);
1901 
1902         if (GSS_ERROR(res->status))
1903                 syslog_gss_error(res->status, res->minor_status, "verify");
1904 
1905         /* return to caller */
1906         return (TRUE);
1907 }
1908 


1909 bool_t
1910 gss_seal_1_svc(argp, res, rqstp)
1911 gss_seal_arg *argp;
1912 gss_seal_res *res;
1913 struct svc_req *rqstp;
1914 {
1915         uid_t uid;
1916 
1917         gss_buffer_desc input_message_buffer;
1918         gss_buffer_desc output_message_buffer;
1919         gss_ctx_id_t context_handle;
1920         bool_t context_verf_ok;
1921 
1922         memset(res, 0, sizeof (*res));
1923 
1924         if (gssd_debug)
1925                 fprintf(stderr, gettext("gss_seal\n"));
1926 
1927         gssd_convert_context_handle(&argp->context_handle, &context_handle,
1928                 argp->gssd_context_verifier, &context_verf_ok, NULL);


2053 
2054         /*
2055          * convert the output args from the parameter given in the call to the
2056          * variable in the XDR result
2057          */
2058 
2059         if (res->status == GSS_S_COMPLETE) {
2060                 res->output_message_buffer.GSS_BUFFER_T_len =
2061                                 (uint_t)output_message_buffer.length;
2062                 res->output_message_buffer.GSS_BUFFER_T_val =
2063                                 (char *)output_message_buffer.value;
2064         } else
2065                 syslog_gss_error(res->status, res->minor_status, "unseal");
2066 
2067 
2068         /* return to caller */
2069 
2070         return (TRUE);
2071 }
2072 


2073 bool_t
2074 gss_display_status_1_svc(argp, res, rqstp)
2075 gss_display_status_arg *argp;
2076 gss_display_status_res *res;
2077 struct svc_req *rqstp;
2078 {
2079         uid_t uid;
2080         gss_OID mech_type;
2081         gss_OID_desc mech_type_desc;
2082         gss_buffer_desc status_string;
2083 
2084         memset(res, 0, sizeof (*res));
2085 
2086         if (gssd_debug)
2087                 fprintf(stderr, gettext("gss_display_status\n"));
2088 
2089         /*
2090          * if the request isn't from root, null out the result pointer
2091          * entries, so the next time through xdr_free won't try to
2092          * free unmalloc'd memory and then return NULL