indy-credx 1.1.1

Verifiable credential issuance and presentation for Hyperledger Indy (https://www.hyperledger.org/projects), which provides a distributed-ledger-based foundation for self-sovereign identity (https://sovrin.org).
Documentation
use std::os::raw::c_char;

use ffi_support::{rust_string_to_c, ByteBuffer};
use zeroize::Zeroize;

pub static LIB_VERSION: &str = env!("CARGO_PKG_VERSION");

ffi_support::define_string_destructor!(credx_string_free);

#[no_mangle]
pub extern "C" fn credx_buffer_free(buffer: ByteBuffer) {
    ffi_support::abort_on_panic::with_abort_on_panic(|| {
        buffer.destroy_into_vec().zeroize();
    })
}

#[macro_use]
mod macros;

mod error;
use self::error::{catch_error, ErrorCode};

#[macro_use]
mod object;

mod util;

mod cred_def;
mod cred_offer;
mod cred_req;
mod credential;
mod link_secret;
mod pres_req;
mod presentation;
mod revocation;
mod schema;

#[no_mangle]
pub extern "C" fn credx_set_default_logger() -> ErrorCode {
    catch_error(|| {
        env_logger::init();
        debug!("Initialized default logger");
        Ok(())
    })
}

#[no_mangle]
pub extern "C" fn credx_version() -> *mut c_char {
    rust_string_to_c(LIB_VERSION.to_owned())
}