Linux x86_64Segurança#249
request_key
Busca uma chave por descrição, acionando um upcall para criá-la sob demanda se necessário.
Descrição
Se a chave buscada não existir, o kernel pode invocar um programa em espaço de usuário (via /sbin/request-key) para obtê-la — mecanismo usado, por exemplo, para buscar credenciais Kerberos sob demanda.
Header:
keyutils.hman 2Desde o kernel 2.6.10Assinatura
key_serial_t request_key(
const char * type,
const char * description,
const char * callout_info,
key_serial_t dest_keyring
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| type | const char * | Tipo da chave desejada. |
| description | const char * | Descrição usada para localizar a chave. |
| callout_info | const char * | Dado extra passado ao programa de upcall, se a chave precisar ser construída. |
| dest_keyring | key_serial_t | Keyring onde vincular a chave encontrada/criada. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | typeconst char * |
| rsi | argumento 2 | descriptionconst char * |
| rdx | argumento 3 | callout_infoconst char * |
| r10 | argumento 4 | dest_keyringkey_serial_t |
Valor de retorno
Um número de série de chave em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EACCES(13)
- Permissão negada.
- EINTR(4)
- Chamada interrompida por um sinal.
- ENOKEY(126)
- Chave (keyring) requerida não disponível.
- EKEYEXPIRED(127)
- Chave expirada.
- EKEYREVOKED(128)
- Chave revogada.