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

ПРОТОКОЛ

Crypto

public protocol Crypto: AnyObject

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

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

Методы

checkSecret(secretId:)

func checkSecret(secretId: String) async -> Bool

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

Параметры

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

Возвращает

Bool

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

generateSecret(secretId:)

func generateSecret(secretId: String) async throws

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

Заметьте

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

Параметры

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

Возвращает

void

removeSecret(secretId:)

func removeSecret(secretId: String) async

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

Параметры

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

Возвращает

void

exportSecret(secretId:)

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

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

Заметьте

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

Параметры

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

Возвращает

String?

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

importSecret(secretId:secret:)

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

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

Заметьте

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

Заметьте

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

Параметры

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

Возвращает

void

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

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

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

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

createEcdsaKeyDecommitment(syncSessionId:keyGenerationDataProof:)

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

createDistributedEcdsaKey(syncSessionId:keyDecommitment:)

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

createEcdsaChallengeCommitment(syncSessionId:)

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

createEcdsaChallengeResponseCommitment(syncSessionId:challengeCommitment:)

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

createEcdsaChallengeDecommitment(syncSessionId:challengeResponseCommitment:)

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

createEcdsaChallangeResponseDecommitment(syncSessionId:challengeDecommitment:)

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

verifyEcdsaChallengeResponseDecommitment(syncSessionId:challengeResponseDecommitment:)

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

getCompoundEcdsaPublicKey(secretId:syncSessionId:)

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

removeDistributedEcdsaKey(secretId:syncSessionId:)

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

createEcdsaSigningKeyCommitment(secretId:syncSessionId:signSessionId:message:)

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

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

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

createEcdsaSigningKeyDecommitment(signSessionId:signingKeyGenerationDataProof:)

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

createEcdsaPartialSignature(signSessionId:signingKeyDecommitment:)

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

createEcdsaSignature(signSessionId:partialSignature:)

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

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

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

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

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

createEddsaKeyDecommitment(syncSessionId:keyGenerationDataProof:)

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

createDistributedEddsaKey(syncSessionId:keyDecommitment:)

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

getCompoundEddsaPublicKey(secretId:syncSessionId:)

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

removeDistributedEddsaKey(secretId:syncSessionId:)

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

createEddsaSigningKeyCommitment(secretId:syncSessionId:signSessionId:message:)

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

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

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

createEddsaSigningKeyDecommitment(signSessionId:signingKeyGenerationDataProof:)

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

createEddsaPartialSignature(signSessionId:signingKeyDecommitment:)

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

createEddsaSignature(signSessionId:partialSignature:)

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