КЛАСС
SpatiumCrypto
Надежные MPC алгоритмы подписания для ECDSA и EDDSA систем
Описывает одновременно и открытую и закрытую среду исполнения, где внутри самой среды хранятся временные и постоянные данные, которые не могут быть импортированы или экспортированы. Для программных имплементаций это будет означать использование StorageDrivers чтобы оставить хранилище данных непрозрачным и совместимым с HSM/TEE имплементациями.
Свойства
cache
временное хранилище для содержания промежуточных данных в ходе выполнения MPC процедуры
storage
постоянное хранилище для сохранения долгосрочных данных, таких как секреты, данные синхронизации и т.д.
Методы
init(cache:storage:)
SpatiumCrypto Конструктор
Построен на Storage Drivers и независимых от состояний MPC алгоритмах, тем самым полностью инкапсулирует хранилище данных внутри MPC алгоритмов.
Построен на Storage Drivers и независимых от состояний MPC алгоритмах, тем самым полностью инкапсулирует хранилище данных внутри MPC алгоритмов.
SpatiumCrypto выступает в качестве программного CryptoDriver, имплементируя MPC алгоритмы к локально сохраненным данным. Подходит для использования в рамках SpatiumProtocol, для кейсов, в которых runtime security не требуется или невозможна.
Параметры
Имя | Описание |
---|---|
cache | временное хранилище для содержания промежуточных данных в ходе выполнения MPC процедуры |
storage | постоянное хранилище для сохранения долгосрочных данных, таких как секреты, данные синхронизации и т.д. |
checkSecret(secretId:)
Проверяет занят ли текущий secretId
Параметры
Имя | Описание |
---|---|
secretId | ID (UUID) данного секрета |
Возвращает
Bool
true
если данный secretId занят
generateSecret(secretId:)
Генерирует новый случайный секрет под данным secretId
Заметьте
Генерирует исключение, если secretId уже занят
Параметры
Имя | Описание |
---|---|
secretId | внешний ID (UUID) для привязки секрета |
Возвращает
void
removeSecret(secretId:)
Удаляет сохраненный секрет из хранилища
Параметры
Имя | Описание |
---|---|
secretId | ID (UUID) данного секрета |
exportSecret(secretId:)
Экспортирует сохраненный секрет как строку
Заметьте
Способность к импорту и экспорту секрета может зависеть от имплементации
Параметры
Имя | Описание |
---|---|
secretId | ID (UUID) данного секрета |
Возвращает
String?
64 байт base64-encoded данных или null
, если секрета по данному ID не найдено
importSecret(secretId:secret:)
Импортирует существующий секрет под определенным 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:)
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:)
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:)
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