use crate::error::{check, Result};
use crate::ffi;
use crate::key::{ExportFlags, Key};
use crate::ops::Output;
use super::Signature;
impl<'parent> Signature<'parent> {
pub fn export(&self, flags: ExportFlags) -> Result<Vec<u8>> {
let output = Output::to_memory()?;
unsafe {
check(ffi::rnp_signature_export(
self.handle,
output.as_ptr(),
flags.bits(),
))?;
}
output.into_bytes()
}
pub fn remove_from_key(self, key: &Key<'_>) -> Result<()> {
unsafe { check(ffi::rnp_signature_remove(key.handle, self.handle))? }
let me = std::mem::ManuallyDrop::new(self);
let _ = &me;
Ok(())
}
}