crypto: Expose the pickling methods for the account.

master
Damir Jelić 2020-03-18 09:38:41 +01:00
parent 708a8b1b06
commit 00138f7ae5
1 changed files with 21 additions and 0 deletions

View File

@ -15,6 +15,8 @@
use std::fmt;
use olm_rs::account::{IdentityKeys, OlmAccount, OneTimeKeys};
use olm_rs::errors::OlmAccountError;
use olm_rs::PicklingMode;
pub struct Account {
inner: OlmAccount,
@ -82,6 +84,25 @@ impl Account {
pub fn sign(&self, string: &str) -> String {
self.inner.sign(string)
}
pub fn pickle(&self, pickling_mode: PicklingMode) -> String {
self.inner.pickle(pickling_mode)
}
pub fn from_pickle(
pickle: String,
pickling_mode: PicklingMode,
shared: bool,
) -> Result<Self, OlmAccountError> {
let acc = OlmAccount::unpickle(pickle, pickling_mode)?;
Ok(Account { inner: acc, shared })
}
}
impl PartialEq for Account {
fn eq(&self, other: &Self) -> bool {
self.identity_keys() == other.identity_keys()
}
}
#[cfg(test)]