NAME
getpublickey(), getsecretkey(), publickey() — retrieve public or secret key
SYNOPSIS
#include <rpc/rpc.h>
#include <rpc/key_prot.h>
int getpublickey(
const char netname [MAXNETNAMELEN],
char publickey[HEXKEYBYTES]);
int getsecretkey(
const char netname [MAXNETNAMELEN],
char secretkey[HEXKEYBYTES],
const char *passwd );
MULTITHREAD USAGE
- Thread Safe:
Yes
- Cancel Safe:
Yes
- Fork Safe:
No
- Async-cancel Safe:
No
- Async-signal Safe:
No
These functions can be called safely in a multithreaded environment.
They may be cancellation points in that they call
functions that are cancel points.
In a multithreaded environment, these functions are
not safe to be called by a child process after
fork()
and before
exec().
These functions should not be called by a multithreaded application
that support asynchronous cancellation or asynchronous signals.
DESCRIPTION
getpublickey()
and
getsecretkey()
get public and secret keys for
netname.
The key may come from one of the following sources:
the
/etc/publickey
file (see
publickey(4))
or the NIS map ``publickey.byname'' or the
NIS table ``cred.org_dir''.
The sources and their lookup order
are specified in the
/etc/nsswitch.conf
file (see
nsswitch.conf(4)).
getsecretkey()
has an extra argument,
passwd,
used to decrypt the encrypted secret key stored in the database.
RETURN VALUES
Both routines return 1 if they are successful
in finding the key, 0 (zero) otherwise.
The keys are returned as NULL-terminated, hexadecimal strings.
If the password supplied to
getsecretkey()
fails to decrypt the secret key,
the routine will return 1 but the
secretkey
[0] will be set to NULL.
WARNINGS
If
getpublickey()
gets the public key from any source other than
NIS+, all authenticated NIS+ operations may fail.
To ensure that this does not happen, edit the
nsswitch.conf()
file to make sure that the public key is obtained from NIS+.