SHiNE-server/shine-server-crypto/src/main/java/utils/crypto
AidarKC aa2caf1f10 17 12 25
Ещё промежуточный комит верии - не работает :)
2025-12-17 15:57:05 +03:00
..
BchCryptoVerifier.java 17 12 25 2025-12-17 13:06:08 +03:00
CryptoSelfTest.java 17 12 25 2025-12-17 13:06:08 +03:00
Ed25519Util.java 17 12 25 2025-12-17 13:06:08 +03:00
HashSHA256Util.java 17 12 25 2025-12-17 15:57:05 +03:00
README.md 17 12 25 2025-12-17 13:06:08 +03:00

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(...) — собирает байты, которые подписываются: