KEYCTL_UPDATE
Updates the payload of a key if the key type permits it. Arguments
ecx | Key serial number. It may be one of the following special values:
`KEY_SPEC_THREAD_KEYRING` | `Caller's thread-specific keyring.`
`KEY_SPEC_PROCESS_KEYRING` | `Caller's process-specific keyring.`
`KEY_SPEC_SESSION_KEYRING` | `Caller's session-specific keyring.`
`KEY_SPEC_USER_KEYRING` | `Caller's UID-specific keyring.`
`KEY_SPEC_USER_SESSION_KEYRING` | `Caller's UID-session keyring.`
`KEY_SPEC_GROUP_KEYRING` | `Caller's GID-specific keyring.`
`KEY_SPEC_REQKEY_AUTH_KEY` | `This specifies the authorization key created by request_key() and passed to the process it spawns to generate a key. If a valid keyring ID is passed in, then this will simply be returned if the key exists; an error will be issued if it doesn't exist.`
edx | A pointer to payload data. The key type may reject the data if it's in the wrong format or in some other way invalid. edx and ecx may be zero if the key type permits that.
esi | Size of the payload data.
Return values If the system call succeeds the return value is 0. If the system call fails the return value is one of the following errno values:
`-ENOKEY` | `The key specified is invalid.`
`-ENOMEM` | `Insufficient memory to store the new payload.`
`-EDQUOT` | `The key quota for this user would be exceeded by increasing the size of the key to accommodate the new payload.`
`-EKEYEXPIRED` | `The key specified has expired.`
`-EKEYREVOKED` | `The key specified had been revoked.`
`-EINVAL` | `The payload data size was invalid.`
`-EACCES` | `The key exists, but is not writable by the calling process.`
`-EFAULT` | `The payload data was invalid.`
`-EOPNOTSUPP` | `The key type does not support the update operation on its keys.`
Remarks The caller must have write permission on a key to be able update it.