lib.rs 1.1 KB

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