psa_generate_key failed! (Error: -134)

I am using NCS 3.0.0 and I want to generate keys ...
But the method I am using to generate keys is giving me this error

Here is the code where it is returning error:


psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_EXPORT);
psa_set_key_lifetime(&key_attributes, PSA_KEY_PERSISTENCE_VOLATILE);
psa_set_key_algorithm(&key_attributes, PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256));
psa_set_key_type(&key_attributes, PSA_KEY_TYPE_RSA_KEY_PAIR);
psa_set_key_bits(&key_attributes, (use_rsa_2048) ? KEY_SIZE : KEY_SIZE_1024);

status = psa_generate_key(&key_attributes, &m_initial_keypair_handle);

if (status != PSA_SUCCESS)
{
LOG_INF("psa_generate_key failed! (Error: %d)", status);
return APP_ERROR;
}


I need to Know How can I generate keys in NCS 3.0.0? Is there any example code for it?
  • Hi,

    Which sample do you base this on?

    Which configurations have you added to prj.conf to support the features you need for this?

    Regards,
    Sigurd Hellesvik

  • The issue has been resolved. It was due to the heap size.
    By the this was the configuration I was using :

    # Enable nordic security backend and PSA APIs
    CONFIG_MBEDTLS_LIBRARY_NRF_SECURITY=y
    CONFIG_MBEDTLS_PSA_CRYPTO_C=y
    CONFIG_MBEDTLS_USE_PSA_CRYPTO=y

    # Mbedtls configuration
    CONFIG_MBEDTLS_RSA_C=y
    CONFIG_MBEDTLS_PK_C=y
    CONFIG_MBEDTLS_PK_PARSE_C=y
    CONFIG_MBEDTLS_PK_WRITE_C=y

     

    CONFIG_MBEDTLS_PK_WRITE_C=y
    CONFIG_MBEDTLS_PKCS1_V15=y

    CONFIG_CRYPTO=y
    CONFIG_MBEDTLS=y

     

    # Enable nordic security backend and PSA APIs
    CONFIG_NRF_SECURITY=y

     

    # Mbedtls configuration
    CONFIG_MBEDTLS_ENABLE_HEAP=y
    CONFIG_MBEDTLS_HEAP_SIZE=38912
    CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y
    CONFIG_PSA_CRYPTO_DRIVER_OBERON=n

     

    CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y

     

    CONFIG_PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT=y
    CONFIG_PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT=y
    CONFIG_PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE=y
    CONFIG_PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE=y

     

    # Key types
    CONFIG_PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY=y

     

     

    CONFIG_PSA_WANT_ALG_RSA_PKCS1V15_SIGN=y
    CONFIG_PSA_WANT_ALG_RSA_PKCS1V15_CRYPT=y

     

    # CONFIG_PSA_CRYPTO_DRIVER_ALG_CBC_NO_PADDING_CC3XX=n
    # Algorithms
    CONFIG_PSA_WANT_ALG_SHA_256=y

     

    # Define key size
    CONFIG_PSA_WANT_RSA_KEY_SIZE_2048=y

Related