k000858 0 4 декабря, 2014 Опубликовано 4 декабря, 2014 · Жалоба Всем привет. Есть девайс на stm32f407 с езернетом на lwip стеке. Требуется сделать e-mail клиент. Как известно, сейчас практически все SMTP серверы перешли на SSL (наверное, правильнее будет сказать "запретили соединения без SSL по 25 порту). Вопрос: потянет ли вышеозвученный МК софтовое шифрование (ведь крипто-проц есть только у 417 линейки). Может есть у когонибдь опыт реализации: какую посоветуете реализацию SSL (знаю, что есть как коммерческие так и бесплатные), и где можно надыбать исходники/примеры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 4 декабря, 2014 Опубликовано 4 декабря, 2014 · Жалоба Вопрос: потянет ли вышеозвученный МК софтовое шифрование (ведь крипто-проц есть только у 417 линейки). Вопрос некорректный. Потянет любой проц, лишь бы было достаточно памяти и времени на вычисления. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 3 4 декабря, 2014 Опубликовано 4 декабря, 2014 · Жалоба Для этих решений на 4хх SMTP, жрущий озу, в этм плане 427 неплох. Софтовое шифрование потянет без проблем. А SSL по разному решают и 25 порт мало кто пользует, разве что из-за архаичности. eSMTP насклько вам нужно то реально? Также как IPv6. У вас наверняка встроеное решение а не паблик. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k000858 0 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба нашел в примерах от ST готовую PolarSSL. но она для подключения использует socket, а его можно использовать только при наличии OS. может можно ее как то завести без использования OS? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 3 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба Используйте RTOS например, все остальное без OS кривота для серии 4xx. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k000858 0 5 декабря, 2014 Опубликовано 5 декабря, 2014 · Жалоба Используйте RTOS например, все остальное без OS кривота для серии 4xx. а если весь функционал в прошивке реализован без RTOS, дак что теперь все перелопачивать ради SSL? покурил внутринности PolarSSL и решил переписать сетевую прослойку на Raw API вместо Netcon API + Socket Если у когонибудь есть подобный опыт, не откажусь от помощи. так же полезен будет любой пример переделки приложения вида struct sockaddr_in server_addr; if( ( *fd = socket( AF_INET, SOCK_STREAM, IPPROTO_IP ) ) < 0 ) return( POLARSSL_ERR_NET_SOCKET_FAILED ); server_addr.sin_family = AF_INET; server_addr.sin_port = net_htons( port ); if( connect( *fd, (struct sockaddr *) &server_addr, sizeof( server_addr ) ) < 0 ) { close( *fd ); return( POLARSSL_ERR_NET_CONNECT_FAILED ); } на код вида struct tcp_pcb* pcb; ip_addr_t addr; pcb = tcp_new(); tcp_arg(pcb, s); tcp_recv(pcb, *tcp_recv); tcp_err(pcb, *tcp_err); tcp_poll(pcb, *tcp_poll, POLL_INTERVAL); tcp_sent(pcb, *tcp_sent); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 16 31 января, 2017 Опубликовано 31 января, 2017 · Жалоба Здравствуйте. Подниму тему. Вопрос похожий, но надеюсь проще в решении: Есть LwIP, FreeRTOS, STM32F4. написан и работает smtp клиент по порту 25 (исходник чужой вот отсюда и даже не мной интегрированная в проект, я с smtp врукопашную раньше дела не имел). сейчас стейт-машина в указанном исходнике так работает (полностью можно по ссылке исходник на гитхабе глануть): enum smtp_session_state { SMTP_NULL, SMTP_HELO, SMTP_AUTH_PLAIN, SMTP_AUTH_LOGIN_UNAME, SMTP_AUTH_LOGIN_PASS, SMTP_AUTH_LOGIN, SMTP_MAIL, SMTP_RCPT, SMTP_DATA, SMTP_BODY, SMTP_QUIT, SMTP_CLOSED }; нужно добавить возможность работы по портам 587 и/или 465. Как это сделать с наименьшим напряжением рук и головы? на этапе "SMTP_AUTH_" что подсунуть в процесс? Cобственно, как я понимаю, нужен SSL. и вижу PolarSSL в составе LwIP, это оно? Какие несколько команд вставить на этапе smtp авторизации чтобы это заработало? Может быть решение простое и где-то рядом, но не доходит до меня... Спасибо всем кто откликнется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 16 31 января, 2017 Опубликовано 31 января, 2017 · Жалоба подергал через телнет нужный smtp сервер, говорит следующее на EHLO порт 587: 220 <address> ESMTP Postfix (Ubuntu) EHLO <address> 250-<address> 250-PIPELINING 250-SIZE 15728640 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN на 465 вообще не соединяется по телнету. Хотя может и не должен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psL 0 31 января, 2017 Опубликовано 31 января, 2017 · Жалоба на 465 вообще не соединяется по телнету. Хотя может и не должен. и не должен. Обычно 465 - это SMTP через TLS, а 587 - это TLS внутри SMTP, так называемый STARTTLS Лог можно здесь посмотреть http://www.checktls.com/testsender.html. Опыта отправки писем из lwIP нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 16 31 января, 2017 Опубликовано 31 января, 2017 · Жалоба Вроде бы начало проясняться что дело темное, явно не два байта переслать. в моем LwIP - старенький огрызок от polarSSL, сейчас нужно смотреть mbed TLS. В нем есть файлик "ssl_mail_client.c", который вроде бы то что нужно. Но задачка-то не такая простая, и по пониманию-тестированию, и по ресурсам в МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 1 февраля, 2017 Опубликовано 1 февраля, 2017 · Жалоба Вроде бы начало проясняться что дело темное, явно не два байта переслать. в моем LwIP - старенький огрызок от polarSSL, сейчас нужно смотреть mbed TLS. В нем есть файлик "ssl_mail_client.c", который вроде бы то что нужно. Но задачка-то не такая простая, и по пониманию-тестированию, и по ресурсам в МК. Неск. лет назад реализовывал на LPC1768 SMTP-клиент (поверх своего TCP-стека). Самостоятельно конечно, без чьих-то исходников. Смотрел тогда тоже в сторону добавления возможности работы через шифрованное соединение. Но тоже понял, что там всё непросто. И очень мало толковой документации по этому делу - это самое главное! В то время как нешифрованный SMTP разжёван вдоль и поперёк в разных источниках. Именно это меня тогда и остановило. В результате нашёл достаточно много нешифрованных SMTP-серверов и решил пока отложить эту тему до тех пор когда реально припрёт. Если нароете хорошее описание SMTP-протокола через защищённое соединение - выкладывайте. Думаю тоже когда-то придётся вернуться к этой теме. Как я подозреваю: там главное установить и поддерживать шифрованное соединение, а уж протокол SMTP через него - точно такой-же как и через открытое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 16 1 февраля, 2017 Опубликовано 1 февраля, 2017 · Жалоба Если нароете хорошее описание SMTP-протокола через защищённое соединение - выкладывайте. Думаю тоже когда-то придётся вернуться к этой теме. Да не вопрос. Причем делать точно буду, но вот не знаю когда (пока что у этой задачи статус "critical", то есть: спать мешает, но жить c этим можно). И да, сейчас безопасный smtp доступ отмирает понемногу. Уже столкнулся с мобильными операторами, которые "587/465 only". Опять же, в перспективе уже не сильно удивлюсь, если FTP на FTPS менять нужно будет в обозримом будущем, так что от понимания "как это работает" не уйти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psL 0 1 февраля, 2017 Опубликовано 1 февраля, 2017 · Жалоба можно посмотреть WolfSSL https://www.wolfssl.com/wolfSSL/Products-wolfssl.html https://www.wolfssl.com/wolfSSL/Blog/Entrie...h_STARTTLS.html https://github.com/wolfSSL/wolfssl/blob/mas...client/client.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 16 1 февраля, 2017 Опубликовано 1 февраля, 2017 · Жалоба можно посмотреть WolfSSL Большое спасибо! посмотрю, конечно. Из того что я предварительно читал про WolfSSL, мне показалось(!может я и не прав), что оно сложнее в подключении и жручее в ресурсах чем mbed TLS. И при прочих равных лицензия тоже аргумент- WolfSSL это GPLv2 , а mbed TLS это еще и Apache 2.0. Этот Апач, как я понял гораздо либеральней и разрешает мне не открывать мой финальный код при использовании их исходников. Понимаю, что мало кто на соблюдении лицензий зацикливается, но при прочих равных могу позволить себе роскошь побыть честным человеком :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться