Autenticação DES no Lado do Cliente
cl->cl_auth =
authdes_create(servername, 60, &server_addr, NULL);
authdes_create é o nome da rede, ou nome líquido, do proprietário do processo do servidor. Geralmente, os processos do servidor são processos raiz. O nome líquido pode ser derivado usando a chamada a seguir:
char servername[MAXNETNAMELEN];
host2netname(servername, rhostname, NULL);
Os comandosrhostnameparâmetro é o nome do host da máquina na qual o processo do servidor está em execução. Os comandoshost2netnamerotina de suprimentos aservernameque conterá este nome líquido para o processo raiz. Se o processo do servidor for executado por um usuário regular, a rotina user2netname pode ser chamada em vez disso.
char servername[MAXNETNAMELEN];
user2netname(servername, getuid(), NULL);
As rotinas user2netname e host2netname identificam o domínio de nomenclatura no local do servidor. Os comandosNULLparâmetro neste exemplo significa que o nome de domínio local deve ser usado.
O segundo argumento (60) para a rotina authdes_create identifica o tempo de vida da credencial, que é 60 seconds. Isso significa que a credencial tem 60 seconds até expirar. O subsistema de Chamada de Procedimento Remoto (RPC) do servidor não concede nem uma segunda solicitação dentro do tempo de vida de 60-second ou solicitações feitas após a expiração da credencial.
O terceiro argumento (&server_addr) para a rotina authdes_create é o endereço do host com o qual se sincroniza. A autenticação DES requer que o servidor e o cliente concorde na hora. O tempo é determinado pelo servidor quando ele recebe o endereço. Se os horários do servidor e do cliente já estiverem sincronizados, o argumento pode ser configurado como nulo.
O argumento final (NULL) para a rotina authdes_create é o endereço de uma chave de criptografia DES que é usada para criptografar estampas de tempo e dados. Como esse argumento é nulo, uma chave aleatória é escolhida. O programador pode obter a chave de criptografia a partir do campo ah_key da alça de autenticação.