# utils.crypto Пакет отвечает за криптографию — подписи и хэши блоков. Используется при создании и проверке целостности `.bch`-блоков. --- ## Классы ### **Ed25519Util** Работает с подписями Ed25519. Методы: - `generatePrivateKey()` — создать приватный ключ (32 байта) - `generatePrivateKeyFromString(String)` — детерминированный ключ из строки - `derivePublicKey(byte[32])` — получить публичный ключ (32 байта) - `sign(byte[], byte[32])` — подписать данные (64-байтная подпись) - `verify(byte[], byte[64], byte[32])` — проверить подпись ### **HashUtil** Вычисляет SHA-256. Методы: - `sha256(byte[])` → `[32]` — вернуть хэш массива - `Sha256` — вложенный класс для пошагового хэширования ### **BchCryptoVerifier** Проверяет подпись и хэш блока перед записью в блокчейн. Методы: - `verifyAll(userLogin, blockchainId, prevHash32, rawBytes, signature64, hash32, publicKey32)` → `true/false` — корректна ли подпись и хэш - `buildPreimage(...)` — собирает байты, которые подписываются: