This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1310: ECC functions in rom_crypto.h

Part Number: CC1310

i'm able to successfully use the various ECC functions in the cc1310 ROM -- to generate a pair of keys, to sign/verify a message, and to compute a shared secret....  

my application also requires that my host (PC, cloud, etc) be able verify that a particular cc1310 is authentic...  assume the host is running a standard environment such as node.js and has the public key associated with that particular cc1310 in question....  following standard convention, the host would send some known (but random) number to the cc1310; and the cc1310 would return a SHA256 hash of this number signed with its private key....  the host would then verify the signature using the same hash of the number but with the public key....  nothing unusual here....

the question i have is about the *format* of the two-part signature produced by ECC_ECDSA_sign()....  output from the latter function is a pair of 32-byte buffers; but signatures generated on my host (using standard node.js crypto functions) are 71 bytes in length....  does anyone have an example of verifying a cc1310-generated signature on *any* host computer under *any* environment....  if so, i can probably figure out the rest....

bob.

  • is the source code available for the ECC functions in ROM????  is it based on some known open-source code base, such as micro-ecc or mbedtls???

    i've already figured out that the generated public key needs to be byte-reversed; i've tried similar approaches with the generated signature, but with no luck....

    in general, signatures need to put into DER format for hosted code to verify them....

    could someone from TI possibly help here????

  • Bob,

    They should be documented in ROM library functions.

    Have you seen this file?

    rom_crypto.c file

    inside:

    C:\ti\simplelink_cc13x0_sdk_2_40_00_20\source\ti\devices\cc13x0\driverlib

    Regards,

    /TA

  • they're actually documented in rom_crypto.h, not rom_crypto.c

    and yes, i have working code that is able to sign/verify a digest on the cc1310....

    my question is the actual format of the signature, which is want to *generate* on the cc1310 but *verify* elsewhere (say, using openssl on my host)....

    i believe i have correctly converted the signature R and S values into ASN1 format -- though i'm still not clear when the R and S are in big or little-endian....

    if someone can show me how to verify one of these signatures on some host, that's what i'm looking for....