Voltar à lista
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.10

Assinatura

key_serial_t add_key(
    const char * type,
    const char * description,
    const void * payload,
    size_t plen,
    key_serial_t keyring
);

Parâmetros

ParâmetroTipoDescrição
typeconst char *Tipo da chave (ex.: "user", "logon", "keyring").
descriptionconst char *Nome/descrição usada para buscar a chave depois.
payloadconst void *Conteúdo da chave, cujo formato depende de `type`.
plensize_tTamanho de `payload` em bytes.
keyringkey_serial_tKeyring de destino onde a chave será vinculada.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1typeconst char *
rsiargumento 2descriptionconst char *
rdxargumento 3payloadconst void *
r10argumento 4plensize_t
r8argumento 5keyringkey_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).

Relacionadas