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

КЛАСС

SpatiumCrypto

open class SpatiumCrypto: Crypto

Надежные MPC алгоритмы подписания для ECDSA и EDDSA систем

Описывает одновременно и открытую и закрытую среду исполнения, где внутри самой среды хранятся временные и постоянные данные, которые не могут быть импортированы или экспортированы. Для программных имплементаций это будет означать использование StorageDrivers чтобы оставить хранилище данных непрозрачным и совместимым с HSM/TEE имплементациями.

Свойства

cache

public final let cache: StorageDriver

временное хранилище для содержания промежуточных данных в ходе выполнения MPC процедуры

storage

public final let storage: StorageDriver

постоянное хранилище для сохранения долгосрочных данных, таких как секреты, данные синхронизации и т.д.

Методы

init(cache:storage:)

public init(cache: StorageDriver, storage: StorageDriver)

SpatiumCrypto Конструктор

Построен на Storage Drivers и независимых от состояний MPC алгоритмах, тем самым полностью инкапсулирует хранилище данных внутри MPC алгоритмов.

Построен на Storage Drivers и независимых от состояний MPC алгоритмах, тем самым полностью инкапсулирует хранилище данных внутри MPC алгоритмов.

SpatiumCrypto выступает в качестве программного CryptoDriver, имплементируя MPC алгоритмы к локально сохраненным данным. Подходит для использования в рамках SpatiumProtocol, для кейсов, в которых runtime security не требуется или невозможна.

Параметры

Имя Описание
cache временное хранилище для содержания промежуточных данных в ходе выполнения MPC процедуры
storage постоянное хранилище для сохранения долгосрочных данных, таких как секреты, данные синхронизации и т.д.

checkSecret(secretId:)

public func checkSecret(secretId: String) async -> Bool

Проверяет занят ли текущий secretId

Параметры

Имя Описание
secretId ID (UUID) данного секрета

Возвращает

Bool

true если данный secretId занят

generateSecret(secretId:)

public func generateSecret(secretId: String) async throws

Генерирует новый случайный секрет под данным secretId

Заметьте

Генерирует исключение, если secretId уже занят

Параметры

Имя Описание
secretId внешний ID (UUID) для привязки секрета

Возвращает

void

removeSecret(secretId:)

public func removeSecret(secretId: String) async

Удаляет сохраненный секрет из хранилища

Параметры

Имя Описание
secretId ID (UUID) данного секрета

exportSecret(secretId:)

public func exportSecret(secretId: String) async -> String?

Экспортирует сохраненный секрет как строку

Заметьте

Способность к импорту и экспорту секрета может зависеть от имплементации

Параметры

Имя Описание
secretId ID (UUID) данного секрета

Возвращает

String?

64 байт base64-encoded данных или null, если секрета по данному ID не найдено

importSecret(secretId:secret:)

public func importSecret(secretId: String, secret: String) async throws

Импортирует существующий секрет под определенным secretId

Заметьте

Генерирует исключение, если secretId уже занят

Заметьте

Способность к импорту и экспорту секрета может зависеть от имплементации

Параметры

Имя Описание
secretId внешний ID (UUID) для привязки секрета
secret 64 байт base64-encoded данных

Возвращает

void

createEcdsaKeyCommitment(secretId:syncSessionId:curve:derivationCoin:derivationAccount:)

public func createEcdsaKeyCommitment(secretId: String, syncSessionId: String, curve: EcdsaCurve, derivationCoin: UInt32, derivationAccount: UInt32) async throws -> String

createEcdsaKeyGenerationDataProof(secretId:syncSessionId:curve:derivationCoin:derivationAccount:keyCommitment:)

public func createEcdsaKeyGenerationDataProof(secretId: String, syncSessionId: String, curve: EcdsaCurve, derivationCoin: UInt32, derivationAccount: UInt32, keyCommitment keyCommitmentData: String) async throws -> String

createEcdsaKeyDecommitment(syncSessionId:keyGenerationDataProof:)

public func createEcdsaKeyDecommitment(syncSessionId: String, keyGenerationDataProof keyGenerationDataProofData: String) async throws -> String

createDistributedEcdsaKey(syncSessionId:keyDecommitment:)

public func createDistributedEcdsaKey(syncSessionId: String, keyDecommitment keyDecommitmentData: String) async throws

createEcdsaChallengeCommitment(syncSessionId:)

public func createEcdsaChallengeCommitment(syncSessionId: String) async throws -> String

createEcdsaChallengeResponseCommitment(syncSessionId:challengeCommitment:)

public func createEcdsaChallengeResponseCommitment(syncSessionId: String, challengeCommitment challengeCommitmentData: String) async throws -> String

createEcdsaChallengeDecommitment(syncSessionId:challengeResponseCommitment:)

public func createEcdsaChallengeDecommitment(syncSessionId: String, challengeResponseCommitment challengeResponseCommitmentData: String) async throws -> String

