diff --git a/include/psa/crypto.h b/include/psa/crypto.h
index fff144c..2e680b1 100644
--- a/include/psa/crypto.h
+++ b/include/psa/crypto.h
@@ -179,11 +179,11 @@
  * -# Set the key type with psa_set_key_type(). If the key type requires
  *    domain parameters, call psa_set_key_domain_parameters() instead.
  *    Skip this step if copying an existing key with psa_copy_key().
- * -# When generating a random key with psa_generate_key() or deriving a key
- *    with psa_generator_import_key(), set the desired key size with
+ * -# When generating a random key with psa_generate_random_key() or deriving a key
+ *    with psa_generate_derived_key(), set the desired key size with
  *    psa_set_key_bits().
- * -# Call a key creation function: psa_import_key(), psa_generate_key(),
- *    psa_generator_import_key() or psa_copy_key(). This function reads
+ * -# Call a key creation function: psa_import_key(), psa_generate_random_key(),
+ *    psa_generate_derived_key() or psa_copy_key(). This function reads
  *    the attribute structure, creates a key with these attributes, and
  *    outputs a handle to the newly created key.
  * -# The attribute structure is now no longer necessary. If you called
@@ -208,8 +208,8 @@
  * This function does not access storage, it merely fills the attribute
  * structure with given values. The persistent key will be written to
  * storage when the attribute structure is passed to a key creation
- * function such as psa_import_key(), psa_generate_key(),
- * psa_generator_import_key() or psa_copy_key().
+ * function such as psa_import_key(), psa_generate_random_key(),
+ * psa_generate_derived_key() or psa_copy_key().
  *
  * This function overwrites any identifier and lifetime values
  * previously set in \p attributes.
@@ -3087,7 +3087,7 @@
  *         It is implementation-dependent whether a failure to initialize
  *         results in this error code.
  */
-psa_status_t psa_generator_import_key(const psa_key_attributes_t *attributes,
+psa_status_t psa_generate_derived_key(const psa_key_attributes_t *attributes,
                                       psa_key_handle_t *handle,
                                       psa_crypto_generator_t *generator);
 
@@ -3148,7 +3148,7 @@
  *   or after providing inputs. For some algorithms, this step is mandatory
  *   because the output depends on the maximum capacity.
  * - Generate output with psa_generator_read() or
- *   psa_generator_import_key(). Successive calls to these functions
+ *   psa_generate_derived_key(). Successive calls to these functions
  *   use successive output bytes from the generator.
  * - Clean up the generator object with psa_generator_abort().
  *
@@ -3385,7 +3385,7 @@
  *          and MUST NOT use the content of the output buffer if the return
  *          status is not #PSA_SUCCESS.
  *
- * \note    To generate a key, use psa_generate_key() instead.
+ * \note    To generate a key, use psa_generate_random_key() instead.
  *
  * \param[out] output       Output buffer for the generated data.
  * \param output_size       Number of bytes to generate and output.
@@ -3447,7 +3447,7 @@
  *         It is implementation-dependent whether a failure to initialize
  *         results in this error code.
  */
-psa_status_t psa_generate_key(const psa_key_attributes_t *attributes,
+psa_status_t psa_generate_random_key(const psa_key_attributes_t *attributes,
                               psa_key_handle_t *handle);
 
 /**@}*/
