Spatium SDK > signEddsaMessage
signEddsaMessage
suspend fun signEddsaMessage(driver: ProtocolKotlin, secretId: String, syncSessionId: String, signSessionId: String, message: String): EddsaSignature
Генерирует распределенную EDDSA подпись для данного сообщения (отдельный помощник)
Для этого метода необходима уже пройденная процедура синхронизации и так же ничего не должно быть помещено в постоянное хранилище. Сообщения с объемом информации отличным от 32 байт будут дополнены/урезаны в соответствии с EDDSA алгоритмом.
Возвращает
EddsaSignature
EDDSA подпись в стандартном формате
- SeeAlso:
SpatiumProtocol/signEddsaMessage(secretId:syncSessionId:signSessionId:message:)
Пример
// Считаем, что процедура синхронизации уже пройдена и соединение установлено
// Генерируем рандомный session ID для новой сессии подписания
val signSessionId = UUID.randomUUID().toString()
// Сообщение к подписанию
val message = "7hJ9yN2OdIQo2kJu0arZgw2EKnMX5FGtQ6jlCWuLXCM="
// Генерируем EDDSA подпись
val signature = signEddsaMessage(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) of a secret used for synchronisation |
syncSessionId | ID (UUID) соответствующей процедуры синхронизации |
signSessionId | ID (UUID) данной процедуры подписания |
message | сообщение (32 байта base64-encoded) к подписанию |