上下文是以 rpc_gss_seccreate() 呼叫所建立的。此函數以下列所述為其引數﹕
一個客戶端控點(例如 clnt_create() 傳回的)
伺服器主管的名稱(例如 nfs@acme.com)
作業階段的機制(例如 Kerberos V5)
安全服務類型(例如保密性)
作業階段的 QOP
大多數的使用可以保持不公開(不透明)的兩個 GSS-API 參數(亦即程式設計師可以只供應 NULL 數值)
它會傳回一個 AUTH 辯證控點。範例 8-1 會顯示如何使用 rpc_gss_seccreate() 來以 Kerberos V5 安全機制及整合性服務建立一個上下文﹕
CLIENT *clnt; /* client handle */ char server_host[] = "foo"; char service_name[] = "nfs@eng.acme.com"; char mech[] = "kerberos_v5"; clnt = clnt_create(server_host, SERVER_PROG, SERV_VERS, "netpath"); clnt->clnt_auth = rpc_gss_seccreate(clnt, service_name, mech, rpc_gss_svc_integrity, NULL, NULL, NULL); . . .
有關 範例 8-1 的幾點注意事項為﹕
雖然機制被明確地宣稱(為了易讀起見),它可以更一般性地從可用機制表中,利用 rpc_gss_get_mechanisms() 以程式的方式來獲得。
QOP 被傳作一個 NULL 以將 QOP 設定為此機制的預設值。否則,一個有效的數值可以如同機制一樣,利用 rpc_gss_get_mechanisms() 以程式來獲得。請參見 rpc_gss_get_mechanisms(3N) 線上援助頁中的詳細資訊。
安全服務類型,rpc_gss_svc_integrity,是一種 RPCSEC_GSS 類型的 enumrpc_gss_service_t。rpc_gss_service_t 有下列格式﹕
typedef enum { rpc_gss_svc_default = 0, rpc_gss_svc_none = 1, rpc_gss_svc_integrity = 2, rpc_gss_svc_privacy = 3 } rpc_gss_service_t;
預設的安全服務與整合性對映,因此程式設計師可能會指定 rpc_gss_svc_default 並獲得相同的結果。
如需更詳細的資訊,請參見 rpc_gss_seccreate(3N) 線上援助頁。