diff --git a/boring/src/x509/store.rs b/boring/src/x509/store.rs index 0f626838..76edac15 100644 --- a/boring/src/x509/store.rs +++ b/boring/src/x509/store.rs @@ -125,6 +125,23 @@ foreign_type_and_impl_send_sync! { pub struct X509Store; } +impl Clone for X509Store { + fn clone(&self) -> Self { + (**self).to_owned() + } +} + +impl ToOwned for X509StoreRef { + type Owned = X509Store; + + fn to_owned(&self) -> Self::Owned { + unsafe { + ffi::X509_STORE_up_ref(self.as_ptr()); + X509Store::from_ptr(self.as_ptr()) + } + } +} + impl X509StoreRef { /// **Warning: this method is unsound** ///