Files
sphinx-key/broker/lss.md

69 lines
1.6 KiB
Markdown

# steps to integrate LSS
### initialization
##### broker
- check that there is an LSS url to use
- LssClient::get_server_pubkey
- send server pubkey to signer
##### signer
- let client_id = keys_manager.get_persistence_pubkey()
- let auth_token = keys_manager.get_persistence_auth_token(&server_pubkey)
- let shared_secret = keys_manager.get_persistence_shared_secret(&server_pubkey)
- create a ExternalPersistHelper locally and init `state`
- helper.new_nonce
- send the client_id, auth_token, and nonce back to the broker
##### broker
- create Auth
- LssClient::new
- get ALL muts from cloud
- let (muts, server_hmac) = client.get("".to_string(), &nonce)
- send the muts and server_hmac to signer
##### signer
- check the server hmac
- insert the muts into local state
- let handler_builder = handler_builder.lss_state(...);
- (what is the above line do it muts are already inserted???)
- let (handler, muts) = handler_builder.build();
- helper.client_hmac
- send the muts and client_hmac back to broker
##### broker
- store the muts using the LssClient (client.put(muts, &client_hmac))
- send server_hmac back to signer???
- init the Unix Fd connection finally, so the hsmd_init message comes
##### signer
- need to verify server hmac here???
### VLS
##### signer
- let (reply, muts) = handler.handle(msg)
- let client_hmac = helper.client_hmac(&muts);
- send muts and hmac to broker
##### broker
- client.put(muts, &client_hmac).await?
- server hmac sent back to signer
##### signer
- verify server hmac
- finally, send the VLS reply back to broker
##### broker
- forward the VLS reply back to CLN