diff options
Diffstat (limited to 'crypto/krb5/doc/pdf/appdev.tex')
-rw-r--r-- | crypto/krb5/doc/pdf/appdev.tex | 36055 |
1 files changed, 0 insertions, 36055 deletions
diff --git a/crypto/krb5/doc/pdf/appdev.tex b/crypto/krb5/doc/pdf/appdev.tex deleted file mode 100644 index 72522ebe8737..000000000000 --- a/crypto/krb5/doc/pdf/appdev.tex +++ /dev/null @@ -1,36055 +0,0 @@ -%% Generated by Sphinx. -\def\sphinxdocclass{report} -\documentclass[letterpaper,10pt,english]{sphinxmanual} -\ifdefined\pdfpxdimen - \let\sphinxpxdimen\pdfpxdimen\else\newdimen\sphinxpxdimen -\fi \sphinxpxdimen=.75bp\relax -\ifdefined\pdfimageresolution - \pdfimageresolution= \numexpr \dimexpr1in\relax/\sphinxpxdimen\relax -\fi -%% let collapsible pdf bookmarks panel have high depth per default -\PassOptionsToPackage{bookmarksdepth=5}{hyperref} - -\PassOptionsToPackage{booktabs}{sphinx} -\PassOptionsToPackage{colorrows}{sphinx} - -\PassOptionsToPackage{warn}{textcomp} -\usepackage[utf8]{inputenc} -\ifdefined\DeclareUnicodeCharacter -% support both utf8 and utf8x syntaxes - \ifdefined\DeclareUnicodeCharacterAsOptional - \def\sphinxDUC#1{\DeclareUnicodeCharacter{"#1}} - \else - \let\sphinxDUC\DeclareUnicodeCharacter - \fi - \sphinxDUC{00A0}{\nobreakspace} - \sphinxDUC{2500}{\sphinxunichar{2500}} - \sphinxDUC{2502}{\sphinxunichar{2502}} - \sphinxDUC{2514}{\sphinxunichar{2514}} - \sphinxDUC{251C}{\sphinxunichar{251C}} - \sphinxDUC{2572}{\textbackslash} -\fi -\usepackage{cmap} -\usepackage[T1]{fontenc} -\usepackage{amsmath,amssymb,amstext} -\usepackage{babel} - - - -\usepackage{tgtermes} -\usepackage{tgheros} -\renewcommand{\ttdefault}{txtt} - - - -\usepackage[Bjarne]{fncychap} -\usepackage{sphinx} - -\fvset{fontsize=auto} -\usepackage{geometry} - - -% Include hyperref last. -\usepackage{hyperref} -% Fix anchor placement for figures with captions. -\usepackage{hypcap}% it must be loaded after hyperref. -% Set up styles of URL: it should be placed after hyperref. -\urlstyle{same} - - -\usepackage{sphinxmessages} -\setcounter{tocdepth}{0} - - - -\title{Kerberos Application Developer Guide} -\date{ } -\release{1.22\sphinxhyphen{}final} -\author{MIT} -\newcommand{\sphinxlogo}{\vbox{}} -\renewcommand{\releasename}{Release} -\makeindex -\begin{document} - -\ifdefined\shorthandoff - \ifnum\catcode`\=\string=\active\shorthandoff{=}\fi - \ifnum\catcode`\"=\active\shorthandoff{"}\fi -\fi - -\pagestyle{empty} -\sphinxmaketitle -\pagestyle{plain} -\sphinxtableofcontents -\pagestyle{normal} -\phantomsection\label{\detokenize{appdev/index::doc}} - - -\sphinxstepscope - - -\chapter{Developing with GSSAPI} -\label{\detokenize{appdev/gssapi:developing-with-gssapi}}\label{\detokenize{appdev/gssapi::doc}} -\sphinxAtStartPar -The GSSAPI (Generic Security Services API) allows applications to -communicate securely using Kerberos 5 or other security mechanisms. -We recommend using the GSSAPI (or a higher\sphinxhyphen{}level framework which -encompasses GSSAPI, such as SASL) for secure network communication -over using the libkrb5 API directly. - -\sphinxAtStartPar -GSSAPIv2 is specified in \index{RFC@\spxentry{RFC}!RFC 2743@\spxentry{RFC 2743}}\sphinxhref{https://datatracker.ietf.org/doc/html/rfc2743.html}{\sphinxstylestrong{RFC 2743}} and \index{RFC@\spxentry{RFC}!RFC 2744@\spxentry{RFC 2744}}\sphinxhref{https://datatracker.ietf.org/doc/html/rfc2744.html}{\sphinxstylestrong{RFC 2744}}. Also see -\index{RFC@\spxentry{RFC}!RFC 7546@\spxentry{RFC 7546}}\sphinxhref{https://datatracker.ietf.org/doc/html/rfc7546.html}{\sphinxstylestrong{RFC 7546}} for a description of how to use the GSSAPI in a client or -server program. - -\sphinxAtStartPar -This documentation will describe how various ways of using the -GSSAPI will behave with the krb5 mechanism as implemented in MIT krb5, -as well as krb5\sphinxhyphen{}specific extensions to the GSSAPI. - - -\section{Name types} -\label{\detokenize{appdev/gssapi:name-types}} -\sphinxAtStartPar -A GSSAPI application can name a local or remote entity by calling -\sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.16}{gss\_import\_name}, specifying a name type and a value. The following -name types are supported by the krb5 mechanism: -\begin{itemize} -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_NT\_HOSTBASED\_SERVICE}: The value should be a string of the -form \sphinxcode{\sphinxupquote{service}} or \sphinxcode{\sphinxupquote{service@hostname}}. This is the most common -way to name target services when initiating a security context, and -is the most likely name type to work across multiple mechanisms. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_KRB5\_NT\_PRINCIPAL\_NAME}: The value should be a principal name -string. This name type only works with the krb5 mechanism, and is -defined in the \sphinxcode{\sphinxupquote{\textless{}gssapi/gssapi\_krb5.h\textgreater{}}} header. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_NT\_USER\_NAME} or \sphinxstylestrong{GSS\_C\_NULL\_OID}: The value is treated -as an unparsed principal name string, as above. These name types -may work with mechanisms other than krb5, but will have different -interpretations in those mechanisms. \sphinxstylestrong{GSS\_C\_NT\_USER\_NAME} is -intended to be used with a local username, which will parse into a -single\sphinxhyphen{}component principal in the default realm. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_NT\_ANONYMOUS}: The value is ignored. The anonymous -principal is used, allowing a client to authenticate to a server -without asserting a particular identity (which may or may not be -allowed by a particular server or Kerberos realm). - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_NT\_MACHINE\_UID\_NAME}: The value is uid\_t object. On -Unix\sphinxhyphen{}like systems, the username of the uid is looked up in the -system user database and the resulting username is parsed as a -principal name. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_NT\_STRING\_UID\_NAME}: As above, but the value is a decimal -string representation of the uid. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_NT\_EXPORT\_NAME}: The value must be the result of a -\sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.13}{gss\_export\_name} call. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_KRB5\_NT\_ENTERPRISE\_NAME}: The value should be a krb5 -enterprise name string (see \index{RFC@\spxentry{RFC}!RFC 6806@\spxentry{RFC 6806}}\sphinxhref{https://datatracker.ietf.org/doc/html/rfc6806.html}{\sphinxstylestrong{RFC 6806}} section 5), in the form -\sphinxcode{\sphinxupquote{user@suffix}}. This name type is used to convey alias names, and -is defined in the \sphinxcode{\sphinxupquote{\textless{}gssapi/gssapi\_krb5.h\textgreater{}}} header. (New in -release 1.17.) - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_KRB5\_NT\_X509\_CERT}: The value should be an X.509 certificate -encoded according to \index{RFC@\spxentry{RFC}!RFC 5280@\spxentry{RFC 5280}}\sphinxhref{https://datatracker.ietf.org/doc/html/rfc5280.html}{\sphinxstylestrong{RFC 5280}}. This name form can be used for -the desired\_name parameter of gss\_acquire\_cred\_impersonate\_name(), -to identify the S4U2Self user by certificate. (New in release -1.19.) - -\end{itemize} - - -\section{Initiator credentials} -\label{\detokenize{appdev/gssapi:initiator-credentials}} -\sphinxAtStartPar -A GSSAPI client application uses \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.19}{gss\_init\_sec\_context} to establish a -security context. The \sphinxstyleemphasis{initiator\_cred\_handle} parameter determines -what tickets are used to establish the connection. An application can -either pass \sphinxstylestrong{GSS\_C\_NO\_CREDENTIAL} to use the default client -credential, or it can use \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.2}{gss\_acquire\_cred} beforehand to acquire an -initiator credential. The call to \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.2}{gss\_acquire\_cred} may include a -\sphinxstyleemphasis{desired\_name} parameter, or it may pass \sphinxstylestrong{GSS\_C\_NO\_NAME} if it does -not have a specific name preference. - -\sphinxAtStartPar -If the desired name for a krb5 initiator credential is a host\sphinxhyphen{}based -name, it is converted to a principal name of the form -\sphinxcode{\sphinxupquote{service/hostname}} in the local realm, where \sphinxstyleemphasis{hostname} is the local -hostname if not specified. The hostname will be canonicalized using -forward name resolution, and possibly also using reverse name -resolution depending on the value of the \sphinxstylestrong{rdns} variable in -\DUrole{xref,std,std-ref}{libdefaults}. - -\sphinxAtStartPar -If a desired name is specified in the call to \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.2}{gss\_acquire\_cred}, the -krb5 mechanism will attempt to find existing tickets for that client -principal name in the default credential cache or collection. If the -default cache type does not support a collection, and the default -cache contains credentials for a different principal than the desired -name, a \sphinxstylestrong{GSS\_S\_CRED\_UNAVAIL} error will be returned with a minor -code indicating a mismatch. - -\sphinxAtStartPar -If no existing tickets are available for the desired name, but the -name has an entry in the default client \DUrole{xref,std,std-ref}{keytab\_definition}, the -krb5 mechanism will acquire initial tickets for the name using the -default client keytab. - -\sphinxAtStartPar -If no desired name is specified, credential acquisition will be -deferred until the credential is used in a call to -\sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.19}{gss\_init\_sec\_context} or \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.21}{gss\_inquire\_cred}. If the call is to -\sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.19}{gss\_init\_sec\_context}, the target name will be used to choose a client -principal name using the credential cache selection facility. (This -facility might, for instance, try to choose existing tickets for a -client principal in the same realm as the target service). If there -are no existing tickets for the chosen principal, but it is present in -the default client keytab, the krb5 mechanism will acquire initial -tickets using the keytab. - -\sphinxAtStartPar -If the target name cannot be used to select a client principal -(because the credentials are used in a call to \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.21}{gss\_inquire\_cred}), or -if the credential cache selection facility cannot choose a principal -for it, the default credential cache will be selected if it exists and -contains tickets. - -\sphinxAtStartPar -If the default credential cache does not exist, but the default client -keytab does, the krb5 mechanism will try to acquire initial tickets -for the first principal in the default client keytab. - -\sphinxAtStartPar -If the krb5 mechanism acquires initial tickets using the default -client keytab, the resulting tickets will be stored in the default -cache or collection, and will be refreshed by future calls to -\sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.2}{gss\_acquire\_cred} as they approach their expire time. - - -\section{Acceptor names} -\label{\detokenize{appdev/gssapi:acceptor-names}} -\sphinxAtStartPar -A GSSAPI server application uses \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.1}{gss\_accept\_sec\_context} to establish -a security context based on tokens provided by the client. The -\sphinxstyleemphasis{acceptor\_cred\_handle} parameter determines what -\DUrole{xref,std,std-ref}{keytab\_definition} entries may be authenticated to by the -client, if the krb5 mechanism is used. - -\sphinxAtStartPar -The simplest choice is to pass \sphinxstylestrong{GSS\_C\_NO\_CREDENTIAL} as the acceptor -credential. In this case, clients may authenticate to any service -principal in the default keytab (typically \DUrole{xref,std,std-ref}{DEFKTNAME}, or the value of -the \sphinxstylestrong{KRB5\_KTNAME} environment variable). This is the recommended -approach if the server application has no specific requirements to the -contrary. - -\sphinxAtStartPar -A server may acquire an acceptor credential with \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.2}{gss\_acquire\_cred} and -a \sphinxstyleemphasis{cred\_usage} of \sphinxstylestrong{GSS\_C\_ACCEPT} or \sphinxstylestrong{GSS\_C\_BOTH}. If the -\sphinxstyleemphasis{desired\_name} parameter is \sphinxstylestrong{GSS\_C\_NO\_NAME}, then clients will be -allowed to authenticate to any service principal in the default -keytab, just as if no acceptor credential was supplied. - -\sphinxAtStartPar -If a server wishes to specify a \sphinxstyleemphasis{desired\_name} to \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.2}{gss\_acquire\_cred}, -the most common choice is a host\sphinxhyphen{}based name. If the host\sphinxhyphen{}based -\sphinxstyleemphasis{desired\_name} contains just a \sphinxstyleemphasis{service}, then clients will be allowed -to authenticate to any host\sphinxhyphen{}based service principal (that is, a -principal of the form \sphinxcode{\sphinxupquote{service/hostname@REALM}}) for the named -service, regardless of hostname or realm, as long as it is present in -the default keytab. If the input name contains both a \sphinxstyleemphasis{service} and a -\sphinxstyleemphasis{hostname}, clients will be allowed to authenticate to any host\sphinxhyphen{}based -principal for the named service and hostname, regardless of realm. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -If a \sphinxstyleemphasis{hostname} is specified, it will be canonicalized -using forward name resolution, and possibly also using -reverse name resolution depending on the value of the -\sphinxstylestrong{rdns} variable in \DUrole{xref,std,std-ref}{libdefaults}. -\end{sphinxadmonition} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -If the \sphinxstylestrong{ignore\_acceptor\_hostname} variable in -\DUrole{xref,std,std-ref}{libdefaults} is enabled, then \sphinxstyleemphasis{hostname} will be -ignored even if one is specified in the input name. -\end{sphinxadmonition} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -In MIT krb5 versions prior to 1.10, and in Heimdal’s -implementation of the krb5 mechanism, an input name with -just a \sphinxstyleemphasis{service} is treated like an input name of -\sphinxcode{\sphinxupquote{service@localhostname}}, where \sphinxstyleemphasis{localhostname} is the -string returned by gethostname(). -\end{sphinxadmonition} - -\sphinxAtStartPar -If the \sphinxstyleemphasis{desired\_name} is a krb5 principal name or a local system name -type which is mapped to a krb5 principal name, clients will only be -allowed to authenticate to that principal in the default keytab. - - -\section{Name Attributes} -\label{\detokenize{appdev/gssapi:name-attributes}} -\sphinxAtStartPar -In release 1.8 or later, the \sphinxhref{https://tools.ietf.org/html/rfc6680.txt\#section-7.4}{gss\_inquire\_name} and -\sphinxhref{https://tools.ietf.org/html/6680.html\#section-7.5}{gss\_get\_name\_attribute} functions, specified in \index{RFC@\spxentry{RFC}!RFC 6680@\spxentry{RFC 6680}}\sphinxhref{https://datatracker.ietf.org/doc/html/rfc6680.html}{\sphinxstylestrong{RFC 6680}}, can be -used to retrieve name attributes from the \sphinxstyleemphasis{src\_name} returned by -\sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.1}{gss\_accept\_sec\_context}. The following attributes are defined when -the krb5 mechanism is used: - -\phantomsection\label{\detokenize{appdev/gssapi:gssapi-authind-attr}}\begin{itemize} -\item {} -\sphinxAtStartPar -“auth\sphinxhyphen{}indicators” attribute: - -\end{itemize} - -\sphinxAtStartPar -This attribute will be included in the \sphinxhref{https://tools.ietf.org/html/rfc6680.txt\#section-7.4}{gss\_inquire\_name} output if the -ticket contains \DUrole{xref,std,std-ref}{authentication indicators}. -One indicator is returned per invocation of \sphinxhref{https://tools.ietf.org/html/6680.html\#section-7.5}{gss\_get\_name\_attribute}, -so multiple invocations may be necessary to retrieve all of the -indicators from the ticket. (New in release 1.15.) - - -\section{Credential store extensions} -\label{\detokenize{appdev/gssapi:credential-store-extensions}} -\sphinxAtStartPar -Beginning with release 1.11, the following GSSAPI extensions declared -in \sphinxcode{\sphinxupquote{\textless{}gssapi/gssapi\_ext.h\textgreater{}}} can be used to specify how credentials -are acquired or stored: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{struct} \PYG{n}{gss\PYGZus{}key\PYGZus{}value\PYGZus{}element\PYGZus{}struct} \PYG{p}{\PYGZob{}} - \PYG{n}{const} \PYG{n}{char} \PYG{o}{*}\PYG{n}{key}\PYG{p}{;} - \PYG{n}{const} \PYG{n}{char} \PYG{o}{*}\PYG{n}{value}\PYG{p}{;} -\PYG{p}{\PYGZcb{}}\PYG{p}{;} -\PYG{n}{typedef} \PYG{n}{struct} \PYG{n}{gss\PYGZus{}key\PYGZus{}value\PYGZus{}element\PYGZus{}struct} \PYG{n}{gss\PYGZus{}key\PYGZus{}value\PYGZus{}element\PYGZus{}desc}\PYG{p}{;} - -\PYG{n}{struct} \PYG{n}{gss\PYGZus{}key\PYGZus{}value\PYGZus{}set\PYGZus{}struct} \PYG{p}{\PYGZob{}} - \PYG{n}{OM\PYGZus{}uint32} \PYG{n}{count}\PYG{p}{;} - \PYG{n}{gss\PYGZus{}key\PYGZus{}value\PYGZus{}element\PYGZus{}desc} \PYG{o}{*}\PYG{n}{elements}\PYG{p}{;} -\PYG{p}{\PYGZcb{}}\PYG{p}{;} -\PYG{n}{typedef} \PYG{n}{const} \PYG{n}{struct} \PYG{n}{gss\PYGZus{}key\PYGZus{}value\PYGZus{}set\PYGZus{}struct} \PYG{n}{gss\PYGZus{}key\PYGZus{}value\PYGZus{}set\PYGZus{}desc}\PYG{p}{;} -\PYG{n}{typedef} \PYG{n}{const} \PYG{n}{gss\PYGZus{}key\PYGZus{}value\PYGZus{}set\PYGZus{}desc} \PYG{o}{*}\PYG{n}{gss\PYGZus{}const\PYGZus{}key\PYGZus{}value\PYGZus{}set\PYGZus{}t}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}acquire\PYGZus{}cred\PYGZus{}from}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{const} \PYG{n}{gss\PYGZus{}name\PYGZus{}t} \PYG{n}{desired\PYGZus{}name}\PYG{p}{,} - \PYG{n}{OM\PYGZus{}uint32} \PYG{n}{time\PYGZus{}req}\PYG{p}{,} - \PYG{n}{const} \PYG{n}{gss\PYGZus{}OID\PYGZus{}set} \PYG{n}{desired\PYGZus{}mechs}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}usage\PYGZus{}t} \PYG{n}{cred\PYGZus{}usage}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}const\PYGZus{}key\PYGZus{}value\PYGZus{}set\PYGZus{}t} \PYG{n}{cred\PYGZus{}store}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}id\PYGZus{}t} \PYG{o}{*}\PYG{n}{output\PYGZus{}cred\PYGZus{}handle}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}OID\PYGZus{}set} \PYG{o}{*}\PYG{n}{actual\PYGZus{}mechs}\PYG{p}{,} - \PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{time\PYGZus{}rec}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}store\PYGZus{}cred\PYGZus{}into}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}id\PYGZus{}t} \PYG{n}{input\PYGZus{}cred\PYGZus{}handle}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}usage\PYGZus{}t} \PYG{n}{cred\PYGZus{}usage}\PYG{p}{,} - \PYG{n}{const} \PYG{n}{gss\PYGZus{}OID} \PYG{n}{desired\PYGZus{}mech}\PYG{p}{,} - \PYG{n}{OM\PYGZus{}uint32} \PYG{n}{overwrite\PYGZus{}cred}\PYG{p}{,} - \PYG{n}{OM\PYGZus{}uint32} \PYG{n}{default\PYGZus{}cred}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}const\PYGZus{}key\PYGZus{}value\PYGZus{}set\PYGZus{}t} \PYG{n}{cred\PYGZus{}store}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}OID\PYGZus{}set} \PYG{o}{*}\PYG{n}{elements\PYGZus{}stored}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}usage\PYGZus{}t} \PYG{o}{*}\PYG{n}{cred\PYGZus{}usage\PYGZus{}stored}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -The additional \sphinxstyleemphasis{cred\_store} parameter allows the caller to specify -information about how the credentials should be obtained and stored. -The following options are supported by the krb5 mechanism: -\begin{itemize} -\item {} -\sphinxAtStartPar -\sphinxstylestrong{ccache}: For acquiring initiator credentials, the name of the -\DUrole{xref,std,std-ref}{credential cache} to which the handle will -refer. For storing credentials, the name of the cache or collection -where the credentials will be stored (see below). - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{client\_keytab}: For acquiring initiator credentials, the name of -the \DUrole{xref,std,std-ref}{keytab} which will be used, if -necessary, to refresh the credentials in the cache. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{keytab}: For acquiring acceptor credentials, the name of the -\DUrole{xref,std,std-ref}{keytab} to which the handle will refer. -In release 1.19 and later, this option also determines the keytab to -be used for verification when initiator credentials are acquired -using a password and verified. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{password}: For acquiring initiator credentials, this option -instructs the mechanism to acquire fresh credentials into a unique -memory credential cache. This option may not be used with the -\sphinxstylestrong{ccache} or \sphinxstylestrong{client\_keytab} options, and a \sphinxstyleemphasis{desired\_name} must -be specified. (New in release 1.19.) - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{rcache}: For acquiring acceptor credentials, the name of the -\DUrole{xref,std,std-ref}{replay cache} to be used when processing -the initiator tokens. (New in release 1.13.) - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{verify}: For acquiring initiator credentials, this option -instructs the mechanism to verify the credentials by obtaining a -ticket to a service with a known key. The service key is obtained -from the keytab specified with the \sphinxstylestrong{keytab} option or the default -keytab. The value may be the name of a principal in the keytab, or -the empty string. If the empty string is given, any \sphinxcode{\sphinxupquote{host}} -service principal in the keytab may be used. (New in release 1.19.) - -\end{itemize} - -\sphinxAtStartPar -In release 1.20 or later, if a collection name is specified for -\sphinxstylestrong{cache} in a call to gss\_store\_cred\_into(), an existing cache for -the client principal within the collection will be selected, or a new -cache will be created within the collection. If \sphinxstyleemphasis{overwrite\_cred} is -false and the selected credential cache already exists, a -\sphinxstylestrong{GSS\_S\_DUPLICATE\_ELEMENT} error will be returned. If \sphinxstyleemphasis{default\_cred} -is true, the primary cache of the collection will be switched to the -selected cache. - - -\section{Importing and exporting credentials} -\label{\detokenize{appdev/gssapi:importing-and-exporting-credentials}} -\sphinxAtStartPar -The following GSSAPI extensions can be used to import and export -credentials (declared in \sphinxcode{\sphinxupquote{\textless{}gssapi/gssapi\_ext.h\textgreater{}}}): - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}export\PYGZus{}cred}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}id\PYGZus{}t} \PYG{n}{cred\PYGZus{}handle}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}t} \PYG{n}{token}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}import\PYGZus{}cred}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}t} \PYG{n}{token}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}id\PYGZus{}t} \PYG{o}{*}\PYG{n}{cred\PYGZus{}handle}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -The first function serializes a GSSAPI credential handle into a -buffer; the second unseralizes a buffer into a GSSAPI credential -handle. Serializing a credential does not destroy it. If any of the -mechanisms used in \sphinxstyleemphasis{cred\_handle} do not support serialization, -gss\_export\_cred will return \sphinxstylestrong{GSS\_S\_UNAVAILABLE}. As with other -GSSAPI serialization functions, these extensions are only intended to -work with a matching implementation on the other side; they do not -serialize credentials in a standardized format. - -\sphinxAtStartPar -A serialized credential may contain secret information such as ticket -session keys. The serialization format does not protect this -information from eavesdropping or tampering. The calling application -must take care to protect the serialized credential when communicating -it over an insecure channel or to an untrusted party. - -\sphinxAtStartPar -A krb5 GSSAPI credential may contain references to a credential cache, -a client keytab, an acceptor keytab, and a replay cache. These -resources are normally serialized as references to their external -locations (such as the filename of the credential cache). Because of -this, a serialized krb5 credential can only be imported by a process -with similar privileges to the exporter. A serialized credential -should not be trusted if it originates from a source with lower -privileges than the importer, as it may contain references to external -credential cache, keytab, or replay cache resources not accessible to -the originator. - -\sphinxAtStartPar -An exception to the above rule applies when a krb5 GSSAPI credential -refers to a memory credential cache, as is normally the case for -delegated credentials received by \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.1}{gss\_accept\_sec\_context}. In this -case, the contents of the credential cache are serialized, so that the -resulting token may be imported even if the original memory credential -cache no longer exists. - - -\section{Constrained delegation (S4U)} -\label{\detokenize{appdev/gssapi:constrained-delegation-s4u}} -\sphinxAtStartPar -The Microsoft S4U2Self and S4U2Proxy Kerberos protocol extensions -allow an intermediate service to acquire credentials from a client to -a target service without requiring the client to delegate a -ticket\sphinxhyphen{}granting ticket, if the KDC is configured to allow it. - -\sphinxAtStartPar -To perform a constrained delegation operation, the intermediate -service must submit to the KDC an “evidence ticket” from the client to -the intermediate service. An evidence ticket can be acquired when the -client authenticates to the intermediate service with Kerberos, or -with an S4U2Self request if the KDC allows it. The MIT krb5 GSSAPI -library represents an evidence ticket using a “proxy credential”, -which is a special kind of gss\_cred\_id\_t object whose underlying -credential cache contains the evidence ticket and a krbtgt ticket for -the intermediate service. - -\sphinxAtStartPar -To acquire a proxy credential during client authentication, the -service should first create an acceptor credential using the -\sphinxstylestrong{GSS\_C\_BOTH} usage. The application should then pass this -credential as the \sphinxstyleemphasis{acceptor\_cred\_handle} to \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.1}{gss\_accept\_sec\_context}, -and also pass a \sphinxstyleemphasis{delegated\_cred\_handle} output parameter to receive a -proxy credential containing the evidence ticket. The output value of -\sphinxstyleemphasis{delegated\_cred\_handle} may be a delegated ticket\sphinxhyphen{}granting ticket if -the client sent one, or a proxy credential if not. If the library can -determine that the client’s ticket is not a valid evidence ticket, it -will place \sphinxstylestrong{GSS\_C\_NO\_CREDENTIAL} in \sphinxstyleemphasis{delegated\_cred\_handle}. - -\sphinxAtStartPar -To acquire a proxy credential using an S4U2Self request, the service -can use the following GSSAPI extension: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}acquire\PYGZus{}cred\PYGZus{}impersonate\PYGZus{}name}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}id\PYGZus{}t} \PYG{n}{icred}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}name\PYGZus{}t} \PYG{n}{desired\PYGZus{}name}\PYG{p}{,} - \PYG{n}{OM\PYGZus{}uint32} \PYG{n}{time\PYGZus{}req}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}OID\PYGZus{}set} \PYG{n}{desired\PYGZus{}mechs}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}usage\PYGZus{}t} \PYG{n}{cred\PYGZus{}usage}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}cred\PYGZus{}id\PYGZus{}t} \PYG{o}{*}\PYG{n}{output\PYGZus{}cred}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}OID\PYGZus{}set} \PYG{o}{*}\PYG{n}{actual\PYGZus{}mechs}\PYG{p}{,} - \PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{time\PYGZus{}rec}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -The parameters to this function are similar to those of -\sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.2}{gss\_acquire\_cred}, except that \sphinxstyleemphasis{icred} is used to make an S4U2Self -request to the KDC for a ticket from \sphinxstyleemphasis{desired\_name} to the -intermediate service. Both \sphinxstyleemphasis{icred} and \sphinxstyleemphasis{desired\_name} are required -for this function; passing \sphinxstylestrong{GSS\_C\_NO\_CREDENTIAL} or -\sphinxstylestrong{GSS\_C\_NO\_NAME} will cause the call to fail. \sphinxstyleemphasis{icred} must contain a -krbtgt ticket for the intermediate service. The result of this -operation is a proxy credential. (Prior to release 1.18, the result -of this operation may be a regular credential for \sphinxstyleemphasis{desired\_name}, if -the KDC issues a non\sphinxhyphen{}forwardable ticket.) - -\sphinxAtStartPar -Once the intermediate service has a proxy credential, it can simply -pass it to \sphinxhref{https://tools.ietf.org/html/rfc2744.html\#section-5.19}{gss\_init\_sec\_context} as the \sphinxstyleemphasis{initiator\_cred\_handle} -parameter, and the desired service as the \sphinxstyleemphasis{target\_name} parameter. -The GSSAPI library will present the krbtgt ticket and evidence ticket -in the proxy credential to the KDC in an S4U2Proxy request; if the -intermediate service has the appropriate permissions, the KDC will -issue a ticket from the client to the target service. The GSSAPI -library will then use this ticket to authenticate to the target -service. - -\sphinxAtStartPar -If an application needs to find out whether a credential it holds is a -proxy credential and the name of the intermediate service, it can -query the credential with the \sphinxstylestrong{GSS\_KRB5\_GET\_CRED\_IMPERSONATOR} OID -(new in release 1.16, declared in \sphinxcode{\sphinxupquote{\textless{}gssapi/gssapi\_krb5.h\textgreater{}}}) using -the gss\_inquire\_cred\_by\_oid extension (declared in -\sphinxcode{\sphinxupquote{\textless{}gssapi/gssapi\_ext.h\textgreater{}}}): - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}inquire\PYGZus{}cred\PYGZus{}by\PYGZus{}oid}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{const} \PYG{n}{gss\PYGZus{}cred\PYGZus{}id\PYGZus{}t} \PYG{n}{cred\PYGZus{}handle}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}OID} \PYG{n}{desired\PYGZus{}object}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}set\PYGZus{}t} \PYG{o}{*}\PYG{n}{data\PYGZus{}set}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -If the call succeeds and \sphinxstyleemphasis{cred\_handle} is a proxy credential, -\sphinxstyleemphasis{data\_set} will be set to a single\sphinxhyphen{}element buffer set containing the -unparsed principal name of the intermediate service. If \sphinxstyleemphasis{cred\_handle} -is not a proxy credential, \sphinxstyleemphasis{data\_set} will be set to an empty buffer -set. If the library does not support the query, -gss\_inquire\_cred\_by\_oid will return \sphinxstylestrong{GSS\_S\_UNAVAILABLE}. - - -\section{Channel binding behavior and GSS\_C\_CHANNEL\_BOUND\_FLAG} -\label{\detokenize{appdev/gssapi:channel-binding-behavior-and-gss-c-channel-bound-flag}} -\sphinxAtStartPar -GSSAPI channel bindings can be used to limit the scope of a context -establishment token to a particular protected channel or endpoint, -such as a TLS channel or server certificate. Channel bindings can be -supplied via the \sphinxstyleemphasis{input\_chan\_bindings} parameter to either -gss\_init\_sec\_context() or gss\_accept\_sec\_context(). - -\sphinxAtStartPar -If both the initiator and acceptor of a GSSAPI exchange supply -matching channel bindings, \sphinxstylestrong{GSS\_C\_CHANNEL\_BOUND\_FLAG} will be -included in the gss\_accept\_sec\_context() \sphinxstyleemphasis{ret\_flags} result. If -either the initiator or acceptor (or both) do not supply channel -bindings, the exchange will succeed, but \sphinxstylestrong{GSS\_C\_CHANNEL\_BOUND\_FLAG} -will not be included in the return flags. If the acceptor and -initiator both inlude channel bindings but they do not match, the -exchange will fail. - -\sphinxAtStartPar -If \sphinxstylestrong{GSS\_C\_CHANNEL\_BOUND\_FLAG} is included in the \sphinxstyleemphasis{req\_flags} -parameter of gss\_init\_sec\_context(), the initiator will add the -Microsoft KERB\_AP\_OPTIONS\_CBT extension to the Kerberos authenticator. -This extension requests that the acceptor strictly enforce channel -bindings, causing the exchange to fail if the acceptor supplies -channel bindings and the initiator does not. The KERB\_AP\_OPTIONS\_CBT -extension will also be included if the -\sphinxstylestrong{client\_aware\_channel\_bindings} variable is set to \sphinxcode{\sphinxupquote{true}} in -\DUrole{xref,std,std-ref}{libdefaults}. - -\sphinxAtStartPar -Prior to release 1.19, \sphinxstylestrong{GSS\_C\_CHANNEL\_BOUND\_FLAG} is not -implemented, and the exchange will fail if the acceptor supply channel -bindings and the initiator does not (but not vice versa). Between -releases 1.19 and 1.21, \sphinxstylestrong{GSS\_C\_CHANNEL\_BOUND\_FLAG} is not recognized -as an initiator flag, so \sphinxstylestrong{client\_aware\_channel\_bindings} is the only -way to cause KERB\_AP\_OPTIONS\_CBT to be included. - - -\section{AEAD message wrapping} -\label{\detokenize{appdev/gssapi:aead-message-wrapping}} -\sphinxAtStartPar -The following GSSAPI extensions (declared in -\sphinxcode{\sphinxupquote{\textless{}gssapi/gssapi\_ext.h\textgreater{}}}) can be used to wrap and unwrap messages -with additional “associated data” which is integrity\sphinxhyphen{}checked but is -not included in the output buffer: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}wrap\PYGZus{}aead}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}ctx\PYGZus{}id\PYGZus{}t} \PYG{n}{context\PYGZus{}handle}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{n}{conf\PYGZus{}req\PYGZus{}flag}\PYG{p}{,} \PYG{n}{gss\PYGZus{}qop\PYGZus{}t} \PYG{n}{qop\PYGZus{}req}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}t} \PYG{n}{input\PYGZus{}assoc\PYGZus{}buffer}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}t} \PYG{n}{input\PYGZus{}payload\PYGZus{}buffer}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{o}{*}\PYG{n}{conf\PYGZus{}state}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}t} \PYG{n}{output\PYGZus{}message\PYGZus{}buffer}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}unwrap\PYGZus{}aead}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}ctx\PYGZus{}id\PYGZus{}t} \PYG{n}{context\PYGZus{}handle}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}t} \PYG{n}{input\PYGZus{}message\PYGZus{}buffer}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}t} \PYG{n}{input\PYGZus{}assoc\PYGZus{}buffer}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}t} \PYG{n}{output\PYGZus{}payload\PYGZus{}buffer}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{o}{*}\PYG{n}{conf\PYGZus{}state}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}qop\PYGZus{}t} \PYG{o}{*}\PYG{n}{qop\PYGZus{}state}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -Wrap tokens created with gss\_wrap\_aead will successfully unwrap only -if the same \sphinxstyleemphasis{input\_assoc\_buffer} contents are presented to -gss\_unwrap\_aead. - - -\section{IOV message wrapping} -\label{\detokenize{appdev/gssapi:iov-message-wrapping}} -\sphinxAtStartPar -The following extensions (declared in \sphinxcode{\sphinxupquote{\textless{}gssapi/gssapi\_ext.h\textgreater{}}}) can -be used for in\sphinxhyphen{}place encryption, fine\sphinxhyphen{}grained control over wrap token -layout, and for constructing wrap tokens compatible with Microsoft DCE -RPC: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{typedef} \PYG{n}{struct} \PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc\PYGZus{}struct} \PYG{p}{\PYGZob{}} - \PYG{n}{OM\PYGZus{}uint32} \PYG{n+nb}{type}\PYG{p}{;} - \PYG{n}{gss\PYGZus{}buffer\PYGZus{}desc} \PYG{n}{buffer}\PYG{p}{;} -\PYG{p}{\PYGZcb{}} \PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc}\PYG{p}{,} \PYG{o}{*}\PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}t}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}wrap\PYGZus{}iov}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}ctx\PYGZus{}id\PYGZus{}t} \PYG{n}{context\PYGZus{}handle}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{n}{conf\PYGZus{}req\PYGZus{}flag}\PYG{p}{,} \PYG{n}{gss\PYGZus{}qop\PYGZus{}t} \PYG{n}{qop\PYGZus{}req}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{o}{*}\PYG{n}{conf\PYGZus{}state}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{o}{*}\PYG{n}{iov}\PYG{p}{,} \PYG{n+nb}{int} \PYG{n}{iov\PYGZus{}count}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}unwrap\PYGZus{}iov}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}ctx\PYGZus{}id\PYGZus{}t} \PYG{n}{context\PYGZus{}handle}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{o}{*}\PYG{n}{conf\PYGZus{}state}\PYG{p}{,} \PYG{n}{gss\PYGZus{}qop\PYGZus{}t} \PYG{o}{*}\PYG{n}{qop\PYGZus{}state}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{o}{*}\PYG{n}{iov}\PYG{p}{,} \PYG{n+nb}{int} \PYG{n}{iov\PYGZus{}count}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}wrap\PYGZus{}iov\PYGZus{}length}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}ctx\PYGZus{}id\PYGZus{}t} \PYG{n}{context\PYGZus{}handle}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{n}{conf\PYGZus{}req\PYGZus{}flag}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}qop\PYGZus{}t} \PYG{n}{qop\PYGZus{}req}\PYG{p}{,} \PYG{n+nb}{int} \PYG{o}{*}\PYG{n}{conf\PYGZus{}state}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{o}{*}\PYG{n}{iov}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{n}{iov\PYGZus{}count}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}release\PYGZus{}iov\PYGZus{}buffer}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{o}{*}\PYG{n}{iov}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{n}{iov\PYGZus{}count}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -The caller of gss\_wrap\_iov provides an array of gss\_iov\_buffer\_desc -structures, each containing a type and a gss\_buffer\_desc structure. -Valid types include: -\begin{itemize} -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_BUFFER\_TYPE\_DATA}: A data buffer to be included in the -token, and to be encrypted or decrypted in\sphinxhyphen{}place if the token is -confidentiality\sphinxhyphen{}protected. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_BUFFER\_TYPE\_HEADER}: The GSSAPI wrap token header and -underlying cryptographic header. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_BUFFER\_TYPE\_TRAILER}: The cryptographic trailer, if one is -required. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_BUFFER\_TYPE\_PADDING}: Padding to be combined with the data -during encryption and decryption. (The implementation may choose to -place padding in the trailer buffer, in which case it will set the -padding buffer length to 0.) - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_BUFFER\_TYPE\_STREAM}: For unwrapping only, a buffer -containing a complete wrap token in standard format to be unwrapped. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_BUFFER\_TYPE\_SIGN\_ONLY}: A buffer to be included in the -token’s integrity protection checksum, but not to be encrypted or -included in the token itself. - -\end{itemize} - -\sphinxAtStartPar -For gss\_wrap\_iov, the IOV list should contain one HEADER buffer, -followed by zero or more SIGN\_ONLY buffers, followed by one or more -DATA buffers, followed by a TRAILER buffer. The memory pointed to by -the buffers is not required to be contiguous or in any particular -order. If \sphinxstyleemphasis{conf\_req\_flag} is true, DATA buffers will be encrypted -in\sphinxhyphen{}place, while SIGN\_ONLY buffers will not be modified. - -\sphinxAtStartPar -The type of an output buffer may be combined with -\sphinxstylestrong{GSS\_C\_BUFFER\_FLAG\_ALLOCATE} to request that gss\_wrap\_iov allocate -the buffer contents. If gss\_wrap\_iov allocates a buffer, it sets the -\sphinxstylestrong{GSS\_C\_BUFFER\_FLAG\_ALLOCATED} flag on the buffer type. -gss\_release\_iov\_buffer can be used to release all allocated buffers -within an iov list and unset their allocated flags. Here is an -example of how gss\_wrap\_iov can be used with allocation requested -(\sphinxstyleemphasis{ctx} is assumed to be a previously established gss\_ctx\_id\_t): - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{;} -\PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{4}\PYG{p}{]}\PYG{p}{;} -\PYG{n}{char} \PYG{n+nb}{str}\PYG{p}{[}\PYG{p}{]} \PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{message}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{;} - -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}HEADER} \PYG{o}{|} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}FLAG\PYGZus{}ALLOCATE}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}DATA}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{n+nb}{str}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{=} \PYG{n}{strlen}\PYG{p}{(}\PYG{n+nb}{str}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}PADDING} \PYG{o}{|} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}FLAG\PYGZus{}ALLOCATE}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{3}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}TRAILER} \PYG{o}{|} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}FLAG\PYGZus{}ALLOCATE}\PYG{p}{;} - -\PYG{n}{major} \PYG{o}{=} \PYG{n}{gss\PYGZus{}wrap\PYGZus{}iov}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{minor}\PYG{p}{,} \PYG{n}{ctx}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{,} \PYG{n}{GSS\PYGZus{}C\PYGZus{}QOP\PYGZus{}DEFAULT}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} - \PYG{n}{iov}\PYG{p}{,} \PYG{l+m+mi}{4}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{GSS\PYGZus{}ERROR}\PYG{p}{(}\PYG{n}{major}\PYG{p}{)}\PYG{p}{)} - \PYG{n}{handle\PYGZus{}error}\PYG{p}{(}\PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{)}\PYG{p}{;} - -\PYG{o}{/}\PYG{o}{*} \PYG{n}{Transmit} \PYG{o+ow}{or} \PYG{n}{otherwise} \PYG{n}{use} \PYG{n}{resulting} \PYG{n}{buffers}\PYG{o}{.} \PYG{o}{*}\PYG{o}{/} - -\PYG{p}{(}\PYG{n}{void}\PYG{p}{)}\PYG{n}{gss\PYGZus{}release\PYGZus{}iov\PYGZus{}buffer}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{minor}\PYG{p}{,} \PYG{n}{iov}\PYG{p}{,} \PYG{l+m+mi}{4}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -If the caller does not choose to request buffer allocation by -gss\_wrap\_iov, it should first call gss\_wrap\_iov\_length to query the -lengths of the HEADER, PADDING, and TRAILER buffers. DATA buffers -must be provided in the iov list so that padding length can be -computed correctly, but the output buffers need not be initialized. -Here is an example of using gss\_wrap\_iov\_length and gss\_wrap\_iov: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{;} -\PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{4}\PYG{p}{]}\PYG{p}{;} -\PYG{n}{char} \PYG{n+nb}{str}\PYG{p}{[}\PYG{l+m+mi}{1024}\PYG{p}{]} \PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{message}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{o}{*}\PYG{n}{ptr}\PYG{p}{;} - -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}HEADER}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}DATA}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{n+nb}{str}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{=} \PYG{n}{strlen}\PYG{p}{(}\PYG{n+nb}{str}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}PADDING}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{3}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}TRAILER}\PYG{p}{;} - -\PYG{n}{major} \PYG{o}{=} \PYG{n}{gss\PYGZus{}wrap\PYGZus{}iov\PYGZus{}length}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{minor}\PYG{p}{,} \PYG{n}{ctx}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{,} \PYG{n}{GSS\PYGZus{}C\PYGZus{}QOP\PYGZus{}DEFAULT}\PYG{p}{,} - \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{iov}\PYG{p}{,} \PYG{l+m+mi}{4}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{GSS\PYGZus{}ERROR}\PYG{p}{(}\PYG{n}{major}\PYG{p}{)}\PYG{p}{)} - \PYG{n}{handle\PYGZus{}error}\PYG{p}{(}\PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{strlen}\PYG{p}{(}\PYG{n+nb}{str}\PYG{p}{)} \PYG{o}{+} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{+} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{+} - \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{3}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{\PYGZgt{}} \PYG{n}{sizeof}\PYG{p}{(}\PYG{n+nb}{str}\PYG{p}{)}\PYG{p}{)} - \PYG{n}{handle\PYGZus{}out\PYGZus{}of\PYGZus{}space\PYGZus{}error}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{ptr} \PYG{o}{=} \PYG{n+nb}{str} \PYG{o}{+} \PYG{n}{strlen}\PYG{p}{(}\PYG{n+nb}{str}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{n}{ptr}\PYG{p}{;} -\PYG{n}{ptr} \PYG{o}{+}\PYG{o}{=} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{n}{ptr}\PYG{p}{;} -\PYG{n}{ptr} \PYG{o}{+}\PYG{o}{=} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{3}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{n}{ptr}\PYG{p}{;} - -\PYG{n}{major} \PYG{o}{=} \PYG{n}{gss\PYGZus{}wrap\PYGZus{}iov}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{minor}\PYG{p}{,} \PYG{n}{ctx}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{,} \PYG{n}{GSS\PYGZus{}C\PYGZus{}QOP\PYGZus{}DEFAULT}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} - \PYG{n}{iov}\PYG{p}{,} \PYG{l+m+mi}{4}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{GSS\PYGZus{}ERROR}\PYG{p}{(}\PYG{n}{major}\PYG{p}{)}\PYG{p}{)} - \PYG{n}{handle\PYGZus{}error}\PYG{p}{(}\PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -If the context was established using the \sphinxstylestrong{GSS\_C\_DCE\_STYLE} flag -(described in \index{RFC@\spxentry{RFC}!RFC 4757@\spxentry{RFC 4757}}\sphinxhref{https://datatracker.ietf.org/doc/html/rfc4757.html}{\sphinxstylestrong{RFC 4757}}), wrap tokens compatible with Microsoft DCE -RPC can be constructed. In this case, the IOV list must include a -SIGN\_ONLY buffer, a DATA buffer, a second SIGN\_ONLY buffer, and a -HEADER buffer in that order (the order of the buffer contents remains -arbitrary). The application must pad the DATA buffer to a multiple of -16 bytes as no padding or trailer buffer is used. - -\sphinxAtStartPar -gss\_unwrap\_iov may be called with an IOV list just like one which -would be provided to gss\_wrap\_iov. DATA buffers will be decrypted -in\sphinxhyphen{}place if they were encrypted, and SIGN\_ONLY buffers will not be -modified. - -\sphinxAtStartPar -Alternatively, gss\_unwrap\_iov may be called with a single STREAM -buffer, zero or more SIGN\_ONLY buffers, and a single DATA buffer. The -STREAM buffer is interpreted as a complete wrap token. The STREAM -buffer will be modified in\sphinxhyphen{}place to decrypt its contents. The DATA -buffer will be initialized to point to the decrypted data within the -STREAM buffer, unless it has the \sphinxstylestrong{GSS\_C\_BUFFER\_FLAG\_ALLOCATE} flag -set, in which case it will be initialized with a copy of the decrypted -data. Here is an example (\sphinxstyleemphasis{token} and \sphinxstyleemphasis{token\_len} are assumed to be a -pre\sphinxhyphen{}existing pointer and length for a modifiable region of data): - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{;} -\PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{p}{;} - -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}STREAM}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{n}{token}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{=} \PYG{n}{token\PYGZus{}len}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}DATA}\PYG{p}{;} -\PYG{n}{major} \PYG{o}{=} \PYG{n}{gss\PYGZus{}unwrap\PYGZus{}iov}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{minor}\PYG{p}{,} \PYG{n}{ctx}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{iov}\PYG{p}{,} \PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{GSS\PYGZus{}ERROR}\PYG{p}{(}\PYG{n}{major}\PYG{p}{)}\PYG{p}{)} - \PYG{n}{handle\PYGZus{}error}\PYG{p}{(}\PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{)}\PYG{p}{;} - -\PYG{o}{/}\PYG{o}{*} \PYG{n}{Decrypted} \PYG{n}{data} \PYG{o+ow}{is} \PYG{o+ow}{in} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{p}{,} \PYG{n}{pointing} \PYG{n}{to} \PYG{n}{a} \PYG{n}{subregion} \PYG{n}{of} - \PYG{o}{*} \PYG{n}{token}\PYG{o}{.} \PYG{o}{*}\PYG{o}{/} -\end{sphinxVerbatim} - - -\section{IOV MIC tokens} -\label{\detokenize{appdev/gssapi:iov-mic-tokens}}\label{\detokenize{appdev/gssapi:gssapi-mic-token}} -\sphinxAtStartPar -The following extensions (declared in \sphinxcode{\sphinxupquote{\textless{}gssapi/gssapi\_ext.h\textgreater{}}}) can -be used in release 1.12 or later to construct and verify MIC tokens -using an IOV list: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}get\PYGZus{}mic\PYGZus{}iov}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}ctx\PYGZus{}id\PYGZus{}t} \PYG{n}{context\PYGZus{}handle}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}qop\PYGZus{}t} \PYG{n}{qop\PYGZus{}req}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{o}{*}\PYG{n}{iov}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{n}{iov\PYGZus{}count}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}get\PYGZus{}mic\PYGZus{}iov\PYGZus{}length}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}ctx\PYGZus{}id\PYGZus{}t} \PYG{n}{context\PYGZus{}handle}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}qop\PYGZus{}t} \PYG{n}{qop\PYGZus{}req}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{o}{*}\PYG{n}{iov}\PYG{p}{,} - \PYG{n}{iov\PYGZus{}count}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{gss\PYGZus{}verify\PYGZus{}mic\PYGZus{}iov}\PYG{p}{(}\PYG{n}{OM\PYGZus{}uint32} \PYG{o}{*}\PYG{n}{minor\PYGZus{}status}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}ctx\PYGZus{}id\PYGZus{}t} \PYG{n}{context\PYGZus{}handle}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}qop\PYGZus{}t} \PYG{o}{*}\PYG{n}{qop\PYGZus{}state}\PYG{p}{,} - \PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{o}{*}\PYG{n}{iov}\PYG{p}{,} - \PYG{n+nb}{int} \PYG{n}{iov\PYGZus{}count}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -The caller of gss\_get\_mic\_iov provides an array of gss\_iov\_buffer\_desc -structures, each containing a type and a gss\_buffer\_desc structure. -Valid types include: -\begin{itemize} -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_BUFFER\_TYPE\_DATA} and \sphinxstylestrong{GSS\_C\_BUFFER\_TYPE\_SIGN\_ONLY}: The -corresponding buffer for each of these types will be signed for the -MIC token, in the order provided. - -\item {} -\sphinxAtStartPar -\sphinxstylestrong{GSS\_C\_BUFFER\_TYPE\_MIC\_TOKEN}: The GSSAPI MIC token. - -\end{itemize} - -\sphinxAtStartPar -The type of the MIC\_TOKEN buffer may be combined with -\sphinxstylestrong{GSS\_C\_BUFFER\_FLAG\_ALLOCATE} to request that gss\_get\_mic\_iov -allocate the buffer contents. If gss\_get\_mic\_iov allocates the -buffer, it sets the \sphinxstylestrong{GSS\_C\_BUFFER\_FLAG\_ALLOCATED} flag on the buffer -type. gss\_release\_iov\_buffer can be used to release all allocated -buffers within an iov list and unset their allocated flags. Here is -an example of how gss\_get\_mic\_iov can be used with allocation -requested (\sphinxstyleemphasis{ctx} is assumed to be a previously established -gss\_ctx\_id\_t): - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{;} -\PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{3}\PYG{p}{]}\PYG{p}{;} - -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}DATA}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{sign1}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{=} \PYG{l+m+mi}{5}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}SIGN\PYGZus{}ONLY}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{sign2}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{=} \PYG{l+m+mi}{5}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}MIC\PYGZus{}TOKEN} \PYG{o}{|} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}FLAG\PYGZus{}ALLOCATE}\PYG{p}{;} - -\PYG{n}{major} \PYG{o}{=} \PYG{n}{gss\PYGZus{}get\PYGZus{}mic\PYGZus{}iov}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{minor}\PYG{p}{,} \PYG{n}{ctx}\PYG{p}{,} \PYG{n}{GSS\PYGZus{}C\PYGZus{}QOP\PYGZus{}DEFAULT}\PYG{p}{,} \PYG{n}{iov}\PYG{p}{,} \PYG{l+m+mi}{3}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{GSS\PYGZus{}ERROR}\PYG{p}{(}\PYG{n}{major}\PYG{p}{)}\PYG{p}{)} - \PYG{n}{handle\PYGZus{}error}\PYG{p}{(}\PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{)}\PYG{p}{;} - -\PYG{o}{/}\PYG{o}{*} \PYG{n}{Transmit} \PYG{o+ow}{or} \PYG{n}{otherwise} \PYG{n}{use} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.} \PYG{o}{*}\PYG{o}{/} - -\PYG{p}{(}\PYG{n}{void}\PYG{p}{)}\PYG{n}{gss\PYGZus{}release\PYGZus{}iov\PYGZus{}buffer}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{minor}\PYG{p}{,} \PYG{n}{iov}\PYG{p}{,} \PYG{l+m+mi}{3}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -If the caller does not choose to request buffer allocation by -gss\_get\_mic\_iov, it should first call gss\_get\_mic\_iov\_length to query -the length of the MIC\_TOKEN buffer. Here is an example of using -gss\_get\_mic\_iov\_length and gss\_get\_mic\_iov: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{OM\PYGZus{}uint32} \PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{;} -\PYG{n}{gss\PYGZus{}iov\PYGZus{}buffer\PYGZus{}desc} \PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{2}\PYG{p}{]}\PYG{p}{;} -\PYG{n}{char} \PYG{n}{data}\PYG{p}{[}\PYG{l+m+mi}{1024}\PYG{p}{]}\PYG{p}{;} - -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}MIC\PYGZus{}TOKEN}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{type} \PYG{o}{=} \PYG{n}{GSS\PYGZus{}IOV\PYGZus{}BUFFER\PYGZus{}TYPE\PYGZus{}DATA}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{message}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{1}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{=} \PYG{l+m+mi}{7}\PYG{p}{;} - -\PYG{n}{major} \PYG{o}{=} \PYG{n}{gss\PYGZus{}get\PYGZus{}mic\PYGZus{}iov\PYGZus{}length}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{minor}\PYG{p}{,} \PYG{n}{ctx}\PYG{p}{,} \PYG{n}{GSS\PYGZus{}C\PYGZus{}QOP\PYGZus{}DEFAULT}\PYG{p}{,} \PYG{n}{iov}\PYG{p}{,} \PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{GSS\PYGZus{}ERROR}\PYG{p}{(}\PYG{n}{major}\PYG{p}{)}\PYG{p}{)} - \PYG{n}{handle\PYGZus{}error}\PYG{p}{(}\PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{length} \PYG{o}{\PYGZgt{}} \PYG{n}{sizeof}\PYG{p}{(}\PYG{n}{data}\PYG{p}{)}\PYG{p}{)} - \PYG{n}{handle\PYGZus{}out\PYGZus{}of\PYGZus{}space\PYGZus{}error}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{iov}\PYG{p}{[}\PYG{l+m+mi}{0}\PYG{p}{]}\PYG{o}{.}\PYG{n}{buffer}\PYG{o}{.}\PYG{n}{value} \PYG{o}{=} \PYG{n}{data}\PYG{p}{;} - -\PYG{n}{major} \PYG{o}{=} \PYG{n}{gss\PYGZus{}get\PYGZus{}mic\PYGZus{}iov}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{minor}\PYG{p}{,} \PYG{n}{ctx}\PYG{p}{,} \PYG{n}{GSS\PYGZus{}C\PYGZus{}QOP\PYGZus{}DEFAULT}\PYG{p}{,} \PYG{n}{iov}\PYG{p}{,} \PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{GSS\PYGZus{}ERROR}\PYG{p}{(}\PYG{n}{major}\PYG{p}{)}\PYG{p}{)} - \PYG{n}{handle\PYGZus{}error}\PYG{p}{(}\PYG{n}{major}\PYG{p}{,} \PYG{n}{minor}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxstepscope - - -\chapter{Year 2038 considerations for uses of krb5\_timestamp} -\label{\detokenize{appdev/y2038:year-2038-considerations-for-uses-of-krb5-timestamp}}\label{\detokenize{appdev/y2038::doc}} -\sphinxAtStartPar -POSIX time values, which measure the number of seconds since January 1 -1970, will exceed the maximum value representable in a signed 32\sphinxhyphen{}bit -integer in January 2038. This documentation describes considerations -for consumers of the MIT krb5 libraries. - -\sphinxAtStartPar -Applications or libraries which use libkrb5 and consume the timestamps -included in credentials or other structures make use of the -{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_timestamp}}}}} type. For historical reasons, krb5\_timestamp -is a signed 32\sphinxhyphen{}bit integer, even on platforms where a larger type is -natively used to represent time values. To behave properly for time -values after January 2038, calling code should cast krb5\_timestamp -values to uint32\_t, and then to time\_t: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{p}{(}\PYG{n}{time\PYGZus{}t}\PYG{p}{)}\PYG{p}{(}\PYG{n}{uint32\PYGZus{}t}\PYG{p}{)}\PYG{n}{timestamp} -\end{sphinxVerbatim} - -\sphinxAtStartPar -Used in this way, krb5\_timestamp values can represent time values up -until February 2106, provided that the platform uses a 64\sphinxhyphen{}bit or -larger time\_t type. This usage will also remain safe if a later -version of MIT krb5 changes krb5\_timestamp to an unsigned 32\sphinxhyphen{}bit -integer. - -\sphinxAtStartPar -The GSSAPI only uses representations of time intervals, not absolute -times. Callers of the GSSAPI should require no changes to behave -correctly after January 2038, provided that they use MIT krb5 release -1.16 or later. - -\sphinxstepscope - - -\chapter{Differences between Heimdal and MIT Kerberos API} -\label{\detokenize{appdev/h5l_mit_apidiff:differences-between-heimdal-and-mit-kerberos-api}}\label{\detokenize{appdev/h5l_mit_apidiff::doc}} - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\sphinxthistablewithvlinesstyle -\centering -\begin{tabulary}{\linewidth}[t]{|l|l|} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_auth_con_getaddrs:c.krb5_auth_con_getaddrs}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_auth\_con\_getaddrs()}}}}} -& -\sphinxAtStartPar -H5l: If either of the pointers to local\_addr -and remote\_addr is not NULL, it is freed -first and then reallocated before being -populated with the content of corresponding -address from authentication context. -\\ -\sphinxhline -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_auth_con_setaddrs:c.krb5_auth_con_setaddrs}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_auth\_con\_setaddrs()}}}}} -& -\sphinxAtStartPar -H5l: If either address is NULL, the previous -address remains in place -\\ -\sphinxhline -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_auth_con_setports:c.krb5_auth_con_setports}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_auth\_con\_setports()}}}}} -& -\sphinxAtStartPar -H5l: Not implemented as of version 1.3.3 -\\ -\sphinxhline -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_auth_con_setrecvsubkey:c.krb5_auth_con_setrecvsubkey}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_auth\_con\_setrecvsubkey()}}}}} -& -\sphinxAtStartPar -H5l: If either port is NULL, the previous -port remains in place -\\ -\sphinxhline -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_auth_con_setsendsubkey:c.krb5_auth_con_setsendsubkey}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_auth\_con\_setsendsubkey()}}}}} -& -\sphinxAtStartPar -H5l: Not implemented as of version 1.3.3 -\\ -\sphinxhline -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_cc_set_config:c.krb5_cc_set_config}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_cc\_set\_config()}}}}} -& -\sphinxAtStartPar -MIT: Before version 1.10 it was assumed that -the last argument \sphinxstyleemphasis{data} is ALWAYS non\sphinxhyphen{}zero. -\\ -\sphinxhline -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_cccol\_last\_change\_time()}} -& -\sphinxAtStartPar -MIT: not implemented -\\ -\sphinxhline -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_set_default_realm:c.krb5_set_default_realm}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_set\_default\_realm()}}}}} -& -\sphinxAtStartPar -H5l: Caches the computed default realm context -field. If the second argument is NULL, -it tries to retrieve it from libdefaults or DNS. -MIT: Computes the default realm each time -if it wasn’t explicitly set in the context -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\chapter{Initial credentials} -\label{\detokenize{appdev/init_creds:initial-credentials}}\label{\detokenize{appdev/init_creds::doc}} -\sphinxAtStartPar -Software that performs tasks such as logging users into a computer -when they type their Kerberos password needs to get initial -credentials (usually ticket granting tickets) from Kerberos. Such -software shares some behavior with the \DUrole{xref,std,std-ref}{kinit(1)} program. - -\sphinxAtStartPar -Whenever a program grants access to a resource (such as a local login -session on a desktop computer) based on a user successfully getting -initial Kerberos credentials, it must verify those credentials against -a secure shared secret (e.g., a host keytab) to ensure that the user -credentials actually originate from a legitimate KDC. Failure to -perform this verification is a critical vulnerability, because a -malicious user can execute the “Zanarotti attack”: the user constructs -a fake response that appears to come from the legitimate KDC, but -whose contents come from an attacker\sphinxhyphen{}controlled KDC. - -\sphinxAtStartPar -Some applications read a Kerberos password over the network (ideally -over a secure channel), which they then verify against the KDC. While -this technique may be the only practical way to integrate Kerberos -into some existing legacy systems, its use is contrary to the original -design goals of Kerberos. - -\sphinxAtStartPar -The function {\hyperref[\detokenize{appdev/refs/api/krb5_get_init_creds_password:c.krb5_get_init_creds_password}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_init\_creds\_password()}}}}} will get initial -credentials for a client using a password. An application that needs -to verify the credentials can call {\hyperref[\detokenize{appdev/refs/api/krb5_verify_init_creds:c.krb5_verify_init_creds}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_verify\_init\_creds()}}}}}. -Here is an example of code to obtain and verify TGT credentials, given -strings \sphinxstyleemphasis{princname} and \sphinxstyleemphasis{password} for the client principal name and -password: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{krb5\PYGZus{}error\PYGZus{}code} \PYG{n}{ret}\PYG{p}{;} -\PYG{n}{krb5\PYGZus{}creds} \PYG{n}{creds}\PYG{p}{;} -\PYG{n}{krb5\PYGZus{}principal} \PYG{n}{client\PYGZus{}princ} \PYG{o}{=} \PYG{n}{NULL}\PYG{p}{;} - -\PYG{n}{memset}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{n}{sizeof}\PYG{p}{(}\PYG{n}{creds}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}parse\PYGZus{}name}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{princname}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{client\PYGZus{}princ}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{n}{goto} \PYG{n}{cleanup}\PYG{p}{;} -\PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}password}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{n}{client\PYGZus{}princ}\PYG{p}{,} - \PYG{n}{password}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{n}{goto} \PYG{n}{cleanup}\PYG{p}{;} -\PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}verify\PYGZus{}init\PYGZus{}creds}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{cleanup}\PYG{p}{:} -\PYG{n}{krb5\PYGZus{}free\PYGZus{}principal}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{client\PYGZus{}princ}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{krb5\PYGZus{}free\PYGZus{}cred\PYGZus{}contents}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{return} \PYG{n}{ret}\PYG{p}{;} -\end{sphinxVerbatim} - - -\section{Options for get\_init\_creds} -\label{\detokenize{appdev/init_creds:options-for-get-init-creds}} -\sphinxAtStartPar -The function {\hyperref[\detokenize{appdev/refs/api/krb5_get_init_creds_password:c.krb5_get_init_creds_password}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_init\_creds\_password()}}}}} takes an options -parameter (which can be a null pointer). Use the function -{\hyperref[\detokenize{appdev/refs/api/krb5_get_init_creds_opt_alloc:c.krb5_get_init_creds_opt_alloc}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_init\_creds\_opt\_alloc()}}}}} to allocate an options -structure, and {\hyperref[\detokenize{appdev/refs/api/krb5_get_init_creds_opt_free:c.krb5_get_init_creds_opt_free}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_init\_creds\_opt\_free()}}}}} to free it. For -example: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{krb5\PYGZus{}error\PYGZus{}code} \PYG{n}{ret}\PYG{p}{;} -\PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}opt} \PYG{o}{*}\PYG{n}{opt} \PYG{o}{=} \PYG{n}{NULL}\PYG{p}{;} -\PYG{n}{krb5\PYGZus{}creds} \PYG{n}{creds}\PYG{p}{;} - -\PYG{n}{memset}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{n}{sizeof}\PYG{p}{(}\PYG{n}{creds}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}opt\PYGZus{}alloc}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{opt}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{n}{goto} \PYG{n}{cleanup}\PYG{p}{;} -\PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}opt\PYGZus{}set\PYGZus{}tkt\PYGZus{}life}\PYG{p}{(}\PYG{n}{opt}\PYG{p}{,} \PYG{l+m+mi}{24} \PYG{o}{*} \PYG{l+m+mi}{60} \PYG{o}{*} \PYG{l+m+mi}{60}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}password}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{n}{client\PYGZus{}princ}\PYG{p}{,} - \PYG{n}{password}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{opt}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{n}{goto} \PYG{n}{cleanup}\PYG{p}{;} - -\PYG{n}{cleanup}\PYG{p}{:} -\PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}opt\PYGZus{}free}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{opt}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{krb5\PYGZus{}free\PYGZus{}cred\PYGZus{}contents}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{return} \PYG{n}{ret}\PYG{p}{;} -\end{sphinxVerbatim} - - -\section{Getting anonymous credentials} -\label{\detokenize{appdev/init_creds:getting-anonymous-credentials}} -\sphinxAtStartPar -As of release 1.8, it is possible to obtain fully anonymous or -partially anonymous (realm\sphinxhyphen{}exposed) credentials, if the KDC supports -it. The MIT KDC supports issuing fully anonymous credentials as of -release 1.8 if configured appropriately (see \DUrole{xref,std,std-ref}{anonymous\_pkinit}), -but does not support issuing realm\sphinxhyphen{}exposed anonymous credentials at -this time. - -\sphinxAtStartPar -To obtain fully anonymous credentials, call -{\hyperref[\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_anonymous:c.krb5_get_init_creds_opt_set_anonymous}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_init\_creds\_opt\_set\_anonymous()}}}}} on the options -structure to set the anonymous flag, and specify a client principal -with the KDC’s realm and a single empty data component (the principal -obtained by parsing \sphinxcode{\sphinxupquote{@}}\sphinxstyleemphasis{realmname}). Authentication will take -place using anonymous PKINIT; if successful, the client principal of -the resulting tickets will be -\sphinxcode{\sphinxupquote{WELLKNOWN/ANONYMOUS@WELLKNOWN:ANONYMOUS}}. Here is an example: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}opt\PYGZus{}set\PYGZus{}anonymous}\PYG{p}{(}\PYG{n}{opt}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}build\PYGZus{}principal}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{client\PYGZus{}princ}\PYG{p}{,} \PYG{n}{strlen}\PYG{p}{(}\PYG{n}{myrealm}\PYG{p}{)}\PYG{p}{,} - \PYG{n}{myrealm}\PYG{p}{,} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} \PYG{p}{(}\PYG{n}{char} \PYG{o}{*}\PYG{p}{)}\PYG{n}{NULL}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{n}{goto} \PYG{n}{cleanup}\PYG{p}{;} -\PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}password}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{n}{client\PYGZus{}princ}\PYG{p}{,} - \PYG{n}{password}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{opt}\PYG{p}{)}\PYG{p}{;} -\PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{n}{goto} \PYG{n}{cleanup}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -To obtain realm\sphinxhyphen{}exposed anonymous credentials, set the anonymous flag -on the options structure as above, but specify a normal client -principal in order to prove membership in the realm. Authentication -will take place as it normally does; if successful, the client -principal of the resulting tickets will be \sphinxcode{\sphinxupquote{WELLKNOWN/ANONYMOUS@}}\sphinxstyleemphasis{realmname}. - - -\section{User interaction} -\label{\detokenize{appdev/init_creds:user-interaction}} -\sphinxAtStartPar -Authenticating a user usually requires the entry of secret -information, such as a password. A password can be supplied directly -to {\hyperref[\detokenize{appdev/refs/api/krb5_get_init_creds_password:c.krb5_get_init_creds_password}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_init\_creds\_password()}}}}} via the \sphinxstyleemphasis{password} -parameter, or the application can supply prompter and/or responder -callbacks instead. If callbacks are used, the user can also be -queried for other secret information such as a PIN, informed of -impending password expiration, or prompted to change a password which -has expired. - - -\subsection{Prompter callback} -\label{\detokenize{appdev/init_creds:prompter-callback}} -\sphinxAtStartPar -A prompter callback can be specified via the \sphinxstyleemphasis{prompter} and \sphinxstyleemphasis{data} -parameters to {\hyperref[\detokenize{appdev/refs/api/krb5_get_init_creds_password:c.krb5_get_init_creds_password}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_init\_creds\_password()}}}}}. The prompter -will be invoked each time the krb5 library has a question to ask or -information to present. When the prompter callback is invoked, the -\sphinxstyleemphasis{banner} argument (if not null) is intended to be displayed to the -user, and the questions to be answered are specified in the \sphinxstyleemphasis{prompts} -array. Each prompt contains a text question in the \sphinxstyleemphasis{prompt} field, a -\sphinxstyleemphasis{hidden} bit to indicate whether the answer should be hidden from -display, and a storage area for the answer in the \sphinxstyleemphasis{reply} field. The -callback should fill in each question’s \sphinxcode{\sphinxupquote{reply\sphinxhyphen{}\textgreater{}data}} with the -answer, up to a maximum number of \sphinxcode{\sphinxupquote{reply\sphinxhyphen{}\textgreater{}length}} bytes, and then -reset \sphinxcode{\sphinxupquote{reply\sphinxhyphen{}\textgreater{}length}} to the length of the answer. - -\sphinxAtStartPar -A prompter callback can call {\hyperref[\detokenize{appdev/refs/api/krb5_get_prompt_types:c.krb5_get_prompt_types}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_prompt\_types()}}}}} to get an -array of type constants corresponding to the prompts, to get -programmatic information about the semantic meaning of the questions. -{\hyperref[\detokenize{appdev/refs/api/krb5_get_prompt_types:c.krb5_get_prompt_types}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_prompt\_types()}}}}} may return a null pointer if no prompt -type information is available. - -\sphinxAtStartPar -Text\sphinxhyphen{}based applications can use a built\sphinxhyphen{}in text prompter -implementation by supplying {\hyperref[\detokenize{appdev/refs/api/krb5_prompter_posix:c.krb5_prompter_posix}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_prompter\_posix()}}}}} as the -\sphinxstyleemphasis{prompter} parameter and a null pointer as the \sphinxstyleemphasis{data} parameter. For -example: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}password}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{n}{client\PYGZus{}princ}\PYG{p}{,} - \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{krb5\PYGZus{}prompter\PYGZus{}posix}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} - \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - - -\subsection{Responder callback} -\label{\detokenize{appdev/init_creds:responder-callback}} -\sphinxAtStartPar -A responder callback can be specified through the init\_creds options -using the {\hyperref[\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_responder:c.krb5_get_init_creds_opt_set_responder}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_get\_init\_creds\_opt\_set\_responder()}}}}} function. -Responder callbacks can present a more sophisticated user interface -for authentication secrets. The responder callback is usually invoked -only once per authentication, with a list of questions produced by all -of the allowed preauthentication mechanisms. - -\sphinxAtStartPar -When the responder callback is invoked, the \sphinxstyleemphasis{rctx} argument can be -accessed to obtain the list of questions and to answer them. The -{\hyperref[\detokenize{appdev/refs/api/krb5_responder_list_questions:c.krb5_responder_list_questions}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_responder\_list\_questions()}}}}} function retrieves an array of -question types. For each question type, the -{\hyperref[\detokenize{appdev/refs/api/krb5_responder_get_challenge:c.krb5_responder_get_challenge}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_responder\_get\_challenge()}}}}} function retrieves additional -information about the question, if applicable, and the -{\hyperref[\detokenize{appdev/refs/api/krb5_responder_set_answer:c.krb5_responder_set_answer}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_responder\_set\_answer()}}}}} function sets the answer. - -\sphinxAtStartPar -Responder question types, challenges, and answers are UTF\sphinxhyphen{}8 strings. -The question type is a well\sphinxhyphen{}known string; the meaning of the challenge -and answer depend on the question type. If an application does not -understand a question type, it cannot interpret the challenge or -provide an answer. Failing to answer a question typically results in -the prompter callback being used as a fallback. - - -\subsubsection{Password question} -\label{\detokenize{appdev/init_creds:password-question}} -\sphinxAtStartPar -The \sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_QUESTION\_PASSWORD}} (or \sphinxcode{\sphinxupquote{"password"}}) -question type requests the user’s password. This question does not -have a challenge, and the response is simply the password string. - - -\subsubsection{One\sphinxhyphen{}time password question} -\label{\detokenize{appdev/init_creds:one-time-password-question}} -\sphinxAtStartPar -The \sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_QUESTION\_OTP}} (or \sphinxcode{\sphinxupquote{"otp"}}) question -type requests a choice among one\sphinxhyphen{}time password tokens and the PIN and -value for the chosen token. The challenge and answer are JSON\sphinxhyphen{}encoded -strings, but an application can use convenience functions to avoid -doing any JSON processing itself. - -\sphinxAtStartPar -The {\hyperref[\detokenize{appdev/refs/api/krb5_responder_otp_get_challenge:c.krb5_responder_otp_get_challenge}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_responder\_otp\_get\_challenge()}}}}} function decodes the -challenge into a krb5\_responder\_otp\_challenge structure. The -{\hyperref[\detokenize{appdev/refs/api/krb5_responder_otp_set_answer:c.krb5_responder_otp_set_answer}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_responder\_otp\_set\_answer()}}}}} function selects one of the -token information elements from the challenge and supplies the value -and pin for that token. - - -\subsubsection{PKINIT password or PIN question} -\label{\detokenize{appdev/init_creds:pkinit-password-or-pin-question}} -\sphinxAtStartPar -The \sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_QUESTION\_PKINIT}} (or \sphinxcode{\sphinxupquote{"pkinit"}}) question -type requests PINs for hardware devices and/or passwords for encrypted -credentials which are stored on disk, potentially also supplying -information about the state of the hardware devices. The challenge and -answer are JSON\sphinxhyphen{}encoded strings, but an application can use convenience -functions to avoid doing any JSON processing itself. - -\sphinxAtStartPar -The {\hyperref[\detokenize{appdev/refs/api/krb5_responder_pkinit_get_challenge:c.krb5_responder_pkinit_get_challenge}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_responder\_pkinit\_get\_challenge()}}}}} function decodes the -challenges into a krb5\_responder\_pkinit\_challenge structure. The -{\hyperref[\detokenize{appdev/refs/api/krb5_responder_pkinit_set_answer:c.krb5_responder_pkinit_set_answer}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_responder\_pkinit\_set\_answer()}}}}} function can be used to -supply the PIN or password for a particular client credential, and can -be called multiple times. - - -\subsubsection{Example} -\label{\detokenize{appdev/init_creds:example}} -\sphinxAtStartPar -Here is an example of using a responder callback: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{static} \PYG{n}{krb5\PYGZus{}error\PYGZus{}code} -\PYG{n}{my\PYGZus{}responder}\PYG{p}{(}\PYG{n}{krb5\PYGZus{}context} \PYG{n}{context}\PYG{p}{,} \PYG{n}{void} \PYG{o}{*}\PYG{n}{data}\PYG{p}{,} - \PYG{n}{krb5\PYGZus{}responder\PYGZus{}context} \PYG{n}{rctx}\PYG{p}{)} -\PYG{p}{\PYGZob{}} - \PYG{n}{krb5\PYGZus{}error\PYGZus{}code} \PYG{n}{ret}\PYG{p}{;} - \PYG{n}{krb5\PYGZus{}responder\PYGZus{}otp\PYGZus{}challenge} \PYG{o}{*}\PYG{n}{chl}\PYG{p}{;} - - \PYG{k}{if} \PYG{p}{(}\PYG{n}{krb5\PYGZus{}responder\PYGZus{}get\PYGZus{}challenge}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{rctx}\PYG{p}{,} - \PYG{n}{KRB5\PYGZus{}RESPONDER\PYGZus{}QUESTION\PYGZus{}PASSWORD}\PYG{p}{)}\PYG{p}{)} \PYG{p}{\PYGZob{}} - \PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}responder\PYGZus{}set\PYGZus{}answer}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{rctx}\PYG{p}{,} - \PYG{n}{KRB5\PYGZus{}RESPONDER\PYGZus{}QUESTION\PYGZus{}PASSWORD}\PYG{p}{,} - \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{open sesame}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{;} - \PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{k}{return} \PYG{n}{ret}\PYG{p}{;} - \PYG{p}{\PYGZcb{}} - \PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}responder\PYGZus{}otp\PYGZus{}get\PYGZus{}challenge}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{rctx}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{chl}\PYG{p}{)}\PYG{p}{;} - \PYG{k}{if} \PYG{p}{(}\PYG{n}{ret} \PYG{o}{==} \PYG{l+m+mi}{0} \PYG{o}{\PYGZam{}}\PYG{o}{\PYGZam{}} \PYG{n}{chl} \PYG{o}{!=} \PYG{n}{NULL}\PYG{p}{)} \PYG{p}{\PYGZob{}} - \PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}responder\PYGZus{}otp\PYGZus{}set\PYGZus{}answer}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{rctx}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{1234}\PYG{l+s+s2}{\PYGZdq{}}\PYG{p}{,} - \PYG{n}{NULL}\PYG{p}{)}\PYG{p}{;} - \PYG{n}{krb5\PYGZus{}responder\PYGZus{}otp\PYGZus{}challenge\PYGZus{}free}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{rctx}\PYG{p}{,} \PYG{n}{chl}\PYG{p}{)}\PYG{p}{;} - \PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{k}{return} \PYG{n}{ret}\PYG{p}{;} - \PYG{p}{\PYGZcb{}} - \PYG{k}{return} \PYG{l+m+mi}{0}\PYG{p}{;} -\PYG{p}{\PYGZcb{}} - -\PYG{n}{static} \PYG{n}{krb5\PYGZus{}error\PYGZus{}code} -\PYG{n}{get\PYGZus{}creds}\PYG{p}{(}\PYG{n}{krb5\PYGZus{}context} \PYG{n}{context}\PYG{p}{,} \PYG{n}{krb5\PYGZus{}principal} \PYG{n}{client\PYGZus{}princ}\PYG{p}{)} -\PYG{p}{\PYGZob{}} - \PYG{n}{krb5\PYGZus{}error\PYGZus{}code} \PYG{n}{ret}\PYG{p}{;} - \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}opt} \PYG{o}{*}\PYG{n}{opt} \PYG{o}{=} \PYG{n}{NULL}\PYG{p}{;} - \PYG{n}{krb5\PYGZus{}creds} \PYG{n}{creds}\PYG{p}{;} - - \PYG{n}{memset}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{n}{sizeof}\PYG{p}{(}\PYG{n}{creds}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;} - \PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}opt\PYGZus{}alloc}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{opt}\PYG{p}{)}\PYG{p}{;} - \PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{n}{goto} \PYG{n}{cleanup}\PYG{p}{;} - \PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}opt\PYGZus{}set\PYGZus{}responder}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{opt}\PYG{p}{,} \PYG{n}{my\PYGZus{}responder}\PYG{p}{,} - \PYG{n}{NULL}\PYG{p}{)}\PYG{p}{;} - \PYG{k}{if} \PYG{p}{(}\PYG{n}{ret}\PYG{p}{)} - \PYG{n}{goto} \PYG{n}{cleanup}\PYG{p}{;} - \PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}password}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{n}{client\PYGZus{}princ}\PYG{p}{,} - \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{l+m+mi}{0}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{opt}\PYG{p}{)}\PYG{p}{;} - -\PYG{n}{cleanup}\PYG{p}{:} - \PYG{n}{krb5\PYGZus{}get\PYGZus{}init\PYGZus{}creds\PYGZus{}opt\PYGZus{}free}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{n}{opt}\PYG{p}{)}\PYG{p}{;} - \PYG{n}{krb5\PYGZus{}free\PYGZus{}cred\PYGZus{}contents}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{)}\PYG{p}{;} - \PYG{k}{return} \PYG{n}{ret}\PYG{p}{;} -\PYG{p}{\PYGZcb{}} -\end{sphinxVerbatim} - - -\section{Verifying initial credentials} -\label{\detokenize{appdev/init_creds:verifying-initial-credentials}} -\sphinxAtStartPar -Use the function {\hyperref[\detokenize{appdev/refs/api/krb5_verify_init_creds:c.krb5_verify_init_creds}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_verify\_init\_creds()}}}}} to verify initial -credentials. It takes an options structure (which can be a null -pointer). Use {\hyperref[\detokenize{appdev/refs/api/krb5_verify_init_creds_opt_init:c.krb5_verify_init_creds_opt_init}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_verify\_init\_creds\_opt\_init()}}}}} to initialize -the caller\sphinxhyphen{}allocated options structure, and -{\hyperref[\detokenize{appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail:c.krb5_verify_init_creds_opt_set_ap_req_nofail}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_verify\_init\_creds\_opt\_set\_ap\_req\_nofail()}}}}} to set the -“nofail” option. For example: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{n}{krb5\PYGZus{}verify\PYGZus{}init\PYGZus{}creds\PYGZus{}opt} \PYG{n}{vopt}\PYG{p}{;} - -\PYG{n}{krb5\PYGZus{}verify\PYGZus{}init\PYGZus{}creds\PYGZus{}opt\PYGZus{}init}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{vopt}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{krb5\PYGZus{}verify\PYGZus{}init\PYGZus{}creds\PYGZus{}opt\PYGZus{}set\PYGZus{}ap\PYGZus{}req\PYGZus{}nofail}\PYG{p}{(}\PYG{o}{\PYGZam{}}\PYG{n}{vopt}\PYG{p}{,} \PYG{l+m+mi}{1}\PYG{p}{)}\PYG{p}{;} -\PYG{n}{ret} \PYG{o}{=} \PYG{n}{krb5\PYGZus{}verify\PYGZus{}init\PYGZus{}creds}\PYG{p}{(}\PYG{n}{context}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{creds}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{n}{NULL}\PYG{p}{,} \PYG{o}{\PYGZam{}}\PYG{n}{vopt}\PYG{p}{)}\PYG{p}{;} -\end{sphinxVerbatim} - -\sphinxAtStartPar -The confusingly named “nofail” option, when set, means that the -verification must actually succeed in order for -{\hyperref[\detokenize{appdev/refs/api/krb5_verify_init_creds:c.krb5_verify_init_creds}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_verify\_init\_creds()}}}}} to indicate success. The default -state of this option (cleared) means that if there is no key material -available to verify the user credentials, the verification will -succeed anyway. (The default can be changed by a configuration file -setting.) - -\sphinxAtStartPar -This accommodates a use case where a large number of unkeyed shared -desktop workstations need to allow users to log in using Kerberos. -The security risks from this practice are mitigated by the absence of -valuable state on the shared workstations—any valuable resources -that the users would access reside on networked servers. - -\sphinxstepscope - - -\chapter{Principal manipulation and parsing} -\label{\detokenize{appdev/princ_handle:principal-manipulation-and-parsing}}\label{\detokenize{appdev/princ_handle::doc}} -\sphinxAtStartPar -Kerberos principal structure - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_principal\_data}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_principal}}}}} - -\sphinxAtStartPar -Create and free principal - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_build_principal:c.krb5_build_principal}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_build\_principal()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_build_principal_alloc_va:c.krb5_build_principal_alloc_va}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_build\_principal\_alloc\_va()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_build_principal_ext:c.krb5_build_principal_ext}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_build\_principal\_ext()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_copy_principal:c.krb5_copy_principal}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_copy\_principal()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_free_principal:c.krb5_free_principal}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_free\_principal()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_cc_get_principal:c.krb5_cc_get_principal}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_cc\_get\_principal()}}}}} - -\sphinxAtStartPar -Comparing - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_principal_compare:c.krb5_principal_compare}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_principal\_compare()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_principal_compare_flags:c.krb5_principal_compare_flags}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_principal\_compare\_flags()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_principal_compare_any_realm:c.krb5_principal_compare_any_realm}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_principal\_compare\_any\_realm()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_sname_match:c.krb5_sname_match}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_sname\_match()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_sname_to_principal:c.krb5_sname_to_principal}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_sname\_to\_principal()}}}}} - -\sphinxAtStartPar -Parsing: - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_parse_name:c.krb5_parse_name}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_parse\_name()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_parse_name_flags:c.krb5_parse_name_flags}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_parse\_name\_flags()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_unparse_name:c.krb5_unparse_name}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_unparse\_name()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_unparse_name_flags:c.krb5_unparse_name_flags}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_unparse\_name\_flags()}}}}} - -\sphinxAtStartPar -Utilities: - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_is_config_principal:c.krb5_is_config_principal}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_is\_config\_principal()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_kuserok:c.krb5_kuserok}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_kuserok()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_set_password:c.krb5_set_password}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_set\_password()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_set_password_using_ccache:c.krb5_set_password_using_ccache}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_set\_password\_using\_ccache()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_set_principal_realm:c.krb5_set_principal_realm}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_set\_principal\_realm()}}}}} - -\sphinxAtStartPar -{\hyperref[\detokenize{appdev/refs/api/krb5_realm_compare:c.krb5_realm_compare}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_realm\_compare()}}}}} - -\sphinxstepscope - - -\chapter{Complete reference \sphinxhyphen{} API and datatypes} -\label{\detokenize{appdev/refs/index:complete-reference-api-and-datatypes}}\label{\detokenize{appdev/refs/index::doc}} -\sphinxstepscope - - -\section{krb5 API} -\label{\detokenize{appdev/refs/api/index:krb5-api}}\label{\detokenize{appdev/refs/api/index::doc}} - -\subsection{Frequently used public interfaces} -\label{\detokenize{appdev/refs/api/index:frequently-used-public-interfaces}} -\sphinxstepscope - - -\subsubsection{krb5\_build\_principal \sphinxhyphen{} Build a principal name using null\sphinxhyphen{}terminated strings.} -\label{\detokenize{appdev/refs/api/krb5_build_principal:krb5-build-principal-build-a-principal-name-using-null-terminated-strings}}\label{\detokenize{appdev/refs/api/krb5_build_principal::doc}}\index{krb5\_build\_principal (C function)@\spxentry{krb5\_build\_principal}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_build_principal:c.krb5_build_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_build\_principal}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{princ}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{rlen}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}\sphinxparamcomma \DUrole{p}{...}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{princ} \sphinxhyphen{} Principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rlen} \sphinxhyphen{} Realm name length - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Realm name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Call krb5\_free\_principal() to free \sphinxstyleemphasis{princ} when it is no longer needed. - -\sphinxAtStartPar -Beginning with release 1.20, the name type of the principal will be inferred as \sphinxstylestrong{KRB5\_NT\_SRV\_INST} or \sphinxstylestrong{KRB5\_NT\_WELLKNOWN} based on the principal name. The type will be \sphinxstylestrong{KRB5\_NT\_PRINCIPAL} if a type cannot be inferred. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -krb5\_build\_principal() and krb5\_build\_principal\_alloc\_va() perform the same task. krb5\_build\_principal() takes variadic arguments. krb5\_build\_principal\_alloc\_va() takes a pre\sphinxhyphen{}computed \sphinxstyleemphasis{varargs} pointer. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_build\_principal\_alloc\_va \sphinxhyphen{} Build a principal name, using a precomputed variable argument list.} -\label{\detokenize{appdev/refs/api/krb5_build_principal_alloc_va:krb5-build-principal-alloc-va-build-a-principal-name-using-a-precomputed-variable-argument-list}}\label{\detokenize{appdev/refs/api/krb5_build_principal_alloc_va::doc}}\index{krb5\_build\_principal\_alloc\_va (C function)@\spxentry{krb5\_build\_principal\_alloc\_va}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_build_principal_alloc_va:c.krb5_build_principal_alloc_va}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_build\_principal\_alloc\_va}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{princ}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{rlen}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}\sphinxparamcomma \DUrole{n}{va\_list}\DUrole{w}{ }\DUrole{n}{ap}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{princ} \sphinxhyphen{} Principal structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rlen} \sphinxhyphen{} Realm name length - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Realm name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ap} \sphinxhyphen{} List of char * components, ending with NULL - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Similar to krb5\_build\_principal(), this function builds a principal name, but its name components are specified as a va\_list. - -\sphinxAtStartPar -Use krb5\_free\_principal() to deallocate \sphinxstyleemphasis{princ} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_build\_principal\_ext \sphinxhyphen{} Build a principal name using length\sphinxhyphen{}counted strings.} -\label{\detokenize{appdev/refs/api/krb5_build_principal_ext:krb5-build-principal-ext-build-a-principal-name-using-length-counted-strings}}\label{\detokenize{appdev/refs/api/krb5_build_principal_ext::doc}}\index{krb5\_build\_principal\_ext (C function)@\spxentry{krb5\_build\_principal\_ext}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_build_principal_ext:c.krb5_build_principal_ext}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_build\_principal\_ext}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{princ}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{rlen}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}\sphinxparamcomma \DUrole{p}{...}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{princ} \sphinxhyphen{} Principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rlen} \sphinxhyphen{} Realm name length - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Realm name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a principal from a length\sphinxhyphen{}counted string and a variable\sphinxhyphen{}length list of length\sphinxhyphen{}counted components. The list of components ends with the first 0 length argument (so it is not possible to specify an empty component with this function). Call krb5\_free\_principal() to free allocated memory for principal when it is no longer needed. - -\sphinxAtStartPar -Beginning with release 1.20, the name type of the principal will be inferred as \sphinxstylestrong{KRB5\_NT\_SRV\_INST} or \sphinxstylestrong{KRB5\_NT\_WELLKNOWN} based on the principal name. The type will be \sphinxstylestrong{KRB5\_NT\_PRINCIPAL} if a type cannot be inferred. - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_close \sphinxhyphen{} Close a credential cache handle.} -\label{\detokenize{appdev/refs/api/krb5_cc_close:krb5-cc-close-close-a-credential-cache-handle}}\label{\detokenize{appdev/refs/api/krb5_cc_close::doc}}\index{krb5\_cc\_close (C function)@\spxentry{krb5\_cc\_close}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_close:c.krb5_cc_close}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_close}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function closes a credential cache handle \sphinxstyleemphasis{cache} without affecting the contents of the cache. - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_default \sphinxhyphen{} Resolve the default credential cache name.} -\label{\detokenize{appdev/refs/api/krb5_cc_default:krb5-cc-default-resolve-the-default-credential-cache-name}}\label{\detokenize{appdev/refs/api/krb5_cc_default::doc}}\index{krb5\_cc\_default (C function)@\spxentry{krb5\_cc\_default}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_default:c.krb5_cc_default}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_default}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ccache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Pointer to credential cache name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KV5M\_CONTEXT Bad magic number for \_krb5\_context structure - -\item {} -\sphinxAtStartPar -KRB5\_FCC\_INTERNAL The name of the default credential cache cannot be obtained - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Create a handle to the default credential cache as given by krb5\_cc\_default\_name(). - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_default\_name \sphinxhyphen{} Return the name of the default credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_default_name:krb5-cc-default-name-return-the-name-of-the-default-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_default_name::doc}}\index{krb5\_cc\_default\_name (C function)@\spxentry{krb5\_cc\_default\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_default_name:c.krb5_cc_default_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_default\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Name of default credential cache for the current user. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Return a pointer to the default credential cache name for \sphinxstyleemphasis{context} , as determined by a prior call to krb5\_cc\_set\_default\_name(), by the KRB5CCNAME environment variable, by the default\_ccache\_name profile variable, or by the operating system or build\sphinxhyphen{}time default value. The returned value must not be modified or freed by the caller. The returned value becomes invalid when \sphinxstyleemphasis{context} is destroyed krb5\_free\_context() or if a subsequent call to krb5\_cc\_set\_default\_name() is made on \sphinxstyleemphasis{context} . - -\sphinxAtStartPar -The default credential cache name is cached in \sphinxstyleemphasis{context} between calls to this function, so if the value of KRB5CCNAME changes in the process environment after the first call to this function on, that change will not be reflected in later calls with the same context. The caller can invoke krb5\_cc\_set\_default\_name() with a NULL value of \sphinxstyleemphasis{name} to clear the cached value and force the default name to be recomputed. - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_destroy \sphinxhyphen{} Destroy a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_destroy:krb5-cc-destroy-destroy-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_destroy::doc}}\index{krb5\_cc\_destroy (C function)@\spxentry{krb5\_cc\_destroy}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_destroy:c.krb5_cc_destroy}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_destroy}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Permission errors - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function destroys any existing contents of \sphinxstyleemphasis{cache} and closes the handle to it. - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_dup \sphinxhyphen{} Duplicate ccache handle.} -\label{\detokenize{appdev/refs/api/krb5_cc_dup:krb5-cc-dup-duplicate-ccache-handle}}\label{\detokenize{appdev/refs/api/krb5_cc_dup::doc}}\index{krb5\_cc\_dup (C function)@\spxentry{krb5\_cc\_dup}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_dup:c.krb5_cc_dup}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_dup}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{in}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in} \sphinxhyphen{} Credential cache handle to be duplicated - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} - -\sphinxAtStartPar -Create a new handle referring to the same cache as \sphinxstyleemphasis{in} . The new handle and \sphinxstyleemphasis{in} can be closed independently. - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_get\_name \sphinxhyphen{} Retrieve the name, but not type of a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_get_name:krb5-cc-get-name-retrieve-the-name-but-not-type-of-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_get_name::doc}}\index{krb5\_cc\_get\_name (C function)@\spxentry{krb5\_cc\_get\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_get_name:c.krb5_cc_get_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_get\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -On success \sphinxhyphen{} the name of the credential cache. - -\end{itemize} - -\end{description}\end{quote} - -\begin{sphinxadmonition}{warning}{Warning:} -\sphinxAtStartPar -Returns the name of the credential cache. The result is an alias into \sphinxstyleemphasis{cache} and should not be freed or modified by the caller. This name does not include the cache type, so should not be used as input to krb5\_cc\_resolve(). -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_get\_principal \sphinxhyphen{} Get the default principal of a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_get_principal:krb5-cc-get-principal-get-the-default-principal-of-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_get_principal::doc}}\index{krb5\_cc\_get\_principal (C function)@\spxentry{krb5\_cc\_get\_principal}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_get_principal:c.krb5_cc_get_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_get\_principal}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{principal}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Primary principal - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Returns the default client principal of a credential cache as set by krb5\_cc\_initialize(). - -\sphinxAtStartPar -Use krb5\_free\_principal() to free \sphinxstyleemphasis{principal} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_get\_type \sphinxhyphen{} Retrieve the type of a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_get_type:krb5-cc-get-type-retrieve-the-type-of-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_get_type::doc}}\index{krb5\_cc\_get\_type (C function)@\spxentry{krb5\_cc\_get\_type}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_get_type:c.krb5_cc_get_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_get\_type}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -The type of a credential cache as an alias that must not be modified or freed by the caller. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_initialize \sphinxhyphen{} Initialize a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_initialize:krb5-cc-initialize-initialize-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_initialize::doc}}\index{krb5\_cc\_initialize (C function)@\spxentry{krb5\_cc\_initialize}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_initialize:c.krb5_cc_initialize}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_initialize}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Default principal name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -System errors; Permission errors; Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Destroy any existing contents of \sphinxstyleemphasis{cache} and initialize it for the default principal \sphinxstyleemphasis{principal} . - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_new\_unique \sphinxhyphen{} Create a new credential cache of the specified type with a unique name.} -\label{\detokenize{appdev/refs/api/krb5_cc_new_unique:krb5-cc-new-unique-create-a-new-credential-cache-of-the-specified-type-with-a-unique-name}}\label{\detokenize{appdev/refs/api/krb5_cc_new_unique::doc}}\index{krb5\_cc\_new\_unique (C function)@\spxentry{krb5\_cc\_new\_unique}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_new_unique:c.krb5_cc_new_unique}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_new\_unique}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{type}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{hint}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{id}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{type} \sphinxhyphen{} Credential cache type name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{hint} \sphinxhyphen{} Unused - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{id} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_resolve \sphinxhyphen{} Resolve a credential cache name.} -\label{\detokenize{appdev/refs/api/krb5_cc_resolve:krb5-cc-resolve-resolve-a-credential-cache-name}}\label{\detokenize{appdev/refs/api/krb5_cc_resolve::doc}}\index{krb5\_cc\_resolve (C function)@\spxentry{krb5\_cc\_resolve}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_resolve:c.krb5_cc_resolve}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_resolve}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{name} \sphinxhyphen{} Credential cache name to be resolved - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Fills in \sphinxstyleemphasis{cache} with a \sphinxstyleemphasis{cache} handle that corresponds to the name in \sphinxstyleemphasis{name} . \sphinxstyleemphasis{name} should be of the form \sphinxstylestrong{type:residual} , and \sphinxstyleemphasis{type} must be a type known to the library. If the \sphinxstyleemphasis{name} does not contain a colon, interpret it as a file name. - -\sphinxstepscope - - -\subsubsection{krb5\_change\_password \sphinxhyphen{} Change a password for an existing Kerberos account.} -\label{\detokenize{appdev/refs/api/krb5_change_password:krb5-change-password-change-a-password-for-an-existing-kerberos-account}}\label{\detokenize{appdev/refs/api/krb5_change_password::doc}}\index{krb5\_change\_password (C function)@\spxentry{krb5\_change\_password}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_change_password:c.krb5_change_password}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_change\_password}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{newpw}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{result\_code}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{result\_code\_string}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{result\_string}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Credentials for kadmin/changepw service - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{newpw} \sphinxhyphen{} New password - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{result\_code} \sphinxhyphen{} Numeric error code from server - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{result\_code\_string} \sphinxhyphen{} String equivalent to \sphinxstyleemphasis{result\_code} - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{result\_string} \sphinxhyphen{} Change password response from the KDC - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Change the password for the existing principal identified by \sphinxstyleemphasis{creds} . - -\sphinxAtStartPar -The possible values of the output \sphinxstyleemphasis{result\_code} are: -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_KPASSWD\_SUCCESS (0) \sphinxhyphen{} success - -\item {} -\sphinxAtStartPar -KRB5\_KPASSWD\_MALFORMED (1) \sphinxhyphen{} Malformed request error - -\item {} -\sphinxAtStartPar -KRB5\_KPASSWD\_HARDERROR (2) \sphinxhyphen{} Server error - -\item {} -\sphinxAtStartPar -KRB5\_KPASSWD\_AUTHERROR (3) \sphinxhyphen{} Authentication error - -\item {} -\sphinxAtStartPar -KRB5\_KPASSWD\_SOFTERROR (4) \sphinxhyphen{} Password change rejected - -\end{itemize} - -\sphinxstepscope - - -\subsubsection{krb5\_chpw\_message \sphinxhyphen{} Get a result message for changing or setting a password.} -\label{\detokenize{appdev/refs/api/krb5_chpw_message:krb5-chpw-message-get-a-result-message-for-changing-or-setting-a-password}}\label{\detokenize{appdev/refs/api/krb5_chpw_message::doc}}\index{krb5\_chpw\_message (C function)@\spxentry{krb5\_chpw\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_chpw_message:c.krb5_chpw_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_chpw\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{server\_string}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{message\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server\_string} \sphinxhyphen{} Data returned from the remote system - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{message\_out} \sphinxhyphen{} A message displayable to the user - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function processes the \sphinxstyleemphasis{server\_string} returned in the \sphinxstyleemphasis{result\_string} parameter of krb5\_change\_password(), krb5\_set\_password(), and related functions, and returns a displayable string. If \sphinxstyleemphasis{server\_string} contains Active Directory structured policy information, it will be converted into human\sphinxhyphen{}readable text. - -\sphinxAtStartPar -Use krb5\_free\_string() to free \sphinxstyleemphasis{message\_out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_expand\_hostname \sphinxhyphen{} Canonicalize a hostname, possibly using name service.} -\label{\detokenize{appdev/refs/api/krb5_expand_hostname:krb5-expand-hostname-canonicalize-a-hostname-possibly-using-name-service}}\label{\detokenize{appdev/refs/api/krb5_expand_hostname::doc}}\index{krb5\_expand\_hostname (C function)@\spxentry{krb5\_expand\_hostname}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_expand_hostname:c.krb5_expand_hostname}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_expand\_hostname}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{host}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{canonhost\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{host} \sphinxhyphen{} Input hostname - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{canonhost\_out} \sphinxhyphen{} Canonicalized hostname - -\end{description}\end{quote} - -\sphinxAtStartPar -This function canonicalizes orig\_hostname, possibly using name service lookups if configuration permits. Use krb5\_free\_string() to free \sphinxstyleemphasis{canonhost\_out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.15 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_config\_files \sphinxhyphen{} Free a list allocated by krb5\_get\_default\_config\_files()} -\label{\detokenize{appdev/refs/api/krb5_free_config_files:krb5-free-config-files-free-a-list-allocated-by-krb5-get-default-config-files}}\label{\detokenize{appdev/refs/api/krb5_free_config_files::doc}}\index{krb5\_free\_config\_files (C function)@\spxentry{krb5\_free\_config\_files}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_config_files:c.krb5_free_config_files}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_config\_files}}}}{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{filenames}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{filenames} \sphinxhyphen{} Configuration filename list - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.22 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_context \sphinxhyphen{} Free a krb5 library context.} -\label{\detokenize{appdev/refs/api/krb5_free_context:krb5-free-context-free-a-krb5-library-context}}\label{\detokenize{appdev/refs/api/krb5_free_context::doc}}\index{krb5\_free\_context (C function)@\spxentry{krb5\_free\_context}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_context:c.krb5_free_context}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_context}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees a \sphinxstyleemphasis{context} that was created by krb5\_init\_context() or krb5\_init\_secure\_context(). - -\sphinxstepscope - - -\subsubsection{krb5\_free\_error\_message \sphinxhyphen{} Free an error message generated by krb5\_get\_error\_message().} -\label{\detokenize{appdev/refs/api/krb5_free_error_message:krb5-free-error-message-free-an-error-message-generated-by-krb5-get-error-message}}\label{\detokenize{appdev/refs/api/krb5_free_error_message::doc}}\index{krb5\_free\_error\_message (C function)@\spxentry{krb5\_free\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_error_message:c.krb5_free_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{msg}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{msg} \sphinxhyphen{} Pointer to error message - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_principal \sphinxhyphen{} Free the storage assigned to a principal.} -\label{\detokenize{appdev/refs/api/krb5_free_principal:krb5-free-principal-free-the-storage-assigned-to-a-principal}}\label{\detokenize{appdev/refs/api/krb5_free_principal::doc}}\index{krb5\_free\_principal (C function)@\spxentry{krb5\_free\_principal}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_principal:c.krb5_free_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_principal}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Principal to be freed - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_fwd\_tgt\_creds \sphinxhyphen{} Get a forwarded TGT and format a KRB\sphinxhyphen{}CRED message.} -\label{\detokenize{appdev/refs/api/krb5_fwd_tgt_creds:krb5-fwd-tgt-creds-get-a-forwarded-tgt-and-format-a-krb-cred-message}}\label{\detokenize{appdev/refs/api/krb5_fwd_tgt_creds::doc}}\index{krb5\_fwd\_tgt\_creds (C function)@\spxentry{krb5\_fwd\_tgt\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_fwd_tgt_creds:c.krb5_fwd_tgt_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_fwd\_tgt\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rhost}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{client}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{server}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cc}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{forwardable}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{outbuf}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rhost} \sphinxhyphen{} Remote host - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{client} \sphinxhyphen{} Client principal of TGT - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Principal of server to receive TGT - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cc} \sphinxhyphen{} Credential cache handle (NULL to use default) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{forwardable} \sphinxhyphen{} Whether TGT should be forwardable - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outbuf} \sphinxhyphen{} KRB\sphinxhyphen{}CRED message - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -ENOMEM Insufficient memory - -\item {} -\sphinxAtStartPar -KRB5\_PRINC\_NOMATCH Requested principal and ticket do not match - -\item {} -\sphinxAtStartPar -KRB5\_NO\_TKT\_SUPPLIED Request did not supply a ticket - -\item {} -\sphinxAtStartPar -KRB5\_CC\_BADNAME Credential cache name or principal name malformed - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Get a TGT for use at the remote host \sphinxstyleemphasis{rhost} and format it into a KRB\sphinxhyphen{}CRED message. If \sphinxstyleemphasis{rhost} is NULL and \sphinxstyleemphasis{server} is of type KRB5\_NT\_SRV\_HST, the second component of \sphinxstyleemphasis{server} will be used. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_default\_realm \sphinxhyphen{} Retrieve the default realm.} -\label{\detokenize{appdev/refs/api/krb5_get_default_realm:krb5-get-default-realm-retrieve-the-default-realm}}\label{\detokenize{appdev/refs/api/krb5_get_default_realm::doc}}\index{krb5\_get\_default\_realm (C function)@\spxentry{krb5\_get\_default\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_default_realm:c.krb5_get_default_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_default\_realm}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{lrealm}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{lrealm} \sphinxhyphen{} Default realm name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Retrieves the default realm to be used if no user\sphinxhyphen{}specified realm is available. - -\sphinxAtStartPar -Use krb5\_free\_default\_realm() to free \sphinxstyleemphasis{lrealm} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_error\_message \sphinxhyphen{} Get the (possibly extended) error message for a code.} -\label{\detokenize{appdev/refs/api/krb5_get_error_message:krb5-get-error-message-get-the-possibly-extended-error-message-for-a-code}}\label{\detokenize{appdev/refs/api/krb5_get_error_message::doc}}\index{krb5\_get\_error\_message (C function)@\spxentry{krb5\_get\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_error_message:c.krb5_get_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\DUrole{n}{code}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{code} \sphinxhyphen{} Error code - -\end{description}\end{quote} - -\sphinxAtStartPar -The behavior of krb5\_get\_error\_message() is only defined the first time it is called after a failed call to a krb5 function using the same context, and only when the error code passed in is the same as that returned by the krb5 function. - -\sphinxAtStartPar -This function never returns NULL, so its result may be used unconditionally as a C string. - -\sphinxAtStartPar -The string returned by this function must be freed using krb5\_free\_error\_message() - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -Future versions may return the same string for the second and following calls. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_host\_realm \sphinxhyphen{} Get the Kerberos realm names for a host.} -\label{\detokenize{appdev/refs/api/krb5_get_host_realm:krb5-get-host-realm-get-the-kerberos-realm-names-for-a-host}}\label{\detokenize{appdev/refs/api/krb5_get_host_realm::doc}}\index{krb5\_get\_host\_realm (C function)@\spxentry{krb5\_get\_host\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_host_realm:c.krb5_get_host_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_host\_realm}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{host}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{realmsp}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{host} \sphinxhyphen{} Host name (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{realmsp} \sphinxhyphen{} Null\sphinxhyphen{}terminated list of realm names - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -ENOMEM Insufficient memory - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Fill in \sphinxstyleemphasis{realmsp} with a pointer to a null\sphinxhyphen{}terminated list of realm names. If there are no known realms for the host, a list containing the referral (empty) realm is returned. - -\sphinxAtStartPar -If \sphinxstyleemphasis{host} is NULL, the local host’s realms are determined. - -\sphinxAtStartPar -Use krb5\_free\_host\_realm() to release \sphinxstyleemphasis{realmsp} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_credentials \sphinxhyphen{} Get an additional ticket.} -\label{\detokenize{appdev/refs/api/krb5_get_credentials:krb5-get-credentials-get-an-additional-ticket}}\label{\detokenize{appdev/refs/api/krb5_get_credentials::doc}}\index{krb5\_get\_credentials (C function)@\spxentry{krb5\_get\_credentials}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_credentials:c.krb5_get_credentials}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_credentials}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{out\_creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{options} \sphinxhyphen{} Options - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_creds} \sphinxhyphen{} Input credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out\_creds} \sphinxhyphen{} Output updated credentials - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use \sphinxstyleemphasis{ccache} or a TGS exchange to get a service ticket matching \sphinxstyleemphasis{in\_creds} . - -\sphinxAtStartPar -Valid values for \sphinxstyleemphasis{options} are: -\begin{quote} -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_GC\_CACHED Search only credential cache for the ticket - -\item {} -\sphinxAtStartPar -KRB5\_GC\_USER\_USER Return a user to user authentication ticket - -\end{itemize} - -\sphinxAtStartPar -\sphinxstyleemphasis{in\_creds} must be non\sphinxhyphen{}null. \sphinxstyleemphasis{in\_creds\sphinxhyphen{}\textgreater{}client} and \sphinxstyleemphasis{in\_creds\sphinxhyphen{}\textgreater{}server} must be filled in to specify the client and the server respectively. If any authorization data needs to be requested for the service ticket (such as restrictions on how the ticket can be used), specify it in \sphinxstyleemphasis{in\_creds\sphinxhyphen{}\textgreater{}authdata} ; otherwise set \sphinxstyleemphasis{in\_creds\sphinxhyphen{}\textgreater{}authdata} to NULL. The session key type is specified in \sphinxstyleemphasis{in\_creds\sphinxhyphen{}\textgreater{}keyblock.enctype} , if it is nonzero. -\end{quote} - -\sphinxAtStartPar -If \sphinxstyleemphasis{in\_creds\sphinxhyphen{}\textgreater{}times.endtime} is specified, it is used as the requested expiration date if a TGS request is made. If \sphinxstyleemphasis{in\_creds\sphinxhyphen{}\textgreater{}times.endtime} is set to 0, the latest possible expiration date will be requested. The KDC or cache may return a ticket with an earlier expiration date. - -\sphinxAtStartPar -Any returned ticket and intermediate ticket\sphinxhyphen{}granting tickets are stored in \sphinxstyleemphasis{ccache} . - -\sphinxAtStartPar -Use krb5\_free\_creds() to free \sphinxstyleemphasis{out\_creds} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_default\_config\_files \sphinxhyphen{} Return a list of default configuration filenames.} -\label{\detokenize{appdev/refs/api/krb5_get_default_config_files:krb5-get-default-config-files-return-a-list-of-default-configuration-filenames}}\label{\detokenize{appdev/refs/api/krb5_get_default_config_files::doc}}\index{krb5\_get\_default\_config\_files (C function)@\spxentry{krb5\_get\_default\_config\_files}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_default_config_files:c.krb5_get_default_config_files}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_default\_config\_files}}}}{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{filenames}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{filenames} \sphinxhyphen{} Configuration filename list - -\end{description}\end{quote} - -\sphinxAtStartPar -Fill in \sphinxstyleemphasis{filenames} with a null\sphinxhyphen{}terminated list of configuration files which will be read by krb5\_init\_context() in the current process environment. - -\sphinxAtStartPar -Use krb5\_free\_config\_files() to free \sphinxstyleemphasis{filenames} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.22 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_fallback\_host\_realm} -\label{\detokenize{appdev/refs/api/krb5_get_fallback_host_realm:krb5-get-fallback-host-realm}}\label{\detokenize{appdev/refs/api/krb5_get_fallback_host_realm::doc}}\index{krb5\_get\_fallback\_host\_realm (C function)@\spxentry{krb5\_get\_fallback\_host\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_fallback_host_realm:c.krb5_get_fallback_host_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_fallback\_host\_realm}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{hdata}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{realmsp}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{hdata} \sphinxhyphen{} Host name (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{realmsp} \sphinxhyphen{} Null\sphinxhyphen{}terminated list of realm names - -\end{description}\end{quote} - -\sphinxAtStartPar -Fill in \sphinxstyleemphasis{realmsp} with a pointer to a null\sphinxhyphen{}terminated list of realm names obtained through heuristics or insecure resolution methods which have lower priority than KDC referrals. - -\sphinxAtStartPar -If \sphinxstyleemphasis{host} is NULL, the local host’s realms are determined. - -\sphinxAtStartPar -Use krb5\_free\_host\_realm() to release \sphinxstyleemphasis{realmsp} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_keytab \sphinxhyphen{} Get initial credentials using a key table.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_keytab:krb5-get-init-creds-keytab-get-initial-credentials-using-a-key-table}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_keytab::doc}}\index{krb5\_get\_init\_creds\_keytab (C function)@\spxentry{krb5\_get\_init\_creds\_keytab}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_keytab:c.krb5_get_init_creds_keytab}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_keytab}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{client}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{arg\_keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}]{\sphinxcrossref{\DUrole{n}{krb5\_deltat}}}}\DUrole{w}{ }\DUrole{n}{start\_time}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_tkt\_service}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k5\_gic\_options}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds} \sphinxhyphen{} New credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{client} \sphinxhyphen{} Client principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{arg\_keytab} \sphinxhyphen{} Key table handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{start\_time} \sphinxhyphen{} Time when ticket becomes valid (0 for now) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_tkt\_service} \sphinxhyphen{} Service name of initial credentials (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{k5\_gic\_options} \sphinxhyphen{} Initial credential options - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function requests KDC for an initial credentials for \sphinxstyleemphasis{client} using a client key stored in \sphinxstyleemphasis{arg\_keytab} . If \sphinxstyleemphasis{in\_tkt\_service} is specified, it is parsed as a principal name (with the realm ignored) and used as the service principal for the request; otherwise the ticket\sphinxhyphen{}granting service is used. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_alloc \sphinxhyphen{} Allocate a new initial credential options structure.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_alloc:krb5-get-init-creds-opt-alloc-allocate-a-new-initial-credential-options-structure}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_alloc::doc}}\index{krb5\_get\_init\_creds\_opt\_alloc (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_alloc}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_alloc:c.krb5_get_init_creds_opt_alloc}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_alloc}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{opt}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{opt} \sphinxhyphen{} New options structure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 \sphinxhyphen{} Success; Kerberos errors otherwise. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is the preferred way to create an options structure for getting initial credentials, and is required to make use of certain options. Use krb5\_get\_init\_creds\_opt\_free() to free \sphinxstyleemphasis{opt} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_free \sphinxhyphen{} Free initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_free:krb5-get-init-creds-opt-free-free-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_free::doc}}\index{krb5\_get\_init\_creds\_opt\_free (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_free}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_free:c.krb5_get_init_creds_opt_free}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_free}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure to free - -\end{description}\end{quote} - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_get\_init\_creds\_opt\_alloc() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_get\_fast\_flags \sphinxhyphen{} Retrieve FAST flags from initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_get_fast_flags:krb5-get-init-creds-opt-get-fast-flags-retrieve-fast-flags-from-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_get_fast_flags::doc}}\index{krb5\_get\_init\_creds\_opt\_get\_fast\_flags (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_get\_fast\_flags}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_get_fast_flags:c.krb5_get_init_creds_opt_get_fast_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_get\_fast\_flags}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{out\_flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out\_flags} \sphinxhyphen{} FAST flags - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 \sphinxhyphen{} Success; Kerberos errors otherwise. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_address\_list \sphinxhyphen{} Set address restrictions in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_address_list:krb5-get-init-creds-opt-set-address-list-set-address-restrictions-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_address_list::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_address\_list (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_address\_list}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_address_list:c.krb5_get_init_creds_opt_set_address_list}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_address\_list}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{addresses}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{addresses} \sphinxhyphen{} Null\sphinxhyphen{}terminated array of addresses - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_anonymous \sphinxhyphen{} Set or unset the anonymous flag in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_anonymous:krb5-get-init-creds-opt-set-anonymous-set-or-unset-the-anonymous-flag-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_anonymous::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_anonymous (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_anonymous}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_anonymous:c.krb5_get_init_creds_opt_set_anonymous}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_anonymous}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{anonymous}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{anonymous} \sphinxhyphen{} Whether to make an anonymous request - -\end{description}\end{quote} - -\sphinxAtStartPar -This function may be used to request anonymous credentials from the KDC by setting \sphinxstyleemphasis{anonymous} to non\sphinxhyphen{}zero. Note that anonymous credentials are only a request; clients must verify that credentials are anonymous if that is a requirement. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_canonicalize \sphinxhyphen{} Set or unset the canonicalize flag in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_canonicalize:krb5-get-init-creds-opt-set-canonicalize-set-or-unset-the-canonicalize-flag-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_canonicalize::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_canonicalize (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_canonicalize}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_canonicalize:c.krb5_get_init_creds_opt_set_canonicalize}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_canonicalize}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{canonicalize}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{canonicalize} \sphinxhyphen{} Whether to canonicalize client principal - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_change\_password\_prompt \sphinxhyphen{} Set or unset change\sphinxhyphen{}password\sphinxhyphen{}prompt flag in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_change_password_prompt:krb5-get-init-creds-opt-set-change-password-prompt-set-or-unset-change-password-prompt-flag-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_change_password_prompt::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_change\_password\_prompt (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_change\_password\_prompt}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_change_password_prompt:c.krb5_get_init_creds_opt_set_change_password_prompt}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_change\_password\_prompt}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{prompt}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{prompt} \sphinxhyphen{} Whether to prompt to change password - -\end{description}\end{quote} - -\sphinxAtStartPar -This flag is on by default. It controls whether krb5\_get\_init\_creds\_password() will react to an expired\sphinxhyphen{}password error by prompting for a new password and attempting to change the old one. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_etype\_list \sphinxhyphen{} Set allowable encryption types in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_etype_list:krb5-get-init-creds-opt-set-etype-list-set-allowable-encryption-types-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_etype_list::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_etype\_list (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_etype\_list}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_etype_list:c.krb5_get_init_creds_opt_set_etype_list}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_etype\_list}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{etype\_list}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{etype\_list\_length}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{etype\_list} \sphinxhyphen{} Array of encryption types - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{etype\_list\_length} \sphinxhyphen{} Length of \sphinxstyleemphasis{etype\_list} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_expire\_callback \sphinxhyphen{} Set an expiration callback in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_expire_callback:krb5-get-init-creds-opt-set-expire-callback-set-an-expiration-callback-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_expire_callback::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_expire\_callback (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_expire\_callback}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_expire_callback:c.krb5_get_init_creds_opt_set_expire_callback}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_expire\_callback}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_expire_callback_func:c.krb5_expire_callback_func}]{\sphinxcrossref{\DUrole{n}{krb5\_expire\_callback\_func}}}}\DUrole{w}{ }\DUrole{n}{cb}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cb} \sphinxhyphen{} Callback function - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Callback argument - -\end{description}\end{quote} - -\sphinxAtStartPar -Set a callback to receive password and account expiration times. -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{cb} will be invoked if and only if credentials are successfully acquired. The callback will receive the \sphinxstyleemphasis{context} from the calling function and the \sphinxstyleemphasis{data} argument supplied with this API. The remaining arguments should be interpreted as follows: -\end{quote} - -\sphinxAtStartPar -If \sphinxstyleemphasis{is\_last\_req} is true, then the KDC reply contained last\sphinxhyphen{}req entries which unambiguously indicated the password expiration, account expiration, or both. (If either value was not present, the corresponding argument will be 0.) Furthermore, a non\sphinxhyphen{}zero \sphinxstyleemphasis{password\_expiration} should be taken as a suggestion from the KDC that a warning be displayed. - -\sphinxAtStartPar -If \sphinxstyleemphasis{is\_last\_req} is false, then \sphinxstyleemphasis{account\_expiration} will be 0 and \sphinxstyleemphasis{password\_expiration} will contain the expiration time of either the password or account, or 0 if no expiration time was indicated in the KDC reply. The callback should independently decide whether to display a password expiration warning. - -\sphinxAtStartPar -Note that \sphinxstyleemphasis{cb} may be invoked even if credentials are being acquired for the kadmin/changepw service in order to change the password. It is the caller’s responsibility to avoid displaying a password expiry warning in this case. - -\begin{sphinxadmonition}{warning}{Warning:} -\sphinxAtStartPar -Setting an expire callback with this API will cause krb5\_get\_init\_creds\_password() not to send password expiry warnings to the prompter, as it ordinarily may. -\end{sphinxadmonition} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_fast\_ccache \sphinxhyphen{} Set FAST armor cache in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache:krb5-get-init-creds-opt-set-fast-ccache-set-fast-armor-cache-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_fast\_ccache (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_fast\_ccache}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache:c.krb5_get_init_creds_opt_set_fast_ccache}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_fast\_ccache}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is similar to krb5\_get\_init\_creds\_opt\_set\_fast\_ccache\_name(), but uses a credential cache handle instead of a name. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_fast\_ccache\_name \sphinxhyphen{} Set location of FAST armor ccache in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache_name:krb5-get-init-creds-opt-set-fast-ccache-name-set-location-of-fast-armor-ccache-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache_name::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_fast\_ccache\_name (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_fast\_ccache\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_fast_ccache_name:c.krb5_get_init_creds_opt_set_fast_ccache_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_fast\_ccache\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{fast\_ccache\_name}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fast\_ccache\_name} \sphinxhyphen{} Credential cache name - -\end{description}\end{quote} - -\sphinxAtStartPar -Sets the location of a credential cache containing an armor ticket to protect an initial credential exchange using the FAST protocol extension. - -\sphinxAtStartPar -In version 1.7, setting an armor ccache requires that FAST be used for the exchange. In version 1.8 or later, setting the armor ccache causes FAST to be used if the KDC supports it; krb5\_get\_init\_creds\_opt\_set\_fast\_flags() must be used to require that FAST be used. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_fast\_flags \sphinxhyphen{} Set FAST flags in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_fast_flags:krb5-get-init-creds-opt-set-fast-flags-set-fast-flags-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_fast_flags::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_fast\_flags (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_fast\_flags}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_fast_flags:c.krb5_get_init_creds_opt_set_fast_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_fast\_flags}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} FAST flags - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 \sphinxhyphen{} Success; Kerberos errors otherwise. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -The following flag values are valid: -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_FAST\_REQUIRED \sphinxhyphen{} Require FAST to be used - -\end{itemize} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_forwardable \sphinxhyphen{} Set or unset the forwardable flag in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_forwardable:krb5-get-init-creds-opt-set-forwardable-set-or-unset-the-forwardable-flag-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_forwardable::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_forwardable (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_forwardable}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_forwardable:c.krb5_get_init_creds_opt_set_forwardable}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_forwardable}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{forwardable}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{forwardable} \sphinxhyphen{} Whether credentials should be forwardable - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_in\_ccache \sphinxhyphen{} Set an input credential cache in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_in_ccache:krb5-get-init-creds-opt-set-in-ccache-set-an-input-credential-cache-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_in_ccache::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_in\_ccache (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_in\_ccache}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_in_ccache:c.krb5_get_init_creds_opt_set_in_ccache}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_in\_ccache}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} - -\sphinxAtStartPar -If an input credential cache is set, then the krb5\_get\_init\_creds family of APIs will read settings from it. Setting an input ccache is desirable when the application wishes to perform authentication in the same way (using the same preauthentication mechanisms, and making the same non\sphinxhyphen{}security\sphinxhyphen{} sensitive choices) as the previous authentication attempt, which stored information in the passed\sphinxhyphen{}in ccache. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_out\_ccache \sphinxhyphen{} Set an output credential cache in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_out_ccache:krb5-get-init-creds-opt-set-out-ccache-set-an-output-credential-cache-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_out_ccache::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_out\_ccache (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_out\_ccache}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_out_ccache:c.krb5_get_init_creds_opt_set_out_ccache}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_out\_ccache}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} - -\sphinxAtStartPar -If an output credential cache is set, then the krb5\_get\_init\_creds family of APIs will write credentials to it. Setting an output ccache is desirable both because it simplifies calling code and because it permits the krb5\_get\_init\_creds APIs to write out configuration information about the realm to the ccache. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_pa \sphinxhyphen{} Supply options for preauthentication in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_pa:krb5-get-init-creds-opt-set-pa-supply-options-for-preauthentication-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_pa::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_pa (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_pa}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_pa:c.krb5_get_init_creds_opt_set_pa}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_pa}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{attr}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{value}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{attr} \sphinxhyphen{} Preauthentication option name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{value} \sphinxhyphen{} Preauthentication option value - -\end{description}\end{quote} - -\sphinxAtStartPar -This function allows the caller to supply options for preauthentication. The values of \sphinxstyleemphasis{attr} and \sphinxstyleemphasis{value} are supplied to each preauthentication module available within \sphinxstyleemphasis{context} . - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_pac\_request \sphinxhyphen{} Ask the KDC to include or not include a PAC in the ticket.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_pac_request:krb5-get-init-creds-opt-set-pac-request-ask-the-kdc-to-include-or-not-include-a-pac-in-the-ticket}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_pac_request::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_pac\_request (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_pac\_request}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_pac_request:c.krb5_get_init_creds_opt_set_pac_request}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_pac\_request}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{n}{req\_pac}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{req\_pac} \sphinxhyphen{} Whether to request a PAC or not - -\end{description}\end{quote} - -\sphinxAtStartPar -If this option is set, the AS request will include a PAC\sphinxhyphen{}REQUEST pa\sphinxhyphen{}data item explicitly asking the KDC to either include or not include a privilege attribute certificate in the ticket authorization data. By default, no request is made; typically the KDC will default to including a PAC if it supports them. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.15 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_preauth\_list \sphinxhyphen{} Set preauthentication types in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_preauth_list:krb5-get-init-creds-opt-set-preauth-list-set-preauthentication-types-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_preauth_list::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_preauth\_list (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_preauth\_list}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_preauth_list:c.krb5_get_init_creds_opt_set_preauth_list}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_preauth\_list}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_preauthtype:c.krb5_preauthtype}]{\sphinxcrossref{\DUrole{n}{krb5\_preauthtype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{preauth\_list}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{preauth\_list\_length}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{preauth\_list} \sphinxhyphen{} Array of preauthentication types - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{preauth\_list\_length} \sphinxhyphen{} Length of \sphinxstyleemphasis{preauth\_list} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function can be used to perform optimistic preauthentication when getting initial credentials, in combination with krb5\_get\_init\_creds\_opt\_set\_salt() and krb5\_get\_init\_creds\_opt\_set\_pa(). - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_proxiable \sphinxhyphen{} Set or unset the proxiable flag in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_proxiable:krb5-get-init-creds-opt-set-proxiable-set-or-unset-the-proxiable-flag-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_proxiable::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_proxiable (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_proxiable}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_proxiable:c.krb5_get_init_creds_opt_set_proxiable}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_proxiable}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{proxiable}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{proxiable} \sphinxhyphen{} Whether credentials should be proxiable - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_renew\_life \sphinxhyphen{} Set the ticket renewal lifetime in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_renew_life:krb5-get-init-creds-opt-set-renew-life-set-the-ticket-renewal-lifetime-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_renew_life::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_renew\_life (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_renew\_life}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_renew_life:c.krb5_get_init_creds_opt_set_renew_life}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_renew\_life}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}]{\sphinxcrossref{\DUrole{n}{krb5\_deltat}}}}\DUrole{w}{ }\DUrole{n}{renew\_life}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Pointer to \sphinxstyleemphasis{options} field - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{renew\_life} \sphinxhyphen{} Ticket renewal lifetime - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_responder \sphinxhyphen{} Set the responder function in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_responder:krb5-get-init-creds-opt-set-responder-set-the-responder-function-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_responder::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_responder (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_responder}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_responder:c.krb5_get_init_creds_opt_set_responder}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_responder}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_fn:c.krb5_responder_fn}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_fn}}}}\DUrole{w}{ }\DUrole{n}{responder}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{responder} \sphinxhyphen{} Responder function - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Responder data argument - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_salt \sphinxhyphen{} Set salt for optimistic preauthentication in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_salt:krb5-get-init-creds-opt-set-salt-set-salt-for-optimistic-preauthentication-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_salt::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_salt (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_salt}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_salt:c.krb5_get_init_creds_opt_set_salt}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_salt}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{salt}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{salt} \sphinxhyphen{} Salt data - -\end{description}\end{quote} - -\sphinxAtStartPar -When getting initial credentials with a password, a salt string it used to convert the password to a key. Normally this salt is obtained from the first KDC reply, but when performing optimistic preauthentication, the client may need to supply the salt string with this function. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_set\_tkt\_life \sphinxhyphen{} Set the ticket lifetime in initial credential options.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_tkt_life:krb5-get-init-creds-opt-set-tkt-life-set-the-ticket-lifetime-in-initial-credential-options}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_tkt_life::doc}}\index{krb5\_get\_init\_creds\_opt\_set\_tkt\_life (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_set\_tkt\_life}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_set_tkt_life:c.krb5_get_init_creds_opt_set_tkt_life}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_set\_tkt\_life}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}]{\sphinxcrossref{\DUrole{n}{krb5\_deltat}}}}\DUrole{w}{ }\DUrole{n}{tkt\_life}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{tkt\_life} \sphinxhyphen{} Ticket lifetime - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_password \sphinxhyphen{} Get initial credentials using a password.} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_password:krb5-get-init-creds-password-get-initial-credentials-using-a-password}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_password::doc}}\index{krb5\_get\_init\_creds\_password (C function)@\spxentry{krb5\_get\_init\_creds\_password}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_password:c.krb5_get_init_creds_password}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_password}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{client}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{password}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_prompter_fct:c.krb5_prompter_fct}]{\sphinxcrossref{\DUrole{n}{krb5\_prompter\_fct}}}}\DUrole{w}{ }\DUrole{n}{prompter}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}]{\sphinxcrossref{\DUrole{n}{krb5\_deltat}}}}\DUrole{w}{ }\DUrole{n}{start\_time}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_tkt\_service}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k5\_gic\_options}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds} \sphinxhyphen{} New credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{client} \sphinxhyphen{} Client principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{password} \sphinxhyphen{} Password (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{prompter} \sphinxhyphen{} Prompter function - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Prompter callback data - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{start\_time} \sphinxhyphen{} Time when ticket becomes valid (0 for now) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_tkt\_service} \sphinxhyphen{} Service name of initial credentials (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{k5\_gic\_options} \sphinxhyphen{} Initial credential options - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -EINVAL Invalid argument - -\item {} -\sphinxAtStartPar -KRB5\_KDC\_UNREACH Cannot contact any KDC for requested realm - -\item {} -\sphinxAtStartPar -KRB5\_PREAUTH\_FAILED Generic Pre\sphinxhyphen{}athentication failure - -\item {} -\sphinxAtStartPar -KRB5\_LIBOS\_PWDINTR Password read interrupted - -\item {} -\sphinxAtStartPar -KRB5\_REALM\_CANT\_RESOLVE Cannot resolve network address for KDC in requested realm - -\item {} -\sphinxAtStartPar -KRB5KDC\_ERR\_KEY\_EXP Password has expired - -\item {} -\sphinxAtStartPar -KRB5\_LIBOS\_BADPWDMATCH Password mismatch - -\item {} -\sphinxAtStartPar -KRB5\_CHPW\_PWDNULL New password cannot be zero length - -\item {} -\sphinxAtStartPar -KRB5\_CHPW\_FAIL Password change failed - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function requests KDC for an initial credentials for \sphinxstyleemphasis{client} using \sphinxstyleemphasis{password} . If \sphinxstyleemphasis{password} is NULL, a password will be prompted for using \sphinxstyleemphasis{prompter} if necessary. If \sphinxstyleemphasis{in\_tkt\_service} is specified, it is parsed as a principal name (with the realm ignored) and used as the service principal for the request; otherwise the ticket\sphinxhyphen{}granting service is used. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_profile \sphinxhyphen{} Retrieve configuration profile from the context.} -\label{\detokenize{appdev/refs/api/krb5_get_profile:krb5-get-profile-retrieve-configuration-profile-from-the-context}}\label{\detokenize{appdev/refs/api/krb5_get_profile::doc}}\index{krb5\_get\_profile (C function)@\spxentry{krb5\_get\_profile}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_profile:c.krb5_get_profile}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_profile}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{struct}\DUrole{w}{ }\DUrole{n}{\_profile\_t}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{profile}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{profile} \sphinxhyphen{} Pointer to data read from a configuration file - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new \sphinxstyleemphasis{profile} object that reflects profile in the supplied \sphinxstyleemphasis{context} . - -\sphinxAtStartPar -The \sphinxstyleemphasis{profile} object may be freed with profile\_release() function. See profile.h and profile API for more details. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_prompt\_types \sphinxhyphen{} Get prompt types array from a context.} -\label{\detokenize{appdev/refs/api/krb5_get_prompt_types:krb5-get-prompt-types-get-prompt-types-array-from-a-context}}\label{\detokenize{appdev/refs/api/krb5_get_prompt_types::doc}}\index{krb5\_get\_prompt\_types (C function)@\spxentry{krb5\_get\_prompt\_types}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_prompt_types:c.krb5_get_prompt_types}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_prompt_type:c.krb5_prompt_type}]{\sphinxcrossref{\DUrole{n}{krb5\_prompt\_type}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_prompt\_types}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Pointer to an array of prompt types corresponding to the prompter’s prompts arguments. Each type has one of the following values: KRB5\_PROMPT\_TYPE\_PASSWORD KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD\_AGAIN KRB5\_PROMPT\_TYPE\_PREAUTH - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_renewed\_creds \sphinxhyphen{} Get renewed credential from KDC using an existing credential.} -\label{\detokenize{appdev/refs/api/krb5_get_renewed_creds:krb5-get-renewed-creds-get-renewed-credential-from-kdc-using-an-existing-credential}}\label{\detokenize{appdev/refs/api/krb5_get_renewed_creds::doc}}\index{krb5\_get\_renewed\_creds (C function)@\spxentry{krb5\_get\_renewed\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_renewed_creds:c.krb5_get_renewed_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_renewed\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{client}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_tkt\_service}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Renewed credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{client} \sphinxhyphen{} Client principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_tkt\_service} \sphinxhyphen{} Server principal string (or NULL) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function gets a renewed credential using an existing one from \sphinxstyleemphasis{ccache} . If \sphinxstyleemphasis{in\_tkt\_service} is specified, it is parsed (with the realm part ignored) and used as the server principal of the credential; otherwise, the ticket\sphinxhyphen{}granting service is used. - -\sphinxAtStartPar -If successful, the renewed credential is placed in \sphinxstyleemphasis{creds} . - -\sphinxstepscope - - -\subsubsection{krb5\_get\_validated\_creds \sphinxhyphen{} Get validated credentials from the KDC.} -\label{\detokenize{appdev/refs/api/krb5_get_validated_creds:krb5-get-validated-creds-get-validated-credentials-from-the-kdc}}\label{\detokenize{appdev/refs/api/krb5_get_validated_creds::doc}}\index{krb5\_get\_validated\_creds (C function)@\spxentry{krb5\_get\_validated\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_validated_creds:c.krb5_get_validated_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_validated\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{client}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_tkt\_service}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Validated credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{client} \sphinxhyphen{} Client principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_tkt\_service} \sphinxhyphen{} Server principal string (or NULL) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KRB5\_NO\_2ND\_TKT Request missing second ticket - -\item {} -\sphinxAtStartPar -KRB5\_NO\_TKT\_SUPPLIED Request did not supply a ticket - -\item {} -\sphinxAtStartPar -KRB5\_PRINC\_NOMATCH Requested principal and ticket do not match - -\item {} -\sphinxAtStartPar -KRB5\_KDCREP\_MODIFIED KDC reply did not match expectations - -\item {} -\sphinxAtStartPar -KRB5\_KDCREP\_SKEW Clock skew too great in KDC reply - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function gets a validated credential using a postdated credential from \sphinxstyleemphasis{ccache} . If \sphinxstyleemphasis{in\_tkt\_service} is specified, it is parsed (with the realm part ignored) and used as the server principal of the credential; otherwise, the ticket\sphinxhyphen{}granting service is used. - -\sphinxAtStartPar -If successful, the validated credential is placed in \sphinxstyleemphasis{creds} . - -\sphinxstepscope - - -\subsubsection{krb5\_init\_context \sphinxhyphen{} Create a krb5 library context.} -\label{\detokenize{appdev/refs/api/krb5_init_context:krb5-init-context-create-a-krb5-library-context}}\label{\detokenize{appdev/refs/api/krb5_init_context::doc}}\index{krb5\_init\_context (C function)@\spxentry{krb5\_init\_context}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_context:c.krb5_init_context}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_context}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -The \sphinxstyleemphasis{context} must be released by calling krb5\_free\_context() when it is no longer needed. - -\begin{sphinxadmonition}{warning}{Warning:} -\sphinxAtStartPar -Any program or module that needs the Kerberos code to not trust the environment must use krb5\_init\_secure\_context(), or clean out the environment. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_init\_secure\_context \sphinxhyphen{} Create a krb5 library context using only configuration files.} -\label{\detokenize{appdev/refs/api/krb5_init_secure_context:krb5-init-secure-context-create-a-krb5-library-context-using-only-configuration-files}}\label{\detokenize{appdev/refs/api/krb5_init_secure_context::doc}}\index{krb5\_init\_secure\_context (C function)@\spxentry{krb5\_init\_secure\_context}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_secure_context:c.krb5_init_secure_context}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_secure\_context}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Create a context structure, using only system configuration files. All information passed through the environment variables is ignored. - -\sphinxAtStartPar -The \sphinxstyleemphasis{context} must be released by calling krb5\_free\_context() when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_is\_config\_principal \sphinxhyphen{} Test whether a principal is a configuration principal.} -\label{\detokenize{appdev/refs/api/krb5_is_config_principal:krb5-is-config-principal-test-whether-a-principal-is-a-configuration-principal}}\label{\detokenize{appdev/refs/api/krb5_is_config_principal::doc}}\index{krb5\_is\_config\_principal (C function)@\spxentry{krb5\_is\_config\_principal}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_is_config_principal:c.krb5_is_config_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_is\_config\_principal}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Principal to check - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if the principal is a configuration principal (generated part of krb5\_cc\_set\_config()); FALSE otherwise. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_is\_thread\_safe \sphinxhyphen{} Test whether the Kerberos library was built with multithread support.} -\label{\detokenize{appdev/refs/api/krb5_is_thread_safe:krb5-is-thread-safe-test-whether-the-kerberos-library-was-built-with-multithread-support}}\label{\detokenize{appdev/refs/api/krb5_is_thread_safe::doc}}\index{krb5\_is\_thread\_safe (C function)@\spxentry{krb5\_is\_thread\_safe}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_is_thread_safe:c.krb5_is_thread_safe}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_is\_thread\_safe}}}}{\DUrole{kt}{void}\DUrole{w}{ }\DUrole{n}{None}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{None} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if the library is threadsafe; FALSE otherwise - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_close \sphinxhyphen{} Close a key table handle.} -\label{\detokenize{appdev/refs/api/krb5_kt_close:krb5-kt-close-close-a-key-table-handle}}\label{\detokenize{appdev/refs/api/krb5_kt_close::doc}}\index{krb5\_kt\_close (C function)@\spxentry{krb5\_kt\_close}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_close:c.krb5_kt_close}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_close}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 None - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_client\_default \sphinxhyphen{} Resolve the default client key table.} -\label{\detokenize{appdev/refs/api/krb5_kt_client_default:krb5-kt-client-default-resolve-the-default-client-key-table}}\label{\detokenize{appdev/refs/api/krb5_kt_client_default::doc}}\index{krb5\_kt\_client\_default (C function)@\spxentry{krb5\_kt\_client\_default}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_client_default:c.krb5_kt_client_default}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_client\_default}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keytab\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{keytab\_out} \sphinxhyphen{} Key table handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Fill \sphinxstyleemphasis{keytab\_out} with a handle to the default client key table. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_default \sphinxhyphen{} Resolve the default key table.} -\label{\detokenize{appdev/refs/api/krb5_kt_default:krb5-kt-default-resolve-the-default-key-table}}\label{\detokenize{appdev/refs/api/krb5_kt_default::doc}}\index{krb5\_kt\_default (C function)@\spxentry{krb5\_kt\_default}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_default:c.krb5_kt_default}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_default}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{id}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{id} \sphinxhyphen{} Key table handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Set \sphinxstyleemphasis{id} to a handle to the default key table. The key table is not opened. - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_default\_name \sphinxhyphen{} Get the default key table name.} -\label{\detokenize{appdev/refs/api/krb5_kt_default_name:krb5-kt-default-name-get-the-default-key-table-name}}\label{\detokenize{appdev/refs/api/krb5_kt_default_name::doc}}\index{krb5\_kt\_default\_name (C function)@\spxentry{krb5\_kt\_default\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_default_name:c.krb5_kt_default_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_default\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{name\_size}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{name} \sphinxhyphen{} Default key table name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{name\_size} \sphinxhyphen{} Space available in \sphinxstyleemphasis{name} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KRB5\_CONFIG\_NOTENUFSPACE Buffer is too short - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Fill \sphinxstyleemphasis{name} with the name of the default key table for \sphinxstyleemphasis{context} . - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_dup \sphinxhyphen{} Duplicate keytab handle.} -\label{\detokenize{appdev/refs/api/krb5_kt_dup:krb5-kt-dup-duplicate-keytab-handle}}\label{\detokenize{appdev/refs/api/krb5_kt_dup::doc}}\index{krb5\_kt\_dup (C function)@\spxentry{krb5\_kt\_dup}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_dup:c.krb5_kt_dup}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_dup}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{in}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in} \sphinxhyphen{} Key table handle to be duplicated - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out} \sphinxhyphen{} Key table handle - -\end{description}\end{quote} - -\sphinxAtStartPar -Create a new handle referring to the same key table as \sphinxstyleemphasis{in} . The new handle and \sphinxstyleemphasis{in} can be closed independently. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.12 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_get\_name \sphinxhyphen{} Get a key table name.} -\label{\detokenize{appdev/refs/api/krb5_kt_get_name:krb5-kt-get-name-get-a-key-table-name}}\label{\detokenize{appdev/refs/api/krb5_kt_get_name::doc}}\index{krb5\_kt\_get\_name (C function)@\spxentry{krb5\_kt\_get\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_get_name:c.krb5_kt_get_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_get\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{namelen}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{name} \sphinxhyphen{} Key table name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{namelen} \sphinxhyphen{} Maximum length to fill in name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KRB5\_KT\_NAME\_TOOLONG Key table name does not fit in namelen bytes - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Fill \sphinxstyleemphasis{name} with the name of \sphinxstyleemphasis{keytab} including the type and delimiter. - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_get\_type \sphinxhyphen{} Return the type of a key table.} -\label{\detokenize{appdev/refs/api/krb5_kt_get_type:krb5-kt-get-type-return-the-type-of-a-key-table}}\label{\detokenize{appdev/refs/api/krb5_kt_get_type::doc}}\index{krb5\_kt\_get\_type (C function)@\spxentry{krb5\_kt\_get\_type}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_get_type:c.krb5_kt_get_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_get\_type}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -The type of a key table as an alias that must not be modified or freed by the caller. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_resolve \sphinxhyphen{} Get a handle for a key table.} -\label{\detokenize{appdev/refs/api/krb5_kt_resolve:krb5-kt-resolve-get-a-handle-for-a-key-table}}\label{\detokenize{appdev/refs/api/krb5_kt_resolve::doc}}\index{krb5\_kt\_resolve (C function)@\spxentry{krb5\_kt\_resolve}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_resolve:c.krb5_kt_resolve}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_resolve}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ktid}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{name} \sphinxhyphen{} Name of the key table - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ktid} \sphinxhyphen{} Key table handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Resolve the key table name \sphinxstyleemphasis{name} and set \sphinxstyleemphasis{ktid} to a handle identifying the key table. Use krb5\_kt\_close() to free \sphinxstyleemphasis{ktid} when it is no longer needed. -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{name} must be of the form \sphinxstylestrong{type:residual} , where \sphinxstyleemphasis{type} must be a type known to the library and \sphinxstyleemphasis{residual} portion should be specific to the particular keytab type. If no \sphinxstyleemphasis{type} is given, the default is \sphinxstylestrong{FILE} . -\end{quote} - -\sphinxAtStartPar -If \sphinxstyleemphasis{name} is of type \sphinxstylestrong{FILE} , the keytab file is not opened by this call. - -\sphinxstepscope - - -\subsubsection{krb5\_kuserok \sphinxhyphen{} Determine if a principal is authorized to log in as a local user.} -\label{\detokenize{appdev/refs/api/krb5_kuserok:krb5-kuserok-determine-if-a-principal-is-authorized-to-log-in-as-a-local-user}}\label{\detokenize{appdev/refs/api/krb5_kuserok::doc}}\index{krb5\_kuserok (C function)@\spxentry{krb5\_kuserok}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kuserok:c.krb5_kuserok}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kuserok}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{luser}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{luser} \sphinxhyphen{} Local username - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE Principal is authorized to log in as user; FALSE otherwise. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Determine whether \sphinxstyleemphasis{principal} is authorized to log in as a local user \sphinxstyleemphasis{luser} . - -\sphinxstepscope - - -\subsubsection{krb5\_parse\_name \sphinxhyphen{} Convert a string principal name to a krb5\_principal structure.} -\label{\detokenize{appdev/refs/api/krb5_parse_name:krb5-parse-name-convert-a-string-principal-name-to-a-krb5-principal-structure}}\label{\detokenize{appdev/refs/api/krb5_parse_name::doc}}\index{krb5\_parse\_name (C function)@\spxentry{krb5\_parse\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_parse_name:c.krb5_parse_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_parse\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{principal\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{name} \sphinxhyphen{} String representation of a principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{principal\_out} \sphinxhyphen{} New principal - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Convert a string representation of a principal name to a krb5\_principal structure. - -\sphinxAtStartPar -A string representation of a Kerberos name consists of one or more principal name components, separated by slashes, optionally followed by the @ character and a realm name. If the realm name is not specified, the local realm is used. - -\sphinxAtStartPar -To use the slash and @ symbols as part of a component (quoted) instead of using them as a component separator or as a realm prefix), put a backslash () character in front of the symbol. Similarly, newline, tab, backspace, and NULL characters can be included in a component by using \sphinxstylestrong{n} , \sphinxstylestrong{t} , \sphinxstylestrong{b} or \sphinxstylestrong{0} , respectively. - -\sphinxAtStartPar -Beginning with release 1.20, the name type of the principal will be inferred as \sphinxstylestrong{KRB5\_NT\_SRV\_INST} or \sphinxstylestrong{KRB5\_NT\_WELLKNOWN} based on the principal name. The type will be \sphinxstylestrong{KRB5\_NT\_PRINCIPAL} if a type cannot be inferred. - -\sphinxAtStartPar -Use krb5\_free\_principal() to free \sphinxstyleemphasis{principal\_out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The realm in a Kerberos \sphinxstyleemphasis{name} cannot contain slash, colon, or NULL characters. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_parse\_name\_flags \sphinxhyphen{} Convert a string principal name to a krb5\_principal with flags.} -\label{\detokenize{appdev/refs/api/krb5_parse_name_flags:krb5-parse-name-flags-convert-a-string-principal-name-to-a-krb5-principal-with-flags}}\label{\detokenize{appdev/refs/api/krb5_parse_name_flags::doc}}\index{krb5\_parse\_name\_flags (C function)@\spxentry{krb5\_parse\_name\_flags}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_parse_name_flags:c.krb5_parse_name_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_parse\_name\_flags}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{flags}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{principal\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{name} \sphinxhyphen{} String representation of a principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flag - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{principal\_out} \sphinxhyphen{} New principal - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Similar to krb5\_parse\_name(), this function converts a single\sphinxhyphen{}string representation of a principal name to a krb5\_principal structure. - -\sphinxAtStartPar -The following flags are valid: -\begin{quote} -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_PARSE\_NO\_REALM \sphinxhyphen{} no realm must be present in \sphinxstyleemphasis{name} - -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_PARSE\_REQUIRE\_REALM \sphinxhyphen{} realm must be present in \sphinxstyleemphasis{name} - -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_PARSE\_ENTERPRISE \sphinxhyphen{} create single\sphinxhyphen{}component enterprise principal - -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_PARSE\_IGNORE\_REALM \sphinxhyphen{} ignore realm if present in \sphinxstyleemphasis{name} - -\end{itemize} - -\sphinxAtStartPar -If \sphinxstylestrong{KRB5\_PRINCIPAL\_PARSE\_NO\_REALM} or \sphinxstylestrong{KRB5\_PRINCIPAL\_PARSE\_IGNORE\_REALM} is specified in \sphinxstyleemphasis{flags} , the realm of the new principal will be empty. Otherwise, the default realm for \sphinxstyleemphasis{context} will be used if \sphinxstyleemphasis{name} does not specify a realm. -\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_principal() to free \sphinxstyleemphasis{principal\_out} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_principal\_compare \sphinxhyphen{} Compare two principals.} -\label{\detokenize{appdev/refs/api/krb5_principal_compare:krb5-principal-compare-compare-two-principals}}\label{\detokenize{appdev/refs/api/krb5_principal_compare::doc}}\index{krb5\_principal\_compare (C function)@\spxentry{krb5\_principal\_compare}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_principal_compare:c.krb5_principal_compare}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_principal\_compare}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ1}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ2}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ1} \sphinxhyphen{} First principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ2} \sphinxhyphen{} Second principal - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if the principals are the same; FALSE otherwise - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_principal\_compare\_any\_realm \sphinxhyphen{} Compare two principals ignoring realm components.} -\label{\detokenize{appdev/refs/api/krb5_principal_compare_any_realm:krb5-principal-compare-any-realm-compare-two-principals-ignoring-realm-components}}\label{\detokenize{appdev/refs/api/krb5_principal_compare_any_realm::doc}}\index{krb5\_principal\_compare\_any\_realm (C function)@\spxentry{krb5\_principal\_compare\_any\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_principal_compare_any_realm:c.krb5_principal_compare_any_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_principal\_compare\_any\_realm}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ1}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ2}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ1} \sphinxhyphen{} First principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ2} \sphinxhyphen{} Second principal - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if the principals are the same; FALSE otherwise - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Similar to krb5\_principal\_compare(), but do not compare the realm components of the principals. - -\sphinxstepscope - - -\subsubsection{krb5\_principal\_compare\_flags \sphinxhyphen{} Compare two principals with additional flags.} -\label{\detokenize{appdev/refs/api/krb5_principal_compare_flags:krb5-principal-compare-flags-compare-two-principals-with-additional-flags}}\label{\detokenize{appdev/refs/api/krb5_principal_compare_flags::doc}}\index{krb5\_principal\_compare\_flags (C function)@\spxentry{krb5\_principal\_compare\_flags}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_principal_compare_flags:c.krb5_principal_compare_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_principal\_compare\_flags}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ1}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ2}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ1} \sphinxhyphen{} First principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ2} \sphinxhyphen{} Second principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flags - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if the principal names are the same; FALSE otherwise - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Valid flags are: -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_COMPARE\_IGNORE\_REALM \sphinxhyphen{} ignore realm component - -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_COMPARE\_ENTERPRISE \sphinxhyphen{} UPNs as real principals - -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_COMPARE\_CASEFOLD case\sphinxhyphen{}insensitive - -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_COMPARE\_UTF8 \sphinxhyphen{} treat principals as UTF\sphinxhyphen{}8 - -\end{itemize} - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_principal\_compare() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_prompter\_posix \sphinxhyphen{} Prompt user for password.} -\label{\detokenize{appdev/refs/api/krb5_prompter_posix:krb5-prompter-posix-prompt-user-for-password}}\label{\detokenize{appdev/refs/api/krb5_prompter_posix::doc}}\index{krb5\_prompter\_posix (C function)@\spxentry{krb5\_prompter\_posix}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_prompter_posix:c.krb5_prompter_posix}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_prompter\_posix}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{banner}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{num\_prompts}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_prompt:c.krb5_prompt}]{\sphinxcrossref{\DUrole{n}{krb5\_prompt}}}}\DUrole{w}{ }\DUrole{n}{prompts}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{data} \sphinxhyphen{} Unused (callback argument) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{name} \sphinxhyphen{} Name to output during prompt - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{banner} \sphinxhyphen{} Banner to output during prompt - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_prompts} \sphinxhyphen{} Number of prompts in \sphinxstyleemphasis{prompts} - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{prompts} \sphinxhyphen{} Array of prompts and replies - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is intended to be used as a prompter callback for krb5\_get\_init\_creds\_password() or krb5\_init\_creds\_init(). - -\sphinxAtStartPar -Writes \sphinxstyleemphasis{name} and \sphinxstyleemphasis{banner} to stdout, each followed by a newline, then writes each prompt field in the \sphinxstyleemphasis{prompts} array, followed by”:”, and sets the reply field of the entry to a line of input read from stdin. If the hidden flag is set for a prompt, then terminal echoing is turned off when input is read. - -\sphinxstepscope - - -\subsubsection{krb5\_realm\_compare \sphinxhyphen{} Compare the realms of two principals.} -\label{\detokenize{appdev/refs/api/krb5_realm_compare:krb5-realm-compare-compare-the-realms-of-two-principals}}\label{\detokenize{appdev/refs/api/krb5_realm_compare::doc}}\index{krb5\_realm\_compare (C function)@\spxentry{krb5\_realm\_compare}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_realm_compare:c.krb5_realm_compare}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_realm\_compare}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ1}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ2}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ1} \sphinxhyphen{} First principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ2} \sphinxhyphen{} Second principal - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if the realm names are the same; FALSE otherwise - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_get\_challenge \sphinxhyphen{} Retrieve the challenge data for a given question in the responder context.} -\label{\detokenize{appdev/refs/api/krb5_responder_get_challenge:krb5-responder-get-challenge-retrieve-the-challenge-data-for-a-given-question-in-the-responder-context}}\label{\detokenize{appdev/refs/api/krb5_responder_get_challenge::doc}}\index{krb5\_responder\_get\_challenge (C function)@\spxentry{krb5\_responder\_get\_challenge}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_responder_get_challenge:c.krb5_responder_get_challenge}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_get\_challenge}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_context}}}}\DUrole{w}{ }\DUrole{n}{rctx}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{question}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rctx} \sphinxhyphen{} Responder context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{question} \sphinxhyphen{} Question name - -\end{description}\end{quote} - -\sphinxAtStartPar -Return a pointer to a C string containing the challenge for \sphinxstyleemphasis{question} within \sphinxstyleemphasis{rctx} , or NULL if the question is not present in \sphinxstyleemphasis{rctx} . The structure of the question depends on the question name, but will always be printable UTF\sphinxhyphen{}8 text. The returned pointer is an alias, valid only as long as the lifetime of \sphinxstyleemphasis{rctx} , and should not be modified or freed by the caller. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_list\_questions \sphinxhyphen{} List the question names contained in the responder context.} -\label{\detokenize{appdev/refs/api/krb5_responder_list_questions:krb5-responder-list-questions-list-the-question-names-contained-in-the-responder-context}}\label{\detokenize{appdev/refs/api/krb5_responder_list_questions::doc}}\index{krb5\_responder\_list\_questions (C function)@\spxentry{krb5\_responder\_list\_questions}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_responder_list_questions:c.krb5_responder_list_questions}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_list\_questions}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_context}}}}\DUrole{w}{ }\DUrole{n}{rctx}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rctx} \sphinxhyphen{} Responder context - -\end{description}\end{quote} - -\sphinxAtStartPar -Return a pointer to a null\sphinxhyphen{}terminated list of question names which are present in \sphinxstyleemphasis{rctx} . The pointer is an alias, valid only as long as the lifetime of \sphinxstyleemphasis{rctx} , and should not be modified or freed by the caller. A question’s challenge can be retrieved using krb5\_responder\_get\_challenge() and answered using krb5\_responder\_set\_answer(). - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_set\_answer \sphinxhyphen{} Answer a named question in the responder context.} -\label{\detokenize{appdev/refs/api/krb5_responder_set_answer:krb5-responder-set-answer-answer-a-named-question-in-the-responder-context}}\label{\detokenize{appdev/refs/api/krb5_responder_set_answer::doc}}\index{krb5\_responder\_set\_answer (C function)@\spxentry{krb5\_responder\_set\_answer}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_responder_set_answer:c.krb5_responder_set_answer}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_set\_answer}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_context}}}}\DUrole{w}{ }\DUrole{n}{rctx}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{question}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{answer}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rctx} \sphinxhyphen{} Responder context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{question} \sphinxhyphen{} Question name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{answer} \sphinxhyphen{} The string to set (MUST be printable UTF\sphinxhyphen{}8) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -EINVAL question is not present within rctx - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function supplies an answer to \sphinxstyleemphasis{question} within \sphinxstyleemphasis{rctx} . The appropriate form of the answer depends on the question name. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_otp\_get\_challenge \sphinxhyphen{} Decode the KRB5\_RESPONDER\_QUESTION\_OTP to a C struct.} -\label{\detokenize{appdev/refs/api/krb5_responder_otp_get_challenge:krb5-responder-otp-get-challenge-decode-the-krb5-responder-question-otp-to-a-c-struct}}\label{\detokenize{appdev/refs/api/krb5_responder_otp_get_challenge::doc}}\index{krb5\_responder\_otp\_get\_challenge (C function)@\spxentry{krb5\_responder\_otp\_get\_challenge}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_responder_otp_get_challenge:c.krb5_responder_otp_get_challenge}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_otp\_get\_challenge}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_context}}}}\DUrole{w}{ }\DUrole{n}{rctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_challenge:c.krb5_responder_otp_challenge}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_challenge}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{chl}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rctx} \sphinxhyphen{} Responder context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{chl} \sphinxhyphen{} Challenge structure - -\end{description}\end{quote} - -\sphinxAtStartPar -A convenience function which parses the KRB5\_RESPONDER\_QUESTION\_OTP question challenge data, making it available in native C. The main feature of this function is the ability to interact with OTP tokens without parsing the JSON. - -\sphinxAtStartPar -The returned value must be passed to krb5\_responder\_otp\_challenge\_free() to be freed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_otp\_set\_answer \sphinxhyphen{} Answer the KRB5\_RESPONDER\_QUESTION\_OTP question.} -\label{\detokenize{appdev/refs/api/krb5_responder_otp_set_answer:krb5-responder-otp-set-answer-answer-the-krb5-responder-question-otp-question}}\label{\detokenize{appdev/refs/api/krb5_responder_otp_set_answer::doc}}\index{krb5\_responder\_otp\_set\_answer (C function)@\spxentry{krb5\_responder\_otp\_set\_answer}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_responder_otp_set_answer:c.krb5_responder_otp_set_answer}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_otp\_set\_answer}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_context}}}}\DUrole{w}{ }\DUrole{n}{rctx}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{ti}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{value}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pin}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rctx} \sphinxhyphen{} Responder context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ti} \sphinxhyphen{} The index of the tokeninfo selected - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{value} \sphinxhyphen{} The value to set, or NULL for none - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pin} \sphinxhyphen{} The pin to set, or NULL for none - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_otp\_challenge\_free \sphinxhyphen{} Free the value returned by krb5\_responder\_otp\_get\_challenge().} -\label{\detokenize{appdev/refs/api/krb5_responder_otp_challenge_free:krb5-responder-otp-challenge-free-free-the-value-returned-by-krb5-responder-otp-get-challenge}}\label{\detokenize{appdev/refs/api/krb5_responder_otp_challenge_free::doc}}\index{krb5\_responder\_otp\_challenge\_free (C function)@\spxentry{krb5\_responder\_otp\_challenge\_free}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_responder_otp_challenge_free:c.krb5_responder_otp_challenge_free}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_otp\_challenge\_free}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_context}}}}\DUrole{w}{ }\DUrole{n}{rctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_challenge:c.krb5_responder_otp_challenge}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_challenge}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{chl}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rctx} \sphinxhyphen{} Responder context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{chl} \sphinxhyphen{} The challenge to free - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_pkinit\_get\_challenge \sphinxhyphen{} Decode the KRB5\_RESPONDER\_QUESTION\_PKINIT to a C struct.} -\label{\detokenize{appdev/refs/api/krb5_responder_pkinit_get_challenge:krb5-responder-pkinit-get-challenge-decode-the-krb5-responder-question-pkinit-to-a-c-struct}}\label{\detokenize{appdev/refs/api/krb5_responder_pkinit_get_challenge::doc}}\index{krb5\_responder\_pkinit\_get\_challenge (C function)@\spxentry{krb5\_responder\_pkinit\_get\_challenge}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_responder_pkinit_get_challenge:c.krb5_responder_pkinit_get_challenge}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_pkinit\_get\_challenge}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_context}}}}\DUrole{w}{ }\DUrole{n}{rctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge:c.krb5_responder_pkinit_challenge}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_pkinit\_challenge}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{chl\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rctx} \sphinxhyphen{} Responder context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{chl\_out} \sphinxhyphen{} Challenge structure - -\end{description}\end{quote} - -\sphinxAtStartPar -A convenience function which parses the KRB5\_RESPONDER\_QUESTION\_PKINIT question challenge data, making it available in native C. The main feature of this function is the ability to read the challenge without parsing the JSON. - -\sphinxAtStartPar -The returned value must be passed to krb5\_responder\_pkinit\_challenge\_free() to be freed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.12 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_pkinit\_set\_answer \sphinxhyphen{} Answer the KRB5\_RESPONDER\_QUESTION\_PKINIT question for one identity.} -\label{\detokenize{appdev/refs/api/krb5_responder_pkinit_set_answer:krb5-responder-pkinit-set-answer-answer-the-krb5-responder-question-pkinit-question-for-one-identity}}\label{\detokenize{appdev/refs/api/krb5_responder_pkinit_set_answer::doc}}\index{krb5\_responder\_pkinit\_set\_answer (C function)@\spxentry{krb5\_responder\_pkinit\_set\_answer}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_responder_pkinit_set_answer:c.krb5_responder_pkinit_set_answer}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_pkinit\_set\_answer}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_context}}}}\DUrole{w}{ }\DUrole{n}{rctx}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{identity}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pin}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rctx} \sphinxhyphen{} Responder context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{identity} \sphinxhyphen{} The identity for which a PIN is being supplied - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pin} \sphinxhyphen{} The provided PIN, or NULL for none - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.12 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_pkinit\_challenge\_free \sphinxhyphen{} Free the value returned by krb5\_responder\_pkinit\_get\_challenge().} -\label{\detokenize{appdev/refs/api/krb5_responder_pkinit_challenge_free:krb5-responder-pkinit-challenge-free-free-the-value-returned-by-krb5-responder-pkinit-get-challenge}}\label{\detokenize{appdev/refs/api/krb5_responder_pkinit_challenge_free::doc}}\index{krb5\_responder\_pkinit\_challenge\_free (C function)@\spxentry{krb5\_responder\_pkinit\_challenge\_free}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_responder_pkinit_challenge_free:c.krb5_responder_pkinit_challenge_free}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_pkinit\_challenge\_free}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_context}}}}\DUrole{w}{ }\DUrole{n}{rctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge:c.krb5_responder_pkinit_challenge}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_pkinit\_challenge}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{chl}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rctx} \sphinxhyphen{} Responder context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{chl} \sphinxhyphen{} The challenge to free - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.12 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_set\_default\_realm \sphinxhyphen{} Override the default realm for the specified context.} -\label{\detokenize{appdev/refs/api/krb5_set_default_realm:krb5-set-default-realm-override-the-default-realm-for-the-specified-context}}\label{\detokenize{appdev/refs/api/krb5_set_default_realm::doc}}\index{krb5\_set\_default\_realm (C function)@\spxentry{krb5\_set\_default\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_default_realm:c.krb5_set_default_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_default\_realm}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{lrealm}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{lrealm} \sphinxhyphen{} Realm name for the default realm - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -If \sphinxstyleemphasis{lrealm} is NULL, clear the default realm setting. - -\sphinxstepscope - - -\subsubsection{krb5\_set\_password \sphinxhyphen{} Set a password for a principal using specified credentials.} -\label{\detokenize{appdev/refs/api/krb5_set_password:krb5-set-password-set-a-password-for-a-principal-using-specified-credentials}}\label{\detokenize{appdev/refs/api/krb5_set_password::doc}}\index{krb5\_set\_password (C function)@\spxentry{krb5\_set\_password}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_password:c.krb5_set_password}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_password}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{newpw}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{change\_password\_for}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{result\_code}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{result\_code\_string}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{result\_string}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Credentials for kadmin/changepw service - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{newpw} \sphinxhyphen{} New password - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{change\_password\_for} \sphinxhyphen{} Change the password for this principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{result\_code} \sphinxhyphen{} Numeric error code from server - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{result\_code\_string} \sphinxhyphen{} String equivalent to \sphinxstyleemphasis{result\_code} - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{result\_string} \sphinxhyphen{} Data returned from the remote system - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success and result\_code is set to KRB5\_KPASSWD\_SUCCESS. - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function uses the credentials \sphinxstyleemphasis{creds} to set the password \sphinxstyleemphasis{newpw} for the principal \sphinxstyleemphasis{change\_password\_for} . It implements the set password operation of RFC 3244, for interoperability with Microsoft Windows implementations. - -\sphinxAtStartPar -The error code and strings are returned in \sphinxstyleemphasis{result\_code} , \sphinxstyleemphasis{result\_code\_string} and \sphinxstyleemphasis{result\_string} . - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -If \sphinxstyleemphasis{change\_password\_for} is NULL, the change is performed on the current principal. If \sphinxstyleemphasis{change\_password\_for} is non\sphinxhyphen{}null, the change is performed on the principal name passed in \sphinxstyleemphasis{change\_password\_for} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_set\_password\_using\_ccache \sphinxhyphen{} Set a password for a principal using cached credentials.} -\label{\detokenize{appdev/refs/api/krb5_set_password_using_ccache:krb5-set-password-using-ccache-set-a-password-for-a-principal-using-cached-credentials}}\label{\detokenize{appdev/refs/api/krb5_set_password_using_ccache::doc}}\index{krb5\_set\_password\_using\_ccache (C function)@\spxentry{krb5\_set\_password\_using\_ccache}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_password_using_ccache:c.krb5_set_password_using_ccache}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_password\_using\_ccache}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{newpw}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{change\_password\_for}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{result\_code}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{result\_code\_string}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{result\_string}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{newpw} \sphinxhyphen{} New password - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{change\_password\_for} \sphinxhyphen{} Change the password for this principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{result\_code} \sphinxhyphen{} Numeric error code from server - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{result\_code\_string} \sphinxhyphen{} String equivalent to \sphinxstyleemphasis{result\_code} - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{result\_string} \sphinxhyphen{} Data returned from the remote system - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function uses the cached credentials from \sphinxstyleemphasis{ccache} to set the password \sphinxstyleemphasis{newpw} for the principal \sphinxstyleemphasis{change\_password\_for} . It implements RFC 3244 set password operation (interoperable with MS Windows implementations) using the credential cache. - -\sphinxAtStartPar -The error code and strings are returned in \sphinxstyleemphasis{result\_code} , \sphinxstyleemphasis{result\_code\_string} and \sphinxstyleemphasis{result\_string} . - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -If \sphinxstyleemphasis{change\_password\_for} is set to NULL, the change is performed on the default principal in \sphinxstyleemphasis{ccache} . If \sphinxstyleemphasis{change\_password\_for} is non null, the change is performed on the specified principal. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_set\_principal\_realm \sphinxhyphen{} Set the realm field of a principal.} -\label{\detokenize{appdev/refs/api/krb5_set_principal_realm:krb5-set-principal-realm-set-the-realm-field-of-a-principal}}\label{\detokenize{appdev/refs/api/krb5_set_principal_realm::doc}}\index{krb5\_set\_principal\_realm (C function)@\spxentry{krb5\_set\_principal\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_principal_realm:c.krb5_set_principal_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_principal\_realm}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Realm name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Set the realm name part of \sphinxstyleemphasis{principal} to \sphinxstyleemphasis{realm} , overwriting the previous realm. - -\sphinxstepscope - - -\subsubsection{krb5\_set\_trace\_callback \sphinxhyphen{} Specify a callback function for trace events.} -\label{\detokenize{appdev/refs/api/krb5_set_trace_callback:krb5-set-trace-callback-specify-a-callback-function-for-trace-events}}\label{\detokenize{appdev/refs/api/krb5_set_trace_callback::doc}}\index{krb5\_set\_trace\_callback (C function)@\spxentry{krb5\_set\_trace\_callback}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_trace_callback:c.krb5_set_trace_callback}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_trace\_callback}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_trace_callback:c.krb5_trace_callback}]{\sphinxcrossref{\DUrole{n}{krb5\_trace\_callback}}}}\DUrole{w}{ }\DUrole{n}{fn}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cb\_data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fn} \sphinxhyphen{} Callback function - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cb\_data} \sphinxhyphen{} Callback data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Returns KRB5\_TRACE\_NOSUPP if tracing is not supported in the library (unless fn is NULL). - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Specify a callback for trace events occurring in krb5 operations performed within \sphinxstyleemphasis{context} . \sphinxstyleemphasis{fn} will be invoked with \sphinxstyleemphasis{context} as the first argument, \sphinxstyleemphasis{cb\_data} as the last argument, and a pointer to a krb5\_trace\_info as the second argument. If the trace callback is reset via this function or \sphinxstyleemphasis{context} is destroyed, \sphinxstyleemphasis{fn} will be invoked with a NULL second argument so it can clean up \sphinxstyleemphasis{cb\_data} . Supply a NULL value for \sphinxstyleemphasis{fn} to disable trace callbacks within \sphinxstyleemphasis{context} . - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function overrides the information passed through the \sphinxstyleemphasis{KRB5\_TRACE} environment variable. -\end{sphinxadmonition} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_set\_trace\_filename \sphinxhyphen{} Specify a file name for directing trace events.} -\label{\detokenize{appdev/refs/api/krb5_set_trace_filename:krb5-set-trace-filename-specify-a-file-name-for-directing-trace-events}}\label{\detokenize{appdev/refs/api/krb5_set_trace_filename::doc}}\index{krb5\_set\_trace\_filename (C function)@\spxentry{krb5\_set\_trace\_filename}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_trace_filename:c.krb5_set_trace_filename}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_trace\_filename}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{filename}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{filename} \sphinxhyphen{} File name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_TRACE\_NOSUPP Tracing is not supported in the library. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Open \sphinxstyleemphasis{filename} for appending (creating it, if necessary) and set up a callback to write trace events to it. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function overrides the information passed through the \sphinxstyleemphasis{KRB5\_TRACE} environment variable. -\end{sphinxadmonition} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_sname\_match \sphinxhyphen{} Test whether a principal matches a matching principal.} -\label{\detokenize{appdev/refs/api/krb5_sname_match:krb5-sname-match-test-whether-a-principal-matches-a-matching-principal}}\label{\detokenize{appdev/refs/api/krb5_sname_match::doc}}\index{krb5\_sname\_match (C function)@\spxentry{krb5\_sname\_match}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_sname_match:c.krb5_sname_match}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_sname\_match}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{matching}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{matching} \sphinxhyphen{} Matching principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ} \sphinxhyphen{} Principal to test - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if princ matches matching , FALSE otherwise. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -If \sphinxstyleemphasis{matching} is NULL, return TRUE. If \sphinxstyleemphasis{matching} is not a matching principal, return the value of krb5\_principal\_compare(context, matching,princ). - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -A matching principal is a host\sphinxhyphen{}based principal with an empty realm and/or second data component (hostname). Profile configuration may cause the hostname to be ignored even if it is present. A principal matches a matching principal if the former has the same non\sphinxhyphen{}empty (and non\sphinxhyphen{}ignored) components of the latter. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_sname\_to\_principal \sphinxhyphen{} Generate a full principal name from a service name.} -\label{\detokenize{appdev/refs/api/krb5_sname_to_principal:krb5-sname-to-principal-generate-a-full-principal-name-from-a-service-name}}\label{\detokenize{appdev/refs/api/krb5_sname_to_principal::doc}}\index{krb5\_sname\_to\_principal (C function)@\spxentry{krb5\_sname\_to\_principal}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_sname_to_principal:c.krb5_sname_to_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_sname\_to\_principal}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{hostname}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{sname}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{n}{type}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ret\_princ}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{hostname} \sphinxhyphen{} Host name, or NULL to use local host - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{sname} \sphinxhyphen{} Service name, or NULL to use \sphinxstylestrong{“host”} - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{type} \sphinxhyphen{} Principal type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ret\_princ} \sphinxhyphen{} Generated principal - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function converts a \sphinxstyleemphasis{hostname} and \sphinxstyleemphasis{sname} into \sphinxstyleemphasis{krb5\_principal} structure \sphinxstyleemphasis{ret\_princ} . The returned principal will be of the form \sphinxstyleemphasis{sname/hostname@REALM} where REALM is determined by krb5\_get\_host\_realm(). In some cases this may be the referral (empty) realm. - -\sphinxAtStartPar -The \sphinxstyleemphasis{type} can be one of the following: -\begin{quote} -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_NT\_SRV\_HST canonicalizes the host name before looking up the realm and generating the principal. - -\item {} -\sphinxAtStartPar -KRB5\_NT\_UNKNOWN accepts the hostname as given, and does not canonicalize it. - -\end{itemize} - -\sphinxAtStartPar -Use krb5\_free\_principal to free \sphinxstyleemphasis{ret\_princ} when it is no longer needed. -\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_unparse\_name \sphinxhyphen{} Convert a krb5\_principal structure to a string representation.} -\label{\detokenize{appdev/refs/api/krb5_unparse_name:krb5-unparse-name-convert-a-krb5-principal-structure-to-a-string-representation}}\label{\detokenize{appdev/refs/api/krb5_unparse_name::doc}}\index{krb5\_unparse\_name (C function)@\spxentry{krb5\_unparse\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_unparse_name:c.krb5_unparse_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_unparse\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{name}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{name} \sphinxhyphen{} String representation of principal name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -The resulting string representation uses the format and quoting conventions described for krb5\_parse\_name(). - -\sphinxAtStartPar -Use krb5\_free\_unparsed\_name() to free \sphinxstyleemphasis{name} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_unparse\_name\_ext \sphinxhyphen{} Convert krb5\_principal structure to string and length.} -\label{\detokenize{appdev/refs/api/krb5_unparse_name_ext:krb5-unparse-name-ext-convert-krb5-principal-structure-to-string-and-length}}\label{\detokenize{appdev/refs/api/krb5_unparse_name_ext::doc}}\index{krb5\_unparse\_name\_ext (C function)@\spxentry{krb5\_unparse\_name\_ext}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_unparse_name_ext:c.krb5_unparse_name_ext}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_unparse\_name\_ext}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{size}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{name} \sphinxhyphen{} String representation of principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{size} \sphinxhyphen{} Size of unparsed name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes. On failure name is set to NULL - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is similar to krb5\_unparse\_name(), but allows the use of an existing buffer for the result. If size is not NULL, then \sphinxstyleemphasis{name} must point to either NULL or an existing buffer of at least the size pointed to by \sphinxstyleemphasis{size} . The buffer will be allocated or resized if necessary, with the new pointer stored into \sphinxstyleemphasis{name} . Whether or not the buffer is resized, the necessary space for the result, including null terminator, will be stored into \sphinxstyleemphasis{size} . - -\sphinxAtStartPar -If size is NULL, this function behaves exactly as krb5\_unparse\_name(). - -\sphinxstepscope - - -\subsubsection{krb5\_unparse\_name\_flags \sphinxhyphen{} Convert krb5\_principal structure to a string with flags.} -\label{\detokenize{appdev/refs/api/krb5_unparse_name_flags:krb5-unparse-name-flags-convert-krb5-principal-structure-to-a-string-with-flags}}\label{\detokenize{appdev/refs/api/krb5_unparse_name_flags::doc}}\index{krb5\_unparse\_name\_flags (C function)@\spxentry{krb5\_unparse\_name\_flags}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_unparse_name_flags:c.krb5_unparse_name_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_unparse\_name\_flags}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{flags}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{name}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flags - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{name} \sphinxhyphen{} String representation of principal name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes. On failure name is set to NULL - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Similar to krb5\_unparse\_name(), this function converts a krb5\_principal structure to a string representation. - -\sphinxAtStartPar -The following flags are valid: -\begin{quote} -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_UNPARSE\_SHORT \sphinxhyphen{} omit realm if it is the local realm - -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_UNPARSE\_NO\_REALM \sphinxhyphen{} omit realm - -\item {} -\sphinxAtStartPar -KRB5\_PRINCIPAL\_UNPARSE\_DISPLAY \sphinxhyphen{} do not quote special characters - -\end{itemize} - -\sphinxAtStartPar -Use krb5\_free\_unparsed\_name() to free \sphinxstyleemphasis{name} when it is no longer needed. -\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_unparse\_name\_flags\_ext \sphinxhyphen{} Convert krb5\_principal structure to string format with flags.} -\label{\detokenize{appdev/refs/api/krb5_unparse_name_flags_ext:krb5-unparse-name-flags-ext-convert-krb5-principal-structure-to-string-format-with-flags}}\label{\detokenize{appdev/refs/api/krb5_unparse_name_flags_ext::doc}}\index{krb5\_unparse\_name\_flags\_ext (C function)@\spxentry{krb5\_unparse\_name\_flags\_ext}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_unparse_name_flags_ext:c.krb5_unparse_name_flags_ext}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_unparse\_name\_flags\_ext}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{flags}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{size}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flags - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{name} \sphinxhyphen{} Single string format of principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{size} \sphinxhyphen{} Size of unparsed name buffer - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes. On failure name is set to NULL - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_us\_timeofday \sphinxhyphen{} Retrieve the system time of day, in sec and ms, since the epoch.} -\label{\detokenize{appdev/refs/api/krb5_us_timeofday:krb5-us-timeofday-retrieve-the-system-time-of-day-in-sec-and-ms-since-the-epoch}}\label{\detokenize{appdev/refs/api/krb5_us_timeofday::doc}}\index{krb5\_us\_timeofday (C function)@\spxentry{krb5\_us\_timeofday}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_us_timeofday:c.krb5_us_timeofday}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_us\_timeofday}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{seconds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{microseconds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{seconds} \sphinxhyphen{} System timeofday, seconds portion - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{microseconds} \sphinxhyphen{} System timeofday, microseconds portion - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function retrieves the system time of day with the context specific time offset adjustment. - -\sphinxstepscope - - -\subsubsection{krb5\_verify\_authdata\_kdc\_issued \sphinxhyphen{} Unwrap and verify AD\sphinxhyphen{}KDCIssued authorization data.} -\label{\detokenize{appdev/refs/api/krb5_verify_authdata_kdc_issued:krb5-verify-authdata-kdc-issued-unwrap-and-verify-ad-kdcissued-authorization-data}}\label{\detokenize{appdev/refs/api/krb5_verify_authdata_kdc_issued::doc}}\index{krb5\_verify\_authdata\_kdc\_issued (C function)@\spxentry{krb5\_verify\_authdata\_kdc\_issued}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_verify_authdata_kdc_issued:c.krb5_verify_authdata_kdc_issued}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_verify\_authdata\_kdc\_issued}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ad\_kdcissued}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{issuer}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{authdata}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Session key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ad\_kdcissued} \sphinxhyphen{} AD\sphinxhyphen{}KDCIssued authorization data to be unwrapped - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{issuer} \sphinxhyphen{} Name of issuing principal (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{authdata} \sphinxhyphen{} Unwrapped list of authorization data - -\end{description}\end{quote} - -\sphinxAtStartPar -This function unwraps an AD\sphinxhyphen{}KDCIssued authdatum (see RFC 4120 section 5.2.6.2) and verifies its signature against \sphinxstyleemphasis{key} . The issuer field of the authdatum element is returned in \sphinxstyleemphasis{issuer} , and the unwrapped list of authdata is returned in \sphinxstyleemphasis{authdata} . - - -\subsection{Rarely used public interfaces} -\label{\detokenize{appdev/refs/api/index:rarely-used-public-interfaces}} -\sphinxstepscope - - -\subsubsection{krb5\_425\_conv\_principal \sphinxhyphen{} Convert a Kerberos V4 principal to a Kerberos V5 principal.} -\label{\detokenize{appdev/refs/api/krb5_425_conv_principal:krb5-425-conv-principal-convert-a-kerberos-v4-principal-to-a-kerberos-v5-principal}}\label{\detokenize{appdev/refs/api/krb5_425_conv_principal::doc}}\index{krb5\_425\_conv\_principal (C function)@\spxentry{krb5\_425\_conv\_principal}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_425_conv_principal:c.krb5_425_conv_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_425\_conv\_principal}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{instance}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{princ}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{name} \sphinxhyphen{} V4 name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{instance} \sphinxhyphen{} V4 instance - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Realm - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{princ} \sphinxhyphen{} V5 principal - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function builds a \sphinxstyleemphasis{princ} from V4 specification based on given input \sphinxstyleemphasis{name.instance@realm} . - -\sphinxAtStartPar -Use krb5\_free\_principal() to free \sphinxstyleemphasis{princ} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_524\_conv\_principal \sphinxhyphen{} Convert a Kerberos V5 principal to a Kerberos V4 principal.} -\label{\detokenize{appdev/refs/api/krb5_524_conv_principal:krb5-524-conv-principal-convert-a-kerberos-v5-principal-to-a-kerberos-v4-principal}}\label{\detokenize{appdev/refs/api/krb5_524_conv_principal::doc}}\index{krb5\_524\_conv\_principal (C function)@\spxentry{krb5\_524\_conv\_principal}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_524_conv_principal:c.krb5_524_conv_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_524\_conv\_principal}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{inst}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{princ} \sphinxhyphen{} V5 Principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{name} \sphinxhyphen{} V4 principal’s name to be filled in - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{inst} \sphinxhyphen{} V4 principal’s instance name to be filled in - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Principal’s realm name to be filled in - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KRB5\_INVALID\_PRINCIPAL Invalid principal name - -\item {} -\sphinxAtStartPar -KRB5\_CONFIG\_CANTOPEN Can’t open or find Kerberos configuration file - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function separates a V5 principal \sphinxstyleemphasis{princ} into \sphinxstyleemphasis{name} , \sphinxstyleemphasis{instance} , and \sphinxstyleemphasis{realm} . - -\sphinxstepscope - - -\subsubsection{krb5\_address\_compare \sphinxhyphen{} Compare two Kerberos addresses.} -\label{\detokenize{appdev/refs/api/krb5_address_compare:krb5-address-compare-compare-two-kerberos-addresses}}\label{\detokenize{appdev/refs/api/krb5_address_compare::doc}}\index{krb5\_address\_compare (C function)@\spxentry{krb5\_address\_compare}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_address_compare:c.krb5_address_compare}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_address\_compare}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{addr1}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{addr2}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{addr1} \sphinxhyphen{} First address to be compared - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{addr2} \sphinxhyphen{} Second address to be compared - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if the addresses are the same, FALSE otherwise - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_address\_order \sphinxhyphen{} Return an ordering of the specified addresses.} -\label{\detokenize{appdev/refs/api/krb5_address_order:krb5-address-order-return-an-ordering-of-the-specified-addresses}}\label{\detokenize{appdev/refs/api/krb5_address_order::doc}}\index{krb5\_address\_order (C function)@\spxentry{krb5\_address\_order}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_address_order:c.krb5_address_order}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{int}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_address\_order}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{addr1}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{addr2}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{addr1} \sphinxhyphen{} First address - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{addr2} \sphinxhyphen{} Second address - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 if The two addresses are the same - -\item {} -\sphinxAtStartPar -\textless{} 0 First address is less than second - -\item {} -\sphinxAtStartPar -\textgreater{} 0 First address is greater than second - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_address\_search \sphinxhyphen{} Search a list of addresses for a specified address.} -\label{\detokenize{appdev/refs/api/krb5_address_search:krb5-address-search-search-a-list-of-addresses-for-a-specified-address}}\label{\detokenize{appdev/refs/api/krb5_address_search::doc}}\index{krb5\_address\_search (C function)@\spxentry{krb5\_address\_search}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_address_search:c.krb5_address_search}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_address\_search}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{addr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{addrlist}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{addr} \sphinxhyphen{} Address to search for - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{addrlist} \sphinxhyphen{} Address list to be searched (or NULL) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if addr is listed in addrlist , or addrlist is NULL; FALSE otherwise - -\end{itemize} - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -If \sphinxstyleemphasis{addrlist} contains only a NetBIOS addresses, it will be treated as a null list. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_allow\_weak\_crypto \sphinxhyphen{} Allow the application to override the profile’s allow\_weak\_crypto setting.} -\label{\detokenize{appdev/refs/api/krb5_allow_weak_crypto:krb5-allow-weak-crypto-allow-the-application-to-override-the-profile-s-allow-weak-crypto-setting}}\label{\detokenize{appdev/refs/api/krb5_allow_weak_crypto::doc}}\index{krb5\_allow\_weak\_crypto (C function)@\spxentry{krb5\_allow\_weak\_crypto}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_allow_weak_crypto:c.krb5_allow_weak_crypto}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_allow\_weak\_crypto}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{n}{enable}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enable} \sphinxhyphen{} Boolean flag - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 (always) - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function allows an application to override the allow\_weak\_crypto setting. It is primarily for use by aklog. - -\sphinxstepscope - - -\subsubsection{krb5\_aname\_to\_localname \sphinxhyphen{} Convert a principal name to a local name.} -\label{\detokenize{appdev/refs/api/krb5_aname_to_localname:krb5-aname-to-localname-convert-a-principal-name-to-a-local-name}}\label{\detokenize{appdev/refs/api/krb5_aname_to_localname::doc}}\index{krb5\_aname\_to\_localname (C function)@\spxentry{krb5\_aname\_to\_localname}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_aname_to_localname:c.krb5_aname_to_localname}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_aname\_to\_localname}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{aname}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{lnsize\_in}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{lname}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{aname} \sphinxhyphen{} Principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{lnsize\_in} \sphinxhyphen{} Space available in \sphinxstyleemphasis{lname} - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{lname} \sphinxhyphen{} Local name buffer to be filled in - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -System errors - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -If \sphinxstyleemphasis{aname} does not correspond to any local account, KRB5\_LNAME\_NOTRANS is returned. If \sphinxstyleemphasis{lnsize\_in} is too small for the local name, KRB5\_CONFIG\_NOTENUFSPACE is returned. - -\sphinxAtStartPar -Local names, rather than principal names, can be used by programs that translate to an environment\sphinxhyphen{}specific name (for example, a user account name). - -\sphinxstepscope - - -\subsubsection{krb5\_anonymous\_principal \sphinxhyphen{} Build an anonymous principal.} -\label{\detokenize{appdev/refs/api/krb5_anonymous_principal:krb5-anonymous-principal-build-an-anonymous-principal}}\label{\detokenize{appdev/refs/api/krb5_anonymous_principal::doc}}\index{krb5\_anonymous\_principal (C function)@\spxentry{krb5\_anonymous\_principal}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_anonymous_principal:c.krb5_anonymous_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_anonymous\_principal}}}}{\DUrole{kt}{void}\DUrole{w}{ }\DUrole{n}{None}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{None} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function returns constant storage that must not be freed. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -KRB5\_ANONYMOUS\_PRINCSTR - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_anonymous\_realm \sphinxhyphen{} Return an anonymous realm data.} -\label{\detokenize{appdev/refs/api/krb5_anonymous_realm:krb5-anonymous-realm-return-an-anonymous-realm-data}}\label{\detokenize{appdev/refs/api/krb5_anonymous_realm::doc}}\index{krb5\_anonymous\_realm (C function)@\spxentry{krb5\_anonymous\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_anonymous_realm:c.krb5_anonymous_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_anonymous\_realm}}}}{\DUrole{kt}{void}\DUrole{w}{ }\DUrole{n}{None}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{None} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function returns constant storage that must not be freed. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -KRB5\_ANONYMOUS\_REALMSTR - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_appdefault\_boolean \sphinxhyphen{} Retrieve a boolean value from the appdefaults section of krb5.conf.} -\label{\detokenize{appdev/refs/api/krb5_appdefault_boolean:krb5-appdefault-boolean-retrieve-a-boolean-value-from-the-appdefaults-section-of-krb5-conf}}\label{\detokenize{appdev/refs/api/krb5_appdefault_boolean::doc}}\index{krb5\_appdefault\_boolean (C function)@\spxentry{krb5\_appdefault\_boolean}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_appdefault_boolean:c.krb5_appdefault_boolean}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_appdefault\_boolean}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{appname}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{option}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{default\_value}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ret\_value}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{appname} \sphinxhyphen{} Application name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Realm name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{option} \sphinxhyphen{} Option to be checked - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{default\_value} \sphinxhyphen{} Default value to return if no match is found - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ret\_value} \sphinxhyphen{} Boolean value of \sphinxstyleemphasis{option} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function gets the application defaults for \sphinxstyleemphasis{option} based on the given \sphinxstyleemphasis{appname} and/or \sphinxstyleemphasis{realm} . - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_appdefault\_string() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_appdefault\_string \sphinxhyphen{} Retrieve a string value from the appdefaults section of krb5.conf.} -\label{\detokenize{appdev/refs/api/krb5_appdefault_string:krb5-appdefault-string-retrieve-a-string-value-from-the-appdefaults-section-of-krb5-conf}}\label{\detokenize{appdev/refs/api/krb5_appdefault_string::doc}}\index{krb5\_appdefault\_string (C function)@\spxentry{krb5\_appdefault\_string}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_appdefault_string:c.krb5_appdefault_string}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_appdefault\_string}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{appname}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{option}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{default\_value}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ret\_value}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{appname} \sphinxhyphen{} Application name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Realm name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{option} \sphinxhyphen{} Option to be checked - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{default\_value} \sphinxhyphen{} Default value to return if no match is found - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ret\_value} \sphinxhyphen{} String value of \sphinxstyleemphasis{option} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function gets the application defaults for \sphinxstyleemphasis{option} based on the given \sphinxstyleemphasis{appname} and/or \sphinxstyleemphasis{realm} . - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_appdefault\_boolean() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_free \sphinxhyphen{} Free a krb5\_auth\_context structure.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_free:krb5-auth-con-free-free-a-krb5-auth-context-structure}}\label{\detokenize{appdev/refs/api/krb5_auth_con_free::doc}}\index{krb5\_auth\_con\_free (C function)@\spxentry{krb5\_auth\_con\_free}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_free:c.krb5_auth_con_free}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_free}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context to be freed - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 (always) - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees an auth context allocated by krb5\_auth\_con\_init(). - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_genaddrs \sphinxhyphen{} Generate auth context addresses from a connected socket.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_genaddrs:krb5-auth-con-genaddrs-generate-auth-context-addresses-from-a-connected-socket}}\label{\detokenize{appdev/refs/api/krb5_auth_con_genaddrs::doc}}\index{krb5\_auth\_con\_genaddrs (C function)@\spxentry{krb5\_auth\_con\_genaddrs}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_genaddrs:c.krb5_auth_con_genaddrs}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_genaddrs}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{infd}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{infd} \sphinxhyphen{} Connected socket descriptor - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flags - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets the local and/or remote addresses in \sphinxstyleemphasis{auth\_context} based on the local and remote endpoints of the socket \sphinxstyleemphasis{infd} . The following flags determine the operations performed: -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_ADDR Generate local address. - -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_ADDR Generate remote address. - -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_FULL\_ADDR Generate local address and port. - -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_FULL\_ADDR Generate remote address and port. - -\end{itemize} - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_get\_checksum\_func \sphinxhyphen{} Get the checksum callback from an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_get_checksum_func:krb5-auth-con-get-checksum-func-get-the-checksum-callback-from-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_get_checksum_func::doc}}\index{krb5\_auth\_con\_get\_checksum\_func (C function)@\spxentry{krb5\_auth\_con\_get\_checksum\_func}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_get_checksum_func:c.krb5_auth_con_get_checksum_func}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_get\_checksum\_func}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_mk_req_checksum_func:c.krb5_mk_req_checksum_func}]{\sphinxcrossref{\DUrole{n}{krb5\_mk\_req\_checksum\_func}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{func}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{func} \sphinxhyphen{} Checksum callback - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{data} \sphinxhyphen{} Callback argument - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 (always) - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getaddrs \sphinxhyphen{} Retrieve address fields from an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getaddrs:krb5-auth-con-getaddrs-retrieve-address-fields-from-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getaddrs::doc}}\index{krb5\_auth\_con\_getaddrs (C function)@\spxentry{krb5\_auth\_con\_getaddrs}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getaddrs:c.krb5_auth_con_getaddrs}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getaddrs}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{local\_addr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{remote\_addr}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{local\_addr} \sphinxhyphen{} Local address (NULL if not needed) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{remote\_addr} \sphinxhyphen{} Remote address (NULL if not needed) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getauthenticator \sphinxhyphen{} Retrieve the authenticator from an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getauthenticator:krb5-auth-con-getauthenticator-retrieve-the-authenticator-from-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getauthenticator::doc}}\index{krb5\_auth\_con\_getauthenticator (C function)@\spxentry{krb5\_auth\_con\_getauthenticator}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getauthenticator:c.krb5_auth_con_getauthenticator}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getauthenticator}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{authenticator}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{authenticator} \sphinxhyphen{} Authenticator - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success. Otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_authenticator() to free \sphinxstyleemphasis{authenticator} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getflags \sphinxhyphen{} Retrieve flags from a krb5\_auth\_context structure.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getflags:krb5-auth-con-getflags-retrieve-flags-from-a-krb5-auth-context-structure}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getflags::doc}}\index{krb5\_auth\_con\_getflags (C function)@\spxentry{krb5\_auth\_con\_getflags}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getflags:c.krb5_auth_con_getflags}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getflags}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flags bit mask - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 (always) - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Valid values for \sphinxstyleemphasis{flags} are: -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_DO\_TIME Use timestamps - -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_RET\_TIME Save timestamps - -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE Use sequence numbers - -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE Save sequence numbers - -\end{itemize} - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getkey \sphinxhyphen{} Retrieve the session key from an auth context as a keyblock.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getkey:krb5-auth-con-getkey-retrieve-the-session-key-from-an-auth-context-as-a-keyblock}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getkey::doc}}\index{krb5\_auth\_con\_getkey (C function)@\spxentry{krb5\_auth\_con\_getkey}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getkey:c.krb5_auth_con_getkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getkey}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{keyblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{keyblock} \sphinxhyphen{} Session key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success. Otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a keyblock containing the session key from \sphinxstyleemphasis{auth\_context} . Use krb5\_free\_keyblock() to free \sphinxstyleemphasis{keyblock} when it is no longer needed - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getkey\_k \sphinxhyphen{} Retrieve the session key from an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getkey_k:krb5-auth-con-getkey-k-retrieve-the-session-key-from-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getkey_k::doc}}\index{krb5\_auth\_con\_getkey\_k (C function)@\spxentry{krb5\_auth\_con\_getkey\_k}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getkey_k:c.krb5_auth_con_getkey_k}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getkey\_k}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{key} \sphinxhyphen{} Session key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 (always) - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets \sphinxstyleemphasis{key} to the session key from \sphinxstyleemphasis{auth\_context} . Use krb5\_k\_free\_key() to release \sphinxstyleemphasis{key} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getlocalseqnumber \sphinxhyphen{} Retrieve the local sequence number from an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getlocalseqnumber:krb5-auth-con-getlocalseqnumber-retrieve-the-local-sequence-number-from-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getlocalseqnumber::doc}}\index{krb5\_auth\_con\_getlocalseqnumber (C function)@\spxentry{krb5\_auth\_con\_getlocalseqnumber}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getlocalseqnumber:c.krb5_auth_con_getlocalseqnumber}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getlocalseqnumber}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{seqnumber}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{seqnumber} \sphinxhyphen{} Local sequence number - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Retrieve the local sequence number from \sphinxstyleemphasis{auth\_context} and return it in \sphinxstyleemphasis{seqnumber} . The KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE flag must be set in \sphinxstyleemphasis{auth\_context} for this function to be useful. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getrcache \sphinxhyphen{} Retrieve the replay cache from an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getrcache:krb5-auth-con-getrcache-retrieve-the-replay-cache-from-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getrcache::doc}}\index{krb5\_auth\_con\_getrcache (C function)@\spxentry{krb5\_auth\_con\_getrcache}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getrcache:c.krb5_auth_con_getrcache}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getrcache}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_rcache:c.krb5_rcache}]{\sphinxcrossref{\DUrole{n}{krb5\_rcache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rcache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rcache} \sphinxhyphen{} Replay cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 (always) - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function fetches the replay cache from \sphinxstyleemphasis{auth\_context} . The caller should not close \sphinxstyleemphasis{rcache} . - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getrecvsubkey \sphinxhyphen{} Retrieve the receiving subkey from an auth context as a keyblock.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getrecvsubkey:krb5-auth-con-getrecvsubkey-retrieve-the-receiving-subkey-from-an-auth-context-as-a-keyblock}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getrecvsubkey::doc}}\index{krb5\_auth\_con\_getrecvsubkey (C function)@\spxentry{krb5\_auth\_con\_getrecvsubkey}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getrecvsubkey:c.krb5_auth_con_getrecvsubkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getrecvsubkey}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{ac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{keyblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ac} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{keyblock} \sphinxhyphen{} Receiving subkey - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a keyblock containing the receiving subkey from \sphinxstyleemphasis{auth\_context} . Use krb5\_free\_keyblock() to free \sphinxstyleemphasis{keyblock} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getrecvsubkey\_k \sphinxhyphen{} Retrieve the receiving subkey from an auth context as a keyblock.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getrecvsubkey_k:krb5-auth-con-getrecvsubkey-k-retrieve-the-receiving-subkey-from-an-auth-context-as-a-keyblock}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getrecvsubkey_k::doc}}\index{krb5\_auth\_con\_getrecvsubkey\_k (C function)@\spxentry{krb5\_auth\_con\_getrecvsubkey\_k}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getrecvsubkey_k:c.krb5_auth_con_getrecvsubkey_k}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getrecvsubkey\_k}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{ac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ac} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{key} \sphinxhyphen{} Receiving subkey - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets \sphinxstyleemphasis{key} to the receiving subkey from \sphinxstyleemphasis{auth\_context} . Use krb5\_k\_free\_key() to release \sphinxstyleemphasis{key} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getremoteseqnumber \sphinxhyphen{} Retrieve the remote sequence number from an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getremoteseqnumber:krb5-auth-con-getremoteseqnumber-retrieve-the-remote-sequence-number-from-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getremoteseqnumber::doc}}\index{krb5\_auth\_con\_getremoteseqnumber (C function)@\spxentry{krb5\_auth\_con\_getremoteseqnumber}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getremoteseqnumber:c.krb5_auth_con_getremoteseqnumber}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getremoteseqnumber}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{seqnumber}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{seqnumber} \sphinxhyphen{} Remote sequence number - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Retrieve the remote sequence number from \sphinxstyleemphasis{auth\_context} and return it in \sphinxstyleemphasis{seqnumber} . The KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE flag must be set in \sphinxstyleemphasis{auth\_context} for this function to be useful. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getsendsubkey \sphinxhyphen{} Retrieve the send subkey from an auth context as a keyblock.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getsendsubkey:krb5-auth-con-getsendsubkey-retrieve-the-send-subkey-from-an-auth-context-as-a-keyblock}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getsendsubkey::doc}}\index{krb5\_auth\_con\_getsendsubkey (C function)@\spxentry{krb5\_auth\_con\_getsendsubkey}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getsendsubkey:c.krb5_auth_con_getsendsubkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getsendsubkey}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{ac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{keyblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ac} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{keyblock} \sphinxhyphen{} Send subkey - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a keyblock containing the send subkey from \sphinxstyleemphasis{auth\_context} . Use krb5\_free\_keyblock() to free \sphinxstyleemphasis{keyblock} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getsendsubkey\_k \sphinxhyphen{} Retrieve the send subkey from an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getsendsubkey_k:krb5-auth-con-getsendsubkey-k-retrieve-the-send-subkey-from-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getsendsubkey_k::doc}}\index{krb5\_auth\_con\_getsendsubkey\_k (C function)@\spxentry{krb5\_auth\_con\_getsendsubkey\_k}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getsendsubkey_k:c.krb5_auth_con_getsendsubkey_k}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getsendsubkey\_k}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{ac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ac} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{key} \sphinxhyphen{} Send subkey - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets \sphinxstyleemphasis{key} to the send subkey from \sphinxstyleemphasis{auth\_context} . Use krb5\_k\_free\_key() to release \sphinxstyleemphasis{key} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_init \sphinxhyphen{} Create and initialize an authentication context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_init:krb5-auth-con-init-create-and-initialize-an-authentication-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_init::doc}}\index{krb5\_auth\_con\_init (C function)@\spxentry{krb5\_auth\_con\_init}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_init:c.krb5_auth_con_init}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_init}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{auth\_context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates an authentication context to hold configuration and state relevant to krb5 functions for authenticating principals and protecting messages once authentication has occurred. - -\sphinxAtStartPar -By default, flags for the context are set to enable the use of the replay cache (KRB5\_AUTH\_CONTEXT\_DO\_TIME), but not sequence numbers. Use krb5\_auth\_con\_setflags() to change the flags. - -\sphinxAtStartPar -The allocated \sphinxstyleemphasis{auth\_context} must be freed with krb5\_auth\_con\_free() when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_set\_checksum\_func \sphinxhyphen{} Set a checksum callback in an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_set_checksum_func:krb5-auth-con-set-checksum-func-set-a-checksum-callback-in-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_set_checksum_func::doc}}\index{krb5\_auth\_con\_set\_checksum\_func (C function)@\spxentry{krb5\_auth\_con\_set\_checksum\_func}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_set_checksum_func:c.krb5_auth_con_set_checksum_func}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_set\_checksum\_func}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_mk_req_checksum_func:c.krb5_mk_req_checksum_func}]{\sphinxcrossref{\DUrole{n}{krb5\_mk\_req\_checksum\_func}}}}\DUrole{w}{ }\DUrole{n}{func}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{func} \sphinxhyphen{} Checksum callback - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Callback argument - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 (always) - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Set a callback to obtain checksum data in krb5\_mk\_req(). The callback will be invoked after the subkey and local sequence number are stored in \sphinxstyleemphasis{auth\_context} . - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_set\_req\_cksumtype \sphinxhyphen{} Set checksum type in an an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_set_req_cksumtype:krb5-auth-con-set-req-cksumtype-set-checksum-type-in-an-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_set_req_cksumtype::doc}}\index{krb5\_auth\_con\_set\_req\_cksumtype (C function)@\spxentry{krb5\_auth\_con\_set\_req\_cksumtype}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_set_req_cksumtype:c.krb5_auth_con_set_req_cksumtype}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_set\_req\_cksumtype}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{cksumtype}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksumtype} \sphinxhyphen{} Checksum type - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success. Otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets the checksum type in \sphinxstyleemphasis{auth\_context} to be used by krb5\_mk\_req() for the authenticator checksum. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_setaddrs \sphinxhyphen{} Set the local and remote addresses in an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_setaddrs:krb5-auth-con-setaddrs-set-the-local-and-remote-addresses-in-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_setaddrs::doc}}\index{krb5\_auth\_con\_setaddrs (C function)@\spxentry{krb5\_auth\_con\_setaddrs}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_setaddrs:c.krb5_auth_con_setaddrs}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_setaddrs}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{local\_addr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{remote\_addr}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{local\_addr} \sphinxhyphen{} Local address - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{remote\_addr} \sphinxhyphen{} Remote address - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function releases the storage assigned to the contents of the local and remote addresses of \sphinxstyleemphasis{auth\_context} and then sets them to \sphinxstyleemphasis{local\_addr} and \sphinxstyleemphasis{remote\_addr} respectively. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_auth\_con\_genaddrs() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_setflags \sphinxhyphen{} Set a flags field in a krb5\_auth\_context structure.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_setflags:krb5-auth-con-setflags-set-a-flags-field-in-a-krb5-auth-context-structure}}\label{\detokenize{appdev/refs/api/krb5_auth_con_setflags::doc}}\index{krb5\_auth\_con\_setflags (C function)@\spxentry{krb5\_auth\_con\_setflags}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_setflags:c.krb5_auth_con_setflags}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_setflags}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{n}{flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flags bit mask - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 (always) - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Valid values for \sphinxstyleemphasis{flags} are: -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_DO\_TIME Use timestamps - -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_RET\_TIME Save timestamps - -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE Use sequence numbers - -\item {} -\sphinxAtStartPar -KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE Save sequence numbers - -\end{itemize} - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_setports \sphinxhyphen{} Set local and remote port fields in an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_setports:krb5-auth-con-setports-set-local-and-remote-port-fields-in-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_setports::doc}}\index{krb5\_auth\_con\_setports (C function)@\spxentry{krb5\_auth\_con\_setports}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_setports:c.krb5_auth_con_setports}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_setports}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{local\_port}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{remote\_port}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{local\_port} \sphinxhyphen{} Local port - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{remote\_port} \sphinxhyphen{} Remote port - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function releases the storage assigned to the contents of the local and remote ports of \sphinxstyleemphasis{auth\_context} and then sets them to \sphinxstyleemphasis{local\_port} and \sphinxstyleemphasis{remote\_port} respectively. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_auth\_con\_genaddrs() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_setrcache \sphinxhyphen{} Set the replay cache in an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_setrcache:krb5-auth-con-setrcache-set-the-replay-cache-in-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_setrcache::doc}}\index{krb5\_auth\_con\_setrcache (C function)@\spxentry{krb5\_auth\_con\_setrcache}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_setrcache:c.krb5_auth_con_setrcache}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_setrcache}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_rcache:c.krb5_rcache}]{\sphinxcrossref{\DUrole{n}{krb5\_rcache}}}}\DUrole{w}{ }\DUrole{n}{rcache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{rcache} \sphinxhyphen{} Replay cache haddle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets the replay cache in \sphinxstyleemphasis{auth\_context} to \sphinxstyleemphasis{rcache} . \sphinxstyleemphasis{rcache} will be closed when \sphinxstyleemphasis{auth\_context} is freed, so the caller should relinquish that responsibility. - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_setrecvsubkey \sphinxhyphen{} Set the receiving subkey in an auth context with a keyblock.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_setrecvsubkey:krb5-auth-con-setrecvsubkey-set-the-receiving-subkey-in-an-auth-context-with-a-keyblock}}\label{\detokenize{appdev/refs/api/krb5_auth_con_setrecvsubkey::doc}}\index{krb5\_auth\_con\_setrecvsubkey (C function)@\spxentry{krb5\_auth\_con\_setrecvsubkey}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_setrecvsubkey:c.krb5_auth_con_setrecvsubkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_setrecvsubkey}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{ac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keyblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ac} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keyblock} \sphinxhyphen{} Receiving subkey - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets the receiving subkey in \sphinxstyleemphasis{ac} to a copy of \sphinxstyleemphasis{keyblock} . - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_setrecvsubkey\_k \sphinxhyphen{} Set the receiving subkey in an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_setrecvsubkey_k:krb5-auth-con-setrecvsubkey-k-set-the-receiving-subkey-in-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_setrecvsubkey_k::doc}}\index{krb5\_auth\_con\_setrecvsubkey\_k (C function)@\spxentry{krb5\_auth\_con\_setrecvsubkey\_k}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_setrecvsubkey_k:c.krb5_auth_con_setrecvsubkey_k}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_setrecvsubkey\_k}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{ac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ac} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Receiving subkey - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets the receiving subkey in \sphinxstyleemphasis{ac} to \sphinxstyleemphasis{key} , incrementing its reference count. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_setsendsubkey \sphinxhyphen{} Set the send subkey in an auth context with a keyblock.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_setsendsubkey:krb5-auth-con-setsendsubkey-set-the-send-subkey-in-an-auth-context-with-a-keyblock}}\label{\detokenize{appdev/refs/api/krb5_auth_con_setsendsubkey::doc}}\index{krb5\_auth\_con\_setsendsubkey (C function)@\spxentry{krb5\_auth\_con\_setsendsubkey}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_setsendsubkey:c.krb5_auth_con_setsendsubkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_setsendsubkey}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{ac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keyblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ac} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keyblock} \sphinxhyphen{} Send subkey - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success. Otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets the send subkey in \sphinxstyleemphasis{ac} to a copy of \sphinxstyleemphasis{keyblock} . - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_setsendsubkey\_k \sphinxhyphen{} Set the send subkey in an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_setsendsubkey_k:krb5-auth-con-setsendsubkey-k-set-the-send-subkey-in-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_setsendsubkey_k::doc}}\index{krb5\_auth\_con\_setsendsubkey\_k (C function)@\spxentry{krb5\_auth\_con\_setsendsubkey\_k}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_setsendsubkey_k:c.krb5_auth_con_setsendsubkey_k}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_setsendsubkey\_k}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{ac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ac} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{key} \sphinxhyphen{} Send subkey - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets the send subkey in \sphinxstyleemphasis{ac} to \sphinxstyleemphasis{key} , incrementing its reference count. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_setuseruserkey \sphinxhyphen{} Set the session key in an auth context.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_setuseruserkey:krb5-auth-con-setuseruserkey-set-the-session-key-in-an-auth-context}}\label{\detokenize{appdev/refs/api/krb5_auth_con_setuseruserkey::doc}}\index{krb5\_auth\_con\_setuseruserkey (C function)@\spxentry{krb5\_auth\_con\_setuseruserkey}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_setuseruserkey:c.krb5_auth_con_setuseruserkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_setuseruserkey}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keyblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keyblock} \sphinxhyphen{} User key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_cache\_match \sphinxhyphen{} Find a credential cache with a specified client principal.} -\label{\detokenize{appdev/refs/api/krb5_cc_cache_match:krb5-cc-cache-match-find-a-credential-cache-with-a-specified-client-principal}}\label{\detokenize{appdev/refs/api/krb5_cc_cache_match::doc}}\index{krb5\_cc\_cache\_match (C function)@\spxentry{krb5\_cc\_cache\_match}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_cache_match:c.krb5_cc_cache_match}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_cache\_match}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{client}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cache\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{client} \sphinxhyphen{} Client principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cache\_out} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KRB5\_CC\_NOTFOUND - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Find a cache within the collection whose default principal is \sphinxstyleemphasis{client} . Use \sphinxstyleemphasis{krb5\_cc\_close} to close \sphinxstyleemphasis{ccache} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.10 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_copy\_creds \sphinxhyphen{} Copy a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_copy_creds:krb5-cc-copy-creds-copy-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_copy_creds::doc}}\index{krb5\_cc\_copy\_creds (C function)@\spxentry{krb5\_cc\_copy\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_copy_creds:c.krb5_cc_copy_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_copy\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{incc}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{outcc}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{incc} \sphinxhyphen{} Credential cache to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outcc} \sphinxhyphen{} Copy of credential cache to be filled in - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_end\_seq\_get \sphinxhyphen{} Finish a series of sequential processing credential cache entries.} -\label{\detokenize{appdev/refs/api/krb5_cc_end_seq_get:krb5-cc-end-seq-get-finish-a-series-of-sequential-processing-credential-cache-entries}}\label{\detokenize{appdev/refs/api/krb5_cc_end_seq_get::doc}}\index{krb5\_cc\_end\_seq\_get (C function)@\spxentry{krb5\_cc\_end\_seq\_get}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_end_seq_get:c.krb5_cc_end_seq_get}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_end\_seq\_get}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cc_cursor:c.krb5_cc_cursor}]{\sphinxcrossref{\DUrole{n}{krb5\_cc\_cursor}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cursor}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cursor} \sphinxhyphen{} Cursor - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 (always) - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function finishes processing credential cache entries and invalidates \sphinxstyleemphasis{cursor} . - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_cc\_start\_seq\_get(), krb5\_cc\_next\_cred() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_get\_config \sphinxhyphen{} Get a configuration value from a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_get_config:krb5-cc-get-config-get-a-configuration-value-from-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_get_config::doc}}\index{krb5\_cc\_get\_config (C function)@\spxentry{krb5\_cc\_get\_config}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_get_config:c.krb5_cc_get_config}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_get\_config}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{id}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{id} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Configuration for this principal; if NULL, global for the whole cache - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Name of config variable - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{data} \sphinxhyphen{} Data to be fetched - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{data} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_get\_flags \sphinxhyphen{} Retrieve flags from a credential cache structure.} -\label{\detokenize{appdev/refs/api/krb5_cc_get_flags:krb5-cc-get-flags-retrieve-flags-from-a-credential-cache-structure}}\label{\detokenize{appdev/refs/api/krb5_cc_get_flags::doc}}\index{krb5\_cc\_get\_flags (C function)@\spxentry{krb5\_cc\_get\_flags}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_get_flags:c.krb5_cc_get_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_get\_flags}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flag bit mask - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\begin{sphinxadmonition}{warning}{Warning:} -\sphinxAtStartPar -For memory credential cache always returns a flag mask of 0. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_get\_full\_name \sphinxhyphen{} Retrieve the full name of a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_get_full_name:krb5-cc-get-full-name-retrieve-the-full-name-of-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_get_full_name::doc}}\index{krb5\_cc\_get\_full\_name (C function)@\spxentry{krb5\_cc\_get\_full\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_get_full_name:c.krb5_cc_get_full_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_get\_full\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{fullname\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{fullname\_out} \sphinxhyphen{} Full name of cache - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_string() to free \sphinxstyleemphasis{fullname\_out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.10 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_move \sphinxhyphen{} Move a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_move:krb5-cc-move-move-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_move::doc}}\index{krb5\_cc\_move (C function)@\spxentry{krb5\_cc\_move}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_move:c.krb5_cc_move}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_move}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{src}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{dst}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{src} \sphinxhyphen{} The credential cache to move the content from - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{dst} \sphinxhyphen{} The credential cache to move the content to - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; src is closed. - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes; src is still allocated. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function reinitializes \sphinxstyleemphasis{dst} and populates it with the credentials and default principal of \sphinxstyleemphasis{src} ; then, if successful, destroys \sphinxstyleemphasis{src} . - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_next\_cred \sphinxhyphen{} Retrieve the next entry from the credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_next_cred:krb5-cc-next-cred-retrieve-the-next-entry-from-the-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_next_cred::doc}}\index{krb5\_cc\_next\_cred (C function)@\spxentry{krb5\_cc\_next\_cred}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_next_cred:c.krb5_cc_next_cred}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_next\_cred}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cc_cursor:c.krb5_cc_cursor}]{\sphinxcrossref{\DUrole{n}{krb5\_cc\_cursor}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cursor}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cursor} \sphinxhyphen{} Cursor - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Next credential cache entry - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function fills in \sphinxstyleemphasis{creds} with the next entry in \sphinxstyleemphasis{cache} and advances \sphinxstyleemphasis{cursor} . - -\sphinxAtStartPar -Use krb5\_free\_cred\_contents() to free \sphinxstyleemphasis{creds} when it is no longer needed. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_cc\_start\_seq\_get(), krb5\_end\_seq\_get() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_remove\_cred \sphinxhyphen{} Remove credentials from a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_remove_cred:krb5-cc-remove-cred-remove-credentials-from-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_remove_cred::doc}}\index{krb5\_cc\_remove\_cred (C function)@\spxentry{krb5\_cc\_remove\_cred}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_remove_cred:c.krb5_cc_remove_cred}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_remove\_cred}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{flags}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Bitwise\sphinxhyphen{}ORed search flags - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Credentials to be matched - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_CC\_NOSUPP Not implemented for this cache type - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -No matches found; Data cannot be deleted; Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function accepts the same flag values as krb5\_cc\_retrieve\_cred(). - -\begin{sphinxadmonition}{warning}{Warning:} -\sphinxAtStartPar -This function is not implemented for some cache types. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_retrieve\_cred \sphinxhyphen{} Retrieve a specified credentials from a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_retrieve_cred:krb5-cc-retrieve-cred-retrieve-a-specified-credentials-from-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_retrieve_cred::doc}}\index{krb5\_cc\_retrieve\_cred (C function)@\spxentry{krb5\_cc\_retrieve\_cred}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_retrieve_cred:c.krb5_cc_retrieve_cred}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_retrieve\_cred}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{flags}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{mcreds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flags bit mask - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{mcreds} \sphinxhyphen{} Credentials to match - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Credentials matching the requested value - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function searches a credential cache for credentials matching \sphinxstyleemphasis{mcreds} and returns it if found. - -\sphinxAtStartPar -Valid values for \sphinxstyleemphasis{flags} are: -\begin{quote} -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_TC\_MATCH\_TIMES The requested lifetime must be at least as great as in \sphinxstyleemphasis{mcreds} . - -\item {} -\sphinxAtStartPar -KRB5\_TC\_MATCH\_IS\_SKEY The \sphinxstyleemphasis{is\_skey} field much match exactly. - -\item {} -\sphinxAtStartPar -KRB5\_TC\_MATCH\_FLAGS Flags set in \sphinxstyleemphasis{mcreds} must be set. - -\item {} -\sphinxAtStartPar -KRB5\_TC\_MATCH\_TIMES\_EXACT The requested lifetime must match exactly. - -\item {} -\sphinxAtStartPar -KRB5\_TC\_MATCH\_FLAGS\_EXACT Flags must match exactly. - -\item {} -\sphinxAtStartPar -KRB5\_TC\_MATCH\_AUTHDATA The authorization data must match. - -\item {} -\sphinxAtStartPar -KRB5\_TC\_MATCH\_SRV\_NAMEONLY Only the name portion of the principal name must match, not the realm. - -\item {} -\sphinxAtStartPar -KRB5\_TC\_MATCH\_2ND\_TKT The second tickets must match. - -\item {} -\sphinxAtStartPar -KRB5\_TC\_MATCH\_KTYPE The encryption key types must match. - -\item {} -\sphinxAtStartPar -KRB5\_TC\_SUPPORTED\_KTYPES Check all matching entries that have any supported encryption type and return the one with the encryption type listed earliest. - -\end{itemize} - -\sphinxAtStartPar -Use krb5\_free\_cred\_contents() to free \sphinxstyleemphasis{creds} when it is no longer needed. -\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_select \sphinxhyphen{} Select a credential cache to use with a server principal.} -\label{\detokenize{appdev/refs/api/krb5_cc_select:krb5-cc-select-select-a-credential-cache-to-use-with-a-server-principal}}\label{\detokenize{appdev/refs/api/krb5_cc_select::doc}}\index{krb5\_cc\_select (C function)@\spxentry{krb5\_cc\_select}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_select:c.krb5_cc_select}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_select}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{server}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cache\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{princ\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Server principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cache\_out} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{princ\_out} \sphinxhyphen{} Client principal - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -If an appropriate cache is found, 0 is returned, cache\_out is set to the selected cache, and princ\_out is set to the default principal of that cache. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Select a cache within the collection containing credentials most appropriate for use with \sphinxstyleemphasis{server} , according to configured rules and heuristics. - -\sphinxAtStartPar -Use krb5\_cc\_close() to release \sphinxstyleemphasis{cache\_out} when it is no longer needed. Use krb5\_free\_principal() to release \sphinxstyleemphasis{princ\_out} when it is no longer needed. Note that \sphinxstyleemphasis{princ\_out} is set in some error conditions. - -\sphinxAtStartPar -If the appropriate client principal can be authoritatively determined but the cache collection contains no credentials for that principal, then KRB5\_CC\_NOTFOUND is returned, \sphinxstyleemphasis{cache\_out} is set to NULL, and \sphinxstyleemphasis{princ\_out} is set to the appropriate client principal. - -\sphinxAtStartPar -If no configured mechanism can determine the appropriate cache or principal, KRB5\_CC\_NOTFOUND is returned and \sphinxstyleemphasis{cache\_out} and \sphinxstyleemphasis{princ\_out} are set to NULL. - -\sphinxAtStartPar -Any other error code indicates a fatal error in the processing of a cache selection mechanism. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.10 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_set\_config \sphinxhyphen{} Store a configuration value in a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_set_config:krb5-cc-set-config-store-a-configuration-value-in-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_set_config::doc}}\index{krb5\_cc\_set\_config (C function)@\spxentry{krb5\_cc\_set\_config}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_set_config:c.krb5_cc_set_config}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_set\_config}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{id}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{id} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Configuration for a specific principal; if NULL, global for the whole cache - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Name of config variable - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Data to store, or NULL to remove - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\begin{sphinxadmonition}{warning}{Warning:} -\sphinxAtStartPar -Before version 1.10 \sphinxstyleemphasis{data} was assumed to be always non\sphinxhyphen{}null. -\end{sphinxadmonition} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -Existing configuration under the same key is over\sphinxhyphen{}written. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_set\_default\_name \sphinxhyphen{} Set the default credential cache name.} -\label{\detokenize{appdev/refs/api/krb5_cc_set_default_name:krb5-cc-set-default-name-set-the-default-credential-cache-name}}\label{\detokenize{appdev/refs/api/krb5_cc_set_default_name::doc}}\index{krb5\_cc\_set\_default\_name (C function)@\spxentry{krb5\_cc\_set\_default\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_set_default_name:c.krb5_cc_set_default_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_set\_default\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{name}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{name} \sphinxhyphen{} Default credential cache name or NULL - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KV5M\_CONTEXT Bad magic number for \_krb5\_context structure - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Set the default credential cache name to \sphinxstyleemphasis{name} for future operations using \sphinxstyleemphasis{context} . If \sphinxstyleemphasis{name} is NULL, clear any previous application\sphinxhyphen{}set default name and forget any cached value of the default name for \sphinxstyleemphasis{context} . - -\sphinxAtStartPar -Calls to this function invalidate the result of any previous calls to krb5\_cc\_default\_name() using \sphinxstyleemphasis{context} . - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_set\_flags \sphinxhyphen{} Set options flags on a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_set_flags:krb5-cc-set-flags-set-options-flags-on-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_set_flags::doc}}\index{krb5\_cc\_set\_flags (C function)@\spxentry{krb5\_cc\_set\_flags}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_set_flags:c.krb5_cc_set_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_set\_flags}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Flag bit mask - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function resets \sphinxstyleemphasis{cache} flags to \sphinxstyleemphasis{flags} . - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_start\_seq\_get \sphinxhyphen{} Prepare to sequentially read every credential in a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_start_seq_get:krb5-cc-start-seq-get-prepare-to-sequentially-read-every-credential-in-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_start_seq_get::doc}}\index{krb5\_cc\_start\_seq\_get (C function)@\spxentry{krb5\_cc\_start\_seq\_get}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_start_seq_get:c.krb5_cc_start_seq_get}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_start\_seq\_get}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cc_cursor:c.krb5_cc_cursor}]{\sphinxcrossref{\DUrole{n}{krb5\_cc\_cursor}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cursor}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cursor} \sphinxhyphen{} Cursor - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -krb5\_cc\_end\_seq\_get() must be called to complete the retrieve operation. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -If the cache represented by \sphinxstyleemphasis{cache} is modified between the time of the call to this function and the time of the final krb5\_cc\_end\_seq\_get(), these changes may not be reflected in the results of krb5\_cc\_next\_cred() calls. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_store\_cred \sphinxhyphen{} Store credentials in a credential cache.} -\label{\detokenize{appdev/refs/api/krb5_cc_store_cred:krb5-cc-store-cred-store-credentials-in-a-credential-cache}}\label{\detokenize{appdev/refs/api/krb5_cc_store_cred::doc}}\index{krb5\_cc\_store\_cred (C function)@\spxentry{krb5\_cc\_store\_cred}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_store_cred:c.krb5_cc_store_cred}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_store\_cred}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Credentials to be stored in cache - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Permission errors; storage failure errors; Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function stores \sphinxstyleemphasis{creds} into \sphinxstyleemphasis{cache} . If \sphinxstyleemphasis{creds\sphinxhyphen{}\textgreater{}server} and the server in the decoded ticket \sphinxstyleemphasis{creds\sphinxhyphen{}\textgreater{}ticket} differ, the credentials will be stored under both server principal names. - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_support\_switch \sphinxhyphen{} Determine whether a credential cache type supports switching.} -\label{\detokenize{appdev/refs/api/krb5_cc_support_switch:krb5-cc-support-switch-determine-whether-a-credential-cache-type-supports-switching}}\label{\detokenize{appdev/refs/api/krb5_cc_support_switch::doc}}\index{krb5\_cc\_support\_switch (C function)@\spxentry{krb5\_cc\_support\_switch}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_support_switch:c.krb5_cc_support_switch}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_support\_switch}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{type}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{type} \sphinxhyphen{} Credential cache type - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if type supports switching - -\item {} -\sphinxAtStartPar -FALSE if it does not or is not a valid credential cache type. - -\end{itemize} - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.10 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_switch \sphinxhyphen{} Make a credential cache the primary cache for its collection.} -\label{\detokenize{appdev/refs/api/krb5_cc_switch:krb5-cc-switch-make-a-credential-cache-the-primary-cache-for-its-collection}}\label{\detokenize{appdev/refs/api/krb5_cc_switch::doc}}\index{krb5\_cc\_switch (C function)@\spxentry{krb5\_cc\_switch}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_switch:c.krb5_cc_switch}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_switch}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{cache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success, or the type of cache doesn’t support switching - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -If the type of \sphinxstyleemphasis{cache} supports it, set \sphinxstyleemphasis{cache} to be the primary credential cache for the collection it belongs to. - -\sphinxstepscope - - -\subsubsection{krb5\_cccol\_cursor\_free \sphinxhyphen{} Free a credential cache collection cursor.} -\label{\detokenize{appdev/refs/api/krb5_cccol_cursor_free:krb5-cccol-cursor-free-free-a-credential-cache-collection-cursor}}\label{\detokenize{appdev/refs/api/krb5_cccol_cursor_free::doc}}\index{krb5\_cccol\_cursor\_free (C function)@\spxentry{krb5\_cccol\_cursor\_free}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cccol_cursor_free:c.krb5_cccol_cursor_free}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cccol\_cursor\_free}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cccol_cursor:c.krb5_cccol_cursor}]{\sphinxcrossref{\DUrole{n}{krb5\_cccol\_cursor}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cursor}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cursor} \sphinxhyphen{} Cursor - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_cccol\_cursor\_new(), krb5\_cccol\_cursor\_next() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_cccol\_cursor\_new \sphinxhyphen{} Prepare to iterate over the collection of known credential caches.} -\label{\detokenize{appdev/refs/api/krb5_cccol_cursor_new:krb5-cccol-cursor-new-prepare-to-iterate-over-the-collection-of-known-credential-caches}}\label{\detokenize{appdev/refs/api/krb5_cccol_cursor_new::doc}}\index{krb5\_cccol\_cursor\_new (C function)@\spxentry{krb5\_cccol\_cursor\_new}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cccol_cursor_new:c.krb5_cccol_cursor_new}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cccol\_cursor\_new}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cccol_cursor:c.krb5_cccol_cursor}]{\sphinxcrossref{\DUrole{n}{krb5\_cccol\_cursor}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cursor}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cursor} \sphinxhyphen{} Cursor - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Get a new cache iteration \sphinxstyleemphasis{cursor} that will iterate over all known credential caches independent of type. - -\sphinxAtStartPar -Use krb5\_cccol\_cursor\_free() to release \sphinxstyleemphasis{cursor} when it is no longer needed. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_cccol\_cursor\_next() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_cccol\_cursor\_next \sphinxhyphen{} Get the next credential cache in the collection.} -\label{\detokenize{appdev/refs/api/krb5_cccol_cursor_next:krb5-cccol-cursor-next-get-the-next-credential-cache-in-the-collection}}\label{\detokenize{appdev/refs/api/krb5_cccol_cursor_next::doc}}\index{krb5\_cccol\_cursor\_next (C function)@\spxentry{krb5\_cccol\_cursor\_next}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cccol_cursor_next:c.krb5_cccol_cursor_next}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cccol\_cursor\_next}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cccol_cursor:c.krb5_cccol_cursor}]{\sphinxcrossref{\DUrole{n}{krb5\_cccol\_cursor}}}}\DUrole{w}{ }\DUrole{n}{cursor}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ccache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cursor} \sphinxhyphen{} Cursor - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_cc\_close() to close \sphinxstyleemphasis{ccache} when it is no longer needed. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_cccol\_cursor\_new(), krb5\_cccol\_cursor\_free() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -When all caches are iterated over and the end of the list is reached, \sphinxstyleemphasis{ccache} is set to NULL. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cccol\_have\_content \sphinxhyphen{} Check if the credential cache collection contains any initialized caches.} -\label{\detokenize{appdev/refs/api/krb5_cccol_have_content:krb5-cccol-have-content-check-if-the-credential-cache-collection-contains-any-initialized-caches}}\label{\detokenize{appdev/refs/api/krb5_cccol_have_content::doc}}\index{krb5\_cccol\_have\_content (C function)@\spxentry{krb5\_cccol\_have\_content}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cccol_have_content:c.krb5_cccol_have_content}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cccol\_have\_content}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 At least one initialized cache is present in the collection - -\item {} -\sphinxAtStartPar -KRB5\_CC\_NOTFOUND The collection contains no caches - -\end{itemize} - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_clear\_error\_message \sphinxhyphen{} Clear the extended error message in a context.} -\label{\detokenize{appdev/refs/api/krb5_clear_error_message:krb5-clear-error-message-clear-the-extended-error-message-in-a-context}}\label{\detokenize{appdev/refs/api/krb5_clear_error_message::doc}}\index{krb5\_clear\_error\_message (C function)@\spxentry{krb5\_clear\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_clear_error_message:c.krb5_clear_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_clear\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\end{description}\end{quote} - -\sphinxAtStartPar -This function unsets the extended error message in a context, to ensure that it is not mistakenly applied to another occurrence of the same error code. - -\sphinxstepscope - - -\subsubsection{krb5\_check\_clockskew \sphinxhyphen{} Check if a timestamp is within the allowed clock skew of the current time.} -\label{\detokenize{appdev/refs/api/krb5_check_clockskew:krb5-check-clockskew-check-if-a-timestamp-is-within-the-allowed-clock-skew-of-the-current-time}}\label{\detokenize{appdev/refs/api/krb5_check_clockskew::doc}}\index{krb5\_check\_clockskew (C function)@\spxentry{krb5\_check\_clockskew}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_check_clockskew:c.krb5_check_clockskew}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_check\_clockskew}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{n}{date}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{date} \sphinxhyphen{} Timestamp to check - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KRB5KRB\_AP\_ERR\_SKEW date is not within allowable clock skew - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function checks if \sphinxstyleemphasis{date} is close enough to the current time according to the configured allowable clock skew. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.10 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_addresses \sphinxhyphen{} Copy an array of addresses.} -\label{\detokenize{appdev/refs/api/krb5_copy_addresses:krb5-copy-addresses-copy-an-array-of-addresses}}\label{\detokenize{appdev/refs/api/krb5_copy_addresses::doc}}\index{krb5\_copy\_addresses (C function)@\spxentry{krb5\_copy\_addresses}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_addresses:c.krb5_copy_addresses}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_addresses}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{inaddr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{outaddr}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inaddr} \sphinxhyphen{} Array of addresses to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outaddr} \sphinxhyphen{} Copy of array of addresses - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new address array containing a copy of \sphinxstyleemphasis{inaddr} . Use krb5\_free\_addresses() to free \sphinxstyleemphasis{outaddr} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_authdata \sphinxhyphen{} Copy an authorization data list.} -\label{\detokenize{appdev/refs/api/krb5_copy_authdata:krb5-copy-authdata-copy-an-authorization-data-list}}\label{\detokenize{appdev/refs/api/krb5_copy_authdata::doc}}\index{krb5\_copy\_authdata (C function)@\spxentry{krb5\_copy\_authdata}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_authdata:c.krb5_copy_authdata}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_authdata}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_authdat}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_authdat} \sphinxhyphen{} List of \sphinxstyleemphasis{krb5\_authdata} structures - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out} \sphinxhyphen{} New array of \sphinxstyleemphasis{krb5\_authdata} structures - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new authorization data list containing a copy of \sphinxstyleemphasis{in\_authdat} , which must be null\sphinxhyphen{}terminated. Use krb5\_free\_authdata() to free \sphinxstyleemphasis{out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The last array entry in \sphinxstyleemphasis{in\_authdat} must be a NULL pointer. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_authenticator \sphinxhyphen{} Copy a krb5\_authenticator structure.} -\label{\detokenize{appdev/refs/api/krb5_copy_authenticator:krb5-copy-authenticator-copy-a-krb5-authenticator-structure}}\label{\detokenize{appdev/refs/api/krb5_copy_authenticator::doc}}\index{krb5\_copy\_authenticator (C function)@\spxentry{krb5\_copy\_authenticator}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_authenticator:c.krb5_copy_authenticator}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_authenticator}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{authfrom}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{authto}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{authfrom} \sphinxhyphen{} krb5\_authenticator structure to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{authto} \sphinxhyphen{} Copy of krb5\_authenticator structure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new krb5\_authenticator structure with the content of \sphinxstyleemphasis{authfrom} . Use krb5\_free\_authenticator() to free \sphinxstyleemphasis{authto} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_checksum \sphinxhyphen{} Copy a krb5\_checksum structure.} -\label{\detokenize{appdev/refs/api/krb5_copy_checksum:krb5-copy-checksum-copy-a-krb5-checksum-structure}}\label{\detokenize{appdev/refs/api/krb5_copy_checksum::doc}}\index{krb5\_copy\_checksum (C function)@\spxentry{krb5\_copy\_checksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_checksum:c.krb5_copy_checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_checksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ckfrom}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ckto}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ckfrom} \sphinxhyphen{} Checksum to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ckto} \sphinxhyphen{} Copy of krb5\_checksum structure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new krb5\_checksum structure with the contents of \sphinxstyleemphasis{ckfrom} . Use krb5\_free\_checksum() to free \sphinxstyleemphasis{ckto} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_context \sphinxhyphen{} Copy a krb5\_context structure.} -\label{\detokenize{appdev/refs/api/krb5_copy_context:krb5-copy-context-copy-a-krb5-context-structure}}\label{\detokenize{appdev/refs/api/krb5_copy_context::doc}}\index{krb5\_copy\_context (C function)@\spxentry{krb5\_copy\_context}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_context:c.krb5_copy_context}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_context}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{nctx\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{nctx\_out} \sphinxhyphen{} New context structure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -The newly created context must be released by calling krb5\_free\_context() when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_creds \sphinxhyphen{} Copy a krb5\_creds structure.} -\label{\detokenize{appdev/refs/api/krb5_copy_creds:krb5-copy-creds-copy-a-krb5-creds-structure}}\label{\detokenize{appdev/refs/api/krb5_copy_creds::doc}}\index{krb5\_copy\_creds (C function)@\spxentry{krb5\_copy\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_creds:c.krb5_copy_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{incred}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{outcred}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{incred} \sphinxhyphen{} Credentials structure to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outcred} \sphinxhyphen{} Copy of \sphinxstyleemphasis{incred} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new credential with the contents of \sphinxstyleemphasis{incred} . Use krb5\_free\_creds() to free \sphinxstyleemphasis{outcred} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_data \sphinxhyphen{} Copy a krb5\_data object.} -\label{\detokenize{appdev/refs/api/krb5_copy_data:krb5-copy-data-copy-a-krb5-data-object}}\label{\detokenize{appdev/refs/api/krb5_copy_data::doc}}\index{krb5\_copy\_data (C function)@\spxentry{krb5\_copy\_data}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_data:c.krb5_copy_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_data}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{indata}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{outdata}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{indata} \sphinxhyphen{} Data object to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outdata} \sphinxhyphen{} Copy of \sphinxstyleemphasis{indata} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new krb5\_data object with the contents of \sphinxstyleemphasis{indata} . Use krb5\_free\_data() to free \sphinxstyleemphasis{outdata} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_error\_message \sphinxhyphen{} Copy the most recent extended error message from one context to another.} -\label{\detokenize{appdev/refs/api/krb5_copy_error_message:krb5-copy-error-message-copy-the-most-recent-extended-error-message-from-one-context-to-another}}\label{\detokenize{appdev/refs/api/krb5_copy_error_message::doc}}\index{krb5\_copy\_error\_message (C function)@\spxentry{krb5\_copy\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_error_message:c.krb5_copy_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{dest\_ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{src\_ctx}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{dest\_ctx} \sphinxhyphen{} Library context to copy message to - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{src\_ctx} \sphinxhyphen{} Library context with current message - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_keyblock \sphinxhyphen{} Copy a keyblock.} -\label{\detokenize{appdev/refs/api/krb5_copy_keyblock:krb5-copy-keyblock-copy-a-keyblock}}\label{\detokenize{appdev/refs/api/krb5_copy_keyblock::doc}}\index{krb5\_copy\_keyblock (C function)@\spxentry{krb5\_copy\_keyblock}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_keyblock:c.krb5_copy_keyblock}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_keyblock}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{from}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{to}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{from} \sphinxhyphen{} Keyblock to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{to} \sphinxhyphen{} Copy of keyblock \sphinxstyleemphasis{from} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new keyblock with the same contents as \sphinxstyleemphasis{from} . Use krb5\_free\_keyblock() to free \sphinxstyleemphasis{to} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_keyblock\_contents \sphinxhyphen{} Copy the contents of a keyblock.} -\label{\detokenize{appdev/refs/api/krb5_copy_keyblock_contents:krb5-copy-keyblock-contents-copy-the-contents-of-a-keyblock}}\label{\detokenize{appdev/refs/api/krb5_copy_keyblock_contents::doc}}\index{krb5\_copy\_keyblock\_contents (C function)@\spxentry{krb5\_copy\_keyblock\_contents}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_keyblock_contents:c.krb5_copy_keyblock_contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_keyblock\_contents}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{from}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{to}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{from} \sphinxhyphen{} Key to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{to} \sphinxhyphen{} Output key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function copies the contents of \sphinxstyleemphasis{from} to \sphinxstyleemphasis{to} . Use krb5\_free\_keyblock\_contents() to free \sphinxstyleemphasis{to} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_principal \sphinxhyphen{} Copy a principal.} -\label{\detokenize{appdev/refs/api/krb5_copy_principal:krb5-copy-principal-copy-a-principal}}\label{\detokenize{appdev/refs/api/krb5_copy_principal::doc}}\index{krb5\_copy\_principal (C function)@\spxentry{krb5\_copy\_principal}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_principal:c.krb5_copy_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_principal}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{inprinc}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{outprinc}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inprinc} \sphinxhyphen{} Principal to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outprinc} \sphinxhyphen{} Copy of \sphinxstyleemphasis{inprinc} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new principal structure with the contents of \sphinxstyleemphasis{inprinc} . Use krb5\_free\_principal() to free \sphinxstyleemphasis{outprinc} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_copy\_ticket \sphinxhyphen{} Copy a krb5\_ticket structure.} -\label{\detokenize{appdev/refs/api/krb5_copy_ticket:krb5-copy-ticket-copy-a-krb5-ticket-structure}}\label{\detokenize{appdev/refs/api/krb5_copy_ticket::doc}}\index{krb5\_copy\_ticket (C function)@\spxentry{krb5\_copy\_ticket}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_copy_ticket:c.krb5_copy_ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_copy\_ticket}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{from}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{pto}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{from} \sphinxhyphen{} Ticket to be copied - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{pto} \sphinxhyphen{} Copy of ticket - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new krb5\_ticket structure containing the contents of \sphinxstyleemphasis{from} . Use krb5\_free\_ticket() to free \sphinxstyleemphasis{pto} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_find\_authdata \sphinxhyphen{} Find authorization data elements.} -\label{\detokenize{appdev/refs/api/krb5_find_authdata:krb5-find-authdata-find-authorization-data-elements}}\label{\detokenize{appdev/refs/api/krb5_find_authdata::doc}}\index{krb5\_find\_authdata (C function)@\spxentry{krb5\_find\_authdata}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_find_authdata:c.krb5_find_authdata}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_find\_authdata}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ticket\_authdata}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ap\_req\_authdata}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdatatype:c.krb5_authdatatype}]{\sphinxcrossref{\DUrole{n}{krb5\_authdatatype}}}}\DUrole{w}{ }\DUrole{n}{ad\_type}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{results}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ticket\_authdata} \sphinxhyphen{} Authorization data list from ticket - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ap\_req\_authdata} \sphinxhyphen{} Authorization data list from AP request - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ad\_type} \sphinxhyphen{} Authorization data type to find - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{results} \sphinxhyphen{} List of matching entries - -\end{description}\end{quote} - -\sphinxAtStartPar -This function searches \sphinxstyleemphasis{ticket\_authdata} and \sphinxstyleemphasis{ap\_req\_authdata} for elements of type \sphinxstyleemphasis{ad\_type} . Either input list may be NULL, in which case it will not be searched; otherwise, the input lists must be terminated by NULL entries. This function will search inside AD\sphinxhyphen{}IF\sphinxhyphen{}RELEVANT containers if found in either list. Use krb5\_free\_authdata() to free \sphinxstyleemphasis{results} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.10 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_addresses \sphinxhyphen{} Free the data stored in array of addresses.} -\label{\detokenize{appdev/refs/api/krb5_free_addresses:krb5-free-addresses-free-the-data-stored-in-array-of-addresses}}\label{\detokenize{appdev/refs/api/krb5_free_addresses::doc}}\index{krb5\_free\_addresses (C function)@\spxentry{krb5\_free\_addresses}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_addresses:c.krb5_free_addresses}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_addresses}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Array of addresses to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the array itself. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The last entry in the array must be a NULL pointer. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_ap\_rep\_enc\_part \sphinxhyphen{} Free a krb5\_ap\_rep\_enc\_part structure.} -\label{\detokenize{appdev/refs/api/krb5_free_ap_rep_enc_part:krb5-free-ap-rep-enc-part-free-a-krb5-ap-rep-enc-part-structure}}\label{\detokenize{appdev/refs/api/krb5_free_ap_rep_enc_part::doc}}\index{krb5\_free\_ap\_rep\_enc\_part (C function)@\spxentry{krb5\_free\_ap\_rep\_enc\_part}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_ap_rep_enc_part:c.krb5_free_ap_rep_enc_part}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_ap\_rep\_enc\_part}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep\_enc\_part}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} AP\sphinxhyphen{}REP enc part to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_authdata \sphinxhyphen{} Free the storage assigned to array of authentication data.} -\label{\detokenize{appdev/refs/api/krb5_free_authdata:krb5-free-authdata-free-the-storage-assigned-to-array-of-authentication-data}}\label{\detokenize{appdev/refs/api/krb5_free_authdata::doc}}\index{krb5\_free\_authdata (C function)@\spxentry{krb5\_free\_authdata}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_authdata:c.krb5_free_authdata}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_authdata}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Array of authentication data to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the array itself. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The last entry in the array must be a NULL pointer. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_authenticator \sphinxhyphen{} Free a krb5\_authenticator structure.} -\label{\detokenize{appdev/refs/api/krb5_free_authenticator:krb5-free-authenticator-free-a-krb5-authenticator-structure}}\label{\detokenize{appdev/refs/api/krb5_free_authenticator::doc}}\index{krb5\_free\_authenticator (C function)@\spxentry{krb5\_free\_authenticator}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_authenticator:c.krb5_free_authenticator}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_authenticator}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Authenticator structure to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_cred\_contents \sphinxhyphen{} Free the contents of a krb5\_creds structure.} -\label{\detokenize{appdev/refs/api/krb5_free_cred_contents:krb5-free-cred-contents-free-the-contents-of-a-krb5-creds-structure}}\label{\detokenize{appdev/refs/api/krb5_free_cred_contents::doc}}\index{krb5\_free\_cred\_contents (C function)@\spxentry{krb5\_free\_cred\_contents}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_cred_contents:c.krb5_free_cred_contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_cred\_contents}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Credential structure to free contents of - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} , but not the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_creds \sphinxhyphen{} Free a krb5\_creds structure.} -\label{\detokenize{appdev/refs/api/krb5_free_creds:krb5-free-creds-free-a-krb5-creds-structure}}\label{\detokenize{appdev/refs/api/krb5_free_creds::doc}}\index{krb5\_free\_creds (C function)@\spxentry{krb5\_free\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_creds:c.krb5_free_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Credential structure to be freed. - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_data \sphinxhyphen{} Free a krb5\_data structure.} -\label{\detokenize{appdev/refs/api/krb5_free_data:krb5-free-data-free-a-krb5-data-structure}}\label{\detokenize{appdev/refs/api/krb5_free_data::doc}}\index{krb5\_free\_data (C function)@\spxentry{krb5\_free\_data}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_data:c.krb5_free_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_data}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Data structure to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_data\_contents \sphinxhyphen{} Free the contents of a krb5\_data structure and zero the data field.} -\label{\detokenize{appdev/refs/api/krb5_free_data_contents:krb5-free-data-contents-free-the-contents-of-a-krb5-data-structure-and-zero-the-data-field}}\label{\detokenize{appdev/refs/api/krb5_free_data_contents::doc}}\index{krb5\_free\_data\_contents (C function)@\spxentry{krb5\_free\_data\_contents}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_data_contents:c.krb5_free_data_contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_data\_contents}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Data structure to free contents of - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} , but not the structure itself. It sets the structure’s data pointer to null and (beginning in release 1.19) sets its length to zero. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_default\_realm \sphinxhyphen{} Free a default realm string returned by krb5\_get\_default\_realm().} -\label{\detokenize{appdev/refs/api/krb5_free_default_realm:krb5-free-default-realm-free-a-default-realm-string-returned-by-krb5-get-default-realm}}\label{\detokenize{appdev/refs/api/krb5_free_default_realm::doc}}\index{krb5\_free\_default\_realm (C function)@\spxentry{krb5\_free\_default\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_default_realm:c.krb5_free_default_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_default\_realm}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{lrealm}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{lrealm} \sphinxhyphen{} Realm to be freed - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_enctypes \sphinxhyphen{} Free an array of encryption types.} -\label{\detokenize{appdev/refs/api/krb5_free_enctypes:krb5-free-enctypes-free-an-array-of-encryption-types}}\label{\detokenize{appdev/refs/api/krb5_free_enctypes::doc}}\index{krb5\_free\_enctypes (C function)@\spxentry{krb5\_free\_enctypes}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_enctypes:c.krb5_free_enctypes}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_enctypes}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Array of enctypes to be freed - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.12 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_error \sphinxhyphen{} Free an error allocated by krb5\_read\_error() or krb5\_sendauth().} -\label{\detokenize{appdev/refs/api/krb5_free_error:krb5-free-error-free-an-error-allocated-by-krb5-read-error-or-krb5-sendauth}}\label{\detokenize{appdev/refs/api/krb5_free_error::doc}}\index{krb5\_free\_error (C function)@\spxentry{krb5\_free\_error}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_error:c.krb5_free_error}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_error}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Error data structure to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_host\_realm \sphinxhyphen{} Free the memory allocated by krb5\_get\_host\_realm().} -\label{\detokenize{appdev/refs/api/krb5_free_host_realm:krb5-free-host-realm-free-the-memory-allocated-by-krb5-get-host-realm}}\label{\detokenize{appdev/refs/api/krb5_free_host_realm::doc}}\index{krb5\_free\_host\_realm (C function)@\spxentry{krb5\_free\_host\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_host_realm:c.krb5_free_host_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_host\_realm}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realmlist}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{realmlist} \sphinxhyphen{} List of realm names to be released - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_keyblock \sphinxhyphen{} Free a krb5\_keyblock structure.} -\label{\detokenize{appdev/refs/api/krb5_free_keyblock:krb5-free-keyblock-free-a-krb5-keyblock-structure}}\label{\detokenize{appdev/refs/api/krb5_free_keyblock::doc}}\index{krb5\_free\_keyblock (C function)@\spxentry{krb5\_free\_keyblock}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_keyblock:c.krb5_free_keyblock}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_keyblock}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Keyblock to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_keyblock\_contents \sphinxhyphen{} Free the contents of a krb5\_keyblock structure.} -\label{\detokenize{appdev/refs/api/krb5_free_keyblock_contents:krb5-free-keyblock-contents-free-the-contents-of-a-krb5-keyblock-structure}}\label{\detokenize{appdev/refs/api/krb5_free_keyblock_contents::doc}}\index{krb5\_free\_keyblock\_contents (C function)@\spxentry{krb5\_free\_keyblock\_contents}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_keyblock_contents:c.krb5_free_keyblock_contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_keyblock\_contents}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Keyblock to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{key} , but not the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_keytab\_entry\_contents \sphinxhyphen{} Free the contents of a key table entry.} -\label{\detokenize{appdev/refs/api/krb5_free_keytab_entry_contents:krb5-free-keytab-entry-contents-free-the-contents-of-a-key-table-entry}}\label{\detokenize{appdev/refs/api/krb5_free_keytab_entry_contents::doc}}\index{krb5\_free\_keytab\_entry\_contents (C function)@\spxentry{krb5\_free\_keytab\_entry\_contents}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_keytab_entry_contents:c.krb5_free_keytab_entry_contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_keytab\_entry\_contents}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{entry}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{entry} \sphinxhyphen{} Key table entry whose contents are to be freed - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The pointer is not freed. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_string \sphinxhyphen{} Free a string allocated by a krb5 function.} -\label{\detokenize{appdev/refs/api/krb5_free_string:krb5-free-string-free-a-string-allocated-by-a-krb5-function}}\label{\detokenize{appdev/refs/api/krb5_free_string::doc}}\index{krb5\_free\_string (C function)@\spxentry{krb5\_free\_string}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_string:c.krb5_free_string}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_string}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} String to be freed - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.10 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_ticket \sphinxhyphen{} Free a ticket.} -\label{\detokenize{appdev/refs/api/krb5_free_ticket:krb5-free-ticket-free-a-ticket}}\label{\detokenize{appdev/refs/api/krb5_free_ticket::doc}}\index{krb5\_free\_ticket (C function)@\spxentry{krb5\_free\_ticket}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_ticket:c.krb5_free_ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_ticket}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Ticket to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_unparsed\_name \sphinxhyphen{} Free a string representation of a principal.} -\label{\detokenize{appdev/refs/api/krb5_free_unparsed_name:krb5-free-unparsed-name-free-a-string-representation-of-a-principal}}\label{\detokenize{appdev/refs/api/krb5_free_unparsed_name::doc}}\index{krb5\_free\_unparsed\_name (C function)@\spxentry{krb5\_free\_unparsed\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_unparsed_name:c.krb5_free_unparsed_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_unparsed\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Name string to be freed - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_etype\_info \sphinxhyphen{} Retrieve enctype, salt and s2kparams from KDC.} -\label{\detokenize{appdev/refs/api/krb5_get_etype_info:krb5-get-etype-info-retrieve-enctype-salt-and-s2kparams-from-kdc}}\label{\detokenize{appdev/refs/api/krb5_get_etype_info::doc}}\index{krb5\_get\_etype\_info (C function)@\spxentry{krb5\_get\_etype\_info}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_etype_info:c.krb5_get_etype_info}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_etype\_info}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{enctype\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{salt\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{s2kparams\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Principal whose information is requested - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{opt} \sphinxhyphen{} Initial credential options - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{enctype\_out} \sphinxhyphen{} The enctype chosen by KDC - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{salt\_out} \sphinxhyphen{} Salt returned from KDC - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{s2kparams\_out} \sphinxhyphen{} String\sphinxhyphen{}to\sphinxhyphen{}key parameters returned from KDC - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -A Kerberos error code - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Send an initial ticket request for \sphinxstyleemphasis{principal} and extract the encryption type, salt type, and string\sphinxhyphen{}to\sphinxhyphen{}key parameters from the KDC response. If the KDC provides no etype\sphinxhyphen{}info, set \sphinxstyleemphasis{enctype\_out} to \sphinxstylestrong{ENCTYPE\_NULL} and set \sphinxstyleemphasis{salt\_out} and \sphinxstyleemphasis{s2kparams\_out} to empty. If the KDC etype\sphinxhyphen{}info provides no salt, compute the default salt and place it in \sphinxstyleemphasis{salt\_out} . If the KDC etype\sphinxhyphen{}info provides no string\sphinxhyphen{}to\sphinxhyphen{}key parameters, set \sphinxstyleemphasis{s2kparams\_out} to empty. -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{opt} may be used to specify options which affect the initial request, such as request encryption types or a FAST armor cache (see krb5\_get\_init\_creds\_opt\_set\_etype\_list() and krb5\_get\_init\_creds\_opt\_set\_fast\_ccache\_name()). -\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{salt\_out} and \sphinxstyleemphasis{s2kparams\_out} when they are no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.17 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_permitted\_enctypes \sphinxhyphen{} Return a list of encryption types permitted for session keys.} -\label{\detokenize{appdev/refs/api/krb5_get_permitted_enctypes:krb5-get-permitted-enctypes-return-a-list-of-encryption-types-permitted-for-session-keys}}\label{\detokenize{appdev/refs/api/krb5_get_permitted_enctypes::doc}}\index{krb5\_get\_permitted\_enctypes (C function)@\spxentry{krb5\_get\_permitted\_enctypes}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_permitted_enctypes:c.krb5_get_permitted_enctypes}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_permitted\_enctypes}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ktypes}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ktypes} \sphinxhyphen{} Zero\sphinxhyphen{}terminated list of encryption types - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function returns the list of encryption types permitted for session keys within \sphinxstyleemphasis{context} , as determined by configuration or by a previous call to krb5\_set\_default\_tgs\_enctypes(). - -\sphinxAtStartPar -Use krb5\_free\_enctypes() to free \sphinxstyleemphasis{ktypes} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_server\_rcache \sphinxhyphen{} Generate a replay cache object for server use and open it.} -\label{\detokenize{appdev/refs/api/krb5_get_server_rcache:krb5-get-server-rcache-generate-a-replay-cache-object-for-server-use-and-open-it}}\label{\detokenize{appdev/refs/api/krb5_get_server_rcache::doc}}\index{krb5\_get\_server\_rcache (C function)@\spxentry{krb5\_get\_server\_rcache}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_server_rcache:c.krb5_get_server_rcache}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_server\_rcache}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{piece}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_rcache:c.krb5_rcache}]{\sphinxcrossref{\DUrole{n}{krb5\_rcache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rcptr}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{piece} \sphinxhyphen{} Unused (replay cache identifier) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rcptr} \sphinxhyphen{} Handle to an open rcache - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a handle to the default replay cache. Use krb5\_rc\_close() to close \sphinxstyleemphasis{rcptr} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -Prior to release 1.18, this function creates a handle to a different replay cache for each unique value of \sphinxstyleemphasis{piece} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_time\_offsets \sphinxhyphen{} Return the time offsets from the os context.} -\label{\detokenize{appdev/refs/api/krb5_get_time_offsets:krb5-get-time-offsets-return-the-time-offsets-from-the-os-context}}\label{\detokenize{appdev/refs/api/krb5_get_time_offsets::doc}}\index{krb5\_get\_time\_offsets (C function)@\spxentry{krb5\_get\_time\_offsets}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_time_offsets:c.krb5_get_time_offsets}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_time\_offsets}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{seconds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{microseconds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{seconds} \sphinxhyphen{} Time offset, seconds portion - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{microseconds} \sphinxhyphen{} Time offset, microseconds portion - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function returns the time offsets in \sphinxstyleemphasis{context} . - -\sphinxstepscope - - -\subsubsection{krb5\_init\_context\_profile \sphinxhyphen{} Create a krb5 library context using a specified profile.} -\label{\detokenize{appdev/refs/api/krb5_init_context_profile:krb5-init-context-profile-create-a-krb5-library-context-using-a-specified-profile}}\label{\detokenize{appdev/refs/api/krb5_init_context_profile::doc}}\index{krb5\_init\_context\_profile (C function)@\spxentry{krb5\_init\_context\_profile}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_context_profile:c.krb5_init_context_profile}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_context\_profile}}}}{\DUrole{k}{struct}\DUrole{w}{ }\DUrole{n}{\_profile\_t}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{profile}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{flags}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{profile} \sphinxhyphen{} Profile object (NULL to create default profile) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Context initialization flags - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\end{description}\end{quote} - -\sphinxAtStartPar -Create a context structure, optionally using a specified profile and initialization flags. If \sphinxstyleemphasis{profile} is NULL, the default profile will be created from config files. If \sphinxstyleemphasis{profile} is non\sphinxhyphen{}null, a copy of it will be made for the new context; the caller should still clean up its copy. Valid flag values are: -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_INIT\_CONTEXT\_SECURE Ignore environment variables - -\item {} -\sphinxAtStartPar -KRB5\_INIT\_CONTEXT\_KDC Use KDC configuration if creating profile - -\end{itemize} - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_free \sphinxhyphen{} Free an initial credentials context.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_free:krb5-init-creds-free-free-an-initial-credentials-context}}\label{\detokenize{appdev/refs/api/krb5_init_creds_free::doc}}\index{krb5\_init\_creds\_free (C function)@\spxentry{krb5\_init\_creds\_free}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_free:c.krb5_init_creds_free}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_free}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Initial credentials context - -\end{description}\end{quote} -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{context} must be the same as the one passed to krb5\_init\_creds\_init() for this initial credentials context. -\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_get \sphinxhyphen{} Acquire credentials using an initial credentials context.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_get:krb5-init-creds-get-acquire-credentials-using-an-initial-credentials-context}}\label{\detokenize{appdev/refs/api/krb5_init_creds_get::doc}}\index{krb5\_init\_creds\_get (C function)@\spxentry{krb5\_init\_creds\_get}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_get:c.krb5_init_creds_get}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_get}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Initial credentials context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function synchronously obtains credentials using a context created by krb5\_init\_creds\_init(). On successful return, the credentials can be retrieved with krb5\_init\_creds\_get\_creds(). -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{context} must be the same as the one passed to krb5\_init\_creds\_init() for this initial credentials context. -\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_get\_creds \sphinxhyphen{} Retrieve acquired credentials from an initial credentials context.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_get_creds:krb5-init-creds-get-creds-retrieve-acquired-credentials-from-an-initial-credentials-context}}\label{\detokenize{appdev/refs/api/krb5_init_creds_get_creds::doc}}\index{krb5\_init\_creds\_get\_creds (C function)@\spxentry{krb5\_init\_creds\_get\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_get_creds:c.krb5_init_creds_get_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_get\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Initial credentials context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Acquired credentials - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function copies the acquired initial credentials from \sphinxstyleemphasis{ctx} into \sphinxstyleemphasis{creds} , after the successful completion of krb5\_init\_creds\_get() or krb5\_init\_creds\_step(). Use krb5\_free\_cred\_contents() to free \sphinxstyleemphasis{creds} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_get\_error \sphinxhyphen{} Get the last error from KDC from an initial credentials context.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_get_error:krb5-init-creds-get-error-get-the-last-error-from-kdc-from-an-initial-credentials-context}}\label{\detokenize{appdev/refs/api/krb5_init_creds_get_error::doc}}\index{krb5\_init\_creds\_get\_error (C function)@\spxentry{krb5\_init\_creds\_get\_error}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_get_error:c.krb5_init_creds_get_error}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_get\_error}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{error}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Initial credentials context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{error} \sphinxhyphen{} Error from KDC, or NULL if none was received - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_get\_times \sphinxhyphen{} Retrieve ticket times from an initial credentials context.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_get_times:krb5-init-creds-get-times-retrieve-ticket-times-from-an-initial-credentials-context}}\label{\detokenize{appdev/refs/api/krb5_init_creds_get_times::doc}}\index{krb5\_init\_creds\_get\_times (C function)@\spxentry{krb5\_init\_creds\_get\_times}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_get_times:c.krb5_init_creds_get_times}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_get\_times}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{times}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Initial credentials context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{times} \sphinxhyphen{} Ticket times for acquired credentials - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -The initial credentials context must have completed obtaining credentials via either krb5\_init\_creds\_get() or krb5\_init\_creds\_step(). - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_init \sphinxhyphen{} Create a context for acquiring initial credentials.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_init:krb5-init-creds-init-create-a-context-for-acquiring-initial-credentials}}\label{\detokenize{appdev/refs/api/krb5_init_creds_init::doc}}\index{krb5\_init\_creds\_init (C function)@\spxentry{krb5\_init\_creds\_init}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_init:c.krb5_init_creds_init}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_init}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{client}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_prompter_fct:c.krb5_prompter_fct}]{\sphinxcrossref{\DUrole{n}{krb5\_prompter\_fct}}}}\DUrole{w}{ }\DUrole{n}{prompter}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}]{\sphinxcrossref{\DUrole{n}{krb5\_deltat}}}}\DUrole{w}{ }\DUrole{n}{start\_time}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ctx}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{client} \sphinxhyphen{} Client principal to get initial creds for - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{prompter} \sphinxhyphen{} Prompter callback - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Prompter callback argument - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{start\_time} \sphinxhyphen{} Time when credentials become valid (0 for now) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{options} \sphinxhyphen{} Options structure (NULL for default) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} New initial credentials context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a new context for acquiring initial credentials. Use krb5\_init\_creds\_free() to free \sphinxstyleemphasis{ctx} when it is no longer needed. - -\sphinxAtStartPar -Any subsequent calls to krb5\_init\_creds\_step(), krb5\_init\_creds\_get(), or krb5\_init\_creds\_free() for this initial credentials context must use the same \sphinxstyleemphasis{context} argument as the one passed to this function. - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_set\_keytab \sphinxhyphen{} Specify a keytab to use for acquiring initial credentials.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_set_keytab:krb5-init-creds-set-keytab-specify-a-keytab-to-use-for-acquiring-initial-credentials}}\label{\detokenize{appdev/refs/api/krb5_init_creds_set_keytab::doc}}\index{krb5\_init\_creds\_set\_keytab (C function)@\spxentry{krb5\_init\_creds\_set\_keytab}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_set_keytab:c.krb5_init_creds_set_keytab}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_set\_keytab}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Initial credentials context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function supplies a keytab containing the client key for an initial credentials request. - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_set\_password \sphinxhyphen{} Set a password for acquiring initial credentials.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_set_password:krb5-init-creds-set-password-set-a-password-for-acquiring-initial-credentials}}\label{\detokenize{appdev/refs/api/krb5_init_creds_set_password::doc}}\index{krb5\_init\_creds\_set\_password (C function)@\spxentry{krb5\_init\_creds\_set\_password}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_set_password:c.krb5_init_creds_set_password}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_set\_password}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{password}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Initial credentials context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{password} \sphinxhyphen{} Password - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function supplies a password to be used to construct the client key for an initial credentials request. - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_set\_service \sphinxhyphen{} Specify a service principal for acquiring initial credentials.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_set_service:krb5-init-creds-set-service-specify-a-service-principal-for-acquiring-initial-credentials}}\label{\detokenize{appdev/refs/api/krb5_init_creds_set_service::doc}}\index{krb5\_init\_creds\_set\_service (C function)@\spxentry{krb5\_init\_creds\_set\_service}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_set_service:c.krb5_init_creds_set_service}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_set\_service}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{service}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Initial credentials context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{service} \sphinxhyphen{} Service principal string - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function supplies a service principal string to acquire initial credentials for instead of the default krbtgt service. \sphinxstyleemphasis{service} is parsed as a principal name; any realm part is ignored. - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_step \sphinxhyphen{} Get the next KDC request for acquiring initial credentials.} -\label{\detokenize{appdev/refs/api/krb5_init_creds_step:krb5-init-creds-step-get-the-next-kdc-request-for-acquiring-initial-credentials}}\label{\detokenize{appdev/refs/api/krb5_init_creds_step::doc}}\index{krb5\_init\_creds\_step (C function)@\spxentry{krb5\_init\_creds\_step}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_creds_step:c.krb5_init_creds_step}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_step}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_init\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Initial credentials context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in} \sphinxhyphen{} KDC response (empty on the first call) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out} \sphinxhyphen{} Next KDC request - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Realm for next KDC request - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Output flags - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function constructs the next KDC request in an initial credential exchange, allowing the caller to control the transport of KDC requests and replies. On the first call, \sphinxstyleemphasis{in} should be set to an empty buffer; on subsequent calls, it should be set to the KDC’s reply to the previous request. - -\sphinxAtStartPar -If more requests are needed, \sphinxstyleemphasis{flags} will be set to KRB5\_INIT\_CREDS\_STEP\_FLAG\_CONTINUE and the next request will be placed in \sphinxstyleemphasis{out} . If no more requests are needed, \sphinxstyleemphasis{flags} will not contain KRB5\_INIT\_CREDS\_STEP\_FLAG\_CONTINUE and \sphinxstyleemphasis{out} will be empty. - -\sphinxAtStartPar -If this function returns \sphinxstylestrong{KRB5KRB\_ERR\_RESPONSE\_TOO\_BIG} , the caller should transmit the next request using TCP rather than UDP. If this function returns any other error, the initial credential exchange has failed. -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{context} must be the same as the one passed to krb5\_init\_creds\_init() for this initial credentials context. -\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_init\_keyblock \sphinxhyphen{} Initialize an empty krb5\_keyblock .} -\label{\detokenize{appdev/refs/api/krb5_init_keyblock:krb5-init-keyblock-initialize-an-empty-krb5-keyblock}}\label{\detokenize{appdev/refs/api/krb5_init_keyblock::doc}}\index{krb5\_init\_keyblock (C function)@\spxentry{krb5\_init\_keyblock}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_keyblock:c.krb5_init_keyblock}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_keyblock}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{length}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{length} \sphinxhyphen{} Length of keyblock (or 0) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out} \sphinxhyphen{} New keyblock structure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Initialize a new keyblock and allocate storage for the contents of the key. It is legal to pass in a length of 0, in which case contents are left unallocated. Use krb5\_free\_keyblock() to free \sphinxstyleemphasis{out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -If \sphinxstyleemphasis{length} is set to 0, contents are left unallocated. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_is\_referral\_realm \sphinxhyphen{} Check for a match with KRB5\_REFERRAL\_REALM.} -\label{\detokenize{appdev/refs/api/krb5_is_referral_realm:krb5-is-referral-realm-check-for-a-match-with-krb5-referral-realm}}\label{\detokenize{appdev/refs/api/krb5_is_referral_realm::doc}}\index{krb5\_is\_referral\_realm (C function)@\spxentry{krb5\_is\_referral\_realm}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_is_referral_realm:c.krb5_is_referral_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_is\_referral\_realm}}}}{\DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{r}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{r} \sphinxhyphen{} Realm to check - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if r is zero\sphinxhyphen{}length, FALSE otherwise - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_kdc\_sign\_ticket \sphinxhyphen{} Sign a PAC, possibly including a ticket signature.} -\label{\detokenize{appdev/refs/api/krb5_kdc_sign_ticket:krb5-kdc-sign-ticket-sign-a-pac-possibly-including-a-ticket-signature}}\label{\detokenize{appdev/refs/api/krb5_kdc_sign_ticket::doc}}\index{krb5\_kdc\_sign\_ticket (C function)@\spxentry{krb5\_kdc\_sign\_ticket}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kdc_sign_ticket:c.krb5_kdc_sign_ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kdc\_sign\_ticket}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{enc\_tkt}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{server\_princ}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{client\_princ}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{server}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{privsvr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{n}{with\_realm}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enc\_tkt} \sphinxhyphen{} The ticket for the signature - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pac} \sphinxhyphen{} PAC handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server\_princ} \sphinxhyphen{} Canonical ticket server name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{client\_princ} \sphinxhyphen{} PAC\_CLIENT\_INFO principal (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Key for server checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{privsvr} \sphinxhyphen{} Key for KDC and ticket checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{with\_realm} \sphinxhyphen{} If true, include the realm of \sphinxstyleemphasis{principal} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 on success, otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Sign \sphinxstyleemphasis{pac} using the keys \sphinxstyleemphasis{server} and \sphinxstyleemphasis{privsvr} . Include a ticket signature over \sphinxstyleemphasis{enc\_tkt} if \sphinxstyleemphasis{server\_princ} is not a TGS or kadmin/changepw principal name. Add the signed PAC’s encoding to the authorization data of \sphinxstyleemphasis{enc\_tkt} in the first slot, wrapped in an AD\sphinxhyphen{}IF\sphinxhyphen{}RELEVANT container. If \sphinxstyleemphasis{client\_princ} is non\sphinxhyphen{}null, add a PAC\_CLIENT\_INFO buffer, including the realm if \sphinxstyleemphasis{with\_realm} is true. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.20 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_kdc\_verify\_ticket \sphinxhyphen{} Verify a PAC, possibly including ticket signature.} -\label{\detokenize{appdev/refs/api/krb5_kdc_verify_ticket:krb5-kdc-verify-ticket-verify-a-pac-possibly-including-ticket-signature}}\label{\detokenize{appdev/refs/api/krb5_kdc_verify_ticket::doc}}\index{krb5\_kdc\_verify\_ticket (C function)@\spxentry{krb5\_kdc\_verify\_ticket}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kdc_verify_ticket:c.krb5_kdc_verify_ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kdc\_verify\_ticket}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{enc\_tkt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{server\_princ}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{server}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{privsvr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pac\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enc\_tkt} \sphinxhyphen{} Ticket enc\sphinxhyphen{}part, possibly containing a PAC - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server\_princ} \sphinxhyphen{} Canonicalized name of ticket server - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Key to validate server checksum (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{privsvr} \sphinxhyphen{} Key to validate KDC checksum (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{pac\_out} \sphinxhyphen{} Verified PAC (NULL if no PAC included) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -If a PAC is present in \sphinxstyleemphasis{enc\_tkt} , verify its signatures. If \sphinxstyleemphasis{privsvr} is not NULL and \sphinxstyleemphasis{server\_princ} is not a krbtgt or kadmin/changepw service, require a ticket signature over \sphinxstyleemphasis{enc\_tkt} in addition to the KDC signature. Place the verified PAC in \sphinxstyleemphasis{pac\_out} . If an invalid PAC signature is found, return an error matching the Windows KDC protocol code for that condition as closely as possible. - -\sphinxAtStartPar -If no PAC is present in \sphinxstyleemphasis{enc\_tkt} , set \sphinxstyleemphasis{pac\_out} to NULL and return successfully. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function does not validate the PAC\_CLIENT\_INFO buffer. If a specific value is expected, the caller can make a separate call to krb5\_pac\_verify\_ext() with a principal but no keys. -\end{sphinxadmonition} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.20 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_add\_entry \sphinxhyphen{} Add a new entry to a key table.} -\label{\detokenize{appdev/refs/api/krb5_kt_add_entry:krb5-kt-add-entry-add-a-new-entry-to-a-key-table}}\label{\detokenize{appdev/refs/api/krb5_kt_add_entry::doc}}\index{krb5\_kt\_add\_entry (C function)@\spxentry{krb5\_kt\_add\_entry}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_add_entry:c.krb5_kt_add_entry}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_add\_entry}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{id}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{entry}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{id} \sphinxhyphen{} Key table handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{entry} \sphinxhyphen{} Entry to be added - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -ENOMEM Insufficient memory - -\item {} -\sphinxAtStartPar -KRB5\_KT\_NOWRITE Key table is not writeable - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_end\_seq\_get \sphinxhyphen{} Release a keytab cursor.} -\label{\detokenize{appdev/refs/api/krb5_kt_end_seq_get:krb5-kt-end-seq-get-release-a-keytab-cursor}}\label{\detokenize{appdev/refs/api/krb5_kt_end_seq_get::doc}}\index{krb5\_kt\_end\_seq\_get (C function)@\spxentry{krb5\_kt\_end\_seq\_get}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_end_seq_get:c.krb5_kt_end_seq_get}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_end\_seq\_get}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_kt_cursor:c.krb5_kt_cursor}]{\sphinxcrossref{\DUrole{n}{krb5\_kt\_cursor}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cursor}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cursor} \sphinxhyphen{} Cursor - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function should be called to release the cursor created by krb5\_kt\_start\_seq\_get(). - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_get\_entry \sphinxhyphen{} Get an entry from a key table.} -\label{\detokenize{appdev/refs/api/krb5_kt_get_entry:krb5-kt-get-entry-get-an-entry-from-a-key-table}}\label{\detokenize{appdev/refs/api/krb5_kt_get_entry::doc}}\index{krb5\_kt\_get\_entry (C function)@\spxentry{krb5\_kt\_get\_entry}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_get_entry:c.krb5_kt_get_entry}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_get\_entry}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_kvno:c.krb5_kvno}]{\sphinxcrossref{\DUrole{n}{krb5\_kvno}}}}\DUrole{w}{ }\DUrole{n}{vno}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{entry}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{vno} \sphinxhyphen{} Key version number (0 for highest available) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type (0 zero for any enctype) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{entry} \sphinxhyphen{} Returned entry from key table - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -Kerberos error codes on failure - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Retrieve an entry from a key table which matches the \sphinxstyleemphasis{keytab} , \sphinxstyleemphasis{principal} , \sphinxstyleemphasis{vno} , and \sphinxstyleemphasis{enctype} . If \sphinxstyleemphasis{vno} is zero, retrieve the highest\sphinxhyphen{}numbered kvno matching the other fields. If \sphinxstyleemphasis{enctype} is 0, match any enctype. - -\sphinxAtStartPar -Use krb5\_free\_keytab\_entry\_contents() to free \sphinxstyleemphasis{entry} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -If \sphinxstyleemphasis{vno} is zero, the function retrieves the highest\sphinxhyphen{}numbered\sphinxhyphen{}kvno entry that matches the specified principal. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_have\_content \sphinxhyphen{} Check if a keytab exists and contains entries.} -\label{\detokenize{appdev/refs/api/krb5_kt_have_content:krb5-kt-have-content-check-if-a-keytab-exists-and-contains-entries}}\label{\detokenize{appdev/refs/api/krb5_kt_have_content::doc}}\index{krb5\_kt\_have\_content (C function)@\spxentry{krb5\_kt\_have\_content}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_have_content:c.krb5_kt_have_content}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_have\_content}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Keytab exists and contains entries - -\item {} -\sphinxAtStartPar -KRB5\_KT\_NOTFOUND Keytab does not contain entries - -\end{itemize} - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.11 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_next\_entry \sphinxhyphen{} Retrieve the next entry from the key table.} -\label{\detokenize{appdev/refs/api/krb5_kt_next_entry:krb5-kt-next-entry-retrieve-the-next-entry-from-the-key-table}}\label{\detokenize{appdev/refs/api/krb5_kt_next_entry::doc}}\index{krb5\_kt\_next\_entry (C function)@\spxentry{krb5\_kt\_next\_entry}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_next_entry:c.krb5_kt_next_entry}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_next\_entry}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{entry}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_kt_cursor:c.krb5_kt_cursor}]{\sphinxcrossref{\DUrole{n}{krb5\_kt\_cursor}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cursor}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{entry} \sphinxhyphen{} Returned key table entry - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cursor} \sphinxhyphen{} Key table cursor - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KRB5\_KT\_END \sphinxhyphen{} if the last entry was reached - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Return the next sequential entry in \sphinxstyleemphasis{keytab} and advance \sphinxstyleemphasis{cursor} . Callers must release the returned entry with krb5\_kt\_free\_entry(). - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_read\_service\_key \sphinxhyphen{} Retrieve a service key from a key table.} -\label{\detokenize{appdev/refs/api/krb5_kt_read_service_key:krb5-kt-read-service-key-retrieve-a-service-key-from-a-key-table}}\label{\detokenize{appdev/refs/api/krb5_kt_read_service_key::doc}}\index{krb5\_kt\_read\_service\_key (C function)@\spxentry{krb5\_kt\_read\_service\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_read_service_key:c.krb5_kt_read_service_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_read\_service\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{n}{keyprocarg}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_kvno:c.krb5_kvno}]{\sphinxcrossref{\DUrole{n}{krb5\_kvno}}}}\DUrole{w}{ }\DUrole{n}{vno}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keyprocarg} \sphinxhyphen{} Name of a key table (NULL to use default name) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Service principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{vno} \sphinxhyphen{} Key version number (0 for highest available) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type (0 for any type) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{key} \sphinxhyphen{} Service key from key table - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error code if not found or keyprocarg is invalid. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Open and search the specified key table for the entry identified by \sphinxstyleemphasis{principal} , \sphinxstyleemphasis{enctype} , and \sphinxstyleemphasis{vno} . If no key is found, return an error code. - -\sphinxAtStartPar -The default key table is used, unless \sphinxstyleemphasis{keyprocarg} is non\sphinxhyphen{}null. \sphinxstyleemphasis{keyprocarg} designates a specific key table. - -\sphinxAtStartPar -Use krb5\_free\_keyblock() to free \sphinxstyleemphasis{key} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_remove\_entry \sphinxhyphen{} Remove an entry from a key table.} -\label{\detokenize{appdev/refs/api/krb5_kt_remove_entry:krb5-kt-remove-entry-remove-an-entry-from-a-key-table}}\label{\detokenize{appdev/refs/api/krb5_kt_remove_entry::doc}}\index{krb5\_kt\_remove\_entry (C function)@\spxentry{krb5\_kt\_remove\_entry}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_remove_entry:c.krb5_kt_remove_entry}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_remove\_entry}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{id}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{entry}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{id} \sphinxhyphen{} Key table handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{entry} \sphinxhyphen{} Entry to remove from key table - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KRB5\_KT\_NOWRITE Key table is not writable - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_start\_seq\_get \sphinxhyphen{} Start a sequential retrieval of key table entries.} -\label{\detokenize{appdev/refs/api/krb5_kt_start_seq_get:krb5-kt-start-seq-get-start-a-sequential-retrieval-of-key-table-entries}}\label{\detokenize{appdev/refs/api/krb5_kt_start_seq_get::doc}}\index{krb5\_kt\_start\_seq\_get (C function)@\spxentry{krb5\_kt\_start\_seq\_get}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_start_seq_get:c.krb5_kt_start_seq_get}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_start\_seq\_get}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_kt_cursor:c.krb5_kt_cursor}]{\sphinxcrossref{\DUrole{n}{krb5\_kt\_cursor}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cursor}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cursor} \sphinxhyphen{} Cursor - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Prepare to read sequentially every key in the specified key table. Use krb5\_kt\_end\_seq\_get() to release the cursor when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_make\_authdata\_kdc\_issued \sphinxhyphen{} Encode and sign AD\sphinxhyphen{}KDCIssued authorization data.} -\label{\detokenize{appdev/refs/api/krb5_make_authdata_kdc_issued:krb5-make-authdata-kdc-issued-encode-and-sign-ad-kdcissued-authorization-data}}\label{\detokenize{appdev/refs/api/krb5_make_authdata_kdc_issued::doc}}\index{krb5\_make\_authdata\_kdc\_issued (C function)@\spxentry{krb5\_make\_authdata\_kdc\_issued}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_make_authdata_kdc_issued:c.krb5_make_authdata_kdc_issued}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_make\_authdata\_kdc\_issued}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{issuer}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{authdata}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ad\_kdcissued}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Session key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{issuer} \sphinxhyphen{} The name of the issuing principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{authdata} \sphinxhyphen{} List of authorization data to be signed - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ad\_kdcissued} \sphinxhyphen{} List containing AD\sphinxhyphen{}KDCIssued authdata - -\end{description}\end{quote} - -\sphinxAtStartPar -This function wraps a list of authorization data entries \sphinxstyleemphasis{authdata} in an AD\sphinxhyphen{}KDCIssued container (see RFC 4120 section 5.2.6.2) signed with \sphinxstyleemphasis{key} . The result is returned in \sphinxstyleemphasis{ad\_kdcissued} as a single\sphinxhyphen{}element list. - -\sphinxstepscope - - -\subsubsection{krb5\_marshal\_credentials \sphinxhyphen{} Serialize a krb5\_creds object.} -\label{\detokenize{appdev/refs/api/krb5_marshal_credentials:krb5-marshal-credentials-serialize-a-krb5-creds-object}}\label{\detokenize{appdev/refs/api/krb5_marshal_credentials::doc}}\index{krb5\_marshal\_credentials (C function)@\spxentry{krb5\_marshal\_credentials}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_marshal_credentials:c.krb5_marshal_credentials}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_marshal\_credentials}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{data\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_creds} \sphinxhyphen{} The credentials object to serialize - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{data\_out} \sphinxhyphen{} The serialized credentials - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Serialize \sphinxstyleemphasis{creds} in the format used by the FILE ccache format (vesion 4) and KCM ccache protocol. - -\sphinxAtStartPar -Use krb5\_free\_data() to free \sphinxstyleemphasis{data\_out} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_merge\_authdata \sphinxhyphen{} Merge two authorization data lists into a new list.} -\label{\detokenize{appdev/refs/api/krb5_merge_authdata:krb5-merge-authdata-merge-two-authorization-data-lists-into-a-new-list}}\label{\detokenize{appdev/refs/api/krb5_merge_authdata::doc}}\index{krb5\_merge\_authdata (C function)@\spxentry{krb5\_merge\_authdata}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_merge_authdata:c.krb5_merge_authdata}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_merge\_authdata}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{inauthdat1}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{inauthdat2}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{outauthdat}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inauthdat1} \sphinxhyphen{} First list of \sphinxstyleemphasis{krb5\_authdata} structures - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inauthdat2} \sphinxhyphen{} Second list of \sphinxstyleemphasis{krb5\_authdata} structures - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outauthdat} \sphinxhyphen{} Merged list of \sphinxstyleemphasis{krb5\_authdata} structures - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Merge two authdata arrays, such as the array from a ticket and authenticator. Use krb5\_free\_authdata() to free \sphinxstyleemphasis{outauthdat} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The last array entry in \sphinxstyleemphasis{inauthdat1} and \sphinxstyleemphasis{inauthdat2} must be a NULL pointer. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_1cred \sphinxhyphen{} Format a KRB\sphinxhyphen{}CRED message for a single set of credentials.} -\label{\detokenize{appdev/refs/api/krb5_mk_1cred:krb5-mk-1cred-format-a-krb-cred-message-for-a-single-set-of-credentials}}\label{\detokenize{appdev/refs/api/krb5_mk_1cred::doc}}\index{krb5\_mk\_1cred (C function)@\spxentry{krb5\_mk\_1cred}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_mk_1cred:c.krb5_mk_1cred}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_1cred}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{der\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rdata\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Pointer to credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{der\_out} \sphinxhyphen{} Encoded credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rdata\_out} \sphinxhyphen{} Replay cache data (NULL if not needed) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -ENOMEM Insufficient memory - -\item {} -\sphinxAtStartPar -KRB5\_RC\_REQUIRED Message replay detection requires rcache parameter - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This is a convenience function that calls krb5\_mk\_ncred() with a single set of credentials. - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_error \sphinxhyphen{} Format and encode a KRB\_ERROR message.} -\label{\detokenize{appdev/refs/api/krb5_mk_error:krb5-mk-error-format-and-encode-a-krb-error-message}}\label{\detokenize{appdev/refs/api/krb5_mk_error::doc}}\index{krb5\_mk\_error (C function)@\spxentry{krb5\_mk\_error}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_mk_error:c.krb5_mk_error}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_error}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{dec\_err}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{enc\_err}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{dec\_err} \sphinxhyphen{} Error structure to be encoded - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{enc\_err} \sphinxhyphen{} Encoded error structure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates a \sphinxstylestrong{KRB\_ERROR} message in \sphinxstyleemphasis{enc\_err} . Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{enc\_err} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_ncred \sphinxhyphen{} Format a KRB\sphinxhyphen{}CRED message for an array of credentials.} -\label{\detokenize{appdev/refs/api/krb5_mk_ncred:krb5-mk-ncred-format-a-krb-cred-message-for-an-array-of-credentials}}\label{\detokenize{appdev/refs/api/krb5_mk_ncred::doc}}\index{krb5\_mk\_ncred (C function)@\spxentry{krb5\_mk\_ncred}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_mk_ncred:c.krb5_mk_ncred}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_ncred}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{der\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rdata\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Null\sphinxhyphen{}terminated array of credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{der\_out} \sphinxhyphen{} Encoded credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rdata\_out} \sphinxhyphen{} Replay cache information (NULL if not needed) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -ENOMEM Insufficient memory - -\item {} -\sphinxAtStartPar -KRB5\_RC\_REQUIRED Message replay detection requires rcache parameter - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function takes an array of credentials \sphinxstyleemphasis{creds} and formats a \sphinxstylestrong{KRB\sphinxhyphen{}CRED} message \sphinxstyleemphasis{der\_out} to pass to krb5\_rd\_cred(). - -\sphinxAtStartPar -The local and remote addresses in \sphinxstyleemphasis{auth\_context} are optional; if either is specified, they are used to form the sender and receiver addresses in the KRB\sphinxhyphen{}CRED message. - -\sphinxAtStartPar -If the KRB5\_AUTH\_CONTEXT\_DO\_TIME flag is set in \sphinxstyleemphasis{auth\_context} , an entry for the message is entered in an in\sphinxhyphen{}memory replay cache to detect if the message is reflected by an attacker. If KRB5\_AUTH\_CONTEXT\_DO\_TIME is not set, no replay cache is used. If KRB5\_AUTH\_CONTEXT\_RET\_TIME is set in \sphinxstyleemphasis{auth\_context} , the timestamp used for the KRB\sphinxhyphen{}CRED message is stored in \sphinxstyleemphasis{rdata\_out} . - -\sphinxAtStartPar -If either KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE is set, the \sphinxstyleemphasis{auth\_context} local sequence number is included in the KRB\sphinxhyphen{}CRED message and then incremented. If KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE is set, the sequence number used is stored in \sphinxstyleemphasis{rdata\_out} . - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{der\_out} when it is no longer needed. - -\sphinxAtStartPar -The message will be encrypted using the send subkey of \sphinxstyleemphasis{auth\_context} if it is present, or the session key otherwise. If neither key is present, the credentials will not be encrypted, and the message should only be sent over a secure channel. No replay cache entry is used in this case. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The \sphinxstyleemphasis{rdata\_out} argument is required if the KRB5\_AUTH\_CONTEXT\_RET\_TIME or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE flag is set in \sphinxstyleemphasis{auth\_context} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_priv \sphinxhyphen{} Format a KRB\sphinxhyphen{}PRIV message.} -\label{\detokenize{appdev/refs/api/krb5_mk_priv:krb5-mk-priv-format-a-krb-priv-message}}\label{\detokenize{appdev/refs/api/krb5_mk_priv::doc}}\index{krb5\_mk\_priv (C function)@\spxentry{krb5\_mk\_priv}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_mk_priv:c.krb5_mk_priv}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_priv}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{userdata}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{der\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rdata\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{userdata} \sphinxhyphen{} User data for \sphinxstylestrong{KRB\sphinxhyphen{}PRIV} message - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{der\_out} \sphinxhyphen{} Formatted \sphinxstylestrong{KRB\sphinxhyphen{}PRIV} message - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rdata\_out} \sphinxhyphen{} Replay data (NULL if not needed) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is similar to krb5\_mk\_safe(), but the message is encrypted and integrity\sphinxhyphen{}protected, not just integrity\sphinxhyphen{}protected. - -\sphinxAtStartPar -The local address in \sphinxstyleemphasis{auth\_context} must be set, and is used to form the sender address used in the KRB\sphinxhyphen{}PRIV message. The remote address is optional; if specified, it will be used to form the receiver address used in the message. - -\sphinxAtStartPar -If the KRB5\_AUTH\_CONTEXT\_DO\_TIME flag is set in \sphinxstyleemphasis{auth\_context} , a timestamp is included in the KRB\sphinxhyphen{}PRIV message, and an entry for the message is entered in an in\sphinxhyphen{}memory replay cache to detect if the message is reflected by an attacker. If KRB5\_AUTH\_CONTEXT\_DO\_TIME is not set, no replay cache is used. If KRB5\_AUTH\_CONTEXT\_RET\_TIME is set in \sphinxstyleemphasis{auth\_context} , a timestamp is included in the KRB\sphinxhyphen{}PRIV message and is stored in \sphinxstyleemphasis{rdata\_out} . - -\sphinxAtStartPar -If either KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE is set, the \sphinxstyleemphasis{auth\_context} local sequence number is included in the KRB\sphinxhyphen{}PRIV message and then incremented. If KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE is set, the sequence number used is stored in \sphinxstyleemphasis{rdata\_out} . - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{der\_out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The \sphinxstyleemphasis{rdata\_out} argument is required if the KRB5\_AUTH\_CONTEXT\_RET\_TIME or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE flag is set in \sphinxstyleemphasis{auth\_context} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_rep \sphinxhyphen{} Format and encrypt a KRB\_AP\_REP message.} -\label{\detokenize{appdev/refs/api/krb5_mk_rep:krb5-mk-rep-format-and-encrypt-a-krb-ap-rep-message}}\label{\detokenize{appdev/refs/api/krb5_mk_rep::doc}}\index{krb5\_mk\_rep (C function)@\spxentry{krb5\_mk\_rep}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_mk_rep:c.krb5_mk_rep}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_rep}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{outbuf}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outbuf} \sphinxhyphen{} \sphinxstylestrong{AP\sphinxhyphen{}REP} message - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function fills in \sphinxstyleemphasis{outbuf} with an AP\sphinxhyphen{}REP message using information from \sphinxstyleemphasis{auth\_context} . - -\sphinxAtStartPar -If the flags in \sphinxstyleemphasis{auth\_context} indicate that a sequence number should be used (either KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE) and the local sequence number in \sphinxstyleemphasis{auth\_context} is 0, a new number will be generated with krb5\_generate\_seq\_number(). - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{outbuf} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_rep\_dce \sphinxhyphen{} Format and encrypt a KRB\_AP\_REP message for DCE RPC.} -\label{\detokenize{appdev/refs/api/krb5_mk_rep_dce:krb5-mk-rep-dce-format-and-encrypt-a-krb-ap-rep-message-for-dce-rpc}}\label{\detokenize{appdev/refs/api/krb5_mk_rep_dce::doc}}\index{krb5\_mk\_rep\_dce (C function)@\spxentry{krb5\_mk\_rep\_dce}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_mk_rep_dce:c.krb5_mk_rep_dce}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_rep\_dce}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{outbuf}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outbuf} \sphinxhyphen{} \sphinxstylestrong{AP\sphinxhyphen{}REP} message - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{outbuf} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_req \sphinxhyphen{} Create a KRB\_AP\_REQ message.} -\label{\detokenize{appdev/refs/api/krb5_mk_req:krb5-mk-req-create-a-krb-ap-req-message}}\label{\detokenize{appdev/refs/api/krb5_mk_req::doc}}\index{krb5\_mk\_req (C function)@\spxentry{krb5\_mk\_req}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_mk_req:c.krb5_mk_req}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_req}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{ap\_req\_options}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{service}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{hostname}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{outbuf}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Pre\sphinxhyphen{}existing or newly created auth context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ap\_req\_options} \sphinxhyphen{} Options (see AP\_OPTS macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{service} \sphinxhyphen{} Service name, or NULL to use \sphinxstylestrong{“host”} - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{hostname} \sphinxhyphen{} Host name, or NULL to use local hostname - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_data} \sphinxhyphen{} Application data to be checksummed in the authenticator, or NULL - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache used to obtain credentials for the desired service. - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outbuf} \sphinxhyphen{} \sphinxstylestrong{AP\sphinxhyphen{}REQ} message - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is similar to krb5\_mk\_req\_extended() except that it uses a given \sphinxstyleemphasis{hostname} , \sphinxstyleemphasis{service} , and \sphinxstyleemphasis{ccache} to construct a service principal name and obtain credentials. - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{outbuf} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_req\_extended \sphinxhyphen{} Create a KRB\_AP\_REQ message using supplied credentials.} -\label{\detokenize{appdev/refs/api/krb5_mk_req_extended:krb5-mk-req-extended-create-a-krb-ap-req-message-using-supplied-credentials}}\label{\detokenize{appdev/refs/api/krb5_mk_req_extended::doc}}\index{krb5\_mk\_req\_extended (C function)@\spxentry{krb5\_mk\_req\_extended}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_mk_req_extended:c.krb5_mk_req_extended}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_req\_extended}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{ap\_req\_options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{outbuf}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Pre\sphinxhyphen{}existing or newly created auth context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ap\_req\_options} \sphinxhyphen{} Options (see AP\_OPTS macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_data} \sphinxhyphen{} Application data to be checksummed in the authenticator, or NULL - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_creds} \sphinxhyphen{} Credentials for the service with valid ticket and key - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{outbuf} \sphinxhyphen{} \sphinxstylestrong{AP\sphinxhyphen{}REQ} message - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Valid \sphinxstyleemphasis{ap\_req\_options} are: -\begin{quote} -\begin{itemize} -\item {} -\sphinxAtStartPar -AP\_OPTS\_USE\_SESSION\_KEY \sphinxhyphen{} Use the session key when creating the request used for user to user authentication. - -\item {} -\sphinxAtStartPar -AP\_OPTS\_MUTUAL\_REQUIRED \sphinxhyphen{} Request a mutual authentication packet from the receiver. - -\item {} -\sphinxAtStartPar -AP\_OPTS\_USE\_SUBKEY \sphinxhyphen{} Generate a subsession key from the current session key obtained from the credentials. - -\end{itemize} - -\sphinxAtStartPar -This function creates a KRB\_AP\_REQ message using supplied credentials \sphinxstyleemphasis{in\_creds} . \sphinxstyleemphasis{auth\_context} may point to an existing auth context or to NULL, in which case a new one will be created. If \sphinxstyleemphasis{in\_data} is non\sphinxhyphen{}null, a checksum of it will be included in the authenticator contained in the KRB\_AP\_REQ message. Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{outbuf} when it is no longer needed. -\end{quote} - -\sphinxAtStartPar -On successful return, the authenticator is stored in \sphinxstyleemphasis{auth\_context} with the \sphinxstyleemphasis{client} and \sphinxstyleemphasis{checksum} fields nulled out. (This is to prevent pointer\sphinxhyphen{}sharing problems; the caller should not need these fields anyway, since the caller supplied them.) - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_mk\_req() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_safe \sphinxhyphen{} Format a KRB\sphinxhyphen{}SAFE message.} -\label{\detokenize{appdev/refs/api/krb5_mk_safe:krb5-mk-safe-format-a-krb-safe-message}}\label{\detokenize{appdev/refs/api/krb5_mk_safe::doc}}\index{krb5\_mk\_safe (C function)@\spxentry{krb5\_mk\_safe}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_mk_safe:c.krb5_mk_safe}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_safe}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{userdata}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{der\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rdata\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{userdata} \sphinxhyphen{} User data in the message - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{der\_out} \sphinxhyphen{} Formatted \sphinxstylestrong{KRB\sphinxhyphen{}SAFE} buffer - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rdata\_out} \sphinxhyphen{} Replay data. Specify NULL if not needed - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function creates an integrity protected \sphinxstylestrong{KRB\sphinxhyphen{}SAFE} message using data supplied by the application. - -\sphinxAtStartPar -Fields in \sphinxstyleemphasis{auth\_context} specify the checksum type, the keyblock that can be used to seed the checksum, full addresses (host and port) for the sender and receiver, and KRB5\_AUTH\_CONTEXT flags. - -\sphinxAtStartPar -The local address in \sphinxstyleemphasis{auth\_context} must be set, and is used to form the sender address used in the KRB\sphinxhyphen{}SAFE message. The remote address is optional; if specified, it will be used to form the receiver address used in the message. - -\sphinxAtStartPar -If the KRB5\_AUTH\_CONTEXT\_DO\_TIME flag is set in \sphinxstyleemphasis{auth\_context} , a timestamp is included in the KRB\sphinxhyphen{}SAFE message, and an entry for the message is entered in an in\sphinxhyphen{}memory replay cache to detect if the message is reflected by an attacker. If KRB5\_AUTH\_CONTEXT\_DO\_TIME is not set, no replay cache is used. If KRB5\_AUTH\_CONTEXT\_RET\_TIME is set in \sphinxstyleemphasis{auth\_context} , a timestamp is included in the KRB\sphinxhyphen{}SAFE message and is stored in \sphinxstyleemphasis{rdata\_out} . - -\sphinxAtStartPar -If either KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE is set, the \sphinxstyleemphasis{auth\_context} local sequence number is included in the KRB\sphinxhyphen{}SAFE message and then incremented. If KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE is set, the sequence number used is stored in \sphinxstyleemphasis{rdata\_out} . - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{der\_out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The \sphinxstyleemphasis{rdata\_out} argument is required if the KRB5\_AUTH\_CONTEXT\_RET\_TIME or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE flag is set in \sphinxstyleemphasis{auth\_context} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_os\_localaddr \sphinxhyphen{} Return all interface addresses for this host.} -\label{\detokenize{appdev/refs/api/krb5_os_localaddr:krb5-os-localaddr-return-all-interface-addresses-for-this-host}}\label{\detokenize{appdev/refs/api/krb5_os_localaddr::doc}}\index{krb5\_os\_localaddr (C function)@\spxentry{krb5\_os\_localaddr}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_os_localaddr:c.krb5_os_localaddr}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_os\_localaddr}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{addr}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{addr} \sphinxhyphen{} Array of krb5\_address pointers, ending with NULL - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_addresses() to free \sphinxstyleemphasis{addr} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_add\_buffer \sphinxhyphen{} Add a buffer to a PAC handle.} -\label{\detokenize{appdev/refs/api/krb5_pac_add_buffer:krb5-pac-add-buffer-add-a-buffer-to-a-pac-handle}}\label{\detokenize{appdev/refs/api/krb5_pac_add_buffer::doc}}\index{krb5\_pac\_add\_buffer (C function)@\spxentry{krb5\_pac\_add\_buffer}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_add_buffer:c.krb5_pac_add_buffer}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_add\_buffer}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ui_4:c.krb5_ui_4}]{\sphinxcrossref{\DUrole{n}{krb5\_ui\_4}}}}\DUrole{w}{ }\DUrole{n}{type}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pac} \sphinxhyphen{} PAC handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{type} \sphinxhyphen{} Buffer type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} contents - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function adds a buffer of type \sphinxstyleemphasis{type} and contents \sphinxstyleemphasis{data} to \sphinxstyleemphasis{pac} if there isn’t already a buffer of this type present. - -\sphinxAtStartPar -The valid values of \sphinxstyleemphasis{type} is one of the following: -\begin{itemize} -\item {} -\sphinxAtStartPar -KRB5\_PAC\_LOGON\_INFO \sphinxhyphen{} Logon information - -\item {} -\sphinxAtStartPar -KRB5\_PAC\_CREDENTIALS\_INFO \sphinxhyphen{} Credentials information - -\item {} -\sphinxAtStartPar -KRB5\_PAC\_SERVER\_CHECKSUM \sphinxhyphen{} Server checksum - -\item {} -\sphinxAtStartPar -KRB5\_PAC\_PRIVSVR\_CHECKSUM \sphinxhyphen{} KDC checksum - -\item {} -\sphinxAtStartPar -KRB5\_PAC\_CLIENT\_INFO \sphinxhyphen{} Client name and ticket information - -\item {} -\sphinxAtStartPar -KRB5\_PAC\_DELEGATION\_INFO \sphinxhyphen{} Constrained delegation information - -\item {} -\sphinxAtStartPar -KRB5\_PAC\_UPN\_DNS\_INFO \sphinxhyphen{} User principal name and DNS information - -\end{itemize} - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_free \sphinxhyphen{} Free a PAC handle.} -\label{\detokenize{appdev/refs/api/krb5_pac_free:krb5-pac-free-free-a-pac-handle}}\label{\detokenize{appdev/refs/api/krb5_pac_free::doc}}\index{krb5\_pac\_free (C function)@\spxentry{krb5\_pac\_free}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_free:c.krb5_pac_free}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_free}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pac} \sphinxhyphen{} PAC to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{pac} and the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_get\_buffer \sphinxhyphen{} Retrieve a buffer value from a PAC.} -\label{\detokenize{appdev/refs/api/krb5_pac_get_buffer:krb5-pac-get-buffer-retrieve-a-buffer-value-from-a-pac}}\label{\detokenize{appdev/refs/api/krb5_pac_get_buffer::doc}}\index{krb5\_pac\_get\_buffer (C function)@\spxentry{krb5\_pac\_get\_buffer}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_get_buffer:c.krb5_pac_get_buffer}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_get\_buffer}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ui_4:c.krb5_ui_4}]{\sphinxcrossref{\DUrole{n}{krb5\_ui\_4}}}}\DUrole{w}{ }\DUrole{n}{type}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pac} \sphinxhyphen{} PAC handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{type} \sphinxhyphen{} Type of buffer to retrieve - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{data} \sphinxhyphen{} Buffer value - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{data} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_get\_types \sphinxhyphen{} Return an array of buffer types in a PAC handle.} -\label{\detokenize{appdev/refs/api/krb5_pac_get_types:krb5-pac-get-types-return-an-array-of-buffer-types-in-a-pac-handle}}\label{\detokenize{appdev/refs/api/krb5_pac_get_types::doc}}\index{krb5\_pac\_get\_types (C function)@\spxentry{krb5\_pac\_get\_types}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_get_types:c.krb5_pac_get_types}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_get\_types}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{len}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ui_4:c.krb5_ui_4}]{\sphinxcrossref{\DUrole{n}{krb5\_ui\_4}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{types}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pac} \sphinxhyphen{} PAC handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{len} \sphinxhyphen{} Number of entries in \sphinxstyleemphasis{types} - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{types} \sphinxhyphen{} Array of buffer types - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_init \sphinxhyphen{} Create an empty Privilege Attribute Certificate (PAC) handle.} -\label{\detokenize{appdev/refs/api/krb5_pac_init:krb5-pac-init-create-an-empty-privilege-attribute-certificate-pac-handle}}\label{\detokenize{appdev/refs/api/krb5_pac_init::doc}}\index{krb5\_pac\_init (C function)@\spxentry{krb5\_pac\_init}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_init:c.krb5_pac_init}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_init}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pac}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{pac} \sphinxhyphen{} New PAC handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_pac\_free() to free \sphinxstyleemphasis{pac} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_parse \sphinxhyphen{} Unparse an encoded PAC into a new handle.} -\label{\detokenize{appdev/refs/api/krb5_pac_parse:krb5-pac-parse-unparse-an-encoded-pac-into-a-new-handle}}\label{\detokenize{appdev/refs/api/krb5_pac_parse::doc}}\index{krb5\_pac\_parse (C function)@\spxentry{krb5\_pac\_parse}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_parse:c.krb5_pac_parse}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_parse}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ptr}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{len}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pac}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ptr} \sphinxhyphen{} PAC buffer - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{len} \sphinxhyphen{} Length of \sphinxstyleemphasis{ptr} - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{pac} \sphinxhyphen{} PAC handle - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_pac\_free() to free \sphinxstyleemphasis{pac} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_sign} -\label{\detokenize{appdev/refs/api/krb5_pac_sign:krb5-pac-sign}}\label{\detokenize{appdev/refs/api/krb5_pac_sign::doc}}\index{krb5\_pac\_sign (C function)@\spxentry{krb5\_pac\_sign}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_sign:c.krb5_pac_sign}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_sign}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{n}{authtime}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{server\_key}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{privsvr\_key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{pac} - -\sphinxAtStartPar -\sphinxstylestrong{authtime} - -\sphinxAtStartPar -\sphinxstylestrong{principal} - -\sphinxAtStartPar -\sphinxstylestrong{server\_key} - -\sphinxAtStartPar -\sphinxstylestrong{privsvr\_key} - -\sphinxAtStartPar -\sphinxstylestrong{data} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Use krb5\_kdc\_sign\_ticket() instead. - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_sign\_ext} -\label{\detokenize{appdev/refs/api/krb5_pac_sign_ext:krb5-pac-sign-ext}}\label{\detokenize{appdev/refs/api/krb5_pac_sign_ext::doc}}\index{krb5\_pac\_sign\_ext (C function)@\spxentry{krb5\_pac\_sign\_ext}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_sign_ext:c.krb5_pac_sign_ext}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_sign\_ext}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{n}{authtime}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{server\_key}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{privsvr\_key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{n}{with\_realm}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{pac} - -\sphinxAtStartPar -\sphinxstylestrong{authtime} - -\sphinxAtStartPar -\sphinxstylestrong{principal} - -\sphinxAtStartPar -\sphinxstylestrong{server\_key} - -\sphinxAtStartPar -\sphinxstylestrong{privsvr\_key} - -\sphinxAtStartPar -\sphinxstylestrong{with\_realm} - -\sphinxAtStartPar -\sphinxstylestrong{data} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Use krb5\_kdc\_sign\_ticket() instead. - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_verify \sphinxhyphen{} Verify a PAC.} -\label{\detokenize{appdev/refs/api/krb5_pac_verify:krb5-pac-verify-verify-a-pac}}\label{\detokenize{appdev/refs/api/krb5_pac_verify::doc}}\index{krb5\_pac\_verify (C function)@\spxentry{krb5\_pac\_verify}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_verify:c.krb5_pac_verify}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_verify}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{n}{authtime}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{server}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{privsvr}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pac} \sphinxhyphen{} PAC handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{authtime} \sphinxhyphen{} Expected timestamp - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Expected principal name (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Key to validate server checksum (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{privsvr} \sphinxhyphen{} Key to validate KDC checksum (or NULL) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function validates \sphinxstyleemphasis{pac} against the supplied \sphinxstyleemphasis{server} , \sphinxstyleemphasis{privsvr} , \sphinxstyleemphasis{principal} and \sphinxstyleemphasis{authtime} . If \sphinxstyleemphasis{principal} is NULL, the principal and authtime are not verified. If \sphinxstyleemphasis{server} or \sphinxstyleemphasis{privsvr} is NULL, the corresponding checksum is not verified. - -\sphinxAtStartPar -If successful, \sphinxstyleemphasis{pac} is marked as verified. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -A checksum mismatch can occur if the PAC was copied from a cross\sphinxhyphen{}realm TGT by an ignorant KDC; also macOS Server Open Directory (as of 10.6) generates PACs with no server checksum at all. One should consider not failing the whole authentication because of this reason, but, instead, treating the ticket as if it did not contain a PAC or marking the PAC information as non\sphinxhyphen{}verified. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_verify\_ext \sphinxhyphen{} Verify a PAC, possibly from a specified realm.} -\label{\detokenize{appdev/refs/api/krb5_pac_verify_ext:krb5-pac-verify-ext-verify-a-pac-possibly-from-a-specified-realm}}\label{\detokenize{appdev/refs/api/krb5_pac_verify_ext::doc}}\index{krb5\_pac\_verify\_ext (C function)@\spxentry{krb5\_pac\_verify\_ext}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_verify_ext:c.krb5_pac_verify_ext}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_verify\_ext}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{n}{authtime}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{principal}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{server}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{privsvr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{n}{with\_realm}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pac} \sphinxhyphen{} PAC handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{authtime} \sphinxhyphen{} Expected timestamp - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{principal} \sphinxhyphen{} Expected principal name (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Key to validate server checksum (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{privsvr} \sphinxhyphen{} Key to validate KDC checksum (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{with\_realm} \sphinxhyphen{} If true, expect the realm of \sphinxstyleemphasis{principal} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is similar to krb5\_pac\_verify(), but adds a parameter \sphinxstyleemphasis{with\_realm} . If \sphinxstyleemphasis{with\_realm} is true, the PAC\_CLIENT\_INFO field is expected to include the realm of \sphinxstyleemphasis{principal} as well as the name. This flag is necessary to verify PACs in cross\sphinxhyphen{}realm S4U2Self referral TGTs. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.17 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_pac\_get\_client\_info \sphinxhyphen{} Read client information from a PAC.} -\label{\detokenize{appdev/refs/api/krb5_pac_get_client_info:krb5-pac-get-client-info-read-client-information-from-a-pac}}\label{\detokenize{appdev/refs/api/krb5_pac_get_client_info::doc}}\index{krb5\_pac\_get\_client\_info (C function)@\spxentry{krb5\_pac\_get\_client\_info}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_pac_get_client_info:c.krb5_pac_get_client_info}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac\_get\_client\_info}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}]{\sphinxcrossref{\DUrole{n}{krb5\_pac}}}}\DUrole{w}{ }\DUrole{n}{pac}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{authtime\_out}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{princname\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pac} \sphinxhyphen{} PAC handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{authtime\_out} \sphinxhyphen{} Authentication timestamp (NULL if not needed) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{princname\_out} \sphinxhyphen{} Client account name - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 on success, ENOENT if no PAC\_CLIENT\_INFO buffer is present in pac , ERANGE if the buffer contains invalid lengths. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Read the PAC\_CLIENT\_INFO buffer in \sphinxstyleemphasis{pac} . Place the client account name as a string in \sphinxstyleemphasis{princname\_out} . If \sphinxstyleemphasis{authtime\_out} is not NULL, place the initial authentication timestamp in \sphinxstyleemphasis{authtime\_out} . - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.18 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_prepend\_error\_message \sphinxhyphen{} Add a prefix to the message for an error code.} -\label{\detokenize{appdev/refs/api/krb5_prepend_error_message:krb5-prepend-error-message-add-a-prefix-to-the-message-for-an-error-code}}\label{\detokenize{appdev/refs/api/krb5_prepend_error_message::doc}}\index{krb5\_prepend\_error\_message (C function)@\spxentry{krb5\_prepend\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_prepend_error_message:c.krb5_prepend_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_prepend\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\DUrole{n}{code}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{fmt}\sphinxparamcomma \DUrole{p}{...}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{code} \sphinxhyphen{} Error code - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fmt} \sphinxhyphen{} Format string for error message prefix - -\end{description}\end{quote} - -\sphinxAtStartPar -Format a message and prepend it to the current message for \sphinxstyleemphasis{code} . The prefix will be separated from the old message with a colon and space. - -\sphinxstepscope - - -\subsubsection{krb5\_principal2salt \sphinxhyphen{} Convert a principal name into the default salt for that principal.} -\label{\detokenize{appdev/refs/api/krb5_principal2salt:krb5-principal2salt-convert-a-principal-name-into-the-default-salt-for-that-principal}}\label{\detokenize{appdev/refs/api/krb5_principal2salt::doc}}\index{krb5\_principal2salt (C function)@\spxentry{krb5\_principal2salt}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_principal2salt:c.krb5_principal2salt}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_principal2salt}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{pr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ret}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pr} \sphinxhyphen{} Principal name - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ret} \sphinxhyphen{} Default salt for \sphinxstyleemphasis{pr} to be filled in - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_rd\_cred \sphinxhyphen{} Read and validate a KRB\sphinxhyphen{}CRED message.} -\label{\detokenize{appdev/refs/api/krb5_rd_cred:krb5-rd-cred-read-and-validate-a-krb-cred-message}}\label{\detokenize{appdev/refs/api/krb5_rd_cred::doc}}\index{krb5\_rd\_cred (C function)@\spxentry{krb5\_rd\_cred}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_rd_cred:c.krb5_rd_cred}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_rd\_cred}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creddata}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{creds\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rdata\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{creddata} \sphinxhyphen{} \sphinxstylestrong{KRB\sphinxhyphen{}CRED} message - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds\_out} \sphinxhyphen{} Null\sphinxhyphen{}terminated array of forwarded credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rdata\_out} \sphinxhyphen{} Replay data (NULL if not needed) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{creddata} will be decrypted using the receiving subkey if it is present in \sphinxstyleemphasis{auth\_context} , or the session key if the receiving subkey is not present or fails to decrypt the message. -\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_tgt\_creds() to free \sphinxstyleemphasis{creds\_out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The \sphinxstyleemphasis{rdata\_out} argument is required if the KRB5\_AUTH\_CONTEXT\_RET\_TIME or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE flag is set in \sphinxstyleemphasis{auth\_context} .\textasciigrave{} -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_rd\_error \sphinxhyphen{} Decode a KRB\sphinxhyphen{}ERROR message.} -\label{\detokenize{appdev/refs/api/krb5_rd_error:krb5-rd-error-decode-a-krb-error-message}}\label{\detokenize{appdev/refs/api/krb5_rd_error::doc}}\index{krb5\_rd\_error (C function)@\spxentry{krb5\_rd\_error}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_rd_error:c.krb5_rd_error}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_rd\_error}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{enc\_errbuf}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{dec\_error}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enc\_errbuf} \sphinxhyphen{} Encoded error message - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{dec\_error} \sphinxhyphen{} Decoded error message - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function processes \sphinxstylestrong{KRB\sphinxhyphen{}ERROR} message \sphinxstyleemphasis{enc\_errbuf} and returns an allocated structure \sphinxstyleemphasis{dec\_error} containing the error message. Use krb5\_free\_error() to free \sphinxstyleemphasis{dec\_error} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_rd\_priv \sphinxhyphen{} Process a KRB\sphinxhyphen{}PRIV message.} -\label{\detokenize{appdev/refs/api/krb5_rd_priv:krb5-rd-priv-process-a-krb-priv-message}}\label{\detokenize{appdev/refs/api/krb5_rd_priv::doc}}\index{krb5\_rd\_priv (C function)@\spxentry{krb5\_rd\_priv}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_rd_priv:c.krb5_rd_priv}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_rd\_priv}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{inbuf}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{userdata\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rdata\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inbuf} \sphinxhyphen{} \sphinxstylestrong{KRB\sphinxhyphen{}PRIV} message to be parsed - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{userdata\_out} \sphinxhyphen{} Data parsed from \sphinxstylestrong{KRB\sphinxhyphen{}PRIV} message - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rdata\_out} \sphinxhyphen{} Replay data. Specify NULL if not needed - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function parses a \sphinxstylestrong{KRB\sphinxhyphen{}PRIV} message, verifies its integrity, and stores its unencrypted data into \sphinxstyleemphasis{userdata\_out} . - -\sphinxAtStartPar -If \sphinxstyleemphasis{auth\_context} has a remote address set, the address will be used to verify the sender address in the KRB\sphinxhyphen{}PRIV message. If \sphinxstyleemphasis{auth\_context} has a local address set, it will be used to verify the receiver address in the KRB\sphinxhyphen{}PRIV message if the message contains one. - -\sphinxAtStartPar -If the KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE flag is set in \sphinxstyleemphasis{auth\_context} , the sequence number of the KRB\sphinxhyphen{}PRIV message is checked against the remote sequence number field of \sphinxstyleemphasis{auth\_context} . Otherwise, the sequence number is not used. - -\sphinxAtStartPar -If the KRB5\_AUTH\_CONTEXT\_DO\_TIME flag is set in \sphinxstyleemphasis{auth\_context} , then the timestamp in the message is verified to be within the permitted clock skew of the current time, and the message is checked against an in\sphinxhyphen{}memory replay cache to detect reflections or replays. - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{userdata\_out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The \sphinxstyleemphasis{rdata\_out} argument is required if the KRB5\_AUTH\_CONTEXT\_RET\_TIME or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE flag is set in \sphinxstyleemphasis{auth\_context} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_rd\_rep \sphinxhyphen{} Parse and decrypt a KRB\_AP\_REP message.} -\label{\detokenize{appdev/refs/api/krb5_rd_rep:krb5-rd-rep-parse-and-decrypt-a-krb-ap-rep-message}}\label{\detokenize{appdev/refs/api/krb5_rd_rep::doc}}\index{krb5\_rd\_rep (C function)@\spxentry{krb5\_rd\_rep}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_rd_rep:c.krb5_rd_rep}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_rd\_rep}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{inbuf}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep\_enc\_part}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{repl}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inbuf} \sphinxhyphen{} AP\sphinxhyphen{}REP message - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{repl} \sphinxhyphen{} Decrypted reply message - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function parses, decrypts and verifies a message from \sphinxstyleemphasis{inbuf} and fills in \sphinxstyleemphasis{repl} with a pointer to allocated memory containing the fields from the encrypted response. - -\sphinxAtStartPar -Use krb5\_free\_ap\_rep\_enc\_part() to free \sphinxstyleemphasis{repl} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_rd\_rep\_dce \sphinxhyphen{} Parse and decrypt a KRB\_AP\_REP message for DCE RPC.} -\label{\detokenize{appdev/refs/api/krb5_rd_rep_dce:krb5-rd-rep-dce-parse-and-decrypt-a-krb-ap-rep-message-for-dce-rpc}}\label{\detokenize{appdev/refs/api/krb5_rd_rep_dce::doc}}\index{krb5\_rd\_rep\_dce (C function)@\spxentry{krb5\_rd\_rep\_dce}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_rd_rep_dce:c.krb5_rd_rep_dce}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_rd\_rep\_dce}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{inbuf}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ui_4:c.krb5_ui_4}]{\sphinxcrossref{\DUrole{n}{krb5\_ui\_4}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{nonce}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inbuf} \sphinxhyphen{} AP\sphinxhyphen{}REP message - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{nonce} \sphinxhyphen{} Sequence number from the decrypted reply - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function parses, decrypts and verifies a message from \sphinxstyleemphasis{inbuf} and fills in \sphinxstyleemphasis{nonce} with a decrypted reply sequence number. - -\sphinxstepscope - - -\subsubsection{krb5\_rd\_req \sphinxhyphen{} Parse and decrypt a KRB\_AP\_REQ message.} -\label{\detokenize{appdev/refs/api/krb5_rd_req:krb5-rd-req-parse-and-decrypt-a-krb-ap-req-message}}\label{\detokenize{appdev/refs/api/krb5_rd_req::doc}}\index{krb5\_rd\_req (C function)@\spxentry{krb5\_rd\_req}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_rd_req:c.krb5_rd_req}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_rd\_req}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{auth\_context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{inbuf}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{w}{ }\DUrole{n}{server}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ap\_req\_options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ticket}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Pre\sphinxhyphen{}existing or newly created auth context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inbuf} \sphinxhyphen{} AP\sphinxhyphen{}REQ message to be parsed - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Matching principal for server, or NULL to allow any principal in keytab - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table, or NULL to use the default - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ap\_req\_options} \sphinxhyphen{} If non\sphinxhyphen{}null, the AP\sphinxhyphen{}REQ flags on output - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ticket} \sphinxhyphen{} If non\sphinxhyphen{}null, ticket from the AP\sphinxhyphen{}REQ message - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function parses, decrypts and verifies a AP\sphinxhyphen{}REQ message from \sphinxstyleemphasis{inbuf} and stores the authenticator in \sphinxstyleemphasis{auth\_context} . - -\sphinxAtStartPar -If a keyblock was specified in \sphinxstyleemphasis{auth\_context} using krb5\_auth\_con\_setuseruserkey(), that key is used to decrypt the ticket in AP\sphinxhyphen{}REQ message and \sphinxstyleemphasis{keytab} is ignored. In this case, \sphinxstyleemphasis{server} should be specified as a complete principal name to allow for proper transited\sphinxhyphen{}path checking and replay cache selection. - -\sphinxAtStartPar -Otherwise, the decryption key is obtained from \sphinxstyleemphasis{keytab} , or from the default keytab if it is NULL. In this case, \sphinxstyleemphasis{server} may be a complete principal name, a matching principal (see krb5\_sname\_match()), or NULL to match any principal name. The keys tried against the encrypted part of the ticket are determined as follows: -\begin{itemize} -\item {} -\sphinxAtStartPar -If \sphinxstyleemphasis{server} is a complete principal name, then its entry in \sphinxstyleemphasis{keytab} is tried. - -\item {} -\sphinxAtStartPar -Otherwise, if \sphinxstyleemphasis{keytab} is iterable, then all entries in \sphinxstyleemphasis{keytab} which match \sphinxstyleemphasis{server} are tried. - -\item {} -\sphinxAtStartPar -Otherwise, the server principal in the ticket must match \sphinxstyleemphasis{server} , and its entry in \sphinxstyleemphasis{keytab} is tried. - -\end{itemize} - -\sphinxAtStartPar -The client specified in the decrypted authenticator must match the client specified in the decrypted ticket. - -\sphinxAtStartPar -If the \sphinxstyleemphasis{remote\_addr} field of \sphinxstyleemphasis{auth\_context} is set, the request must come from that address. - -\sphinxAtStartPar -If a replay cache handle is provided in the \sphinxstyleemphasis{auth\_context} , the authenticator and ticket are verified against it. If no conflict is found, the new authenticator is then stored in the replay cache of \sphinxstyleemphasis{auth\_context} . - -\sphinxAtStartPar -Various other checks are performed on the decoded data, including cross\sphinxhyphen{}realm policy, clockskew, and ticket validation times. - -\sphinxAtStartPar -On success the authenticator, subkey, and remote sequence number of the request are stored in \sphinxstyleemphasis{auth\_context} . If the AP\_OPTS\_MUTUAL\_REQUIRED bit is set, the local sequence number is XORed with the remote sequence number in the request. - -\sphinxAtStartPar -Use krb5\_free\_ticket() to free \sphinxstyleemphasis{ticket} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_rd\_safe \sphinxhyphen{} Process KRB\sphinxhyphen{}SAFE message.} -\label{\detokenize{appdev/refs/api/krb5_rd_safe:krb5-rd-safe-process-krb-safe-message}}\label{\detokenize{appdev/refs/api/krb5_rd_safe::doc}}\index{krb5\_rd\_safe (C function)@\spxentry{krb5\_rd\_safe}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_rd_safe:c.krb5_rd_safe}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_rd\_safe}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{inbuf}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{userdata\_out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{rdata\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inbuf} \sphinxhyphen{} \sphinxstylestrong{KRB\sphinxhyphen{}SAFE} message to be parsed - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{userdata\_out} \sphinxhyphen{} Data parsed from \sphinxstylestrong{KRB\sphinxhyphen{}SAFE} message - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rdata\_out} \sphinxhyphen{} Replay data. Specify NULL if not needed - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function parses a \sphinxstylestrong{KRB\sphinxhyphen{}SAFE} message, verifies its integrity, and stores its data into \sphinxstyleemphasis{userdata\_out} . - -\sphinxAtStartPar -If \sphinxstyleemphasis{auth\_context} has a remote address set, the address will be used to verify the sender address in the KRB\sphinxhyphen{}SAFE message. If \sphinxstyleemphasis{auth\_context} has a local address set, it will be used to verify the receiver address in the KRB\sphinxhyphen{}SAFE message if the message contains one. - -\sphinxAtStartPar -If the KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE flag is set in \sphinxstyleemphasis{auth\_context} , the sequence number of the KRB\sphinxhyphen{}SAFE message is checked against the remote sequence number field of \sphinxstyleemphasis{auth\_context} . Otherwise, the sequence number is not used. - -\sphinxAtStartPar -If the KRB5\_AUTH\_CONTEXT\_DO\_TIME flag is set in \sphinxstyleemphasis{auth\_context} , then the timestamp in the message is verified to be within the permitted clock skew of the current time, and the message is checked against an in\sphinxhyphen{}memory replay cache to detect reflections or replays. - -\sphinxAtStartPar -Use krb5\_free\_data\_contents() to free \sphinxstyleemphasis{userdata\_out} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The \sphinxstyleemphasis{rdata\_out} argument is required if the KRB5\_AUTH\_CONTEXT\_RET\_TIME or KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE flag is set in \sphinxstyleemphasis{auth\_context} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_read\_password \sphinxhyphen{} Read a password from keyboard input.} -\label{\detokenize{appdev/refs/api/krb5_read_password:krb5-read-password-read-a-password-from-keyboard-input}}\label{\detokenize{appdev/refs/api/krb5_read_password::doc}}\index{krb5\_read\_password (C function)@\spxentry{krb5\_read\_password}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_read_password:c.krb5_read_password}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_read\_password}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{prompt}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{prompt2}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{return\_pwd}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{size\_return}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{prompt} \sphinxhyphen{} First user prompt when reading password - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{prompt2} \sphinxhyphen{} Second user prompt (NULL to prompt only once) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{return\_pwd} \sphinxhyphen{} Returned password - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{size\_return} \sphinxhyphen{} On input, maximum size of password; on output, size of password read - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Error in reading or verifying the password - -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function reads a password from keyboard input and stores it in \sphinxstyleemphasis{return\_pwd} . \sphinxstyleemphasis{size\_return} should be set by the caller to the amount of storage space available in \sphinxstyleemphasis{return\_pwd} ; on successful return, it will be set to the length of the password read. -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{prompt} is printed to the terminal, followed by”:”, and then a password is read from the keyboard. -\end{quote} - -\sphinxAtStartPar -If \sphinxstyleemphasis{prompt2} is NULL, the password is read only once. Otherwise, \sphinxstyleemphasis{prompt2} is printed to the terminal and a second password is read. If the two passwords entered are not identical, KRB5\_LIBOS\_BADPWDMATCH is returned. - -\sphinxAtStartPar -Echoing is turned off when the password is read. - -\sphinxstepscope - - -\subsubsection{krb5\_salttype\_to\_string \sphinxhyphen{} Convert a salt type to a string.} -\label{\detokenize{appdev/refs/api/krb5_salttype_to_string:krb5-salttype-to-string-convert-a-salt-type-to-a-string}}\label{\detokenize{appdev/refs/api/krb5_salttype_to_string::doc}}\index{krb5\_salttype\_to\_string (C function)@\spxentry{krb5\_salttype\_to\_string}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_salttype_to_string:c.krb5_salttype_to_string}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_salttype\_to\_string}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{n}{salttype}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{buffer}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{buflen}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{salttype} \sphinxhyphen{} Salttype to convert - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{buffer} \sphinxhyphen{} Buffer to receive the converted string - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{buflen} \sphinxhyphen{} Storage available in \sphinxstyleemphasis{buffer} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_server\_decrypt\_ticket\_keytab \sphinxhyphen{} Decrypt a ticket using the specified key table.} -\label{\detokenize{appdev/refs/api/krb5_server_decrypt_ticket_keytab:krb5-server-decrypt-ticket-keytab-decrypt-a-ticket-using-the-specified-key-table}}\label{\detokenize{appdev/refs/api/krb5_server_decrypt_ticket_keytab::doc}}\index{krb5\_server\_decrypt\_ticket\_keytab (C function)@\spxentry{krb5\_server\_decrypt\_ticket\_keytab}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_server_decrypt_ticket_keytab:c.krb5_server_decrypt_ticket_keytab}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_server\_decrypt\_ticket\_keytab}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{kt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ticket}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{kt} \sphinxhyphen{} Key table - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ticket} \sphinxhyphen{} Ticket to be decrypted - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function takes a \sphinxstyleemphasis{ticket} as input and decrypts it using key data from \sphinxstyleemphasis{kt} . The result is placed into \sphinxstyleemphasis{ticket\sphinxhyphen{}\textgreater{}enc\_part2} . - -\sphinxstepscope - - -\subsubsection{krb5\_set\_default\_tgs\_enctypes \sphinxhyphen{} Set default TGS encryption types in a krb5\_context structure.} -\label{\detokenize{appdev/refs/api/krb5_set_default_tgs_enctypes:krb5-set-default-tgs-enctypes-set-default-tgs-encryption-types-in-a-krb5-context-structure}}\label{\detokenize{appdev/refs/api/krb5_set_default_tgs_enctypes::doc}}\index{krb5\_set\_default\_tgs\_enctypes (C function)@\spxentry{krb5\_set\_default\_tgs\_enctypes}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_default_tgs_enctypes:c.krb5_set_default_tgs_enctypes}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_default\_tgs\_enctypes}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{etypes}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{etypes} \sphinxhyphen{} Encryption type(s) to set - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\item {} -\sphinxAtStartPar -KRB5\_PROG\_ETYPE\_NOSUPP Program lacks support for encryption type - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets the default enctype list for TGS requests made using \sphinxstyleemphasis{context} to \sphinxstyleemphasis{etypes} . - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This overrides the default list (from config file or built\sphinxhyphen{}in). -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_set\_error\_message \sphinxhyphen{} Set an extended error message for an error code.} -\label{\detokenize{appdev/refs/api/krb5_set_error_message:krb5-set-error-message-set-an-extended-error-message-for-an-error-code}}\label{\detokenize{appdev/refs/api/krb5_set_error_message::doc}}\index{krb5\_set\_error\_message (C function)@\spxentry{krb5\_set\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_error_message:c.krb5_set_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\DUrole{n}{code}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{fmt}\sphinxparamcomma \DUrole{p}{...}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{code} \sphinxhyphen{} Error code - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fmt} \sphinxhyphen{} Error string for the error code - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_set\_kdc\_recv\_hook \sphinxhyphen{} Set a KDC post\sphinxhyphen{}receive hook function.} -\label{\detokenize{appdev/refs/api/krb5_set_kdc_recv_hook:krb5-set-kdc-recv-hook-set-a-kdc-post-receive-hook-function}}\label{\detokenize{appdev/refs/api/krb5_set_kdc_recv_hook::doc}}\index{krb5\_set\_kdc\_recv\_hook (C function)@\spxentry{krb5\_set\_kdc\_recv\_hook}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_kdc_recv_hook:c.krb5_set_kdc_recv_hook}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_kdc\_recv\_hook}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_post_recv_fn:c.krb5_post_recv_fn}]{\sphinxcrossref{\DUrole{n}{krb5\_post\_recv\_fn}}}}\DUrole{w}{ }\DUrole{n}{recv\_hook}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} The library context. - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{recv\_hook} \sphinxhyphen{} Hook function (or NULL to disable the hook) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Callback data to be passed to \sphinxstyleemphasis{recv\_hook} - -\end{description}\end{quote} -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{recv\_hook} will be called after a reply is received from a KDC during a call to a library function such as krb5\_get\_credentials(). The hook function may inspect or override the reply. This hook will not be executed if the pre\sphinxhyphen{}send hook returns a synthetic reply. -\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.15 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_set\_kdc\_send\_hook \sphinxhyphen{} Set a KDC pre\sphinxhyphen{}send hook function.} -\label{\detokenize{appdev/refs/api/krb5_set_kdc_send_hook:krb5-set-kdc-send-hook-set-a-kdc-pre-send-hook-function}}\label{\detokenize{appdev/refs/api/krb5_set_kdc_send_hook::doc}}\index{krb5\_set\_kdc\_send\_hook (C function)@\spxentry{krb5\_set\_kdc\_send\_hook}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_kdc_send_hook:c.krb5_set_kdc_send_hook}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_kdc\_send\_hook}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pre_send_fn:c.krb5_pre_send_fn}]{\sphinxcrossref{\DUrole{n}{krb5\_pre\_send\_fn}}}}\DUrole{w}{ }\DUrole{n}{send\_hook}\sphinxparamcomma \DUrole{kt}{void}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{send\_hook} \sphinxhyphen{} Hook function (or NULL to disable the hook) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Callback data to be passed to \sphinxstyleemphasis{send\_hook} - -\end{description}\end{quote} -\begin{quote} - -\sphinxAtStartPar -\sphinxstyleemphasis{send\_hook} will be called before messages are sent to KDCs by library functions such as krb5\_get\_credentials(). The hook function may inspect, override, or synthesize its own reply to the message. -\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.15 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_set\_real\_time \sphinxhyphen{} Set time offset field in a krb5\_context structure.} -\label{\detokenize{appdev/refs/api/krb5_set_real_time:krb5-set-real-time-set-time-offset-field-in-a-krb5-context-structure}}\label{\detokenize{appdev/refs/api/krb5_set_real_time::doc}}\index{krb5\_set\_real\_time (C function)@\spxentry{krb5\_set\_real\_time}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_set_real_time:c.krb5_set_real_time}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_set\_real\_time}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{n}{seconds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{n}{microseconds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{seconds} \sphinxhyphen{} Real time, seconds portion - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{microseconds} \sphinxhyphen{} Real time, microseconds portion - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function sets the time offset in \sphinxstyleemphasis{context} to the difference between the system time and the real time as determined by \sphinxstyleemphasis{seconds} and \sphinxstyleemphasis{microseconds} . - -\sphinxstepscope - - -\subsubsection{krb5\_string\_to\_cksumtype \sphinxhyphen{} Convert a string to a checksum type.} -\label{\detokenize{appdev/refs/api/krb5_string_to_cksumtype:krb5-string-to-cksumtype-convert-a-string-to-a-checksum-type}}\label{\detokenize{appdev/refs/api/krb5_string_to_cksumtype::doc}}\index{krb5\_string\_to\_cksumtype (C function)@\spxentry{krb5\_string\_to\_cksumtype}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_string_to_cksumtype:c.krb5_string_to_cksumtype}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_string\_to\_cksumtype}}}}{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{string}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cksumtypep}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{string} \sphinxhyphen{} String to be converted - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cksumtypep} \sphinxhyphen{} Checksum type to be filled in - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} EINVAL - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_string\_to\_deltat \sphinxhyphen{} Convert a string to a delta time value.} -\label{\detokenize{appdev/refs/api/krb5_string_to_deltat:krb5-string-to-deltat-convert-a-string-to-a-delta-time-value}}\label{\detokenize{appdev/refs/api/krb5_string_to_deltat::doc}}\index{krb5\_string\_to\_deltat (C function)@\spxentry{krb5\_string\_to\_deltat}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_string_to_deltat:c.krb5_string_to_deltat}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_string\_to\_deltat}}}}{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{string}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}]{\sphinxcrossref{\DUrole{n}{krb5\_deltat}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{deltatp}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{string} \sphinxhyphen{} String to be converted - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{deltatp} \sphinxhyphen{} Delta time to be filled in - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} KRB5\_DELTAT\_BADFORMAT - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_string\_to\_enctype \sphinxhyphen{} Convert a string to an encryption type.} -\label{\detokenize{appdev/refs/api/krb5_string_to_enctype:krb5-string-to-enctype-convert-a-string-to-an-encryption-type}}\label{\detokenize{appdev/refs/api/krb5_string_to_enctype::doc}}\index{krb5\_string\_to\_enctype (C function)@\spxentry{krb5\_string\_to\_enctype}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_string_to_enctype:c.krb5_string_to_enctype}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_string\_to\_enctype}}}}{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{string}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{enctypep}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{string} \sphinxhyphen{} String to convert to an encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{enctypep} \sphinxhyphen{} Encryption type - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} EINVAL - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_string\_to\_salttype \sphinxhyphen{} Convert a string to a salt type.} -\label{\detokenize{appdev/refs/api/krb5_string_to_salttype:krb5-string-to-salttype-convert-a-string-to-a-salt-type}}\label{\detokenize{appdev/refs/api/krb5_string_to_salttype::doc}}\index{krb5\_string\_to\_salttype (C function)@\spxentry{krb5\_string\_to\_salttype}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_string_to_salttype:c.krb5_string_to_salttype}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_string\_to\_salttype}}}}{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{string}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{salttypep}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{string} \sphinxhyphen{} String to convert to an encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{salttypep} \sphinxhyphen{} Salt type to be filled in - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} EINVAL - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_string\_to\_timestamp \sphinxhyphen{} Convert a string to a timestamp.} -\label{\detokenize{appdev/refs/api/krb5_string_to_timestamp:krb5-string-to-timestamp-convert-a-string-to-a-timestamp}}\label{\detokenize{appdev/refs/api/krb5_string_to_timestamp::doc}}\index{krb5\_string\_to\_timestamp (C function)@\spxentry{krb5\_string\_to\_timestamp}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_string_to_timestamp:c.krb5_string_to_timestamp}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_string\_to\_timestamp}}}}{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{string}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{timestampp}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{string} \sphinxhyphen{} String to be converted - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{timestampp} \sphinxhyphen{} Pointer to timestamp - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} EINVAL - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_timeofday \sphinxhyphen{} Retrieve the current time with context specific time offset adjustment.} -\label{\detokenize{appdev/refs/api/krb5_timeofday:krb5-timeofday-retrieve-the-current-time-with-context-specific-time-offset-adjustment}}\label{\detokenize{appdev/refs/api/krb5_timeofday::doc}}\index{krb5\_timeofday (C function)@\spxentry{krb5\_timeofday}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_timeofday:c.krb5_timeofday}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_timeofday}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{timeret}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{timeret} \sphinxhyphen{} Timestamp to fill in - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success - -\end{itemize} - -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function retrieves the system time of day with the context specific time offset adjustment. - -\sphinxstepscope - - -\subsubsection{krb5\_timestamp\_to\_sfstring \sphinxhyphen{} Convert a timestamp to a string, with optional output padding.} -\label{\detokenize{appdev/refs/api/krb5_timestamp_to_sfstring:krb5-timestamp-to-sfstring-convert-a-timestamp-to-a-string-with-optional-output-padding}}\label{\detokenize{appdev/refs/api/krb5_timestamp_to_sfstring::doc}}\index{krb5\_timestamp\_to\_sfstring (C function)@\spxentry{krb5\_timestamp\_to\_sfstring}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_timestamp_to_sfstring:c.krb5_timestamp_to_sfstring}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_timestamp\_to\_sfstring}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{n}{timestamp}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{buffer}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{buflen}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pad}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{timestamp} \sphinxhyphen{} Timestamp to convert - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{buffer} \sphinxhyphen{} Buffer to hold the converted timestamp - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{buflen} \sphinxhyphen{} Length of buffer - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pad} \sphinxhyphen{} Optional value to pad \sphinxstyleemphasis{buffer} if converted timestamp does not fill it - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -If \sphinxstyleemphasis{pad} is not NULL, \sphinxstyleemphasis{buffer} is padded out to \sphinxstyleemphasis{buflen} \sphinxhyphen{} 1 characters with the value of * \sphinxstyleemphasis{pad} . - -\sphinxstepscope - - -\subsubsection{krb5\_timestamp\_to\_string \sphinxhyphen{} Convert a timestamp to a string.} -\label{\detokenize{appdev/refs/api/krb5_timestamp_to_string:krb5-timestamp-to-string-convert-a-timestamp-to-a-string}}\label{\detokenize{appdev/refs/api/krb5_timestamp_to_string::doc}}\index{krb5\_timestamp\_to\_string (C function)@\spxentry{krb5\_timestamp\_to\_string}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_timestamp_to_string:c.krb5_timestamp_to_string}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_timestamp\_to\_string}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\DUrole{n}{timestamp}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{buffer}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{buflen}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{timestamp} \sphinxhyphen{} Timestamp to convert - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{buffer} \sphinxhyphen{} Buffer to hold converted timestamp - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{buflen} \sphinxhyphen{} Storage available in \sphinxstyleemphasis{buffer} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -The string is returned in the locale’s appropriate date and time representation. - -\sphinxstepscope - - -\subsubsection{krb5\_tkt\_creds\_free \sphinxhyphen{} Free a TGS request context.} -\label{\detokenize{appdev/refs/api/krb5_tkt_creds_free:krb5-tkt-creds-free-free-a-tgs-request-context}}\label{\detokenize{appdev/refs/api/krb5_tkt_creds_free::doc}}\index{krb5\_tkt\_creds\_free (C function)@\spxentry{krb5\_tkt\_creds\_free}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_tkt_creds_free:c.krb5_tkt_creds_free}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_tkt\_creds\_free}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_tkt_creds_context:c.krb5_tkt_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} TGS request context - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_tkt\_creds\_get \sphinxhyphen{} Synchronously obtain credentials using a TGS request context.} -\label{\detokenize{appdev/refs/api/krb5_tkt_creds_get:krb5-tkt-creds-get-synchronously-obtain-credentials-using-a-tgs-request-context}}\label{\detokenize{appdev/refs/api/krb5_tkt_creds_get::doc}}\index{krb5\_tkt\_creds\_get (C function)@\spxentry{krb5\_tkt\_creds\_get}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_tkt_creds_get:c.krb5_tkt_creds_get}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_tkt\_creds\_get}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_tkt_creds_context:c.krb5_tkt_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} TGS request context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function synchronously obtains credentials using a context created by krb5\_tkt\_creds\_init(). On successful return, the credentials can be retrieved with krb5\_tkt\_creds\_get\_creds(). - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_tkt\_creds\_get\_creds \sphinxhyphen{} Retrieve acquired credentials from a TGS request context.} -\label{\detokenize{appdev/refs/api/krb5_tkt_creds_get_creds:krb5-tkt-creds-get-creds-retrieve-acquired-credentials-from-a-tgs-request-context}}\label{\detokenize{appdev/refs/api/krb5_tkt_creds_get_creds::doc}}\index{krb5\_tkt\_creds\_get\_creds (C function)@\spxentry{krb5\_tkt\_creds\_get\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_tkt_creds_get_creds:c.krb5_tkt_creds_get_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_tkt\_creds\_get\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_tkt_creds_context:c.krb5_tkt_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} TGS request context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Acquired credentials - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function copies the acquired initial credentials from \sphinxstyleemphasis{ctx} into \sphinxstyleemphasis{creds} , after the successful completion of krb5\_tkt\_creds\_get() or krb5\_tkt\_creds\_step(). Use krb5\_free\_cred\_contents() to free \sphinxstyleemphasis{creds} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_tkt\_creds\_get\_times \sphinxhyphen{} Retrieve ticket times from a TGS request context.} -\label{\detokenize{appdev/refs/api/krb5_tkt_creds_get_times:krb5-tkt-creds-get-times-retrieve-ticket-times-from-a-tgs-request-context}}\label{\detokenize{appdev/refs/api/krb5_tkt_creds_get_times::doc}}\index{krb5\_tkt\_creds\_get\_times (C function)@\spxentry{krb5\_tkt\_creds\_get\_times}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_tkt_creds_get_times:c.krb5_tkt_creds_get_times}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_tkt\_creds\_get\_times}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_tkt_creds_context:c.krb5_tkt_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{times}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} TGS request context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{times} \sphinxhyphen{} Ticket times for acquired credentials - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -The TGS request context must have completed obtaining credentials via either krb5\_tkt\_creds\_get() or krb5\_tkt\_creds\_step(). - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_tkt\_creds\_init \sphinxhyphen{} Create a context to get credentials from a KDC’s Ticket Granting Service.} -\label{\detokenize{appdev/refs/api/krb5_tkt_creds_init:krb5-tkt-creds-init-create-a-context-to-get-credentials-from-a-kdc-s-ticket-granting-service}}\label{\detokenize{appdev/refs/api/krb5_tkt_creds_init::doc}}\index{krb5\_tkt\_creds\_init (C function)@\spxentry{krb5\_tkt\_creds\_init}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_tkt_creds_init:c.krb5_tkt_creds_init}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_tkt\_creds\_init}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_tkt_creds_context:c.krb5_tkt_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_creds\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ctx}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache handle - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Input credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{options} \sphinxhyphen{} Options (see KRB5\_GC macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} New TGS request context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function prepares to obtain credentials matching \sphinxstyleemphasis{creds} , either by retrieving them from \sphinxstyleemphasis{ccache} or by making requests to ticket\sphinxhyphen{}granting services beginning with a ticket\sphinxhyphen{}granting ticket for the client principal’s realm. - -\sphinxAtStartPar -The resulting TGS acquisition context can be used asynchronously with krb5\_tkt\_creds\_step() or synchronously with krb5\_tkt\_creds\_get(). See also krb5\_get\_credentials() for synchronous use. - -\sphinxAtStartPar -Use krb5\_tkt\_creds\_free() to free \sphinxstyleemphasis{ctx} when it is no longer needed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_tkt\_creds\_step \sphinxhyphen{} Get the next KDC request in a TGS exchange.} -\label{\detokenize{appdev/refs/api/krb5_tkt_creds_step:krb5-tkt-creds-step-get-the-next-kdc-request-in-a-tgs-exchange}}\label{\detokenize{appdev/refs/api/krb5_tkt_creds_step::doc}}\index{krb5\_tkt\_creds\_step (C function)@\spxentry{krb5\_tkt\_creds\_step}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_tkt_creds_step:c.krb5_tkt_creds_step}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_tkt\_creds\_step}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_tkt_creds_context:c.krb5_tkt_creds_context}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_creds\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{out}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{flags}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} TGS request context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in} \sphinxhyphen{} KDC response (empty on the first call) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out} \sphinxhyphen{} Next KDC request - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{realm} \sphinxhyphen{} Realm for next KDC request - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Output flags - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function constructs the next KDC request for a TGS exchange, allowing the caller to control the transport of KDC requests and replies. On the first call, \sphinxstyleemphasis{in} should be set to an empty buffer; on subsequent calls, it should be set to the KDC’s reply to the previous request. - -\sphinxAtStartPar -If more requests are needed, \sphinxstyleemphasis{flags} will be set to KRB5\_TKT\_CREDS\_STEP\_FLAG\_CONTINUE and the next request will be placed in \sphinxstyleemphasis{out} . If no more requests are needed, \sphinxstyleemphasis{flags} will not contain KRB5\_TKT\_CREDS\_STEP\_FLAG\_CONTINUE and \sphinxstyleemphasis{out} will be empty. - -\sphinxAtStartPar -If this function returns \sphinxstylestrong{KRB5KRB\_ERR\_RESPONSE\_TOO\_BIG} , the caller should transmit the next request using TCP rather than UDP. If this function returns any other error, the TGS exchange has failed. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_unmarshal\_credentials \sphinxhyphen{} Deserialize a krb5\_creds object.} -\label{\detokenize{appdev/refs/api/krb5_unmarshal_credentials:krb5-unmarshal-credentials-deserialize-a-krb5-creds-object}}\label{\detokenize{appdev/refs/api/krb5_unmarshal_credentials::doc}}\index{krb5\_unmarshal\_credentials (C function)@\spxentry{krb5\_unmarshal\_credentials}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_unmarshal_credentials:c.krb5_unmarshal_credentials}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_unmarshal\_credentials}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{creds\_out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} The serialized credentials - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{creds\_out} \sphinxhyphen{} The resulting creds object - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Deserialize \sphinxstyleemphasis{data} to credentials in the format used by the FILE ccache format (vesion 4) and KCM ccache protocol. - -\sphinxAtStartPar -Use krb5\_free\_creds() to free \sphinxstyleemphasis{creds\_out} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_verify\_init\_creds \sphinxhyphen{} Verify initial credentials against a keytab.} -\label{\detokenize{appdev/refs/api/krb5_verify_init_creds:krb5-verify-init-creds-verify-initial-credentials-against-a-keytab}}\label{\detokenize{appdev/refs/api/krb5_verify_init_creds::doc}}\index{krb5\_verify\_init\_creds (C function)@\spxentry{krb5\_verify\_init\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_verify_init_creds:c.krb5_verify_init_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_verify\_init\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{server}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:c.krb5_verify_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_verify\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{options}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{creds} \sphinxhyphen{} Initial credentials to be verified - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Server principal (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table (NULL to use default keytab) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache for fetched creds (or NULL) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{options} \sphinxhyphen{} Verification options (NULL for default options) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function attempts to verify that \sphinxstyleemphasis{creds} were obtained from a KDC with knowledge of a key in \sphinxstyleemphasis{keytab} , or the default keytab if \sphinxstyleemphasis{keytab} is NULL. If \sphinxstyleemphasis{server} is provided, the highest\sphinxhyphen{}kvno key entry for that principal name is used to verify the credentials; otherwise, all unique”host”service principals in the keytab are tried. - -\sphinxAtStartPar -If the specified keytab does not exist, or is empty, or cannot be read, or does not contain an entry for \sphinxstyleemphasis{server} , then credential verification may be skipped unless configuration demands that it succeed. The caller can control this behavior by providing a verification options structure; see krb5\_verify\_init\_creds\_opt\_init() and krb5\_verify\_init\_creds\_opt\_set\_ap\_req\_nofail(). - -\sphinxAtStartPar -If \sphinxstyleemphasis{ccache} is NULL, any additional credentials fetched during the verification process will be destroyed. If \sphinxstyleemphasis{ccache} points to NULL, a memory ccache will be created for the additional credentials and returned in \sphinxstyleemphasis{ccache} . If \sphinxstyleemphasis{ccache} points to a valid credential cache handle, the additional credentials will be stored in that cache. - -\sphinxstepscope - - -\subsubsection{krb5\_verify\_init\_creds\_opt\_init \sphinxhyphen{} Initialize a credential verification options structure.} -\label{\detokenize{appdev/refs/api/krb5_verify_init_creds_opt_init:krb5-verify-init-creds-opt-init-initialize-a-credential-verification-options-structure}}\label{\detokenize{appdev/refs/api/krb5_verify_init_creds_opt_init::doc}}\index{krb5\_verify\_init\_creds\_opt\_init (C function)@\spxentry{krb5\_verify\_init\_creds\_opt\_init}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_verify_init_creds_opt_init:c.krb5_verify_init_creds_opt_init}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_verify\_init\_creds\_opt\_init}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:c.krb5_verify_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_verify\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k5\_vic\_options}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{k5\_vic\_options} \sphinxhyphen{} Verification options structure - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_verify\_init\_creds\_opt\_set\_ap\_req\_nofail \sphinxhyphen{} Set whether credential verification is required.} -\label{\detokenize{appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail:krb5-verify-init-creds-opt-set-ap-req-nofail-set-whether-credential-verification-is-required}}\label{\detokenize{appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail::doc}}\index{krb5\_verify\_init\_creds\_opt\_set\_ap\_req\_nofail (C function)@\spxentry{krb5\_verify\_init\_creds\_opt\_set\_ap\_req\_nofail}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_verify_init_creds_opt_set_ap_req_nofail:c.krb5_verify_init_creds_opt_set_ap_req_nofail}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_verify\_init\_creds\_opt\_set\_ap\_req\_nofail}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:c.krb5_verify_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_verify\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k5\_vic\_options}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{ap\_req\_nofail}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{k5\_vic\_options} \sphinxhyphen{} Verification options structure - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ap\_req\_nofail} \sphinxhyphen{} Whether to require successful verification - -\end{description}\end{quote} - -\sphinxAtStartPar -This function determines how krb5\_verify\_init\_creds() behaves if no keytab information is available. If \sphinxstyleemphasis{ap\_req\_nofail} is \sphinxstylestrong{FALSE} , verification will be skipped in this case and krb5\_verify\_init\_creds() will return successfully. If \sphinxstyleemphasis{ap\_req\_nofail} is \sphinxstylestrong{TRUE} , krb5\_verify\_init\_creds() will not return successfully unless verification can be performed. - -\sphinxAtStartPar -If this function is not used, the behavior of krb5\_verify\_init\_creds() is determined through configuration. - -\sphinxstepscope - - -\subsubsection{krb5\_vprepend\_error\_message \sphinxhyphen{} Add a prefix to the message for an error code using a va\_list.} -\label{\detokenize{appdev/refs/api/krb5_vprepend_error_message:krb5-vprepend-error-message-add-a-prefix-to-the-message-for-an-error-code-using-a-va-list}}\label{\detokenize{appdev/refs/api/krb5_vprepend_error_message::doc}}\index{krb5\_vprepend\_error\_message (C function)@\spxentry{krb5\_vprepend\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_vprepend_error_message:c.krb5_vprepend_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_vprepend\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\DUrole{n}{code}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{fmt}\sphinxparamcomma \DUrole{n}{va\_list}\DUrole{w}{ }\DUrole{n}{args}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{code} \sphinxhyphen{} Error code - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fmt} \sphinxhyphen{} Format string for error message prefix - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{args} \sphinxhyphen{} List of vprintf(3) style arguments - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is similar to krb5\_prepend\_error\_message(), but uses a va\_list instead of variadic arguments. - -\sphinxstepscope - - -\subsubsection{krb5\_vset\_error\_message \sphinxhyphen{} Set an extended error message for an error code using a va\_list.} -\label{\detokenize{appdev/refs/api/krb5_vset_error_message:krb5-vset-error-message-set-an-extended-error-message-for-an-error-code-using-a-va-list}}\label{\detokenize{appdev/refs/api/krb5_vset_error_message::doc}}\index{krb5\_vset\_error\_message (C function)@\spxentry{krb5\_vset\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_vset_error_message:c.krb5_vset_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_vset\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\DUrole{n}{code}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{fmt}\sphinxparamcomma \DUrole{n}{va\_list}\DUrole{w}{ }\DUrole{n}{args}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{code} \sphinxhyphen{} Error code - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fmt} \sphinxhyphen{} Error string for the error code - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{args} \sphinxhyphen{} List of vprintf(3) style arguments - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_vwrap\_error\_message \sphinxhyphen{} Add a prefix to a different error code’s message using a va\_list.} -\label{\detokenize{appdev/refs/api/krb5_vwrap_error_message:krb5-vwrap-error-message-add-a-prefix-to-a-different-error-code-s-message-using-a-va-list}}\label{\detokenize{appdev/refs/api/krb5_vwrap_error_message::doc}}\index{krb5\_vwrap\_error\_message (C function)@\spxentry{krb5\_vwrap\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_vwrap_error_message:c.krb5_vwrap_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_vwrap\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\DUrole{n}{old\_code}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\DUrole{n}{code}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{fmt}\sphinxparamcomma \DUrole{n}{va\_list}\DUrole{w}{ }\DUrole{n}{args}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{old\_code} \sphinxhyphen{} Previous error code - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{code} \sphinxhyphen{} Error code - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fmt} \sphinxhyphen{} Format string for error message prefix - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{args} \sphinxhyphen{} List of vprintf(3) style arguments - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is similar to krb5\_wrap\_error\_message(), but uses a va\_list instead of variadic arguments. - -\sphinxstepscope - - -\subsubsection{krb5\_wrap\_error\_message \sphinxhyphen{} Add a prefix to a different error code’s message.} -\label{\detokenize{appdev/refs/api/krb5_wrap_error_message:krb5-wrap-error-message-add-a-prefix-to-a-different-error-code-s-message}}\label{\detokenize{appdev/refs/api/krb5_wrap_error_message::doc}}\index{krb5\_wrap\_error\_message (C function)@\spxentry{krb5\_wrap\_error\_message}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_wrap_error_message:c.krb5_wrap_error_message}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_wrap\_error\_message}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{ctx}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\DUrole{n}{old\_code}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\DUrole{n}{code}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{fmt}\sphinxparamcomma \DUrole{p}{...}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctx} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{old\_code} \sphinxhyphen{} Previous error code - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{code} \sphinxhyphen{} Error code - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fmt} \sphinxhyphen{} Format string for error message prefix - -\end{description}\end{quote} - -\sphinxAtStartPar -Format a message and prepend it to the message for \sphinxstyleemphasis{old\_code} . The prefix will be separated from the old message with a colon and space. Set the resulting message as the extended error message for \sphinxstyleemphasis{code} . - - -\subsection{Public interfaces that should not be called directly} -\label{\detokenize{appdev/refs/api/index:public-interfaces-that-should-not-be-called-directly}} -\sphinxstepscope - - -\subsubsection{krb5\_c\_block\_size \sphinxhyphen{} Return cipher block size.} -\label{\detokenize{appdev/refs/api/krb5_c_block_size:krb5-c-block-size-return-cipher-block-size}}\label{\detokenize{appdev/refs/api/krb5_c_block_size::doc}}\index{krb5\_c\_block\_size (C function)@\spxentry{krb5\_c\_block\_size}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_block_size:c.krb5_c_block_size}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_block\_size}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{blocksize}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{blocksize} \sphinxhyphen{} Block size for \sphinxstyleemphasis{enctype} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_checksum\_length \sphinxhyphen{} Return the length of checksums for a checksum type.} -\label{\detokenize{appdev/refs/api/krb5_c_checksum_length:krb5-c-checksum-length-return-the-length-of-checksums-for-a-checksum-type}}\label{\detokenize{appdev/refs/api/krb5_c_checksum_length::doc}}\index{krb5\_c\_checksum\_length (C function)@\spxentry{krb5\_c\_checksum\_length}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_checksum_length:c.krb5_c_checksum_length}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_checksum\_length}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{cksumtype}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{length}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksumtype} \sphinxhyphen{} Checksum type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{length} \sphinxhyphen{} Checksum length - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_crypto\_length \sphinxhyphen{} Return a length of a message field specific to the encryption type.} -\label{\detokenize{appdev/refs/api/krb5_c_crypto_length:krb5-c-crypto-length-return-a-length-of-a-message-field-specific-to-the-encryption-type}}\label{\detokenize{appdev/refs/api/krb5_c_crypto_length::doc}}\index{krb5\_c\_crypto\_length (C function)@\spxentry{krb5\_c\_crypto\_length}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_crypto_length:c.krb5_c_crypto_length}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_crypto\_length}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cryptotype:c.krb5_cryptotype}]{\sphinxcrossref{\DUrole{n}{krb5\_cryptotype}}}}\DUrole{w}{ }\DUrole{n}{type}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{size}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{type} \sphinxhyphen{} Type field (See KRB5\_CRYPTO\_TYPE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{size} \sphinxhyphen{} Length of the \sphinxstyleemphasis{type} specific to \sphinxstyleemphasis{enctype} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_crypto\_length\_iov \sphinxhyphen{} Fill in lengths for header, trailer and padding in a IOV array.} -\label{\detokenize{appdev/refs/api/krb5_c_crypto_length_iov:krb5-c-crypto-length-iov-fill-in-lengths-for-header-trailer-and-padding-in-a-iov-array}}\label{\detokenize{appdev/refs/api/krb5_c_crypto_length_iov::doc}}\index{krb5\_c\_crypto\_length\_iov (C function)@\spxentry{krb5\_c\_crypto\_length\_iov}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_crypto_length_iov:c.krb5_c_crypto_length_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_crypto\_length\_iov}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{num\_data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{data} \sphinxhyphen{} IOV array - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_data} \sphinxhyphen{} Size of \sphinxstyleemphasis{data} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Padding is set to the actual padding required based on the provided \sphinxstyleemphasis{data} buffers. Typically this API is used after setting up the data buffers and KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY buffers, but before actually allocating header, trailer and padding. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_decrypt \sphinxhyphen{} Decrypt data using a key (operates on keyblock).} -\label{\detokenize{appdev/refs/api/krb5_c_decrypt:krb5-c-decrypt-decrypt-data-using-a-key-operates-on-keyblock}}\label{\detokenize{appdev/refs/api/krb5_c_decrypt::doc}}\index{krb5\_c\_decrypt (C function)@\spxentry{krb5\_c\_decrypt}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_decrypt:c.krb5_c_decrypt}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_decrypt}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cipher\_state}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{output}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{cipher\_state} \sphinxhyphen{} Cipher state; specify NULL if not needed - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Encrypted data - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{output} \sphinxhyphen{} Decrypted data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function decrypts the data block \sphinxstyleemphasis{input} and stores the output into \sphinxstyleemphasis{output} . The actual decryption key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the encryption type. If non\sphinxhyphen{}null, \sphinxstyleemphasis{cipher\_state} specifies the beginning state for the decryption operation, and is updated with the state to be passed as input to the next operation. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The caller must initialize \sphinxstyleemphasis{output} and allocate at least enough space for the result. The usual practice is to allocate an output buffer as long as the ciphertext, and let krb5\_c\_decrypt() trim \sphinxstyleemphasis{output\sphinxhyphen{}\textgreater{}length} . For some enctypes, the resulting \sphinxstyleemphasis{output\sphinxhyphen{}\textgreater{}length} may include padding bytes. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_decrypt\_iov \sphinxhyphen{} Decrypt data in place supporting AEAD (operates on keyblock).} -\label{\detokenize{appdev/refs/api/krb5_c_decrypt_iov:krb5-c-decrypt-iov-decrypt-data-in-place-supporting-aead-operates-on-keyblock}}\label{\detokenize{appdev/refs/api/krb5_c_decrypt_iov::doc}}\index{krb5\_c\_decrypt\_iov (C function)@\spxentry{krb5\_c\_decrypt\_iov}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_decrypt_iov:c.krb5_c_decrypt_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_decrypt\_iov}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keyblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cipher\_state}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{num\_data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keyblock} \sphinxhyphen{} Encryption key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cipher\_state} \sphinxhyphen{} Cipher state; specify NULL if not needed - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{data} \sphinxhyphen{} IOV array. Modified in\sphinxhyphen{}place. - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_data} \sphinxhyphen{} Size of \sphinxstyleemphasis{data} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function decrypts the data block \sphinxstyleemphasis{data} and stores the output in\sphinxhyphen{}place. The actual decryption key will be derived from \sphinxstyleemphasis{keyblock} and \sphinxstyleemphasis{usage} if key derivation is specified for the encryption type. If non\sphinxhyphen{}null, \sphinxstyleemphasis{cipher\_state} specifies the beginning state for the decryption operation, and is updated with the state to be passed as input to the next operation. The caller must allocate the right number of krb5\_crypto\_iov structures before calling into this API. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_c\_decrypt\_iov() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -On return from a krb5\_c\_decrypt\_iov() call, the \sphinxstyleemphasis{data\sphinxhyphen{}\textgreater{}length} in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_derive\_prfplus \sphinxhyphen{} Derive a key using some input data (via RFC 6113 PRF+).} -\label{\detokenize{appdev/refs/api/krb5_c_derive_prfplus:krb5-c-derive-prfplus-derive-a-key-using-some-input-data-via-rfc-6113-prf}}\label{\detokenize{appdev/refs/api/krb5_c_derive_prfplus::doc}}\index{krb5\_c\_derive\_prfplus (C function)@\spxentry{krb5\_c\_derive\_prfplus}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_derive_prfplus:c.krb5_c_derive_prfplus}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_derive\_prfplus}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{k} \sphinxhyphen{} KDC contribution key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Input string - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Output key enctype (or \sphinxstylestrong{ENCTYPE\_NULL} ) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out} \sphinxhyphen{} Derived keyblock - -\end{description}\end{quote} - -\sphinxAtStartPar -This function uses PRF+ as defined in RFC 6113 to derive a key from another key and an input string. If \sphinxstyleemphasis{enctype} is \sphinxstylestrong{ENCTYPE\_NULL} , the output key will have the same enctype as the input key. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_encrypt \sphinxhyphen{} Encrypt data using a key (operates on keyblock).} -\label{\detokenize{appdev/refs/api/krb5_c_encrypt:krb5-c-encrypt-encrypt-data-using-a-key-operates-on-keyblock}}\label{\detokenize{appdev/refs/api/krb5_c_encrypt::doc}}\index{krb5\_c\_encrypt (C function)@\spxentry{krb5\_c\_encrypt}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_encrypt:c.krb5_c_encrypt}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_encrypt}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cipher\_state}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{output}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{cipher\_state} \sphinxhyphen{} Cipher state; specify NULL if not needed - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Data to be encrypted - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{output} \sphinxhyphen{} Encrypted data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function encrypts the data block \sphinxstyleemphasis{input} and stores the output into \sphinxstyleemphasis{output} . The actual encryption key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the encryption type. If non\sphinxhyphen{}null, \sphinxstyleemphasis{cipher\_state} specifies the beginning state for the encryption operation, and is updated with the state to be passed as input to the next operation. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The caller must initialize \sphinxstyleemphasis{output} and allocate at least enough space for the result (using krb5\_c\_encrypt\_length() to determine the amount of space needed). \sphinxstyleemphasis{output\sphinxhyphen{}\textgreater{}length} will be set to the actual length of the ciphertext. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_encrypt\_iov \sphinxhyphen{} Encrypt data in place supporting AEAD (operates on keyblock).} -\label{\detokenize{appdev/refs/api/krb5_c_encrypt_iov:krb5-c-encrypt-iov-encrypt-data-in-place-supporting-aead-operates-on-keyblock}}\label{\detokenize{appdev/refs/api/krb5_c_encrypt_iov::doc}}\index{krb5\_c\_encrypt\_iov (C function)@\spxentry{krb5\_c\_encrypt\_iov}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_encrypt_iov:c.krb5_c_encrypt_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_encrypt\_iov}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keyblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cipher\_state}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{num\_data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keyblock} \sphinxhyphen{} Encryption key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cipher\_state} \sphinxhyphen{} Cipher state; specify NULL if not needed - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{data} \sphinxhyphen{} IOV array. Modified in\sphinxhyphen{}place. - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_data} \sphinxhyphen{} Size of \sphinxstyleemphasis{data} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function encrypts the data block \sphinxstyleemphasis{data} and stores the output in\sphinxhyphen{}place. The actual encryption key will be derived from \sphinxstyleemphasis{keyblock} and \sphinxstyleemphasis{usage} if key derivation is specified for the encryption type. If non\sphinxhyphen{}null, \sphinxstyleemphasis{cipher\_state} specifies the beginning state for the encryption operation, and is updated with the state to be passed as input to the next operation. The caller must allocate the right number of krb5\_crypto\_iov structures before calling into this API. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_c\_decrypt\_iov() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -On return from a krb5\_c\_encrypt\_iov() call, the \sphinxstyleemphasis{data\sphinxhyphen{}\textgreater{}length} in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_encrypt\_length \sphinxhyphen{} Compute encrypted data length.} -\label{\detokenize{appdev/refs/api/krb5_c_encrypt_length:krb5-c-encrypt-length-compute-encrypted-data-length}}\label{\detokenize{appdev/refs/api/krb5_c_encrypt_length::doc}}\index{krb5\_c\_encrypt\_length (C function)@\spxentry{krb5\_c\_encrypt\_length}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_encrypt_length:c.krb5_c_encrypt_length}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_encrypt\_length}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{inputlen}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{length}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{inputlen} \sphinxhyphen{} Length of the data to be encrypted - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{length} \sphinxhyphen{} Length of the encrypted data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function computes the length of the ciphertext produced by encrypting \sphinxstyleemphasis{inputlen} bytes including padding, confounder, and checksum. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_enctype\_compare \sphinxhyphen{} Compare two encryption types.} -\label{\detokenize{appdev/refs/api/krb5_c_enctype_compare:krb5-c-enctype-compare-compare-two-encryption-types}}\label{\detokenize{appdev/refs/api/krb5_c_enctype_compare::doc}}\index{krb5\_c\_enctype\_compare (C function)@\spxentry{krb5\_c\_enctype\_compare}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_enctype_compare:c.krb5_c_enctype_compare}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_enctype\_compare}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{e1}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{e2}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{similar}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{e1} \sphinxhyphen{} First encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{e2} \sphinxhyphen{} Second encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{similar} \sphinxhyphen{} \sphinxstylestrong{TRUE} if types are similar, \sphinxstylestrong{FALSE} if not - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function determines whether two encryption types use the same kind of keys. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_free\_state \sphinxhyphen{} Free a cipher state previously allocated by krb5\_c\_init\_state().} -\label{\detokenize{appdev/refs/api/krb5_c_free_state:krb5-c-free-state-free-a-cipher-state-previously-allocated-by-krb5-c-init-state}}\label{\detokenize{appdev/refs/api/krb5_c_free_state::doc}}\index{krb5\_c\_free\_state (C function)@\spxentry{krb5\_c\_free\_state}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_free_state:c.krb5_c_free_state}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_free\_state}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{state}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{state} \sphinxhyphen{} Cipher state to be freed - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_fx\_cf2\_simple \sphinxhyphen{} Compute the KRB\sphinxhyphen{}FX\sphinxhyphen{}CF2 combination of two keys and pepper strings.} -\label{\detokenize{appdev/refs/api/krb5_c_fx_cf2_simple:krb5-c-fx-cf2-simple-compute-the-krb-fx-cf2-combination-of-two-keys-and-pepper-strings}}\label{\detokenize{appdev/refs/api/krb5_c_fx_cf2_simple::doc}}\index{krb5\_c\_fx\_cf2\_simple (C function)@\spxentry{krb5\_c\_fx\_cf2\_simple}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_fx_cf2_simple:c.krb5_c_fx_cf2_simple}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_fx\_cf2\_simple}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k1}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pepper1}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k2}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pepper2}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{k1} \sphinxhyphen{} KDC contribution key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pepper1} \sphinxhyphen{} String”PKINIT” - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{k2} \sphinxhyphen{} Reply key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{pepper2} \sphinxhyphen{} String”KeyExchange” - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out} \sphinxhyphen{} Output key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function computes the KRB\sphinxhyphen{}FX\sphinxhyphen{}CF2 function over its inputs and places the results in a newly allocated keyblock. This function is simple in that it assumes that \sphinxstyleemphasis{pepper1} and \sphinxstyleemphasis{pepper2} are C strings with no internal nulls and that the enctype of the result will be the same as that of \sphinxstyleemphasis{k1} . \sphinxstyleemphasis{k1} and \sphinxstyleemphasis{k2} may be of different enctypes. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_init\_state \sphinxhyphen{} Initialize a new cipher state.} -\label{\detokenize{appdev/refs/api/krb5_c_init_state:krb5-c-init-state-initialize-a-new-cipher-state}}\label{\detokenize{appdev/refs/api/krb5_c_init_state::doc}}\index{krb5\_c\_init\_state (C function)@\spxentry{krb5\_c\_init\_state}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_init_state:c.krb5_c_init_state}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_init\_state}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{new\_state}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{new\_state} \sphinxhyphen{} New cipher state - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_is\_coll\_proof\_cksum \sphinxhyphen{} Test whether a checksum type is collision\sphinxhyphen{}proof.} -\label{\detokenize{appdev/refs/api/krb5_c_is_coll_proof_cksum:krb5-c-is-coll-proof-cksum-test-whether-a-checksum-type-is-collision-proof}}\label{\detokenize{appdev/refs/api/krb5_c_is_coll_proof_cksum::doc}}\index{krb5\_c\_is\_coll\_proof\_cksum (C function)@\spxentry{krb5\_c\_is\_coll\_proof\_cksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_is_coll_proof_cksum:c.krb5_c_is_coll_proof_cksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_is\_coll\_proof\_cksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{ctype}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctype} \sphinxhyphen{} Checksum type - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if ctype is collision\sphinxhyphen{}proof, FALSE if it is not collision\sphinxhyphen{}proof or not a valid checksum type. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_is\_keyed\_cksum \sphinxhyphen{} Test whether a checksum type is keyed.} -\label{\detokenize{appdev/refs/api/krb5_c_is_keyed_cksum:krb5-c-is-keyed-cksum-test-whether-a-checksum-type-is-keyed}}\label{\detokenize{appdev/refs/api/krb5_c_is_keyed_cksum::doc}}\index{krb5\_c\_is\_keyed\_cksum (C function)@\spxentry{krb5\_c\_is\_keyed\_cksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_is_keyed_cksum:c.krb5_c_is_keyed_cksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_is\_keyed\_cksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{ctype}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctype} \sphinxhyphen{} Checksum type - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if ctype is a keyed checksum type, FALSE otherwise. - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_keyed\_checksum\_types \sphinxhyphen{} Return a list of keyed checksum types usable with an encryption type.} -\label{\detokenize{appdev/refs/api/krb5_c_keyed_checksum_types:krb5-c-keyed-checksum-types-return-a-list-of-keyed-checksum-types-usable-with-an-encryption-type}}\label{\detokenize{appdev/refs/api/krb5_c_keyed_checksum_types::doc}}\index{krb5\_c\_keyed\_checksum\_types (C function)@\spxentry{krb5\_c\_keyed\_checksum\_types}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_keyed_checksum_types:c.krb5_c_keyed_checksum_types}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_keyed\_checksum\_types}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{count}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{cksumtypes}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{count} \sphinxhyphen{} Count of allowable checksum types - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cksumtypes} \sphinxhyphen{} Array of allowable checksum types - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_cksumtypes() to free \sphinxstyleemphasis{cksumtypes} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_keylengths \sphinxhyphen{} Return length of the specified key in bytes.} -\label{\detokenize{appdev/refs/api/krb5_c_keylengths:krb5-c-keylengths-return-length-of-the-specified-key-in-bytes}}\label{\detokenize{appdev/refs/api/krb5_c_keylengths::doc}}\index{krb5\_c\_keylengths (C function)@\spxentry{krb5\_c\_keylengths}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_keylengths:c.krb5_c_keylengths}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_keylengths}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keybytes}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keylength}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{keybytes} \sphinxhyphen{} Number of bytes required to make a key - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{keylength} \sphinxhyphen{} Length of final key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_make\_checksum \sphinxhyphen{} Compute a checksum (operates on keyblock).} -\label{\detokenize{appdev/refs/api/krb5_c_make_checksum:krb5-c-make-checksum-compute-a-checksum-operates-on-keyblock}}\label{\detokenize{appdev/refs/api/krb5_c_make_checksum::doc}}\index{krb5\_c\_make\_checksum (C function)@\spxentry{krb5\_c\_make\_checksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_make_checksum:c.krb5_c_make_checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_make\_checksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{cksumtype}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cksum}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksumtype} \sphinxhyphen{} Checksum type (0 for mandatory type) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key for a keyed checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Input data - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cksum} \sphinxhyphen{} Generated checksum - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function computes a checksum of type \sphinxstyleemphasis{cksumtype} over \sphinxstyleemphasis{input} , using \sphinxstyleemphasis{key} if the checksum type is a keyed checksum. If \sphinxstyleemphasis{cksumtype} is 0 and \sphinxstyleemphasis{key} is non\sphinxhyphen{}null, the checksum type will be the mandatory\sphinxhyphen{}to\sphinxhyphen{}implement checksum type for the key’s encryption type. The actual checksum key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the checksum type. The newly created \sphinxstyleemphasis{cksum} must be released by calling krb5\_free\_checksum\_contents() when it is no longer needed. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_c\_verify\_checksum() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function is similar to krb5\_k\_make\_checksum(), but operates on keyblock \sphinxstyleemphasis{key} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_make\_checksum\_iov \sphinxhyphen{} Fill in a checksum element in IOV array (operates on keyblock)} -\label{\detokenize{appdev/refs/api/krb5_c_make_checksum_iov:krb5-c-make-checksum-iov-fill-in-a-checksum-element-in-iov-array-operates-on-keyblock}}\label{\detokenize{appdev/refs/api/krb5_c_make_checksum_iov::doc}}\index{krb5\_c\_make\_checksum\_iov (C function)@\spxentry{krb5\_c\_make\_checksum\_iov}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_make_checksum_iov:c.krb5_c_make_checksum_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_make\_checksum\_iov}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{cksumtype}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{num\_data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksumtype} \sphinxhyphen{} Checksum type (0 for mandatory type) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key for a keyed checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{data} \sphinxhyphen{} IOV array - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_data} \sphinxhyphen{} Size of \sphinxstyleemphasis{data} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Create a checksum in the KRB5\_CRYPTO\_TYPE\_CHECKSUM element over KRB5\_CRYPTO\_TYPE\_DATA and KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY chunks in \sphinxstyleemphasis{data} . Only the KRB5\_CRYPTO\_TYPE\_CHECKSUM region is modified. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_c\_verify\_checksum\_iov() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function is similar to krb5\_k\_make\_checksum\_iov(), but operates on keyblock \sphinxstyleemphasis{key} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_make\_random\_key \sphinxhyphen{} Generate an enctype\sphinxhyphen{}specific random encryption key.} -\label{\detokenize{appdev/refs/api/krb5_c_make_random_key:krb5-c-make-random-key-generate-an-enctype-specific-random-encryption-key}}\label{\detokenize{appdev/refs/api/krb5_c_make_random_key::doc}}\index{krb5\_c\_make\_random\_key (C function)@\spxentry{krb5\_c\_make\_random\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_make_random_key:c.krb5_c_make_random_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_make\_random\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k5\_random\_key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type of the generated key - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{k5\_random\_key} \sphinxhyphen{} An allocated and initialized keyblock - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_keyblock\_contents() to free \sphinxstyleemphasis{k5\_random\_key} when no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_padding\_length \sphinxhyphen{} Return a number of padding octets.} -\label{\detokenize{appdev/refs/api/krb5_c_padding_length:krb5-c-padding-length-return-a-number-of-padding-octets}}\label{\detokenize{appdev/refs/api/krb5_c_padding_length::doc}}\index{krb5\_c\_padding\_length (C function)@\spxentry{krb5\_c\_padding\_length}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_padding_length:c.krb5_c_padding_length}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_padding\_length}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{data\_length}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{size}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data\_length} \sphinxhyphen{} Length of the plaintext to pad - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{size} \sphinxhyphen{} Number of padding octets - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} KRB5\_BAD\_ENCTYPE - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function returns the number of the padding octets required to pad \sphinxstyleemphasis{data\_length} octets of plaintext. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_prf \sphinxhyphen{} Generate enctype\sphinxhyphen{}specific pseudo\sphinxhyphen{}random bytes.} -\label{\detokenize{appdev/refs/api/krb5_c_prf:krb5-c-prf-generate-enctype-specific-pseudo-random-bytes}}\label{\detokenize{appdev/refs/api/krb5_c_prf::doc}}\index{krb5\_c\_prf (C function)@\spxentry{krb5\_c\_prf}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_prf:c.krb5_c_prf}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_prf}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keyblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{output}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keyblock} \sphinxhyphen{} Key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Input data - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{output} \sphinxhyphen{} Output data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function selects a pseudo\sphinxhyphen{}random function based on \sphinxstyleemphasis{keyblock} and computes its value over \sphinxstyleemphasis{input} , placing the result into \sphinxstyleemphasis{output} . The caller must preinitialize \sphinxstyleemphasis{output} and allocate space for the result, using krb5\_c\_prf\_length() to determine the required length. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_prfplus \sphinxhyphen{} Generate pseudo\sphinxhyphen{}random bytes using RFC 6113 PRF+.} -\label{\detokenize{appdev/refs/api/krb5_c_prfplus:krb5-c-prfplus-generate-pseudo-random-bytes-using-rfc-6113-prf}}\label{\detokenize{appdev/refs/api/krb5_c_prfplus::doc}}\index{krb5\_c\_prfplus (C function)@\spxentry{krb5\_c\_prfplus}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_prfplus:c.krb5_c_prfplus}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_prfplus}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{output}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{k} \sphinxhyphen{} KDC contribution key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Input data - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{output} \sphinxhyphen{} Pseudo\sphinxhyphen{}random output buffer - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -0 on success, E2BIG if output\sphinxhyphen{}\textgreater{}length is too large for PRF+ to generate, ENOMEM on allocation failure, or an error code from krb5\_c\_prf() - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function fills \sphinxstyleemphasis{output} with PRF+(k, input) as defined in RFC 6113 section 5.1. The caller must preinitialize \sphinxstyleemphasis{output} and allocate the desired amount of space. The length of the pseudo\sphinxhyphen{}random output will match the length of \sphinxstyleemphasis{output} . - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -RFC 4402 defines a different PRF+ operation. This function does not implement that operation. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_prf\_length \sphinxhyphen{} Get the output length of pseudo\sphinxhyphen{}random functions for an encryption type.} -\label{\detokenize{appdev/refs/api/krb5_c_prf_length:krb5-c-prf-length-get-the-output-length-of-pseudo-random-functions-for-an-encryption-type}}\label{\detokenize{appdev/refs/api/krb5_c_prf_length::doc}}\index{krb5\_c\_prf\_length (C function)@\spxentry{krb5\_c\_prf\_length}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_prf_length:c.krb5_c_prf_length}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_prf\_length}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{len}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{len} \sphinxhyphen{} Length of PRF output - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_random\_add\_entropy} -\label{\detokenize{appdev/refs/api/krb5_c_random_add_entropy:krb5-c-random-add-entropy}}\label{\detokenize{appdev/refs/api/krb5_c_random_add_entropy::doc}}\index{krb5\_c\_random\_add\_entropy (C function)@\spxentry{krb5\_c\_random\_add\_entropy}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_random_add_entropy:c.krb5_c_random_add_entropy}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_random\_add\_entropy}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{randsource}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{randsource} - -\sphinxAtStartPar -\sphinxstylestrong{data} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED This call is no longer necessary. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_random\_make\_octets \sphinxhyphen{} Generate pseudo\sphinxhyphen{}random bytes.} -\label{\detokenize{appdev/refs/api/krb5_c_random_make_octets:krb5-c-random-make-octets-generate-pseudo-random-bytes}}\label{\detokenize{appdev/refs/api/krb5_c_random_make_octets::doc}}\index{krb5\_c\_random\_make\_octets (C function)@\spxentry{krb5\_c\_random\_make\_octets}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_random_make_octets:c.krb5_c_random_make_octets}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_random\_make\_octets}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{data} \sphinxhyphen{} Random data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Fills in \sphinxstyleemphasis{data} with bytes from the PRNG used by krb5 crypto operations. The caller must preinitialize \sphinxstyleemphasis{data} and allocate the desired amount of space. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_random\_os\_entropy} -\label{\detokenize{appdev/refs/api/krb5_c_random_os_entropy:krb5-c-random-os-entropy}}\label{\detokenize{appdev/refs/api/krb5_c_random_os_entropy::doc}}\index{krb5\_c\_random\_os\_entropy (C function)@\spxentry{krb5\_c\_random\_os\_entropy}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_random_os_entropy:c.krb5_c_random_os_entropy}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_random\_os\_entropy}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{strong}\sphinxparamcomma \DUrole{kt}{int}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{success}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{strong} - -\sphinxAtStartPar -\sphinxstylestrong{success} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED This call is no longer necessary. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_random\_to\_key \sphinxhyphen{} Generate an enctype\sphinxhyphen{}specific key from random data.} -\label{\detokenize{appdev/refs/api/krb5_c_random_to_key:krb5-c-random-to-key-generate-an-enctype-specific-key-from-random-data}}\label{\detokenize{appdev/refs/api/krb5_c_random_to_key::doc}}\index{krb5\_c\_random\_to\_key (C function)@\spxentry{krb5\_c\_random\_to\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_random_to_key:c.krb5_c_random_to_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_random\_to\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{random\_data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{k5\_random\_key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{random\_data} \sphinxhyphen{} Random input data - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{k5\_random\_key} \sphinxhyphen{} Resulting key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function takes random input data \sphinxstyleemphasis{random\_data} and produces a valid key \sphinxstyleemphasis{k5\_random\_key} for a given \sphinxstyleemphasis{enctype} . - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_c\_keylengths() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -It is assumed that \sphinxstyleemphasis{k5\_random\_key} has already been initialized and \sphinxstyleemphasis{k5\_random\_key\sphinxhyphen{}\textgreater{}contents} has been allocated with the correct length. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_string\_to\_key \sphinxhyphen{} Convert a string (such a password) to a key.} -\label{\detokenize{appdev/refs/api/krb5_c_string_to_key:krb5-c-string-to-key-convert-a-string-such-a-password-to-a-key}}\label{\detokenize{appdev/refs/api/krb5_c_string_to_key::doc}}\index{krb5\_c\_string\_to\_key (C function)@\spxentry{krb5\_c\_string\_to\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_string_to_key:c.krb5_c_string_to_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_string\_to\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{string}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{salt}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{string} \sphinxhyphen{} String to be converted - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{salt} \sphinxhyphen{} Salt value - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{key} \sphinxhyphen{} Generated key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function converts \sphinxstyleemphasis{string} to a \sphinxstyleemphasis{key} of encryption type \sphinxstyleemphasis{enctype} , using the specified \sphinxstyleemphasis{salt} . The newly created \sphinxstyleemphasis{key} must be released by calling krb5\_free\_keyblock\_contents() when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_string\_to\_key\_with\_params \sphinxhyphen{} Convert a string (such as a password) to a key with additional parameters.} -\label{\detokenize{appdev/refs/api/krb5_c_string_to_key_with_params:krb5-c-string-to-key-with-params-convert-a-string-such-as-a-password-to-a-key-with-additional-parameters}}\label{\detokenize{appdev/refs/api/krb5_c_string_to_key_with_params::doc}}\index{krb5\_c\_string\_to\_key\_with\_params (C function)@\spxentry{krb5\_c\_string\_to\_key\_with\_params}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_string_to_key_with_params:c.krb5_c_string_to_key_with_params}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_string\_to\_key\_with\_params}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{string}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{salt}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{params}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{string} \sphinxhyphen{} String to be converted - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{salt} \sphinxhyphen{} Salt value - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{params} \sphinxhyphen{} Parameters - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{key} \sphinxhyphen{} Generated key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is similar to krb5\_c\_string\_to\_key(), but also takes parameters which may affect the algorithm in an enctype\sphinxhyphen{}dependent way. The newly created \sphinxstyleemphasis{key} must be released by calling krb5\_free\_keyblock\_contents() when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_c\_valid\_cksumtype \sphinxhyphen{} Verify that specified checksum type is a valid Kerberos checksum type.} -\label{\detokenize{appdev/refs/api/krb5_c_valid_cksumtype:krb5-c-valid-cksumtype-verify-that-specified-checksum-type-is-a-valid-kerberos-checksum-type}}\label{\detokenize{appdev/refs/api/krb5_c_valid_cksumtype::doc}}\index{krb5\_c\_valid\_cksumtype (C function)@\spxentry{krb5\_c\_valid\_cksumtype}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_valid_cksumtype:c.krb5_c_valid_cksumtype}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_valid\_cksumtype}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{ctype}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ctype} \sphinxhyphen{} Checksum type - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if ctype is valid, FALSE if not - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_valid\_enctype \sphinxhyphen{} Verify that a specified encryption type is a valid Kerberos encryption type.} -\label{\detokenize{appdev/refs/api/krb5_c_valid_enctype:krb5-c-valid-enctype-verify-that-a-specified-encryption-type-is-a-valid-kerberos-encryption-type}}\label{\detokenize{appdev/refs/api/krb5_c_valid_enctype::doc}}\index{krb5\_c\_valid\_enctype (C function)@\spxentry{krb5\_c\_valid\_enctype}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_valid_enctype:c.krb5_c_valid_enctype}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_valid\_enctype}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{ktype}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ktype} \sphinxhyphen{} Encryption type - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{return}\begin{itemize} -\item {} -\sphinxAtStartPar -TRUE if ktype is valid, FALSE if not - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_verify\_checksum \sphinxhyphen{} Verify a checksum (operates on keyblock).} -\label{\detokenize{appdev/refs/api/krb5_c_verify_checksum:krb5-c-verify-checksum-verify-a-checksum-operates-on-keyblock}}\label{\detokenize{appdev/refs/api/krb5_c_verify_checksum::doc}}\index{krb5\_c\_verify\_checksum (C function)@\spxentry{krb5\_c\_verify\_checksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_verify_checksum:c.krb5_c_verify_checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_verify\_checksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cksum}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{valid}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key for a keyed checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} \sphinxstyleemphasis{key} usage - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Data to be used to compute a new checksum using \sphinxstyleemphasis{key} to compare \sphinxstyleemphasis{cksum} against - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksum} \sphinxhyphen{} Checksum to be verified - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{valid} \sphinxhyphen{} Non\sphinxhyphen{}zero for success, zero for failure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function verifies that \sphinxstyleemphasis{cksum} is a valid checksum for \sphinxstyleemphasis{data} . If the checksum type of \sphinxstyleemphasis{cksum} is a keyed checksum, \sphinxstyleemphasis{key} is used to verify the checksum. If the checksum type in \sphinxstyleemphasis{cksum} is 0 and \sphinxstyleemphasis{key} is not NULL, the mandatory checksum type for \sphinxstyleemphasis{key} will be used. The actual checksum key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the checksum type. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function is similar to krb5\_k\_verify\_checksum(), but operates on keyblock \sphinxstyleemphasis{key} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_c\_verify\_checksum\_iov \sphinxhyphen{} Validate a checksum element in IOV array (operates on keyblock).} -\label{\detokenize{appdev/refs/api/krb5_c_verify_checksum_iov:krb5-c-verify-checksum-iov-validate-a-checksum-element-in-iov-array-operates-on-keyblock}}\label{\detokenize{appdev/refs/api/krb5_c_verify_checksum_iov::doc}}\index{krb5\_c\_verify\_checksum\_iov (C function)@\spxentry{krb5\_c\_verify\_checksum\_iov}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_verify_checksum_iov:c.krb5_c_verify_checksum_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_verify\_checksum\_iov}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{cksumtype}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{num\_data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{valid}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksumtype} \sphinxhyphen{} Checksum type (0 for mandatory type) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key for a keyed checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} IOV array - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_data} \sphinxhyphen{} Size of \sphinxstyleemphasis{data} - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{valid} \sphinxhyphen{} Non\sphinxhyphen{}zero for success, zero for failure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Confirm that the checksum in the KRB5\_CRYPTO\_TYPE\_CHECKSUM element is a valid checksum of the KRB5\_CRYPTO\_TYPE\_DATA and KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY regions in the iov. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_c\_make\_checksum\_iov() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function is similar to krb5\_k\_verify\_checksum\_iov(), but operates on keyblock \sphinxstyleemphasis{key} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_cksumtype\_to\_string \sphinxhyphen{} Convert a checksum type to a string.} -\label{\detokenize{appdev/refs/api/krb5_cksumtype_to_string:krb5-cksumtype-to-string-convert-a-checksum-type-to-a-string}}\label{\detokenize{appdev/refs/api/krb5_cksumtype_to_string::doc}}\index{krb5\_cksumtype\_to\_string (C function)@\spxentry{krb5\_cksumtype\_to\_string}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cksumtype_to_string:c.krb5_cksumtype_to_string}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cksumtype\_to\_string}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{cksumtype}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{buffer}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{buflen}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksumtype} \sphinxhyphen{} Checksum type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{buffer} \sphinxhyphen{} Buffer to hold converted checksum type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{buflen} \sphinxhyphen{} Storage available in \sphinxstyleemphasis{buffer} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_decode\_authdata\_container \sphinxhyphen{} Unwrap authorization data.} -\label{\detokenize{appdev/refs/api/krb5_decode_authdata_container:krb5-decode-authdata-container-unwrap-authorization-data}}\label{\detokenize{appdev/refs/api/krb5_decode_authdata_container::doc}}\index{krb5\_decode\_authdata\_container (C function)@\spxentry{krb5\_decode\_authdata\_container}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_decode_authdata_container:c.krb5_decode_authdata_container}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_decode\_authdata\_container}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdatatype:c.krb5_authdatatype}]{\sphinxcrossref{\DUrole{n}{krb5\_authdatatype}}}}\DUrole{w}{ }\DUrole{n}{type}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{container}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{authdata}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{type} \sphinxhyphen{} Container type (see KRB5\_AUTHDATA macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{container} \sphinxhyphen{} Authorization data to be decoded - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{authdata} \sphinxhyphen{} List of decoded authorization data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_encode\_authdata\_container() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_decode\_ticket \sphinxhyphen{} Decode an ASN.1\sphinxhyphen{}formatted ticket.} -\label{\detokenize{appdev/refs/api/krb5_decode_ticket:krb5-decode-ticket-decode-an-asn-1-formatted-ticket}}\label{\detokenize{appdev/refs/api/krb5_decode_ticket::doc}}\index{krb5\_decode\_ticket (C function)@\spxentry{krb5\_decode\_ticket}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_decode_ticket:c.krb5_decode_ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_decode\_ticket}}}}{\DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{code}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{rep}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{code} \sphinxhyphen{} ASN.1\sphinxhyphen{}formatted ticket - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rep} \sphinxhyphen{} Decoded ticket information - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_deltat\_to\_string \sphinxhyphen{} Convert a relative time value to a string.} -\label{\detokenize{appdev/refs/api/krb5_deltat_to_string:krb5-deltat-to-string-convert-a-relative-time-value-to-a-string}}\label{\detokenize{appdev/refs/api/krb5_deltat_to_string::doc}}\index{krb5\_deltat\_to\_string (C function)@\spxentry{krb5\_deltat\_to\_string}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_deltat_to_string:c.krb5_deltat_to_string}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_deltat\_to\_string}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}]{\sphinxcrossref{\DUrole{n}{krb5\_deltat}}}}\DUrole{w}{ }\DUrole{n}{deltat}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{buffer}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{buflen}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{deltat} \sphinxhyphen{} Relative time value to convert - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{buffer} \sphinxhyphen{} Buffer to hold time string - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{buflen} \sphinxhyphen{} Storage available in \sphinxstyleemphasis{buffer} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_encode\_authdata\_container \sphinxhyphen{} Wrap authorization data in a container.} -\label{\detokenize{appdev/refs/api/krb5_encode_authdata_container:krb5-encode-authdata-container-wrap-authorization-data-in-a-container}}\label{\detokenize{appdev/refs/api/krb5_encode_authdata_container::doc}}\index{krb5\_encode\_authdata\_container (C function)@\spxentry{krb5\_encode\_authdata\_container}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_encode_authdata_container:c.krb5_encode_authdata_container}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_encode\_authdata\_container}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdatatype:c.krb5_authdatatype}]{\sphinxcrossref{\DUrole{n}{krb5\_authdatatype}}}}\DUrole{w}{ }\DUrole{n}{type}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{authdata}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{container}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{type} \sphinxhyphen{} Container type (see KRB5\_AUTHDATA macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{authdata} \sphinxhyphen{} List of authorization data to be encoded - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{container} \sphinxhyphen{} List of encoded authorization data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -The result is returned in \sphinxstyleemphasis{container} as a single\sphinxhyphen{}element list. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_decode\_authdata\_container() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_enctype\_to\_name \sphinxhyphen{} Convert an encryption type to a name or alias.} -\label{\detokenize{appdev/refs/api/krb5_enctype_to_name:krb5-enctype-to-name-convert-an-encryption-type-to-a-name-or-alias}}\label{\detokenize{appdev/refs/api/krb5_enctype_to_name::doc}}\index{krb5\_enctype\_to\_name (C function)@\spxentry{krb5\_enctype\_to\_name}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_enctype_to_name:c.krb5_enctype_to_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_enctype\_to\_name}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{n}{shortest}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{buffer}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{buflen}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{shortest} \sphinxhyphen{} Flag - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{buffer} \sphinxhyphen{} Buffer to hold encryption type string - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{buflen} \sphinxhyphen{} Storage available in \sphinxstyleemphasis{buffer} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -If \sphinxstyleemphasis{shortest} is FALSE, this function returns the enctype’s canonical name (like”aes128\sphinxhyphen{}cts\sphinxhyphen{}hmac\sphinxhyphen{}sha1\sphinxhyphen{}96”). If \sphinxstyleemphasis{shortest} is TRUE, it return the enctype’s shortest alias (like”aes128\sphinxhyphen{}cts”). - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -New in 1.9 -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_enctype\_to\_string \sphinxhyphen{} Convert an encryption type to a string.} -\label{\detokenize{appdev/refs/api/krb5_enctype_to_string:krb5-enctype-to-string-convert-an-encryption-type-to-a-string}}\label{\detokenize{appdev/refs/api/krb5_enctype_to_string::doc}}\index{krb5\_enctype\_to\_string (C function)@\spxentry{krb5\_enctype\_to\_string}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_enctype_to_string:c.krb5_enctype_to_string}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_enctype\_to\_string}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{buffer}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{buflen}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{enctype} \sphinxhyphen{} Encryption type - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{buffer} \sphinxhyphen{} Buffer to hold encryption type string - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{buflen} \sphinxhyphen{} Storage available in \sphinxstyleemphasis{buffer} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_checksum \sphinxhyphen{} Free a krb5\_checksum structure.} -\label{\detokenize{appdev/refs/api/krb5_free_checksum:krb5-free-checksum-free-a-krb5-checksum-structure}}\label{\detokenize{appdev/refs/api/krb5_free_checksum::doc}}\index{krb5\_free\_checksum (C function)@\spxentry{krb5\_free\_checksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_checksum:c.krb5_free_checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_checksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Checksum structure to be freed - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} and the structure itself. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_checksum\_contents \sphinxhyphen{} Free the contents of a krb5\_checksum structure.} -\label{\detokenize{appdev/refs/api/krb5_free_checksum_contents:krb5-free-checksum-contents-free-the-contents-of-a-krb5-checksum-structure}}\label{\detokenize{appdev/refs/api/krb5_free_checksum_contents::doc}}\index{krb5\_free\_checksum\_contents (C function)@\spxentry{krb5\_free\_checksum\_contents}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_checksum_contents:c.krb5_free_checksum_contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_checksum\_contents}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Checksum structure to free contents of - -\end{description}\end{quote} - -\sphinxAtStartPar -This function frees the contents of \sphinxstyleemphasis{val} , but not the structure itself. It sets the checksum’s data pointer to null and (beginning in release 1.19) sets its length to zero. - -\sphinxstepscope - - -\subsubsection{krb5\_free\_cksumtypes \sphinxhyphen{} Free an array of checksum types.} -\label{\detokenize{appdev/refs/api/krb5_free_cksumtypes:krb5-free-cksumtypes-free-an-array-of-checksum-types}}\label{\detokenize{appdev/refs/api/krb5_free_cksumtypes::doc}}\index{krb5\_free\_cksumtypes (C function)@\spxentry{krb5\_free\_cksumtypes}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_cksumtypes:c.krb5_free_cksumtypes}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_cksumtypes}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{val}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{val} \sphinxhyphen{} Array of checksum types to be freed - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_free\_tgt\_creds \sphinxhyphen{} Free an array of credential structures.} -\label{\detokenize{appdev/refs/api/krb5_free_tgt_creds:krb5-free-tgt-creds-free-an-array-of-credential-structures}}\label{\detokenize{appdev/refs/api/krb5_free_tgt_creds::doc}}\index{krb5\_free\_tgt\_creds (C function)@\spxentry{krb5\_free\_tgt\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_free_tgt_creds:c.krb5_free_tgt_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_free\_tgt\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{tgts}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{tgts} \sphinxhyphen{} Null\sphinxhyphen{}terminated array of credentials to free - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The last entry in the array \sphinxstyleemphasis{tgts} must be a NULL pointer. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_create\_key \sphinxhyphen{} Create a krb5\_key from the enctype and key data in a keyblock.} -\label{\detokenize{appdev/refs/api/krb5_k_create_key:krb5-k-create-key-create-a-krb5-key-from-the-enctype-and-key-data-in-a-keyblock}}\label{\detokenize{appdev/refs/api/krb5_k_create_key::doc}}\index{krb5\_k\_create\_key (C function)@\spxentry{krb5\_k\_create\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_create_key:c.krb5_k_create_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_create\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key\_data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{out}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key\_data} \sphinxhyphen{} Keyblock - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out} \sphinxhyphen{} Opaque key - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} KRB5\_BAD\_ENCTYPE - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -The reference count on a key \sphinxstyleemphasis{out} is set to 1. Use krb5\_k\_free\_key() to free \sphinxstyleemphasis{out} when it is no longer needed. - -\sphinxstepscope - - -\subsubsection{krb5\_k\_decrypt \sphinxhyphen{} Decrypt data using a key (operates on opaque key).} -\label{\detokenize{appdev/refs/api/krb5_k_decrypt:krb5-k-decrypt-decrypt-data-using-a-key-operates-on-opaque-key}}\label{\detokenize{appdev/refs/api/krb5_k_decrypt::doc}}\index{krb5\_k\_decrypt (C function)@\spxentry{krb5\_k\_decrypt}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_decrypt:c.krb5_k_decrypt}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_decrypt}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cipher\_state}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{output}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{cipher\_state} \sphinxhyphen{} Cipher state; specify NULL if not needed - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Encrypted data - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{output} \sphinxhyphen{} Decrypted data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function decrypts the data block \sphinxstyleemphasis{input} and stores the output into \sphinxstyleemphasis{output} . The actual decryption key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the encryption type. If non\sphinxhyphen{}null, \sphinxstyleemphasis{cipher\_state} specifies the beginning state for the decryption operation, and is updated with the state to be passed as input to the next operation. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The caller must initialize \sphinxstyleemphasis{output} and allocate at least enough space for the result. The usual practice is to allocate an output buffer as long as the ciphertext, and let krb5\_c\_decrypt() trim \sphinxstyleemphasis{output\sphinxhyphen{}\textgreater{}length} . For some enctypes, the resulting \sphinxstyleemphasis{output\sphinxhyphen{}\textgreater{}length} may include padding bytes. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_decrypt\_iov \sphinxhyphen{} Decrypt data in place supporting AEAD (operates on opaque key).} -\label{\detokenize{appdev/refs/api/krb5_k_decrypt_iov:krb5-k-decrypt-iov-decrypt-data-in-place-supporting-aead-operates-on-opaque-key}}\label{\detokenize{appdev/refs/api/krb5_k_decrypt_iov::doc}}\index{krb5\_k\_decrypt\_iov (C function)@\spxentry{krb5\_k\_decrypt\_iov}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_decrypt_iov:c.krb5_k_decrypt_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_decrypt\_iov}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cipher\_state}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{num\_data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cipher\_state} \sphinxhyphen{} Cipher state; specify NULL if not needed - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{data} \sphinxhyphen{} IOV array. Modified in\sphinxhyphen{}place. - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_data} \sphinxhyphen{} Size of \sphinxstyleemphasis{data} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function decrypts the data block \sphinxstyleemphasis{data} and stores the output in\sphinxhyphen{}place. The actual decryption key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the encryption type. If non\sphinxhyphen{}null, \sphinxstyleemphasis{cipher\_state} specifies the beginning state for the decryption operation, and is updated with the state to be passed as input to the next operation. The caller must allocate the right number of krb5\_crypto\_iov structures before calling into this API. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_k\_encrypt\_iov() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -On return from a krb5\_c\_decrypt\_iov() call, the \sphinxstyleemphasis{data\sphinxhyphen{}\textgreater{}length} in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_encrypt \sphinxhyphen{} Encrypt data using a key (operates on opaque key).} -\label{\detokenize{appdev/refs/api/krb5_k_encrypt:krb5-k-encrypt-encrypt-data-using-a-key-operates-on-opaque-key}}\label{\detokenize{appdev/refs/api/krb5_k_encrypt::doc}}\index{krb5\_k\_encrypt (C function)@\spxentry{krb5\_k\_encrypt}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_encrypt:c.krb5_k_encrypt}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_encrypt}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cipher\_state}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{output}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{cipher\_state} \sphinxhyphen{} Cipher state; specify NULL if not needed - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Data to be encrypted - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{output} \sphinxhyphen{} Encrypted data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function encrypts the data block \sphinxstyleemphasis{input} and stores the output into \sphinxstyleemphasis{output} . The actual encryption key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the encryption type. If non\sphinxhyphen{}null, \sphinxstyleemphasis{cipher\_state} specifies the beginning state for the encryption operation, and is updated with the state to be passed as input to the next operation. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -The caller must initialize \sphinxstyleemphasis{output} and allocate at least enough space for the result (using krb5\_c\_encrypt\_length() to determine the amount of space needed). \sphinxstyleemphasis{output\sphinxhyphen{}\textgreater{}length} will be set to the actual length of the ciphertext. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_encrypt\_iov \sphinxhyphen{} Encrypt data in place supporting AEAD (operates on opaque key).} -\label{\detokenize{appdev/refs/api/krb5_k_encrypt_iov:krb5-k-encrypt-iov-encrypt-data-in-place-supporting-aead-operates-on-opaque-key}}\label{\detokenize{appdev/refs/api/krb5_k_encrypt_iov::doc}}\index{krb5\_k\_encrypt\_iov (C function)@\spxentry{krb5\_k\_encrypt\_iov}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_encrypt_iov:c.krb5_k_encrypt_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_encrypt\_iov}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cipher\_state}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{num\_data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cipher\_state} \sphinxhyphen{} Cipher state; specify NULL if not needed - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{data} \sphinxhyphen{} IOV array. Modified in\sphinxhyphen{}place. - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_data} \sphinxhyphen{} Size of \sphinxstyleemphasis{data} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function encrypts the data block \sphinxstyleemphasis{data} and stores the output in\sphinxhyphen{}place. The actual encryption key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the encryption type. If non\sphinxhyphen{}null, \sphinxstyleemphasis{cipher\_state} specifies the beginning state for the encryption operation, and is updated with the state to be passed as input to the next operation. The caller must allocate the right number of krb5\_crypto\_iov structures before calling into this API. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_k\_decrypt\_iov() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -On return from a krb5\_c\_encrypt\_iov() call, the \sphinxstyleemphasis{data\sphinxhyphen{}\textgreater{}length} in the iov structure are adjusted to reflect actual lengths of the ciphertext used. For example, if the padding length is too large, the length will be reduced. Lengths are never increased. -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_free\_key \sphinxhyphen{} Decrement the reference count on a key and free it if it hits zero.} -\label{\detokenize{appdev/refs/api/krb5_k_free_key:krb5-k-free-key-decrement-the-reference-count-on-a-key-and-free-it-if-it-hits-zero}}\label{\detokenize{appdev/refs/api/krb5_k_free_key::doc}}\index{krb5\_k\_free\_key (C function)@\spxentry{krb5\_k\_free\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_free_key:c.krb5_k_free_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_free\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{key} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_key\_enctype \sphinxhyphen{} Retrieve the enctype of a krb5\_key structure.} -\label{\detokenize{appdev/refs/api/krb5_k_key_enctype:krb5-k-key-enctype-retrieve-the-enctype-of-a-krb5-key-structure}}\label{\detokenize{appdev/refs/api/krb5_k_key_enctype::doc}}\index{krb5\_k\_key\_enctype (C function)@\spxentry{krb5\_k\_key\_enctype}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_key_enctype:c.krb5_k_key_enctype}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_key\_enctype}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{key} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_key\_keyblock \sphinxhyphen{} Retrieve a copy of the keyblock from a krb5\_key structure.} -\label{\detokenize{appdev/refs/api/krb5_k_key_keyblock:krb5-k-key-keyblock-retrieve-a-copy-of-the-keyblock-from-a-krb5-key-structure}}\label{\detokenize{appdev/refs/api/krb5_k_key_keyblock::doc}}\index{krb5\_k\_key\_keyblock (C function)@\spxentry{krb5\_k\_key\_keyblock}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_key_keyblock:c.krb5_k_key_keyblock}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_key\_keyblock}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{key\_data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{key} - -\sphinxAtStartPar -\sphinxstylestrong{key\_data} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_make\_checksum \sphinxhyphen{} Compute a checksum (operates on opaque key).} -\label{\detokenize{appdev/refs/api/krb5_k_make_checksum:krb5-k-make-checksum-compute-a-checksum-operates-on-opaque-key}}\label{\detokenize{appdev/refs/api/krb5_k_make_checksum::doc}}\index{krb5\_k\_make\_checksum (C function)@\spxentry{krb5\_k\_make\_checksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_make_checksum:c.krb5_k_make_checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_make\_checksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{cksumtype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cksum}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksumtype} \sphinxhyphen{} Checksum type (0 for mandatory type) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key for a keyed checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Input data - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{cksum} \sphinxhyphen{} Generated checksum - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function computes a checksum of type \sphinxstyleemphasis{cksumtype} over \sphinxstyleemphasis{input} , using \sphinxstyleemphasis{key} if the checksum type is a keyed checksum. If \sphinxstyleemphasis{cksumtype} is 0 and \sphinxstyleemphasis{key} is non\sphinxhyphen{}null, the checksum type will be the mandatory\sphinxhyphen{}to\sphinxhyphen{}implement checksum type for the key’s encryption type. The actual checksum key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the checksum type. The newly created \sphinxstyleemphasis{cksum} must be released by calling krb5\_free\_checksum\_contents() when it is no longer needed. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_c\_verify\_checksum() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function is similar to krb5\_c\_make\_checksum(), but operates on opaque \sphinxstyleemphasis{key} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_make\_checksum\_iov \sphinxhyphen{} Fill in a checksum element in IOV array (operates on opaque key)} -\label{\detokenize{appdev/refs/api/krb5_k_make_checksum_iov:krb5-k-make-checksum-iov-fill-in-a-checksum-element-in-iov-array-operates-on-opaque-key}}\label{\detokenize{appdev/refs/api/krb5_k_make_checksum_iov::doc}}\index{krb5\_k\_make\_checksum\_iov (C function)@\spxentry{krb5\_k\_make\_checksum\_iov}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_make_checksum_iov:c.krb5_k_make_checksum_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_make\_checksum\_iov}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{cksumtype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{num\_data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksumtype} \sphinxhyphen{} Checksum type (0 for mandatory type) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key for a keyed checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{data} \sphinxhyphen{} IOV array - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_data} \sphinxhyphen{} Size of \sphinxstyleemphasis{data} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Create a checksum in the KRB5\_CRYPTO\_TYPE\_CHECKSUM element over KRB5\_CRYPTO\_TYPE\_DATA and KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY chunks in \sphinxstyleemphasis{data} . Only the KRB5\_CRYPTO\_TYPE\_CHECKSUM region is modified. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_k\_verify\_checksum\_iov() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function is similar to krb5\_c\_make\_checksum\_iov(), but operates on opaque \sphinxstyleemphasis{key} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_prf \sphinxhyphen{} Generate enctype\sphinxhyphen{}specific pseudo\sphinxhyphen{}random bytes (operates on opaque key).} -\label{\detokenize{appdev/refs/api/krb5_k_prf:krb5-k-prf-generate-enctype-specific-pseudo-random-bytes-operates-on-opaque-key}}\label{\detokenize{appdev/refs/api/krb5_k_prf::doc}}\index{krb5\_k\_prf (C function)@\spxentry{krb5\_k\_prf}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_prf:c.krb5_k_prf}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_prf}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{input}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{output}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Key - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{input} \sphinxhyphen{} Input data - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{output} \sphinxhyphen{} Output data - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function selects a pseudo\sphinxhyphen{}random function based on \sphinxstyleemphasis{key} and computes its value over \sphinxstyleemphasis{input} , placing the result into \sphinxstyleemphasis{output} . The caller must preinitialize \sphinxstyleemphasis{output} and allocate space for the result. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function is similar to krb5\_c\_prf(), but operates on opaque \sphinxstyleemphasis{key} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_reference\_key \sphinxhyphen{} Increment the reference count on a key.} -\label{\detokenize{appdev/refs/api/krb5_k_reference_key:krb5-k-reference-key-increment-the-reference-count-on-a-key}}\label{\detokenize{appdev/refs/api/krb5_k_reference_key::doc}}\index{krb5\_k\_reference\_key (C function)@\spxentry{krb5\_k\_reference\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_reference_key:c.krb5_k_reference_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_reference\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{key} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_verify\_checksum \sphinxhyphen{} Verify a checksum (operates on opaque key).} -\label{\detokenize{appdev/refs/api/krb5_k_verify_checksum:krb5-k-verify-checksum-verify-a-checksum-operates-on-opaque-key}}\label{\detokenize{appdev/refs/api/krb5_k_verify_checksum::doc}}\index{krb5\_k\_verify\_checksum (C function)@\spxentry{krb5\_k\_verify\_checksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_verify_checksum:c.krb5_k_verify_checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_verify\_checksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cksum}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{valid}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key for a keyed checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} \sphinxstyleemphasis{key} usage - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} Data to be used to compute a new checksum using \sphinxstyleemphasis{key} to compare \sphinxstyleemphasis{cksum} against - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksum} \sphinxhyphen{} Checksum to be verified - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{valid} \sphinxhyphen{} Non\sphinxhyphen{}zero for success, zero for failure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function verifies that \sphinxstyleemphasis{cksum} is a valid checksum for \sphinxstyleemphasis{data} . If the checksum type of \sphinxstyleemphasis{cksum} is a keyed checksum, \sphinxstyleemphasis{key} is used to verify the checksum. If the checksum type in \sphinxstyleemphasis{cksum} is 0 and \sphinxstyleemphasis{key} is not NULL, the mandatory checksum type for \sphinxstyleemphasis{key} will be used. The actual checksum key will be derived from \sphinxstyleemphasis{key} and \sphinxstyleemphasis{usage} if key derivation is specified for the checksum type. - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function is similar to krb5\_c\_verify\_checksum(), but operates on opaque \sphinxstyleemphasis{key} . -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_k\_verify\_checksum\_iov \sphinxhyphen{} Validate a checksum element in IOV array (operates on opaque key).} -\label{\detokenize{appdev/refs/api/krb5_k_verify_checksum_iov:krb5-k-verify-checksum-iov-validate-a-checksum-element-in-iov-array-operates-on-opaque-key}}\label{\detokenize{appdev/refs/api/krb5_k_verify_checksum_iov::doc}}\index{krb5\_k\_verify\_checksum\_iov (C function)@\spxentry{krb5\_k\_verify\_checksum\_iov}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_k_verify_checksum_iov:c.krb5_k_verify_checksum_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_k\_verify\_checksum\_iov}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{cksumtype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_key:c.krb5_key}]{\sphinxcrossref{\DUrole{n}{krb5\_key}}}}\DUrole{w}{ }\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}]{\sphinxcrossref{\DUrole{n}{krb5\_keyusage}}}}\DUrole{w}{ }\DUrole{n}{usage}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{num\_data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{valid}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{cksumtype} \sphinxhyphen{} Checksum type (0 for mandatory type) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{key} \sphinxhyphen{} Encryption key for a keyed checksum - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{usage} \sphinxhyphen{} Key usage (see KRB5\_KEYUSAGE macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{data} \sphinxhyphen{} IOV array - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{num\_data} \sphinxhyphen{} Size of \sphinxstyleemphasis{data} - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{valid} \sphinxhyphen{} Non\sphinxhyphen{}zero for success, zero for failure - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Confirm that the checksum in the KRB5\_CRYPTO\_TYPE\_CHECKSUM element is a valid checksum of the KRB5\_CRYPTO\_TYPE\_DATA and KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY regions in the iov. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_k\_make\_checksum\_iov() - - -\end{sphinxseealso} - - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -This function is similar to krb5\_c\_verify\_checksum\_iov(), but operates on opaque \sphinxstyleemphasis{key} . -\end{sphinxadmonition} - - -\subsection{Legacy convenience interfaces} -\label{\detokenize{appdev/refs/api/index:legacy-convenience-interfaces}} -\sphinxstepscope - - -\subsubsection{krb5\_recvauth \sphinxhyphen{} Server function for sendauth protocol.} -\label{\detokenize{appdev/refs/api/krb5_recvauth:krb5-recvauth-server-function-for-sendauth-protocol}}\label{\detokenize{appdev/refs/api/krb5_recvauth::doc}}\index{krb5\_recvauth (C function)@\spxentry{krb5\_recvauth}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_recvauth:c.krb5_recvauth}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_recvauth}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{n}{fd}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{appl\_version}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{server}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{n}{flags}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ticket}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Pre\sphinxhyphen{}existing or newly created auth context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fd} \sphinxhyphen{} File descriptor - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{appl\_version} \sphinxhyphen{} Application protocol version to be matched against the client’s application version - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Server principal (NULL for any in \sphinxstyleemphasis{keytab} ) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Additional specifications - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Key table containing service keys - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ticket} \sphinxhyphen{} Ticket (NULL if not needed) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function performs the server side of a sendauth/recvauth exchange by sending and receiving messages over \sphinxstyleemphasis{fd} . - -\sphinxAtStartPar -Use krb5\_free\_ticket() to free \sphinxstyleemphasis{ticket} when it is no longer needed. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_sendauth() - - -\end{sphinxseealso} - - -\sphinxstepscope - - -\subsubsection{krb5\_recvauth\_version \sphinxhyphen{} Server function for sendauth protocol with version parameter.} -\label{\detokenize{appdev/refs/api/krb5_recvauth_version:krb5-recvauth-version-server-function-for-sendauth-protocol-with-version-parameter}}\label{\detokenize{appdev/refs/api/krb5_recvauth_version::doc}}\index{krb5\_recvauth\_version (C function)@\spxentry{krb5\_recvauth\_version}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_recvauth_version:c.krb5_recvauth_version}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_recvauth\_version}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{n}{fd}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{server}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\DUrole{n}{flags}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ticket}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{version}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Pre\sphinxhyphen{}existing or newly created auth context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fd} \sphinxhyphen{} File descriptor - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Server principal (NULL for any in \sphinxstyleemphasis{keytab} ) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{flags} \sphinxhyphen{} Additional specifications - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{keytab} \sphinxhyphen{} Decryption key - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{ticket} \sphinxhyphen{} Ticket (NULL if not needed) - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{version} \sphinxhyphen{} sendauth protocol version (NULL if not needed) - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function is similar to krb5\_recvauth() with the additional output information place into \sphinxstyleemphasis{version} . - -\sphinxstepscope - - -\subsubsection{krb5\_sendauth \sphinxhyphen{} Client function for sendauth protocol.} -\label{\detokenize{appdev/refs/api/krb5_sendauth:krb5-sendauth-client-function-for-sendauth-protocol}}\label{\detokenize{appdev/refs/api/krb5_sendauth::doc}}\index{krb5\_sendauth (C function)@\spxentry{krb5\_sendauth}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_sendauth:c.krb5_sendauth}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_sendauth}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{n}{fd}\sphinxparamcomma \DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{appl\_version}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{client}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{server}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{ap\_req\_options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_data}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{error}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep\_enc\_part}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{rep\_result}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{out\_creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}inout{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Pre\sphinxhyphen{}existing or newly created auth context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{fd} \sphinxhyphen{} File descriptor that describes network socket - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{appl\_version} \sphinxhyphen{} Application protocol version to be matched with the receiver’s application version - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{client} \sphinxhyphen{} Client principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{server} \sphinxhyphen{} Server principal - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ap\_req\_options} \sphinxhyphen{} Options (see AP\_OPTS macros) - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_data} \sphinxhyphen{} Data to be sent to the server - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{in\_creds} \sphinxhyphen{} Input credentials, or NULL to use \sphinxstyleemphasis{ccache} - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{ccache} \sphinxhyphen{} Credential cache - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{error} \sphinxhyphen{} If non\sphinxhyphen{}null, contains KRB\_ERROR message returned from server - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{rep\_result} \sphinxhyphen{} If non\sphinxhyphen{}null and \sphinxstyleemphasis{ap\_req\_options} is AP\_OPTS\_MUTUAL\_REQUIRED, contains the result of mutual authentication exchange - -\sphinxAtStartPar -\sphinxstylestrong{{[}out{]}} \sphinxstylestrong{out\_creds} \sphinxhyphen{} If non\sphinxhyphen{}null, the retrieved credentials - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -This function performs the client side of a sendauth/recvauth exchange by sending and receiving messages over \sphinxstyleemphasis{fd} . - -\sphinxAtStartPar -Credentials may be specified in three ways: -\begin{quote} -\begin{itemize} -\item {} -\sphinxAtStartPar -If \sphinxstyleemphasis{in\_creds} is NULL, credentials are obtained with krb5\_get\_credentials() using the principals \sphinxstyleemphasis{client} and \sphinxstyleemphasis{server} . \sphinxstyleemphasis{server} must be non\sphinxhyphen{}null; \sphinxstyleemphasis{client} may NULL to use the default principal of \sphinxstyleemphasis{ccache} . - -\item {} -\sphinxAtStartPar -If \sphinxstyleemphasis{in\_creds} is non\sphinxhyphen{}null, but does not contain a ticket, credentials for the exchange are obtained with krb5\_get\_credentials() using \sphinxstyleemphasis{in\_creds} . In this case, the values of \sphinxstyleemphasis{client} and \sphinxstyleemphasis{server} are unused. - -\item {} -\sphinxAtStartPar -If \sphinxstyleemphasis{in\_creds} is a complete credentials structure, it used directly. In this case, the values of \sphinxstyleemphasis{client} , \sphinxstyleemphasis{server} , and \sphinxstyleemphasis{ccache} are unused. - -\end{itemize} - -\sphinxAtStartPar -If the server is using a different application protocol than that specified in \sphinxstyleemphasis{appl\_version} , an error will be returned. -\end{quote} - -\sphinxAtStartPar -Use krb5\_free\_creds() to free \sphinxstyleemphasis{out\_creds} , krb5\_free\_ap\_rep\_enc\_part() to free \sphinxstyleemphasis{rep\_result} , and krb5\_free\_error() to free \sphinxstyleemphasis{error} when they are no longer needed. - - -\begin{sphinxseealso}{See also:} - -\sphinxAtStartPar -krb5\_recvauth() - - -\end{sphinxseealso} - - - -\subsection{Deprecated public interfaces} -\label{\detokenize{appdev/refs/api/index:deprecated-public-interfaces}} -\sphinxstepscope - - -\subsubsection{krb5\_524\_convert\_creds \sphinxhyphen{} Convert a Kerberos V5 credentials to a Kerberos V4 credentials.} -\label{\detokenize{appdev/refs/api/krb5_524_convert_creds:krb5-524-convert-creds-convert-a-kerberos-v5-credentials-to-a-kerberos-v4-credentials}}\label{\detokenize{appdev/refs/api/krb5_524_convert_creds::doc}}\index{krb5\_524\_convert\_creds (C function)@\spxentry{krb5\_524\_convert\_creds}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_524_convert_creds:c.krb5_524_convert_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{int}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_524\_convert\_creds}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{v5creds}\sphinxparamcomma \DUrole{k}{struct}\DUrole{w}{ }\DUrole{n}{credentials}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{v4creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{v5creds} - -\sphinxAtStartPar -\sphinxstylestrong{v4creds} - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -KRB524\_KRB4\_DISABLED (always) - -\end{itemize} - -\end{description}\end{quote} - -\begin{sphinxadmonition}{note}{Note:} -\sphinxAtStartPar -Not implemented -\end{sphinxadmonition} - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getlocalsubkey} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getlocalsubkey:krb5-auth-con-getlocalsubkey}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getlocalsubkey::doc}}\index{krb5\_auth\_con\_getlocalsubkey (C function)@\spxentry{krb5\_auth\_con\_getlocalsubkey}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getlocalsubkey:c.krb5_auth_con_getlocalsubkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getlocalsubkey}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{keyblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{auth\_context} - -\sphinxAtStartPar -\sphinxstylestrong{keyblock} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_auth\_con\_getsendsubkey(). - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_getremotesubkey} -\label{\detokenize{appdev/refs/api/krb5_auth_con_getremotesubkey:krb5-auth-con-getremotesubkey}}\label{\detokenize{appdev/refs/api/krb5_auth_con_getremotesubkey::doc}}\index{krb5\_auth\_con\_getremotesubkey (C function)@\spxentry{krb5\_auth\_con\_getremotesubkey}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_getremotesubkey:c.krb5_auth_con_getremotesubkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_getremotesubkey}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{keyblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{auth\_context} - -\sphinxAtStartPar -\sphinxstylestrong{keyblock} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_auth\_con\_getrecvsubkey(). - -\sphinxstepscope - - -\subsubsection{krb5\_auth\_con\_initivector \sphinxhyphen{} Cause an auth context to use cipher state.} -\label{\detokenize{appdev/refs/api/krb5_auth_con_initivector:krb5-auth-con-initivector-cause-an-auth-context-to-use-cipher-state}}\label{\detokenize{appdev/refs/api/krb5_auth_con_initivector::doc}}\index{krb5\_auth\_con\_initivector (C function)@\spxentry{krb5\_auth\_con\_initivector}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_auth_con_initivector:c.krb5_auth_con_initivector}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_con\_initivector}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}]{\sphinxcrossref{\DUrole{n}{krb5\_auth\_context}}}}\DUrole{w}{ }\DUrole{n}{auth\_context}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{context} \sphinxhyphen{} Library context - -\sphinxAtStartPar -\sphinxstylestrong{{[}in{]}} \sphinxstylestrong{auth\_context} \sphinxhyphen{} Authentication context - -\end{description}\end{quote} -\begin{quote}\begin{description} -\sphinxlineitem{retval}\begin{itemize} -\item {} -\sphinxAtStartPar -0 Success; otherwise \sphinxhyphen{} Kerberos error codes - -\end{itemize} - -\end{description}\end{quote} - -\sphinxAtStartPar -Prepare \sphinxstyleemphasis{auth\_context} to use cipher state when krb5\_mk\_priv() or krb5\_rd\_priv() encrypt or decrypt data. - -\sphinxstepscope - - -\subsubsection{krb5\_build\_principal\_va} -\label{\detokenize{appdev/refs/api/krb5_build_principal_va:krb5-build-principal-va}}\label{\detokenize{appdev/refs/api/krb5_build_principal_va::doc}}\index{krb5\_build\_principal\_va (C function)@\spxentry{krb5\_build\_principal\_va}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_build_principal_va:c.krb5_build_principal_va}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_build\_principal\_va}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\DUrole{n}{princ}\sphinxparamcomma \DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\DUrole{n}{rlen}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{realm}\sphinxparamcomma \DUrole{n}{va\_list}\DUrole{w}{ }\DUrole{n}{ap}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{princ} - -\sphinxAtStartPar -\sphinxstylestrong{rlen} - -\sphinxAtStartPar -\sphinxstylestrong{realm} - -\sphinxAtStartPar -\sphinxstylestrong{ap} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_build\_principal\_alloc\_va(). - -\sphinxstepscope - - -\subsubsection{krb5\_c\_random\_seed} -\label{\detokenize{appdev/refs/api/krb5_c_random_seed:krb5-c-random-seed}}\label{\detokenize{appdev/refs/api/krb5_c_random_seed::doc}}\index{krb5\_c\_random\_seed (C function)@\spxentry{krb5\_c\_random\_seed}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_c_random_seed:c.krb5_c_random_seed}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_c\_random\_seed}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{data} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED This call is no longer necessary. - -\sphinxstepscope - - -\subsubsection{krb5\_calculate\_checksum} -\label{\detokenize{appdev/refs/api/krb5_calculate_checksum:krb5-calculate-checksum}}\label{\detokenize{appdev/refs/api/krb5_calculate_checksum::doc}}\index{krb5\_calculate\_checksum (C function)@\spxentry{krb5\_calculate\_checksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_calculate_checksum:c.krb5_calculate_checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_calculate\_checksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{ctype}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_pointer:c.krb5_const_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_pointer}}}}\DUrole{w}{ }\DUrole{n}{in}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{in\_length}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_pointer:c.krb5_const_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_pointer}}}}\DUrole{w}{ }\DUrole{n}{seed}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{seed\_length}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{outcksum}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{ctype} - -\sphinxAtStartPar -\sphinxstylestrong{in} - -\sphinxAtStartPar -\sphinxstylestrong{in\_length} - -\sphinxAtStartPar -\sphinxstylestrong{seed} - -\sphinxAtStartPar -\sphinxstylestrong{seed\_length} - -\sphinxAtStartPar -\sphinxstylestrong{outcksum} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED See krb5\_c\_make\_checksum() - -\sphinxstepscope - - -\subsubsection{krb5\_checksum\_size} -\label{\detokenize{appdev/refs/api/krb5_checksum_size:krb5-checksum-size}}\label{\detokenize{appdev/refs/api/krb5_checksum_size::doc}}\index{krb5\_checksum\_size (C function)@\spxentry{krb5\_checksum\_size}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_checksum_size:c.krb5_checksum_size}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{n}{size\_t}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_checksum\_size}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{ctype}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{ctype} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED See krb5\_c\_checksum\_length() - -\sphinxstepscope - - -\subsubsection{krb5\_encrypt} -\label{\detokenize{appdev/refs/api/krb5_encrypt:krb5-encrypt}}\label{\detokenize{appdev/refs/api/krb5_encrypt::doc}}\index{krb5\_encrypt (C function)@\spxentry{krb5\_encrypt}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_encrypt:c.krb5_encrypt}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_encrypt}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_pointer:c.krb5_const_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_pointer}}}}\DUrole{w}{ }\DUrole{n}{inptr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{n}{outptr}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{size}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{n}{ivec}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{inptr} - -\sphinxAtStartPar -\sphinxstylestrong{outptr} - -\sphinxAtStartPar -\sphinxstylestrong{size} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\sphinxAtStartPar -\sphinxstylestrong{ivec} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_decrypt} -\label{\detokenize{appdev/refs/api/krb5_decrypt:krb5-decrypt}}\label{\detokenize{appdev/refs/api/krb5_decrypt::doc}}\index{krb5\_decrypt (C function)@\spxentry{krb5\_decrypt}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_decrypt:c.krb5_decrypt}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_decrypt}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_pointer:c.krb5_const_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_pointer}}}}\DUrole{w}{ }\DUrole{n}{inptr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{n}{outptr}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{size}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{n}{ivec}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{inptr} - -\sphinxAtStartPar -\sphinxstylestrong{outptr} - -\sphinxAtStartPar -\sphinxstylestrong{size} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\sphinxAtStartPar -\sphinxstylestrong{ivec} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_eblock\_enctype} -\label{\detokenize{appdev/refs/api/krb5_eblock_enctype:krb5-eblock-enctype}}\label{\detokenize{appdev/refs/api/krb5_eblock_enctype::doc}}\index{krb5\_eblock\_enctype (C function)@\spxentry{krb5\_eblock\_enctype}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_eblock_enctype:c.krb5_eblock_enctype}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_eblock\_enctype}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_encrypt\_size} -\label{\detokenize{appdev/refs/api/krb5_encrypt_size:krb5-encrypt-size}}\label{\detokenize{appdev/refs/api/krb5_encrypt_size::doc}}\index{krb5\_encrypt\_size (C function)@\spxentry{krb5\_encrypt\_size}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_encrypt_size:c.krb5_encrypt_size}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{n}{size\_t}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_encrypt\_size}}}}{\DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{length}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{crypto}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{length} - -\sphinxAtStartPar -\sphinxstylestrong{crypto} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_finish\_key} -\label{\detokenize{appdev/refs/api/krb5_finish_key:krb5-finish-key}}\label{\detokenize{appdev/refs/api/krb5_finish_key::doc}}\index{krb5\_finish\_key (C function)@\spxentry{krb5\_finish\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_finish_key:c.krb5_finish_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_finish\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_finish\_random\_key} -\label{\detokenize{appdev/refs/api/krb5_finish_random_key:krb5-finish-random-key}}\label{\detokenize{appdev/refs/api/krb5_finish_random_key::doc}}\index{krb5\_finish\_random\_key (C function)@\spxentry{krb5\_finish\_random\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_finish_random_key:c.krb5_finish_random_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_finish\_random\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ptr}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\sphinxAtStartPar -\sphinxstylestrong{ptr} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_gen\_new} -\label{\detokenize{appdev/refs/api/krb5_cc_gen_new:krb5-cc-gen-new}}\label{\detokenize{appdev/refs/api/krb5_cc_gen_new::doc}}\index{krb5\_cc\_gen\_new (C function)@\spxentry{krb5\_cc\_gen\_new}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_cc_gen_new:c.krb5_cc_gen_new}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_gen\_new}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cache}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{cache} - -\end{description}\end{quote} - -\sphinxstepscope - - -\subsubsection{krb5\_get\_credentials\_renew} -\label{\detokenize{appdev/refs/api/krb5_get_credentials_renew:krb5-get-credentials-renew}}\label{\detokenize{appdev/refs/api/krb5_get_credentials_renew::doc}}\index{krb5\_get\_credentials\_renew (C function)@\spxentry{krb5\_get\_credentials\_renew}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_credentials_renew:c.krb5_get_credentials_renew}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_credentials\_renew}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{out\_creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{options} - -\sphinxAtStartPar -\sphinxstylestrong{ccache} - -\sphinxAtStartPar -\sphinxstylestrong{in\_creds} - -\sphinxAtStartPar -\sphinxstylestrong{out\_creds} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_get\_renewed\_creds. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_credentials\_validate} -\label{\detokenize{appdev/refs/api/krb5_get_credentials_validate:krb5-get-credentials-validate}}\label{\detokenize{appdev/refs/api/krb5_get_credentials_validate::doc}}\index{krb5\_get\_credentials\_validate (C function)@\spxentry{krb5\_get\_credentials\_validate}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_credentials_validate:c.krb5_get_credentials_validate}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_credentials\_validate}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{in\_creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{out\_creds}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{options} - -\sphinxAtStartPar -\sphinxstylestrong{ccache} - -\sphinxAtStartPar -\sphinxstylestrong{in\_creds} - -\sphinxAtStartPar -\sphinxstylestrong{out\_creds} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_get\_validated\_creds. - -\sphinxstepscope - - -\subsubsection{krb5\_get\_in\_tkt\_with\_password} -\label{\detokenize{appdev/refs/api/krb5_get_in_tkt_with_password:krb5-get-in-tkt-with-password}}\label{\detokenize{appdev/refs/api/krb5_get_in_tkt_with_password::doc}}\index{krb5\_get\_in\_tkt\_with\_password (C function)@\spxentry{krb5\_get\_in\_tkt\_with\_password}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_in_tkt_with_password:c.krb5_get_in_tkt_with_password}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_in\_tkt\_with\_password}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{addrs}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ktypes}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_preauthtype:c.krb5_preauthtype}]{\sphinxcrossref{\DUrole{n}{krb5\_preauthtype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pre\_auth\_types}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{password}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ret\_as\_reply}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{options} - -\sphinxAtStartPar -\sphinxstylestrong{addrs} - -\sphinxAtStartPar -\sphinxstylestrong{ktypes} - -\sphinxAtStartPar -\sphinxstylestrong{pre\_auth\_types} - -\sphinxAtStartPar -\sphinxstylestrong{password} - -\sphinxAtStartPar -\sphinxstylestrong{ccache} - -\sphinxAtStartPar -\sphinxstylestrong{creds} - -\sphinxAtStartPar -\sphinxstylestrong{ret\_as\_reply} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_get\_init\_creds\_password(). - -\sphinxstepscope - - -\subsubsection{krb5\_get\_in\_tkt\_with\_skey} -\label{\detokenize{appdev/refs/api/krb5_get_in_tkt_with_skey:krb5-get-in-tkt-with-skey}}\label{\detokenize{appdev/refs/api/krb5_get_in_tkt_with_skey::doc}}\index{krb5\_get\_in\_tkt\_with\_skey (C function)@\spxentry{krb5\_get\_in\_tkt\_with\_skey}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_in_tkt_with_skey:c.krb5_get_in_tkt_with_skey}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_in\_tkt\_with\_skey}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{addrs}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ktypes}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_preauthtype:c.krb5_preauthtype}]{\sphinxcrossref{\DUrole{n}{krb5\_preauthtype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pre\_auth\_types}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ret\_as\_reply}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{options} - -\sphinxAtStartPar -\sphinxstylestrong{addrs} - -\sphinxAtStartPar -\sphinxstylestrong{ktypes} - -\sphinxAtStartPar -\sphinxstylestrong{pre\_auth\_types} - -\sphinxAtStartPar -\sphinxstylestrong{key} - -\sphinxAtStartPar -\sphinxstylestrong{ccache} - -\sphinxAtStartPar -\sphinxstylestrong{creds} - -\sphinxAtStartPar -\sphinxstylestrong{ret\_as\_reply} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_get\_init\_creds(). - -\sphinxstepscope - - -\subsubsection{krb5\_get\_in\_tkt\_with\_keytab} -\label{\detokenize{appdev/refs/api/krb5_get_in_tkt_with_keytab:krb5-get-in-tkt-with-keytab}}\label{\detokenize{appdev/refs/api/krb5_get_in_tkt_with_keytab::doc}}\index{krb5\_get\_in\_tkt\_with\_keytab (C function)@\spxentry{krb5\_get\_in\_tkt\_with\_keytab}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_in_tkt_with_keytab:c.krb5_get_in_tkt_with_keytab}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_in\_tkt\_with\_keytab}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\DUrole{n}{options}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{k}{const}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{addrs}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ktypes}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_preauthtype:c.krb5_preauthtype}]{\sphinxcrossref{\DUrole{n}{krb5\_preauthtype}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{pre\_auth\_types}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab}}}}\DUrole{w}{ }\DUrole{n}{arg\_keytab}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}]{\sphinxcrossref{\DUrole{n}{krb5\_ccache}}}}\DUrole{w}{ }\DUrole{n}{ccache}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{creds}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{ret\_as\_reply}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{options} - -\sphinxAtStartPar -\sphinxstylestrong{addrs} - -\sphinxAtStartPar -\sphinxstylestrong{ktypes} - -\sphinxAtStartPar -\sphinxstylestrong{pre\_auth\_types} - -\sphinxAtStartPar -\sphinxstylestrong{arg\_keytab} - -\sphinxAtStartPar -\sphinxstylestrong{ccache} - -\sphinxAtStartPar -\sphinxstylestrong{creds} - -\sphinxAtStartPar -\sphinxstylestrong{ret\_as\_reply} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_get\_init\_creds\_keytab(). - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt\_init} -\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_init:krb5-get-init-creds-opt-init}}\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_init::doc}}\index{krb5\_get\_init\_creds\_opt\_init (C function)@\spxentry{krb5\_get\_init\_creds\_opt\_init}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_get_init_creds_opt_init:c.krb5_get_init_creds_opt_init}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{\DUrole{kt}{void}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt\_init}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{opt}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{opt} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Use krb5\_get\_init\_creds\_opt\_alloc() instead. - -\sphinxstepscope - - -\subsubsection{krb5\_init\_random\_key} -\label{\detokenize{appdev/refs/api/krb5_init_random_key:krb5-init-random-key}}\label{\detokenize{appdev/refs/api/krb5_init_random_key::doc}}\index{krb5\_init\_random\_key (C function)@\spxentry{krb5\_init\_random\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_init_random_key:c.krb5_init_random_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_random\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keyblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{ptr}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\sphinxAtStartPar -\sphinxstylestrong{keyblock} - -\sphinxAtStartPar -\sphinxstylestrong{ptr} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_free\_entry} -\label{\detokenize{appdev/refs/api/krb5_kt_free_entry:krb5-kt-free-entry}}\label{\detokenize{appdev/refs/api/krb5_kt_free_entry::doc}}\index{krb5\_kt\_free\_entry (C function)@\spxentry{krb5\_kt\_free\_entry}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_kt_free_entry:c.krb5_kt_free_entry}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_free\_entry}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{entry}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{entry} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Use krb5\_free\_keytab\_entry\_contents instead. - -\sphinxstepscope - - -\subsubsection{krb5\_random\_key} -\label{\detokenize{appdev/refs/api/krb5_random_key:krb5-random-key}}\label{\detokenize{appdev/refs/api/krb5_random_key::doc}}\index{krb5\_random\_key (C function)@\spxentry{krb5\_random\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_random_key:c.krb5_random_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_random\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_pointer}}}}\DUrole{w}{ }\DUrole{n}{ptr}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\DUrole{n}{keyblock}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\sphinxAtStartPar -\sphinxstylestrong{ptr} - -\sphinxAtStartPar -\sphinxstylestrong{keyblock} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_process\_key} -\label{\detokenize{appdev/refs/api/krb5_process_key:krb5-process-key}}\label{\detokenize{appdev/refs/api/krb5_process_key::doc}}\index{krb5\_process\_key (C function)@\spxentry{krb5\_process\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_process_key:c.krb5_process_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_process\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{key}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\sphinxAtStartPar -\sphinxstylestrong{key} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_string\_to\_key} -\label{\detokenize{appdev/refs/api/krb5_string_to_key:krb5-string-to-key}}\label{\detokenize{appdev/refs/api/krb5_string_to_key::doc}}\index{krb5\_string\_to\_key (C function)@\spxentry{krb5\_string\_to\_key}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_string_to_key:c.krb5_string_to_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_string\_to\_key}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{keyblock}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{data}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{salt}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\sphinxAtStartPar -\sphinxstylestrong{keyblock} - -\sphinxAtStartPar -\sphinxstylestrong{data} - -\sphinxAtStartPar -\sphinxstylestrong{salt} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED See krb5\_c\_string\_to\_key() - -\sphinxstepscope - - -\subsubsection{krb5\_use\_enctype} -\label{\detokenize{appdev/refs/api/krb5_use_enctype:krb5-use-enctype}}\label{\detokenize{appdev/refs/api/krb5_use_enctype::doc}}\index{krb5\_use\_enctype (C function)@\spxentry{krb5\_use\_enctype}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_use_enctype:c.krb5_use_enctype}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_use\_enctype}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{eblock}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{n}{enctype}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{eblock} - -\sphinxAtStartPar -\sphinxstylestrong{enctype} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED Replaced by krb5\_c\_* API family. - -\sphinxstepscope - - -\subsubsection{krb5\_verify\_checksum} -\label{\detokenize{appdev/refs/api/krb5_verify_checksum:krb5-verify-checksum}}\label{\detokenize{appdev/refs/api/krb5_verify_checksum::doc}}\index{krb5\_verify\_checksum (C function)@\spxentry{krb5\_verify\_checksum}\spxextra{C function}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/api/krb5_verify_checksum:c.krb5_verify_checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysiglinewithargsret{{\hyperref[\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}]{\sphinxcrossref{\DUrole{n}{krb5\_error\_code}}}}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_verify\_checksum}}}}{{\hyperref[\detokenize{appdev/refs/types/krb5_context:c.krb5_context}]{\sphinxcrossref{\DUrole{n}{krb5\_context}}}}\DUrole{w}{ }\DUrole{n}{context}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\DUrole{n}{ctype}\sphinxparamcomma \DUrole{k}{const}\DUrole{w}{ }{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{n}{cksum}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_pointer:c.krb5_const_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_pointer}}}}\DUrole{w}{ }\DUrole{n}{in}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{in\_length}\sphinxparamcomma {\hyperref[\detokenize{appdev/refs/types/krb5_const_pointer:c.krb5_const_pointer}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_pointer}}}}\DUrole{w}{ }\DUrole{n}{seed}\sphinxparamcomma \DUrole{n}{size\_t}\DUrole{w}{ }\DUrole{n}{seed\_length}}{} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\begin{quote}\begin{description} -\sphinxlineitem{param} -\sphinxAtStartPar -\sphinxstylestrong{context} - -\sphinxAtStartPar -\sphinxstylestrong{ctype} - -\sphinxAtStartPar -\sphinxstylestrong{cksum} - -\sphinxAtStartPar -\sphinxstylestrong{in} - -\sphinxAtStartPar -\sphinxstylestrong{in\_length} - -\sphinxAtStartPar -\sphinxstylestrong{seed} - -\sphinxAtStartPar -\sphinxstylestrong{seed\_length} - -\end{description}\end{quote} - -\sphinxAtStartPar -DEPRECATED See krb5\_c\_verify\_checksum() - -\sphinxstepscope - - -\section{krb5 types and structures} -\label{\detokenize{appdev/refs/types/index:krb5-types-and-structures}}\label{\detokenize{appdev/refs/types/index::doc}} - -\subsection{Public} -\label{\detokenize{appdev/refs/types/index:public}} -\sphinxstepscope - - -\subsubsection{krb5\_address} -\label{\detokenize{appdev/refs/types/krb5_address:krb5-address}}\label{\detokenize{appdev/refs/types/krb5_address:krb5-address-struct}}\label{\detokenize{appdev/refs/types/krb5_address::doc}}\index{krb5\_address (C type)@\spxentry{krb5\_address}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_address:c.krb5_address}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_address}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Structure for address. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_address:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_address krb5\_address - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_address:members}}\index{krb5\_address.magic (C member)@\spxentry{krb5\_address.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_address:c.krb5_address.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_address.addrtype (C member)@\spxentry{krb5\_address.addrtype}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_address:c.krb5_address.addrtype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_addrtype:c.krb5_addrtype}]{\sphinxcrossref{\DUrole{n}{krb5\_addrtype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{addrtype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_address.length (C member)@\spxentry{krb5\_address.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_address:c.krb5_address.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_address.contents (C member)@\spxentry{krb5\_address.contents}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_address:c.krb5_address.contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_octet:c.krb5_octet}]{\sphinxcrossref{\DUrole{n}{krb5\_octet}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{contents}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_addrtype} -\label{\detokenize{appdev/refs/types/krb5_addrtype:krb5-addrtype}}\label{\detokenize{appdev/refs/types/krb5_addrtype:krb5-addrtype-struct}}\label{\detokenize{appdev/refs/types/krb5_addrtype::doc}}\index{krb5\_addrtype (C type)@\spxentry{krb5\_addrtype}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_addrtype:c.krb5_addrtype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_addrtype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_addrtype:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_addrtype - -\sphinxstepscope - - -\subsubsection{krb5\_ap\_req} -\label{\detokenize{appdev/refs/types/krb5_ap_req:krb5-ap-req}}\label{\detokenize{appdev/refs/types/krb5_ap_req:krb5-ap-req-struct}}\label{\detokenize{appdev/refs/types/krb5_ap_req::doc}}\index{krb5\_ap\_req (C type)@\spxentry{krb5\_ap\_req}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_req:c.krb5_ap_req}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_ap\_req}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Authentication header. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_ap_req:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_ap\_req krb5\_ap\_req - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_ap_req:members}}\index{krb5\_ap\_req.magic (C member)@\spxentry{krb5\_ap\_req.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_req:c.krb5_ap_req.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_req:c.krb5_ap_req}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_ap\_req.ap\_options (C member)@\spxentry{krb5\_ap\_req.ap\_options}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_req:c.krb5_ap_req.ap_options}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_req:c.krb5_ap_req}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ap\_options}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Requested options. - -\end{fulllineitems} - -\index{krb5\_ap\_req.ticket (C member)@\spxentry{krb5\_ap\_req.ticket}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_req:c.krb5_ap_req.ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_req:c.krb5_ap_req}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ticket}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Ticket. - -\end{fulllineitems} - -\index{krb5\_ap\_req.authenticator (C member)@\spxentry{krb5\_ap\_req.authenticator}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_req:c.krb5_ap_req.authenticator}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_req:c.krb5_ap_req}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{authenticator}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Encrypted authenticator. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_ap\_rep} -\label{\detokenize{appdev/refs/types/krb5_ap_rep:krb5-ap-rep}}\label{\detokenize{appdev/refs/types/krb5_ap_rep:krb5-ap-rep-struct}}\label{\detokenize{appdev/refs/types/krb5_ap_rep::doc}}\index{krb5\_ap\_rep (C type)@\spxentry{krb5\_ap\_rep}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_rep:c.krb5_ap_rep}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_ap\_rep}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -C representaton of AP\sphinxhyphen{}REP message. - -\sphinxAtStartPar -The server’s response to a client’s request for mutual authentication. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_ap_rep:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_ap\_rep krb5\_ap\_rep - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_ap_rep:members}}\index{krb5\_ap\_rep.magic (C member)@\spxentry{krb5\_ap\_rep.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_rep:c.krb5_ap_rep.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep:c.krb5_ap_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_ap\_rep.enc\_part (C member)@\spxentry{krb5\_ap\_rep.enc\_part}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_rep:c.krb5_ap_rep.enc_part}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep:c.krb5_ap_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enc\_part}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Ciphertext of ApRepEncPart. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_ap\_rep\_enc\_part} -\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:krb5-ap-rep-enc-part}}\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:krb5-ap-rep-enc-part-struct}}\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part::doc}}\index{krb5\_ap\_rep\_enc\_part (C type)@\spxentry{krb5\_ap\_rep\_enc\_part}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_ap\_rep\_enc\_part}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Cleartext that is encrypted and put into \sphinxcode{\sphinxupquote{\_krb5\_ap\_rep}} . - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_ap\_rep\_enc\_part krb5\_ap\_rep\_enc\_part - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:members}}\index{krb5\_ap\_rep\_enc\_part.magic (C member)@\spxentry{krb5\_ap\_rep\_enc\_part.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_ap\_rep\_enc\_part.ctime (C member)@\spxentry{krb5\_ap\_rep\_enc\_part.ctime}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part.ctime}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ctime}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Client time, seconds portion. - -\end{fulllineitems} - -\index{krb5\_ap\_rep\_enc\_part.cusec (C member)@\spxentry{krb5\_ap\_rep\_enc\_part.cusec}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part.cusec}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{cusec}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Client time, microseconds portion. - -\end{fulllineitems} - -\index{krb5\_ap\_rep\_enc\_part.subkey (C member)@\spxentry{krb5\_ap\_rep\_enc\_part.subkey}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part.subkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{subkey}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Subkey (optional) - -\end{fulllineitems} - -\index{krb5\_ap\_rep\_enc\_part.seq\_number (C member)@\spxentry{krb5\_ap\_rep\_enc\_part.seq\_number}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part.seq_number}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ui_4:c.krb5_ui_4}]{\sphinxcrossref{\DUrole{n}{krb5\_ui\_4}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ap_rep_enc_part:c.krb5_ap_rep_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_ap\_rep\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{seq\_number}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Sequence number. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_authdata} -\label{\detokenize{appdev/refs/types/krb5_authdata:krb5-authdata}}\label{\detokenize{appdev/refs/types/krb5_authdata:krb5-authdata-struct}}\label{\detokenize{appdev/refs/types/krb5_authdata::doc}}\index{krb5\_authdata (C type)@\spxentry{krb5\_authdata}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_authdata}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Structure for auth data. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_authdata:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_authdata krb5\_authdata - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_authdata:members}}\index{krb5\_authdata.magic (C member)@\spxentry{krb5\_authdata.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_authdata.ad\_type (C member)@\spxentry{krb5\_authdata.ad\_type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata.ad_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_authdatatype:c.krb5_authdatatype}]{\sphinxcrossref{\DUrole{n}{krb5\_authdatatype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ad\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -ADTYPE. - -\end{fulllineitems} - -\index{krb5\_authdata.length (C member)@\spxentry{krb5\_authdata.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Length of data. - -\end{fulllineitems} - -\index{krb5\_authdata.contents (C member)@\spxentry{krb5\_authdata.contents}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata.contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_octet:c.krb5_octet}]{\sphinxcrossref{\DUrole{n}{krb5\_octet}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{contents}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Data. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_authdatatype} -\label{\detokenize{appdev/refs/types/krb5_authdatatype:krb5-authdatatype}}\label{\detokenize{appdev/refs/types/krb5_authdatatype:krb5-authdatatype-struct}}\label{\detokenize{appdev/refs/types/krb5_authdatatype::doc}}\index{krb5\_authdatatype (C type)@\spxentry{krb5\_authdatatype}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authdatatype:c.krb5_authdatatype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_authdatatype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_authdatatype:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_authdatatype - -\sphinxstepscope - - -\subsubsection{krb5\_authenticator} -\label{\detokenize{appdev/refs/types/krb5_authenticator:krb5-authenticator}}\label{\detokenize{appdev/refs/types/krb5_authenticator:krb5-authenticator-struct}}\label{\detokenize{appdev/refs/types/krb5_authenticator::doc}}\index{krb5\_authenticator (C type)@\spxentry{krb5\_authenticator}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_authenticator}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Ticket authenticator. - -\sphinxAtStartPar -The C representation of an unencrypted authenticator. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_authenticator:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_authenticator krb5\_authenticator - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_authenticator:members}}\index{krb5\_authenticator.magic (C member)@\spxentry{krb5\_authenticator.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_authenticator.client (C member)@\spxentry{krb5\_authenticator.client}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator.client}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{client}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -client name/realm - -\end{fulllineitems} - -\index{krb5\_authenticator.checksum (C member)@\spxentry{krb5\_authenticator.checksum}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator.checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{checksum}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -checksum, includes type, optional - -\end{fulllineitems} - -\index{krb5\_authenticator.cusec (C member)@\spxentry{krb5\_authenticator.cusec}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator.cusec}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{cusec}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -client usec portion - -\end{fulllineitems} - -\index{krb5\_authenticator.ctime (C member)@\spxentry{krb5\_authenticator.ctime}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator.ctime}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ctime}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -client sec portion - -\end{fulllineitems} - -\index{krb5\_authenticator.subkey (C member)@\spxentry{krb5\_authenticator.subkey}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator.subkey}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{subkey}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -true session key, optional - -\end{fulllineitems} - -\index{krb5\_authenticator.seq\_number (C member)@\spxentry{krb5\_authenticator.seq\_number}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator.seq_number}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ui_4:c.krb5_ui_4}]{\sphinxcrossref{\DUrole{n}{krb5\_ui\_4}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{seq\_number}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -sequence \#, optional - -\end{fulllineitems} - -\index{krb5\_authenticator.authorization\_data (C member)@\spxentry{krb5\_authenticator.authorization\_data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator.authorization_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{authorization\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -authoriazation data - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_boolean} -\label{\detokenize{appdev/refs/types/krb5_boolean:krb5-boolean}}\label{\detokenize{appdev/refs/types/krb5_boolean:krb5-boolean-struct}}\label{\detokenize{appdev/refs/types/krb5_boolean::doc}}\index{krb5\_boolean (C type)@\spxentry{krb5\_boolean}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_boolean}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_boolean:declaration}} -\sphinxAtStartPar -typedef unsigned int krb5\_boolean - -\sphinxstepscope - - -\subsubsection{krb5\_checksum} -\label{\detokenize{appdev/refs/types/krb5_checksum:krb5-checksum}}\label{\detokenize{appdev/refs/types/krb5_checksum:krb5-checksum-struct}}\label{\detokenize{appdev/refs/types/krb5_checksum::doc}}\index{krb5\_checksum (C type)@\spxentry{krb5\_checksum}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_checksum}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_checksum:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_checksum krb5\_checksum - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_checksum:members}}\index{krb5\_checksum.magic (C member)@\spxentry{krb5\_checksum.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_checksum.checksum\_type (C member)@\spxentry{krb5\_checksum.checksum\_type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum.checksum_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}]{\sphinxcrossref{\DUrole{n}{krb5\_cksumtype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{checksum\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_checksum.length (C member)@\spxentry{krb5\_checksum.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_checksum.contents (C member)@\spxentry{krb5\_checksum.contents}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum.contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_octet:c.krb5_octet}]{\sphinxcrossref{\DUrole{n}{krb5\_octet}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{contents}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_const\_pointer} -\label{\detokenize{appdev/refs/types/krb5_const_pointer:krb5-const-pointer}}\label{\detokenize{appdev/refs/types/krb5_const_pointer:krb5-const-pointer-struct}}\label{\detokenize{appdev/refs/types/krb5_const_pointer::doc}}\index{krb5\_const\_pointer (C type)@\spxentry{krb5\_const\_pointer}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_const_pointer:c.krb5_const_pointer}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_const\_pointer}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_const_pointer:declaration}} -\sphinxAtStartPar -typedef void const* krb5\_const\_pointer - -\sphinxstepscope - - -\subsubsection{krb5\_const\_principal} -\label{\detokenize{appdev/refs/types/krb5_const_principal:krb5-const-principal}}\label{\detokenize{appdev/refs/types/krb5_const_principal:krb5-const-principal-struct}}\label{\detokenize{appdev/refs/types/krb5_const_principal::doc}}\index{krb5\_const\_principal (C type)@\spxentry{krb5\_const\_principal}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_const\_principal}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Constant version of {\hyperref[\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data}]{\sphinxcrossref{\sphinxcode{\sphinxupquote{krb5\_principal\_data}}}}} . - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_const_principal:declaration}} -\sphinxAtStartPar -typedef const krb5\_principal\_data* krb5\_const\_principal - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_const_principal:members}}\index{krb5\_const\_principal.magic (C member)@\spxentry{krb5\_const\_principal.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_const\_principal.realm (C member)@\spxentry{krb5\_const\_principal.realm}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal.realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{realm}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_const\_principal.data (C member)@\spxentry{krb5\_const\_principal.data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal.data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{data}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -An array of strings. - -\end{fulllineitems} - -\index{krb5\_const\_principal.length (C member)@\spxentry{krb5\_const\_principal.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_const\_principal.type (C member)@\spxentry{krb5\_const\_principal.type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal.type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_const_principal:c.krb5_const_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_const\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{type}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_cred} -\label{\detokenize{appdev/refs/types/krb5_cred:krb5-cred}}\label{\detokenize{appdev/refs/types/krb5_cred:krb5-cred-struct}}\label{\detokenize{appdev/refs/types/krb5_cred::doc}}\index{krb5\_cred (C type)@\spxentry{krb5\_cred}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred:c.krb5_cred}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cred}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Credentials data structure. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_cred:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_cred krb5\_cred - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_cred:members}}\index{krb5\_cred.magic (C member)@\spxentry{krb5\_cred.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred:c.krb5_cred.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred:c.krb5_cred}]{\sphinxcrossref{\DUrole{n}{krb5\_cred}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_cred.tickets (C member)@\spxentry{krb5\_cred.tickets}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred:c.krb5_cred.tickets}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred:c.krb5_cred}]{\sphinxcrossref{\DUrole{n}{krb5\_cred}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{tickets}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Tickets. - -\end{fulllineitems} - -\index{krb5\_cred.enc\_part (C member)@\spxentry{krb5\_cred.enc\_part}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred:c.krb5_cred.enc_part}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred:c.krb5_cred}]{\sphinxcrossref{\DUrole{n}{krb5\_cred}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enc\_part}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Encrypted part. - -\end{fulllineitems} - -\index{krb5\_cred.enc\_part2 (C member)@\spxentry{krb5\_cred.enc\_part2}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred:c.krb5_cred.enc_part2}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_enc\_part}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred:c.krb5_cred}]{\sphinxcrossref{\DUrole{n}{krb5\_cred}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enc\_part2}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Unencrypted version, if available. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_cred\_enc\_part} -\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:krb5-cred-enc-part}}\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:krb5-cred-enc-part-struct}}\label{\detokenize{appdev/refs/types/krb5_cred_enc_part::doc}}\index{krb5\_cred\_enc\_part (C type)@\spxentry{krb5\_cred\_enc\_part}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cred\_enc\_part}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Cleartext credentials information. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_cred\_enc\_part krb5\_cred\_enc\_part - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:members}}\index{krb5\_cred\_enc\_part.magic (C member)@\spxentry{krb5\_cred\_enc\_part.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_cred\_enc\_part.nonce (C member)@\spxentry{krb5\_cred\_enc\_part.nonce}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part.nonce}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{nonce}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Nonce (optional) - -\end{fulllineitems} - -\index{krb5\_cred\_enc\_part.timestamp (C member)@\spxentry{krb5\_cred\_enc\_part.timestamp}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part.timestamp}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{timestamp}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Generation time, seconds portion. - -\end{fulllineitems} - -\index{krb5\_cred\_enc\_part.usec (C member)@\spxentry{krb5\_cred\_enc\_part.usec}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part.usec}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{usec}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Generation time, microseconds portion. - -\end{fulllineitems} - -\index{krb5\_cred\_enc\_part.s\_address (C member)@\spxentry{krb5\_cred\_enc\_part.s\_address}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part.s_address}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{s\_address}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Sender address (optional) - -\end{fulllineitems} - -\index{krb5\_cred\_enc\_part.r\_address (C member)@\spxentry{krb5\_cred\_enc\_part.r\_address}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part.r_address}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{r\_address}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Recipient address (optional) - -\end{fulllineitems} - -\index{krb5\_cred\_enc\_part.ticket\_info (C member)@\spxentry{krb5\_cred\_enc\_part.ticket\_info}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part.ticket_info}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_info}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_enc_part:c.krb5_cred_enc_part}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_enc\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ticket\_info}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_cred\_info} -\label{\detokenize{appdev/refs/types/krb5_cred_info:krb5-cred-info}}\label{\detokenize{appdev/refs/types/krb5_cred_info:krb5-cred-info-struct}}\label{\detokenize{appdev/refs/types/krb5_cred_info::doc}}\index{krb5\_cred\_info (C type)@\spxentry{krb5\_cred\_info}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cred\_info}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Credentials information inserted into \sphinxstyleemphasis{EncKrbCredPart} . - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_cred_info:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_cred\_info krb5\_cred\_info - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_cred_info:members}}\index{krb5\_cred\_info.magic (C member)@\spxentry{krb5\_cred\_info.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_info}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_cred\_info.session (C member)@\spxentry{krb5\_cred\_info.session}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info.session}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_info}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{session}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Session key used to encrypt ticket. - -\end{fulllineitems} - -\index{krb5\_cred\_info.client (C member)@\spxentry{krb5\_cred\_info.client}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info.client}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_info}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{client}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Client principal and realm. - -\end{fulllineitems} - -\index{krb5\_cred\_info.server (C member)@\spxentry{krb5\_cred\_info.server}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info.server}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_info}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{server}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Server principal and realm. - -\end{fulllineitems} - -\index{krb5\_cred\_info.flags (C member)@\spxentry{krb5\_cred\_info.flags}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info.flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_info}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Ticket flags. - -\end{fulllineitems} - -\index{krb5\_cred\_info.times (C member)@\spxentry{krb5\_cred\_info.times}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info.times}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_info}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{times}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Auth, start, end, renew\_till. - -\end{fulllineitems} - -\index{krb5\_cred\_info.caddrs (C member)@\spxentry{krb5\_cred\_info.caddrs}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info.caddrs}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_cred_info:c.krb5_cred_info}]{\sphinxcrossref{\DUrole{n}{krb5\_cred\_info}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{caddrs}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Array of pointers to addrs (optional) - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_creds} -\label{\detokenize{appdev/refs/types/krb5_creds:krb5-creds}}\label{\detokenize{appdev/refs/types/krb5_creds:krb5-creds-struct}}\label{\detokenize{appdev/refs/types/krb5_creds::doc}}\index{krb5\_creds (C type)@\spxentry{krb5\_creds}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_creds}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Credentials structure including ticket, session key, and lifetime info. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_creds:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_creds krb5\_creds - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_creds:members}}\index{krb5\_creds.magic (C member)@\spxentry{krb5\_creds.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_creds.client (C member)@\spxentry{krb5\_creds.client}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.client}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{client}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -client’s principal identifier - -\end{fulllineitems} - -\index{krb5\_creds.server (C member)@\spxentry{krb5\_creds.server}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.server}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{server}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -server’s principal identifier - -\end{fulllineitems} - -\index{krb5\_creds.keyblock (C member)@\spxentry{krb5\_creds.keyblock}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.keyblock}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{keyblock}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -session encryption key info - -\end{fulllineitems} - -\index{krb5\_creds.times (C member)@\spxentry{krb5\_creds.times}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.times}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{times}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -lifetime info - -\end{fulllineitems} - -\index{krb5\_creds.is\_skey (C member)@\spxentry{krb5\_creds.is\_skey}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.is_skey}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{is\_skey}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -true if ticket is encrypted in another ticket’s skey - -\end{fulllineitems} - -\index{krb5\_creds.ticket\_flags (C member)@\spxentry{krb5\_creds.ticket\_flags}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.ticket_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ticket\_flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -flags in ticket - -\end{fulllineitems} - -\index{krb5\_creds.addresses (C member)@\spxentry{krb5\_creds.addresses}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.addresses}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{addresses}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -addrs in ticket - -\end{fulllineitems} - -\index{krb5\_creds.ticket (C member)@\spxentry{krb5\_creds.ticket}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ticket}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -ticket string itself - -\end{fulllineitems} - -\index{krb5\_creds.second\_ticket (C member)@\spxentry{krb5\_creds.second\_ticket}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.second_ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{second\_ticket}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -second ticket, if related to ticket (via DUPLICATE\sphinxhyphen{}SKEY or ENC\sphinxhyphen{}TKT\sphinxhyphen{}IN\sphinxhyphen{}SKEY) - -\end{fulllineitems} - -\index{krb5\_creds.authdata (C member)@\spxentry{krb5\_creds.authdata}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds.authdata}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_creds:c.krb5_creds}]{\sphinxcrossref{\DUrole{n}{krb5\_creds}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{authdata}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -authorization data - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_crypto\_iov} -\label{\detokenize{appdev/refs/types/krb5_crypto_iov:krb5-crypto-iov}}\label{\detokenize{appdev/refs/types/krb5_crypto_iov:krb5-crypto-iov-struct}}\label{\detokenize{appdev/refs/types/krb5_crypto_iov::doc}}\index{krb5\_crypto\_iov (C type)@\spxentry{krb5\_crypto\_iov}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_crypto\_iov}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Structure to describe a region of text to be encrypted or decrypted. - -\sphinxAtStartPar -The \sphinxstyleemphasis{flags} member describes the type of the iov. The \sphinxstyleemphasis{data} member points to the memory that will be manipulated. All iov APIs take a pointer to the first element of an array of krb5\_crypto\_iov’s along with the size of that array. Buffer contents are manipulated in\sphinxhyphen{}place; data is overwritten. Callers must allocate the right number of krb5\_crypto\_iov structures before calling into an iov API. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_crypto_iov:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_crypto\_iov krb5\_crypto\_iov - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_crypto_iov:members}}\index{krb5\_crypto\_iov.flags (C member)@\spxentry{krb5\_crypto\_iov.flags}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov.flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_cryptotype:c.krb5_cryptotype}]{\sphinxcrossref{\DUrole{n}{krb5\_cryptotype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -iov type (see KRB5\_CRYPTO\_TYPE macros) - -\end{fulllineitems} - -\index{krb5\_crypto\_iov.data (C member)@\spxentry{krb5\_crypto\_iov.data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov.data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_crypto_iov:c.krb5_crypto_iov}]{\sphinxcrossref{\DUrole{n}{krb5\_crypto\_iov}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_cryptotype} -\label{\detokenize{appdev/refs/types/krb5_cryptotype:krb5-cryptotype}}\label{\detokenize{appdev/refs/types/krb5_cryptotype:krb5-cryptotype-struct}}\label{\detokenize{appdev/refs/types/krb5_cryptotype::doc}}\index{krb5\_cryptotype (C type)@\spxentry{krb5\_cryptotype}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cryptotype:c.krb5_cryptotype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cryptotype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_cryptotype:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_cryptotype - -\sphinxstepscope - - -\subsubsection{krb5\_data} -\label{\detokenize{appdev/refs/types/krb5_data:krb5-data}}\label{\detokenize{appdev/refs/types/krb5_data:krb5-data-struct}}\label{\detokenize{appdev/refs/types/krb5_data::doc}}\index{krb5\_data (C type)@\spxentry{krb5\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_data:c.krb5_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_data:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_data krb5\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_data:members}}\index{krb5\_data.magic (C member)@\spxentry{krb5\_data.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_data:c.krb5_data.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_data.length (C member)@\spxentry{krb5\_data.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_data:c.krb5_data.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_data.data (C member)@\spxentry{krb5\_data.data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_data:c.krb5_data.data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_deltat} -\label{\detokenize{appdev/refs/types/krb5_deltat:krb5-deltat}}\label{\detokenize{appdev/refs/types/krb5_deltat:krb5-deltat-struct}}\label{\detokenize{appdev/refs/types/krb5_deltat::doc}}\index{krb5\_deltat (C type)@\spxentry{krb5\_deltat}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_deltat}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_deltat:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_deltat - -\sphinxstepscope - - -\subsubsection{krb5\_enc\_data} -\label{\detokenize{appdev/refs/types/krb5_enc_data:krb5-enc-data}}\label{\detokenize{appdev/refs/types/krb5_enc_data:krb5-enc-data-struct}}\label{\detokenize{appdev/refs/types/krb5_enc_data::doc}}\index{krb5\_enc\_data (C type)@\spxentry{krb5\_enc\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_enc\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_enc_data:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_enc\_data krb5\_enc\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_enc_data:members}}\index{krb5\_enc\_data.magic (C member)@\spxentry{krb5\_enc\_data.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_enc\_data.enctype (C member)@\spxentry{krb5\_enc\_data.enctype}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data.enctype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enctype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_enc\_data.kvno (C member)@\spxentry{krb5\_enc\_data.kvno}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data.kvno}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_kvno:c.krb5_kvno}]{\sphinxcrossref{\DUrole{n}{krb5\_kvno}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{kvno}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_enc\_data.ciphertext (C member)@\spxentry{krb5\_enc\_data.ciphertext}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data.ciphertext}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ciphertext}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_enc\_kdc\_rep\_part} -\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:krb5-enc-kdc-rep-part}}\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:krb5-enc-kdc-rep-part-struct}}\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part::doc}}\index{krb5\_enc\_kdc\_rep\_part (C type)@\spxentry{krb5\_enc\_kdc\_rep\_part}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -C representation of \sphinxstyleemphasis{EncKDCRepPart} protocol message. - -\sphinxAtStartPar -This is the cleartext message that is encrypted and inserted in \sphinxstyleemphasis{KDC\sphinxhyphen{}REP} . - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_enc\_kdc\_rep\_part krb5\_enc\_kdc\_rep\_part - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:members}}\index{krb5\_enc\_kdc\_rep\_part.magic (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.msg\_type (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.msg\_type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.msg_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_msgtype:c.krb5_msgtype}]{\sphinxcrossref{\DUrole{n}{krb5\_msgtype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{msg\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -krb5 message type - -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.session (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.session}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.session}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{session}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Session key. - -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.last\_req (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.last\_req}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.last_req}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_last_req_entry:c.krb5_last_req_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_last\_req\_entry}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{last\_req}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Array of pointers to entries. - -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.nonce (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.nonce}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.nonce}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{nonce}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Nonce from request. - -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.key\_exp (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.key\_exp}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.key_exp}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{key\_exp}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Expiration date. - -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.flags (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.flags}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Ticket flags. - -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.times (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.times}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.times}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{times}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Lifetime info. - -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.server (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.server}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.server}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{server}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Server’s principal identifier. - -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.caddrs (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.caddrs}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.caddrs}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{caddrs}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Array of ptrs to addrs, optional. - -\end{fulllineitems} - -\index{krb5\_enc\_kdc\_rep\_part.enc\_padata (C member)@\spxentry{krb5\_enc\_kdc\_rep\_part.enc\_padata}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part.enc_padata}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enc\_padata}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Encrypted preauthentication data. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_enc\_tkt\_part} -\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:krb5-enc-tkt-part}}\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:krb5-enc-tkt-part-struct}}\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part::doc}}\index{krb5\_enc\_tkt\_part (C type)@\spxentry{krb5\_enc\_tkt\_part}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_enc\_tkt\_part}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Encrypted part of ticket. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_enc\_tkt\_part krb5\_enc\_tkt\_part - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:members}}\index{krb5\_enc\_tkt\_part.magic (C member)@\spxentry{krb5\_enc\_tkt\_part.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_enc\_tkt\_part.flags (C member)@\spxentry{krb5\_enc\_tkt\_part.flags}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part.flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -flags - -\end{fulllineitems} - -\index{krb5\_enc\_tkt\_part.session (C member)@\spxentry{krb5\_enc\_tkt\_part.session}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part.session}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{session}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -session key: includes enctype - -\end{fulllineitems} - -\index{krb5\_enc\_tkt\_part.client (C member)@\spxentry{krb5\_enc\_tkt\_part.client}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part.client}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{client}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -client name/realm - -\end{fulllineitems} - -\index{krb5\_enc\_tkt\_part.transited (C member)@\spxentry{krb5\_enc\_tkt\_part.transited}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part.transited}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_transited:c.krb5_transited}]{\sphinxcrossref{\DUrole{n}{krb5\_transited}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{transited}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -list of transited realms - -\end{fulllineitems} - -\index{krb5\_enc\_tkt\_part.times (C member)@\spxentry{krb5\_enc\_tkt\_part.times}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part.times}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{times}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -auth, start, end, renew\_till - -\end{fulllineitems} - -\index{krb5\_enc\_tkt\_part.caddrs (C member)@\spxentry{krb5\_enc\_tkt\_part.caddrs}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part.caddrs}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{caddrs}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -array of ptrs to addresses - -\end{fulllineitems} - -\index{krb5\_enc\_tkt\_part.authorization\_data (C member)@\spxentry{krb5\_enc\_tkt\_part.authorization\_data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part.authorization_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{authorization\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -auth data - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_encrypt\_block} -\label{\detokenize{appdev/refs/types/krb5_encrypt_block:krb5-encrypt-block}}\label{\detokenize{appdev/refs/types/krb5_encrypt_block:krb5-encrypt-block-struct}}\label{\detokenize{appdev/refs/types/krb5_encrypt_block::doc}}\index{krb5\_encrypt\_block (C type)@\spxentry{krb5\_encrypt\_block}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_encrypt\_block}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_encrypt_block:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_encrypt\_block krb5\_encrypt\_block - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_encrypt_block:members}}\index{krb5\_encrypt\_block.magic (C member)@\spxentry{krb5\_encrypt\_block.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_encrypt\_block.crypto\_entry (C member)@\spxentry{krb5\_encrypt\_block.crypto\_entry}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block.crypto_entry}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{crypto\_entry}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_encrypt\_block.key (C member)@\spxentry{krb5\_encrypt\_block.key}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block.key}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_encrypt_block:c.krb5_encrypt_block}]{\sphinxcrossref{\DUrole{n}{krb5\_encrypt\_block}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{key}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_enctype} -\label{\detokenize{appdev/refs/types/krb5_enctype:krb5-enctype}}\label{\detokenize{appdev/refs/types/krb5_enctype:krb5-enctype-struct}}\label{\detokenize{appdev/refs/types/krb5_enctype::doc}}\index{krb5\_enctype (C type)@\spxentry{krb5\_enctype}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_enctype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_enctype:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_enctype - -\sphinxstepscope - - -\subsubsection{krb5\_error} -\label{\detokenize{appdev/refs/types/krb5_error:krb5-error}}\label{\detokenize{appdev/refs/types/krb5_error:krb5-error-struct}}\label{\detokenize{appdev/refs/types/krb5_error::doc}}\index{krb5\_error (C type)@\spxentry{krb5\_error}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_error}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Error message structure. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_error:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_error krb5\_error - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_error:members}}\index{krb5\_error.magic (C member)@\spxentry{krb5\_error.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_error.ctime (C member)@\spxentry{krb5\_error.ctime}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.ctime}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ctime}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Client sec portion; optional. - -\end{fulllineitems} - -\index{krb5\_error.cusec (C member)@\spxentry{krb5\_error.cusec}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.cusec}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{cusec}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Client usec portion; optional. - -\end{fulllineitems} - -\index{krb5\_error.susec (C member)@\spxentry{krb5\_error.susec}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.susec}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{susec}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Server usec portion. - -\end{fulllineitems} - -\index{krb5\_error.stime (C member)@\spxentry{krb5\_error.stime}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.stime}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{stime}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Server sec portion. - -\end{fulllineitems} - -\index{krb5\_error.error (C member)@\spxentry{krb5\_error.error}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.error}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ui_4:c.krb5_ui_4}]{\sphinxcrossref{\DUrole{n}{krb5\_ui\_4}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{error}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Error code (protocol error \#’s) - -\end{fulllineitems} - -\index{krb5\_error.client (C member)@\spxentry{krb5\_error.client}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.client}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{client}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Client principal and realm. - -\end{fulllineitems} - -\index{krb5\_error.server (C member)@\spxentry{krb5\_error.server}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.server}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{server}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Server principal and realm. - -\end{fulllineitems} - -\index{krb5\_error.text (C member)@\spxentry{krb5\_error.text}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.text}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{text}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Descriptive text. - -\end{fulllineitems} - -\index{krb5\_error.e\_data (C member)@\spxentry{krb5\_error.e\_data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error:c.krb5_error.e_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_error:c.krb5_error}]{\sphinxcrossref{\DUrole{n}{krb5\_error}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{e\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Additional error\sphinxhyphen{}describing data. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_error\_code} -\label{\detokenize{appdev/refs/types/krb5_error_code:krb5-error-code}}\label{\detokenize{appdev/refs/types/krb5_error_code:krb5-error-code-struct}}\label{\detokenize{appdev/refs/types/krb5_error_code::doc}}\index{krb5\_error\_code (C type)@\spxentry{krb5\_error\_code}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_error_code:c.krb5_error_code}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_error\_code}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Used to convey an operation status. - -\sphinxAtStartPar -The value 0 indicates success; any other values are com\_err codes. Use krb5\_get\_error\_message() to obtain a string describing the error. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_error_code:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_error\_code - -\sphinxstepscope - - -\subsubsection{krb5\_expire\_callback\_func} -\label{\detokenize{appdev/refs/types/krb5_expire_callback_func:krb5-expire-callback-func}}\label{\detokenize{appdev/refs/types/krb5_expire_callback_func:krb5-expire-callback-func-struct}}\label{\detokenize{appdev/refs/types/krb5_expire_callback_func::doc}}\index{krb5\_expire\_callback\_func (C type)@\spxentry{krb5\_expire\_callback\_func}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_expire_callback_func:c.krb5_expire_callback_func}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_expire\_callback\_func}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_expire_callback_func:declaration}} -\sphinxAtStartPar -typedef void( * krb5\_expire\_callback\_func) (krb5\_context context, void *data, krb5\_timestamp password\_expiration, krb5\_timestamp account\_expiration, krb5\_boolean is\_last\_req) - -\sphinxstepscope - - -\subsubsection{krb5\_flags} -\label{\detokenize{appdev/refs/types/krb5_flags:krb5-flags}}\label{\detokenize{appdev/refs/types/krb5_flags:krb5-flags-struct}}\label{\detokenize{appdev/refs/types/krb5_flags::doc}}\index{krb5\_flags (C type)@\spxentry{krb5\_flags}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_flags:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_flags - -\sphinxstepscope - - -\subsubsection{krb5\_get\_init\_creds\_opt} -\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:krb5-get-init-creds-opt}}\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:krb5-get-init-creds-opt-struct}}\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt::doc}}\index{krb5\_get\_init\_creds\_opt (C type)@\spxentry{krb5\_get\_init\_creds\_opt}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Store options for \sphinxstyleemphasis{\_krb5\_get\_init\_creds} . - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_get\_init\_creds\_opt krb5\_get\_init\_creds\_opt - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:members}}\index{krb5\_get\_init\_creds\_opt.flags (C member)@\spxentry{krb5\_get\_init\_creds\_opt.flags}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.tkt\_life (C member)@\spxentry{krb5\_get\_init\_creds\_opt.tkt\_life}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.tkt_life}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}]{\sphinxcrossref{\DUrole{n}{krb5\_deltat}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{tkt\_life}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.renew\_life (C member)@\spxentry{krb5\_get\_init\_creds\_opt.renew\_life}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.renew_life}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_deltat:c.krb5_deltat}]{\sphinxcrossref{\DUrole{n}{krb5\_deltat}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{renew\_life}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.forwardable (C member)@\spxentry{krb5\_get\_init\_creds\_opt.forwardable}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.forwardable}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{forwardable}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.proxiable (C member)@\spxentry{krb5\_get\_init\_creds\_opt.proxiable}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.proxiable}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{proxiable}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.etype\_list (C member)@\spxentry{krb5\_get\_init\_creds\_opt.etype\_list}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.etype_list}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{etype\_list}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.etype\_list\_length (C member)@\spxentry{krb5\_get\_init\_creds\_opt.etype\_list\_length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.etype_list_length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{etype\_list\_length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.address\_list (C member)@\spxentry{krb5\_get\_init\_creds\_opt.address\_list}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.address_list}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{address\_list}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.preauth\_list (C member)@\spxentry{krb5\_get\_init\_creds\_opt.preauth\_list}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.preauth_list}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_preauthtype:c.krb5_preauthtype}]{\sphinxcrossref{\DUrole{n}{krb5\_preauthtype}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{preauth\_list}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.preauth\_list\_length (C member)@\spxentry{krb5\_get\_init\_creds\_opt.preauth\_list\_length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.preauth_list_length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{preauth\_list\_length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_get\_init\_creds\_opt.salt (C member)@\spxentry{krb5\_get\_init\_creds\_opt.salt}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt.salt}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_get_init_creds_opt:c.krb5_get_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_get\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{salt}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_gic\_opt\_pa\_data} -\label{\detokenize{appdev/refs/types/krb5_gic_opt_pa_data:krb5-gic-opt-pa-data}}\label{\detokenize{appdev/refs/types/krb5_gic_opt_pa_data:krb5-gic-opt-pa-data-struct}}\label{\detokenize{appdev/refs/types/krb5_gic_opt_pa_data::doc}}\index{krb5\_gic\_opt\_pa\_data (C type)@\spxentry{krb5\_gic\_opt\_pa\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_gic_opt_pa_data:c.krb5_gic_opt_pa_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_gic\_opt\_pa\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Generic preauth option attribute/value pairs. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_gic_opt_pa_data:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_gic\_opt\_pa\_data krb5\_gic\_opt\_pa\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_gic_opt_pa_data:members}}\index{krb5\_gic\_opt\_pa\_data.attr (C member)@\spxentry{krb5\_gic\_opt\_pa\_data.attr}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_gic_opt_pa_data:c.krb5_gic_opt_pa_data.attr}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_gic_opt_pa_data:c.krb5_gic_opt_pa_data}]{\sphinxcrossref{\DUrole{n}{krb5\_gic\_opt\_pa\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{attr}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_gic\_opt\_pa\_data.value (C member)@\spxentry{krb5\_gic\_opt\_pa\_data.value}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_gic_opt_pa_data:c.krb5_gic_opt_pa_data.value}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_gic_opt_pa_data:c.krb5_gic_opt_pa_data}]{\sphinxcrossref{\DUrole{n}{krb5\_gic\_opt\_pa\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{value}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_int16} -\label{\detokenize{appdev/refs/types/krb5_int16:krb5-int16}}\label{\detokenize{appdev/refs/types/krb5_int16:krb5-int16-struct}}\label{\detokenize{appdev/refs/types/krb5_int16::doc}}\index{krb5\_int16 (C type)@\spxentry{krb5\_int16}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_int16:c.krb5_int16}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_int16}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_int16:declaration}} -\sphinxAtStartPar -typedef int16\_t krb5\_int16 - -\sphinxstepscope - - -\subsubsection{krb5\_int32} -\label{\detokenize{appdev/refs/types/krb5_int32:krb5-int32}}\label{\detokenize{appdev/refs/types/krb5_int32:krb5-int32-struct}}\label{\detokenize{appdev/refs/types/krb5_int32::doc}}\index{krb5\_int32 (C type)@\spxentry{krb5\_int32}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_int32}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_int32:declaration}} -\sphinxAtStartPar -typedef int32\_t krb5\_int32 - -\sphinxstepscope - - -\subsubsection{krb5\_kdc\_rep} -\label{\detokenize{appdev/refs/types/krb5_kdc_rep:krb5-kdc-rep}}\label{\detokenize{appdev/refs/types/krb5_kdc_rep:krb5-kdc-rep-struct}}\label{\detokenize{appdev/refs/types/krb5_kdc_rep::doc}}\index{krb5\_kdc\_rep (C type)@\spxentry{krb5\_kdc\_rep}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kdc\_rep}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Representation of the \sphinxstyleemphasis{KDC\sphinxhyphen{}REP} protocol message. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_kdc_rep:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_kdc\_rep krb5\_kdc\_rep - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_kdc_rep:members}}\index{krb5\_kdc\_rep.magic (C member)@\spxentry{krb5\_kdc\_rep.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_kdc\_rep.msg\_type (C member)@\spxentry{krb5\_kdc\_rep.msg\_type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep.msg_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_msgtype:c.krb5_msgtype}]{\sphinxcrossref{\DUrole{n}{krb5\_msgtype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{msg\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -KRB5\_AS\_REP or KRB5\_KDC\_REP. - -\end{fulllineitems} - -\index{krb5\_kdc\_rep.padata (C member)@\spxentry{krb5\_kdc\_rep.padata}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep.padata}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{padata}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Preauthentication data from KDC. - -\end{fulllineitems} - -\index{krb5\_kdc\_rep.client (C member)@\spxentry{krb5\_kdc\_rep.client}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep.client}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{client}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Client principal and realm. - -\end{fulllineitems} - -\index{krb5\_kdc\_rep.ticket (C member)@\spxentry{krb5\_kdc\_rep.ticket}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep.ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ticket}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Ticket. - -\end{fulllineitems} - -\index{krb5\_kdc\_rep.enc\_part (C member)@\spxentry{krb5\_kdc\_rep.enc\_part}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep.enc_part}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enc\_part}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Encrypted part of reply. - -\end{fulllineitems} - -\index{krb5\_kdc\_rep.enc\_part2 (C member)@\spxentry{krb5\_kdc\_rep.enc\_part2}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep.enc_part2}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_kdc_rep_part:c.krb5_enc_kdc_rep_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_kdc\_rep\_part}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_rep:c.krb5_kdc_rep}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_rep}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enc\_part2}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Unencrypted version, if available. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_kdc\_req} -\label{\detokenize{appdev/refs/types/krb5_kdc_req:krb5-kdc-req}}\label{\detokenize{appdev/refs/types/krb5_kdc_req:krb5-kdc-req-struct}}\label{\detokenize{appdev/refs/types/krb5_kdc_req::doc}}\index{krb5\_kdc\_req (C type)@\spxentry{krb5\_kdc\_req}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kdc\_req}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -C representation of KDC\sphinxhyphen{}REQ protocol message, including KDC\sphinxhyphen{}REQ\sphinxhyphen{}BODY. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_kdc_req:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_kdc\_req krb5\_kdc\_req - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_kdc_req:members}}\index{krb5\_kdc\_req.magic (C member)@\spxentry{krb5\_kdc\_req.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_kdc\_req.msg\_type (C member)@\spxentry{krb5\_kdc\_req.msg\_type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.msg_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_msgtype:c.krb5_msgtype}]{\sphinxcrossref{\DUrole{n}{krb5\_msgtype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{msg\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -KRB5\_AS\_REQ or KRB5\_TGS\_REQ. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.padata (C member)@\spxentry{krb5\_kdc\_req.padata}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.padata}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{padata}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Preauthentication data. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.kdc\_options (C member)@\spxentry{krb5\_kdc\_req.kdc\_options}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.kdc_options}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{kdc\_options}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Requested options. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.client (C member)@\spxentry{krb5\_kdc\_req.client}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.client}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{client}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Client principal and realm. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.server (C member)@\spxentry{krb5\_kdc\_req.server}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.server}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{server}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Server principal and realm. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.from (C member)@\spxentry{krb5\_kdc\_req.from}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.from}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{from}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Requested start time. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.till (C member)@\spxentry{krb5\_kdc\_req.till}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.till}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{till}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Requested end time. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.rtime (C member)@\spxentry{krb5\_kdc\_req.rtime}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.rtime}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{rtime}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Requested renewable end time. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.nonce (C member)@\spxentry{krb5\_kdc\_req.nonce}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.nonce}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{nonce}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Nonce to match request and response. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.nktypes (C member)@\spxentry{krb5\_kdc\_req.nktypes}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.nktypes}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{nktypes}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Number of enctypes. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.ktype (C member)@\spxentry{krb5\_kdc\_req.ktype}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.ktype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ktype}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Requested enctypes. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.addresses (C member)@\spxentry{krb5\_kdc\_req.addresses}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.addresses}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_address:c.krb5_address}]{\sphinxcrossref{\DUrole{n}{krb5\_address}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{addresses}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Requested addresses (optional) - -\end{fulllineitems} - -\index{krb5\_kdc\_req.authorization\_data (C member)@\spxentry{krb5\_kdc\_req.authorization\_data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.authorization_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{authorization\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Encrypted authz data (optional) - -\end{fulllineitems} - -\index{krb5\_kdc\_req.unenc\_authdata (C member)@\spxentry{krb5\_kdc\_req.unenc\_authdata}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.unenc_authdata}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_authdata:c.krb5_authdata}]{\sphinxcrossref{\DUrole{n}{krb5\_authdata}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{unenc\_authdata}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Unencrypted authz data. - -\end{fulllineitems} - -\index{krb5\_kdc\_req.second\_ticket (C member)@\spxentry{krb5\_kdc\_req.second\_ticket}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req.second_ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_kdc_req:c.krb5_kdc_req}]{\sphinxcrossref{\DUrole{n}{krb5\_kdc\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{second\_ticket}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Second ticket array (optional) - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_keyblock} -\label{\detokenize{appdev/refs/types/krb5_keyblock:krb5-keyblock}}\label{\detokenize{appdev/refs/types/krb5_keyblock:krb5-keyblock-struct}}\label{\detokenize{appdev/refs/types/krb5_keyblock::doc}}\index{krb5\_keyblock (C type)@\spxentry{krb5\_keyblock}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_keyblock}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Exposed contents of a key. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_keyblock:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_keyblock krb5\_keyblock - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_keyblock:members}}\index{krb5\_keyblock.magic (C member)@\spxentry{krb5\_keyblock.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_keyblock.enctype (C member)@\spxentry{krb5\_keyblock.enctype}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock.enctype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enctype:c.krb5_enctype}]{\sphinxcrossref{\DUrole{n}{krb5\_enctype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enctype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_keyblock.length (C member)@\spxentry{krb5\_keyblock.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_keyblock.contents (C member)@\spxentry{krb5\_keyblock.contents}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock.contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_octet:c.krb5_octet}]{\sphinxcrossref{\DUrole{n}{krb5\_octet}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{contents}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_keytab\_entry} -\label{\detokenize{appdev/refs/types/krb5_keytab_entry:krb5-keytab-entry}}\label{\detokenize{appdev/refs/types/krb5_keytab_entry:krb5-keytab-entry-struct}}\label{\detokenize{appdev/refs/types/krb5_keytab_entry::doc}}\index{krb5\_keytab\_entry (C type)@\spxentry{krb5\_keytab\_entry}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_keytab\_entry}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -A key table entry. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_keytab_entry:declaration}} -\sphinxAtStartPar -typedef struct krb5\_keytab\_entry\_st krb5\_keytab\_entry - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_keytab_entry:members}}\index{krb5\_keytab\_entry.magic (C member)@\spxentry{krb5\_keytab\_entry.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_keytab\_entry.principal (C member)@\spxentry{krb5\_keytab\_entry.principal}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry.principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{principal}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Principal of this key. - -\end{fulllineitems} - -\index{krb5\_keytab\_entry.timestamp (C member)@\spxentry{krb5\_keytab\_entry.timestamp}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry.timestamp}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{timestamp}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Time entry written to keytable. - -\end{fulllineitems} - -\index{krb5\_keytab\_entry.vno (C member)@\spxentry{krb5\_keytab\_entry.vno}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry.vno}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_kvno:c.krb5_kvno}]{\sphinxcrossref{\DUrole{n}{krb5\_kvno}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{vno}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Key version number. - -\end{fulllineitems} - -\index{krb5\_keytab\_entry.key (C member)@\spxentry{krb5\_keytab\_entry.key}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry.key}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_keyblock:c.krb5_keyblock}]{\sphinxcrossref{\DUrole{n}{krb5\_keyblock}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_keytab_entry:c.krb5_keytab_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_keytab\_entry}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{key}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -The secret key. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_keyusage} -\label{\detokenize{appdev/refs/types/krb5_keyusage:krb5-keyusage}}\label{\detokenize{appdev/refs/types/krb5_keyusage:krb5-keyusage-struct}}\label{\detokenize{appdev/refs/types/krb5_keyusage::doc}}\index{krb5\_keyusage (C type)@\spxentry{krb5\_keyusage}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keyusage:c.krb5_keyusage}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_keyusage}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_keyusage:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_keyusage - -\sphinxstepscope - - -\subsubsection{krb5\_kt\_cursor} -\label{\detokenize{appdev/refs/types/krb5_kt_cursor:krb5-kt-cursor}}\label{\detokenize{appdev/refs/types/krb5_kt_cursor:krb5-kt-cursor-struct}}\label{\detokenize{appdev/refs/types/krb5_kt_cursor::doc}}\index{krb5\_kt\_cursor (C type)@\spxentry{krb5\_kt\_cursor}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kt_cursor:c.krb5_kt_cursor}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kt\_cursor}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_kt_cursor:declaration}} -\sphinxAtStartPar -typedef krb5\_pointer krb5\_kt\_cursor - -\sphinxstepscope - - -\subsubsection{krb5\_kvno} -\label{\detokenize{appdev/refs/types/krb5_kvno:krb5-kvno}}\label{\detokenize{appdev/refs/types/krb5_kvno:krb5-kvno-struct}}\label{\detokenize{appdev/refs/types/krb5_kvno::doc}}\index{krb5\_kvno (C type)@\spxentry{krb5\_kvno}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_kvno:c.krb5_kvno}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_kvno}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_kvno:declaration}} -\sphinxAtStartPar -typedef unsigned int krb5\_kvno - -\sphinxstepscope - - -\subsubsection{krb5\_last\_req\_entry} -\label{\detokenize{appdev/refs/types/krb5_last_req_entry:krb5-last-req-entry}}\label{\detokenize{appdev/refs/types/krb5_last_req_entry:krb5-last-req-entry-struct}}\label{\detokenize{appdev/refs/types/krb5_last_req_entry::doc}}\index{krb5\_last\_req\_entry (C type)@\spxentry{krb5\_last\_req\_entry}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_last_req_entry:c.krb5_last_req_entry}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_last\_req\_entry}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Last request entry. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_last_req_entry:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_last\_req\_entry krb5\_last\_req\_entry - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_last_req_entry:members}}\index{krb5\_last\_req\_entry.magic (C member)@\spxentry{krb5\_last\_req\_entry.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_last_req_entry:c.krb5_last_req_entry.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_last_req_entry:c.krb5_last_req_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_last\_req\_entry}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_last\_req\_entry.lr\_type (C member)@\spxentry{krb5\_last\_req\_entry.lr\_type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_last_req_entry:c.krb5_last_req_entry.lr_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_last_req_entry:c.krb5_last_req_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_last\_req\_entry}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{lr\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -LR type. - -\end{fulllineitems} - -\index{krb5\_last\_req\_entry.value (C member)@\spxentry{krb5\_last\_req\_entry.value}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_last_req_entry:c.krb5_last_req_entry.value}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_last_req_entry:c.krb5_last_req_entry}]{\sphinxcrossref{\DUrole{n}{krb5\_last\_req\_entry}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{value}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Timestamp. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_magic} -\label{\detokenize{appdev/refs/types/krb5_magic:krb5-magic}}\label{\detokenize{appdev/refs/types/krb5_magic:krb5-magic-struct}}\label{\detokenize{appdev/refs/types/krb5_magic::doc}}\index{krb5\_magic (C type)@\spxentry{krb5\_magic}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_magic:declaration}} -\sphinxAtStartPar -typedef krb5\_error\_code krb5\_magic - -\sphinxstepscope - - -\subsubsection{krb5\_mk\_req\_checksum\_func} -\label{\detokenize{appdev/refs/types/krb5_mk_req_checksum_func:krb5-mk-req-checksum-func}}\label{\detokenize{appdev/refs/types/krb5_mk_req_checksum_func:krb5-mk-req-checksum-func-struct}}\label{\detokenize{appdev/refs/types/krb5_mk_req_checksum_func::doc}}\index{krb5\_mk\_req\_checksum\_func (C type)@\spxentry{krb5\_mk\_req\_checksum\_func}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_mk_req_checksum_func:c.krb5_mk_req_checksum_func}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_mk\_req\_checksum\_func}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Type of function used as a callback to generate checksum data for mk\_req. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_mk_req_checksum_func:declaration}} -\sphinxAtStartPar -typedef krb5\_error\_code( * krb5\_mk\_req\_checksum\_func) (krb5\_context, krb5\_auth\_context, void *, krb5\_data **) - -\sphinxstepscope - - -\subsubsection{krb5\_msgtype} -\label{\detokenize{appdev/refs/types/krb5_msgtype:krb5-msgtype}}\label{\detokenize{appdev/refs/types/krb5_msgtype:krb5-msgtype-struct}}\label{\detokenize{appdev/refs/types/krb5_msgtype::doc}}\index{krb5\_msgtype (C type)@\spxentry{krb5\_msgtype}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_msgtype:c.krb5_msgtype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_msgtype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_msgtype:declaration}} -\sphinxAtStartPar -typedef unsigned int krb5\_msgtype - -\sphinxstepscope - - -\subsubsection{krb5\_octet} -\label{\detokenize{appdev/refs/types/krb5_octet:krb5-octet}}\label{\detokenize{appdev/refs/types/krb5_octet:krb5-octet-struct}}\label{\detokenize{appdev/refs/types/krb5_octet::doc}}\index{krb5\_octet (C type)@\spxentry{krb5\_octet}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_octet:c.krb5_octet}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_octet}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_octet:declaration}} -\sphinxAtStartPar -typedef uint8\_t krb5\_octet - -\sphinxstepscope - - -\subsubsection{krb5\_pa\_pac\_req} -\label{\detokenize{appdev/refs/types/krb5_pa_pac_req:krb5-pa-pac-req}}\label{\detokenize{appdev/refs/types/krb5_pa_pac_req:krb5-pa-pac-req-struct}}\label{\detokenize{appdev/refs/types/krb5_pa_pac_req::doc}}\index{krb5\_pa\_pac\_req (C type)@\spxentry{krb5\_pa\_pac\_req}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_pac_req:c.krb5_pa_pac_req}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pa\_pac\_req}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_pa_pac_req:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_pa\_pac\_req krb5\_pa\_pac\_req - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_pa_pac_req:members}}\index{krb5\_pa\_pac\_req.include\_pac (C member)@\spxentry{krb5\_pa\_pac\_req.include\_pac}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_pac_req:c.krb5_pa_pac_req.include_pac}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_boolean:c.krb5_boolean}]{\sphinxcrossref{\DUrole{n}{krb5\_boolean}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_pac_req:c.krb5_pa_pac_req}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_pac\_req}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{include\_pac}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -TRUE if a PAC should be included in TGS\sphinxhyphen{}REP. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_pa\_server\_referral\_data} -\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:krb5-pa-server-referral-data}}\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:krb5-pa-server-referral-data-struct}}\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data::doc}}\index{krb5\_pa\_server\_referral\_data (C type)@\spxentry{krb5\_pa\_server\_referral\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pa\_server\_referral\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_pa\_server\_referral\_data krb5\_pa\_server\_referral\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:members}}\index{krb5\_pa\_server\_referral\_data.referred\_realm (C member)@\spxentry{krb5\_pa\_server\_referral\_data.referred\_realm}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data.referred_realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_server\_referral\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{referred\_realm}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_pa\_server\_referral\_data.true\_principal\_name (C member)@\spxentry{krb5\_pa\_server\_referral\_data.true\_principal\_name}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data.true_principal_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_server\_referral\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{true\_principal\_name}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_pa\_server\_referral\_data.requested\_principal\_name (C member)@\spxentry{krb5\_pa\_server\_referral\_data.requested\_principal\_name}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data.requested_principal_name}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_server\_referral\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{requested\_principal\_name}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_pa\_server\_referral\_data.referral\_valid\_until (C member)@\spxentry{krb5\_pa\_server\_referral\_data.referral\_valid\_until}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data.referral_valid_until}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_server\_referral\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{referral\_valid\_until}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_pa\_server\_referral\_data.rep\_cksum (C member)@\spxentry{krb5\_pa\_server\_referral\_data.rep\_cksum}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data.rep_cksum}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_checksum:c.krb5_checksum}]{\sphinxcrossref{\DUrole{n}{krb5\_checksum}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_server_referral_data:c.krb5_pa_server_referral_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_server\_referral\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{rep\_cksum}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_pa\_svr\_referral\_data} -\label{\detokenize{appdev/refs/types/krb5_pa_svr_referral_data:krb5-pa-svr-referral-data}}\label{\detokenize{appdev/refs/types/krb5_pa_svr_referral_data:krb5-pa-svr-referral-data-struct}}\label{\detokenize{appdev/refs/types/krb5_pa_svr_referral_data::doc}}\index{krb5\_pa\_svr\_referral\_data (C type)@\spxentry{krb5\_pa\_svr\_referral\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_svr_referral_data:c.krb5_pa_svr_referral_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pa\_svr\_referral\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_pa_svr_referral_data:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_pa\_svr\_referral\_data krb5\_pa\_svr\_referral\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_pa_svr_referral_data:members}}\index{krb5\_pa\_svr\_referral\_data.principal (C member)@\spxentry{krb5\_pa\_svr\_referral\_data.principal}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_svr_referral_data:c.krb5_pa_svr_referral_data.principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_svr_referral_data:c.krb5_pa_svr_referral_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_svr\_referral\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{principal}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Referred name, only realm is required. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_pa\_data} -\label{\detokenize{appdev/refs/types/krb5_pa_data:krb5-pa-data}}\label{\detokenize{appdev/refs/types/krb5_pa_data:krb5-pa-data-struct}}\label{\detokenize{appdev/refs/types/krb5_pa_data::doc}}\index{krb5\_pa\_data (C type)@\spxentry{krb5\_pa\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pa\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Pre\sphinxhyphen{}authentication data. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_pa_data:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_pa\_data krb5\_pa\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_pa_data:members}}\index{krb5\_pa\_data.magic (C member)@\spxentry{krb5\_pa\_data.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_pa\_data.pa\_type (C member)@\spxentry{krb5\_pa\_data.pa\_type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data.pa_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_preauthtype:c.krb5_preauthtype}]{\sphinxcrossref{\DUrole{n}{krb5\_preauthtype}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{pa\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Preauthentication data type. - -\end{fulllineitems} - -\index{krb5\_pa\_data.length (C member)@\spxentry{krb5\_pa\_data.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Length of data. - -\end{fulllineitems} - -\index{krb5\_pa\_data.contents (C member)@\spxentry{krb5\_pa\_data.contents}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data.contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_octet:c.krb5_octet}]{\sphinxcrossref{\DUrole{n}{krb5\_octet}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pa_data:c.krb5_pa_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pa\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{contents}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Data. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_pointer} -\label{\detokenize{appdev/refs/types/krb5_pointer:krb5-pointer}}\label{\detokenize{appdev/refs/types/krb5_pointer:krb5-pointer-struct}}\label{\detokenize{appdev/refs/types/krb5_pointer::doc}}\index{krb5\_pointer (C type)@\spxentry{krb5\_pointer}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pointer:c.krb5_pointer}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pointer}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_pointer:declaration}} -\sphinxAtStartPar -typedef void* krb5\_pointer - -\sphinxstepscope - - -\subsubsection{krb5\_post\_recv\_fn} -\label{\detokenize{appdev/refs/types/krb5_post_recv_fn:krb5-post-recv-fn}}\label{\detokenize{appdev/refs/types/krb5_post_recv_fn:krb5-post-recv-fn-struct}}\label{\detokenize{appdev/refs/types/krb5_post_recv_fn::doc}}\index{krb5\_post\_recv\_fn (C type)@\spxentry{krb5\_post\_recv\_fn}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_post_recv_fn:c.krb5_post_recv_fn}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_post\_recv\_fn}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Hook function for inspecting or overriding KDC replies. - -\sphinxAtStartPar -If \sphinxstyleemphasis{code} is non\sphinxhyphen{}zero, KDC communication failed and \sphinxstyleemphasis{reply} should be ignored. The hook function may return \sphinxstyleemphasis{code} or a different error code, or may synthesize a reply by setting \sphinxstyleemphasis{new\_reply\_out} and return successfully. -The hook function should use krb5\_copy\_data() to construct the value for \sphinxstyleemphasis{new\_reply\_out} , to ensure that it can be freed correctly by the library. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_post_recv_fn:declaration}} -\sphinxAtStartPar -typedef krb5\_error\_code( * krb5\_post\_recv\_fn) (krb5\_context context, void *data, krb5\_error\_code code, const krb5\_data *realm, const krb5\_data *message, const krb5\_data *reply, krb5\_data **new\_reply\_out) - -\sphinxstepscope - - -\subsubsection{krb5\_pre\_send\_fn} -\label{\detokenize{appdev/refs/types/krb5_pre_send_fn:krb5-pre-send-fn}}\label{\detokenize{appdev/refs/types/krb5_pre_send_fn:krb5-pre-send-fn-struct}}\label{\detokenize{appdev/refs/types/krb5_pre_send_fn::doc}}\index{krb5\_pre\_send\_fn (C type)@\spxentry{krb5\_pre\_send\_fn}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pre_send_fn:c.krb5_pre_send_fn}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pre\_send\_fn}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Hook function for inspecting or modifying messages sent to KDCs. - -\sphinxAtStartPar -If the hook function sets \sphinxstyleemphasis{new\_reply\_out} , \sphinxstyleemphasis{message} will not be sent to the KDC, and the given reply will used instead. -If the hook function sets \sphinxstyleemphasis{new\_message\_out} , the given message will be sent to the KDC in place of \sphinxstyleemphasis{message} . -If the hook function returns successfully without setting either output, \sphinxstyleemphasis{message} will be sent to the KDC normally. -The hook function should use krb5\_copy\_data() to construct the value for \sphinxstyleemphasis{new\_message\_out} or \sphinxstyleemphasis{reply\_out} , to ensure that it can be freed correctly by the library. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_pre_send_fn:declaration}} -\sphinxAtStartPar -typedef krb5\_error\_code( * krb5\_pre\_send\_fn) (krb5\_context context, void *data, const krb5\_data *realm, const krb5\_data *message, krb5\_data **new\_message\_out, krb5\_data **new\_reply\_out) - -\sphinxstepscope - - -\subsubsection{krb5\_preauthtype} -\label{\detokenize{appdev/refs/types/krb5_preauthtype:krb5-preauthtype}}\label{\detokenize{appdev/refs/types/krb5_preauthtype:krb5-preauthtype-struct}}\label{\detokenize{appdev/refs/types/krb5_preauthtype::doc}}\index{krb5\_preauthtype (C type)@\spxentry{krb5\_preauthtype}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_preauthtype:c.krb5_preauthtype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_preauthtype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_preauthtype:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_preauthtype - -\sphinxstepscope - - -\subsubsection{krb5\_principal} -\label{\detokenize{appdev/refs/types/krb5_principal:krb5-principal}}\label{\detokenize{appdev/refs/types/krb5_principal:krb5-principal-struct}}\label{\detokenize{appdev/refs/types/krb5_principal::doc}}\index{krb5\_principal (C type)@\spxentry{krb5\_principal}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_principal}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_principal:declaration}} -\sphinxAtStartPar -typedef krb5\_principal\_data* krb5\_principal - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_principal:members}}\index{krb5\_principal.magic (C member)@\spxentry{krb5\_principal.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_principal.realm (C member)@\spxentry{krb5\_principal.realm}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal.realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{realm}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_principal.data (C member)@\spxentry{krb5\_principal.data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal.data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{data}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -An array of strings. - -\end{fulllineitems} - -\index{krb5\_principal.length (C member)@\spxentry{krb5\_principal.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_principal.type (C member)@\spxentry{krb5\_principal.type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal.type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{type}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_principal\_data} -\label{\detokenize{appdev/refs/types/krb5_principal_data:krb5-principal-data}}\label{\detokenize{appdev/refs/types/krb5_principal_data:krb5-principal-data-struct}}\label{\detokenize{appdev/refs/types/krb5_principal_data::doc}}\index{krb5\_principal\_data (C type)@\spxentry{krb5\_principal\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_principal\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_principal_data:declaration}} -\sphinxAtStartPar -typedef struct krb5\_principal\_data krb5\_principal\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_principal_data:members}}\index{krb5\_principal\_data.magic (C member)@\spxentry{krb5\_principal\_data.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data}]{\sphinxcrossref{\DUrole{n}{krb5\_principal\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_principal\_data.realm (C member)@\spxentry{krb5\_principal\_data.realm}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data.realm}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data}]{\sphinxcrossref{\DUrole{n}{krb5\_principal\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{realm}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_principal\_data.data (C member)@\spxentry{krb5\_principal\_data.data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data.data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data}]{\sphinxcrossref{\DUrole{n}{krb5\_principal\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{data}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -An array of strings. - -\end{fulllineitems} - -\index{krb5\_principal\_data.length (C member)@\spxentry{krb5\_principal\_data.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data}]{\sphinxcrossref{\DUrole{n}{krb5\_principal\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_principal\_data.type (C member)@\spxentry{krb5\_principal\_data.type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data.type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_principal_data:c.krb5_principal_data}]{\sphinxcrossref{\DUrole{n}{krb5\_principal\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{type}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_prompt} -\label{\detokenize{appdev/refs/types/krb5_prompt:krb5-prompt}}\label{\detokenize{appdev/refs/types/krb5_prompt:krb5-prompt-struct}}\label{\detokenize{appdev/refs/types/krb5_prompt::doc}}\index{krb5\_prompt (C type)@\spxentry{krb5\_prompt}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_prompt:c.krb5_prompt}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_prompt}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Text for prompt used in prompter callback function. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_prompt:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_prompt krb5\_prompt - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_prompt:members}}\index{krb5\_prompt.prompt (C member)@\spxentry{krb5\_prompt.prompt}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_prompt:c.krb5_prompt.prompt}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_prompt:c.krb5_prompt}]{\sphinxcrossref{\DUrole{n}{krb5\_prompt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{prompt}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -The prompt to show to the user. - -\end{fulllineitems} - -\index{krb5\_prompt.hidden (C member)@\spxentry{krb5\_prompt.hidden}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_prompt:c.krb5_prompt.hidden}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_prompt:c.krb5_prompt}]{\sphinxcrossref{\DUrole{n}{krb5\_prompt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{hidden}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Boolean; informative prompt or hidden (e.g. -PIN) - -\end{fulllineitems} - -\index{krb5\_prompt.reply (C member)@\spxentry{krb5\_prompt.reply}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_prompt:c.krb5_prompt.reply}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_prompt:c.krb5_prompt}]{\sphinxcrossref{\DUrole{n}{krb5\_prompt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{reply}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Must be allocated before call to prompt routine. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_prompt\_type} -\label{\detokenize{appdev/refs/types/krb5_prompt_type:krb5-prompt-type}}\label{\detokenize{appdev/refs/types/krb5_prompt_type:krb5-prompt-type-struct}}\label{\detokenize{appdev/refs/types/krb5_prompt_type::doc}}\index{krb5\_prompt\_type (C type)@\spxentry{krb5\_prompt\_type}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_prompt_type:c.krb5_prompt_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_prompt\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_prompt_type:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_prompt\_type - -\sphinxstepscope - - -\subsubsection{krb5\_prompter\_fct} -\label{\detokenize{appdev/refs/types/krb5_prompter_fct:krb5-prompter-fct}}\label{\detokenize{appdev/refs/types/krb5_prompter_fct:krb5-prompter-fct-struct}}\label{\detokenize{appdev/refs/types/krb5_prompter_fct::doc}}\index{krb5\_prompter\_fct (C type)@\spxentry{krb5\_prompter\_fct}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_prompter_fct:c.krb5_prompter_fct}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_prompter\_fct}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Pointer to a prompter callback function. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_prompter_fct:declaration}} -\sphinxAtStartPar -typedef krb5\_error\_code( * krb5\_prompter\_fct) (krb5\_context context, void *data, const char *name, const char *banner, int num\_prompts, krb5\_prompt prompts{[}{]}) - -\sphinxstepscope - - -\subsubsection{krb5\_pwd\_data} -\label{\detokenize{appdev/refs/types/krb5_pwd_data:krb5-pwd-data}}\label{\detokenize{appdev/refs/types/krb5_pwd_data:krb5-pwd-data-struct}}\label{\detokenize{appdev/refs/types/krb5_pwd_data::doc}}\index{krb5\_pwd\_data (C type)@\spxentry{krb5\_pwd\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pwd_data:c.krb5_pwd_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pwd\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_pwd_data:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_pwd\_data krb5\_pwd\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_pwd_data:members}}\index{krb5\_pwd\_data.magic (C member)@\spxentry{krb5\_pwd\_data.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pwd_data:c.krb5_pwd_data.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pwd_data:c.krb5_pwd_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pwd\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_pwd\_data.sequence\_count (C member)@\spxentry{krb5\_pwd\_data.sequence\_count}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pwd_data:c.krb5_pwd_data.sequence_count}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pwd_data:c.krb5_pwd_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pwd\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{sequence\_count}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_pwd\_data.element (C member)@\spxentry{krb5\_pwd\_data.element}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pwd_data:c.krb5_pwd_data.element}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/passwd_phrase_element:c.passwd_phrase_element}]{\sphinxcrossref{\DUrole{n}{passwd\_phrase\_element}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_pwd_data:c.krb5_pwd_data}]{\sphinxcrossref{\DUrole{n}{krb5\_pwd\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{element}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_context} -\label{\detokenize{appdev/refs/types/krb5_responder_context:krb5-responder-context}}\label{\detokenize{appdev/refs/types/krb5_responder_context:krb5-responder-context-struct}}\label{\detokenize{appdev/refs/types/krb5_responder_context::doc}}\index{krb5\_responder\_context (C type)@\spxentry{krb5\_responder\_context}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_context:c.krb5_responder_context}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_context}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -A container for a set of preauthentication questions and answers. - -\sphinxAtStartPar -A responder context is supplied by the krb5 authentication system to a krb5\_responder\_fn callback. It contains a list of questions and can receive answers. Questions contained in a responder context can be listed using krb5\_responder\_list\_questions(), retrieved using krb5\_responder\_get\_challenge(), or answered using krb5\_responder\_set\_answer(). The form of a question’s challenge and answer depend on the question name. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_responder_context:declaration}} -\sphinxAtStartPar -typedef struct krb5\_responder\_context\_st* krb5\_responder\_context - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_fn} -\label{\detokenize{appdev/refs/types/krb5_responder_fn:krb5-responder-fn}}\label{\detokenize{appdev/refs/types/krb5_responder_fn:krb5-responder-fn-struct}}\label{\detokenize{appdev/refs/types/krb5_responder_fn::doc}}\index{krb5\_responder\_fn (C type)@\spxentry{krb5\_responder\_fn}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_fn:c.krb5_responder_fn}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_fn}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Responder function for an initial credential exchange. - -\sphinxAtStartPar -If a required question is unanswered, the prompter may be called. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_responder_fn:declaration}} -\sphinxAtStartPar -typedef krb5\_error\_code( * krb5\_responder\_fn) (krb5\_context ctx, void *data, krb5\_responder\_context rctx) - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_otp\_challenge} -\label{\detokenize{appdev/refs/types/krb5_responder_otp_challenge:krb5-responder-otp-challenge}}\label{\detokenize{appdev/refs/types/krb5_responder_otp_challenge:krb5-responder-otp-challenge-struct}}\label{\detokenize{appdev/refs/types/krb5_responder_otp_challenge::doc}}\index{krb5\_responder\_otp\_challenge (C type)@\spxentry{krb5\_responder\_otp\_challenge}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_challenge:c.krb5_responder_otp_challenge}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_otp\_challenge}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_responder_otp_challenge:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_responder\_otp\_challenge krb5\_responder\_otp\_challenge - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_responder_otp_challenge:members}}\index{krb5\_responder\_otp\_challenge.service (C member)@\spxentry{krb5\_responder\_otp\_challenge.service}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_challenge:c.krb5_responder_otp_challenge.service}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_challenge:c.krb5_responder_otp_challenge}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_challenge}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{service}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_responder\_otp\_challenge.tokeninfo (C member)@\spxentry{krb5\_responder\_otp\_challenge.tokeninfo}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_challenge:c.krb5_responder_otp_challenge.tokeninfo}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_tokeninfo}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_challenge:c.krb5_responder_otp_challenge}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_challenge}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{tokeninfo}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_otp\_tokeninfo} -\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:krb5-responder-otp-tokeninfo}}\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:krb5-responder-otp-tokeninfo-struct}}\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo::doc}}\index{krb5\_responder\_otp\_tokeninfo (C type)@\spxentry{krb5\_responder\_otp\_tokeninfo}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_otp\_tokeninfo}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_responder\_otp\_tokeninfo krb5\_responder\_otp\_tokeninfo - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:members}}\index{krb5\_responder\_otp\_tokeninfo.flags (C member)@\spxentry{krb5\_responder\_otp\_tokeninfo.flags}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo.flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_tokeninfo}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_responder\_otp\_tokeninfo.format (C member)@\spxentry{krb5\_responder\_otp\_tokeninfo.format}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo.format}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_tokeninfo}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{format}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_responder\_otp\_tokeninfo.length (C member)@\spxentry{krb5\_responder\_otp\_tokeninfo.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_tokeninfo}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_responder\_otp\_tokeninfo.vendor (C member)@\spxentry{krb5\_responder\_otp\_tokeninfo.vendor}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo.vendor}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_tokeninfo}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{vendor}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_responder\_otp\_tokeninfo.challenge (C member)@\spxentry{krb5\_responder\_otp\_tokeninfo.challenge}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo.challenge}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_tokeninfo}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{challenge}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_responder\_otp\_tokeninfo.token\_id (C member)@\spxentry{krb5\_responder\_otp\_tokeninfo.token\_id}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo.token_id}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_tokeninfo}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{token\_id}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_responder\_otp\_tokeninfo.alg\_id (C member)@\spxentry{krb5\_responder\_otp\_tokeninfo.alg\_id}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo.alg_id}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_otp_tokeninfo:c.krb5_responder_otp_tokeninfo}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_otp\_tokeninfo}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{alg\_id}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_pkinit\_challenge} -\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge:krb5-responder-pkinit-challenge}}\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge:krb5-responder-pkinit-challenge-struct}}\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge::doc}}\index{krb5\_responder\_pkinit\_challenge (C type)@\spxentry{krb5\_responder\_pkinit\_challenge}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge:c.krb5_responder_pkinit_challenge}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_pkinit\_challenge}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_responder\_pkinit\_challenge krb5\_responder\_pkinit\_challenge - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge:members}}\index{krb5\_responder\_pkinit\_challenge.identities (C member)@\spxentry{krb5\_responder\_pkinit\_challenge.identities}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge:c.krb5_responder_pkinit_challenge.identities}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:c.krb5_responder_pkinit_identity}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_pkinit\_identity}}}}\DUrole{w}{ }\DUrole{p}{*}\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_pkinit_challenge:c.krb5_responder_pkinit_challenge}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_pkinit\_challenge}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{identities}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_responder\_pkinit\_identity} -\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:krb5-responder-pkinit-identity}}\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:krb5-responder-pkinit-identity-struct}}\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_identity::doc}}\index{krb5\_responder\_pkinit\_identity (C type)@\spxentry{krb5\_responder\_pkinit\_identity}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:c.krb5_responder_pkinit_identity}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_responder\_pkinit\_identity}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_responder\_pkinit\_identity krb5\_responder\_pkinit\_identity - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:members}}\index{krb5\_responder\_pkinit\_identity.identity (C member)@\spxentry{krb5\_responder\_pkinit\_identity.identity}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:c.krb5_responder_pkinit_identity.identity}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:c.krb5_responder_pkinit_identity}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_pkinit\_identity}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{identity}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_responder\_pkinit\_identity.token\_flags (C member)@\spxentry{krb5\_responder\_pkinit\_identity.token\_flags}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:c.krb5_responder_pkinit_identity.token_flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_responder_pkinit_identity:c.krb5_responder_pkinit_identity}]{\sphinxcrossref{\DUrole{n}{krb5\_responder\_pkinit\_identity}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{token\_flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_response} -\label{\detokenize{appdev/refs/types/krb5_response:krb5-response}}\label{\detokenize{appdev/refs/types/krb5_response:krb5-response-struct}}\label{\detokenize{appdev/refs/types/krb5_response::doc}}\index{krb5\_response (C type)@\spxentry{krb5\_response}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_response:c.krb5_response}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_response}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_response:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_response krb5\_response - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_response:members}}\index{krb5\_response.magic (C member)@\spxentry{krb5\_response.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_response:c.krb5_response.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_response:c.krb5_response}]{\sphinxcrossref{\DUrole{n}{krb5\_response}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_response.message\_type (C member)@\spxentry{krb5\_response.message\_type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_response:c.krb5_response.message_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_octet:c.krb5_octet}]{\sphinxcrossref{\DUrole{n}{krb5\_octet}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_response:c.krb5_response}]{\sphinxcrossref{\DUrole{n}{krb5\_response}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{message\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_response.response (C member)@\spxentry{krb5\_response.response}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_response:c.krb5_response.response}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_response:c.krb5_response}]{\sphinxcrossref{\DUrole{n}{krb5\_response}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{response}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_response.expected\_nonce (C member)@\spxentry{krb5\_response.expected\_nonce}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_response:c.krb5_response.expected_nonce}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_response:c.krb5_response}]{\sphinxcrossref{\DUrole{n}{krb5\_response}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{expected\_nonce}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_response.request\_time (C member)@\spxentry{krb5\_response.request\_time}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_response:c.krb5_response.request_time}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_response:c.krb5_response}]{\sphinxcrossref{\DUrole{n}{krb5\_response}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{request\_time}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_replay\_data} -\label{\detokenize{appdev/refs/types/krb5_replay_data:krb5-replay-data}}\label{\detokenize{appdev/refs/types/krb5_replay_data:krb5-replay-data-struct}}\label{\detokenize{appdev/refs/types/krb5_replay_data::doc}}\index{krb5\_replay\_data (C type)@\spxentry{krb5\_replay\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_replay\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Replay data. - -\sphinxAtStartPar -Sequence number and timestamp information output by krb5\_rd\_priv() and krb5\_rd\_safe(). - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_replay_data:declaration}} -\sphinxAtStartPar -typedef struct krb5\_replay\_data krb5\_replay\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_replay_data:members}}\index{krb5\_replay\_data.timestamp (C member)@\spxentry{krb5\_replay\_data.timestamp}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data.timestamp}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{timestamp}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Timestamp, seconds portion. - -\end{fulllineitems} - -\index{krb5\_replay\_data.usec (C member)@\spxentry{krb5\_replay\_data.usec}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data.usec}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{usec}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Timestamp, microseconds portion. - -\end{fulllineitems} - -\index{krb5\_replay\_data.seq (C member)@\spxentry{krb5\_replay\_data.seq}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data.seq}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ui_4:c.krb5_ui_4}]{\sphinxcrossref{\DUrole{n}{krb5\_ui\_4}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_replay_data:c.krb5_replay_data}]{\sphinxcrossref{\DUrole{n}{krb5\_replay\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{seq}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Sequence number. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_ticket} -\label{\detokenize{appdev/refs/types/krb5_ticket:krb5-ticket}}\label{\detokenize{appdev/refs/types/krb5_ticket:krb5-ticket-struct}}\label{\detokenize{appdev/refs/types/krb5_ticket::doc}}\index{krb5\_ticket (C type)@\spxentry{krb5\_ticket}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_ticket}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Ticket structure. - -\sphinxAtStartPar -The C representation of the ticket message, with a pointer to the C representation of the encrypted part. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_ticket:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_ticket krb5\_ticket - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_ticket:members}}\index{krb5\_ticket.magic (C member)@\spxentry{krb5\_ticket.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_ticket.server (C member)@\spxentry{krb5\_ticket.server}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket.server}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_principal:c.krb5_principal}]{\sphinxcrossref{\DUrole{n}{krb5\_principal}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{server}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -server name/realm - -\end{fulllineitems} - -\index{krb5\_ticket.enc\_part (C member)@\spxentry{krb5\_ticket.enc\_part}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket.enc_part}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_data:c.krb5_enc_data}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enc\_part}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -encryption type, kvno, encrypted encoding - -\end{fulllineitems} - -\index{krb5\_ticket.enc\_part2 (C member)@\spxentry{krb5\_ticket.enc\_part2}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket.enc_part2}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_enc_tkt_part:c.krb5_enc_tkt_part}]{\sphinxcrossref{\DUrole{n}{krb5\_enc\_tkt\_part}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{enc\_part2}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -ptr to decrypted version, if available - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_ticket\_times} -\label{\detokenize{appdev/refs/types/krb5_ticket_times:krb5-ticket-times}}\label{\detokenize{appdev/refs/types/krb5_ticket_times:krb5-ticket-times-struct}}\label{\detokenize{appdev/refs/types/krb5_ticket_times::doc}}\index{krb5\_ticket\_times (C type)@\spxentry{krb5\_ticket\_times}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_ticket\_times}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Ticket start time, end time, and renewal duration. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_ticket_times:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_ticket\_times krb5\_ticket\_times - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_ticket_times:members}}\index{krb5\_ticket\_times.authtime (C member)@\spxentry{krb5\_ticket\_times.authtime}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times.authtime}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{authtime}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Time at which KDC issued the initial ticket that corresponds to this ticket. - -\end{fulllineitems} - -\index{krb5\_ticket\_times.starttime (C member)@\spxentry{krb5\_ticket\_times.starttime}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times.starttime}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{starttime}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -optional in ticket, if not present, use \sphinxstyleemphasis{authtime} - -\end{fulllineitems} - -\index{krb5\_ticket\_times.endtime (C member)@\spxentry{krb5\_ticket\_times.endtime}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times.endtime}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{endtime}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Ticket expiration time. - -\end{fulllineitems} - -\index{krb5\_ticket\_times.renew\_till (C member)@\spxentry{krb5\_ticket\_times.renew\_till}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times.renew_till}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}]{\sphinxcrossref{\DUrole{n}{krb5\_timestamp}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket_times:c.krb5_ticket_times}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket\_times}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{renew\_till}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Latest time at which renewal of ticket can be valid. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_timestamp} -\label{\detokenize{appdev/refs/types/krb5_timestamp:krb5-timestamp}}\label{\detokenize{appdev/refs/types/krb5_timestamp:krb5-timestamp-struct}}\label{\detokenize{appdev/refs/types/krb5_timestamp::doc}}\index{krb5\_timestamp (C type)@\spxentry{krb5\_timestamp}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_timestamp:c.krb5_timestamp}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_timestamp}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Represents a timestamp in seconds since the POSIX epoch. - -\sphinxAtStartPar -This legacy type is used frequently in the ABI, but cannot represent timestamps after 2038 as a positive number. Code which uses this type should cast values of it to uint32\_t so that negative values are treated as timestamps between 2038 and 2106 on platforms with 64\sphinxhyphen{}bit time\_t. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_timestamp:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_timestamp - -\sphinxstepscope - - -\subsubsection{krb5\_tkt\_authent} -\label{\detokenize{appdev/refs/types/krb5_tkt_authent:krb5-tkt-authent}}\label{\detokenize{appdev/refs/types/krb5_tkt_authent:krb5-tkt-authent-struct}}\label{\detokenize{appdev/refs/types/krb5_tkt_authent::doc}}\index{krb5\_tkt\_authent (C type)@\spxentry{krb5\_tkt\_authent}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_tkt_authent:c.krb5_tkt_authent}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_tkt\_authent}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Ticket authentication data. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_tkt_authent:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_tkt\_authent krb5\_tkt\_authent - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_tkt_authent:members}}\index{krb5\_tkt\_authent.magic (C member)@\spxentry{krb5\_tkt\_authent.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_tkt_authent:c.krb5_tkt_authent.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_tkt_authent:c.krb5_tkt_authent}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_authent}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_tkt\_authent.ticket (C member)@\spxentry{krb5\_tkt\_authent.ticket}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_tkt_authent:c.krb5_tkt_authent.ticket}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_ticket:c.krb5_ticket}]{\sphinxcrossref{\DUrole{n}{krb5\_ticket}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_tkt_authent:c.krb5_tkt_authent}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_authent}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ticket}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_tkt\_authent.authenticator (C member)@\spxentry{krb5\_tkt\_authent.authenticator}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_tkt_authent:c.krb5_tkt_authent.authenticator}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_authenticator:c.krb5_authenticator}]{\sphinxcrossref{\DUrole{n}{krb5\_authenticator}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_tkt_authent:c.krb5_tkt_authent}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_authent}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{authenticator}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_tkt\_authent.ap\_options (C member)@\spxentry{krb5\_tkt\_authent.ap\_options}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_tkt_authent:c.krb5_tkt_authent.ap_options}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_tkt_authent:c.krb5_tkt_authent}]{\sphinxcrossref{\DUrole{n}{krb5\_tkt\_authent}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ap\_options}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_trace\_callback} -\label{\detokenize{appdev/refs/types/krb5_trace_callback:krb5-trace-callback}}\label{\detokenize{appdev/refs/types/krb5_trace_callback:krb5-trace-callback-struct}}\label{\detokenize{appdev/refs/types/krb5_trace_callback::doc}}\index{krb5\_trace\_callback (C type)@\spxentry{krb5\_trace\_callback}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_trace_callback:c.krb5_trace_callback}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_trace\_callback}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_trace_callback:declaration}} -\sphinxAtStartPar -typedef void( * krb5\_trace\_callback) (krb5\_context context, const krb5\_trace\_info *info, void *cb\_data) - -\sphinxstepscope - - -\subsubsection{krb5\_trace\_info} -\label{\detokenize{appdev/refs/types/krb5_trace_info:krb5-trace-info}}\label{\detokenize{appdev/refs/types/krb5_trace_info:krb5-trace-info-struct}}\label{\detokenize{appdev/refs/types/krb5_trace_info::doc}}\index{krb5\_trace\_info (C type)@\spxentry{krb5\_trace\_info}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_trace_info:c.krb5_trace_info}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_trace\_info}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -A wrapper for passing information to a \sphinxstyleemphasis{krb5\_trace\_callback} . - -\sphinxAtStartPar -Currently, it only contains the formatted message as determined the the format string and arguments of the tracing macro, but it may be extended to contain more fields in the future. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_trace_info:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_trace\_info krb5\_trace\_info - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_trace_info:members}}\index{krb5\_trace\_info.message (C member)@\spxentry{krb5\_trace\_info.message}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_trace_info:c.krb5_trace_info.message}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{const}\DUrole{w}{ }\DUrole{kt}{char}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_trace_info:c.krb5_trace_info}]{\sphinxcrossref{\DUrole{n}{krb5\_trace\_info}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{message}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_transited} -\label{\detokenize{appdev/refs/types/krb5_transited:krb5-transited}}\label{\detokenize{appdev/refs/types/krb5_transited:krb5-transited-struct}}\label{\detokenize{appdev/refs/types/krb5_transited::doc}}\index{krb5\_transited (C type)@\spxentry{krb5\_transited}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_transited:c.krb5_transited}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_transited}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Structure for transited encoding. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_transited:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_transited krb5\_transited - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_transited:members}}\index{krb5\_transited.magic (C member)@\spxentry{krb5\_transited.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_transited:c.krb5_transited.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_transited:c.krb5_transited}]{\sphinxcrossref{\DUrole{n}{krb5\_transited}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_transited.tr\_type (C member)@\spxentry{krb5\_transited.tr\_type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_transited:c.krb5_transited.tr_type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_octet:c.krb5_octet}]{\sphinxcrossref{\DUrole{n}{krb5\_octet}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_transited:c.krb5_transited}]{\sphinxcrossref{\DUrole{n}{krb5\_transited}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{tr\_type}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Transited encoding type. - -\end{fulllineitems} - -\index{krb5\_transited.tr\_contents (C member)@\spxentry{krb5\_transited.tr\_contents}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_transited:c.krb5_transited.tr_contents}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_transited:c.krb5_transited}]{\sphinxcrossref{\DUrole{n}{krb5\_transited}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{tr\_contents}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -Contents. - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_typed\_data} -\label{\detokenize{appdev/refs/types/krb5_typed_data:krb5-typed-data}}\label{\detokenize{appdev/refs/types/krb5_typed_data:krb5-typed-data-struct}}\label{\detokenize{appdev/refs/types/krb5_typed_data::doc}}\index{krb5\_typed\_data (C type)@\spxentry{krb5\_typed\_data}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_typed_data:c.krb5_typed_data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_typed\_data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_typed_data:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_typed\_data krb5\_typed\_data - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_typed_data:members}}\index{krb5\_typed\_data.magic (C member)@\spxentry{krb5\_typed\_data.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_typed_data:c.krb5_typed_data.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_typed_data:c.krb5_typed_data}]{\sphinxcrossref{\DUrole{n}{krb5\_typed\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_typed\_data.type (C member)@\spxentry{krb5\_typed\_data.type}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_typed_data:c.krb5_typed_data.type}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_int32:c.krb5_int32}]{\sphinxcrossref{\DUrole{n}{krb5\_int32}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_typed_data:c.krb5_typed_data}]{\sphinxcrossref{\DUrole{n}{krb5\_typed\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{type}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_typed\_data.length (C member)@\spxentry{krb5\_typed\_data.length}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_typed_data:c.krb5_typed_data.length}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{unsigned}\DUrole{w}{ }\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_typed_data:c.krb5_typed_data}]{\sphinxcrossref{\DUrole{n}{krb5\_typed\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{length}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_typed\_data.data (C member)@\spxentry{krb5\_typed\_data.data}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_typed_data:c.krb5_typed_data.data}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_octet:c.krb5_octet}]{\sphinxcrossref{\DUrole{n}{krb5\_octet}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_typed_data:c.krb5_typed_data}]{\sphinxcrossref{\DUrole{n}{krb5\_typed\_data}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{data}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{krb5\_ui\_2} -\label{\detokenize{appdev/refs/types/krb5_ui_2:krb5-ui-2}}\label{\detokenize{appdev/refs/types/krb5_ui_2:krb5-ui-2-struct}}\label{\detokenize{appdev/refs/types/krb5_ui_2::doc}}\index{krb5\_ui\_2 (C type)@\spxentry{krb5\_ui\_2}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ui_2:c.krb5_ui_2}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_ui\_2}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_ui_2:declaration}} -\sphinxAtStartPar -typedef uint16\_t krb5\_ui\_2 - -\sphinxstepscope - - -\subsubsection{krb5\_ui\_4} -\label{\detokenize{appdev/refs/types/krb5_ui_4:krb5-ui-4}}\label{\detokenize{appdev/refs/types/krb5_ui_4:krb5-ui-4-struct}}\label{\detokenize{appdev/refs/types/krb5_ui_4::doc}}\index{krb5\_ui\_4 (C type)@\spxentry{krb5\_ui\_4}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ui_4:c.krb5_ui_4}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_ui\_4}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_ui_4:declaration}} -\sphinxAtStartPar -typedef uint32\_t krb5\_ui\_4 - -\sphinxstepscope - - -\subsubsection{krb5\_verify\_init\_creds\_opt} -\label{\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:krb5-verify-init-creds-opt}}\label{\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:krb5-verify-init-creds-opt-struct}}\label{\detokenize{appdev/refs/types/krb5_verify_init_creds_opt::doc}}\index{krb5\_verify\_init\_creds\_opt (C type)@\spxentry{krb5\_verify\_init\_creds\_opt}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:c.krb5_verify_init_creds_opt}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_verify\_init\_creds\_opt}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_verify\_init\_creds\_opt krb5\_verify\_init\_creds\_opt - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:members}}\index{krb5\_verify\_init\_creds\_opt.flags (C member)@\spxentry{krb5\_verify\_init\_creds\_opt.flags}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:c.krb5_verify_init_creds_opt.flags}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_flags:c.krb5_flags}]{\sphinxcrossref{\DUrole{n}{krb5\_flags}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:c.krb5_verify_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_verify\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{flags}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{krb5\_verify\_init\_creds\_opt.ap\_req\_nofail (C member)@\spxentry{krb5\_verify\_init\_creds\_opt.ap\_req\_nofail}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:c.krb5_verify_init_creds_opt.ap_req_nofail}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{kt}{int}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/krb5_verify_init_creds_opt:c.krb5_verify_init_creds_opt}]{\sphinxcrossref{\DUrole{n}{krb5\_verify\_init\_creds\_opt}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{ap\_req\_nofail}}}} -\pysigstopmultiline -\pysigstopsignatures -\sphinxAtStartPar -boolean - -\end{fulllineitems} - - -\sphinxstepscope - - -\subsubsection{passwd\_phrase\_element} -\label{\detokenize{appdev/refs/types/passwd_phrase_element:passwd-phrase-element}}\label{\detokenize{appdev/refs/types/passwd_phrase_element:passwd-phrase-element-struct}}\label{\detokenize{appdev/refs/types/passwd_phrase_element::doc}}\index{passwd\_phrase\_element (C type)@\spxentry{passwd\_phrase\_element}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/passwd_phrase_element:c.passwd_phrase_element}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{passwd\_phrase\_element}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/passwd_phrase_element:declaration}} -\sphinxAtStartPar -typedef struct \_passwd\_phrase\_element passwd\_phrase\_element - - -\paragraph{Members} -\label{\detokenize{appdev/refs/types/passwd_phrase_element:members}}\index{passwd\_phrase\_element.magic (C member)@\spxentry{passwd\_phrase\_element.magic}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/passwd_phrase_element:c.passwd_phrase_element.magic}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_magic:c.krb5_magic}]{\sphinxcrossref{\DUrole{n}{krb5\_magic}}}}\DUrole{w}{ }\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/passwd_phrase_element:c.passwd_phrase_element}]{\sphinxcrossref{\DUrole{n}{passwd\_phrase\_element}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{magic}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{passwd\_phrase\_element.passwd (C member)@\spxentry{passwd\_phrase\_element.passwd}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/passwd_phrase_element:c.passwd_phrase_element.passwd}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/passwd_phrase_element:c.passwd_phrase_element}]{\sphinxcrossref{\DUrole{n}{passwd\_phrase\_element}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{passwd}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - -\index{passwd\_phrase\_element.phrase (C member)@\spxentry{passwd\_phrase\_element.phrase}\spxextra{C member}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/passwd_phrase_element:c.passwd_phrase_element.phrase}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{{\hyperref[\detokenize{appdev/refs/types/krb5_data:c.krb5_data}]{\sphinxcrossref{\DUrole{n}{krb5\_data}}}}\DUrole{w}{ }\DUrole{p}{*}\sphinxcode{\sphinxupquote{{\hyperref[\detokenize{appdev/refs/types/passwd_phrase_element:c.passwd_phrase_element}]{\sphinxcrossref{\DUrole{n}{passwd\_phrase\_element}}}}\DUrole{p}{.}}}\sphinxbfcode{\sphinxupquote{\DUrole{n}{phrase}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\subsection{Internal} -\label{\detokenize{appdev/refs/types/index:internal}} -\sphinxstepscope - - -\subsubsection{krb5\_auth\_context} -\label{\detokenize{appdev/refs/types/krb5_auth_context:krb5-auth-context}}\label{\detokenize{appdev/refs/types/krb5_auth_context:krb5-auth-context-struct}}\label{\detokenize{appdev/refs/types/krb5_auth_context::doc}}\index{krb5\_auth\_context (C type)@\spxentry{krb5\_auth\_context}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_auth_context:c.krb5_auth_context}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_auth\_context}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_auth_context:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_auth\_context* krb5\_auth\_context - -\sphinxstepscope - - -\subsubsection{krb5\_cksumtype} -\label{\detokenize{appdev/refs/types/krb5_cksumtype:krb5-cksumtype}}\label{\detokenize{appdev/refs/types/krb5_cksumtype:krb5-cksumtype-struct}}\label{\detokenize{appdev/refs/types/krb5_cksumtype::doc}}\index{krb5\_cksumtype (C type)@\spxentry{krb5\_cksumtype}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cksumtype:c.krb5_cksumtype}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cksumtype}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_cksumtype:declaration}} -\sphinxAtStartPar -typedef krb5\_int32 krb5\_cksumtype - -\sphinxstepscope - - -\subsubsection{krb5\_context} -\label{\detokenize{appdev/refs/types/krb5_context:krb5-context}}\label{\detokenize{appdev/refs/types/krb5_context:krb5-context-struct}}\label{\detokenize{appdev/refs/types/krb5_context::doc}}\index{krb5\_context (C type)@\spxentry{krb5\_context}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_context:c.krb5_context}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_context}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_context:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_context* krb5\_context - -\sphinxstepscope - - -\subsubsection{krb5\_cc\_cursor} -\label{\detokenize{appdev/refs/types/krb5_cc_cursor:krb5-cc-cursor}}\label{\detokenize{appdev/refs/types/krb5_cc_cursor:krb5-cc-cursor-struct}}\label{\detokenize{appdev/refs/types/krb5_cc_cursor::doc}}\index{krb5\_cc\_cursor (C type)@\spxentry{krb5\_cc\_cursor}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cc_cursor:c.krb5_cc_cursor}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cc\_cursor}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Cursor for sequential lookup. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_cc_cursor:declaration}} -\sphinxAtStartPar -typedef krb5\_pointer krb5\_cc\_cursor - -\sphinxstepscope - - -\subsubsection{krb5\_ccache} -\label{\detokenize{appdev/refs/types/krb5_ccache:krb5-ccache}}\label{\detokenize{appdev/refs/types/krb5_ccache:krb5-ccache-struct}}\label{\detokenize{appdev/refs/types/krb5_ccache::doc}}\index{krb5\_ccache (C type)@\spxentry{krb5\_ccache}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_ccache:c.krb5_ccache}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_ccache}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_ccache:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_ccache* krb5\_ccache - -\sphinxstepscope - - -\subsubsection{krb5\_cccol\_cursor} -\label{\detokenize{appdev/refs/types/krb5_cccol_cursor:krb5-cccol-cursor}}\label{\detokenize{appdev/refs/types/krb5_cccol_cursor:krb5-cccol-cursor-struct}}\label{\detokenize{appdev/refs/types/krb5_cccol_cursor::doc}}\index{krb5\_cccol\_cursor (C type)@\spxentry{krb5\_cccol\_cursor}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_cccol_cursor:c.krb5_cccol_cursor}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_cccol\_cursor}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Cursor for iterating over all ccaches. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_cccol_cursor:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_cccol\_cursor* krb5\_cccol\_cursor - -\sphinxstepscope - - -\subsubsection{krb5\_init\_creds\_context} -\label{\detokenize{appdev/refs/types/krb5_init_creds_context:krb5-init-creds-context}}\label{\detokenize{appdev/refs/types/krb5_init_creds_context:krb5-init-creds-context-struct}}\label{\detokenize{appdev/refs/types/krb5_init_creds_context::doc}}\index{krb5\_init\_creds\_context (C type)@\spxentry{krb5\_init\_creds\_context}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_init_creds_context:c.krb5_init_creds_context}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_init\_creds\_context}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_init_creds_context:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_init\_creds\_context* krb5\_init\_creds\_context - -\sphinxstepscope - - -\subsubsection{krb5\_key} -\label{\detokenize{appdev/refs/types/krb5_key:krb5-key}}\label{\detokenize{appdev/refs/types/krb5_key:krb5-key-struct}}\label{\detokenize{appdev/refs/types/krb5_key::doc}}\index{krb5\_key (C type)@\spxentry{krb5\_key}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_key:c.krb5_key}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_key}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Opaque identifier for a key. - -\sphinxAtStartPar -Use with the krb5\_k APIs for better performance for repeated operations with the same key and usage. Key identifiers must not be used simultaneously within multiple threads, as they may contain mutable internal state and are not mutex\sphinxhyphen{}protected. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_key:declaration}} -\sphinxAtStartPar -typedef struct krb5\_key\_st* krb5\_key - -\sphinxstepscope - - -\subsubsection{krb5\_keytab} -\label{\detokenize{appdev/refs/types/krb5_keytab:krb5-keytab}}\label{\detokenize{appdev/refs/types/krb5_keytab:krb5-keytab-struct}}\label{\detokenize{appdev/refs/types/krb5_keytab::doc}}\index{krb5\_keytab (C type)@\spxentry{krb5\_keytab}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_keytab:c.krb5_keytab}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_keytab}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_keytab:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_kt* krb5\_keytab - -\sphinxstepscope - - -\subsubsection{krb5\_pac} -\label{\detokenize{appdev/refs/types/krb5_pac:krb5-pac}}\label{\detokenize{appdev/refs/types/krb5_pac:krb5-pac-struct}}\label{\detokenize{appdev/refs/types/krb5_pac::doc}}\index{krb5\_pac (C type)@\spxentry{krb5\_pac}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_pac:c.krb5_pac}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_pac}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -PAC data structure to convey authorization information. - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_pac:declaration}} -\sphinxAtStartPar -typedef struct krb5\_pac\_data* krb5\_pac - -\sphinxstepscope - - -\subsubsection{krb5\_rcache} -\label{\detokenize{appdev/refs/types/krb5_rcache:krb5-rcache}}\label{\detokenize{appdev/refs/types/krb5_rcache:krb5-rcache-struct}}\label{\detokenize{appdev/refs/types/krb5_rcache::doc}}\index{krb5\_rcache (C type)@\spxentry{krb5\_rcache}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_rcache:c.krb5_rcache}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_rcache}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_rcache:declaration}} -\sphinxAtStartPar -typedef struct krb5\_rc\_st* krb5\_rcache - -\sphinxstepscope - - -\subsubsection{krb5\_tkt\_creds\_context} -\label{\detokenize{appdev/refs/types/krb5_tkt_creds_context:krb5-tkt-creds-context}}\label{\detokenize{appdev/refs/types/krb5_tkt_creds_context:krb5-tkt-creds-context-struct}}\label{\detokenize{appdev/refs/types/krb5_tkt_creds_context::doc}}\index{krb5\_tkt\_creds\_context (C type)@\spxentry{krb5\_tkt\_creds\_context}\spxextra{C type}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/types/krb5_tkt_creds_context:c.krb5_tkt_creds_context}} -\pysigstartsignatures -\pysigstartmultiline -\pysigline{\DUrole{k}{type}\DUrole{w}{ }\sphinxbfcode{\sphinxupquote{\DUrole{n}{krb5\_tkt\_creds\_context}}}} -\pysigstopmultiline -\pysigstopsignatures -\end{fulllineitems} - - - -\paragraph{Declaration} -\label{\detokenize{appdev/refs/types/krb5_tkt_creds_context:declaration}} -\sphinxAtStartPar -typedef struct \_krb5\_tkt\_creds\_context* krb5\_tkt\_creds\_context - -\sphinxstepscope - - -\section{krb5 simple macros} -\label{\detokenize{appdev/refs/macros/index:krb5-simple-macros}}\label{\detokenize{appdev/refs/macros/index::doc}} - -\subsection{Public} -\label{\detokenize{appdev/refs/macros/index:public}} -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_ADDRPORT} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_ADDRPORT:addrtype-addrport}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_ADDRPORT:addrtype-addrport-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_ADDRPORT::doc}}\index{ADDRTYPE\_ADDRPORT (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_ADDRPORT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_ADDRPORT:ADDRTYPE_ADDRPORT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_ADDRPORT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_ADDRPORT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0100}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_CHAOS} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_CHAOS:addrtype-chaos}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_CHAOS:addrtype-chaos-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_CHAOS::doc}}\index{ADDRTYPE\_CHAOS (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_CHAOS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_CHAOS:ADDRTYPE_CHAOS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_CHAOS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_CHAOS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0005}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_DIRECTIONAL} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_DIRECTIONAL:addrtype-directional}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_DIRECTIONAL:addrtype-directional-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_DIRECTIONAL::doc}}\index{ADDRTYPE\_DIRECTIONAL (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_DIRECTIONAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_DIRECTIONAL:ADDRTYPE_DIRECTIONAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_DIRECTIONAL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_DIRECTIONAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0003}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_DDP} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_DDP:addrtype-ddp}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_DDP:addrtype-ddp-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_DDP::doc}}\index{ADDRTYPE\_DDP (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_DDP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_DDP:ADDRTYPE_DDP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_DDP}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_DDP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0010}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_INET} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_INET:addrtype-inet}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_INET:addrtype-inet-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_INET::doc}}\index{ADDRTYPE\_INET (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_INET}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_INET:ADDRTYPE_INET}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_INET}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_INET}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_INET6} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_INET6:addrtype-inet6}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_INET6:addrtype-inet6-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_INET6::doc}}\index{ADDRTYPE\_INET6 (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_INET6}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_INET6:ADDRTYPE_INET6}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_INET6}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_INET6}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0018}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_IPPORT} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_IPPORT:addrtype-ipport}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_IPPORT:addrtype-ipport-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_IPPORT::doc}}\index{ADDRTYPE\_IPPORT (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_IPPORT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_IPPORT:ADDRTYPE_IPPORT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_IPPORT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_IPPORT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0101}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_ISO} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_ISO:addrtype-iso}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_ISO:addrtype-iso-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_ISO::doc}}\index{ADDRTYPE\_ISO (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_ISO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_ISO:ADDRTYPE_ISO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_ISO}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_ISO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0007}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_IS\_LOCAL} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_IS_LOCAL:addrtype-is-local}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_IS_LOCAL:addrtype-is-local-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_IS_LOCAL::doc}}\index{ADDRTYPE\_IS\_LOCAL (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_IS\_LOCAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_IS_LOCAL:ADDRTYPE_IS_LOCAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_IS\_LOCAL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_IS\_LOCAL (addrtype)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(addrtype \& 0x8000)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_NETBIOS} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_NETBIOS:addrtype-netbios}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_NETBIOS:addrtype-netbios-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_NETBIOS::doc}}\index{ADDRTYPE\_NETBIOS (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_NETBIOS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_NETBIOS:ADDRTYPE_NETBIOS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_NETBIOS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_NETBIOS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0014}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_XNS} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_XNS:addrtype-xns}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_XNS:addrtype-xns-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_XNS::doc}}\index{ADDRTYPE\_XNS (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_XNS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_XNS:ADDRTYPE_XNS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_XNS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_XNS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0006}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ADDRTYPE\_UNIXSOCK} -\label{\detokenize{appdev/refs/macros/ADDRTYPE_UNIXSOCK:addrtype-unixsock}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_UNIXSOCK:addrtype-unixsock-data}}\label{\detokenize{appdev/refs/macros/ADDRTYPE_UNIXSOCK::doc}}\index{ADDRTYPE\_UNIXSOCK (built\sphinxhyphen{}in variable)@\spxentry{ADDRTYPE\_UNIXSOCK}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ADDRTYPE_UNIXSOCK:ADDRTYPE_UNIXSOCK}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ADDRTYPE\_UNIXSOCK}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ADDRTYPE\_UNIXSOCK}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(0x8000 | 0x0001)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AD\_TYPE\_EXTERNAL} -\label{\detokenize{appdev/refs/macros/AD_TYPE_EXTERNAL:ad-type-external}}\label{\detokenize{appdev/refs/macros/AD_TYPE_EXTERNAL:ad-type-external-data}}\label{\detokenize{appdev/refs/macros/AD_TYPE_EXTERNAL::doc}}\index{AD\_TYPE\_EXTERNAL (built\sphinxhyphen{}in variable)@\spxentry{AD\_TYPE\_EXTERNAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AD_TYPE_EXTERNAL:AD_TYPE_EXTERNAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AD\_TYPE\_EXTERNAL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AD\_TYPE\_EXTERNAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x4000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AD\_TYPE\_FIELD\_TYPE\_MASK} -\label{\detokenize{appdev/refs/macros/AD_TYPE_FIELD_TYPE_MASK:ad-type-field-type-mask}}\label{\detokenize{appdev/refs/macros/AD_TYPE_FIELD_TYPE_MASK:ad-type-field-type-mask-data}}\label{\detokenize{appdev/refs/macros/AD_TYPE_FIELD_TYPE_MASK::doc}}\index{AD\_TYPE\_FIELD\_TYPE\_MASK (built\sphinxhyphen{}in variable)@\spxentry{AD\_TYPE\_FIELD\_TYPE\_MASK}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AD_TYPE_FIELD_TYPE_MASK:AD_TYPE_FIELD_TYPE_MASK}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AD\_TYPE\_FIELD\_TYPE\_MASK}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AD\_TYPE\_FIELD\_TYPE\_MASK}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x1fff}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AD\_TYPE\_REGISTERED} -\label{\detokenize{appdev/refs/macros/AD_TYPE_REGISTERED:ad-type-registered}}\label{\detokenize{appdev/refs/macros/AD_TYPE_REGISTERED:ad-type-registered-data}}\label{\detokenize{appdev/refs/macros/AD_TYPE_REGISTERED::doc}}\index{AD\_TYPE\_REGISTERED (built\sphinxhyphen{}in variable)@\spxentry{AD\_TYPE\_REGISTERED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AD_TYPE_REGISTERED:AD_TYPE_REGISTERED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AD\_TYPE\_REGISTERED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AD\_TYPE\_REGISTERED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x2000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AD\_TYPE\_RESERVED} -\label{\detokenize{appdev/refs/macros/AD_TYPE_RESERVED:ad-type-reserved}}\label{\detokenize{appdev/refs/macros/AD_TYPE_RESERVED:ad-type-reserved-data}}\label{\detokenize{appdev/refs/macros/AD_TYPE_RESERVED::doc}}\index{AD\_TYPE\_RESERVED (built\sphinxhyphen{}in variable)@\spxentry{AD\_TYPE\_RESERVED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AD_TYPE_RESERVED:AD_TYPE_RESERVED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AD\_TYPE\_RESERVED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AD\_TYPE\_RESERVED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x8000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AP\_OPTS\_ETYPE\_NEGOTIATION} -\label{\detokenize{appdev/refs/macros/AP_OPTS_ETYPE_NEGOTIATION:ap-opts-etype-negotiation}}\label{\detokenize{appdev/refs/macros/AP_OPTS_ETYPE_NEGOTIATION:ap-opts-etype-negotiation-data}}\label{\detokenize{appdev/refs/macros/AP_OPTS_ETYPE_NEGOTIATION::doc}}\index{AP\_OPTS\_ETYPE\_NEGOTIATION (built\sphinxhyphen{}in variable)@\spxentry{AP\_OPTS\_ETYPE\_NEGOTIATION}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AP_OPTS_ETYPE_NEGOTIATION:AP_OPTS_ETYPE_NEGOTIATION}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AP\_OPTS\_ETYPE\_NEGOTIATION}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AP\_OPTS\_ETYPE\_NEGOTIATION}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AP\_OPTS\_CBT\_FLAG} -\label{\detokenize{appdev/refs/macros/AP_OPTS_CBT_FLAG:ap-opts-cbt-flag}}\label{\detokenize{appdev/refs/macros/AP_OPTS_CBT_FLAG:ap-opts-cbt-flag-data}}\label{\detokenize{appdev/refs/macros/AP_OPTS_CBT_FLAG::doc}}\index{AP\_OPTS\_CBT\_FLAG (built\sphinxhyphen{}in variable)@\spxentry{AP\_OPTS\_CBT\_FLAG}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AP_OPTS_CBT_FLAG:AP_OPTS_CBT_FLAG}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AP\_OPTS\_CBT\_FLAG}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AP\_OPTS\_CBT\_FLAG}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000004 /* include KERB\_AP\_OPTIONS\_CBT */}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AP\_OPTS\_MUTUAL\_REQUIRED} -\label{\detokenize{appdev/refs/macros/AP_OPTS_MUTUAL_REQUIRED:ap-opts-mutual-required}}\label{\detokenize{appdev/refs/macros/AP_OPTS_MUTUAL_REQUIRED:ap-opts-mutual-required-data}}\label{\detokenize{appdev/refs/macros/AP_OPTS_MUTUAL_REQUIRED::doc}}\index{AP\_OPTS\_MUTUAL\_REQUIRED (built\sphinxhyphen{}in variable)@\spxentry{AP\_OPTS\_MUTUAL\_REQUIRED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AP_OPTS_MUTUAL_REQUIRED:AP_OPTS_MUTUAL_REQUIRED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AP\_OPTS\_MUTUAL\_REQUIRED}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Perform a mutual authentication exchange. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AP\_OPTS\_MUTUAL\_REQUIRED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x20000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AP\_OPTS\_RESERVED} -\label{\detokenize{appdev/refs/macros/AP_OPTS_RESERVED:ap-opts-reserved}}\label{\detokenize{appdev/refs/macros/AP_OPTS_RESERVED:ap-opts-reserved-data}}\label{\detokenize{appdev/refs/macros/AP_OPTS_RESERVED::doc}}\index{AP\_OPTS\_RESERVED (built\sphinxhyphen{}in variable)@\spxentry{AP\_OPTS\_RESERVED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AP_OPTS_RESERVED:AP_OPTS_RESERVED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AP\_OPTS\_RESERVED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AP\_OPTS\_RESERVED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x80000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AP\_OPTS\_USE\_SESSION\_KEY} -\label{\detokenize{appdev/refs/macros/AP_OPTS_USE_SESSION_KEY:ap-opts-use-session-key}}\label{\detokenize{appdev/refs/macros/AP_OPTS_USE_SESSION_KEY:ap-opts-use-session-key-data}}\label{\detokenize{appdev/refs/macros/AP_OPTS_USE_SESSION_KEY::doc}}\index{AP\_OPTS\_USE\_SESSION\_KEY (built\sphinxhyphen{}in variable)@\spxentry{AP\_OPTS\_USE\_SESSION\_KEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AP_OPTS_USE_SESSION_KEY:AP_OPTS_USE_SESSION_KEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AP\_OPTS\_USE\_SESSION\_KEY}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Use session key. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AP\_OPTS\_USE\_SESSION\_KEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x40000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AP\_OPTS\_USE\_SUBKEY} -\label{\detokenize{appdev/refs/macros/AP_OPTS_USE_SUBKEY:ap-opts-use-subkey}}\label{\detokenize{appdev/refs/macros/AP_OPTS_USE_SUBKEY:ap-opts-use-subkey-data}}\label{\detokenize{appdev/refs/macros/AP_OPTS_USE_SUBKEY::doc}}\index{AP\_OPTS\_USE\_SUBKEY (built\sphinxhyphen{}in variable)@\spxentry{AP\_OPTS\_USE\_SUBKEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AP_OPTS_USE_SUBKEY:AP_OPTS_USE_SUBKEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AP\_OPTS\_USE\_SUBKEY}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Generate a subsession key from the current session key obtained from the credentials. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AP\_OPTS\_USE\_SUBKEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{AP\_OPTS\_WIRE\_MASK} -\label{\detokenize{appdev/refs/macros/AP_OPTS_WIRE_MASK:ap-opts-wire-mask}}\label{\detokenize{appdev/refs/macros/AP_OPTS_WIRE_MASK:ap-opts-wire-mask-data}}\label{\detokenize{appdev/refs/macros/AP_OPTS_WIRE_MASK::doc}}\index{AP\_OPTS\_WIRE\_MASK (built\sphinxhyphen{}in variable)@\spxentry{AP\_OPTS\_WIRE\_MASK}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/AP_OPTS_WIRE_MASK:AP_OPTS_WIRE_MASK}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{AP\_OPTS\_WIRE\_MASK}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{AP\_OPTS\_WIRE\_MASK}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0xfffffff0}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_CMAC\_CAMELLIA128} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA128:cksumtype-cmac-camellia128}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA128:cksumtype-cmac-camellia128-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA128::doc}}\index{CKSUMTYPE\_CMAC\_CAMELLIA128 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_CMAC\_CAMELLIA128}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA128:CKSUMTYPE_CMAC_CAMELLIA128}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_CMAC\_CAMELLIA128}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6803. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_CMAC\_CAMELLIA128}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0011}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_CMAC\_CAMELLIA256} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA256:cksumtype-cmac-camellia256}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA256:cksumtype-cmac-camellia256-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA256::doc}}\index{CKSUMTYPE\_CMAC\_CAMELLIA256 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_CMAC\_CAMELLIA256}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CMAC_CAMELLIA256:CKSUMTYPE_CMAC_CAMELLIA256}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_CMAC\_CAMELLIA256}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6803. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_CMAC\_CAMELLIA256}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0012}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_CRC32} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CRC32:cksumtype-crc32}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CRC32:cksumtype-crc32-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CRC32::doc}}\index{CKSUMTYPE\_CRC32 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_CRC32}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_CRC32:CKSUMTYPE_CRC32}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_CRC32}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_CRC32}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_DESCBC} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_DESCBC:cksumtype-descbc}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_DESCBC:cksumtype-descbc-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_DESCBC::doc}}\index{CKSUMTYPE\_DESCBC (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_DESCBC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_DESCBC:CKSUMTYPE_DESCBC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_DESCBC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_DESCBC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0004}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_HMAC\_MD5\_ARCFOUR} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_MD5_ARCFOUR:cksumtype-hmac-md5-arcfour}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_MD5_ARCFOUR:cksumtype-hmac-md5-arcfour-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_MD5_ARCFOUR::doc}}\index{CKSUMTYPE\_HMAC\_MD5\_ARCFOUR (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_HMAC\_MD5\_ARCFOUR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_MD5_ARCFOUR:CKSUMTYPE_HMAC_MD5_ARCFOUR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_HMAC\_MD5\_ARCFOUR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 4757. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_HMAC\_MD5\_ARCFOUR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{\sphinxhyphen{}138}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_HMAC\_SHA1\_96\_AES128} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES128:cksumtype-hmac-sha1-96-aes128}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES128:cksumtype-hmac-sha1-96-aes128-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES128::doc}}\index{CKSUMTYPE\_HMAC\_SHA1\_96\_AES128 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_HMAC\_SHA1\_96\_AES128}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES128:CKSUMTYPE_HMAC_SHA1_96_AES128}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA1\_96\_AES128}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 3962. - -\sphinxAtStartPar -Used with ENCTYPE\_AES128\_CTS\_HMAC\_SHA1\_96 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA1\_96\_AES128}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x000f}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_HMAC\_SHA1\_96\_AES256} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES256:cksumtype-hmac-sha1-96-aes256}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES256:cksumtype-hmac-sha1-96-aes256-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES256::doc}}\index{CKSUMTYPE\_HMAC\_SHA1\_96\_AES256 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_HMAC\_SHA1\_96\_AES256}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_96_AES256:CKSUMTYPE_HMAC_SHA1_96_AES256}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA1\_96\_AES256}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 3962. - -\sphinxAtStartPar -Used with ENCTYPE\_AES256\_CTS\_HMAC\_SHA1\_96 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA1\_96\_AES256}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0010}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_HMAC\_SHA256\_128\_AES128} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA256_128_AES128:cksumtype-hmac-sha256-128-aes128}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA256_128_AES128:cksumtype-hmac-sha256-128-aes128-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA256_128_AES128::doc}}\index{CKSUMTYPE\_HMAC\_SHA256\_128\_AES128 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_HMAC\_SHA256\_128\_AES128}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA256_128_AES128:CKSUMTYPE_HMAC_SHA256_128_AES128}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA256\_128\_AES128}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 8009. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA256\_128\_AES128}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0013}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_HMAC\_SHA384\_192\_AES256} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA384_192_AES256:cksumtype-hmac-sha384-192-aes256}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA384_192_AES256:cksumtype-hmac-sha384-192-aes256-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA384_192_AES256::doc}}\index{CKSUMTYPE\_HMAC\_SHA384\_192\_AES256 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_HMAC\_SHA384\_192\_AES256}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA384_192_AES256:CKSUMTYPE_HMAC_SHA384_192_AES256}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA384\_192\_AES256}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 8009. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA384\_192\_AES256}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0014}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_HMAC\_SHA1\_DES3} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_DES3:cksumtype-hmac-sha1-des3}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_DES3:cksumtype-hmac-sha1-des3-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_DES3::doc}}\index{CKSUMTYPE\_HMAC\_SHA1\_DES3 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_HMAC\_SHA1\_DES3}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_HMAC_SHA1_DES3:CKSUMTYPE_HMAC_SHA1_DES3}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA1\_DES3}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_HMAC\_SHA1\_DES3}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x000c}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_MD5\_HMAC\_ARCFOUR} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_MD5_HMAC_ARCFOUR:cksumtype-md5-hmac-arcfour}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_MD5_HMAC_ARCFOUR:cksumtype-md5-hmac-arcfour-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_MD5_HMAC_ARCFOUR::doc}}\index{CKSUMTYPE\_MD5\_HMAC\_ARCFOUR (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_MD5\_HMAC\_ARCFOUR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_MD5_HMAC_ARCFOUR:CKSUMTYPE_MD5_HMAC_ARCFOUR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_MD5\_HMAC\_ARCFOUR}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_MD5\_HMAC\_ARCFOUR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{\sphinxhyphen{}137 /* Microsoft netlogon */}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_NIST\_SHA} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_NIST_SHA:cksumtype-nist-sha}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_NIST_SHA:cksumtype-nist-sha-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_NIST_SHA::doc}}\index{CKSUMTYPE\_NIST\_SHA (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_NIST\_SHA}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_NIST_SHA:CKSUMTYPE_NIST_SHA}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_NIST\_SHA}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_NIST\_SHA}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0009}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_RSA\_MD4} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD4:cksumtype-rsa-md4}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD4:cksumtype-rsa-md4-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD4::doc}}\index{CKSUMTYPE\_RSA\_MD4 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_RSA\_MD4}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD4:CKSUMTYPE_RSA_MD4}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_RSA\_MD4}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_RSA\_MD4}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_RSA\_MD4\_DES} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD4_DES:cksumtype-rsa-md4-des}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD4_DES:cksumtype-rsa-md4-des-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD4_DES::doc}}\index{CKSUMTYPE\_RSA\_MD4\_DES (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_RSA\_MD4\_DES}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD4_DES:CKSUMTYPE_RSA_MD4_DES}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_RSA\_MD4\_DES}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_RSA\_MD4\_DES}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0003}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_RSA\_MD5} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD5:cksumtype-rsa-md5}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD5:cksumtype-rsa-md5-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD5::doc}}\index{CKSUMTYPE\_RSA\_MD5 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_RSA\_MD5}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD5:CKSUMTYPE_RSA_MD5}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_RSA\_MD5}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_RSA\_MD5}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0007}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_RSA\_MD5\_DES} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD5_DES:cksumtype-rsa-md5-des}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD5_DES:cksumtype-rsa-md5-des-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD5_DES::doc}}\index{CKSUMTYPE\_RSA\_MD5\_DES (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_RSA\_MD5\_DES}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_RSA_MD5_DES:CKSUMTYPE_RSA_MD5_DES}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_RSA\_MD5\_DES}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_RSA\_MD5\_DES}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0008}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{CKSUMTYPE\_SHA1} -\label{\detokenize{appdev/refs/macros/CKSUMTYPE_SHA1:cksumtype-sha1}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_SHA1:cksumtype-sha1-data}}\label{\detokenize{appdev/refs/macros/CKSUMTYPE_SHA1::doc}}\index{CKSUMTYPE\_SHA1 (built\sphinxhyphen{}in variable)@\spxentry{CKSUMTYPE\_SHA1}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/CKSUMTYPE_SHA1:CKSUMTYPE_SHA1}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{CKSUMTYPE\_SHA1}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 3961. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{CKSUMTYPE\_SHA1}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x000e}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_AES128\_CTS\_HMAC\_SHA1\_96} -\label{\detokenize{appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA1_96:enctype-aes128-cts-hmac-sha1-96}}\label{\detokenize{appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA1_96:enctype-aes128-cts-hmac-sha1-96-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA1_96::doc}}\index{ENCTYPE\_AES128\_CTS\_HMAC\_SHA1\_96 (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_AES128\_CTS\_HMAC\_SHA1\_96}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA1_96:ENCTYPE_AES128_CTS_HMAC_SHA1_96}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_AES128\_CTS\_HMAC\_SHA1\_96}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 3962. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_AES128\_CTS\_HMAC\_SHA1\_96}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0011}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_AES128\_CTS\_HMAC\_SHA256\_128} -\label{\detokenize{appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA256_128:enctype-aes128-cts-hmac-sha256-128}}\label{\detokenize{appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA256_128:enctype-aes128-cts-hmac-sha256-128-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA256_128::doc}}\index{ENCTYPE\_AES128\_CTS\_HMAC\_SHA256\_128 (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_AES128\_CTS\_HMAC\_SHA256\_128}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_AES128_CTS_HMAC_SHA256_128:ENCTYPE_AES128_CTS_HMAC_SHA256_128}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_AES128\_CTS\_HMAC\_SHA256\_128}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 8009. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_AES128\_CTS\_HMAC\_SHA256\_128}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0013}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_AES256\_CTS\_HMAC\_SHA1\_96} -\label{\detokenize{appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA1_96:enctype-aes256-cts-hmac-sha1-96}}\label{\detokenize{appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA1_96:enctype-aes256-cts-hmac-sha1-96-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA1_96::doc}}\index{ENCTYPE\_AES256\_CTS\_HMAC\_SHA1\_96 (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_AES256\_CTS\_HMAC\_SHA1\_96}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA1_96:ENCTYPE_AES256_CTS_HMAC_SHA1_96}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_AES256\_CTS\_HMAC\_SHA1\_96}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 3962. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_AES256\_CTS\_HMAC\_SHA1\_96}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0012}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_AES256\_CTS\_HMAC\_SHA384\_192} -\label{\detokenize{appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA384_192:enctype-aes256-cts-hmac-sha384-192}}\label{\detokenize{appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA384_192:enctype-aes256-cts-hmac-sha384-192-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA384_192::doc}}\index{ENCTYPE\_AES256\_CTS\_HMAC\_SHA384\_192 (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_AES256\_CTS\_HMAC\_SHA384\_192}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_AES256_CTS_HMAC_SHA384_192:ENCTYPE_AES256_CTS_HMAC_SHA384_192}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_AES256\_CTS\_HMAC\_SHA384\_192}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 8009. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_AES256\_CTS\_HMAC\_SHA384\_192}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0014}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_ARCFOUR\_HMAC} -\label{\detokenize{appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC:enctype-arcfour-hmac}}\label{\detokenize{appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC:enctype-arcfour-hmac-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC::doc}}\index{ENCTYPE\_ARCFOUR\_HMAC (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_ARCFOUR\_HMAC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC:ENCTYPE_ARCFOUR_HMAC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_ARCFOUR\_HMAC}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 4757. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_ARCFOUR\_HMAC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0017}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_ARCFOUR\_HMAC\_EXP} -\label{\detokenize{appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC_EXP:enctype-arcfour-hmac-exp}}\label{\detokenize{appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC_EXP:enctype-arcfour-hmac-exp-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC_EXP::doc}}\index{ENCTYPE\_ARCFOUR\_HMAC\_EXP (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_ARCFOUR\_HMAC\_EXP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_ARCFOUR_HMAC_EXP:ENCTYPE_ARCFOUR_HMAC_EXP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_ARCFOUR\_HMAC\_EXP}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 4757. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_ARCFOUR\_HMAC\_EXP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0018}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_CAMELLIA128\_CTS\_CMAC} -\label{\detokenize{appdev/refs/macros/ENCTYPE_CAMELLIA128_CTS_CMAC:enctype-camellia128-cts-cmac}}\label{\detokenize{appdev/refs/macros/ENCTYPE_CAMELLIA128_CTS_CMAC:enctype-camellia128-cts-cmac-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_CAMELLIA128_CTS_CMAC::doc}}\index{ENCTYPE\_CAMELLIA128\_CTS\_CMAC (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_CAMELLIA128\_CTS\_CMAC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_CAMELLIA128_CTS_CMAC:ENCTYPE_CAMELLIA128_CTS_CMAC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_CAMELLIA128\_CTS\_CMAC}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6803. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_CAMELLIA128\_CTS\_CMAC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0019}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_CAMELLIA256\_CTS\_CMAC} -\label{\detokenize{appdev/refs/macros/ENCTYPE_CAMELLIA256_CTS_CMAC:enctype-camellia256-cts-cmac}}\label{\detokenize{appdev/refs/macros/ENCTYPE_CAMELLIA256_CTS_CMAC:enctype-camellia256-cts-cmac-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_CAMELLIA256_CTS_CMAC::doc}}\index{ENCTYPE\_CAMELLIA256\_CTS\_CMAC (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_CAMELLIA256\_CTS\_CMAC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_CAMELLIA256_CTS_CMAC:ENCTYPE_CAMELLIA256_CTS_CMAC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_CAMELLIA256\_CTS\_CMAC}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6803. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_CAMELLIA256\_CTS\_CMAC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x001a}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DES3\_CBC\_ENV} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_ENV:enctype-des3-cbc-env}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_ENV:enctype-des3-cbc-env-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_ENV::doc}}\index{ENCTYPE\_DES3\_CBC\_ENV (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DES3\_CBC\_ENV}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_ENV:ENCTYPE_DES3_CBC_ENV}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DES3\_CBC\_ENV}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -DES\sphinxhyphen{}3 cbc mode, CMS enveloped data. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DES3\_CBC\_ENV}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x000f}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DES3\_CBC\_RAW} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_RAW:enctype-des3-cbc-raw}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_RAW:enctype-des3-cbc-raw-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_RAW::doc}}\index{ENCTYPE\_DES3\_CBC\_RAW (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DES3\_CBC\_RAW}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_RAW:ENCTYPE_DES3_CBC_RAW}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DES3\_CBC\_RAW}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DES3\_CBC\_RAW}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0006}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DES3\_CBC\_SHA} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_SHA:enctype-des3-cbc-sha}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_SHA:enctype-des3-cbc-sha-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_SHA::doc}}\index{ENCTYPE\_DES3\_CBC\_SHA (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DES3\_CBC\_SHA}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_SHA:ENCTYPE_DES3_CBC_SHA}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DES3\_CBC\_SHA}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DES3\_CBC\_SHA}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0005}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DES3\_CBC\_SHA1} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_SHA1:enctype-des3-cbc-sha1}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_SHA1:enctype-des3-cbc-sha1-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_SHA1::doc}}\index{ENCTYPE\_DES3\_CBC\_SHA1 (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DES3\_CBC\_SHA1}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DES3_CBC_SHA1:ENCTYPE_DES3_CBC_SHA1}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DES3\_CBC\_SHA1}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DES3\_CBC\_SHA1}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0010}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DES\_CBC\_CRC} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_CRC:enctype-des-cbc-crc}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_CRC:enctype-des-cbc-crc-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_CRC::doc}}\index{ENCTYPE\_DES\_CBC\_CRC (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DES\_CBC\_CRC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_CRC:ENCTYPE_DES_CBC_CRC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DES\_CBC\_CRC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DES\_CBC\_CRC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DES\_CBC\_MD4} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_MD4:enctype-des-cbc-md4}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_MD4:enctype-des-cbc-md4-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_MD4::doc}}\index{ENCTYPE\_DES\_CBC\_MD4 (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DES\_CBC\_MD4}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_MD4:ENCTYPE_DES_CBC_MD4}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DES\_CBC\_MD4}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DES\_CBC\_MD4}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DES\_CBC\_MD5} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_MD5:enctype-des-cbc-md5}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_MD5:enctype-des-cbc-md5-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_MD5::doc}}\index{ENCTYPE\_DES\_CBC\_MD5 (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DES\_CBC\_MD5}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_MD5:ENCTYPE_DES_CBC_MD5}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DES\_CBC\_MD5}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DES\_CBC\_MD5}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0003}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DES\_CBC\_RAW} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_RAW:enctype-des-cbc-raw}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_RAW:enctype-des-cbc-raw-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_RAW::doc}}\index{ENCTYPE\_DES\_CBC\_RAW (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DES\_CBC\_RAW}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_CBC_RAW:ENCTYPE_DES_CBC_RAW}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DES\_CBC\_RAW}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DES\_CBC\_RAW}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0004}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DES\_HMAC\_SHA1} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_HMAC_SHA1:enctype-des-hmac-sha1}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_HMAC_SHA1:enctype-des-hmac-sha1-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_HMAC_SHA1::doc}}\index{ENCTYPE\_DES\_HMAC\_SHA1 (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DES\_HMAC\_SHA1}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DES_HMAC_SHA1:ENCTYPE_DES_HMAC_SHA1}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DES\_HMAC\_SHA1}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DES\_HMAC\_SHA1}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0008}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_DSA\_SHA1\_CMS} -\label{\detokenize{appdev/refs/macros/ENCTYPE_DSA_SHA1_CMS:enctype-dsa-sha1-cms}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DSA_SHA1_CMS:enctype-dsa-sha1-cms-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_DSA_SHA1_CMS::doc}}\index{ENCTYPE\_DSA\_SHA1\_CMS (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_DSA\_SHA1\_CMS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_DSA_SHA1_CMS:ENCTYPE_DSA_SHA1_CMS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_DSA\_SHA1\_CMS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -DSA with SHA1, CMS signature. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_DSA\_SHA1\_CMS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0009}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_MD5\_RSA\_CMS} -\label{\detokenize{appdev/refs/macros/ENCTYPE_MD5_RSA_CMS:enctype-md5-rsa-cms}}\label{\detokenize{appdev/refs/macros/ENCTYPE_MD5_RSA_CMS:enctype-md5-rsa-cms-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_MD5_RSA_CMS::doc}}\index{ENCTYPE\_MD5\_RSA\_CMS (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_MD5\_RSA\_CMS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_MD5_RSA_CMS:ENCTYPE_MD5_RSA_CMS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_MD5\_RSA\_CMS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -MD5 with RSA, CMS signature. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_MD5\_RSA\_CMS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x000a}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_NULL} -\label{\detokenize{appdev/refs/macros/ENCTYPE_NULL:enctype-null}}\label{\detokenize{appdev/refs/macros/ENCTYPE_NULL:enctype-null-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_NULL::doc}}\index{ENCTYPE\_NULL (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_NULL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_NULL:ENCTYPE_NULL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_NULL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_NULL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_RC2\_CBC\_ENV} -\label{\detokenize{appdev/refs/macros/ENCTYPE_RC2_CBC_ENV:enctype-rc2-cbc-env}}\label{\detokenize{appdev/refs/macros/ENCTYPE_RC2_CBC_ENV:enctype-rc2-cbc-env-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_RC2_CBC_ENV::doc}}\index{ENCTYPE\_RC2\_CBC\_ENV (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_RC2\_CBC\_ENV}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_RC2_CBC_ENV:ENCTYPE_RC2_CBC_ENV}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_RC2\_CBC\_ENV}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RC2 cbc mode, CMS enveloped data. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_RC2\_CBC\_ENV}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x000c}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_RSA\_ENV} -\label{\detokenize{appdev/refs/macros/ENCTYPE_RSA_ENV:enctype-rsa-env}}\label{\detokenize{appdev/refs/macros/ENCTYPE_RSA_ENV:enctype-rsa-env-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_RSA_ENV::doc}}\index{ENCTYPE\_RSA\_ENV (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_RSA\_ENV}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_RSA_ENV:ENCTYPE_RSA_ENV}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_RSA\_ENV}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RSA encryption, CMS enveloped data. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_RSA\_ENV}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x000d}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_RSA\_ES\_OAEP\_ENV} -\label{\detokenize{appdev/refs/macros/ENCTYPE_RSA_ES_OAEP_ENV:enctype-rsa-es-oaep-env}}\label{\detokenize{appdev/refs/macros/ENCTYPE_RSA_ES_OAEP_ENV:enctype-rsa-es-oaep-env-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_RSA_ES_OAEP_ENV::doc}}\index{ENCTYPE\_RSA\_ES\_OAEP\_ENV (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_RSA\_ES\_OAEP\_ENV}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_RSA_ES_OAEP_ENV:ENCTYPE_RSA_ES_OAEP_ENV}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_RSA\_ES\_OAEP\_ENV}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RSA w/OEAP encryption, CMS enveloped data. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_RSA\_ES\_OAEP\_ENV}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x000e}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_SHA1\_RSA\_CMS} -\label{\detokenize{appdev/refs/macros/ENCTYPE_SHA1_RSA_CMS:enctype-sha1-rsa-cms}}\label{\detokenize{appdev/refs/macros/ENCTYPE_SHA1_RSA_CMS:enctype-sha1-rsa-cms-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_SHA1_RSA_CMS::doc}}\index{ENCTYPE\_SHA1\_RSA\_CMS (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_SHA1\_RSA\_CMS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_SHA1_RSA_CMS:ENCTYPE_SHA1_RSA_CMS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_SHA1\_RSA\_CMS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -SHA1 with RSA, CMS signature. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_SHA1\_RSA\_CMS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x000b}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{ENCTYPE\_UNKNOWN} -\label{\detokenize{appdev/refs/macros/ENCTYPE_UNKNOWN:enctype-unknown}}\label{\detokenize{appdev/refs/macros/ENCTYPE_UNKNOWN:enctype-unknown-data}}\label{\detokenize{appdev/refs/macros/ENCTYPE_UNKNOWN::doc}}\index{ENCTYPE\_UNKNOWN (built\sphinxhyphen{}in variable)@\spxentry{ENCTYPE\_UNKNOWN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/ENCTYPE_UNKNOWN:ENCTYPE_UNKNOWN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{ENCTYPE\_UNKNOWN}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{ENCTYPE\_UNKNOWN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x01ff}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_ALLOW\_POSTDATE} -\label{\detokenize{appdev/refs/macros/KDC_OPT_ALLOW_POSTDATE:kdc-opt-allow-postdate}}\label{\detokenize{appdev/refs/macros/KDC_OPT_ALLOW_POSTDATE:kdc-opt-allow-postdate-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_ALLOW_POSTDATE::doc}}\index{KDC\_OPT\_ALLOW\_POSTDATE (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_ALLOW\_POSTDATE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_ALLOW_POSTDATE:KDC_OPT_ALLOW_POSTDATE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_ALLOW\_POSTDATE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_ALLOW\_POSTDATE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x04000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_CANONICALIZE} -\label{\detokenize{appdev/refs/macros/KDC_OPT_CANONICALIZE:kdc-opt-canonicalize}}\label{\detokenize{appdev/refs/macros/KDC_OPT_CANONICALIZE:kdc-opt-canonicalize-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_CANONICALIZE::doc}}\index{KDC\_OPT\_CANONICALIZE (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_CANONICALIZE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_CANONICALIZE:KDC_OPT_CANONICALIZE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_CANONICALIZE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_CANONICALIZE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00010000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_CNAME\_IN\_ADDL\_TKT} -\label{\detokenize{appdev/refs/macros/KDC_OPT_CNAME_IN_ADDL_TKT:kdc-opt-cname-in-addl-tkt}}\label{\detokenize{appdev/refs/macros/KDC_OPT_CNAME_IN_ADDL_TKT:kdc-opt-cname-in-addl-tkt-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_CNAME_IN_ADDL_TKT::doc}}\index{KDC\_OPT\_CNAME\_IN\_ADDL\_TKT (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_CNAME\_IN\_ADDL\_TKT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_CNAME_IN_ADDL_TKT:KDC_OPT_CNAME_IN_ADDL_TKT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_CNAME\_IN\_ADDL\_TKT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_CNAME\_IN\_ADDL\_TKT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00020000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_DISABLE\_TRANSITED\_CHECK} -\label{\detokenize{appdev/refs/macros/KDC_OPT_DISABLE_TRANSITED_CHECK:kdc-opt-disable-transited-check}}\label{\detokenize{appdev/refs/macros/KDC_OPT_DISABLE_TRANSITED_CHECK:kdc-opt-disable-transited-check-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_DISABLE_TRANSITED_CHECK::doc}}\index{KDC\_OPT\_DISABLE\_TRANSITED\_CHECK (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_DISABLE\_TRANSITED\_CHECK}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_DISABLE_TRANSITED_CHECK:KDC_OPT_DISABLE_TRANSITED_CHECK}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_DISABLE\_TRANSITED\_CHECK}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_DISABLE\_TRANSITED\_CHECK}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000020}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_ENC\_TKT\_IN\_SKEY} -\label{\detokenize{appdev/refs/macros/KDC_OPT_ENC_TKT_IN_SKEY:kdc-opt-enc-tkt-in-skey}}\label{\detokenize{appdev/refs/macros/KDC_OPT_ENC_TKT_IN_SKEY:kdc-opt-enc-tkt-in-skey-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_ENC_TKT_IN_SKEY::doc}}\index{KDC\_OPT\_ENC\_TKT\_IN\_SKEY (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_ENC\_TKT\_IN\_SKEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_ENC_TKT_IN_SKEY:KDC_OPT_ENC_TKT_IN_SKEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_ENC\_TKT\_IN\_SKEY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_ENC\_TKT\_IN\_SKEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000008}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_FORWARDABLE} -\label{\detokenize{appdev/refs/macros/KDC_OPT_FORWARDABLE:kdc-opt-forwardable}}\label{\detokenize{appdev/refs/macros/KDC_OPT_FORWARDABLE:kdc-opt-forwardable-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_FORWARDABLE::doc}}\index{KDC\_OPT\_FORWARDABLE (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_FORWARDABLE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_FORWARDABLE:KDC_OPT_FORWARDABLE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_FORWARDABLE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_FORWARDABLE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x40000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_FORWARDED} -\label{\detokenize{appdev/refs/macros/KDC_OPT_FORWARDED:kdc-opt-forwarded}}\label{\detokenize{appdev/refs/macros/KDC_OPT_FORWARDED:kdc-opt-forwarded-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_FORWARDED::doc}}\index{KDC\_OPT\_FORWARDED (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_FORWARDED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_FORWARDED:KDC_OPT_FORWARDED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_FORWARDED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_FORWARDED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x20000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_POSTDATED} -\label{\detokenize{appdev/refs/macros/KDC_OPT_POSTDATED:kdc-opt-postdated}}\label{\detokenize{appdev/refs/macros/KDC_OPT_POSTDATED:kdc-opt-postdated-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_POSTDATED::doc}}\index{KDC\_OPT\_POSTDATED (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_POSTDATED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_POSTDATED:KDC_OPT_POSTDATED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_POSTDATED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_POSTDATED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x02000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_PROXIABLE} -\label{\detokenize{appdev/refs/macros/KDC_OPT_PROXIABLE:kdc-opt-proxiable}}\label{\detokenize{appdev/refs/macros/KDC_OPT_PROXIABLE:kdc-opt-proxiable-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_PROXIABLE::doc}}\index{KDC\_OPT\_PROXIABLE (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_PROXIABLE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_PROXIABLE:KDC_OPT_PROXIABLE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_PROXIABLE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_PROXIABLE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x10000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_PROXY} -\label{\detokenize{appdev/refs/macros/KDC_OPT_PROXY:kdc-opt-proxy}}\label{\detokenize{appdev/refs/macros/KDC_OPT_PROXY:kdc-opt-proxy-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_PROXY::doc}}\index{KDC\_OPT\_PROXY (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_PROXY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_PROXY:KDC_OPT_PROXY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_PROXY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_PROXY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x08000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_RENEW} -\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEW:kdc-opt-renew}}\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEW:kdc-opt-renew-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEW::doc}}\index{KDC\_OPT\_RENEW (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_RENEW}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEW:KDC_OPT_RENEW}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_RENEW}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_RENEW}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_RENEWABLE} -\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEWABLE:kdc-opt-renewable}}\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEWABLE:kdc-opt-renewable-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEWABLE::doc}}\index{KDC\_OPT\_RENEWABLE (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_RENEWABLE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEWABLE:KDC_OPT_RENEWABLE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_RENEWABLE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_RENEWABLE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00800000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_RENEWABLE\_OK} -\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEWABLE_OK:kdc-opt-renewable-ok}}\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEWABLE_OK:kdc-opt-renewable-ok-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEWABLE_OK::doc}}\index{KDC\_OPT\_RENEWABLE\_OK (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_RENEWABLE\_OK}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_RENEWABLE_OK:KDC_OPT_RENEWABLE_OK}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_RENEWABLE\_OK}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_RENEWABLE\_OK}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000010}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_REQUEST\_ANONYMOUS} -\label{\detokenize{appdev/refs/macros/KDC_OPT_REQUEST_ANONYMOUS:kdc-opt-request-anonymous}}\label{\detokenize{appdev/refs/macros/KDC_OPT_REQUEST_ANONYMOUS:kdc-opt-request-anonymous-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_REQUEST_ANONYMOUS::doc}}\index{KDC\_OPT\_REQUEST\_ANONYMOUS (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_REQUEST\_ANONYMOUS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_REQUEST_ANONYMOUS:KDC_OPT_REQUEST_ANONYMOUS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_REQUEST\_ANONYMOUS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_REQUEST\_ANONYMOUS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00008000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_OPT\_VALIDATE} -\label{\detokenize{appdev/refs/macros/KDC_OPT_VALIDATE:kdc-opt-validate}}\label{\detokenize{appdev/refs/macros/KDC_OPT_VALIDATE:kdc-opt-validate-data}}\label{\detokenize{appdev/refs/macros/KDC_OPT_VALIDATE::doc}}\index{KDC\_OPT\_VALIDATE (built\sphinxhyphen{}in variable)@\spxentry{KDC\_OPT\_VALIDATE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_OPT_VALIDATE:KDC_OPT_VALIDATE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_OPT\_VALIDATE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_OPT\_VALIDATE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KDC\_TKT\_COMMON\_MASK} -\label{\detokenize{appdev/refs/macros/KDC_TKT_COMMON_MASK:kdc-tkt-common-mask}}\label{\detokenize{appdev/refs/macros/KDC_TKT_COMMON_MASK:kdc-tkt-common-mask-data}}\label{\detokenize{appdev/refs/macros/KDC_TKT_COMMON_MASK::doc}}\index{KDC\_TKT\_COMMON\_MASK (built\sphinxhyphen{}in variable)@\spxentry{KDC\_TKT\_COMMON\_MASK}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KDC_TKT_COMMON_MASK:KDC_TKT_COMMON_MASK}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KDC\_TKT\_COMMON\_MASK}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KDC\_TKT\_COMMON\_MASK}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x54800000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_ALTAUTH\_ATT\_CHALLENGE\_RESPONSE} -\label{\detokenize{appdev/refs/macros/KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE:krb5-altauth-att-challenge-response}}\label{\detokenize{appdev/refs/macros/KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE:krb5-altauth-att-challenge-response-data}}\label{\detokenize{appdev/refs/macros/KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE::doc}}\index{KRB5\_ALTAUTH\_ATT\_CHALLENGE\_RESPONSE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_ALTAUTH\_ATT\_CHALLENGE\_RESPONSE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE:KRB5_ALTAUTH_ATT_CHALLENGE_RESPONSE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_ALTAUTH\_ATT\_CHALLENGE\_RESPONSE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -alternate authentication types - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_ALTAUTH\_ATT\_CHALLENGE\_RESPONSE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{64}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_ANONYMOUS\_PRINCSTR} -\label{\detokenize{appdev/refs/macros/KRB5_ANONYMOUS_PRINCSTR:krb5-anonymous-princstr}}\label{\detokenize{appdev/refs/macros/KRB5_ANONYMOUS_PRINCSTR:krb5-anonymous-princstr-data}}\label{\detokenize{appdev/refs/macros/KRB5_ANONYMOUS_PRINCSTR::doc}}\index{KRB5\_ANONYMOUS\_PRINCSTR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_ANONYMOUS\_PRINCSTR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_ANONYMOUS_PRINCSTR:KRB5_ANONYMOUS_PRINCSTR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_ANONYMOUS\_PRINCSTR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Anonymous principal name. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_ANONYMOUS\_PRINCSTR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{"ANONYMOUS"}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_ANONYMOUS\_REALMSTR} -\label{\detokenize{appdev/refs/macros/KRB5_ANONYMOUS_REALMSTR:krb5-anonymous-realmstr}}\label{\detokenize{appdev/refs/macros/KRB5_ANONYMOUS_REALMSTR:krb5-anonymous-realmstr-data}}\label{\detokenize{appdev/refs/macros/KRB5_ANONYMOUS_REALMSTR::doc}}\index{KRB5\_ANONYMOUS\_REALMSTR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_ANONYMOUS\_REALMSTR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_ANONYMOUS_REALMSTR:KRB5_ANONYMOUS_REALMSTR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_ANONYMOUS\_REALMSTR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Anonymous realm. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_ANONYMOUS\_REALMSTR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{"WELLKNOWN:ANONYMOUS"}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AP\_REP} -\label{\detokenize{appdev/refs/macros/KRB5_AP_REP:krb5-ap-rep}}\label{\detokenize{appdev/refs/macros/KRB5_AP_REP:krb5-ap-rep-data}}\label{\detokenize{appdev/refs/macros/KRB5_AP_REP::doc}}\index{KRB5\_AP\_REP (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AP\_REP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AP_REP:KRB5_AP_REP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AP\_REP}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Response to mutual AP request. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AP\_REP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)15)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AP\_REQ} -\label{\detokenize{appdev/refs/macros/KRB5_AP_REQ:krb5-ap-req}}\label{\detokenize{appdev/refs/macros/KRB5_AP_REQ:krb5-ap-req-data}}\label{\detokenize{appdev/refs/macros/KRB5_AP_REQ::doc}}\index{KRB5\_AP\_REQ (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AP\_REQ}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AP_REQ:KRB5_AP_REQ}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AP\_REQ}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Auth req to application server. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AP\_REQ}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)14)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AS\_REP} -\label{\detokenize{appdev/refs/macros/KRB5_AS_REP:krb5-as-rep}}\label{\detokenize{appdev/refs/macros/KRB5_AS_REP:krb5-as-rep-data}}\label{\detokenize{appdev/refs/macros/KRB5_AS_REP::doc}}\index{KRB5\_AS\_REP (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AS\_REP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AS_REP:KRB5_AS_REP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AS\_REP}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Response to AS request. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AS\_REP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)11)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AS\_REQ} -\label{\detokenize{appdev/refs/macros/KRB5_AS_REQ:krb5-as-req}}\label{\detokenize{appdev/refs/macros/KRB5_AS_REQ:krb5-as-req-data}}\label{\detokenize{appdev/refs/macros/KRB5_AS_REQ::doc}}\index{KRB5\_AS\_REQ (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AS\_REQ}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AS_REQ:KRB5_AS_REQ}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AS\_REQ}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Initial authentication request. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AS\_REQ}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)10)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_AND\_OR} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AND_OR:krb5-authdata-and-or}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AND_OR:krb5-authdata-and-or-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AND_OR::doc}}\index{KRB5\_AUTHDATA\_AND\_OR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_AND\_OR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AND_OR:KRB5_AUTHDATA_AND_OR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_AND\_OR}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_AND\_OR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{5}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_AP\_OPTIONS} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AP_OPTIONS:krb5-authdata-ap-options}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AP_OPTIONS:krb5-authdata-ap-options-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AP_OPTIONS::doc}}\index{KRB5\_AUTHDATA\_AP\_OPTIONS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_AP\_OPTIONS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AP_OPTIONS:KRB5_AUTHDATA_AP_OPTIONS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_AP\_OPTIONS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_AP\_OPTIONS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{143}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_AUTH\_INDICATOR} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AUTH_INDICATOR:krb5-authdata-auth-indicator}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AUTH_INDICATOR:krb5-authdata-auth-indicator-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AUTH_INDICATOR::doc}}\index{KRB5\_AUTHDATA\_AUTH\_INDICATOR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_AUTH\_INDICATOR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_AUTH_INDICATOR:KRB5_AUTHDATA_AUTH_INDICATOR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_AUTH\_INDICATOR}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_AUTH\_INDICATOR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{97}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_CAMMAC} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_CAMMAC:krb5-authdata-cammac}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_CAMMAC:krb5-authdata-cammac-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_CAMMAC::doc}}\index{KRB5\_AUTHDATA\_CAMMAC (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_CAMMAC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_CAMMAC:KRB5_AUTHDATA_CAMMAC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_CAMMAC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_CAMMAC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{96}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_ETYPE\_NEGOTIATION} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_ETYPE_NEGOTIATION:krb5-authdata-etype-negotiation}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_ETYPE_NEGOTIATION:krb5-authdata-etype-negotiation-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_ETYPE_NEGOTIATION::doc}}\index{KRB5\_AUTHDATA\_ETYPE\_NEGOTIATION (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_ETYPE\_NEGOTIATION}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_ETYPE_NEGOTIATION:KRB5_AUTHDATA_ETYPE_NEGOTIATION}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_ETYPE\_NEGOTIATION}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 4537. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_ETYPE\_NEGOTIATION}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{129}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_FX\_ARMOR} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_FX_ARMOR:krb5-authdata-fx-armor}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_FX_ARMOR:krb5-authdata-fx-armor-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_FX_ARMOR::doc}}\index{KRB5\_AUTHDATA\_FX\_ARMOR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_FX\_ARMOR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_FX_ARMOR:KRB5_AUTHDATA_FX_ARMOR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_FX\_ARMOR}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_FX\_ARMOR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{71}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_IF\_RELEVANT} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_IF_RELEVANT:krb5-authdata-if-relevant}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_IF_RELEVANT:krb5-authdata-if-relevant-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_IF_RELEVANT::doc}}\index{KRB5\_AUTHDATA\_IF\_RELEVANT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_IF\_RELEVANT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_IF_RELEVANT:KRB5_AUTHDATA_IF_RELEVANT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_IF\_RELEVANT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_IF\_RELEVANT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_INITIAL\_VERIFIED\_CAS} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_INITIAL_VERIFIED_CAS:krb5-authdata-initial-verified-cas}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_INITIAL_VERIFIED_CAS:krb5-authdata-initial-verified-cas-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_INITIAL_VERIFIED_CAS::doc}}\index{KRB5\_AUTHDATA\_INITIAL\_VERIFIED\_CAS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_INITIAL\_VERIFIED\_CAS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_INITIAL_VERIFIED_CAS:KRB5_AUTHDATA_INITIAL_VERIFIED_CAS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_INITIAL\_VERIFIED\_CAS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_INITIAL\_VERIFIED\_CAS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{9}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_KDC\_ISSUED} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_KDC_ISSUED:krb5-authdata-kdc-issued}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_KDC_ISSUED:krb5-authdata-kdc-issued-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_KDC_ISSUED::doc}}\index{KRB5\_AUTHDATA\_KDC\_ISSUED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_KDC\_ISSUED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_KDC_ISSUED:KRB5_AUTHDATA_KDC_ISSUED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_KDC\_ISSUED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_KDC\_ISSUED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_MANDATORY\_FOR\_KDC} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_MANDATORY_FOR_KDC:krb5-authdata-mandatory-for-kdc}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_MANDATORY_FOR_KDC:krb5-authdata-mandatory-for-kdc-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_MANDATORY_FOR_KDC::doc}}\index{KRB5\_AUTHDATA\_MANDATORY\_FOR\_KDC (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_MANDATORY\_FOR\_KDC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_MANDATORY_FOR_KDC:KRB5_AUTHDATA_MANDATORY_FOR_KDC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_MANDATORY\_FOR\_KDC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_MANDATORY\_FOR\_KDC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{8}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_OSF\_DCE} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_OSF_DCE:krb5-authdata-osf-dce}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_OSF_DCE:krb5-authdata-osf-dce-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_OSF_DCE::doc}}\index{KRB5\_AUTHDATA\_OSF\_DCE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_OSF\_DCE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_OSF_DCE:KRB5_AUTHDATA_OSF_DCE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_OSF\_DCE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_OSF\_DCE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{64}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_SESAME} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_SESAME:krb5-authdata-sesame}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_SESAME:krb5-authdata-sesame-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_SESAME::doc}}\index{KRB5\_AUTHDATA\_SESAME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_SESAME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_SESAME:KRB5_AUTHDATA_SESAME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_SESAME}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_SESAME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{65}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_SIGNTICKET} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_SIGNTICKET:krb5-authdata-signticket}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_SIGNTICKET:krb5-authdata-signticket-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_SIGNTICKET::doc}}\index{KRB5\_AUTHDATA\_SIGNTICKET (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_SIGNTICKET}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_SIGNTICKET:KRB5_AUTHDATA_SIGNTICKET}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_SIGNTICKET}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_SIGNTICKET}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{512}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTHDATA\_WIN2K\_PAC} -\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_WIN2K_PAC:krb5-authdata-win2k-pac}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_WIN2K_PAC:krb5-authdata-win2k-pac-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_WIN2K_PAC::doc}}\index{KRB5\_AUTHDATA\_WIN2K\_PAC (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTHDATA\_WIN2K\_PAC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTHDATA_WIN2K_PAC:KRB5_AUTHDATA_WIN2K_PAC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTHDATA\_WIN2K\_PAC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTHDATA\_WIN2K\_PAC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{128}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_SEQUENCE:krb5-auth-context-do-sequence}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_SEQUENCE:krb5-auth-context-do-sequence-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_SEQUENCE::doc}}\index{KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_SEQUENCE:KRB5_AUTH_CONTEXT_DO_SEQUENCE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Prevent replays with sequence numbers. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_DO\_SEQUENCE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000004}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_DO\_TIME} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_TIME:krb5-auth-context-do-time}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_TIME:krb5-auth-context-do-time-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_TIME::doc}}\index{KRB5\_AUTH\_CONTEXT\_DO\_TIME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_DO\_TIME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_DO_TIME:KRB5_AUTH_CONTEXT_DO_TIME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_DO\_TIME}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Prevent replays with timestamps and replay cache. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_DO\_TIME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_ADDR} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR:krb5-auth-context-generate-local-addr}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR:krb5-auth-context-generate-local-addr-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR::doc}}\index{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_ADDR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_ADDR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR:KRB5_AUTH_CONTEXT_GENERATE_LOCAL_ADDR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_ADDR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Generate the local network address. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_ADDR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_FULL\_ADDR} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR:krb5-auth-context-generate-local-full-addr}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR:krb5-auth-context-generate-local-full-addr-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR::doc}}\index{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_FULL\_ADDR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_FULL\_ADDR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR:KRB5_AUTH_CONTEXT_GENERATE_LOCAL_FULL_ADDR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_FULL\_ADDR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Generate the local network address and the local port. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_GENERATE\_LOCAL\_FULL\_ADDR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000004}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_ADDR} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR:krb5-auth-context-generate-remote-addr}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR:krb5-auth-context-generate-remote-addr-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR::doc}}\index{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_ADDR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_ADDR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR:KRB5_AUTH_CONTEXT_GENERATE_REMOTE_ADDR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_ADDR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Generate the remote network address. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_ADDR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_FULL\_ADDR} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR:krb5-auth-context-generate-remote-full-addr}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR:krb5-auth-context-generate-remote-full-addr-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR::doc}}\index{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_FULL\_ADDR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_FULL\_ADDR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR:KRB5_AUTH_CONTEXT_GENERATE_REMOTE_FULL_ADDR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_FULL\_ADDR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Generate the remote network address and the remote port. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_GENERATE\_REMOTE\_FULL\_ADDR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000008}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_PERMIT\_ALL} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_PERMIT_ALL:krb5-auth-context-permit-all}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_PERMIT_ALL:krb5-auth-context-permit-all-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_PERMIT_ALL::doc}}\index{KRB5\_AUTH\_CONTEXT\_PERMIT\_ALL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_PERMIT\_ALL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_PERMIT_ALL:KRB5_AUTH_CONTEXT_PERMIT_ALL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_PERMIT\_ALL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_PERMIT\_ALL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000010}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_SEQUENCE:krb5-auth-context-ret-sequence}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_SEQUENCE:krb5-auth-context-ret-sequence-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_SEQUENCE::doc}}\index{KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_SEQUENCE:KRB5_AUTH_CONTEXT_RET_SEQUENCE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Save sequence numbers for application. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_RET\_SEQUENCE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000008}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_RET\_TIME} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_TIME:krb5-auth-context-ret-time}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_TIME:krb5-auth-context-ret-time-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_TIME::doc}}\index{KRB5\_AUTH\_CONTEXT\_RET\_TIME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_RET\_TIME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_RET_TIME:KRB5_AUTH_CONTEXT_RET_TIME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_RET\_TIME}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Save timestamps for application. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_RET\_TIME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_AUTH\_CONTEXT\_USE\_SUBKEY} -\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_USE_SUBKEY:krb5-auth-context-use-subkey}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_USE_SUBKEY:krb5-auth-context-use-subkey-data}}\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_USE_SUBKEY::doc}}\index{KRB5\_AUTH\_CONTEXT\_USE\_SUBKEY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_AUTH\_CONTEXT\_USE\_SUBKEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_AUTH_CONTEXT_USE_SUBKEY:KRB5_AUTH_CONTEXT_USE_SUBKEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_USE\_SUBKEY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_AUTH\_CONTEXT\_USE\_SUBKEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000020}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CRED} -\label{\detokenize{appdev/refs/macros/KRB5_CRED:krb5-cred}}\label{\detokenize{appdev/refs/macros/KRB5_CRED:krb5-cred-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRED::doc}}\index{KRB5\_CRED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CRED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CRED:KRB5_CRED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CRED}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Cred forwarding message. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CRED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)22)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CRYPTO\_TYPE\_CHECKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_CHECKSUM:krb5-crypto-type-checksum}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_CHECKSUM:krb5-crypto-type-checksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_CHECKSUM::doc}}\index{KRB5\_CRYPTO\_TYPE\_CHECKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CRYPTO\_TYPE\_CHECKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_CHECKSUM:KRB5_CRYPTO_TYPE_CHECKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_CHECKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -{[}out{]} checksum for MIC - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_CHECKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{6}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CRYPTO\_TYPE\_DATA} -\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_DATA:krb5-crypto-type-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_DATA:krb5-crypto-type-data-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_DATA::doc}}\index{KRB5\_CRYPTO\_TYPE\_DATA (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CRYPTO\_TYPE\_DATA}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_DATA:KRB5_CRYPTO_TYPE_DATA}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_DATA}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -{[}in, out{]} plaintext - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_DATA}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CRYPTO\_TYPE\_EMPTY} -\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_EMPTY:krb5-crypto-type-empty}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_EMPTY:krb5-crypto-type-empty-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_EMPTY::doc}}\index{KRB5\_CRYPTO\_TYPE\_EMPTY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CRYPTO\_TYPE\_EMPTY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_EMPTY:KRB5_CRYPTO_TYPE_EMPTY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_EMPTY}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -{[}in{]} ignored - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_EMPTY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CRYPTO\_TYPE\_HEADER} -\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_HEADER:krb5-crypto-type-header}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_HEADER:krb5-crypto-type-header-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_HEADER::doc}}\index{KRB5\_CRYPTO\_TYPE\_HEADER (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CRYPTO\_TYPE\_HEADER}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_HEADER:KRB5_CRYPTO_TYPE_HEADER}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_HEADER}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -{[}out{]} header - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_HEADER}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CRYPTO\_TYPE\_PADDING} -\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_PADDING:krb5-crypto-type-padding}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_PADDING:krb5-crypto-type-padding-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_PADDING::doc}}\index{KRB5\_CRYPTO\_TYPE\_PADDING (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CRYPTO\_TYPE\_PADDING}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_PADDING:KRB5_CRYPTO_TYPE_PADDING}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_PADDING}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -{[}out{]} padding - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_PADDING}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY} -\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_SIGN_ONLY:krb5-crypto-type-sign-only}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_SIGN_ONLY:krb5-crypto-type-sign-only-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_SIGN_ONLY::doc}}\index{KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_SIGN_ONLY:KRB5_CRYPTO_TYPE_SIGN_ONLY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -{[}in{]} associated data - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_SIGN\_ONLY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{3}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CRYPTO\_TYPE\_STREAM} -\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_STREAM:krb5-crypto-type-stream}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_STREAM:krb5-crypto-type-stream-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_STREAM::doc}}\index{KRB5\_CRYPTO\_TYPE\_STREAM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CRYPTO\_TYPE\_STREAM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_STREAM:KRB5_CRYPTO_TYPE_STREAM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_STREAM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -{[}in{]} entire message without decomposing the structure into header, data and trailer buffers - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_STREAM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{7}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CRYPTO\_TYPE\_TRAILER} -\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_TRAILER:krb5-crypto-type-trailer}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_TRAILER:krb5-crypto-type-trailer-data}}\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_TRAILER::doc}}\index{KRB5\_CRYPTO\_TYPE\_TRAILER (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CRYPTO\_TYPE\_TRAILER}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CRYPTO_TYPE_TRAILER:KRB5_CRYPTO_TYPE_TRAILER}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_TRAILER}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -{[}out{]} checksum for encrypt - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CRYPTO\_TYPE\_TRAILER}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{5}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_CYBERSAFE\_SECUREID} -\label{\detokenize{appdev/refs/macros/KRB5_CYBERSAFE_SECUREID:krb5-cybersafe-secureid}}\label{\detokenize{appdev/refs/macros/KRB5_CYBERSAFE_SECUREID:krb5-cybersafe-secureid-data}}\label{\detokenize{appdev/refs/macros/KRB5_CYBERSAFE_SECUREID::doc}}\index{KRB5\_CYBERSAFE\_SECUREID (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_CYBERSAFE\_SECUREID}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_CYBERSAFE_SECUREID:KRB5_CYBERSAFE_SECUREID}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_CYBERSAFE\_SECUREID}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Cybersafe. - -\sphinxAtStartPar -RFC 4120 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_CYBERSAFE\_SECUREID}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{9}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_DOMAIN\_X500\_COMPRESS} -\label{\detokenize{appdev/refs/macros/KRB5_DOMAIN_X500_COMPRESS:krb5-domain-x500-compress}}\label{\detokenize{appdev/refs/macros/KRB5_DOMAIN_X500_COMPRESS:krb5-domain-x500-compress-data}}\label{\detokenize{appdev/refs/macros/KRB5_DOMAIN_X500_COMPRESS::doc}}\index{KRB5\_DOMAIN\_X500\_COMPRESS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_DOMAIN\_X500\_COMPRESS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_DOMAIN_X500_COMPRESS:KRB5_DOMAIN_X500_COMPRESS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_DOMAIN\_X500\_COMPRESS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Transited encoding types. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_DOMAIN\_X500\_COMPRESS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_ENCPADATA\_REQ\_ENC\_PA\_REP} -\label{\detokenize{appdev/refs/macros/KRB5_ENCPADATA_REQ_ENC_PA_REP:krb5-encpadata-req-enc-pa-rep}}\label{\detokenize{appdev/refs/macros/KRB5_ENCPADATA_REQ_ENC_PA_REP:krb5-encpadata-req-enc-pa-rep-data}}\label{\detokenize{appdev/refs/macros/KRB5_ENCPADATA_REQ_ENC_PA_REP::doc}}\index{KRB5\_ENCPADATA\_REQ\_ENC\_PA\_REP (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_ENCPADATA\_REQ\_ENC\_PA\_REP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_ENCPADATA_REQ_ENC_PA_REP:KRB5_ENCPADATA_REQ_ENC_PA_REP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_ENCPADATA\_REQ\_ENC\_PA\_REP}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6806. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_ENCPADATA\_REQ\_ENC\_PA\_REP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{149}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_ERROR} -\label{\detokenize{appdev/refs/macros/KRB5_ERROR:krb5-error}}\label{\detokenize{appdev/refs/macros/KRB5_ERROR:krb5-error-data}}\label{\detokenize{appdev/refs/macros/KRB5_ERROR::doc}}\index{KRB5\_ERROR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_ERROR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_ERROR:KRB5_ERROR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_ERROR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Error response. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_ERROR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)30)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_FAST\_REQUIRED} -\label{\detokenize{appdev/refs/macros/KRB5_FAST_REQUIRED:krb5-fast-required}}\label{\detokenize{appdev/refs/macros/KRB5_FAST_REQUIRED:krb5-fast-required-data}}\label{\detokenize{appdev/refs/macros/KRB5_FAST_REQUIRED::doc}}\index{KRB5\_FAST\_REQUIRED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_FAST\_REQUIRED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_FAST_REQUIRED:KRB5_FAST_REQUIRED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_FAST\_REQUIRED}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Require KDC to support FAST. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_FAST\_REQUIRED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GC\_CACHED} -\label{\detokenize{appdev/refs/macros/KRB5_GC_CACHED:krb5-gc-cached}}\label{\detokenize{appdev/refs/macros/KRB5_GC_CACHED:krb5-gc-cached-data}}\label{\detokenize{appdev/refs/macros/KRB5_GC_CACHED::doc}}\index{KRB5\_GC\_CACHED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GC\_CACHED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GC_CACHED:KRB5_GC_CACHED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GC\_CACHED}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Want cached ticket only. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GC\_CACHED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GC\_CANONICALIZE} -\label{\detokenize{appdev/refs/macros/KRB5_GC_CANONICALIZE:krb5-gc-canonicalize}}\label{\detokenize{appdev/refs/macros/KRB5_GC_CANONICALIZE:krb5-gc-canonicalize-data}}\label{\detokenize{appdev/refs/macros/KRB5_GC_CANONICALIZE::doc}}\index{KRB5\_GC\_CANONICALIZE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GC\_CANONICALIZE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GC_CANONICALIZE:KRB5_GC_CANONICALIZE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GC\_CANONICALIZE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Set canonicalize KDC option. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GC\_CANONICALIZE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GC\_CONSTRAINED\_DELEGATION} -\label{\detokenize{appdev/refs/macros/KRB5_GC_CONSTRAINED_DELEGATION:krb5-gc-constrained-delegation}}\label{\detokenize{appdev/refs/macros/KRB5_GC_CONSTRAINED_DELEGATION:krb5-gc-constrained-delegation-data}}\label{\detokenize{appdev/refs/macros/KRB5_GC_CONSTRAINED_DELEGATION::doc}}\index{KRB5\_GC\_CONSTRAINED\_DELEGATION (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GC\_CONSTRAINED\_DELEGATION}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GC_CONSTRAINED_DELEGATION:KRB5_GC_CONSTRAINED_DELEGATION}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GC\_CONSTRAINED\_DELEGATION}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Constrained delegation. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GC\_CONSTRAINED\_DELEGATION}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{64}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GC\_FORWARDABLE} -\label{\detokenize{appdev/refs/macros/KRB5_GC_FORWARDABLE:krb5-gc-forwardable}}\label{\detokenize{appdev/refs/macros/KRB5_GC_FORWARDABLE:krb5-gc-forwardable-data}}\label{\detokenize{appdev/refs/macros/KRB5_GC_FORWARDABLE::doc}}\index{KRB5\_GC\_FORWARDABLE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GC\_FORWARDABLE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GC_FORWARDABLE:KRB5_GC_FORWARDABLE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GC\_FORWARDABLE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Acquire forwardable tickets. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GC\_FORWARDABLE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{16}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GC\_NO\_STORE} -\label{\detokenize{appdev/refs/macros/KRB5_GC_NO_STORE:krb5-gc-no-store}}\label{\detokenize{appdev/refs/macros/KRB5_GC_NO_STORE:krb5-gc-no-store-data}}\label{\detokenize{appdev/refs/macros/KRB5_GC_NO_STORE::doc}}\index{KRB5\_GC\_NO\_STORE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GC\_NO\_STORE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GC_NO_STORE:KRB5_GC_NO_STORE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GC\_NO\_STORE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Do not store in credential cache. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GC\_NO\_STORE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{8}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GC\_NO\_TRANSIT\_CHECK} -\label{\detokenize{appdev/refs/macros/KRB5_GC_NO_TRANSIT_CHECK:krb5-gc-no-transit-check}}\label{\detokenize{appdev/refs/macros/KRB5_GC_NO_TRANSIT_CHECK:krb5-gc-no-transit-check-data}}\label{\detokenize{appdev/refs/macros/KRB5_GC_NO_TRANSIT_CHECK::doc}}\index{KRB5\_GC\_NO\_TRANSIT\_CHECK (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GC\_NO\_TRANSIT\_CHECK}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GC_NO_TRANSIT_CHECK:KRB5_GC_NO_TRANSIT_CHECK}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GC\_NO\_TRANSIT\_CHECK}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Disable transited check. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GC\_NO\_TRANSIT\_CHECK}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{32}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GC\_USER\_USER} -\label{\detokenize{appdev/refs/macros/KRB5_GC_USER_USER:krb5-gc-user-user}}\label{\detokenize{appdev/refs/macros/KRB5_GC_USER_USER:krb5-gc-user-user-data}}\label{\detokenize{appdev/refs/macros/KRB5_GC_USER_USER::doc}}\index{KRB5\_GC\_USER\_USER (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GC\_USER\_USER}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GC_USER_USER:KRB5_GC_USER_USER}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GC\_USER\_USER}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Want user\sphinxhyphen{}user ticket. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GC\_USER\_USER}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_ADDRESS\_LIST} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST:krb5-get-init-creds-opt-address-list}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST:krb5-get-init-creds-opt-address-list-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_ADDRESS\_LIST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_ADDRESS\_LIST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST:KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_ADDRESS\_LIST}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_ADDRESS\_LIST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0020}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_ANONYMOUS} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ANONYMOUS:krb5-get-init-creds-opt-anonymous}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ANONYMOUS:krb5-get-init-creds-opt-anonymous-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ANONYMOUS::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_ANONYMOUS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_ANONYMOUS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ANONYMOUS:KRB5_GET_INIT_CREDS_OPT_ANONYMOUS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_ANONYMOUS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_ANONYMOUS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0400}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_CANONICALIZE} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CANONICALIZE:krb5-get-init-creds-opt-canonicalize}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CANONICALIZE:krb5-get-init-creds-opt-canonicalize-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CANONICALIZE::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_CANONICALIZE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_CANONICALIZE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CANONICALIZE:KRB5_GET_INIT_CREDS_OPT_CANONICALIZE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_CANONICALIZE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_CANONICALIZE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0200}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_CHG\_PWD\_PRMPT} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT:krb5-get-init-creds-opt-chg-pwd-prmpt}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT:krb5-get-init-creds-opt-chg-pwd-prmpt-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_CHG\_PWD\_PRMPT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_CHG\_PWD\_PRMPT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT:KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_CHG\_PWD\_PRMPT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_CHG\_PWD\_PRMPT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0100}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_ETYPE\_LIST} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST:krb5-get-init-creds-opt-etype-list}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST:krb5-get-init-creds-opt-etype-list-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_ETYPE\_LIST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_ETYPE\_LIST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST:KRB5_GET_INIT_CREDS_OPT_ETYPE_LIST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_ETYPE\_LIST}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_ETYPE\_LIST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0010}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_FORWARDABLE} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_FORWARDABLE:krb5-get-init-creds-opt-forwardable}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_FORWARDABLE:krb5-get-init-creds-opt-forwardable-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_FORWARDABLE::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_FORWARDABLE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_FORWARDABLE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_FORWARDABLE:KRB5_GET_INIT_CREDS_OPT_FORWARDABLE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_FORWARDABLE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_FORWARDABLE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0004}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_PREAUTH\_LIST} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST:krb5-get-init-creds-opt-preauth-list}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST:krb5-get-init-creds-opt-preauth-list-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_PREAUTH\_LIST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_PREAUTH\_LIST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST:KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_PREAUTH\_LIST}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_PREAUTH\_LIST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0040}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_PROXIABLE} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PROXIABLE:krb5-get-init-creds-opt-proxiable}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PROXIABLE:krb5-get-init-creds-opt-proxiable-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PROXIABLE::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_PROXIABLE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_PROXIABLE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_PROXIABLE:KRB5_GET_INIT_CREDS_OPT_PROXIABLE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_PROXIABLE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_PROXIABLE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0008}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_RENEW\_LIFE} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE:krb5-get-init-creds-opt-renew-life}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE:krb5-get-init-creds-opt-renew-life-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_RENEW\_LIFE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_RENEW\_LIFE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE:KRB5_GET_INIT_CREDS_OPT_RENEW_LIFE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_RENEW\_LIFE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_RENEW\_LIFE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_SALT} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_SALT:krb5-get-init-creds-opt-salt}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_SALT:krb5-get-init-creds-opt-salt-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_SALT::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_SALT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_SALT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_SALT:KRB5_GET_INIT_CREDS_OPT_SALT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_SALT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_SALT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0080}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_GET\_INIT\_CREDS\_OPT\_TKT\_LIFE} -\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_TKT_LIFE:krb5-get-init-creds-opt-tkt-life}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_TKT_LIFE:krb5-get-init-creds-opt-tkt-life-data}}\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_TKT_LIFE::doc}}\index{KRB5\_GET\_INIT\_CREDS\_OPT\_TKT\_LIFE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_GET\_INIT\_CREDS\_OPT\_TKT\_LIFE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_GET_INIT_CREDS_OPT_TKT_LIFE:KRB5_GET_INIT_CREDS_OPT_TKT_LIFE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_TKT\_LIFE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_GET\_INIT\_CREDS\_OPT\_TKT\_LIFE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_INIT\_CONTEXT\_SECURE} -\label{\detokenize{appdev/refs/macros/KRB5_INIT_CONTEXT_SECURE:krb5-init-context-secure}}\label{\detokenize{appdev/refs/macros/KRB5_INIT_CONTEXT_SECURE:krb5-init-context-secure-data}}\label{\detokenize{appdev/refs/macros/KRB5_INIT_CONTEXT_SECURE::doc}}\index{KRB5\_INIT\_CONTEXT\_SECURE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_INIT\_CONTEXT\_SECURE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_INIT_CONTEXT_SECURE:KRB5_INIT_CONTEXT_SECURE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_INIT\_CONTEXT\_SECURE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Use secure context configuration. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_INIT\_CONTEXT\_SECURE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_INIT\_CONTEXT\_KDC} -\label{\detokenize{appdev/refs/macros/KRB5_INIT_CONTEXT_KDC:krb5-init-context-kdc}}\label{\detokenize{appdev/refs/macros/KRB5_INIT_CONTEXT_KDC:krb5-init-context-kdc-data}}\label{\detokenize{appdev/refs/macros/KRB5_INIT_CONTEXT_KDC::doc}}\index{KRB5\_INIT\_CONTEXT\_KDC (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_INIT\_CONTEXT\_KDC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_INIT_CONTEXT_KDC:KRB5_INIT_CONTEXT_KDC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_INIT\_CONTEXT\_KDC}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Use KDC configuration if available. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_INIT\_CONTEXT\_KDC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_INIT\_CREDS\_STEP\_FLAG\_CONTINUE} -\label{\detokenize{appdev/refs/macros/KRB5_INIT_CREDS_STEP_FLAG_CONTINUE:krb5-init-creds-step-flag-continue}}\label{\detokenize{appdev/refs/macros/KRB5_INIT_CREDS_STEP_FLAG_CONTINUE:krb5-init-creds-step-flag-continue-data}}\label{\detokenize{appdev/refs/macros/KRB5_INIT_CREDS_STEP_FLAG_CONTINUE::doc}}\index{KRB5\_INIT\_CREDS\_STEP\_FLAG\_CONTINUE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_INIT\_CREDS\_STEP\_FLAG\_CONTINUE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_INIT_CREDS_STEP_FLAG_CONTINUE:KRB5_INIT_CREDS_STEP_FLAG_CONTINUE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_INIT\_CREDS\_STEP\_FLAG\_CONTINUE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -More responses needed. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_INIT\_CREDS\_STEP\_FLAG\_CONTINUE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_INT16\_MAX} -\label{\detokenize{appdev/refs/macros/KRB5_INT16_MAX:krb5-int16-max}}\label{\detokenize{appdev/refs/macros/KRB5_INT16_MAX:krb5-int16-max-data}}\label{\detokenize{appdev/refs/macros/KRB5_INT16_MAX::doc}}\index{KRB5\_INT16\_MAX (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_INT16\_MAX}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_INT16_MAX:KRB5_INT16_MAX}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_INT16\_MAX}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_INT16\_MAX}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{65535}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_INT16\_MIN} -\label{\detokenize{appdev/refs/macros/KRB5_INT16_MIN:krb5-int16-min}}\label{\detokenize{appdev/refs/macros/KRB5_INT16_MIN:krb5-int16-min-data}}\label{\detokenize{appdev/refs/macros/KRB5_INT16_MIN::doc}}\index{KRB5\_INT16\_MIN (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_INT16\_MIN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_INT16_MIN:KRB5_INT16_MIN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_INT16\_MIN}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_INT16\_MIN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\sphinxhyphen{}KRB5\_INT16\_MAX\sphinxhyphen{}1)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_INT32\_MAX} -\label{\detokenize{appdev/refs/macros/KRB5_INT32_MAX:krb5-int32-max}}\label{\detokenize{appdev/refs/macros/KRB5_INT32_MAX:krb5-int32-max-data}}\label{\detokenize{appdev/refs/macros/KRB5_INT32_MAX::doc}}\index{KRB5\_INT32\_MAX (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_INT32\_MAX}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_INT32_MAX:KRB5_INT32_MAX}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_INT32\_MAX}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_INT32\_MAX}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2147483647}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_INT32\_MIN} -\label{\detokenize{appdev/refs/macros/KRB5_INT32_MIN:krb5-int32-min}}\label{\detokenize{appdev/refs/macros/KRB5_INT32_MIN:krb5-int32-min-data}}\label{\detokenize{appdev/refs/macros/KRB5_INT32_MIN::doc}}\index{KRB5\_INT32\_MIN (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_INT32\_MIN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_INT32_MIN:KRB5_INT32_MIN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_INT32\_MIN}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_INT32\_MIN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\sphinxhyphen{}KRB5\_INT32\_MAX\sphinxhyphen{}1)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AD\_ITE} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_ITE:krb5-keyusage-ad-ite}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_ITE:krb5-keyusage-ad-ite-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_ITE::doc}}\index{KRB5\_KEYUSAGE\_AD\_ITE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AD\_ITE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_ITE:KRB5_KEYUSAGE_AD_ITE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AD\_ITE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AD\_ITE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{21}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AD\_KDCISSUED\_CKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM:krb5-keyusage-ad-kdcissued-cksum}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM:krb5-keyusage-ad-kdcissued-cksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM::doc}}\index{KRB5\_KEYUSAGE\_AD\_KDCISSUED\_CKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AD\_KDCISSUED\_CKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM:KRB5_KEYUSAGE_AD_KDCISSUED_CKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AD\_KDCISSUED\_CKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AD\_KDCISSUED\_CKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{19}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AD\_MTE} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_MTE:krb5-keyusage-ad-mte}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_MTE:krb5-keyusage-ad-mte-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_MTE::doc}}\index{KRB5\_KEYUSAGE\_AD\_MTE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AD\_MTE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_MTE:KRB5_KEYUSAGE_AD_MTE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AD\_MTE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AD\_MTE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{20}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AD\_SIGNEDPATH} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_SIGNEDPATH:krb5-keyusage-ad-signedpath}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_SIGNEDPATH:krb5-keyusage-ad-signedpath-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_SIGNEDPATH::doc}}\index{KRB5\_KEYUSAGE\_AD\_SIGNEDPATH (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AD\_SIGNEDPATH}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AD_SIGNEDPATH:KRB5_KEYUSAGE_AD_SIGNEDPATH}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AD\_SIGNEDPATH}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AD\_SIGNEDPATH}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{\sphinxhyphen{}21}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_APP\_DATA\_CKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_CKSUM:krb5-keyusage-app-data-cksum}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_CKSUM:krb5-keyusage-app-data-cksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_CKSUM::doc}}\index{KRB5\_KEYUSAGE\_APP\_DATA\_CKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_APP\_DATA\_CKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_CKSUM:KRB5_KEYUSAGE_APP_DATA_CKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_APP\_DATA\_CKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_APP\_DATA\_CKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{17}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_APP\_DATA\_ENCRYPT} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_ENCRYPT:krb5-keyusage-app-data-encrypt}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_ENCRYPT:krb5-keyusage-app-data-encrypt-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_ENCRYPT::doc}}\index{KRB5\_KEYUSAGE\_APP\_DATA\_ENCRYPT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_APP\_DATA\_ENCRYPT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_APP_DATA_ENCRYPT:KRB5_KEYUSAGE_APP_DATA_ENCRYPT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_APP\_DATA\_ENCRYPT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_APP\_DATA\_ENCRYPT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{16}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AP\_REP\_ENCPART} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REP_ENCPART:krb5-keyusage-ap-rep-encpart}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REP_ENCPART:krb5-keyusage-ap-rep-encpart-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REP_ENCPART::doc}}\index{KRB5\_KEYUSAGE\_AP\_REP\_ENCPART (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AP\_REP\_ENCPART}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REP_ENCPART:KRB5_KEYUSAGE_AP_REP_ENCPART}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AP\_REP\_ENCPART}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AP\_REP\_ENCPART}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{12}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH:krb5-keyusage-ap-req-auth}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH:krb5-keyusage-ap-req-auth-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH::doc}}\index{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH:KRB5_KEYUSAGE_AP_REQ_AUTH}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{11}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH\_CKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM:krb5-keyusage-ap-req-auth-cksum}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM:krb5-keyusage-ap-req-auth-cksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM::doc}}\index{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH\_CKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH\_CKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM:KRB5_KEYUSAGE_AP_REQ_AUTH_CKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH\_CKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AP\_REQ\_AUTH\_CKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{10}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AS\_REP\_ENCPART} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REP_ENCPART:krb5-keyusage-as-rep-encpart}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REP_ENCPART:krb5-keyusage-as-rep-encpart-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REP_ENCPART::doc}}\index{KRB5\_KEYUSAGE\_AS\_REP\_ENCPART (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AS\_REP\_ENCPART}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REP_ENCPART:KRB5_KEYUSAGE_AS_REP_ENCPART}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AS\_REP\_ENCPART}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AS\_REP\_ENCPART}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{3}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AS\_REQ} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ:krb5-keyusage-as-req}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ:krb5-keyusage-as-req-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ::doc}}\index{KRB5\_KEYUSAGE\_AS\_REQ (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AS\_REQ}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ:KRB5_KEYUSAGE_AS_REQ}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AS\_REQ}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AS\_REQ}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{56}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_AS\_REQ\_PA\_ENC\_TS} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS:krb5-keyusage-as-req-pa-enc-ts}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS:krb5-keyusage-as-req-pa-enc-ts-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS::doc}}\index{KRB5\_KEYUSAGE\_AS\_REQ\_PA\_ENC\_TS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_AS\_REQ\_PA\_ENC\_TS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS:KRB5_KEYUSAGE_AS_REQ_PA_ENC_TS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_AS\_REQ\_PA\_ENC\_TS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_AS\_REQ\_PA\_ENC\_TS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_CAMMAC} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_CAMMAC:krb5-keyusage-cammac}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_CAMMAC:krb5-keyusage-cammac-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_CAMMAC::doc}}\index{KRB5\_KEYUSAGE\_CAMMAC (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_CAMMAC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_CAMMAC:KRB5_KEYUSAGE_CAMMAC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_CAMMAC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_CAMMAC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{64}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_CLIENT} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_CLIENT:krb5-keyusage-enc-challenge-client}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_CLIENT:krb5-keyusage-enc-challenge-client-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_CLIENT::doc}}\index{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_CLIENT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_CLIENT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_CLIENT:KRB5_KEYUSAGE_ENC_CHALLENGE_CLIENT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_CLIENT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_CLIENT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{54}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_KDC} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_KDC:krb5-keyusage-enc-challenge-kdc}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_KDC:krb5-keyusage-enc-challenge-kdc-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_KDC::doc}}\index{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_KDC (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_KDC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_ENC_CHALLENGE_KDC:KRB5_KEYUSAGE_ENC_CHALLENGE_KDC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_KDC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_ENC\_CHALLENGE\_KDC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{55}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_FAST\_ENC} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_ENC:krb5-keyusage-fast-enc}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_ENC:krb5-keyusage-fast-enc-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_ENC::doc}}\index{KRB5\_KEYUSAGE\_FAST\_ENC (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_FAST\_ENC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_ENC:KRB5_KEYUSAGE_FAST_ENC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_FAST\_ENC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_FAST\_ENC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{51}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_FAST\_FINISHED} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_FINISHED:krb5-keyusage-fast-finished}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_FINISHED:krb5-keyusage-fast-finished-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_FINISHED::doc}}\index{KRB5\_KEYUSAGE\_FAST\_FINISHED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_FAST\_FINISHED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_FINISHED:KRB5_KEYUSAGE_FAST_FINISHED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_FAST\_FINISHED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_FAST\_FINISHED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{53}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_FAST\_REP} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_REP:krb5-keyusage-fast-rep}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_REP:krb5-keyusage-fast-rep-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_REP::doc}}\index{KRB5\_KEYUSAGE\_FAST\_REP (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_FAST\_REP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_REP:KRB5_KEYUSAGE_FAST_REP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_FAST\_REP}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_FAST\_REP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{52}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_FAST\_REQ\_CHKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_REQ_CHKSUM:krb5-keyusage-fast-req-chksum}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_REQ_CHKSUM:krb5-keyusage-fast-req-chksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_REQ_CHKSUM::doc}}\index{KRB5\_KEYUSAGE\_FAST\_REQ\_CHKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_FAST\_REQ\_CHKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FAST_REQ_CHKSUM:KRB5_KEYUSAGE_FAST_REQ_CHKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_FAST\_REQ\_CHKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_FAST\_REQ\_CHKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{50}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_GSS\_TOK\_MIC} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_MIC:krb5-keyusage-gss-tok-mic}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_MIC:krb5-keyusage-gss-tok-mic-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_MIC::doc}}\index{KRB5\_KEYUSAGE\_GSS\_TOK\_MIC (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_GSS\_TOK\_MIC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_MIC:KRB5_KEYUSAGE_GSS_TOK_MIC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_GSS\_TOK\_MIC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_GSS\_TOK\_MIC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{22}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_INTEG} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG:krb5-keyusage-gss-tok-wrap-integ}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG:krb5-keyusage-gss-tok-wrap-integ-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG::doc}}\index{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_INTEG (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_INTEG}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG:KRB5_KEYUSAGE_GSS_TOK_WRAP_INTEG}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_INTEG}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_INTEG}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{23}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_PRIV} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV:krb5-keyusage-gss-tok-wrap-priv}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV:krb5-keyusage-gss-tok-wrap-priv-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV::doc}}\index{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_PRIV (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_PRIV}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV:KRB5_KEYUSAGE_GSS_TOK_WRAP_PRIV}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_PRIV}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_GSS\_TOK\_WRAP\_PRIV}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{24}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_FINISHED} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FINISHED:krb5-keyusage-finished}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FINISHED:krb5-keyusage-finished-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FINISHED::doc}}\index{KRB5\_KEYUSAGE\_FINISHED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_FINISHED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_FINISHED:KRB5_KEYUSAGE_FINISHED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_FINISHED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_FINISHED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{41}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_IAKERB\_FINISHED} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_IAKERB_FINISHED:krb5-keyusage-iakerb-finished}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_IAKERB_FINISHED:krb5-keyusage-iakerb-finished-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_IAKERB_FINISHED::doc}}\index{KRB5\_KEYUSAGE\_IAKERB\_FINISHED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_IAKERB\_FINISHED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_IAKERB_FINISHED:KRB5_KEYUSAGE_IAKERB_FINISHED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_IAKERB\_FINISHED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_IAKERB\_FINISHED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{42}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_KDC\_REP\_TICKET} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KDC_REP_TICKET:krb5-keyusage-kdc-rep-ticket}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KDC_REP_TICKET:krb5-keyusage-kdc-rep-ticket-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KDC_REP_TICKET::doc}}\index{KRB5\_KEYUSAGE\_KDC\_REP\_TICKET (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_KDC\_REP\_TICKET}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KDC_REP_TICKET:KRB5_KEYUSAGE_KDC_REP_TICKET}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_KDC\_REP\_TICKET}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_KDC\_REP\_TICKET}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_KRB\_CRED\_ENCPART} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_CRED_ENCPART:krb5-keyusage-krb-cred-encpart}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_CRED_ENCPART:krb5-keyusage-krb-cred-encpart-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_CRED_ENCPART::doc}}\index{KRB5\_KEYUSAGE\_KRB\_CRED\_ENCPART (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_KRB\_CRED\_ENCPART}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_CRED_ENCPART:KRB5_KEYUSAGE_KRB_CRED_ENCPART}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_KRB\_CRED\_ENCPART}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_KRB\_CRED\_ENCPART}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{14}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_KRB\_ERROR\_CKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_ERROR_CKSUM:krb5-keyusage-krb-error-cksum}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_ERROR_CKSUM:krb5-keyusage-krb-error-cksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_ERROR_CKSUM::doc}}\index{KRB5\_KEYUSAGE\_KRB\_ERROR\_CKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_KRB\_ERROR\_CKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_ERROR_CKSUM:KRB5_KEYUSAGE_KRB_ERROR_CKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_KRB\_ERROR\_CKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_KRB\_ERROR\_CKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{18}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_KRB\_PRIV\_ENCPART} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_PRIV_ENCPART:krb5-keyusage-krb-priv-encpart}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_PRIV_ENCPART:krb5-keyusage-krb-priv-encpart-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_PRIV_ENCPART::doc}}\index{KRB5\_KEYUSAGE\_KRB\_PRIV\_ENCPART (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_KRB\_PRIV\_ENCPART}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_PRIV_ENCPART:KRB5_KEYUSAGE_KRB_PRIV_ENCPART}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_KRB\_PRIV\_ENCPART}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_KRB\_PRIV\_ENCPART}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{13}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_KRB\_SAFE\_CKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_SAFE_CKSUM:krb5-keyusage-krb-safe-cksum}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_SAFE_CKSUM:krb5-keyusage-krb-safe-cksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_SAFE_CKSUM::doc}}\index{KRB5\_KEYUSAGE\_KRB\_SAFE\_CKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_KRB\_SAFE\_CKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_KRB_SAFE_CKSUM:KRB5_KEYUSAGE_KRB_SAFE_CKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_KRB\_SAFE\_CKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_KRB\_SAFE\_CKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{15}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_PA\_AS\_FRESHNESS} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_AS_FRESHNESS:krb5-keyusage-pa-as-freshness}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_AS_FRESHNESS:krb5-keyusage-pa-as-freshness-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_AS_FRESHNESS::doc}}\index{KRB5\_KEYUSAGE\_PA\_AS\_FRESHNESS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_PA\_AS\_FRESHNESS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_AS_FRESHNESS:KRB5_KEYUSAGE_PA_AS_FRESHNESS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_AS\_FRESHNESS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Used for freshness tokens. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_AS\_FRESHNESS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{514}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_PA\_FX\_COOKIE} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_FX_COOKIE:krb5-keyusage-pa-fx-cookie}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_FX_COOKIE:krb5-keyusage-pa-fx-cookie-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_FX_COOKIE::doc}}\index{KRB5\_KEYUSAGE\_PA\_FX\_COOKIE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_PA\_FX\_COOKIE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_FX_COOKIE:KRB5_KEYUSAGE_PA_FX_COOKIE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_FX\_COOKIE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Used for encrypted FAST cookies. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_FX\_COOKIE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{513}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_PA\_OTP\_REQUEST} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_OTP_REQUEST:krb5-keyusage-pa-otp-request}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_OTP_REQUEST:krb5-keyusage-pa-otp-request-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_OTP_REQUEST::doc}}\index{KRB5\_KEYUSAGE\_PA\_OTP\_REQUEST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_PA\_OTP\_REQUEST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_OTP_REQUEST:KRB5_KEYUSAGE_PA_OTP_REQUEST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_OTP\_REQUEST}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -See RFC 6560 section 4.2. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_OTP\_REQUEST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{45}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_PA\_PKINIT\_KX} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_PKINIT_KX:krb5-keyusage-pa-pkinit-kx}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_PKINIT_KX:krb5-keyusage-pa-pkinit-kx-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_PKINIT_KX::doc}}\index{KRB5\_KEYUSAGE\_PA\_PKINIT\_KX (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_PA\_PKINIT\_KX}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_PKINIT_KX:KRB5_KEYUSAGE_PA_PKINIT_KX}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_PKINIT\_KX}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_PKINIT\_KX}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{44}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REPLY} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY:krb5-keyusage-pa-s4u-x509-user-reply}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY:krb5-keyusage-pa-s4u-x509-user-reply-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY::doc}}\index{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REPLY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REPLY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY:KRB5_KEYUSAGE_PA_S4U_X509_USER_REPLY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REPLY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REPLY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{27}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REQUEST} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST:krb5-keyusage-pa-s4u-x509-user-request}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST:krb5-keyusage-pa-s4u-x509-user-request-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST::doc}}\index{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REQUEST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REQUEST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST:KRB5_KEYUSAGE_PA_S4U_X509_USER_REQUEST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REQUEST}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_S4U\_X509\_USER\_REQUEST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{26}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_CKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM:krb5-keyusage-pa-sam-challenge-cksum}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM:krb5-keyusage-pa-sam-challenge-cksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM::doc}}\index{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_CKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_CKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM:KRB5_KEYUSAGE_PA_SAM_CHALLENGE_CKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_CKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_CKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{25}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_TRACKID} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID:krb5-keyusage-pa-sam-challenge-trackid}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID:krb5-keyusage-pa-sam-challenge-trackid-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID::doc}}\index{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_TRACKID (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_TRACKID}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID:KRB5_KEYUSAGE_PA_SAM_CHALLENGE_TRACKID}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_TRACKID}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_SAM\_CHALLENGE\_TRACKID}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{26}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_PA\_SAM\_RESPONSE} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE:krb5-keyusage-pa-sam-response}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE:krb5-keyusage-pa-sam-response-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE::doc}}\index{KRB5\_KEYUSAGE\_PA\_SAM\_RESPONSE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_PA\_SAM\_RESPONSE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_PA_SAM_RESPONSE:KRB5_KEYUSAGE_PA_SAM_RESPONSE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_SAM\_RESPONSE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_PA\_SAM\_RESPONSE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{27}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_SPAKE} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_SPAKE:krb5-keyusage-spake}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_SPAKE:krb5-keyusage-spake-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_SPAKE::doc}}\index{KRB5\_KEYUSAGE\_SPAKE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_SPAKE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_SPAKE:KRB5_KEYUSAGE_SPAKE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_SPAKE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_SPAKE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{65}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SESSKEY} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY:krb5-keyusage-tgs-rep-encpart-sesskey}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY:krb5-keyusage-tgs-rep-encpart-sesskey-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY::doc}}\index{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SESSKEY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SESSKEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY:KRB5_KEYUSAGE_TGS_REP_ENCPART_SESSKEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SESSKEY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SESSKEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{8}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SUBKEY} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY:krb5-keyusage-tgs-rep-encpart-subkey}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY:krb5-keyusage-tgs-rep-encpart-subkey-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY::doc}}\index{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SUBKEY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SUBKEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY:KRB5_KEYUSAGE_TGS_REP_ENCPART_SUBKEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SUBKEY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REP\_ENCPART\_SUBKEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{9}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SESSKEY} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY:krb5-keyusage-tgs-req-ad-sesskey}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY:krb5-keyusage-tgs-req-ad-sesskey-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY::doc}}\index{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SESSKEY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SESSKEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY:KRB5_KEYUSAGE_TGS_REQ_AD_SESSKEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SESSKEY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SESSKEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SUBKEY} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY:krb5-keyusage-tgs-req-ad-subkey}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY:krb5-keyusage-tgs-req-ad-subkey-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY::doc}}\index{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SUBKEY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SUBKEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY:KRB5_KEYUSAGE_TGS_REQ_AD_SUBKEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SUBKEY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REQ\_AD\_SUBKEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{5}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH:krb5-keyusage-tgs-req-auth}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH:krb5-keyusage-tgs-req-auth-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH::doc}}\index{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH:KRB5_KEYUSAGE_TGS_REQ_AUTH}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{7}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH\_CKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM:krb5-keyusage-tgs-req-auth-cksum}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM:krb5-keyusage-tgs-req-auth-cksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM::doc}}\index{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH\_CKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH\_CKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM:KRB5_KEYUSAGE_TGS_REQ_AUTH_CKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH\_CKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KEYUSAGE\_TGS\_REQ\_AUTH\_CKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{6}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KPASSWD\_ACCESSDENIED} -\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_ACCESSDENIED:krb5-kpasswd-accessdenied}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_ACCESSDENIED:krb5-kpasswd-accessdenied-data}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_ACCESSDENIED::doc}}\index{KRB5\_KPASSWD\_ACCESSDENIED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KPASSWD\_ACCESSDENIED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_ACCESSDENIED:KRB5_KPASSWD_ACCESSDENIED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KPASSWD\_ACCESSDENIED}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Not authorized. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KPASSWD\_ACCESSDENIED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{5}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KPASSWD\_AUTHERROR} -\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_AUTHERROR:krb5-kpasswd-autherror}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_AUTHERROR:krb5-kpasswd-autherror-data}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_AUTHERROR::doc}}\index{KRB5\_KPASSWD\_AUTHERROR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KPASSWD\_AUTHERROR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_AUTHERROR:KRB5_KPASSWD_AUTHERROR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KPASSWD\_AUTHERROR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Authentication error. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KPASSWD\_AUTHERROR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{3}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KPASSWD\_BAD\_VERSION} -\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_BAD_VERSION:krb5-kpasswd-bad-version}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_BAD_VERSION:krb5-kpasswd-bad-version-data}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_BAD_VERSION::doc}}\index{KRB5\_KPASSWD\_BAD\_VERSION (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KPASSWD\_BAD\_VERSION}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_BAD_VERSION:KRB5_KPASSWD_BAD_VERSION}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KPASSWD\_BAD\_VERSION}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Unknown RPC version. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KPASSWD\_BAD\_VERSION}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{6}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KPASSWD\_HARDERROR} -\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_HARDERROR:krb5-kpasswd-harderror}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_HARDERROR:krb5-kpasswd-harderror-data}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_HARDERROR::doc}}\index{KRB5\_KPASSWD\_HARDERROR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KPASSWD\_HARDERROR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_HARDERROR:KRB5_KPASSWD_HARDERROR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KPASSWD\_HARDERROR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Server error. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KPASSWD\_HARDERROR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KPASSWD\_INITIAL\_FLAG\_NEEDED} -\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_INITIAL_FLAG_NEEDED:krb5-kpasswd-initial-flag-needed}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_INITIAL_FLAG_NEEDED:krb5-kpasswd-initial-flag-needed-data}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_INITIAL_FLAG_NEEDED::doc}}\index{KRB5\_KPASSWD\_INITIAL\_FLAG\_NEEDED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KPASSWD\_INITIAL\_FLAG\_NEEDED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_INITIAL_FLAG_NEEDED:KRB5_KPASSWD_INITIAL_FLAG_NEEDED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KPASSWD\_INITIAL\_FLAG\_NEEDED}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -The presented credentials were not obtained using a password directly. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KPASSWD\_INITIAL\_FLAG\_NEEDED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{7}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KPASSWD\_MALFORMED} -\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_MALFORMED:krb5-kpasswd-malformed}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_MALFORMED:krb5-kpasswd-malformed-data}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_MALFORMED::doc}}\index{KRB5\_KPASSWD\_MALFORMED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KPASSWD\_MALFORMED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_MALFORMED:KRB5_KPASSWD_MALFORMED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KPASSWD\_MALFORMED}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Malformed request. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KPASSWD\_MALFORMED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KPASSWD\_SOFTERROR} -\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_SOFTERROR:krb5-kpasswd-softerror}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_SOFTERROR:krb5-kpasswd-softerror-data}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_SOFTERROR::doc}}\index{KRB5\_KPASSWD\_SOFTERROR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KPASSWD\_SOFTERROR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_SOFTERROR:KRB5_KPASSWD_SOFTERROR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KPASSWD\_SOFTERROR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Password change rejected. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KPASSWD\_SOFTERROR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_KPASSWD\_SUCCESS} -\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_SUCCESS:krb5-kpasswd-success}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_SUCCESS:krb5-kpasswd-success-data}}\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_SUCCESS::doc}}\index{KRB5\_KPASSWD\_SUCCESS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_KPASSWD\_SUCCESS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_KPASSWD_SUCCESS:KRB5_KPASSWD_SUCCESS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_KPASSWD\_SUCCESS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Success. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_KPASSWD\_SUCCESS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ALL\_ACCT\_EXPTIME} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_ACCT_EXPTIME:krb5-lrq-all-acct-exptime}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_ACCT_EXPTIME:krb5-lrq-all-acct-exptime-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_ACCT_EXPTIME::doc}}\index{KRB5\_LRQ\_ALL\_ACCT\_EXPTIME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ALL\_ACCT\_EXPTIME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_ACCT_EXPTIME:KRB5_LRQ_ALL_ACCT_EXPTIME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ALL\_ACCT\_EXPTIME}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ALL\_ACCT\_EXPTIME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{7}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ALL\_LAST\_INITIAL} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_INITIAL:krb5-lrq-all-last-initial}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_INITIAL:krb5-lrq-all-last-initial-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_INITIAL::doc}}\index{KRB5\_LRQ\_ALL\_LAST\_INITIAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ALL\_LAST\_INITIAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_INITIAL:KRB5_LRQ_ALL_LAST_INITIAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_INITIAL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_INITIAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ALL\_LAST\_RENEWAL} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_RENEWAL:krb5-lrq-all-last-renewal}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_RENEWAL:krb5-lrq-all-last-renewal-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_RENEWAL::doc}}\index{KRB5\_LRQ\_ALL\_LAST\_RENEWAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ALL\_LAST\_RENEWAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_RENEWAL:KRB5_LRQ_ALL_LAST_RENEWAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_RENEWAL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_RENEWAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ALL\_LAST\_REQ} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_REQ:krb5-lrq-all-last-req}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_REQ:krb5-lrq-all-last-req-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_REQ::doc}}\index{KRB5\_LRQ\_ALL\_LAST\_REQ (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ALL\_LAST\_REQ}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_REQ:KRB5_LRQ_ALL_LAST_REQ}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_REQ}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_REQ}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{5}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ALL\_LAST\_TGT} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT:krb5-lrq-all-last-tgt}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT:krb5-lrq-all-last-tgt-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT::doc}}\index{KRB5\_LRQ\_ALL\_LAST\_TGT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ALL\_LAST\_TGT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT:KRB5_LRQ_ALL_LAST_TGT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_TGT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_TGT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ALL\_LAST\_TGT\_ISSUED} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT_ISSUED:krb5-lrq-all-last-tgt-issued}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT_ISSUED:krb5-lrq-all-last-tgt-issued-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT_ISSUED::doc}}\index{KRB5\_LRQ\_ALL\_LAST\_TGT\_ISSUED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ALL\_LAST\_TGT\_ISSUED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_LAST_TGT_ISSUED:KRB5_LRQ_ALL_LAST_TGT_ISSUED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_TGT\_ISSUED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ALL\_LAST\_TGT\_ISSUED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{3}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ALL\_PW\_EXPTIME} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_PW_EXPTIME:krb5-lrq-all-pw-exptime}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_PW_EXPTIME:krb5-lrq-all-pw-exptime-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_PW_EXPTIME::doc}}\index{KRB5\_LRQ\_ALL\_PW\_EXPTIME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ALL\_PW\_EXPTIME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ALL_PW_EXPTIME:KRB5_LRQ_ALL_PW_EXPTIME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ALL\_PW\_EXPTIME}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ALL\_PW\_EXPTIME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{6}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_NONE} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_NONE:krb5-lrq-none}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_NONE:krb5-lrq-none-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_NONE::doc}}\index{KRB5\_LRQ\_NONE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_NONE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_NONE:KRB5_LRQ_NONE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_NONE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_NONE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ONE\_ACCT\_EXPTIME} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_ACCT_EXPTIME:krb5-lrq-one-acct-exptime}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_ACCT_EXPTIME:krb5-lrq-one-acct-exptime-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_ACCT_EXPTIME::doc}}\index{KRB5\_LRQ\_ONE\_ACCT\_EXPTIME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ONE\_ACCT\_EXPTIME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_ACCT_EXPTIME:KRB5_LRQ_ONE_ACCT_EXPTIME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ONE\_ACCT\_EXPTIME}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ONE\_ACCT\_EXPTIME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\sphinxhyphen{}7)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ONE\_LAST\_INITIAL} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_INITIAL:krb5-lrq-one-last-initial}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_INITIAL:krb5-lrq-one-last-initial-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_INITIAL::doc}}\index{KRB5\_LRQ\_ONE\_LAST\_INITIAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ONE\_LAST\_INITIAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_INITIAL:KRB5_LRQ_ONE_LAST_INITIAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_INITIAL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_INITIAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\sphinxhyphen{}2)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ONE\_LAST\_RENEWAL} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_RENEWAL:krb5-lrq-one-last-renewal}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_RENEWAL:krb5-lrq-one-last-renewal-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_RENEWAL::doc}}\index{KRB5\_LRQ\_ONE\_LAST\_RENEWAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ONE\_LAST\_RENEWAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_RENEWAL:KRB5_LRQ_ONE_LAST_RENEWAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_RENEWAL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_RENEWAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\sphinxhyphen{}4)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ONE\_LAST\_REQ} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_REQ:krb5-lrq-one-last-req}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_REQ:krb5-lrq-one-last-req-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_REQ::doc}}\index{KRB5\_LRQ\_ONE\_LAST\_REQ (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ONE\_LAST\_REQ}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_REQ:KRB5_LRQ_ONE_LAST_REQ}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_REQ}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_REQ}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\sphinxhyphen{}5)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ONE\_LAST\_TGT} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT:krb5-lrq-one-last-tgt}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT:krb5-lrq-one-last-tgt-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT::doc}}\index{KRB5\_LRQ\_ONE\_LAST\_TGT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ONE\_LAST\_TGT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT:KRB5_LRQ_ONE_LAST_TGT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_TGT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_TGT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\sphinxhyphen{}1)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ONE\_LAST\_TGT\_ISSUED} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT_ISSUED:krb5-lrq-one-last-tgt-issued}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT_ISSUED:krb5-lrq-one-last-tgt-issued-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT_ISSUED::doc}}\index{KRB5\_LRQ\_ONE\_LAST\_TGT\_ISSUED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ONE\_LAST\_TGT\_ISSUED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_LAST_TGT_ISSUED:KRB5_LRQ_ONE_LAST_TGT_ISSUED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_TGT\_ISSUED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ONE\_LAST\_TGT\_ISSUED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\sphinxhyphen{}3)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_LRQ\_ONE\_PW\_EXPTIME} -\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_PW_EXPTIME:krb5-lrq-one-pw-exptime}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_PW_EXPTIME:krb5-lrq-one-pw-exptime-data}}\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_PW_EXPTIME::doc}}\index{KRB5\_LRQ\_ONE\_PW\_EXPTIME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_LRQ\_ONE\_PW\_EXPTIME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_LRQ_ONE_PW_EXPTIME:KRB5_LRQ_ONE_PW_EXPTIME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_LRQ\_ONE\_PW\_EXPTIME}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_LRQ\_ONE\_PW\_EXPTIME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\sphinxhyphen{}6)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_ENTERPRISE\_PRINCIPAL} -\label{\detokenize{appdev/refs/macros/KRB5_NT_ENTERPRISE_PRINCIPAL:krb5-nt-enterprise-principal}}\label{\detokenize{appdev/refs/macros/KRB5_NT_ENTERPRISE_PRINCIPAL:krb5-nt-enterprise-principal-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_ENTERPRISE_PRINCIPAL::doc}}\index{KRB5\_NT\_ENTERPRISE\_PRINCIPAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_ENTERPRISE\_PRINCIPAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_ENTERPRISE_PRINCIPAL:KRB5_NT_ENTERPRISE_PRINCIPAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_ENTERPRISE\_PRINCIPAL}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Windows 2000 UPN. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_ENTERPRISE\_PRINCIPAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{10}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_ENT\_PRINCIPAL\_AND\_ID} -\label{\detokenize{appdev/refs/macros/KRB5_NT_ENT_PRINCIPAL_AND_ID:krb5-nt-ent-principal-and-id}}\label{\detokenize{appdev/refs/macros/KRB5_NT_ENT_PRINCIPAL_AND_ID:krb5-nt-ent-principal-and-id-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_ENT_PRINCIPAL_AND_ID::doc}}\index{KRB5\_NT\_ENT\_PRINCIPAL\_AND\_ID (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_ENT\_PRINCIPAL\_AND\_ID}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_ENT_PRINCIPAL_AND_ID:KRB5_NT_ENT_PRINCIPAL_AND_ID}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_ENT\_PRINCIPAL\_AND\_ID}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -NT 4 style name and SID. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_ENT\_PRINCIPAL\_AND\_ID}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{\sphinxhyphen{}130}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_MS\_PRINCIPAL} -\label{\detokenize{appdev/refs/macros/KRB5_NT_MS_PRINCIPAL:krb5-nt-ms-principal}}\label{\detokenize{appdev/refs/macros/KRB5_NT_MS_PRINCIPAL:krb5-nt-ms-principal-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_MS_PRINCIPAL::doc}}\index{KRB5\_NT\_MS\_PRINCIPAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_MS\_PRINCIPAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_MS_PRINCIPAL:KRB5_NT_MS_PRINCIPAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_MS\_PRINCIPAL}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Windows 2000 UPN and SID. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_MS\_PRINCIPAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{\sphinxhyphen{}128}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_MS\_PRINCIPAL\_AND\_ID} -\label{\detokenize{appdev/refs/macros/KRB5_NT_MS_PRINCIPAL_AND_ID:krb5-nt-ms-principal-and-id}}\label{\detokenize{appdev/refs/macros/KRB5_NT_MS_PRINCIPAL_AND_ID:krb5-nt-ms-principal-and-id-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_MS_PRINCIPAL_AND_ID::doc}}\index{KRB5\_NT\_MS\_PRINCIPAL\_AND\_ID (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_MS\_PRINCIPAL\_AND\_ID}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_MS_PRINCIPAL_AND_ID:KRB5_NT_MS_PRINCIPAL_AND_ID}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_MS\_PRINCIPAL\_AND\_ID}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -NT 4 style name. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_MS\_PRINCIPAL\_AND\_ID}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{\sphinxhyphen{}129}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_PRINCIPAL} -\label{\detokenize{appdev/refs/macros/KRB5_NT_PRINCIPAL:krb5-nt-principal}}\label{\detokenize{appdev/refs/macros/KRB5_NT_PRINCIPAL:krb5-nt-principal-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_PRINCIPAL::doc}}\index{KRB5\_NT\_PRINCIPAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_PRINCIPAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_PRINCIPAL:KRB5_NT_PRINCIPAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_PRINCIPAL}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Just the name of the principal as in DCE, or for users. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_PRINCIPAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_SMTP\_NAME} -\label{\detokenize{appdev/refs/macros/KRB5_NT_SMTP_NAME:krb5-nt-smtp-name}}\label{\detokenize{appdev/refs/macros/KRB5_NT_SMTP_NAME:krb5-nt-smtp-name-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_SMTP_NAME::doc}}\index{KRB5\_NT\_SMTP\_NAME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_SMTP\_NAME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_SMTP_NAME:KRB5_NT_SMTP_NAME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_SMTP\_NAME}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Name in form of SMTP email name. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_SMTP\_NAME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{7}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_SRV\_HST} -\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_HST:krb5-nt-srv-hst}}\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_HST:krb5-nt-srv-hst-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_HST::doc}}\index{KRB5\_NT\_SRV\_HST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_SRV\_HST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_HST:KRB5_NT_SRV_HST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_SRV\_HST}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Service with host name as instance (telnet, rcommands) - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_SRV\_HST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{3}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_SRV\_INST} -\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_INST:krb5-nt-srv-inst}}\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_INST:krb5-nt-srv-inst-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_INST::doc}}\index{KRB5\_NT\_SRV\_INST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_SRV\_INST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_INST:KRB5_NT_SRV_INST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_SRV\_INST}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Service and other unique instance (krbtgt) - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_SRV\_INST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_SRV\_XHST} -\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_XHST:krb5-nt-srv-xhst}}\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_XHST:krb5-nt-srv-xhst-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_XHST::doc}}\index{KRB5\_NT\_SRV\_XHST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_SRV\_XHST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_SRV_XHST:KRB5_NT_SRV_XHST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_SRV\_XHST}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Service with host as remaining components. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_SRV\_XHST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_UID} -\label{\detokenize{appdev/refs/macros/KRB5_NT_UID:krb5-nt-uid}}\label{\detokenize{appdev/refs/macros/KRB5_NT_UID:krb5-nt-uid-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_UID::doc}}\index{KRB5\_NT\_UID (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_UID}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_UID:KRB5_NT_UID}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_UID}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Unique ID. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_UID}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{5}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_UNKNOWN} -\label{\detokenize{appdev/refs/macros/KRB5_NT_UNKNOWN:krb5-nt-unknown}}\label{\detokenize{appdev/refs/macros/KRB5_NT_UNKNOWN:krb5-nt-unknown-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_UNKNOWN::doc}}\index{KRB5\_NT\_UNKNOWN (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_UNKNOWN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_UNKNOWN:KRB5_NT_UNKNOWN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_UNKNOWN}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Name type not known. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_UNKNOWN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_WELLKNOWN} -\label{\detokenize{appdev/refs/macros/KRB5_NT_WELLKNOWN:krb5-nt-wellknown}}\label{\detokenize{appdev/refs/macros/KRB5_NT_WELLKNOWN:krb5-nt-wellknown-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_WELLKNOWN::doc}}\index{KRB5\_NT\_WELLKNOWN (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_WELLKNOWN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_WELLKNOWN:KRB5_NT_WELLKNOWN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_WELLKNOWN}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Well\sphinxhyphen{}known (special) principal. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_WELLKNOWN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{11}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_NT\_X500\_PRINCIPAL} -\label{\detokenize{appdev/refs/macros/KRB5_NT_X500_PRINCIPAL:krb5-nt-x500-principal}}\label{\detokenize{appdev/refs/macros/KRB5_NT_X500_PRINCIPAL:krb5-nt-x500-principal-data}}\label{\detokenize{appdev/refs/macros/KRB5_NT_X500_PRINCIPAL::doc}}\index{KRB5\_NT\_X500\_PRINCIPAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_NT\_X500\_PRINCIPAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_NT_X500_PRINCIPAL:KRB5_NT_X500_PRINCIPAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_NT\_X500\_PRINCIPAL}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -PKINIT. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_NT\_X500\_PRINCIPAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{6}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_ATTRIBUTES\_INFO} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_ATTRIBUTES_INFO:krb5-pac-attributes-info}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_ATTRIBUTES_INFO:krb5-pac-attributes-info-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_ATTRIBUTES_INFO::doc}}\index{KRB5\_PAC\_ATTRIBUTES\_INFO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_ATTRIBUTES\_INFO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_ATTRIBUTES_INFO:KRB5_PAC_ATTRIBUTES_INFO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_ATTRIBUTES\_INFO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -PAC attributes. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_ATTRIBUTES\_INFO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{17}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_CLIENT\_INFO} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_CLIENT_INFO:krb5-pac-client-info}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_CLIENT_INFO:krb5-pac-client-info-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_CLIENT_INFO::doc}}\index{KRB5\_PAC\_CLIENT\_INFO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_CLIENT\_INFO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_CLIENT_INFO:KRB5_PAC_CLIENT_INFO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_CLIENT\_INFO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Client name and ticket info. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_CLIENT\_INFO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{10}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_CLIENT\_CLAIMS} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_CLIENT_CLAIMS:krb5-pac-client-claims}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_CLIENT_CLAIMS:krb5-pac-client-claims-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_CLIENT_CLAIMS::doc}}\index{KRB5\_PAC\_CLIENT\_CLAIMS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_CLIENT\_CLAIMS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_CLIENT_CLAIMS:KRB5_PAC_CLIENT_CLAIMS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_CLIENT\_CLAIMS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Client claims information. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_CLIENT\_CLAIMS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{13}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_CREDENTIALS\_INFO} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_CREDENTIALS_INFO:krb5-pac-credentials-info}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_CREDENTIALS_INFO:krb5-pac-credentials-info-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_CREDENTIALS_INFO::doc}}\index{KRB5\_PAC\_CREDENTIALS\_INFO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_CREDENTIALS\_INFO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_CREDENTIALS_INFO:KRB5_PAC_CREDENTIALS_INFO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_CREDENTIALS\_INFO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Credentials information. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_CREDENTIALS\_INFO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_DELEGATION\_INFO} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_DELEGATION_INFO:krb5-pac-delegation-info}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_DELEGATION_INFO:krb5-pac-delegation-info-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_DELEGATION_INFO::doc}}\index{KRB5\_PAC\_DELEGATION\_INFO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_DELEGATION\_INFO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_DELEGATION_INFO:KRB5_PAC_DELEGATION_INFO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_DELEGATION\_INFO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Constrained delegation info. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_DELEGATION\_INFO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{11}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_DEVICE\_CLAIMS} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_DEVICE_CLAIMS:krb5-pac-device-claims}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_DEVICE_CLAIMS:krb5-pac-device-claims-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_DEVICE_CLAIMS::doc}}\index{KRB5\_PAC\_DEVICE\_CLAIMS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_DEVICE\_CLAIMS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_DEVICE_CLAIMS:KRB5_PAC_DEVICE_CLAIMS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_DEVICE\_CLAIMS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Device claims information. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_DEVICE\_CLAIMS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{15}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_DEVICE\_INFO} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_DEVICE_INFO:krb5-pac-device-info}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_DEVICE_INFO:krb5-pac-device-info-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_DEVICE_INFO::doc}}\index{KRB5\_PAC\_DEVICE\_INFO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_DEVICE\_INFO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_DEVICE_INFO:KRB5_PAC_DEVICE_INFO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_DEVICE\_INFO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Device information. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_DEVICE\_INFO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{14}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_LOGON\_INFO} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_LOGON_INFO:krb5-pac-logon-info}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_LOGON_INFO:krb5-pac-logon-info-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_LOGON_INFO::doc}}\index{KRB5\_PAC\_LOGON\_INFO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_LOGON\_INFO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_LOGON_INFO:KRB5_PAC_LOGON_INFO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_LOGON\_INFO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Logon information. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_LOGON\_INFO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_PRIVSVR\_CHECKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_PRIVSVR_CHECKSUM:krb5-pac-privsvr-checksum}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_PRIVSVR_CHECKSUM:krb5-pac-privsvr-checksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_PRIVSVR_CHECKSUM::doc}}\index{KRB5\_PAC\_PRIVSVR\_CHECKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_PRIVSVR\_CHECKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_PRIVSVR_CHECKSUM:KRB5_PAC_PRIVSVR_CHECKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_PRIVSVR\_CHECKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -KDC checksum. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_PRIVSVR\_CHECKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{7}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_REQUESTOR} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_REQUESTOR:krb5-pac-requestor}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_REQUESTOR:krb5-pac-requestor-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_REQUESTOR::doc}}\index{KRB5\_PAC\_REQUESTOR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_REQUESTOR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_REQUESTOR:KRB5_PAC_REQUESTOR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_REQUESTOR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -PAC requestor SID. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_REQUESTOR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{18}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_SERVER\_CHECKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_SERVER_CHECKSUM:krb5-pac-server-checksum}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_SERVER_CHECKSUM:krb5-pac-server-checksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_SERVER_CHECKSUM::doc}}\index{KRB5\_PAC\_SERVER\_CHECKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_SERVER\_CHECKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_SERVER_CHECKSUM:KRB5_PAC_SERVER_CHECKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_SERVER\_CHECKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Server checksum. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_SERVER\_CHECKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{6}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_TICKET\_CHECKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_TICKET_CHECKSUM:krb5-pac-ticket-checksum}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_TICKET_CHECKSUM:krb5-pac-ticket-checksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_TICKET_CHECKSUM::doc}}\index{KRB5\_PAC\_TICKET\_CHECKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_TICKET\_CHECKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_TICKET_CHECKSUM:KRB5_PAC_TICKET_CHECKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_TICKET\_CHECKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Ticket checksum. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_TICKET\_CHECKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{16}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_UPN\_DNS\_INFO} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_UPN_DNS_INFO:krb5-pac-upn-dns-info}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_UPN_DNS_INFO:krb5-pac-upn-dns-info-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_UPN_DNS_INFO::doc}}\index{KRB5\_PAC\_UPN\_DNS\_INFO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_UPN\_DNS\_INFO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_UPN_DNS_INFO:KRB5_PAC_UPN_DNS_INFO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_UPN\_DNS\_INFO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -User principal name and DNS info. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_UPN\_DNS\_INFO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{12}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PAC\_FULL\_CHECKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_PAC_FULL_CHECKSUM:krb5-pac-full-checksum}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_FULL_CHECKSUM:krb5-pac-full-checksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_PAC_FULL_CHECKSUM::doc}}\index{KRB5\_PAC\_FULL\_CHECKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PAC\_FULL\_CHECKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PAC_FULL_CHECKSUM:KRB5_PAC_FULL_CHECKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PAC\_FULL\_CHECKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -KDC full checksum. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PAC\_FULL\_CHECKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{19}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_AFS3\_SALT} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AFS3_SALT:krb5-padata-afs3-salt}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AFS3_SALT:krb5-padata-afs3-salt-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AFS3_SALT::doc}}\index{KRB5\_PADATA\_AFS3\_SALT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_AFS3\_SALT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AFS3_SALT:KRB5_PADATA_AFS3_SALT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_AFS3\_SALT}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Cygnus. - -\sphinxAtStartPar -RFC 4120, 3961 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_AFS3\_SALT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{10}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_AP\_REQ} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AP_REQ:krb5-padata-ap-req}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AP_REQ:krb5-padata-ap-req-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AP_REQ::doc}}\index{KRB5\_PADATA\_AP\_REQ (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_AP\_REQ}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AP_REQ:KRB5_PADATA_AP_REQ}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_AP\_REQ}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_AP\_REQ}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_AS\_CHECKSUM} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AS_CHECKSUM:krb5-padata-as-checksum}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AS_CHECKSUM:krb5-padata-as-checksum-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AS_CHECKSUM::doc}}\index{KRB5\_PADATA\_AS\_CHECKSUM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_AS\_CHECKSUM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AS_CHECKSUM:KRB5_PADATA_AS_CHECKSUM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_AS\_CHECKSUM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -AS checksum. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_AS\_CHECKSUM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{132}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_AS\_FRESHNESS} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AS_FRESHNESS:krb5-padata-as-freshness}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AS_FRESHNESS:krb5-padata-as-freshness-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AS_FRESHNESS::doc}}\index{KRB5\_PADATA\_AS\_FRESHNESS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_AS\_FRESHNESS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_AS_FRESHNESS:KRB5_PADATA_AS_FRESHNESS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_AS\_FRESHNESS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 8070. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_AS\_FRESHNESS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{150}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_ENCRYPTED\_CHALLENGE} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENCRYPTED_CHALLENGE:krb5-padata-encrypted-challenge}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENCRYPTED_CHALLENGE:krb5-padata-encrypted-challenge-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENCRYPTED_CHALLENGE::doc}}\index{KRB5\_PADATA\_ENCRYPTED\_CHALLENGE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_ENCRYPTED\_CHALLENGE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENCRYPTED_CHALLENGE:KRB5_PADATA_ENCRYPTED_CHALLENGE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_ENCRYPTED\_CHALLENGE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6113. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_ENCRYPTED\_CHALLENGE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{138}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_ENC\_SANDIA\_SECURID} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_SANDIA_SECURID:krb5-padata-enc-sandia-securid}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_SANDIA_SECURID:krb5-padata-enc-sandia-securid-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_SANDIA_SECURID::doc}}\index{KRB5\_PADATA\_ENC\_SANDIA\_SECURID (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_ENC\_SANDIA\_SECURID}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_SANDIA_SECURID:KRB5_PADATA_ENC_SANDIA_SECURID}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_ENC\_SANDIA\_SECURID}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -SecurId passcode. - -\sphinxAtStartPar -RFC 4120 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_ENC\_SANDIA\_SECURID}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{6}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_ENC\_TIMESTAMP} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_TIMESTAMP:krb5-padata-enc-timestamp}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_TIMESTAMP:krb5-padata-enc-timestamp-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_TIMESTAMP::doc}}\index{KRB5\_PADATA\_ENC\_TIMESTAMP (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_ENC\_TIMESTAMP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_TIMESTAMP:KRB5_PADATA_ENC_TIMESTAMP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_ENC\_TIMESTAMP}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 4120. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_ENC\_TIMESTAMP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_ENC\_UNIX\_TIME} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_UNIX_TIME:krb5-padata-enc-unix-time}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_UNIX_TIME:krb5-padata-enc-unix-time-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_UNIX_TIME::doc}}\index{KRB5\_PADATA\_ENC\_UNIX\_TIME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_ENC\_UNIX\_TIME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ENC_UNIX_TIME:KRB5_PADATA_ENC_UNIX_TIME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_ENC\_UNIX\_TIME}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -timestamp encrypted in key. - -\sphinxAtStartPar -RFC 4120 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_ENC\_UNIX\_TIME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{5}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_ETYPE\_INFO} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ETYPE_INFO:krb5-padata-etype-info}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ETYPE_INFO:krb5-padata-etype-info-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ETYPE_INFO::doc}}\index{KRB5\_PADATA\_ETYPE\_INFO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_ETYPE\_INFO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ETYPE_INFO:KRB5_PADATA_ETYPE_INFO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_ETYPE\_INFO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Etype info for preauth. - -\sphinxAtStartPar -RFC 4120 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_ETYPE\_INFO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{11}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_ETYPE\_INFO2} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ETYPE_INFO2:krb5-padata-etype-info2}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ETYPE_INFO2:krb5-padata-etype-info2-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ETYPE_INFO2::doc}}\index{KRB5\_PADATA\_ETYPE\_INFO2 (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_ETYPE\_INFO2}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_ETYPE_INFO2:KRB5_PADATA_ETYPE_INFO2}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_ETYPE\_INFO2}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 4120. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_ETYPE\_INFO2}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{19}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_FOR\_USER} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FOR_USER:krb5-padata-for-user}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FOR_USER:krb5-padata-for-user-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FOR_USER::doc}}\index{KRB5\_PADATA\_FOR\_USER (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_FOR\_USER}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FOR_USER:KRB5_PADATA_FOR_USER}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_FOR\_USER}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -username protocol transition request - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_FOR\_USER}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{129}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_FX\_COOKIE} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_COOKIE:krb5-padata-fx-cookie}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_COOKIE:krb5-padata-fx-cookie-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_COOKIE::doc}}\index{KRB5\_PADATA\_FX\_COOKIE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_FX\_COOKIE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_COOKIE:KRB5_PADATA_FX_COOKIE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_FX\_COOKIE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6113. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_FX\_COOKIE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{133}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_FX\_ERROR} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_ERROR:krb5-padata-fx-error}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_ERROR:krb5-padata-fx-error-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_ERROR::doc}}\index{KRB5\_PADATA\_FX\_ERROR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_FX\_ERROR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_ERROR:KRB5_PADATA_FX_ERROR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_FX\_ERROR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6113. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_FX\_ERROR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{137}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_FX\_FAST} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_FAST:krb5-padata-fx-fast}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_FAST:krb5-padata-fx-fast-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_FAST::doc}}\index{KRB5\_PADATA\_FX\_FAST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_FX\_FAST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_FX_FAST:KRB5_PADATA_FX_FAST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_FX\_FAST}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6113. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_FX\_FAST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{136}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_GET\_FROM\_TYPED\_DATA} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_GET_FROM_TYPED_DATA:krb5-padata-get-from-typed-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_GET_FROM_TYPED_DATA:krb5-padata-get-from-typed-data-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_GET_FROM_TYPED_DATA::doc}}\index{KRB5\_PADATA\_GET\_FROM\_TYPED\_DATA (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_GET\_FROM\_TYPED\_DATA}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_GET_FROM_TYPED_DATA:KRB5_PADATA_GET_FROM_TYPED_DATA}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_GET\_FROM\_TYPED\_DATA}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Embedded in typed data. - -\sphinxAtStartPar -RFC 4120 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_GET\_FROM\_TYPED\_DATA}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{22}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_NONE} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_NONE:krb5-padata-none}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_NONE:krb5-padata-none-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_NONE::doc}}\index{KRB5\_PADATA\_NONE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_NONE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_NONE:KRB5_PADATA_NONE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_NONE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_NONE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_OSF\_DCE} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OSF_DCE:krb5-padata-osf-dce}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OSF_DCE:krb5-padata-osf-dce-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OSF_DCE::doc}}\index{KRB5\_PADATA\_OSF\_DCE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_OSF\_DCE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OSF_DCE:KRB5_PADATA_OSF_DCE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_OSF\_DCE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -OSF DCE. - -\sphinxAtStartPar -RFC 4120 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_OSF\_DCE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{8}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_OTP\_CHALLENGE} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_CHALLENGE:krb5-padata-otp-challenge}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_CHALLENGE:krb5-padata-otp-challenge-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_CHALLENGE::doc}}\index{KRB5\_PADATA\_OTP\_CHALLENGE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_OTP\_CHALLENGE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_CHALLENGE:KRB5_PADATA_OTP_CHALLENGE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_OTP\_CHALLENGE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6560 section 4.1. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_OTP\_CHALLENGE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{141}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_OTP\_PIN\_CHANGE} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_PIN_CHANGE:krb5-padata-otp-pin-change}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_PIN_CHANGE:krb5-padata-otp-pin-change-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_PIN_CHANGE::doc}}\index{KRB5\_PADATA\_OTP\_PIN\_CHANGE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_OTP\_PIN\_CHANGE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_PIN_CHANGE:KRB5_PADATA_OTP_PIN_CHANGE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_OTP\_PIN\_CHANGE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6560 section 4.3. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_OTP\_PIN\_CHANGE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{144}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_OTP\_REQUEST} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_REQUEST:krb5-padata-otp-request}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_REQUEST:krb5-padata-otp-request-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_REQUEST::doc}}\index{KRB5\_PADATA\_OTP\_REQUEST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_OTP\_REQUEST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_OTP_REQUEST:KRB5_PADATA_OTP_REQUEST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_OTP\_REQUEST}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6560 section 4.2. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_OTP\_REQUEST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{142}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_PAC\_OPTIONS} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PAC_OPTIONS:krb5-padata-pac-options}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PAC_OPTIONS:krb5-padata-pac-options-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PAC_OPTIONS::doc}}\index{KRB5\_PADATA\_PAC\_OPTIONS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_PAC\_OPTIONS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PAC_OPTIONS:KRB5_PADATA_PAC_OPTIONS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_PAC\_OPTIONS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -MS\sphinxhyphen{}KILE and MS\sphinxhyphen{}SFU. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_PAC\_OPTIONS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{167}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_PAC\_REQUEST} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PAC_REQUEST:krb5-padata-pac-request}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PAC_REQUEST:krb5-padata-pac-request-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PAC_REQUEST::doc}}\index{KRB5\_PADATA\_PAC\_REQUEST (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_PAC\_REQUEST}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PAC_REQUEST:KRB5_PADATA_PAC_REQUEST}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_PAC\_REQUEST}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -include Windows PAC - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_PAC\_REQUEST}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{128}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_PKINIT\_KX} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PKINIT_KX:krb5-padata-pkinit-kx}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PKINIT_KX:krb5-padata-pkinit-kx-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PKINIT_KX::doc}}\index{KRB5\_PADATA\_PKINIT\_KX (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_PKINIT\_KX}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PKINIT_KX:KRB5_PADATA_PKINIT_KX}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_PKINIT\_KX}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 6112. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_PKINIT\_KX}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{147}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_PK\_AS\_REP} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REP:krb5-padata-pk-as-rep}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REP:krb5-padata-pk-as-rep-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REP::doc}}\index{KRB5\_PADATA\_PK\_AS\_REP (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_PK\_AS\_REP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REP:KRB5_PADATA_PK_AS_REP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_PK\_AS\_REP}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -PKINIT. - -\sphinxAtStartPar -RFC 4556 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_PK\_AS\_REP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{17}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_PK\_AS\_REP\_OLD} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REP_OLD:krb5-padata-pk-as-rep-old}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REP_OLD:krb5-padata-pk-as-rep-old-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REP_OLD::doc}}\index{KRB5\_PADATA\_PK\_AS\_REP\_OLD (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_PK\_AS\_REP\_OLD}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REP_OLD:KRB5_PADATA_PK_AS_REP_OLD}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_PK\_AS\_REP\_OLD}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -PKINIT. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_PK\_AS\_REP\_OLD}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{15}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_PK\_AS\_REQ} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REQ:krb5-padata-pk-as-req}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REQ:krb5-padata-pk-as-req-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REQ::doc}}\index{KRB5\_PADATA\_PK\_AS\_REQ (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_PK\_AS\_REQ}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REQ:KRB5_PADATA_PK_AS_REQ}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_PK\_AS\_REQ}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -PKINIT. - -\sphinxAtStartPar -RFC 4556 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_PK\_AS\_REQ}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{16}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_PK\_AS\_REQ\_OLD} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REQ_OLD:krb5-padata-pk-as-req-old}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REQ_OLD:krb5-padata-pk-as-req-old-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REQ_OLD::doc}}\index{KRB5\_PADATA\_PK\_AS\_REQ\_OLD (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_PK\_AS\_REQ\_OLD}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PK_AS_REQ_OLD:KRB5_PADATA_PK_AS_REQ_OLD}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_PK\_AS\_REQ\_OLD}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -PKINIT. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_PK\_AS\_REQ\_OLD}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{14}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_PW\_SALT} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PW_SALT:krb5-padata-pw-salt}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PW_SALT:krb5-padata-pw-salt-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PW_SALT::doc}}\index{KRB5\_PADATA\_PW\_SALT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_PW\_SALT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_PW_SALT:KRB5_PADATA_PW_SALT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_PW\_SALT}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 4120. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_PW\_SALT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{3}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_REFERRAL} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REFERRAL:krb5-padata-referral}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REFERRAL:krb5-padata-referral-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REFERRAL::doc}}\index{KRB5\_PADATA\_REFERRAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_REFERRAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REFERRAL:KRB5_PADATA_REFERRAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_REFERRAL}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -draft referral system - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_REFERRAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{25}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_S4U\_X509\_USER} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_S4U_X509_USER:krb5-padata-s4u-x509-user}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_S4U_X509_USER:krb5-padata-s4u-x509-user-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_S4U_X509_USER::doc}}\index{KRB5\_PADATA\_S4U\_X509\_USER (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_S4U\_X509\_USER}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_S4U_X509_USER:KRB5_PADATA_S4U_X509_USER}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_S4U\_X509\_USER}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -certificate protocol transition request - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_S4U\_X509\_USER}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{130}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_SAM\_CHALLENGE} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE:krb5-padata-sam-challenge}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE:krb5-padata-sam-challenge-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE::doc}}\index{KRB5\_PADATA\_SAM\_CHALLENGE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_SAM\_CHALLENGE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE:KRB5_PADATA_SAM_CHALLENGE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_SAM\_CHALLENGE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -SAM/OTP. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_SAM\_CHALLENGE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{12}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_SAM\_CHALLENGE\_2} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE_2:krb5-padata-sam-challenge-2}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE_2:krb5-padata-sam-challenge-2-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE_2::doc}}\index{KRB5\_PADATA\_SAM\_CHALLENGE\_2 (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_SAM\_CHALLENGE\_2}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_CHALLENGE_2:KRB5_PADATA_SAM_CHALLENGE_2}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_SAM\_CHALLENGE\_2}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -draft challenge system, updated - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_SAM\_CHALLENGE\_2}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{30}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_SAM\_REDIRECT} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_REDIRECT:krb5-padata-sam-redirect}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_REDIRECT:krb5-padata-sam-redirect-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_REDIRECT::doc}}\index{KRB5\_PADATA\_SAM\_REDIRECT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_SAM\_REDIRECT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_REDIRECT:KRB5_PADATA_SAM_REDIRECT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_SAM\_REDIRECT}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -SAM/OTP. - -\sphinxAtStartPar -RFC 4120 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_SAM\_REDIRECT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{21}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_SAM\_RESPONSE} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE:krb5-padata-sam-response}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE:krb5-padata-sam-response-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE::doc}}\index{KRB5\_PADATA\_SAM\_RESPONSE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_SAM\_RESPONSE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE:KRB5_PADATA_SAM_RESPONSE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_SAM\_RESPONSE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -SAM/OTP. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_SAM\_RESPONSE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{13}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_SAM\_RESPONSE\_2} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE_2:krb5-padata-sam-response-2}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE_2:krb5-padata-sam-response-2-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE_2::doc}}\index{KRB5\_PADATA\_SAM\_RESPONSE\_2 (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_SAM\_RESPONSE\_2}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SAM_RESPONSE_2:KRB5_PADATA_SAM_RESPONSE_2}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_SAM\_RESPONSE\_2}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -draft challenge system, updated - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_SAM\_RESPONSE\_2}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{31}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_SESAME} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SESAME:krb5-padata-sesame}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SESAME:krb5-padata-sesame-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SESAME::doc}}\index{KRB5\_PADATA\_SESAME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_SESAME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SESAME:KRB5_PADATA_SESAME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_SESAME}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Sesame project. - -\sphinxAtStartPar -RFC 4120 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_SESAME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{7}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_SPAKE} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SPAKE:krb5-padata-spake}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SPAKE:krb5-padata-spake-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SPAKE::doc}}\index{KRB5\_PADATA\_SPAKE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_SPAKE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SPAKE:KRB5_PADATA_SPAKE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_SPAKE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_SPAKE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{151}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_REDHAT\_IDP\_OAUTH2} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REDHAT_IDP_OAUTH2:krb5-padata-redhat-idp-oauth2}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REDHAT_IDP_OAUTH2:krb5-padata-redhat-idp-oauth2-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REDHAT_IDP_OAUTH2::doc}}\index{KRB5\_PADATA\_REDHAT\_IDP\_OAUTH2 (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_REDHAT\_IDP\_OAUTH2}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REDHAT_IDP_OAUTH2:KRB5_PADATA_REDHAT_IDP_OAUTH2}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_REDHAT\_IDP\_OAUTH2}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Red Hat IdP mechanism. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_REDHAT\_IDP\_OAUTH2}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{152}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_REDHAT\_PASSKEY} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REDHAT_PASSKEY:krb5-padata-redhat-passkey}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REDHAT_PASSKEY:krb5-padata-redhat-passkey-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REDHAT_PASSKEY::doc}}\index{KRB5\_PADATA\_REDHAT\_PASSKEY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_REDHAT\_PASSKEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_REDHAT_PASSKEY:KRB5_PADATA_REDHAT_PASSKEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_REDHAT\_PASSKEY}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Red Hat Passkey mechanism. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_REDHAT\_PASSKEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{153}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_SVR\_REFERRAL\_INFO} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SVR_REFERRAL_INFO:krb5-padata-svr-referral-info}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SVR_REFERRAL_INFO:krb5-padata-svr-referral-info-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SVR_REFERRAL_INFO::doc}}\index{KRB5\_PADATA\_SVR\_REFERRAL\_INFO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_SVR\_REFERRAL\_INFO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_SVR_REFERRAL_INFO:KRB5_PADATA_SVR_REFERRAL_INFO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_SVR\_REFERRAL\_INFO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Windows 2000 referrals. - -\sphinxAtStartPar -RFC 6820 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_SVR\_REFERRAL\_INFO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{20}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_TGS\_REQ} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_TGS_REQ:krb5-padata-tgs-req}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_TGS_REQ:krb5-padata-tgs-req-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_TGS_REQ::doc}}\index{KRB5\_PADATA\_TGS\_REQ (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_TGS\_REQ}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_TGS_REQ:KRB5_PADATA_TGS_REQ}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_TGS\_REQ}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_TGS\_REQ}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_AP\_REQ}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PADATA\_USE\_SPECIFIED\_KVNO} -\label{\detokenize{appdev/refs/macros/KRB5_PADATA_USE_SPECIFIED_KVNO:krb5-padata-use-specified-kvno}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_USE_SPECIFIED_KVNO:krb5-padata-use-specified-kvno-data}}\label{\detokenize{appdev/refs/macros/KRB5_PADATA_USE_SPECIFIED_KVNO::doc}}\index{KRB5\_PADATA\_USE\_SPECIFIED\_KVNO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PADATA\_USE\_SPECIFIED\_KVNO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PADATA_USE_SPECIFIED_KVNO:KRB5_PADATA_USE_SPECIFIED_KVNO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PADATA\_USE\_SPECIFIED\_KVNO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -RFC 4120. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PADATA\_USE\_SPECIFIED\_KVNO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{20}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_COMPARE\_CASEFOLD} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_CASEFOLD:krb5-principal-compare-casefold}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_CASEFOLD:krb5-principal-compare-casefold-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_CASEFOLD::doc}}\index{KRB5\_PRINCIPAL\_COMPARE\_CASEFOLD (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_COMPARE\_CASEFOLD}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_CASEFOLD:KRB5_PRINCIPAL_COMPARE_CASEFOLD}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_COMPARE\_CASEFOLD}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -case\sphinxhyphen{}insensitive - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_COMPARE\_CASEFOLD}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_COMPARE\_ENTERPRISE} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_ENTERPRISE:krb5-principal-compare-enterprise}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_ENTERPRISE:krb5-principal-compare-enterprise-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_ENTERPRISE::doc}}\index{KRB5\_PRINCIPAL\_COMPARE\_ENTERPRISE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_COMPARE\_ENTERPRISE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_ENTERPRISE:KRB5_PRINCIPAL_COMPARE_ENTERPRISE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_COMPARE\_ENTERPRISE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -UPNs as real principals. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_COMPARE\_ENTERPRISE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_COMPARE\_IGNORE\_REALM} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_IGNORE_REALM:krb5-principal-compare-ignore-realm}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_IGNORE_REALM:krb5-principal-compare-ignore-realm-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_IGNORE_REALM::doc}}\index{KRB5\_PRINCIPAL\_COMPARE\_IGNORE\_REALM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_COMPARE\_IGNORE\_REALM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_IGNORE_REALM:KRB5_PRINCIPAL_COMPARE_IGNORE_REALM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_COMPARE\_IGNORE\_REALM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -ignore realm component - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_COMPARE\_IGNORE\_REALM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_COMPARE\_UTF8} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_UTF8:krb5-principal-compare-utf8}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_UTF8:krb5-principal-compare-utf8-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_UTF8::doc}}\index{KRB5\_PRINCIPAL\_COMPARE\_UTF8 (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_COMPARE\_UTF8}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_COMPARE_UTF8:KRB5_PRINCIPAL_COMPARE_UTF8}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_COMPARE\_UTF8}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -treat principals as UTF\sphinxhyphen{}8 - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_COMPARE\_UTF8}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{8}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_PARSE\_ENTERPRISE} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_ENTERPRISE:krb5-principal-parse-enterprise}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_ENTERPRISE:krb5-principal-parse-enterprise-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_ENTERPRISE::doc}}\index{KRB5\_PRINCIPAL\_PARSE\_ENTERPRISE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_PARSE\_ENTERPRISE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_ENTERPRISE:KRB5_PRINCIPAL_PARSE_ENTERPRISE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_ENTERPRISE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Create single\sphinxhyphen{}component enterprise principle. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_ENTERPRISE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_PARSE\_IGNORE\_REALM} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_IGNORE_REALM:krb5-principal-parse-ignore-realm}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_IGNORE_REALM:krb5-principal-parse-ignore-realm-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_IGNORE_REALM::doc}}\index{KRB5\_PRINCIPAL\_PARSE\_IGNORE\_REALM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_PARSE\_IGNORE\_REALM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_IGNORE_REALM:KRB5_PRINCIPAL_PARSE_IGNORE_REALM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_IGNORE\_REALM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Ignore realm if present. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_IGNORE\_REALM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x8}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_PARSE\_NO\_DEF\_REALM} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_DEF_REALM:krb5-principal-parse-no-def-realm}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_DEF_REALM:krb5-principal-parse-no-def-realm-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_DEF_REALM::doc}}\index{KRB5\_PRINCIPAL\_PARSE\_NO\_DEF\_REALM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_PARSE\_NO\_DEF\_REALM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_DEF_REALM:KRB5_PRINCIPAL_PARSE_NO_DEF_REALM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_NO\_DEF\_REALM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Don’t add default realm. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_NO\_DEF\_REALM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x10}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_PARSE\_NO\_REALM} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_REALM:krb5-principal-parse-no-realm}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_REALM:krb5-principal-parse-no-realm-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_REALM::doc}}\index{KRB5\_PRINCIPAL\_PARSE\_NO\_REALM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_PARSE\_NO\_REALM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_NO_REALM:KRB5_PRINCIPAL_PARSE_NO_REALM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_NO\_REALM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Error if realm is present. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_NO\_REALM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_PARSE\_REQUIRE\_REALM} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_REQUIRE_REALM:krb5-principal-parse-require-realm}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_REQUIRE_REALM:krb5-principal-parse-require-realm-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_REQUIRE_REALM::doc}}\index{KRB5\_PRINCIPAL\_PARSE\_REQUIRE\_REALM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_PARSE\_REQUIRE\_REALM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_PARSE_REQUIRE_REALM:KRB5_PRINCIPAL_PARSE_REQUIRE_REALM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_REQUIRE\_REALM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Error if realm is not present. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_PARSE\_REQUIRE\_REALM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_UNPARSE\_DISPLAY} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_DISPLAY:krb5-principal-unparse-display}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_DISPLAY:krb5-principal-unparse-display-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_DISPLAY::doc}}\index{KRB5\_PRINCIPAL\_UNPARSE\_DISPLAY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_UNPARSE\_DISPLAY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_DISPLAY:KRB5_PRINCIPAL_UNPARSE_DISPLAY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_UNPARSE\_DISPLAY}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Don’t escape special characters. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_UNPARSE\_DISPLAY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_UNPARSE\_NO\_REALM} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_NO_REALM:krb5-principal-unparse-no-realm}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_NO_REALM:krb5-principal-unparse-no-realm-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_NO_REALM::doc}}\index{KRB5\_PRINCIPAL\_UNPARSE\_NO\_REALM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_UNPARSE\_NO\_REALM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_NO_REALM:KRB5_PRINCIPAL_UNPARSE_NO_REALM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_UNPARSE\_NO\_REALM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Omit realm always. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_UNPARSE\_NO\_REALM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRINCIPAL\_UNPARSE\_SHORT} -\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_SHORT:krb5-principal-unparse-short}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_SHORT:krb5-principal-unparse-short-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_SHORT::doc}}\index{KRB5\_PRINCIPAL\_UNPARSE\_SHORT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRINCIPAL\_UNPARSE\_SHORT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRINCIPAL_UNPARSE_SHORT:KRB5_PRINCIPAL_UNPARSE_SHORT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRINCIPAL\_UNPARSE\_SHORT}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Omit realm if it is the local realm. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRINCIPAL\_UNPARSE\_SHORT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PRIV} -\label{\detokenize{appdev/refs/macros/KRB5_PRIV:krb5-priv}}\label{\detokenize{appdev/refs/macros/KRB5_PRIV:krb5-priv-data}}\label{\detokenize{appdev/refs/macros/KRB5_PRIV::doc}}\index{KRB5\_PRIV (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PRIV}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PRIV:KRB5_PRIV}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PRIV}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Private application message. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PRIV}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)21)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD} -\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD:krb5-prompt-type-new-password}}\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD:krb5-prompt-type-new-password-data}}\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD::doc}}\index{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD:KRB5_PROMPT_TYPE_NEW_PASSWORD}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Prompt for new password (during password change) - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD\_AGAIN} -\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN:krb5-prompt-type-new-password-again}}\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN:krb5-prompt-type-new-password-again-data}}\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN::doc}}\index{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD\_AGAIN (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD\_AGAIN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN:KRB5_PROMPT_TYPE_NEW_PASSWORD_AGAIN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD\_AGAIN}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Prompt for new password again. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PROMPT\_TYPE\_NEW\_PASSWORD\_AGAIN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x3}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PROMPT\_TYPE\_PASSWORD} -\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_PASSWORD:krb5-prompt-type-password}}\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_PASSWORD:krb5-prompt-type-password-data}}\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_PASSWORD::doc}}\index{KRB5\_PROMPT\_TYPE\_PASSWORD (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PROMPT\_TYPE\_PASSWORD}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_PASSWORD:KRB5_PROMPT_TYPE_PASSWORD}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PROMPT\_TYPE\_PASSWORD}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Prompt for password. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PROMPT\_TYPE\_PASSWORD}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PROMPT\_TYPE\_PREAUTH} -\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_PREAUTH:krb5-prompt-type-preauth}}\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_PREAUTH:krb5-prompt-type-preauth-data}}\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_PREAUTH::doc}}\index{KRB5\_PROMPT\_TYPE\_PREAUTH (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PROMPT\_TYPE\_PREAUTH}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PROMPT_TYPE_PREAUTH:KRB5_PROMPT_TYPE_PREAUTH}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PROMPT\_TYPE\_PREAUTH}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Prompt for preauthentication data (such as an OTP value) - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PROMPT\_TYPE\_PREAUTH}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x4}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_PVNO} -\label{\detokenize{appdev/refs/macros/KRB5_PVNO:krb5-pvno}}\label{\detokenize{appdev/refs/macros/KRB5_PVNO:krb5-pvno-data}}\label{\detokenize{appdev/refs/macros/KRB5_PVNO::doc}}\index{KRB5\_PVNO (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_PVNO}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_PVNO:KRB5_PVNO}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_PVNO}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Protocol version number. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_PVNO}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{5}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_REALM\_BRANCH\_CHAR} -\label{\detokenize{appdev/refs/macros/KRB5_REALM_BRANCH_CHAR:krb5-realm-branch-char}}\label{\detokenize{appdev/refs/macros/KRB5_REALM_BRANCH_CHAR:krb5-realm-branch-char-data}}\label{\detokenize{appdev/refs/macros/KRB5_REALM_BRANCH_CHAR::doc}}\index{KRB5\_REALM\_BRANCH\_CHAR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_REALM\_BRANCH\_CHAR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_REALM_BRANCH_CHAR:KRB5_REALM_BRANCH_CHAR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_REALM\_BRANCH\_CHAR}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_REALM\_BRANCH\_CHAR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{\textquotesingle{}.\textquotesingle{}}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RECVAUTH\_BADAUTHVERS} -\label{\detokenize{appdev/refs/macros/KRB5_RECVAUTH_BADAUTHVERS:krb5-recvauth-badauthvers}}\label{\detokenize{appdev/refs/macros/KRB5_RECVAUTH_BADAUTHVERS:krb5-recvauth-badauthvers-data}}\label{\detokenize{appdev/refs/macros/KRB5_RECVAUTH_BADAUTHVERS::doc}}\index{KRB5\_RECVAUTH\_BADAUTHVERS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RECVAUTH\_BADAUTHVERS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RECVAUTH_BADAUTHVERS:KRB5_RECVAUTH_BADAUTHVERS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RECVAUTH\_BADAUTHVERS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RECVAUTH\_BADAUTHVERS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RECVAUTH\_SKIP\_VERSION} -\label{\detokenize{appdev/refs/macros/KRB5_RECVAUTH_SKIP_VERSION:krb5-recvauth-skip-version}}\label{\detokenize{appdev/refs/macros/KRB5_RECVAUTH_SKIP_VERSION:krb5-recvauth-skip-version-data}}\label{\detokenize{appdev/refs/macros/KRB5_RECVAUTH_SKIP_VERSION::doc}}\index{KRB5\_RECVAUTH\_SKIP\_VERSION (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RECVAUTH\_SKIP\_VERSION}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RECVAUTH_SKIP_VERSION:KRB5_RECVAUTH_SKIP_VERSION}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RECVAUTH\_SKIP\_VERSION}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RECVAUTH\_SKIP\_VERSION}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_REFERRAL\_REALM} -\label{\detokenize{appdev/refs/macros/KRB5_REFERRAL_REALM:krb5-referral-realm}}\label{\detokenize{appdev/refs/macros/KRB5_REFERRAL_REALM:krb5-referral-realm-data}}\label{\detokenize{appdev/refs/macros/KRB5_REFERRAL_REALM::doc}}\index{KRB5\_REFERRAL\_REALM (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_REFERRAL\_REALM}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_REFERRAL_REALM:KRB5_REFERRAL_REALM}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_REFERRAL\_REALM}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Constant for realm referrals. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_REFERRAL\_REALM}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{""}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_COUNT\_LOW} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_COUNT_LOW:krb5-responder-pkinit-flags-token-user-pin-count-low}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_COUNT_LOW:krb5-responder-pkinit-flags-token-user-pin-count-low-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_COUNT_LOW::doc}}\index{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_COUNT\_LOW (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_COUNT\_LOW}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_COUNT_LOW:KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_COUNT_LOW}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_COUNT\_LOW}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -This flag indicates that an incorrect PIN was supplied at least once since the last time the correct PIN was supplied. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_COUNT\_LOW}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(1 \textless{}\textless{} 0)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_FINAL\_TRY} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_FINAL_TRY:krb5-responder-pkinit-flags-token-user-pin-final-try}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_FINAL_TRY:krb5-responder-pkinit-flags-token-user-pin-final-try-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_FINAL_TRY::doc}}\index{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_FINAL\_TRY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_FINAL\_TRY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_FINAL_TRY:KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_FINAL_TRY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_FINAL\_TRY}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -This flag indicates that supplying an incorrect PIN will cause the token to lock itself. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_FINAL\_TRY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(1 \textless{}\textless{} 1)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_LOCKED} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_LOCKED:krb5-responder-pkinit-flags-token-user-pin-locked}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_LOCKED:krb5-responder-pkinit-flags-token-user-pin-locked-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_LOCKED::doc}}\index{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_LOCKED (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_LOCKED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_LOCKED:KRB5_RESPONDER_PKINIT_FLAGS_TOKEN_USER_PIN_LOCKED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_LOCKED}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -This flag indicates that the user PIN is locked, and you can’t log in to the token with it. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_USER\_PIN\_LOCKED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(1 \textless{}\textless{} 2)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_QUESTION\_PKINIT} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT:krb5-responder-question-pkinit}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT:krb5-responder-question-pkinit-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT::doc}}\index{KRB5\_RESPONDER\_QUESTION\_PKINIT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_QUESTION\_PKINIT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_PKINIT:KRB5_RESPONDER_QUESTION_PKINIT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_QUESTION\_PKINIT}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -PKINIT responder question. - -\sphinxAtStartPar -The PKINIT responder question is asked when the client needs a password that’s being used to protect key information, and is formatted as a JSON object. A specific identity’s flags value, if not zero, is the bitwise\sphinxhyphen{}OR of one or more of the KRB5\_RESPONDER\_PKINIT\_FLAGS\_TOKEN\_* flags defined below, and possibly other flags to be added later. Any resemblance to similarly\sphinxhyphen{}named CKF\_* values in the PKCS\#11 API should not be depended on. - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{p}{\PYGZob{}} -\PYG{+w}{ }\PYG{n}{identity}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{o}{:}\PYG{+w}{ }\PYG{n}{flags}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{number}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{p}{.}\PYG{p}{.}\PYG{p}{.} -\PYG{p}{\PYGZcb{}} -\end{sphinxVerbatim} - -\sphinxAtStartPar -The answer to the question MUST be JSON formatted: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{p}{\PYGZob{}} -\PYG{+w}{ }\PYG{n}{identity}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{o}{\PYGZgt{}}\PYG{+w}{ }\PYG{o}{:}\PYG{+w}{ }\PYG{n}{password}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{p}{.}\PYG{p}{.}\PYG{p}{.} -\PYG{p}{\PYGZcb{}} -\end{sphinxVerbatim} - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_QUESTION\_PKINIT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{"pkinit"}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_PIN} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_PIN:krb5-responder-otp-flags-collect-pin}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_PIN:krb5-responder-otp-flags-collect-pin-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_PIN::doc}}\index{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_PIN (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_PIN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_PIN:KRB5_RESPONDER_OTP_FLAGS_COLLECT_PIN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_PIN}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -This flag indicates that the PIN value MUST be collected. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_PIN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_TOKEN} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_TOKEN:krb5-responder-otp-flags-collect-token}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_TOKEN:krb5-responder-otp-flags-collect-token-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_TOKEN::doc}}\index{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_TOKEN (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_TOKEN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_COLLECT_TOKEN:KRB5_RESPONDER_OTP_FLAGS_COLLECT_TOKEN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_TOKEN}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -This flag indicates that the token value MUST be collected. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_TOKEN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_OTP\_FLAGS\_NEXTOTP} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_NEXTOTP:krb5-responder-otp-flags-nextotp}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_NEXTOTP:krb5-responder-otp-flags-nextotp-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_NEXTOTP::doc}}\index{KRB5\_RESPONDER\_OTP\_FLAGS\_NEXTOTP (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_OTP\_FLAGS\_NEXTOTP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_NEXTOTP:KRB5_RESPONDER_OTP_FLAGS_NEXTOTP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FLAGS\_NEXTOTP}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -This flag indicates that the token is now in re\sphinxhyphen{}synchronization mode with the server. - -\sphinxAtStartPar -The user is expected to reply with the next code displayed on the token. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FLAGS\_NEXTOTP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0004}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_OTP\_FLAGS\_SEPARATE\_PIN} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_SEPARATE_PIN:krb5-responder-otp-flags-separate-pin}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_SEPARATE_PIN:krb5-responder-otp-flags-separate-pin-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_SEPARATE_PIN::doc}}\index{KRB5\_RESPONDER\_OTP\_FLAGS\_SEPARATE\_PIN (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_OTP\_FLAGS\_SEPARATE\_PIN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FLAGS_SEPARATE_PIN:KRB5_RESPONDER_OTP_FLAGS_SEPARATE_PIN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FLAGS\_SEPARATE\_PIN}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -This flag indicates that the PIN MUST be returned as a separate item. - -\sphinxAtStartPar -This flag only takes effect if KRB5\_RESPONDER\_OTP\_FLAGS\_COLLECT\_PIN is set. If this flag is not set, the responder may either concatenate PIN + token value and store it as “value” in the answer or it may return them separately. If they are returned separately, they will be concatenated internally. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FLAGS\_SEPARATE\_PIN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0008}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_OTP\_FORMAT\_ALPHANUMERIC} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_ALPHANUMERIC:krb5-responder-otp-format-alphanumeric}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_ALPHANUMERIC:krb5-responder-otp-format-alphanumeric-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_ALPHANUMERIC::doc}}\index{KRB5\_RESPONDER\_OTP\_FORMAT\_ALPHANUMERIC (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_OTP\_FORMAT\_ALPHANUMERIC}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_ALPHANUMERIC:KRB5_RESPONDER_OTP_FORMAT_ALPHANUMERIC}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FORMAT\_ALPHANUMERIC}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FORMAT\_ALPHANUMERIC}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{2}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_OTP\_FORMAT\_DECIMAL} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_DECIMAL:krb5-responder-otp-format-decimal}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_DECIMAL:krb5-responder-otp-format-decimal-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_DECIMAL::doc}}\index{KRB5\_RESPONDER\_OTP\_FORMAT\_DECIMAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_OTP\_FORMAT\_DECIMAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_DECIMAL:KRB5_RESPONDER_OTP_FORMAT_DECIMAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FORMAT\_DECIMAL}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -These format constants identify the format of the token value. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FORMAT\_DECIMAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_OTP\_FORMAT\_HEXADECIMAL} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_HEXADECIMAL:krb5-responder-otp-format-hexadecimal}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_HEXADECIMAL:krb5-responder-otp-format-hexadecimal-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_HEXADECIMAL::doc}}\index{KRB5\_RESPONDER\_OTP\_FORMAT\_HEXADECIMAL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_OTP\_FORMAT\_HEXADECIMAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_OTP_FORMAT_HEXADECIMAL:KRB5_RESPONDER_OTP_FORMAT_HEXADECIMAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FORMAT\_HEXADECIMAL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_OTP\_FORMAT\_HEXADECIMAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_QUESTION\_OTP} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP:krb5-responder-question-otp}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP:krb5-responder-question-otp-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP::doc}}\index{KRB5\_RESPONDER\_QUESTION\_OTP (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_QUESTION\_OTP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_OTP:KRB5_RESPONDER_QUESTION_OTP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_QUESTION\_OTP}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -OTP responder question. - -\sphinxAtStartPar -The OTP responder question is asked when the KDC indicates that an OTP value is required in order to complete the authentication. The JSON format of the challenge is: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{p}{\PYGZob{}} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{service}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{optional}\PYG{p}{)}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{tokenInfo}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{p}{[} -\PYG{+w}{ }\PYG{p}{\PYGZob{}} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{flags}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{number}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{vendor}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{optional}\PYG{p}{)}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{challenge}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{optional}\PYG{p}{)}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{length}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{number}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{optional}\PYG{p}{)}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{format}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{number}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{optional}\PYG{p}{)}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{tokenID}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{optional}\PYG{p}{)}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{algID}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{optional}\PYG{p}{)}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{p}{\PYGZcb{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{p}{.}\PYG{p}{.}\PYG{p}{.} -\PYG{+w}{ }\PYG{p}{]} -\PYG{p}{\PYGZcb{}} -\end{sphinxVerbatim} - -\sphinxAtStartPar -The answer to the question MUST be JSON formatted: - -\begin{sphinxVerbatim}[commandchars=\\\{\}] -\PYG{p}{\PYGZob{}} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{tokeninfo}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{number}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{value}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{optional}\PYG{p}{)}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{+w}{ }\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{pin}\PYG{l+s}{\PYGZdq{}}\PYG{o}{:}\PYG{+w}{ }\PYG{o}{\PYGZlt{}}\PYG{n}{string}\PYG{+w}{ }\PYG{p}{(}\PYG{n}{optional}\PYG{p}{)}\PYG{o}{\PYGZgt{}}\PYG{p}{,} -\PYG{p}{\PYGZcb{}} -\end{sphinxVerbatim} - -\sphinxAtStartPar -For more detail, please see RFC 6560. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_QUESTION\_OTP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{"otp"}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_RESPONDER\_QUESTION\_PASSWORD} -\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD:krb5-responder-question-password}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD:krb5-responder-question-password-data}}\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD::doc}}\index{KRB5\_RESPONDER\_QUESTION\_PASSWORD (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_RESPONDER\_QUESTION\_PASSWORD}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_RESPONDER_QUESTION_PASSWORD:KRB5_RESPONDER_QUESTION_PASSWORD}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_RESPONDER\_QUESTION\_PASSWORD}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Long\sphinxhyphen{}term password responder question. - -\sphinxAtStartPar -This question is asked when the long\sphinxhyphen{}term password is needed. It has no challenge and the response is simply the password string. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_RESPONDER\_QUESTION\_PASSWORD}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{"password"}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_SAFE} -\label{\detokenize{appdev/refs/macros/KRB5_SAFE:krb5-safe}}\label{\detokenize{appdev/refs/macros/KRB5_SAFE:krb5-safe-data}}\label{\detokenize{appdev/refs/macros/KRB5_SAFE::doc}}\index{KRB5\_SAFE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_SAFE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_SAFE:KRB5_SAFE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_SAFE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Safe application message. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_SAFE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)20)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_SAM\_MUST\_PK\_ENCRYPT\_SAD} -\label{\detokenize{appdev/refs/macros/KRB5_SAM_MUST_PK_ENCRYPT_SAD:krb5-sam-must-pk-encrypt-sad}}\label{\detokenize{appdev/refs/macros/KRB5_SAM_MUST_PK_ENCRYPT_SAD:krb5-sam-must-pk-encrypt-sad-data}}\label{\detokenize{appdev/refs/macros/KRB5_SAM_MUST_PK_ENCRYPT_SAD::doc}}\index{KRB5\_SAM\_MUST\_PK\_ENCRYPT\_SAD (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_SAM\_MUST\_PK\_ENCRYPT\_SAD}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_SAM_MUST_PK_ENCRYPT_SAD:KRB5_SAM_MUST_PK_ENCRYPT_SAD}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_SAM\_MUST\_PK\_ENCRYPT\_SAD}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -currently must be zero - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_SAM\_MUST\_PK\_ENCRYPT\_SAD}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x20000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_SAM\_SEND\_ENCRYPTED\_SAD} -\label{\detokenize{appdev/refs/macros/KRB5_SAM_SEND_ENCRYPTED_SAD:krb5-sam-send-encrypted-sad}}\label{\detokenize{appdev/refs/macros/KRB5_SAM_SEND_ENCRYPTED_SAD:krb5-sam-send-encrypted-sad-data}}\label{\detokenize{appdev/refs/macros/KRB5_SAM_SEND_ENCRYPTED_SAD::doc}}\index{KRB5\_SAM\_SEND\_ENCRYPTED\_SAD (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_SAM\_SEND\_ENCRYPTED\_SAD}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_SAM_SEND_ENCRYPTED_SAD:KRB5_SAM_SEND_ENCRYPTED_SAD}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_SAM\_SEND\_ENCRYPTED\_SAD}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_SAM\_SEND\_ENCRYPTED\_SAD}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x40000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_SAM\_USE\_SAD\_AS\_KEY} -\label{\detokenize{appdev/refs/macros/KRB5_SAM_USE_SAD_AS_KEY:krb5-sam-use-sad-as-key}}\label{\detokenize{appdev/refs/macros/KRB5_SAM_USE_SAD_AS_KEY:krb5-sam-use-sad-as-key-data}}\label{\detokenize{appdev/refs/macros/KRB5_SAM_USE_SAD_AS_KEY::doc}}\index{KRB5\_SAM\_USE\_SAD\_AS\_KEY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_SAM\_USE\_SAD\_AS\_KEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_SAM_USE_SAD_AS_KEY:KRB5_SAM_USE_SAD_AS_KEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_SAM\_USE\_SAD\_AS\_KEY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_SAM\_USE\_SAD\_AS\_KEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x80000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_MATCH\_2ND\_TKT} -\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_2ND_TKT:krb5-tc-match-2nd-tkt}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_2ND_TKT:krb5-tc-match-2nd-tkt-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_2ND_TKT::doc}}\index{KRB5\_TC\_MATCH\_2ND\_TKT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_MATCH\_2ND\_TKT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_2ND_TKT:KRB5_TC_MATCH_2ND_TKT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_MATCH\_2ND\_TKT}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -The second ticket must match. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_MATCH\_2ND\_TKT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000080}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_MATCH\_AUTHDATA} -\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_AUTHDATA:krb5-tc-match-authdata}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_AUTHDATA:krb5-tc-match-authdata-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_AUTHDATA::doc}}\index{KRB5\_TC\_MATCH\_AUTHDATA (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_MATCH\_AUTHDATA}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_AUTHDATA:KRB5_TC_MATCH_AUTHDATA}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_MATCH\_AUTHDATA}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -The authorization data must match. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_MATCH\_AUTHDATA}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000020}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_MATCH\_FLAGS} -\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_FLAGS:krb5-tc-match-flags}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_FLAGS:krb5-tc-match-flags-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_FLAGS::doc}}\index{KRB5\_TC\_MATCH\_FLAGS (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_MATCH\_FLAGS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_FLAGS:KRB5_TC_MATCH_FLAGS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_MATCH\_FLAGS}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -All the flags set in the match credentials must be set. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_MATCH\_FLAGS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000004}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_MATCH\_FLAGS\_EXACT} -\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_FLAGS_EXACT:krb5-tc-match-flags-exact}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_FLAGS_EXACT:krb5-tc-match-flags-exact-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_FLAGS_EXACT::doc}}\index{KRB5\_TC\_MATCH\_FLAGS\_EXACT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_MATCH\_FLAGS\_EXACT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_FLAGS_EXACT:KRB5_TC_MATCH_FLAGS_EXACT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_MATCH\_FLAGS\_EXACT}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -All the flags must match exactly. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_MATCH\_FLAGS\_EXACT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000010}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_MATCH\_IS\_SKEY} -\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_IS_SKEY:krb5-tc-match-is-skey}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_IS_SKEY:krb5-tc-match-is-skey-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_IS_SKEY::doc}}\index{KRB5\_TC\_MATCH\_IS\_SKEY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_MATCH\_IS\_SKEY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_IS_SKEY:KRB5_TC_MATCH_IS_SKEY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_MATCH\_IS\_SKEY}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -The is\_skey field must match exactly. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_MATCH\_IS\_SKEY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_MATCH\_KTYPE} -\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_KTYPE:krb5-tc-match-ktype}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_KTYPE:krb5-tc-match-ktype-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_KTYPE::doc}}\index{KRB5\_TC\_MATCH\_KTYPE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_MATCH\_KTYPE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_KTYPE:KRB5_TC_MATCH_KTYPE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_MATCH\_KTYPE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -The encryption key type must match. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_MATCH\_KTYPE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000100}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_MATCH\_SRV\_NAMEONLY} -\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_SRV_NAMEONLY:krb5-tc-match-srv-nameonly}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_SRV_NAMEONLY:krb5-tc-match-srv-nameonly-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_SRV_NAMEONLY::doc}}\index{KRB5\_TC\_MATCH\_SRV\_NAMEONLY (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_MATCH\_SRV\_NAMEONLY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_SRV_NAMEONLY:KRB5_TC_MATCH_SRV_NAMEONLY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_MATCH\_SRV\_NAMEONLY}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Only the name portion of the principal name must match. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_MATCH\_SRV\_NAMEONLY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000040}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_MATCH\_TIMES} -\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_TIMES:krb5-tc-match-times}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_TIMES:krb5-tc-match-times-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_TIMES::doc}}\index{KRB5\_TC\_MATCH\_TIMES (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_MATCH\_TIMES}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_TIMES:KRB5_TC_MATCH_TIMES}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_MATCH\_TIMES}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -The requested lifetime must be at least as great as the time specified. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_MATCH\_TIMES}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_MATCH\_TIMES\_EXACT} -\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_TIMES_EXACT:krb5-tc-match-times-exact}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_TIMES_EXACT:krb5-tc-match-times-exact-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_TIMES_EXACT::doc}}\index{KRB5\_TC\_MATCH\_TIMES\_EXACT (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_MATCH\_TIMES\_EXACT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_MATCH_TIMES_EXACT:KRB5_TC_MATCH_TIMES_EXACT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_MATCH\_TIMES\_EXACT}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -All the time fields must match exactly. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_MATCH\_TIMES\_EXACT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000008}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_NOTICKET} -\label{\detokenize{appdev/refs/macros/KRB5_TC_NOTICKET:krb5-tc-noticket}}\label{\detokenize{appdev/refs/macros/KRB5_TC_NOTICKET:krb5-tc-noticket-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_NOTICKET::doc}}\index{KRB5\_TC\_NOTICKET (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_NOTICKET}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_NOTICKET:KRB5_TC_NOTICKET}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_NOTICKET}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_NOTICKET}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000002}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_OPENCLOSE} -\label{\detokenize{appdev/refs/macros/KRB5_TC_OPENCLOSE:krb5-tc-openclose}}\label{\detokenize{appdev/refs/macros/KRB5_TC_OPENCLOSE:krb5-tc-openclose-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_OPENCLOSE::doc}}\index{KRB5\_TC\_OPENCLOSE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_OPENCLOSE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_OPENCLOSE:KRB5_TC_OPENCLOSE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_OPENCLOSE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Open and close the file for each cache operation. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_OPENCLOSE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TC\_SUPPORTED\_KTYPES} -\label{\detokenize{appdev/refs/macros/KRB5_TC_SUPPORTED_KTYPES:krb5-tc-supported-ktypes}}\label{\detokenize{appdev/refs/macros/KRB5_TC_SUPPORTED_KTYPES:krb5-tc-supported-ktypes-data}}\label{\detokenize{appdev/refs/macros/KRB5_TC_SUPPORTED_KTYPES::doc}}\index{KRB5\_TC\_SUPPORTED\_KTYPES (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TC\_SUPPORTED\_KTYPES}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TC_SUPPORTED_KTYPES:KRB5_TC_SUPPORTED_KTYPES}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TC\_SUPPORTED\_KTYPES}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -The supported key types must match. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TC\_SUPPORTED\_KTYPES}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00000200}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TGS\_NAME} -\label{\detokenize{appdev/refs/macros/KRB5_TGS_NAME:krb5-tgs-name}}\label{\detokenize{appdev/refs/macros/KRB5_TGS_NAME:krb5-tgs-name-data}}\label{\detokenize{appdev/refs/macros/KRB5_TGS_NAME::doc}}\index{KRB5\_TGS\_NAME (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TGS\_NAME}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TGS_NAME:KRB5_TGS_NAME}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TGS\_NAME}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TGS\_NAME}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{"krbtgt"}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TGS\_NAME\_SIZE} -\label{\detokenize{appdev/refs/macros/KRB5_TGS_NAME_SIZE:krb5-tgs-name-size}}\label{\detokenize{appdev/refs/macros/KRB5_TGS_NAME_SIZE:krb5-tgs-name-size-data}}\label{\detokenize{appdev/refs/macros/KRB5_TGS_NAME_SIZE::doc}}\index{KRB5\_TGS\_NAME\_SIZE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TGS\_NAME\_SIZE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TGS_NAME_SIZE:KRB5_TGS_NAME_SIZE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TGS\_NAME\_SIZE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TGS\_NAME\_SIZE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{6}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TGS\_REP} -\label{\detokenize{appdev/refs/macros/KRB5_TGS_REP:krb5-tgs-rep}}\label{\detokenize{appdev/refs/macros/KRB5_TGS_REP:krb5-tgs-rep-data}}\label{\detokenize{appdev/refs/macros/KRB5_TGS_REP::doc}}\index{KRB5\_TGS\_REP (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TGS\_REP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TGS_REP:KRB5_TGS_REP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TGS\_REP}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Response to TGS request. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TGS\_REP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)13)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TGS\_REQ} -\label{\detokenize{appdev/refs/macros/KRB5_TGS_REQ:krb5-tgs-req}}\label{\detokenize{appdev/refs/macros/KRB5_TGS_REQ:krb5-tgs-req-data}}\label{\detokenize{appdev/refs/macros/KRB5_TGS_REQ::doc}}\index{KRB5\_TGS\_REQ (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TGS\_REQ}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TGS_REQ:KRB5_TGS_REQ}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TGS\_REQ}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Ticket granting server request. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TGS\_REQ}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((krb5\_msgtype)12)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_TKT\_CREDS\_STEP\_FLAG\_CONTINUE} -\label{\detokenize{appdev/refs/macros/KRB5_TKT_CREDS_STEP_FLAG_CONTINUE:krb5-tkt-creds-step-flag-continue}}\label{\detokenize{appdev/refs/macros/KRB5_TKT_CREDS_STEP_FLAG_CONTINUE:krb5-tkt-creds-step-flag-continue-data}}\label{\detokenize{appdev/refs/macros/KRB5_TKT_CREDS_STEP_FLAG_CONTINUE::doc}}\index{KRB5\_TKT\_CREDS\_STEP\_FLAG\_CONTINUE (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_TKT\_CREDS\_STEP\_FLAG\_CONTINUE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_TKT_CREDS_STEP_FLAG_CONTINUE:KRB5_TKT_CREDS_STEP_FLAG_CONTINUE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_TKT\_CREDS\_STEP\_FLAG\_CONTINUE}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -More responses needed. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_TKT\_CREDS\_STEP\_FLAG\_CONTINUE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x1}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_VERIFY\_INIT\_CREDS\_OPT\_AP\_REQ\_NOFAIL} -\label{\detokenize{appdev/refs/macros/KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL:krb5-verify-init-creds-opt-ap-req-nofail}}\label{\detokenize{appdev/refs/macros/KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL:krb5-verify-init-creds-opt-ap-req-nofail-data}}\label{\detokenize{appdev/refs/macros/KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL::doc}}\index{KRB5\_VERIFY\_INIT\_CREDS\_OPT\_AP\_REQ\_NOFAIL (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_VERIFY\_INIT\_CREDS\_OPT\_AP\_REQ\_NOFAIL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL:KRB5_VERIFY_INIT_CREDS_OPT_AP_REQ_NOFAIL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_VERIFY\_INIT\_CREDS\_OPT\_AP\_REQ\_NOFAIL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_VERIFY\_INIT\_CREDS\_OPT\_AP\_REQ\_NOFAIL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x0001}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{KRB5\_WELLKNOWN\_NAMESTR} -\label{\detokenize{appdev/refs/macros/KRB5_WELLKNOWN_NAMESTR:krb5-wellknown-namestr}}\label{\detokenize{appdev/refs/macros/KRB5_WELLKNOWN_NAMESTR:krb5-wellknown-namestr-data}}\label{\detokenize{appdev/refs/macros/KRB5_WELLKNOWN_NAMESTR::doc}}\index{KRB5\_WELLKNOWN\_NAMESTR (built\sphinxhyphen{}in variable)@\spxentry{KRB5\_WELLKNOWN\_NAMESTR}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/KRB5_WELLKNOWN_NAMESTR:KRB5_WELLKNOWN_NAMESTR}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{KRB5\_WELLKNOWN\_NAMESTR}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -First component of NT\_WELLKNOWN principals. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{KRB5\_WELLKNOWN\_NAMESTR}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{"WELLKNOWN"}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{LR\_TYPE\_INTERPRETATION\_MASK} -\label{\detokenize{appdev/refs/macros/LR_TYPE_INTERPRETATION_MASK:lr-type-interpretation-mask}}\label{\detokenize{appdev/refs/macros/LR_TYPE_INTERPRETATION_MASK:lr-type-interpretation-mask-data}}\label{\detokenize{appdev/refs/macros/LR_TYPE_INTERPRETATION_MASK::doc}}\index{LR\_TYPE\_INTERPRETATION\_MASK (built\sphinxhyphen{}in variable)@\spxentry{LR\_TYPE\_INTERPRETATION\_MASK}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/LR_TYPE_INTERPRETATION_MASK:LR_TYPE_INTERPRETATION_MASK}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{LR\_TYPE\_INTERPRETATION\_MASK}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{LR\_TYPE\_INTERPRETATION\_MASK}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x7fff}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{LR\_TYPE\_THIS\_SERVER\_ONLY} -\label{\detokenize{appdev/refs/macros/LR_TYPE_THIS_SERVER_ONLY:lr-type-this-server-only}}\label{\detokenize{appdev/refs/macros/LR_TYPE_THIS_SERVER_ONLY:lr-type-this-server-only-data}}\label{\detokenize{appdev/refs/macros/LR_TYPE_THIS_SERVER_ONLY::doc}}\index{LR\_TYPE\_THIS\_SERVER\_ONLY (built\sphinxhyphen{}in variable)@\spxentry{LR\_TYPE\_THIS\_SERVER\_ONLY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/LR_TYPE_THIS_SERVER_ONLY:LR_TYPE_THIS_SERVER_ONLY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{LR\_TYPE\_THIS\_SERVER\_ONLY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{LR\_TYPE\_THIS\_SERVER\_ONLY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x8000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{MAX\_KEYTAB\_NAME\_LEN} -\label{\detokenize{appdev/refs/macros/MAX_KEYTAB_NAME_LEN:max-keytab-name-len}}\label{\detokenize{appdev/refs/macros/MAX_KEYTAB_NAME_LEN:max-keytab-name-len-data}}\label{\detokenize{appdev/refs/macros/MAX_KEYTAB_NAME_LEN::doc}}\index{MAX\_KEYTAB\_NAME\_LEN (built\sphinxhyphen{}in variable)@\spxentry{MAX\_KEYTAB\_NAME\_LEN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/MAX_KEYTAB_NAME_LEN:MAX_KEYTAB_NAME_LEN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{MAX\_KEYTAB\_NAME\_LEN}}} -\pysigstopsignatures -\end{fulllineitems} - - -\sphinxAtStartPar -Long enough for MAXPATHLEN + some extra. - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{MAX\_KEYTAB\_NAME\_LEN}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{1100}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{MSEC\_DIRBIT} -\label{\detokenize{appdev/refs/macros/MSEC_DIRBIT:msec-dirbit}}\label{\detokenize{appdev/refs/macros/MSEC_DIRBIT:msec-dirbit-data}}\label{\detokenize{appdev/refs/macros/MSEC_DIRBIT::doc}}\index{MSEC\_DIRBIT (built\sphinxhyphen{}in variable)@\spxentry{MSEC\_DIRBIT}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/MSEC_DIRBIT:MSEC_DIRBIT}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{MSEC\_DIRBIT}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{MSEC\_DIRBIT}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x8000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{MSEC\_VAL\_MASK} -\label{\detokenize{appdev/refs/macros/MSEC_VAL_MASK:msec-val-mask}}\label{\detokenize{appdev/refs/macros/MSEC_VAL_MASK:msec-val-mask-data}}\label{\detokenize{appdev/refs/macros/MSEC_VAL_MASK::doc}}\index{MSEC\_VAL\_MASK (built\sphinxhyphen{}in variable)@\spxentry{MSEC\_VAL\_MASK}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/MSEC_VAL_MASK:MSEC_VAL_MASK}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{MSEC\_VAL\_MASK}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{MSEC\_VAL\_MASK}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x7fff}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{SALT\_TYPE\_AFS\_LENGTH} -\label{\detokenize{appdev/refs/macros/SALT_TYPE_AFS_LENGTH:salt-type-afs-length}}\label{\detokenize{appdev/refs/macros/SALT_TYPE_AFS_LENGTH:salt-type-afs-length-data}}\label{\detokenize{appdev/refs/macros/SALT_TYPE_AFS_LENGTH::doc}}\index{SALT\_TYPE\_AFS\_LENGTH (built\sphinxhyphen{}in variable)@\spxentry{SALT\_TYPE\_AFS\_LENGTH}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/SALT_TYPE_AFS_LENGTH:SALT_TYPE_AFS_LENGTH}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{SALT\_TYPE\_AFS\_LENGTH}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{SALT\_TYPE\_AFS\_LENGTH}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{UINT\_MAX}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{SALT\_TYPE\_NO\_LENGTH} -\label{\detokenize{appdev/refs/macros/SALT_TYPE_NO_LENGTH:salt-type-no-length}}\label{\detokenize{appdev/refs/macros/SALT_TYPE_NO_LENGTH:salt-type-no-length-data}}\label{\detokenize{appdev/refs/macros/SALT_TYPE_NO_LENGTH::doc}}\index{SALT\_TYPE\_NO\_LENGTH (built\sphinxhyphen{}in variable)@\spxentry{SALT\_TYPE\_NO\_LENGTH}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/SALT_TYPE_NO_LENGTH:SALT_TYPE_NO_LENGTH}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{SALT\_TYPE\_NO\_LENGTH}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{SALT\_TYPE\_NO\_LENGTH}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{UINT\_MAX}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{THREEPARAMOPEN} -\label{\detokenize{appdev/refs/macros/THREEPARAMOPEN:threeparamopen}}\label{\detokenize{appdev/refs/macros/THREEPARAMOPEN:threeparamopen-data}}\label{\detokenize{appdev/refs/macros/THREEPARAMOPEN::doc}}\index{THREEPARAMOPEN (built\sphinxhyphen{}in variable)@\spxentry{THREEPARAMOPEN}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/THREEPARAMOPEN:THREEPARAMOPEN}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{THREEPARAMOPEN}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{THREEPARAMOPEN (x, y, z)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{open(x,y,z)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_ANONYMOUS} -\label{\detokenize{appdev/refs/macros/TKT_FLG_ANONYMOUS:tkt-flg-anonymous}}\label{\detokenize{appdev/refs/macros/TKT_FLG_ANONYMOUS:tkt-flg-anonymous-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_ANONYMOUS::doc}}\index{TKT\_FLG\_ANONYMOUS (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_ANONYMOUS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_ANONYMOUS:TKT_FLG_ANONYMOUS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_ANONYMOUS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_ANONYMOUS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00008000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_ENC\_PA\_REP} -\label{\detokenize{appdev/refs/macros/TKT_FLG_ENC_PA_REP:tkt-flg-enc-pa-rep}}\label{\detokenize{appdev/refs/macros/TKT_FLG_ENC_PA_REP:tkt-flg-enc-pa-rep-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_ENC_PA_REP::doc}}\index{TKT\_FLG\_ENC\_PA\_REP (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_ENC\_PA\_REP}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_ENC_PA_REP:TKT_FLG_ENC_PA_REP}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_ENC\_PA\_REP}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_ENC\_PA\_REP}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00010000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_FORWARDABLE} -\label{\detokenize{appdev/refs/macros/TKT_FLG_FORWARDABLE:tkt-flg-forwardable}}\label{\detokenize{appdev/refs/macros/TKT_FLG_FORWARDABLE:tkt-flg-forwardable-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_FORWARDABLE::doc}}\index{TKT\_FLG\_FORWARDABLE (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_FORWARDABLE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_FORWARDABLE:TKT_FLG_FORWARDABLE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_FORWARDABLE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_FORWARDABLE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x40000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_FORWARDED} -\label{\detokenize{appdev/refs/macros/TKT_FLG_FORWARDED:tkt-flg-forwarded}}\label{\detokenize{appdev/refs/macros/TKT_FLG_FORWARDED:tkt-flg-forwarded-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_FORWARDED::doc}}\index{TKT\_FLG\_FORWARDED (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_FORWARDED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_FORWARDED:TKT_FLG_FORWARDED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_FORWARDED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_FORWARDED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x20000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_HW\_AUTH} -\label{\detokenize{appdev/refs/macros/TKT_FLG_HW_AUTH:tkt-flg-hw-auth}}\label{\detokenize{appdev/refs/macros/TKT_FLG_HW_AUTH:tkt-flg-hw-auth-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_HW_AUTH::doc}}\index{TKT\_FLG\_HW\_AUTH (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_HW\_AUTH}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_HW_AUTH:TKT_FLG_HW_AUTH}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_HW\_AUTH}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_HW\_AUTH}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00100000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_INITIAL} -\label{\detokenize{appdev/refs/macros/TKT_FLG_INITIAL:tkt-flg-initial}}\label{\detokenize{appdev/refs/macros/TKT_FLG_INITIAL:tkt-flg-initial-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_INITIAL::doc}}\index{TKT\_FLG\_INITIAL (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_INITIAL}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_INITIAL:TKT_FLG_INITIAL}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_INITIAL}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_INITIAL}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00400000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_INVALID} -\label{\detokenize{appdev/refs/macros/TKT_FLG_INVALID:tkt-flg-invalid}}\label{\detokenize{appdev/refs/macros/TKT_FLG_INVALID:tkt-flg-invalid-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_INVALID::doc}}\index{TKT\_FLG\_INVALID (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_INVALID}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_INVALID:TKT_FLG_INVALID}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_INVALID}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_INVALID}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x01000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_MAY\_POSTDATE} -\label{\detokenize{appdev/refs/macros/TKT_FLG_MAY_POSTDATE:tkt-flg-may-postdate}}\label{\detokenize{appdev/refs/macros/TKT_FLG_MAY_POSTDATE:tkt-flg-may-postdate-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_MAY_POSTDATE::doc}}\index{TKT\_FLG\_MAY\_POSTDATE (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_MAY\_POSTDATE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_MAY_POSTDATE:TKT_FLG_MAY_POSTDATE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_MAY\_POSTDATE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_MAY\_POSTDATE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x04000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_OK\_AS\_DELEGATE} -\label{\detokenize{appdev/refs/macros/TKT_FLG_OK_AS_DELEGATE:tkt-flg-ok-as-delegate}}\label{\detokenize{appdev/refs/macros/TKT_FLG_OK_AS_DELEGATE:tkt-flg-ok-as-delegate-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_OK_AS_DELEGATE::doc}}\index{TKT\_FLG\_OK\_AS\_DELEGATE (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_OK\_AS\_DELEGATE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_OK_AS_DELEGATE:TKT_FLG_OK_AS_DELEGATE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_OK\_AS\_DELEGATE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_OK\_AS\_DELEGATE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00040000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_POSTDATED} -\label{\detokenize{appdev/refs/macros/TKT_FLG_POSTDATED:tkt-flg-postdated}}\label{\detokenize{appdev/refs/macros/TKT_FLG_POSTDATED:tkt-flg-postdated-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_POSTDATED::doc}}\index{TKT\_FLG\_POSTDATED (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_POSTDATED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_POSTDATED:TKT_FLG_POSTDATED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_POSTDATED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_POSTDATED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x02000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_PRE\_AUTH} -\label{\detokenize{appdev/refs/macros/TKT_FLG_PRE_AUTH:tkt-flg-pre-auth}}\label{\detokenize{appdev/refs/macros/TKT_FLG_PRE_AUTH:tkt-flg-pre-auth-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_PRE_AUTH::doc}}\index{TKT\_FLG\_PRE\_AUTH (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_PRE\_AUTH}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_PRE_AUTH:TKT_FLG_PRE_AUTH}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_PRE\_AUTH}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_PRE\_AUTH}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00200000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_PROXIABLE} -\label{\detokenize{appdev/refs/macros/TKT_FLG_PROXIABLE:tkt-flg-proxiable}}\label{\detokenize{appdev/refs/macros/TKT_FLG_PROXIABLE:tkt-flg-proxiable-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_PROXIABLE::doc}}\index{TKT\_FLG\_PROXIABLE (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_PROXIABLE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_PROXIABLE:TKT_FLG_PROXIABLE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_PROXIABLE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_PROXIABLE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x10000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_PROXY} -\label{\detokenize{appdev/refs/macros/TKT_FLG_PROXY:tkt-flg-proxy}}\label{\detokenize{appdev/refs/macros/TKT_FLG_PROXY:tkt-flg-proxy-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_PROXY::doc}}\index{TKT\_FLG\_PROXY (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_PROXY}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_PROXY:TKT_FLG_PROXY}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_PROXY}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_PROXY}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x08000000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_RENEWABLE} -\label{\detokenize{appdev/refs/macros/TKT_FLG_RENEWABLE:tkt-flg-renewable}}\label{\detokenize{appdev/refs/macros/TKT_FLG_RENEWABLE:tkt-flg-renewable-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_RENEWABLE::doc}}\index{TKT\_FLG\_RENEWABLE (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_RENEWABLE}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_RENEWABLE:TKT_FLG_RENEWABLE}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_RENEWABLE}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_RENEWABLE}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00800000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{TKT\_FLG\_TRANSIT\_POLICY\_CHECKED} -\label{\detokenize{appdev/refs/macros/TKT_FLG_TRANSIT_POLICY_CHECKED:tkt-flg-transit-policy-checked}}\label{\detokenize{appdev/refs/macros/TKT_FLG_TRANSIT_POLICY_CHECKED:tkt-flg-transit-policy-checked-data}}\label{\detokenize{appdev/refs/macros/TKT_FLG_TRANSIT_POLICY_CHECKED::doc}}\index{TKT\_FLG\_TRANSIT\_POLICY\_CHECKED (built\sphinxhyphen{}in variable)@\spxentry{TKT\_FLG\_TRANSIT\_POLICY\_CHECKED}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/TKT_FLG_TRANSIT_POLICY_CHECKED:TKT_FLG_TRANSIT_POLICY_CHECKED}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{TKT\_FLG\_TRANSIT\_POLICY\_CHECKED}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{TKT\_FLG\_TRANSIT\_POLICY\_CHECKED}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{0x00080000}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{VALID\_INT\_BITS} -\label{\detokenize{appdev/refs/macros/VALID_INT_BITS:valid-int-bits}}\label{\detokenize{appdev/refs/macros/VALID_INT_BITS:valid-int-bits-data}}\label{\detokenize{appdev/refs/macros/VALID_INT_BITS::doc}}\index{VALID\_INT\_BITS (built\sphinxhyphen{}in variable)@\spxentry{VALID\_INT\_BITS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/VALID_INT_BITS:VALID_INT_BITS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{VALID\_INT\_BITS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{VALID\_INT\_BITS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{INT\_MAX}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{VALID\_UINT\_BITS} -\label{\detokenize{appdev/refs/macros/VALID_UINT_BITS:valid-uint-bits}}\label{\detokenize{appdev/refs/macros/VALID_UINT_BITS:valid-uint-bits-data}}\label{\detokenize{appdev/refs/macros/VALID_UINT_BITS::doc}}\index{VALID\_UINT\_BITS (built\sphinxhyphen{}in variable)@\spxentry{VALID\_UINT\_BITS}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/VALID_UINT_BITS:VALID_UINT_BITS}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{VALID\_UINT\_BITS}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{VALID\_UINT\_BITS}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{UINT\_MAX}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_const} -\label{\detokenize{appdev/refs/macros/krb5_const:krb5-const}}\label{\detokenize{appdev/refs/macros/krb5_const:krb5-const-data}}\label{\detokenize{appdev/refs/macros/krb5_const::doc}}\index{krb5\_const (built\sphinxhyphen{}in variable)@\spxentry{krb5\_const}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_const:krb5_const}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_const}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_const}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{const}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_princ\_component} -\label{\detokenize{appdev/refs/macros/krb5_princ_component:krb5-princ-component}}\label{\detokenize{appdev/refs/macros/krb5_princ_component:krb5-princ-component-data}}\label{\detokenize{appdev/refs/macros/krb5_princ_component::doc}}\index{krb5\_princ\_component (built\sphinxhyphen{}in variable)@\spxentry{krb5\_princ\_component}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_princ_component:krb5_princ_component}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_princ\_component}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_princ\_component (context, princ, i)}} -& -\sphinxAtStartPar -\textasciigrave{}\textasciigrave{} (((i) \textless{} krb5\_princ\_size(context, princ)) ? (princ)\sphinxhyphen{}\textgreater{}data + (i) : NULL)\textasciigrave{}\textasciigrave{} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_princ\_name} -\label{\detokenize{appdev/refs/macros/krb5_princ_name:krb5-princ-name}}\label{\detokenize{appdev/refs/macros/krb5_princ_name:krb5-princ-name-data}}\label{\detokenize{appdev/refs/macros/krb5_princ_name::doc}}\index{krb5\_princ\_name (built\sphinxhyphen{}in variable)@\spxentry{krb5\_princ\_name}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_princ_name:krb5_princ_name}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_princ\_name}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_princ\_name (context, princ)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(princ)\sphinxhyphen{}\textgreater{}data}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_princ\_realm} -\label{\detokenize{appdev/refs/macros/krb5_princ_realm:krb5-princ-realm}}\label{\detokenize{appdev/refs/macros/krb5_princ_realm:krb5-princ-realm-data}}\label{\detokenize{appdev/refs/macros/krb5_princ_realm::doc}}\index{krb5\_princ\_realm (built\sphinxhyphen{}in variable)@\spxentry{krb5\_princ\_realm}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_princ_realm:krb5_princ_realm}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_princ\_realm}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_princ\_realm (context, princ)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(\&(princ)\sphinxhyphen{}\textgreater{}realm)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_princ\_set\_realm} -\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm:krb5-princ-set-realm}}\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm:krb5-princ-set-realm-data}}\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm::doc}}\index{krb5\_princ\_set\_realm (built\sphinxhyphen{}in variable)@\spxentry{krb5\_princ\_set\_realm}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm:krb5_princ_set_realm}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_princ\_set\_realm}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_princ\_set\_realm (context, princ, value)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((princ)\sphinxhyphen{}\textgreater{}realm = *(value))}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_princ\_set\_realm\_data} -\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm_data:krb5-princ-set-realm-data}}\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm_data:krb5-princ-set-realm-data-data}}\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm_data::doc}}\index{krb5\_princ\_set\_realm\_data (built\sphinxhyphen{}in variable)@\spxentry{krb5\_princ\_set\_realm\_data}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm_data:krb5_princ_set_realm_data}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_princ\_set\_realm\_data}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_princ\_set\_realm\_data (context, princ, value)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(princ)\sphinxhyphen{}\textgreater{}realm.data = (value)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_princ\_set\_realm\_length} -\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm_length:krb5-princ-set-realm-length}}\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm_length:krb5-princ-set-realm-length-data}}\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm_length::doc}}\index{krb5\_princ\_set\_realm\_length (built\sphinxhyphen{}in variable)@\spxentry{krb5\_princ\_set\_realm\_length}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_princ_set_realm_length:krb5_princ_set_realm_length}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_princ\_set\_realm\_length}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_princ\_set\_realm\_length (context, princ, value)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(princ)\sphinxhyphen{}\textgreater{}realm.length = (value)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_princ\_size} -\label{\detokenize{appdev/refs/macros/krb5_princ_size:krb5-princ-size}}\label{\detokenize{appdev/refs/macros/krb5_princ_size:krb5-princ-size-data}}\label{\detokenize{appdev/refs/macros/krb5_princ_size::doc}}\index{krb5\_princ\_size (built\sphinxhyphen{}in variable)@\spxentry{krb5\_princ\_size}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_princ_size:krb5_princ_size}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_princ\_size}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_princ\_size (context, princ)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(princ)\sphinxhyphen{}\textgreater{}length}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_princ\_type} -\label{\detokenize{appdev/refs/macros/krb5_princ_type:krb5-princ-type}}\label{\detokenize{appdev/refs/macros/krb5_princ_type:krb5-princ-type-data}}\label{\detokenize{appdev/refs/macros/krb5_princ_type::doc}}\index{krb5\_princ\_type (built\sphinxhyphen{}in variable)@\spxentry{krb5\_princ\_type}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_princ_type:krb5_princ_type}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_princ\_type}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_princ\_type (context, princ)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(princ)\sphinxhyphen{}\textgreater{}type}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_roundup} -\label{\detokenize{appdev/refs/macros/krb5_roundup:krb5-roundup}}\label{\detokenize{appdev/refs/macros/krb5_roundup:krb5-roundup-data}}\label{\detokenize{appdev/refs/macros/krb5_roundup::doc}}\index{krb5\_roundup (built\sphinxhyphen{}in variable)@\spxentry{krb5\_roundup}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_roundup:krb5_roundup}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_roundup}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_roundup (x, y)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((((x) + (y) \sphinxhyphen{} 1)/(y))*(y))}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_x} -\label{\detokenize{appdev/refs/macros/krb5_x:krb5-x}}\label{\detokenize{appdev/refs/macros/krb5_x:krb5-x-data}}\label{\detokenize{appdev/refs/macros/krb5_x::doc}}\index{krb5\_x (built\sphinxhyphen{}in variable)@\spxentry{krb5\_x}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_x:krb5_x}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_x}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_x (ptr, args)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((ptr)?((*(ptr)) args):(abort(),1))}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb5\_xc} -\label{\detokenize{appdev/refs/macros/krb5_xc:krb5-xc}}\label{\detokenize{appdev/refs/macros/krb5_xc:krb5-xc-data}}\label{\detokenize{appdev/refs/macros/krb5_xc::doc}}\index{krb5\_xc (built\sphinxhyphen{}in variable)@\spxentry{krb5\_xc}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb5_xc:krb5_xc}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb5\_xc}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_xc (ptr, args)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{((ptr)?((*(ptr)) args):(abort(),(char*)0))}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - - -\subsection{Deprecated macros} -\label{\detokenize{appdev/refs/macros/index:deprecated-macros}} -\sphinxstepscope - - -\subsubsection{krb524\_convert\_creds\_kdc} -\label{\detokenize{appdev/refs/macros/krb524_convert_creds_kdc:krb524-convert-creds-kdc}}\label{\detokenize{appdev/refs/macros/krb524_convert_creds_kdc:krb524-convert-creds-kdc-data}}\label{\detokenize{appdev/refs/macros/krb524_convert_creds_kdc::doc}}\index{krb524\_convert\_creds\_kdc (built\sphinxhyphen{}in variable)@\spxentry{krb524\_convert\_creds\_kdc}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb524_convert_creds_kdc:krb524_convert_creds_kdc}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb524\_convert\_creds\_kdc}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb524\_convert\_creds\_kdc}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb5\_524\_convert\_creds}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - -\sphinxstepscope - - -\subsubsection{krb524\_init\_ets} -\label{\detokenize{appdev/refs/macros/krb524_init_ets:krb524-init-ets}}\label{\detokenize{appdev/refs/macros/krb524_init_ets:krb524-init-ets-data}}\label{\detokenize{appdev/refs/macros/krb524_init_ets::doc}}\index{krb524\_init\_ets (built\sphinxhyphen{}in variable)@\spxentry{krb524\_init\_ets}\spxextra{built\sphinxhyphen{}in variable}} - -\begin{fulllineitems} -\phantomsection\label{\detokenize{appdev/refs/macros/krb524_init_ets:krb524_init_ets}} -\pysigstartsignatures -\pysigline{\sphinxbfcode{\sphinxupquote{krb524\_init\_ets}}} -\pysigstopsignatures -\end{fulllineitems} - - - -\begin{savenotes}\sphinxattablestart -\sphinxthistablewithglobalstyle -\centering -\begin{tabulary}{\linewidth}[t]{TT} -\sphinxtoprule -\sphinxtableatstartofbodyhook -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{krb524\_init\_ets (x)}} -& -\sphinxAtStartPar -\sphinxcode{\sphinxupquote{(0)}} -\\ -\sphinxbottomrule -\end{tabulary} -\sphinxtableafterendhook\par -\sphinxattableend\end{savenotes} - - - -\renewcommand{\indexname}{Index} -\printindex -\end{document}
\ No newline at end of file |