Also it might be worth writing more on preferences encryption:
It takes a password you provide it. It uses PBKDF2 (not the best option but it's the most widely supported by WebCrypto), right now I have it at 500,000 iterations to create an AES-256 key. This key is then used to encrypt your preferences.
As aforementioned, preferences updates must still be signed to be attested. Otherwise they are not applied.
Pros:
- You can share preferences without sharing the root key
Cons:
- You need good password hygiene or you lose control of your metadata (just like... everything else)