### Method

# Gck Session derive_key_full

#### Declaration [src]

    GckObject*
    gck_session_derive_key_full (
      GckSession* self,
      GckObject* base,
      GckMechanism* mechanism,
      GckAttributes* attrs,
      GCancellable* cancellable,
      GError** error
    )

#### Description [src]

Derive a key from another key. This call may block for an indefinite period.

#### Parameters

`base` | `GckObject`
| The key to derive from.
| The data is owned by the caller of the function.
`mechanism` | `GckMechanism`
| The mechanism to use for derivation.
| The data is owned by the caller of the function.
`attrs` | `GckAttributes`
| Additional attributes for the derived key.
| The data is owned by the caller of the function.
`cancellable` | `GCancellable`
| Optional cancellation object, or `NULL`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`error` | `GError **`
| The return location for a `GError*`, or `NULL`.

#### Return value

Returns: | `GckObject`
| The new derived key or `NULL` if the operation failed.
| The caller of the method takes ownership of the data, and is responsible for freeing it.