createEcdsaChallangeResponseDecommitment(syncSessionId:challengeDecommitment:)

public func createEcdsaChallangeResponseDecommitment(syncSessionId: String, challengeDecommitment challengeDecommitmentData: String) async throws -> String

verifyEcdsaChallengeResponseDecommitment(syncSessionId:challengeResponseDecommitment:)

public func verifyEcdsaChallengeResponseDecommitment(syncSessionId: String, challengeResponseDecommitment challengeResponseDecommitmentData: String) async throws -> String

getCompoundEcdsaPublicKey(secretId:syncSessionId:)

public func getCompoundEcdsaPublicKey(secretId: String, syncSessionId: String) async throws -> String

Параметры

Имя Тип
secretId string
syncSessionId string

Возвращает

String

removeDistributedEcdsaKey(secretId:syncSessionId:)

public func removeDistributedEcdsaKey(secretId: String, syncSessionId: String) async throws

createEcdsaSigningKeyCommitment(secretId:syncSessionId:signSessionId:message:)

public func createEcdsaSigningKeyCommitment(secretId: String, syncSessionId: String, signSessionId: String, message: String) async throws -> String

createEcdsaSigningKeyGenerationDataProof(secretId:syncSessionId:signSessionId:message:signingKeyCommitment:)

public func createEcdsaSigningKeyGenerationDataProof(secretId: String, syncSessionId: String, signSessionId: String, message: String, signingKeyCommitment signingKeyCommitmentData: String) async throws -> String

createEcdsaSigningKeyDecommitment(signSessionId:signingKeyGenerationDataProof:)

public func createEcdsaSigningKeyDecommitment(signSessionId: String, signingKeyGenerationDataProof signingKeyGenerationDataProofData: String) async throws -> String

createEcdsaPartialSignature(signSessionId:signingKeyDecommitment:)

public func createEcdsaPartialSignature(signSessionId: String, signingKeyDecommitment signingKeyDecommitmentData: String) async throws -> String

createEcdsaSignature(signSessionId:partialSignature:)

public func createEcdsaSignature(signSessionId: String, partialSignature partialSignatureData: String) async throws -> EcdsaSignature

createEddsaKeyCommitment(secretId:syncSessionId:curve:derivationCoin:derivationAccount:)

public func createEddsaKeyCommitment(secretId: String, syncSessionId: String, curve: EddsaCurve, derivationCoin: UInt32, derivationAccount: UInt32) async throws -> String

createEddsaKeyGenerationDataProof(secretId:syncSessionId:curve:derivationCoin:derivationAccount:keyCommitment:)

public func createEddsaKeyGenerationDataProof(secretId: String, syncSessionId: String, curve: EddsaCurve, derivationCoin: UInt32, derivationAccount: UInt32, keyCommitment keyCommitmentData: String) async throws -> String

createEddsaKeyDecommitment(syncSessionId:keyGenerationDataProof:)

public func createEddsaKeyDecommitment(syncSessionId: String, keyGenerationDataProof keyGenerationDataProofData: String) async throws -> (String, String)

createDistributedEddsaKey(syncSessionId:keyDecommitment:)

public func createDistributedEddsaKey(syncSessionId: String, keyDecommitment keyDecommitmentData: String) async throws -> String

getCompoundEddsaPublicKey(secretId:syncSessionId:)

public func getCompoundEddsaPublicKey(secretId: String, syncSessionId: String) async throws -> String

Параметры

Имя Тип
secretId string
syncSessionId string

Возвращает

String

removeDistributedEddsaKey(secretId:syncSessionId:)

public func removeDistributedEddsaKey(secretId: String, syncSessionId: String) async throws

createEddsaSigningKeyCommitment(secretId:syncSessionId:signSessionId:message:)

public func createEddsaSigningKeyCommitment(secretId: String, syncSessionId: String, signSessionId: String, message: String) async throws -> String

createEddsaSigningKeyGenerationDataProof(secretId:syncSessionId:signSessionId:message:signingKeyCommitment:)

public func createEddsaSigningKeyGenerationDataProof(secretId: String, syncSessionId: String, signSessionId: String, message: String, signingKeyCommitment signingKeyCommitmentData: String) async throws -> String

createEddsaSigningKeyDecommitment(signSessionId:signingKeyGenerationDataProof:)

public func createEddsaSigningKeyDecommitment(signSessionId: String, signingKeyGenerationDataProof signingKeyGenerationDataProofData: String) async throws -> String

createEddsaPartialSignature(signSessionId:signingKeyDecommitment:)

public func createEddsaPartialSignature(signSessionId: String, signingKeyDecommitment signingKeyDecommitmentData: String) async throws -> String

createEddsaSignature(signSessionId:partialSignature:)

public func createEddsaSignature(signSessionId: String, partialSignature partialSignatureData: String) async throws -> EddsaSignature