pep-02 updated

This commit is contained in:
Dmitry Zuikov 2023-02-11 10:20:16 +03:00
parent 141226d7ba
commit d1dd6fae23
1 changed files with 35 additions and 6 deletions

View File

@ -31,17 +31,22 @@ Curve25519 (?), т.е ключевую пару асимметричного ш
data family ACB e schema :: Type
data family AccessKey e schema :: Type
data ACBSchema = NaClAsymm
data instance ACB e NaClAsymm =
ACBNaClAsymm
{ acbParent :: HashRef -- указатель на предыдущий ACB
, acbRoot :: PubKey 'Sign e -- корневой владелец
, acbOwners :: [PubKey 'Sign e] -- ключи владельцев
, acbRead :: [PubKey 'Encrypt e] -- ключи шифрования подписчиков
, acbWrite :: [PubKey 'Sign e] -- ключи подписи
}
{ acbParent :: HashRef -- указатель на предыдущий ACB
, acbRoot :: PubKey 'Sign e -- корневой владелец
, acbOwners :: [PubKey 'Sign e] -- ключи владельцев
, acbRead :: [(PubKey 'Sign e, PubKey 'Encrypt e)]
-- при чтении нужно расшифровывать и идентифицировать ключ
, acbWrite :: [(PubKey 'Sign e)]
-- при публикации нужно проверять подпись
}
```
@ -53,6 +58,23 @@ data instance ACB e NaClAsymm =
шифрования, что бы он мог расшифровать публикуемый контент.
```
-- EncryptedBox - обертка вокруг ключа ассиметричного шифрования
-- (KeyPAir)
newtype instance AccessKey e NaClAsymm =
AccessKeyNaClAsymm
{ permitted :: [(PubKey 'Sign e, EncryptedBox)]
}
```
Список пар (ключ подписи пользователя, ключ шифрования).
Пара необходима, что бы пользователи за O(1) найти и
расшифровать свой ключ.
Операции:
- Добавить право на чтение
@ -61,5 +83,12 @@ data instance ACB e NaClAsymm =
- Удалить право на публикацию
- Добавить владельца
- Удалить владельца
- Создать новый ключ публикации
### Создать новый ключ публикации
- Получить ACB
- Для каждого подписчика на чтение добавить зашифрованный
ключ в permitted