• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

oasisprotocol / oasis-core / #4796

17 Apr 2024 01:06AM UTC coverage: 46.95% (-2.2%) from 49.113%
#4796

Pull #5640

peternose
go/worker/keymanager/churp: Orchestrate handoffs
Pull Request #5640: go/worker/keymanager/churp: Orchestrate handoffs

57 of 518 new or added lines in 7 files covered. (11.0%)

2 existing lines in 1 file now uncovered.

3879 of 8262 relevant lines covered (46.95%)

1.03 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/keymanager/src/runtime/init.rs
1
use futures::executor::block_on;
2
use oasis_core_runtime::{
3
    dispatcher::{Initializer, PostInitState, PreInitState},
4
    enclave_rpc::dispatcher::Handler,
5
    host::Host,
6
};
7

8
use crate::{
9
    churp::Churp,
10
    policy::{set_trusted_signers, TrustedSigners},
11
};
12

13
use super::secrets::Secrets;
14

15
/// Initialize a keymanager with trusted signers.
16
pub fn new_keymanager(signers: TrustedSigners) -> Box<dyn Initializer> {
×
17
    // Initializer.
18
    let init = move |state: PreInitState<'_>| -> PostInitState {
×
19
        // It's not the most elegant solution, but it gets the job done.
20
        // We could improve this by including node identity in the host info
21
        // or by removing the initializer.
22
        let node_id = block_on(state.protocol.identity()).unwrap();
×
23

24
        // Initialize the set of trusted signers.
25
        set_trusted_signers(signers.clone());
×
26

27
        let secrets = Box::leak(Box::new(Secrets::new(
×
28
            state.identity.clone(),
×
29
            state.consensus_verifier.clone(),
×
30
            state.protocol.clone(),
×
31
        )));
32

33
        let churp = Box::leak(Box::new(Churp::new(
×
34
            node_id,
35
            state.identity.clone(),
×
NEW
36
            state.protocol.clone(),
×
37
            state.consensus_verifier.clone(),
×
38
        )));
39

40
        state.rpc_dispatcher.add_methods(secrets.methods());
×
41
        state.rpc_dispatcher.add_methods(churp.methods());
×
42

43
        // No transaction dispatcher.
44
        PostInitState::default()
×
45
    };
46

47
    Box::new(init)
48
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc