AES-CMAC с использованием mbedtls: неопределенная ошибка ссылки

Я пытаюсь реализовать AES-CMAC, используя mbedTLS.
Я получаю некоторые ошибки:

неопределенная ссылка на mbedtls_cipher_cmac_starts, неопределенная ссылка на mbedtls_cipher_cmac_update, неопределенная ссылка на mbedtls_cipher_cmac_finish,

Почему эти функции не могут быть решены, даже если mbedtls_cipher_init а также mbedtls_cipher_setup мог?

КСТАТИ. Я реализовал AES в том же проекте, используя mbedTLS без проблем. Я использую Eclipse Nano.

Вот мой код:

#include "stdio.h"#include "stdlib.h"#include "string.h"#include "openssl/evp.h"#include "openssl/cmac.h"#include "mbedtls/cmac.h"#include "mbedtls/cipher.h"using namespace std;
unsigned char key[16]={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

int main()
{
unsigned char m[100],m_len=32;
unsigned char out[16],out1[16],out2[16];
size_t d_len;

int i,ret;
mbedtls_cipher_context_t m_ctx;
const mbedtls_cipher_info_t *cipher_info;
cipher_info = mbedtls_cipher_info_from_type( MBEDTLS_CIPHER_AES_128_CBC );
if(cipher_info==NULL)
printf("\nmbedtls_cipher_info_from_type failed");

mbedtls_cipher_init(&m_ctx);

ret=mbedtls_cipher_setup( &m_ctx, cipher_info );
printf("\n mbedtls_cipher_setup returned %d %d",ret,     m_ctx.cipher_info->type);ret=mbedtls_cipher_cmac_starts(&m_ctx,key,128);
printf("\n mbedtls_cipher_cmac_starts returned %d",ret);

ret= mbedtls_cipher_cmac_update(&m_ctx, m,m_len);
printf("\n mbedtls_cipher_cmac_update returned %d",ret);

ret=mbedtls_cipher_cmac_finish(&m_ctx,out1);
printf("\n mbedtls_cipher_cmac_starts returned %d",ret);
d_len=16;
printf("\nLength is %d\n",(int)d_len);
for(i=0;i<d_len;i++)
{
printf("%x ",out1[i]);
}return 0;

}

1

Решение

По какой-то причине CMAC отключен в конфигурация по умолчанию. Если найдены другие криптографические функции, но не функции CMAC, это должно быть потому, что функции CMAC не были включены в вашу сборку.

редактировать config.h раскомментировать #define MBEDTLS_CMAC_C и восстановить библиотеку.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]