mls_rs_ffi/
lib.rs

1// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2// Copyright by contributors to this project.
3// SPDX-License-Identifier: (Apache-2.0 OR MIT)
4
5#[cfg(all(feature = "openssl", feature = "sqlite", feature = "x509"))]
6mod openssl_sqlite {
7    use mls_rs::client_builder::{BaseConfig, WithCryptoProvider, WithIdentityProvider};
8    use mls_rs_crypto_openssl::{
9        x509::{X509Reader, X509Validator},
10        OpensslCryptoProvider,
11    };
12    use mls_rs_identity_x509::{SubjectIdentityExtractor, X509IdentityProvider};
13
14    pub type OpensslSqlMlsConfig = WithIdentityProvider<
15        X509IdentityProvider<SubjectIdentityExtractor<X509Reader>, X509Validator>,
16        WithCryptoProvider<OpensslCryptoProvider, BaseConfig>,
17    >;
18
19    safer_ffi_gen::specialize!(OpensslSqlMlsClient = mls_rs::client::Client<OpensslSqlMlsConfig>);
20    safer_ffi_gen::specialize!(OpensslSqlMlsGroup = mls_rs::group::Group<OpensslSqlMlsConfig>);
21}
22
23#[cfg(all(feature = "openssl", feature = "sqlite", feature = "x509"))]
24pub use openssl_sqlite::*;