mirror of https://github.com/voidlizard/hbs2
pep-02 updated
This commit is contained in:
parent
141226d7ba
commit
d1dd6fae23
|
@ -31,17 +31,22 @@ Curve25519 (?), т.е ключевую пару асимметричного ш
|
||||||
|
|
||||||
data family ACB e schema :: Type
|
data family ACB e schema :: Type
|
||||||
|
|
||||||
|
data family AccessKey e schema :: Type
|
||||||
|
|
||||||
data ACBSchema = NaClAsymm
|
data ACBSchema = NaClAsymm
|
||||||
|
|
||||||
data instance ACB e NaClAsymm =
|
data instance ACB e NaClAsymm =
|
||||||
ACBNaClAsymm
|
ACBNaClAsymm
|
||||||
{ acbParent :: HashRef -- указатель на предыдущий ACB
|
{ acbParent :: HashRef -- указатель на предыдущий ACB
|
||||||
, acbRoot :: PubKey 'Sign e -- корневой владелец
|
, acbRoot :: PubKey 'Sign e -- корневой владелец
|
||||||
, acbOwners :: [PubKey 'Sign e] -- ключи владельцев
|
, acbOwners :: [PubKey 'Sign e] -- ключи владельцев
|
||||||
, acbRead :: [PubKey 'Encrypt e] -- ключи шифрования подписчиков
|
|
||||||
, acbWrite :: [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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue