lib.rs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. pub mod local_fs;
  2. pub mod mode_authorizer;
  3. use btlib::{
  4. crypto::{ConcreteCreds, Creds},
  5. Epoch, Principaled,
  6. };
  7. use core::time::Duration;
  8. use lazy_static::lazy_static;
  9. fn one_hour_hence() -> Epoch {
  10. Epoch::now() + Duration::from_secs(3600)
  11. }
  12. lazy_static! {
  13. static ref ROOT_CREDS: ConcreteCreds = {
  14. let mut root_creds = ConcreteCreds::generate().unwrap();
  15. let writecap = root_creds
  16. .issue_writecap(root_creds.principal(), vec![], one_hour_hence())
  17. .unwrap();
  18. root_creds.set_writecap(writecap);
  19. root_creds
  20. };
  21. static ref NODE_CREDS: ConcreteCreds = {
  22. let root_creds = &ROOT_CREDS;
  23. let mut node_creds = ConcreteCreds::generate().unwrap();
  24. let writecap = root_creds
  25. .issue_writecap(node_creds.principal(), vec![], one_hour_hence())
  26. .unwrap();
  27. node_creds.set_writecap(writecap);
  28. node_creds
  29. };
  30. }
  31. pub fn root_creds() -> &'static ConcreteCreds {
  32. &ROOT_CREDS
  33. }
  34. pub fn node_creds() -> &'static ConcreteCreds {
  35. &NODE_CREDS
  36. }