![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 18.06.2011
Сообщений: 2
|
![]()
Доброго всем времени суток, дорогие форумчане! Возникла у меня некоторая проблема про компиляции программы, написанной на Си, которая реализовывала поточный шифр DECT. Компилировал я в VS2008? которая вывела мне следующее: "fatal error C1083: cannot open include file: 'stdint.h': No such file or directory"
я пока только-только начинаю осваивать язык, вообще не пойму на что жалуется программа, и чего не хватает? Какие возможны решения?Буду с нетерпением ждать ваших советов и замечаний! Заранее СПАСИБО ВСЕМ! А вот текст самой программы: #include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #define R1_LEN 17 #define R2_LEN 19 #define R3_LEN 21 #define R4_LEN 23 #define R1_MASK 0x010020 /* tap bits: 5, 16 */ #define R2_MASK 0x04100C /* tap bits: 2, 3, 12, 18 */ #define R3_MASK 0x100002 /* tap bits: 1, 20 */ #define R4_MASK 0x400100 /* tap bits: 8, 22 */ #define R1_CLKBIT 8 #define R2_CLKBIT 9 #define R3_CLKBIT 10 #define R1_R4_CLKBIT 0 #define R2_R4_CLKBIT 1 #define R3_R4_CLKBIT 2 #define OUTPUT_LEN 90 /* 720 bits */ #define TESTBIT(R, n) (((R) & (1 << (n))) != 0) uint32_t clock(uint32_t lfsr, uint32_t mask) { return (lfsr >> 1) ^ (-(lfsr&1)&mask); } uint32_t combine(uint32_t c, uint32_t r1, uint32_t r2, uint32_t r3) { uint32_t x10, x11, x20, x21, x30, x31; x10 = r1 & 1; x11 = (r1 >> 1) & 1; x20 = r2 & 1; x21 = (r2 >> 1) & 1; x30 = r3 & 1; x31 = (r3 >> 1) & 1; return ((x11&x10&c) ^ (x20&x11&x10) ^ (x21&x10&c) ^ (x21&x20&x10) ^ (x30&x10&c) ^ (x30&x20&x10) ^ (x11&c) ^ (x11&x10) ^ (x20&x11) ^ (x30&c) ^ (x31&c) ^ (x31&x10) ^ (x21) ^ (x31)); } void dsc_keystream(uint8_t *key, uint32_t iv, uint8_t *output) { uint8_t input[16]; uint32_t R1, R2, R3, R4, N1, N2, N3, COMB; int i, keybit; memset(output, 0, OUTPUT_LEN); input[0] = iv&0xff; input[1] = (iv>>8)&0xff; input[2] = (iv>>16)&0xff; for (i = 3; i < 8; i++) { input[i] = 0; } for (i = 0; i < 8; i++) { input[i+8] = key[i]; } R1 = R2 = R3 = R4 = COMB = 0; /* load IV || KEY */ for (i = 0; i < 128; i++) { keybit = (input[i/8] >> ((i)&7)) & 1; R1 = clock(R1, R1_MASK) ^ (keybit<<(R1_LEN-1)); R2 = clock(R2, R2_MASK) ^ (keybit<<(R2_LEN-1)); R3 = clock(R3, R3_MASK) ^ (keybit<<(R3_LEN-1)); R4 = clock(R4, R4_MASK) ^ (keybit<<(R4_LEN-1)); } for (i = 0; i < 40 + (OUTPUT_LEN*8); i++) { /* check whether any registers are zero after 11 pre-ciphering steps. * if a register is all-zero after 11 steps, set input bit to one * (see U.S. patent 5608802) */ if (i == 11) { if (!R1) R1 ^= (1<<(R1_LEN-1)); if (!R2) R2 ^= (1<<(R2_LEN-1)); if (!R3) R3 ^= (1<<(R3_LEN-1)); if (!R4) R4 ^= (1<<(R4_LEN-1)); } N1 = R1; N2 = R2; N3 = R3; COMB = combine(COMB, R1, R2, R3); if (TESTBIT(R2, R2_CLKBIT) ^ TESTBIT(R3, R3_CLKBIT) ^ TESTBIT(R4, R1_R4_CLKBIT)) N1 = clock(R1, R1_MASK); if (TESTBIT(R1, R1_CLKBIT) ^ TESTBIT(R3, R3_CLKBIT) ^ TESTBIT(R4, R2_R4_CLKBIT)) N2 = clock(R2, R2_MASK); if (TESTBIT(R1, R1_CLKBIT) ^ TESTBIT(R2, R2_CLKBIT) ^ TESTBIT(R4, R3_R4_CLKBIT)) N3 = clock(R3, R3_MASK); R1 = clock(clock(N1, R1_MASK), R1_MASK); R2 = clock(clock(N2, R2_MASK), R2_MASK); R3 = clock(clock(N3, R3_MASK), R3_MASK); R4 = clock(clock(clock(R4, R4_MASK), R4_MASK), R4_MASK); if(i >= 40) { output[(i-40)/8] |= ((COMB) << ( 7-((i-40)&7))); } } } int main(int argc, char**argv) { uint8_t key[8]; uint8_t output[OUTPUT_LEN]; if (argc != 2) { fprintf(stderr, "usage: %s iv\n", argv[0]); exit(1); } if (read(STDIN_FILENO, key, 8) < 8) { fprintf(stderr, "short read\n"); exit(1); } dsc_keystream(key, atoi(argv[1]), output); write(STDOUT_FILENO, output, 2048); return 0; } =) |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 21.09.2009
Сообщений: 431
|
![]()
"fatal error C1083: cannot open include file: 'stdint.h': No such file or directory"
файлика stdint.h нету - короче 1 минута гугла и ты спасен |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 21.09.2009
Сообщений: 431
|
![]()
вот тут ответ есть http://www.qtcentre.org/threads/3054...e-or-directory
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Реализация цикличного алгоритма С++ | zpMirtzp | Помощь студентам | 3 | 12.05.2011 13:34 |
Проблемы при компиляции программы на c++ | green-tree | Помощь студентам | 3 | 28.07.2010 21:33 |
реализация алгоритма дешифровки | Valx | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 30.03.2010 08:18 |
Странные ошибки при компиляции в Visual studia C# 2008 | skild | Общие вопросы .NET | 2 | 21.02.2010 23:38 |
CURL проблемы при компиляции... | XAOC-forever | Общие вопросы C/C++ | 5 | 23.07.2009 13:10 |