pub unsafe extern "C" fn gcm_crypt_and_tag(
    ctx: *mut gcm_context,
    mode: c_int,
    length: usize,
    iv: *const c_uchar,
    iv_len: usize,
    add: *const c_uchar,
    add_len: usize,
    input: *const c_uchar,
    output: *mut c_uchar,
    tag_len: usize,
    tag: *mut c_uchar
) -> c_int