cancel
Showing results for 
Search instead for 
Did you mean: 

Where is STSAFE-A110 documentation?

parmi93
Associate II

I am currently working with the STSAFE-A110 and I have noticed a significant lack of documentation for those who need to implement or understand the driver logic.

For instance, when generating ECC asymmetric key pairs, the official datasheet mentions the Generate Key command (¶ 4) but does not document its I2C syntax or semantics.

Although I am using the STSELib middleware, I have found that its APIs, such as stse_generate_ecc_key_pair() also lack exhaustive documentation. A specific example is the PLAT_UI16 usage_limit parameter; its purpose is never explained.

By digging into the STSELib source code, it appears usage_limit parameter is passed directly to the STSAFE-A110 via I2C.

Furthermore, in the Doxygen documentation there is an example where usage_limit is set to 100,

parmi93_0-1766082467225.png

while the STSAFE-A120 examples use 255.

    /* ## Generate key pair in slot 1 */
    uint8_t slot_1_public_key[stse_ecc_info_table[STSE_ECC_KT_NIST_P_256].public_key_size];
    stse_ret = stse_generate_ecc_key_pair(
        &stse_handler,
        1,
        STSE_ECC_KT_NIST_P_256,
        255,
        slot_1_public_key);

But in neither case is the meaning of this parameter clarified.

Where can I find comprehensive documentation that explains the syntax and semantics of the I2C commands in detail?

3 REPLIES 3
TDK
Super User

For security products and other things subject to export restrictions you'll probably have to ask directly and possibly sign an NDA.

https://ols.st.com/s/

 

If you can't find it online, it's probably not publicly available. Usually intentional.

If you feel a post has answered your question, please click "Accept as Solution".
simeonf
Associate

I'm also interested to know what usage_limit is.

I've found not more and not less than OP. If this is an internal parameter not to be documented publicly then please note down the recommended value to be used.

Nylio
ST Employee

Hello,

Indeed, comprehensive documentation is not fully public, but feel free to reach me at nils.cercariolo[at]st.com for further inquiries where I can provide you the documentation you're looking for as well as support.  

 

To answer about usage_limit parameter :

For each static slot, it sets the number of times the private key can be used in generate signature and establish key commands for this particular slot. The value 0xFFFF corresponds to an infinite usage limit.
For the ephemeral slot the value must be 1. The private key in the ephemeral slot can only be used with the establish key command and only once in its lifetime.

 

There's also a global usage limit parameter, which tracks all the keys independently of usage limit per slot. Its value depends on your personalization profile. For SPL05, I believe that it's set to 0xFFFF and can't be changed.