1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
extern crate sodiumoxide;

pub mod encrypt {
  pub use sodiumoxide::crypto::box_::{gen_keypair, PublicKey, SecretKey};

  pub(crate) use sodiumoxide::crypto::sealedbox::seal;

  pub(crate) fn open(c: &[u8], key: &SecretKey) -> Result<Vec<u8>, ()> {
    sodiumoxide::crypto::sealedbox::open(c, &key.public_key(), key)
  }
}

pub mod sign {
  pub use sodiumoxide::crypto::sign::{gen_keypair, PublicKey, SecretKey};

  pub(crate) use sodiumoxide::crypto::sign::{sign, verify};
}