1c0b9f4feSDoug Rabson.\" -*- nroff -*- 2c0b9f4feSDoug Rabson.\" 3c0b9f4feSDoug Rabson.\" Copyright (c) 2005 Doug Rabson 4c0b9f4feSDoug Rabson.\" All rights reserved. 5c0b9f4feSDoug Rabson.\" 6c0b9f4feSDoug Rabson.\" Redistribution and use in source and binary forms, with or without 7c0b9f4feSDoug Rabson.\" modification, are permitted provided that the following conditions 8c0b9f4feSDoug Rabson.\" are met: 9c0b9f4feSDoug Rabson.\" 1. Redistributions of source code must retain the above copyright 10c0b9f4feSDoug Rabson.\" notice, this list of conditions and the following disclaimer. 11c0b9f4feSDoug Rabson.\" 2. Redistributions in binary form must reproduce the above copyright 12c0b9f4feSDoug Rabson.\" notice, this list of conditions and the following disclaimer in the 13c0b9f4feSDoug Rabson.\" documentation and/or other materials provided with the distribution. 14c0b9f4feSDoug Rabson.\" 15c0b9f4feSDoug Rabson.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16c0b9f4feSDoug Rabson.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17c0b9f4feSDoug Rabson.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18c0b9f4feSDoug Rabson.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19c0b9f4feSDoug Rabson.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20c0b9f4feSDoug Rabson.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21c0b9f4feSDoug Rabson.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22c0b9f4feSDoug Rabson.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23c0b9f4feSDoug Rabson.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24c0b9f4feSDoug Rabson.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25c0b9f4feSDoug Rabson.\" SUCH DAMAGE. 26c0b9f4feSDoug Rabson.\" 27c0b9f4feSDoug Rabson.\" $FreeBSD$ 28c0b9f4feSDoug Rabson.\" 29c0b9f4feSDoug Rabson.\" The following commands are required for all man pages. 30d76ba3efSGavin Atkinson.Dd January 26, 2010 31c0b9f4feSDoug Rabson.Os 32c0b9f4feSDoug Rabson.Dt GSS_DISPLAY_STATUS 3 PRM 33c0b9f4feSDoug Rabson.Sh NAME 34c0b9f4feSDoug Rabson.Nm gss_display_status 35c0b9f4feSDoug Rabson.Nd Convert a GSS-API status code to text 36c0b9f4feSDoug Rabson.\" This next command is for sections 2 and 3 only. 37c0b9f4feSDoug Rabson.\" .Sh LIBRARY 38c0b9f4feSDoug Rabson.Sh SYNOPSIS 39c0b9f4feSDoug Rabson.In "gssapi/gssapi.h" 40c0b9f4feSDoug Rabson.Ft OM_uint32 41c0b9f4feSDoug Rabson.Fo gss_display_status 42c0b9f4feSDoug Rabson.Fa "OM_uint32 *minor_status" 43c0b9f4feSDoug Rabson.Fa "OM_uint32 status_value" 44c0b9f4feSDoug Rabson.Fa "int status_type" 45c0b9f4feSDoug Rabson.Fa "const gss_OID mech_type" 46c0b9f4feSDoug Rabson.Fa "OM_uint32 *message_context" 47c0b9f4feSDoug Rabson.Fa "gss_buffer_t status_string" 48c0b9f4feSDoug Rabson.Fc 49c0b9f4feSDoug Rabson.Sh DESCRIPTION 50c0b9f4feSDoug RabsonAllows an application to obtain a textual representation of a GSS-API 51c0b9f4feSDoug Rabsonstatus code, 52c0b9f4feSDoug Rabsonfor display to the user or for logging purposes. 53c0b9f4feSDoug RabsonSince some status values may indicate multiple conditions, 54c0b9f4feSDoug Rabsonapplications may need to call 55c0b9f4feSDoug Rabson.Fn gss_display_status 56c0b9f4feSDoug Rabsonmultiple times, 57c0b9f4feSDoug Rabsoneach call generating a single text string. 58c0b9f4feSDoug RabsonThe 59c0b9f4feSDoug Rabson.Fa message_context 60c0b9f4feSDoug Rabsonparameter is used by 61c0b9f4feSDoug Rabson.Fn gss_display_status 62c0b9f4feSDoug Rabsonto store state information about which error messages have already 63c0b9f4feSDoug Rabsonbeen extracted from a given 64c0b9f4feSDoug Rabson.Fa status_value ; 65c0b9f4feSDoug Rabson.Fa message_context 66c0b9f4feSDoug Rabsonmust be initialized to zero by the application prior to the first call, 67c0b9f4feSDoug Rabsonand 68c0b9f4feSDoug Rabson.Fn gss_display_status 69c0b9f4feSDoug Rabsonwill return a non-zero value in this parameter if there are further 70c0b9f4feSDoug Rabsonmessages to extract. 71c0b9f4feSDoug Rabson.Pp 72c0b9f4feSDoug RabsonThe 73c0b9f4feSDoug Rabson.Fa message_context 74c0b9f4feSDoug Rabsonparameter contains all state information required by 75c0b9f4feSDoug Rabson.Fn gss_display_status 76c0b9f4feSDoug Rabsonin order to extract further messages from the 77c0b9f4feSDoug Rabson.Fa status_value ; 78c0b9f4feSDoug Rabsoneven when a non-zero value is returned in this parameter, 79c0b9f4feSDoug Rabsonthe application is not required to call 80c0b9f4feSDoug Rabson.Fn gss_display_status 81c0b9f4feSDoug Rabsonagain unless subsequent messages are desired. 82c0b9f4feSDoug RabsonThe following code extracts all messages from a given status code and prints them to stderr: 83c0b9f4feSDoug Rabson.Bd -literal 84c0b9f4feSDoug RabsonOM_uint32 message_context; 85c0b9f4feSDoug RabsonOM_uint32 status_code; 86c0b9f4feSDoug RabsonOM_uint32 maj_status; 87c0b9f4feSDoug RabsonOM_uint32 min_status; 88c0b9f4feSDoug Rabsongss_buffer_desc status_string; 89c0b9f4feSDoug Rabson 90c0b9f4feSDoug Rabson ... 91c0b9f4feSDoug Rabson 92c0b9f4feSDoug Rabsonmessage_context = 0; 93c0b9f4feSDoug Rabson 94c0b9f4feSDoug Rabsondo { 95c0b9f4feSDoug Rabson 96c0b9f4feSDoug Rabson maj_status = gss_display_status ( 97c0b9f4feSDoug Rabson &min_status, 98c0b9f4feSDoug Rabson status_code, 99c0b9f4feSDoug Rabson GSS_C_GSS_CODE, 100c0b9f4feSDoug Rabson GSS_C_NO_OID, 101c0b9f4feSDoug Rabson &message_context, 102c0b9f4feSDoug Rabson &status_string) 103c0b9f4feSDoug Rabson 104c0b9f4feSDoug Rabson fprintf(stderr, 105c0b9f4feSDoug Rabson "%.*s\\n", 106c0b9f4feSDoug Rabson (int)status_string.length, 107c0b9f4feSDoug Rabson (char *)status_string.value); 108c0b9f4feSDoug Rabson 109c0b9f4feSDoug Rabson gss_release_buffer(&min_status, &status_string); 110c0b9f4feSDoug Rabson 111c0b9f4feSDoug Rabson} while (message_context != 0); 112c0b9f4feSDoug Rabson.Ed 113c0b9f4feSDoug Rabson.Sh PARAMETERS 114c0b9f4feSDoug Rabson.Bl -tag 115c0b9f4feSDoug Rabson.It minor_status 116c0b9f4feSDoug RabsonMechanism specific status code. 117c0b9f4feSDoug Rabson.It status_value 118c0b9f4feSDoug RabsonStatus value to be converted 119c0b9f4feSDoug Rabson.It status_type 120c0b9f4feSDoug Rabson.Bl -tag 121c0b9f4feSDoug Rabson.It GSS_C_GSS_CODE 122c0b9f4feSDoug Rabson.Fa status_value 123c0b9f4feSDoug Rabsonis a GSS status code 124c0b9f4feSDoug Rabson.It GSS_C_MECH_CODE 125c0b9f4feSDoug Rabson.Fa status_value 126c0b9f4feSDoug Rabsonis a mechanism status code 127c0b9f4feSDoug Rabson.El 128c0b9f4feSDoug Rabson.It mech_type 129c0b9f4feSDoug RabsonUnderlying mechanism (used to interpret a minor status value). 130c0b9f4feSDoug RabsonSupply 131c0b9f4feSDoug Rabson.Dv GSS_C_NO_OID 132c0b9f4feSDoug Rabsonto obtain the system default. 133c0b9f4feSDoug Rabson.It message_context 134c0b9f4feSDoug RabsonShould be initialized to zero by the application prior to the first 135c0b9f4feSDoug Rabsoncall. 136c0b9f4feSDoug RabsonOn return from 137c0b9f4feSDoug Rabson.Fn gss_display_status , 138c0b9f4feSDoug Rabsona non-zero status_value parameter indicates that additional messages 139c0b9f4feSDoug Rabsonmay be extracted from the status code via subsequent calls to 140c0b9f4feSDoug Rabson.Fn gss_display_status , 141c0b9f4feSDoug Rabsonpassing the same 142c0b9f4feSDoug Rabson.Fa status_value , 143c0b9f4feSDoug Rabson.Fa status_type , 144c0b9f4feSDoug Rabson.Fa mech_type , 145c0b9f4feSDoug Rabsonand 146c0b9f4feSDoug Rabson.Fa message_context 147c0b9f4feSDoug Rabsonparameters. 148c0b9f4feSDoug Rabson.It status_string 149c0b9f4feSDoug RabsonTextual interpretation of the 150c0b9f4feSDoug Rabson.Fa status_value . 151c0b9f4feSDoug RabsonStorage associated with this parameter must be freed by the 152c0b9f4feSDoug Rabsonapplication after use with a call to 153c0b9f4feSDoug Rabson.Fn gss_release_buffer . 154c0b9f4feSDoug Rabson.El 155c0b9f4feSDoug Rabson.Sh RETURN VALUES 156c0b9f4feSDoug Rabson.Bl -tag 157c0b9f4feSDoug Rabson.It GSS_S_COMPLETE 158c0b9f4feSDoug RabsonSuccessful completion 159c0b9f4feSDoug Rabson.It GSS_S_BAD_MECH 160c0b9f4feSDoug RabsonIndicates that translation in accordance with an unsupported mechanism 161c0b9f4feSDoug Rabsontype was requested 162c0b9f4feSDoug Rabson.It GSS_S_BAD_STATUS 163c0b9f4feSDoug RabsonThe status value was not recognized, or the status type was neither 164c0b9f4feSDoug Rabson.Dv GSS_C_GSS_CODE 165c0b9f4feSDoug Rabsonnor 166c0b9f4feSDoug Rabson.Dv GSS_C_MECH_CODE . 167c0b9f4feSDoug Rabson.El 168c0b9f4feSDoug Rabson.Sh SEE ALSO 169c0b9f4feSDoug Rabson.Xr gss_release_buffer 3 170c0b9f4feSDoug Rabson.Sh STANDARDS 171c0b9f4feSDoug Rabson.Bl -tag 172c0b9f4feSDoug Rabson.It RFC 2743 173c0b9f4feSDoug RabsonGeneric Security Service Application Program Interface Version 2, Update 1 174c0b9f4feSDoug Rabson.It RFC 2744 175c0b9f4feSDoug RabsonGeneric Security Service API Version 2 : C-bindings 176c0b9f4feSDoug Rabson.El 177c0b9f4feSDoug Rabson.Sh HISTORY 178c0b9f4feSDoug RabsonThe 179c0b9f4feSDoug Rabson.Nm 180d76ba3efSGavin Atkinsonfunction first appeared in 181c0b9f4feSDoug Rabson.Fx 7.0 . 182c0b9f4feSDoug Rabson.Sh AUTHORS 183c0b9f4feSDoug RabsonJohn Wray, Iris Associates 18460b9f20aSDoug Rabson.Sh COPYRIGHT 18560b9f20aSDoug RabsonCopyright (C) The Internet Society (2000). All Rights Reserved. 18660b9f20aSDoug Rabson.Pp 18760b9f20aSDoug RabsonThis document and translations of it may be copied and furnished to 18860b9f20aSDoug Rabsonothers, and derivative works that comment on or otherwise explain it 18960b9f20aSDoug Rabsonor assist in its implementation may be prepared, copied, published 19060b9f20aSDoug Rabsonand distributed, in whole or in part, without restriction of any 19160b9f20aSDoug Rabsonkind, provided that the above copyright notice and this paragraph are 19260b9f20aSDoug Rabsonincluded on all such copies and derivative works. However, this 19360b9f20aSDoug Rabsondocument itself may not be modified in any way, such as by removing 19460b9f20aSDoug Rabsonthe copyright notice or references to the Internet Society or other 19560b9f20aSDoug RabsonInternet organizations, except as needed for the purpose of 19660b9f20aSDoug Rabsondeveloping Internet standards in which case the procedures for 19760b9f20aSDoug Rabsoncopyrights defined in the Internet Standards process must be 19860b9f20aSDoug Rabsonfollowed, or as required to translate it into languages other than 19960b9f20aSDoug RabsonEnglish. 20060b9f20aSDoug Rabson.Pp 20160b9f20aSDoug RabsonThe limited permissions granted above are perpetual and will not be 20260b9f20aSDoug Rabsonrevoked by the Internet Society or its successors or assigns. 20360b9f20aSDoug Rabson.Pp 20460b9f20aSDoug RabsonThis document and the information contained herein is provided on an 20560b9f20aSDoug Rabson"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 20660b9f20aSDoug RabsonTASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 20760b9f20aSDoug RabsonBUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 20860b9f20aSDoug RabsonHEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 20960b9f20aSDoug RabsonMERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 210