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