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.

TMS320F28035: 可以在035添加mbedtls库是否可行

Part Number: TMS320F28035
Other Parts Discussed in Thread: C2000WARE,
  • 1可以在035上添加mbedtls 实现对一些加密算法的快捷操作吗?
  • 2如果不能调用mbedtls库,可否使用c2000ware中的libraries\security\crypto\c28中的aes和sha加密算法在035上实现aes的加解密以及HMAC-SHA 256对密钥的组合
  • 感谢您对TI产品的关注!
    关于你的咨询,我们正在确认你的问题,稍后回复您。

  • 在035工程上添加mbedtls 2.16.0后调用

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void aes_cbc_encrypt(const unsigned char *plaintext, size_t plaintext_len,
    unsigned char *ciphertext, size_t *ciphertext_len,
    const unsigned char key[16]) {
    unsigned char iv[IV_SIZE] = {0};
    mbedtls_aes_context aes;
    mbedtls_aes_init(&aes);
    // 1.
    mbedtls_aes_setkey_enc(&aes, key, 128);
    // 2. PKCS7
    size_t padded_len = ((plaintext_len + 15) / 16) * 16;
    unsigned char padded[padded_len];
    memcpy(padded, plaintext, plaintext_len);
    memset(padded + plaintext_len, padded_len - plaintext_len, padded_len - plaintext_len);
    // 3.
    mbedtls_aes_crypt_cbc(&aes, MBEDTLS_AES_ENCRYPT, padded_len,
    iv, padded, ciphertext);
    *ciphertext_len = padded_len;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    会报错提示#10099-D

  • 1已尝试添加mbedtls库在2.16.0版本可以在不调用库的时候不报错,调用报错ebss

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    void aes_cbc_encrypt(const unsigned char *plaintext, size_t plaintext_len,
    unsigned char *ciphertext, size_t *ciphertext_len,
    const unsigned char key[16]) {
    unsigned char iv[IV_SIZE] = {0};
    mbedtls_aes_context aes;
    mbedtls_aes_init(&aes);
    // 1.
    mbedtls_aes_setkey_enc(&aes, key, 128);
    // 2. PKCS7
    size_t padded_len = ((plaintext_len + 15) / 16) * 16;
    unsigned char padded[padded_len];
    memcpy(padded, plaintext, plaintext_len);
    memset(padded + plaintext_len, padded_len - plaintext_len, padded_len - plaintext_len);
    // 3.
    mbedtls_aes_crypt_cbc(&aes, MBEDTLS_AES_ENCRYPT, padded_len,
    iv, padded, ciphertext);
    *ciphertext_len = padded_len;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 您好,

          1   c2000系列芯片没有集成MbedTLS的示例。

          2   TMS320F28035不支持,请参考Understanding Security Features for C2000 Real-Time Control MCUs (Rev. E)