source: rtems/cpukit/librpc/src/rpc/rpc_secure.3 @ f26145b

4.104.114.84.95
Last change on this file since f26145b was df49c60, checked in by Joel Sherrill <joel.sherrill@…>, on 06/12/00 at 15:00:15

Merged from 4.5.0-beta3a

  • Property mode set to 100644
File size: 5.8 KB
Line 
1.\" @(#)rpc_secure.3n   2.1 88/08/08 4.0 RPCSRC; from 1.19 88/06/24 SMI
2.\" $FreeBSD: src/lib/libc/rpc/rpc_secure.3,v 1.6 2000/03/02 09:13:48 sheldonh Exp $
3.\"
4.Dd February 16, 1988
5.Dt RPC 3
6.Sh NAME
7.Nm rpc_secure
8.Nd library routines for secure remote procedure calls
9.Sh SYNOPSIS
10.Fd #include <rpc/rpc.h>
11.Ft AUTH *
12.Fo authdes_create
13.Fa "char *name"
14.Fa "unsigned window"
15.Fa "struct sockaddr *addr"
16.Fa "des_block *ckey"
17.Fc
18.Ft int
19.Fn authdes_getucred "struct authdes_cred *adc" "uid_t *uid" "gid_t *gid" "int *grouplen" "gid_t *groups"
20.Ft int
21.Fn getnetname "char *name"
22.Ft int
23.Fn host2netname "char *name" "char *host" "char *domain"
24.Ft int
25.Fn key_decryptsession "const char *remotename" "des_block *deskey"
26.Ft int
27.Fn key_encryptsession "const char *remotename" "des_block *deskey"
28.Ft int
29.Fn key_gendes "des_block *deskey"
30.Ft int
31.Fn key_setsecret "const char *key"
32.Ft int
33.Fn netname2host "char *name" "char *host" "int hostlen"
34.Ft int
35.Fn netname2user "char *name" "uid_t *uidp" "gid_t *gidp" "int *gidlenp" "gid_t *gidlist"
36.Ft int
37.Fn user2netname "char *name" "uid_t uid" "char *domain"
38.Sh DESCRIPTION
39These routines are part of the
40.Tn RPC
41library.  They implement
42.Tn DES
43Authentication.  See
44.Xr rpc 3
45for further details about
46.Tn RPC .
47.Pp
48The
49.Fn authdes_create
50is the first of two routines which interface to the
51.Tn RPC
52secure authentication system, known as
53.Tn DES
54authentication.
55The second is
56.Fn authdes_getucred ,
57below.
58.Pp
59Note: the keyserver daemon
60.Xr keyserv 8
61must be running for the
62.Tn DES
63authentication system to work.
64.Pp
65.Fn Authdes_create ,
66used on the client side, returns an authentication handle that
67will enable the use of the secure authentication system.
68The first parameter
69.Fa name
70is the network name, or
71.Fa netname ,
72of the owner of the server process.
73This field usually
74represents a
75.Fa hostname
76derived from the utility routine
77.Fn host2netname ,
78but could also represent a user name using
79.Fn user2netname .
80The second field is window on the validity of
81the client credential, given in seconds.  A small
82window is more secure than a large one, but choosing
83too small of a window will increase the frequency of
84resynchronizations because of clock drift.
85The third
86parameter
87.Fa addr
88is optional.  If it is
89.Dv NULL ,
90then the authentication system will assume
91that the local clock is always in sync with the server's
92clock, and will not attempt resynchronizations.
93If an address
94is supplied, however, then the system will use the address
95for consulting the remote time service whenever
96resynchronization
97is required.
98This parameter is usually the
99address of the
100.Tn RPC
101server itself.
102The final parameter
103.Fa ckey
104is also optional.  If it is
105.Dv NULL ,
106then the authentication system will
107generate a random
108.Tn DES
109key to be used for the encryption of credentials.
110If it is supplied, however, then it will be used instead.
111.Pp
112.Fn Authdes_getucred ,
113the second of the two
114.Tn DES
115authentication routines,
116is used on the server side for converting a
117.Tn DES
118credential, which is
119operating system independent, into a
120.Ux
121credential.
122This routine differs from utility routine
123.Fn netname2user
124in that
125.Fn authdes_getucred
126pulls its information from a cache, and does not have to do a
127Yellow Pages lookup every time it is called to get its information.
128.Pp
129.Fn Getnetname
130installs the unique, operating-system independent netname of
131the
132caller in the fixed-length array
133.Fa name .
134Returns
135.Dv TRUE
136if it succeeds and
137.Dv FALSE
138if it fails.
139.Pp
140.Fn Host2netname
141converts from a domain-specific hostname to an
142operating-system independent netname.
143Returns
144.Dv TRUE
145if it succeeds and
146.Dv FALSE
147if it fails.
148Inverse of
149.Fn netname2host .
150.Pp
151.Fn Key_decryptsession
152is an interface to the keyserver daemon, which is associated
153with
154.Tn RPC Ns 's
155secure authentication system (
156.Tn DES
157authentication).
158User programs rarely need to call it, or its associated routines
159.Fn key_encryptsession ,
160.Fn key_gendes
161and
162.Fn key_setsecret .
163System commands such as
164.Xr login 1
165and the
166.Tn RPC
167library are the main clients of these four routines.
168.Pp
169.Fn Key_decryptsession
170takes a server netname and a
171.Tn DES
172key, and decrypts the key by
173using the the public key of the the server and the secret key
174associated with the effective uid of the calling process.  It
175is the inverse of
176.Fn key_encryptsession .
177.Pp
178.Fn Key_encryptsession
179is a keyserver interface routine.
180It
181takes a server netname and a des key, and encrypts
182it using the public key of the the server and the secret key
183associated with the effective uid of the calling process.  It
184is the inverse of
185.Fn key_decryptsession .
186.Pp
187.Fn Key_gendes
188is a keyserver interface routine.
189It
190is used to ask the keyserver for a secure conversation key.
191Choosing one
192.Qq random
193is usually not good enough,
194because
195the common ways of choosing random numbers, such as using the
196current time, are very easy to guess.
197.Pp
198.Fn Key_setsecret
199is a keyserver interface routine.
200It is used to set the key for
201the effective
202.Fa uid
203of the calling process.
204.Pp
205.Fn Netname2host
206converts from an operating-system independent netname to a
207domain-specific hostname.
208Returns
209.Dv TRUE
210if it succeeds and
211.Dv FALSE
212if it fails.  Inverse of
213.Fn host2netname .
214.Pp
215.Fn Netname2user
216converts from an operating-system independent netname to a
217domain-specific user ID.
218Returns
219.Dv TRUE
220if it succeeds and
221.Dv FALSE
222if it fails.
223Inverse of
224.Fn user2netname .
225.Pp
226.Fn User2netname
227converts from a domain-specific username to an operating-system
228independent netname.
229Returns
230.Dv TRUE
231if it succeeds and
232.Dv FALSE
233if it fails.
234Inverse of
235.Fn netname2user .
236.Sh SEE ALSO
237.Xr rpc 3 ,
238.Xr xdr 3 ,
239.Xr keyserv 8
240.Pp
241The following manuals:
242.Rs
243.%B Remote Procedure Calls: Protocol Specification
244.Re
245.Rs
246.%B Remote Procedure Call Programming Guide
247.Re
248.Rs
249.%B Rpcgen Programming Guide
250.Re
251.Rs
252.%B RPC: Remote Procedure Call Protocol Specification
253.%O RFC1050, Sun Microsystems Inc., USC-ISI
254.Re
Note: See TracBrowser for help on using the repository browser.