3.3Kпросмотров
100.0%от подписчиков
14 января 2026 г.
statsScore: 3.6K
Go 1.26: Криптография без ридеров Пожалуй, самое спорное изменение в Go 1.26. Сейчас криптографические API (например ecdsa.GenerateKey), обычно принимают io.Reader как источник случайных данных: ecdsa.GenerateKey(elliptic.P256(), rand.Reader) Эти API не гарантируют, как именно используют случайные байты из ридера. Изменение алгоритма может поменять порядок или количество читаемых байт. Поэтому приложения, которые зависят от конкретного поведения, могут перестать работать, если реализация поменяется. Команда Go выбрала радикальное решение этой проблемы. Начиная с версии 1.26, большинство крипто-API просто игнорируют параметр io.Reader и используют внутренний системный источник случайных чисел. Теперь можно передавать nil или ридер — это больше не имеет значения: ecdsa.GenerateKey(elliptic.P256(), nil) Кажется, это первый раз, когда в стандартной библиотеке Go несколько публичных API начали так себя вести. Это оправдано, но все равно как-то грустно.