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

Class: SpatiumCrypto

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

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

Имплементирует

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

constructor

new SpatiumCrypto(cache, storage)

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

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

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

Параметры

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

Свойства

cache

cache: StorageDriver

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


storage

storage: StorageDriver

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

Методы

checkSecret

checkSecret(secretId): Promise<boolean>

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

Параметры

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

Возвращает

Promise<boolean>

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

Имплементация

Crypto.checkSecret


exportSecret

exportSecret(secretId): Promise<null | string>

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

Заметьте

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

Параметры

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

Возвращает

Promise<null | string>

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

Имплементация

Crypto.exportSecret


generateSecret

generateSecret(secretId): Promise<void>

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

Заметьте

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

Параметры

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

Возвращает

Promise<void>

Имплементация

Crypto.generateSecret


getCompoundEcdsaPublicKey

getCompoundEcdsaPublicKey(secretId, syncSessionId): Promise<string>

Параметры

Имя Тип
secretId string
syncSessionId string

Возвращает

Promise<string>

Имплементация

Crypto.getCompoundEcdsaPublicKey


getCompoundEddsaPublicKey

getCompoundEddsaPublicKey(secretId, syncSessionId): Promise<string>

Параметры

Имя Тип
secretId string
syncSessionId string

Возвращает

Promise<string>

Имплементация

Crypto.getCompoundEddsaPublicKey


importSecret

importSecret(secretId, secret): Promise<void>

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

Заметьте

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

Заметьте

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

Параметры

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

Возвращает

Promise<void>

Имплементация

Crypto.importSecret