Kontexter skapas med anropet rpc_gss_seccreate(). Följande argument gäller för den här funktionen:
En klienthanterare (returneras t ex av clnt_create())
Namnet på serverprincipalen (t ex nfs@acme.com)
Mekanismen (t ex Kerberos V5) för sessionen.
Typen av säkerhetstjänst (t ex skydd av personuppgifter (privacy))
QOP:n för sessionen
Två GSS-API-parametrar som kan döljas för de flesta användningsområden (programmeraren kan ange null-värden)
Den ger en AUTH -verifieringshanterare. Exempel 8-1 visar hur rpc_gss_seccreate() kan användas för att skapa en kontext med säkerhetsmekanismen Kerberos V5 och integritetstjänsten:
CLIENT *clnt; /* klienthanterare */ char server_host[] = "foo"; char service_name[] = "nfs@eng.acme.com"; char mech[] = "kerberos_v5"; clnt = clnt_create(server_host, SERVER_PROG, SERV_VERS, "nätsökväg"); clnt->clnt_auth = rpc_gss_seccreate(clnt, service_name, mech, rpc_gss_svc_integrity, NULL, NULL, NULL); . . .
Följande är viktigt att tänka på för Exempel 8-1:
Även om mekanismen har deklarerats uttryckligen (för läsbarhetens skull) är det vanligare att den hämtas i program med rpc_gss_get_mechanisms() ur en tabell med tillgängliga mekanismer.
QOP:n överförs som NULL, vilket anger QOP:n till den här mekanismens standardvärde. Annars kan ett giltigt värde, på samma sätt som för mekanismen, hämtas i program med rpc_gss_get_mechanisms(). Mer information finns i direkthjälpsavsnittet (man page) rpc_gss_get_mechanisms(3N).
Typen av säkerhetstjänst, rpc_gss_svc_integrity, är en enum av RPCSEC_GSS-typen. rpc_gss_service_t. rpc_gss_service_t har följande format:
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;
Standardsäkerhetstjänsten avbildas till "integrity", så programmeraren kunde ha angett rpc_gss_svc_default för att få samma resultat.
Mer information finns i direkthjälpsavsnittet (man page) rpc_gss_seccreate(3N).