Class: Crypto
Надежные MPC алгоритмы подписания для ECDSA и EDDSA систем
Описывает одновременно и открытую и закрытую среду исполнения, где внутри самой среды хранятся временные и постоянные данные, которые не могут быть импортированы или экспортированы. Для программных имплементаций это будет означать использование StorageDrivers чтобы оставить хранилище данных непрозрачным и совместимым с HSM/TEE имплементациями.
Имплементирует
Конструкторы
constructor
• new Crypto(cache
, storage
)
Crypto конструктор
Построен на Storage Drivers и независимых от состояний MPC алгоритмах, тем самым полностью инкапсулирует хранилище данных внутри MPC алгоритмов.
Crypto выступает в качестве программного CryptoDriver, имплементируя MPC алгоритмы к локально сохраненным данным. Подходит для использования в рамках Protocol, для кейсов, в которых 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 занят
Имплементация
exportSecret
▸ exportSecret(secretId
): Promise
<null
| string
>
Экспортирует сохраненный секрет как строку
Заметьте
Способность к импорту и экспорту секрета может зависеть от имплементации
Параметры
Имя | Тип | Описание |
---|---|---|
secretId |
string |
ID (UUID) данного секрета |
Возвращает
Promise
<null
| string
>
64 байт base64-encoded данных или null
, если секрета по данному ID не найдено
Имплементация
generateSecret
▸ generateSecret(secretId
): Promise
<void
>
Генерирует новый случайный секрет под данным secretId
Заметьте
Генерирует исключение, если secretId уже занят
Параметры
Имя | Тип | Описание |
---|---|---|
secretId |
string |
внешний ID (UUID) для привязки секрета |
Возвращает
Promise
<void
>
Имплементация
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
>