Перейти к содержанию

Spatium SDK > signEcdsaMessage

signEcdsaMessage

suspend fun signEcdsaMessage(driver: ProtocolKotlin, secretId: String, syncSessionId: String, signSessionId: String, message: String): EcdsaSignature

Генерирует распределенную ECDSA подпись для данного сообщения (отдельный помощник)

Для этого метода необходима уже пройденная процедура синхронизации и так же ничего не должно быть помещено в постоянное хранилище. Сообщения с объемом информации отличным от 32 байт будут дополнены/урезаны в соответствии с ECDSA алгоритмом.

Возвращает

ECDSA подпись в стандартном формате

  • См. также: : ProtocolKotlin/signEcdsaMessage(secretId:syncSessionId:signSessionId:message:)

Пример

// Считаем, что процедура синхронизации уже пройдена и соединение установлено

// Генерируем рандомный session ID для новой сессии подписания
val signSessionId = UUID.randomUUID().toString()

// Сообщение к подписанию
val message = "7hJ9yN2OdIQo2kJu0arZgw2EKnMX5FGtQ6jlCWuLXCM="

// Генерируем ECDSA подпись
val signature = signEcdsaMessage(secretId: String, syncSessionId: String, signSessionId: String, message: String)

// Верифицируем подпись к составному ключу
println(
 mapOf(
     "curve" to EcdsaCurve.secp256k1,
     "publicKey" to publicKey,
     "message" to message,
     "signature" to mapOf(
         "r" to signature.r,
         "s" to signature.s,
         "recovery" to signature.recovery
     )
 )
)

Параметры

androidJvm

Имя Описание
driver ProtocolKotlin имплементация
secretId ID (UUID) секрета для синхронизации
syncSessionId ID (UUID) соответствующей процедуры синхронизации
signSessionId ID (UUID) данной процедуры подписания
message сообщение (32 байта base64-encoded) к подписанию