Linux x86_64Segurança#248
add_key
Adiciona uma chave (ou atualiza uma existente) a um keyring do kernel.
Descrição
Parte do serviço de keyrings do kernel, usado para armazenar chaves criptográficas, tokens de autenticação e credenciais de forma segura em espaço de kernel, acessíveis apenas por processos autorizados (ex.: usado por NFS, AFS, cifs, eCryptfs, e módulos de rede sem fio).
Header:
keyutils.hman 2Desde o kernel 2.6.10Assinatura
key_serial_t add_key(
const char * type,
const char * description,
const void * payload,
size_t plen,
key_serial_t keyring
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| type | const char * | Tipo da chave (ex.: "user", "logon", "keyring"). |
| description | const char * | Nome/descrição usada para buscar a chave depois. |
| payload | const void * | Conteúdo da chave, cujo formato depende de `type`. |
| plen | size_t | Tamanho de `payload` em bytes. |
| keyring | key_serial_t | Keyring de destino onde a chave será vinculada. |
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 | payloadconst void * |
| r10 | argumento 4 | plensize_t |
| r8 | argumento 5 | keyringkey_serial_t |
Valor de retorno
Um número de série de chave (positivo) em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EACCES(13)
- Permissão negada.
- EDQUOT(122)
- Cota de disco excedida.
- EINVAL(22)
- Argumento inválido.
- ENOMEM(12)
- Memória insuficiente para completar a operação.
- EPERM(1)
- Operação não permitida (falta de privilégio).