Segfault при вызове gcm_encrypt_message с кодом AES Брайана Гладманса - PullRequest
0 голосов
/ 15 февраля 2012

Я выполнил поиск по архивным сообщениям по этой проблеме, но существующая проблема, похоже, не относится к моей, поскольку, насколько я могу судить, я использую правильные длины криптографических параметров.В любом случае, мой код очень прост, но, к сожалению, я получаю segfault во время шифрования сообщения, это происходит, когда во время шифрования сообщения вызывается первый метод xor_block_aligned.Я предполагаю, что я что-то неправильно определил, так как код не был изменен каким-либо образом.

Я использую жестко закодированные значения для ключа, IV и заголовка, как вы можете видеть ниже ...

unsigned char* pChrIV = (unsigned char*)malloc(24);
memset(pChrIV, 1, 24);

unsigned char* pChrHeader = (unsigned char*)malloc(16);
memset(pChrHeader, 1, 16);

char* pChrMessage = "jfdk vklsdfasdfjdsajhfljasdfjhsdakjfkjhdsfsdliuhfhdsuihfausdhflhalsdjkhflaskdjfadjf nvkjsdnf kj nfdlkjnv lkjsdnf vkjndsf lkvjlkdfsj";

unsigned char* pChrTAG = (unsigned char*)malloc(16);
memset(pChrTAG, 0, 16);

unsigned char* pChrKey = (unsigned char*)malloc(16);
memset(pChrKey, 1, 16);

if(aes_init() == RETURN_GOOD)
    printf("AES Initialised!\r\n");

gcm_ctx ctx[1];
if(gcm_init_and_key(pChrKey, 16,
        ctx) == RETURN_GOOD)
    printf("GCM Initialised!\r\n");

    //It crashes here
gcm_encrypt_message(pChrIV, 24,
        pChrHeader, 16,
        pChrMessage, strlen(pChrMessage),
        pChrTAG, 16,
        ctx);

if(gcm_end(ctx) == RETURN_GOOD)
    printf("Ended!\r\n");

printf("Done!\r\n");

return(0);

Я пытался изменить длину ключа и IV, но проблема сохраняется.

Я компилирую его в Eclipse в Ubuntu 10.4, используя компилятор GCC C.

Есть идеи, что я могу делать не так?Заранее большое спасибо!

Ник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...