From 89274b537e23da52cf13f39e07fa1837b8ce6d3c Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 10 Dec 2017 18:08:10 +0300 Subject: [PATCH] hpenc MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit https://github.com/vstakhov/hpenc/ Мой простенький компьютер для бэкапов имеет очень медленный процессор. А записывать на ленты и передавать данные по сети хочется в зашифрованном виде и с проверкой целостности. Быстрый поиск в поисковике дал hpenc проект. Именно то что надо. Быстрый современный аутентифицированный шифр, PSK, многопоточность, разные размеры блоков. openssl enc -- не аутентифицирован. GnuPG не имеет Salsa/ChaCha/Poly/AES-GCM. OpenSSH однопоточен. hpenc выглядит идеалом. Но... на практике попробовав обломался. В C++ я мало чего понимаю и не знаю как легко выяснить и понять проблему, но hpenc между FreeBSD и HardenedBSD сборкой может обработать только 8192 блоков. У меня четыре машины сейчас: две с FreeBSD, две с HardenedBSD. F<->F и H<->H работают без проблем. F<->H ровно после 8192 блоков (размер блока варьирую -- результат один) вылетает с сообщением о том, что verification failed. Версия софта, порта -- точно такие же. FreeBSD на Xeon-ах, последняя стабильная. HardenedBSD последняя стабильная на одной машине (Celeon весь из себя урезанный) и годовалой давности на другой (Core i5 SkyLake) (но между собой они работают). Более того, я собрал пакет на HardenedBSD и его, точно такой же, поставил на FreeBSD -- результат один. Кроме того, лично меня это не касается, но в портах отмечено что оно не будет собираться/работать на ARM64 и PowerPC64. У меня мысли написать примерно такую же утилиту на Go. ChaCha20/Poly1305 там оптимизированы, с ассемблером под amd64, так что должны быть не намного медленнее C-шной реализации. Зато, как минимум, будет поддерживать большее количество платформ и уж работать без проблем с 8192 блоками. -- 2.50.0