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

Spatium SDK

Package-level declarations

Types

Name Summary
Crypto [androidJvm]
interface Crypto
Secure MPC signature algorithms for ECDSA and EDDSA systems
CryptoError [androidJvm]
sealed class CryptoError : Exception
EcdsaCurve [androidJvm]
enum EcdsaCurve : Enum<EcdsaCurve>
EcdsaKeyCommitmentSchema [androidJvm]
@Serializable
data class EcdsaKeyCommitmentSchema(val version: Version, val syncSessionId: String, val secretId: String, val curve: EcdsaCurve, val derivationCoin: UInt, val derivationAccount: UInt, val keyCommitment: String)
EcdsaSignature [androidJvm]
@Serializable
data class EcdsaSignature(val s: String, val r: String, val recovery: UInt)
EddsaCurve [androidJvm]
enum EddsaCurve : Enum<EddsaCurve>
EddsaSignature [androidJvm]
@Serializable
data class EddsaSignature(val s: String, val r: String)
MemoryStorageDriver [androidJvm]
open class MemoryStorageDriver : StorageDriver
A simple in-memory key-value storage for client apps
ProtocolError [androidJvm]
sealed class ProtocolError : Exception
ProtocolKotlin [androidJvm]
interface ProtocolKotlin
Secure MPC signature protocol for ECDSA and EDDSA systems
RandomBytesSource [androidJvm]
class RandomBytesSource(val generateBytes: (Long) -> String)
ReceiveError [androidJvm]
sealed class ReceiveError : Exception
SCVersion [androidJvm]
enum SCVersion : Enum<SCVersion>
SpatiumCrypto [androidJvm]
open class SpatiumCrypto(val cache: StorageDriver, val storage: StorageDriver) : Crypto
SpatiumCrypto Constructor
SpatiumProtocol [androidJvm]
open class SpatiumProtocol(val crypto: Crypto, val transport: TransportDriver, val timeout: UInt?) : ProtocolKotlin
SpatiumProtocol Constructor
StorageData [androidJvm]
typealias StorageData = Any
Stored data blob
StorageDriver [androidJvm]
interface StorageDriver
Abstract Storage Driver API
StorageMeta [androidJvm]
data class StorageMeta(val room: String, val topic: String)
Storage entry identification data
TransportCallback [androidJvm]
typealias TransportCallback = suspend (meta: TransportMeta, data: TransportData, id: String) -> Unit
TransportData [androidJvm]
typealias TransportData = String
Message data blob
TransportDriver [androidJvm]
interface TransportDriver
Abstract Transport Driver API
TransportFilter [androidJvm]
data class TransportFilter(val room: String? = null, val topic: String? = null)
Message filter
TransportMeta [androidJvm]
data class TransportMeta(val room: String, val topic: String)
Message identification data
TransportPayload [androidJvm]
data class TransportPayload(val room: String, val topic: String, val data: TransportData)
Version [androidJvm]
enum Version : Enum<Version>

Properties

Name Summary
NIL_UUID [androidJvm]
val NIL_UUID: String

Functions

Name Summary
decrypt [androidJvm]
fun decrypt(data: String, key: String): String
deriveHDKey [androidJvm]
fun deriveHDKey(secret: String, coin: UInt, account: UInt): String
deserialize [androidJvm]
fun <T : Any> deserialize(scheme: Class<T>, data: String): T?
encrypt [androidJvm]
fun encrypt(data: String, key: String, randomSource: (Long) -> String): String
getEcdsaPublicKey [androidJvm]
suspend fun getEcdsaPublicKey(driver: ProtocolKotlin, secretId: String, syncSessionId: String): String
Get a compound public key from an already performed synchronisation session
getEddsaPublicKey [androidJvm]
suspend fun getEddsaPublicKey(driver: ProtocolKotlin, secretId: String, syncSessionId: String): String
Get a compound public key from an already performed synchronisation session
matchTransportMeta [androidJvm]
fun matchTransportMeta(meta: TransportMeta, filter: TransportFilter): Boolean
Match a filter against a meta
randomBytes [androidJvm]
fun randomBytes(length: Long): String
read [androidJvm]
suspend fun read(driver: StorageDriver, meta: StorageMeta): StorageData?
Read data stored under provided meta
receive [androidJvm]
suspend fun receive(driver: TransportDriver, filter: TransportFilter, assert: TransportFilter?, timeout: UInt?): TransportPayload
Receive a specific message
removeDistributedEcdsaKey [androidJvm]
suspend fun removeDistributedEcdsaKey(driver: ProtocolKotlin, secretId: String, syncSessionId: String)
Remove an already performed synchronisation session from storage
removeDistributedEddsaKey [androidJvm]
suspend fun removeDistributedEddsaKey(driver: ProtocolKotlin, secretId: String, syncSessionId: String)
Remove an already performed synchronisation session from storage
safeDeserialize [androidJvm]
fun <T : Any> safeDeserialize(scheme: Class<T>, data: String): T?
safeSecurePack [androidJvm]
fun <T : Any> safeSecurePack(v: T, randomSource: (Long) -> String): String?
safeSecureUnpack [androidJvm]
fun <T : Any> safeSecureUnpack(schema: Class<T>, data: String): T?
safeSerialize [androidJvm]
fun <T : Any> safeSerialize(data: T): String?
securePack [androidJvm]
fun <T : Any> securePack(v: T, randomSource: (Long) -> String): String
secureUnpack [androidJvm]
fun <T : Any> secureUnpack(schema: Class<T>, data: String): T
send [androidJvm]
suspend fun send(driver: TransportDriver, meta: TransportMeta, data: TransportData)
Send a message via transport
serialize [androidJvm]
fun <T : Any> serialize(data: T): String
signEcdsaMessage [androidJvm]
suspend fun signEcdsaMessage(driver: ProtocolKotlin, secretId: String, syncSessionId: String, signSessionId: String, message: String): EcdsaSignature
Generate distributed EDDSA signature for a given message
signEddsaMessage [androidJvm]
suspend fun signEddsaMessage(driver: ProtocolKotlin, secretId: String, syncSessionId: String, signSessionId: String, message: String): EddsaSignature
Generate distributed EDDSA signature for a given message
syncDistributedEcdsaKey [androidJvm]
suspend fun syncDistributedEcdsaKey(driver: ProtocolKotlin, secretId: String, syncSessionId: String, curve: EcdsaCurve, derivationCoin: UInt, derivationAccount: UInt): String
Perform distributed key synchronisation procedure
syncDistributedEddsaKey [androidJvm]
suspend fun syncDistributedEddsaKey(driver: ProtocolKotlin, secretId: String, syncSessionId: String, curve: EddsaCurve, derivationCoin: UInt, derivationAccount: UInt): String
Perform distributed key synchronisation procedure
take [androidJvm]
suspend fun take(driver: StorageDriver, meta: StorageMeta): StorageData?
Take data stored under provided meta and remove original
write [androidJvm]
suspend fun write(driver: StorageDriver, meta: StorageMeta, data: StorageData)
Write a unit of data into storage, uniquely identified by meta