Integrate the new way of C++ symbol prefixing with Bindgen.

Update-Note: bindgen.rs is now created differently; it should though be
optional for downstream builds to take over this change, as prefixing is
and remains optional and unprefixed builds should not be affected.
Nevertheless giving a heads up as there is a chance the changes here
impact a downstream build.

Bug: 42220000
Change-Id: I209dcef63f4581046e1cf5e574aee5476a6a6964
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/87407
Commit-Queue: Rudolf Polzer <rpolzer@google.com>
Reviewed-by: Xiangfei Ding <xfding@google.com>
diff --git a/BUILDING.md b/BUILDING.md
index 96e08e6..1c5fc9e 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -126,6 +126,9 @@
 -DBORINGSSL_PREFIX=MY_CUSTOM_PREFIX` will configure the build to add
 the prefix `MY_CUSTOM_PREFIX` to all of the symbols defined by the library.
 
+In case you want to also build the Rust crate, run `export
+BORINGSSL_PREFIX=MY_CUSTOM_PREFIX` prior to running `cargo`.
+
 Note that symbol prefixing cannot be used with the combination of FIPS and
 static libraries.
 
diff --git a/rust/bssl-sys/README.md b/rust/bssl-sys/README.md
index c0fb610..67b36c4 100644
--- a/rust/bssl-sys/README.md
+++ b/rust/bssl-sys/README.md
@@ -14,5 +14,6 @@
 
 2. Install `bindgen`.
 3. Install [`cargo-deny`](https://github.com/EmbarkStudios/cargo-deny).
+4. In case you have passed `-DBORINGSSL_PREFIX=foo` to `cmake`, run `export BORINGSSL_PREFIX=foo` prior to calling `cargo`.
 
 After that, the `bssl-sys` crate can be built via `cargo`. By default, it looks for `bindgen` output and BoringSSL static libraries in the `build` directory. This can be reconfigured with `BORINGSSL_BUILD_DIR` environment variable. Note the environment variable is evaluated relative to `rust/bssl-sys/src`, so using an absolute path may be more convenient.
diff --git a/rust/bssl-sys/boringssl_prefix_symbols_bindgen.rs.in b/rust/bssl-sys/boringssl_prefix_symbols_bindgen.rs.in
new file mode 100644
index 0000000..cc4873c
--- /dev/null
+++ b/rust/bssl-sys/boringssl_prefix_symbols_bindgen.rs.in
@@ -0,0 +1,773 @@
+// Copyright 2024 The BoringSSL Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Generated by go ./util/pregenerate. Do not edit manually.
+
+pub use ${BORINGSSL_PREFIX}_CBS_data as CBS_data;
+pub use ${BORINGSSL_PREFIX}_CBS_init as CBS_init;
+pub use ${BORINGSSL_PREFIX}_CBS_len as CBS_len;
+pub use ${BORINGSSL_PREFIX}_ERR_GET_FUNC as ERR_GET_FUNC;
+pub use ${BORINGSSL_PREFIX}_ERR_GET_LIB as ERR_GET_LIB;
+pub use ${BORINGSSL_PREFIX}_ERR_GET_REASON as ERR_GET_REASON;
+pub use ${BORINGSSL_PREFIX}_ERR_equals as ERR_equals;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_call_cmp_func as sk_ACCESS_DESCRIPTION_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_call_copy_func as sk_ACCESS_DESCRIPTION_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_call_delete_if_func as sk_ACCESS_DESCRIPTION_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_call_free_func as sk_ACCESS_DESCRIPTION_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_deep_copy as sk_ACCESS_DESCRIPTION_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_delete as sk_ACCESS_DESCRIPTION_delete;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_delete_if as sk_ACCESS_DESCRIPTION_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_delete_ptr as sk_ACCESS_DESCRIPTION_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_dup as sk_ACCESS_DESCRIPTION_dup;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_find as sk_ACCESS_DESCRIPTION_find;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_free as sk_ACCESS_DESCRIPTION_free;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_insert as sk_ACCESS_DESCRIPTION_insert;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_is_sorted as sk_ACCESS_DESCRIPTION_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_new as sk_ACCESS_DESCRIPTION_new;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_new_null as sk_ACCESS_DESCRIPTION_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_num as sk_ACCESS_DESCRIPTION_num;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_pop as sk_ACCESS_DESCRIPTION_pop;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_pop_free as sk_ACCESS_DESCRIPTION_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_push as sk_ACCESS_DESCRIPTION_push;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_set as sk_ACCESS_DESCRIPTION_set;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_set_cmp_func as sk_ACCESS_DESCRIPTION_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_shift as sk_ACCESS_DESCRIPTION_shift;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_sort as sk_ACCESS_DESCRIPTION_sort;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_value as sk_ACCESS_DESCRIPTION_value;
+pub use ${BORINGSSL_PREFIX}_sk_ACCESS_DESCRIPTION_zero as sk_ACCESS_DESCRIPTION_zero;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_call_cmp_func as sk_ASN1_INTEGER_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_call_copy_func as sk_ASN1_INTEGER_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_call_delete_if_func as sk_ASN1_INTEGER_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_call_free_func as sk_ASN1_INTEGER_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_deep_copy as sk_ASN1_INTEGER_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_delete as sk_ASN1_INTEGER_delete;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_delete_if as sk_ASN1_INTEGER_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_delete_ptr as sk_ASN1_INTEGER_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_dup as sk_ASN1_INTEGER_dup;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_find as sk_ASN1_INTEGER_find;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_free as sk_ASN1_INTEGER_free;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_insert as sk_ASN1_INTEGER_insert;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_is_sorted as sk_ASN1_INTEGER_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_new as sk_ASN1_INTEGER_new;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_new_null as sk_ASN1_INTEGER_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_num as sk_ASN1_INTEGER_num;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_pop as sk_ASN1_INTEGER_pop;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_pop_free as sk_ASN1_INTEGER_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_push as sk_ASN1_INTEGER_push;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_set as sk_ASN1_INTEGER_set;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_set_cmp_func as sk_ASN1_INTEGER_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_shift as sk_ASN1_INTEGER_shift;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_sort as sk_ASN1_INTEGER_sort;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_value as sk_ASN1_INTEGER_value;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_INTEGER_zero as sk_ASN1_INTEGER_zero;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_call_cmp_func as sk_ASN1_OBJECT_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_call_copy_func as sk_ASN1_OBJECT_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_call_delete_if_func as sk_ASN1_OBJECT_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_call_free_func as sk_ASN1_OBJECT_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_deep_copy as sk_ASN1_OBJECT_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_delete as sk_ASN1_OBJECT_delete;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_delete_if as sk_ASN1_OBJECT_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_delete_ptr as sk_ASN1_OBJECT_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_dup as sk_ASN1_OBJECT_dup;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_find as sk_ASN1_OBJECT_find;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_free as sk_ASN1_OBJECT_free;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_insert as sk_ASN1_OBJECT_insert;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_is_sorted as sk_ASN1_OBJECT_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_new as sk_ASN1_OBJECT_new;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_new_null as sk_ASN1_OBJECT_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_num as sk_ASN1_OBJECT_num;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_pop as sk_ASN1_OBJECT_pop;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_pop_free as sk_ASN1_OBJECT_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_push as sk_ASN1_OBJECT_push;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_set as sk_ASN1_OBJECT_set;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_set_cmp_func as sk_ASN1_OBJECT_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_shift as sk_ASN1_OBJECT_shift;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_sort as sk_ASN1_OBJECT_sort;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_value as sk_ASN1_OBJECT_value;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_OBJECT_zero as sk_ASN1_OBJECT_zero;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_call_cmp_func as sk_ASN1_TYPE_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_call_copy_func as sk_ASN1_TYPE_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_call_delete_if_func as sk_ASN1_TYPE_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_call_free_func as sk_ASN1_TYPE_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_deep_copy as sk_ASN1_TYPE_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_delete as sk_ASN1_TYPE_delete;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_delete_if as sk_ASN1_TYPE_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_delete_ptr as sk_ASN1_TYPE_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_dup as sk_ASN1_TYPE_dup;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_find as sk_ASN1_TYPE_find;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_free as sk_ASN1_TYPE_free;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_insert as sk_ASN1_TYPE_insert;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_is_sorted as sk_ASN1_TYPE_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_new as sk_ASN1_TYPE_new;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_new_null as sk_ASN1_TYPE_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_num as sk_ASN1_TYPE_num;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_pop as sk_ASN1_TYPE_pop;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_pop_free as sk_ASN1_TYPE_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_push as sk_ASN1_TYPE_push;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_set as sk_ASN1_TYPE_set;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_set_cmp_func as sk_ASN1_TYPE_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_shift as sk_ASN1_TYPE_shift;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_sort as sk_ASN1_TYPE_sort;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_value as sk_ASN1_TYPE_value;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_TYPE_zero as sk_ASN1_TYPE_zero;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_call_cmp_func as sk_ASN1_VALUE_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_call_copy_func as sk_ASN1_VALUE_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_call_delete_if_func as sk_ASN1_VALUE_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_call_free_func as sk_ASN1_VALUE_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_deep_copy as sk_ASN1_VALUE_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_delete as sk_ASN1_VALUE_delete;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_delete_if as sk_ASN1_VALUE_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_delete_ptr as sk_ASN1_VALUE_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_dup as sk_ASN1_VALUE_dup;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_find as sk_ASN1_VALUE_find;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_free as sk_ASN1_VALUE_free;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_insert as sk_ASN1_VALUE_insert;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_is_sorted as sk_ASN1_VALUE_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_new as sk_ASN1_VALUE_new;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_new_null as sk_ASN1_VALUE_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_num as sk_ASN1_VALUE_num;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_pop as sk_ASN1_VALUE_pop;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_pop_free as sk_ASN1_VALUE_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_push as sk_ASN1_VALUE_push;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_set as sk_ASN1_VALUE_set;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_set_cmp_func as sk_ASN1_VALUE_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_shift as sk_ASN1_VALUE_shift;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_sort as sk_ASN1_VALUE_sort;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_value as sk_ASN1_VALUE_value;
+pub use ${BORINGSSL_PREFIX}_sk_ASN1_VALUE_zero as sk_ASN1_VALUE_zero;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_call_cmp_func as sk_BIO_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_call_copy_func as sk_BIO_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_call_delete_if_func as sk_BIO_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_call_free_func as sk_BIO_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_deep_copy as sk_BIO_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_delete as sk_BIO_delete;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_delete_if as sk_BIO_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_delete_ptr as sk_BIO_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_dup as sk_BIO_dup;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_find as sk_BIO_find;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_free as sk_BIO_free;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_insert as sk_BIO_insert;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_is_sorted as sk_BIO_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_new as sk_BIO_new;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_new_null as sk_BIO_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_num as sk_BIO_num;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_pop as sk_BIO_pop;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_pop_free as sk_BIO_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_push as sk_BIO_push;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_set as sk_BIO_set;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_set_cmp_func as sk_BIO_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_shift as sk_BIO_shift;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_sort as sk_BIO_sort;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_value as sk_BIO_value;
+pub use ${BORINGSSL_PREFIX}_sk_BIO_zero as sk_BIO_zero;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_call_cmp_func as sk_CONF_VALUE_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_call_copy_func as sk_CONF_VALUE_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_call_delete_if_func as sk_CONF_VALUE_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_call_free_func as sk_CONF_VALUE_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_deep_copy as sk_CONF_VALUE_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_delete as sk_CONF_VALUE_delete;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_delete_if as sk_CONF_VALUE_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_delete_ptr as sk_CONF_VALUE_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_dup as sk_CONF_VALUE_dup;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_find as sk_CONF_VALUE_find;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_free as sk_CONF_VALUE_free;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_insert as sk_CONF_VALUE_insert;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_is_sorted as sk_CONF_VALUE_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_new as sk_CONF_VALUE_new;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_new_null as sk_CONF_VALUE_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_num as sk_CONF_VALUE_num;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_pop as sk_CONF_VALUE_pop;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_pop_free as sk_CONF_VALUE_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_push as sk_CONF_VALUE_push;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_set as sk_CONF_VALUE_set;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_set_cmp_func as sk_CONF_VALUE_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_shift as sk_CONF_VALUE_shift;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_sort as sk_CONF_VALUE_sort;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_value as sk_CONF_VALUE_value;
+pub use ${BORINGSSL_PREFIX}_sk_CONF_VALUE_zero as sk_CONF_VALUE_zero;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_call_cmp_func as sk_CRYPTO_BUFFER_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_call_copy_func as sk_CRYPTO_BUFFER_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_call_delete_if_func as sk_CRYPTO_BUFFER_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_call_free_func as sk_CRYPTO_BUFFER_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_deep_copy as sk_CRYPTO_BUFFER_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_delete as sk_CRYPTO_BUFFER_delete;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_delete_if as sk_CRYPTO_BUFFER_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_delete_ptr as sk_CRYPTO_BUFFER_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_dup as sk_CRYPTO_BUFFER_dup;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_find as sk_CRYPTO_BUFFER_find;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_free as sk_CRYPTO_BUFFER_free;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_insert as sk_CRYPTO_BUFFER_insert;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_is_sorted as sk_CRYPTO_BUFFER_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_new as sk_CRYPTO_BUFFER_new;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_new_null as sk_CRYPTO_BUFFER_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_num as sk_CRYPTO_BUFFER_num;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_pop as sk_CRYPTO_BUFFER_pop;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_pop_free as sk_CRYPTO_BUFFER_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_push as sk_CRYPTO_BUFFER_push;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_set as sk_CRYPTO_BUFFER_set;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_set_cmp_func as sk_CRYPTO_BUFFER_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_shift as sk_CRYPTO_BUFFER_shift;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_sort as sk_CRYPTO_BUFFER_sort;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_value as sk_CRYPTO_BUFFER_value;
+pub use ${BORINGSSL_PREFIX}_sk_CRYPTO_BUFFER_zero as sk_CRYPTO_BUFFER_zero;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_call_cmp_func as sk_DIST_POINT_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_call_copy_func as sk_DIST_POINT_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_call_delete_if_func as sk_DIST_POINT_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_call_free_func as sk_DIST_POINT_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_deep_copy as sk_DIST_POINT_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_delete as sk_DIST_POINT_delete;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_delete_if as sk_DIST_POINT_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_delete_ptr as sk_DIST_POINT_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_dup as sk_DIST_POINT_dup;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_find as sk_DIST_POINT_find;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_free as sk_DIST_POINT_free;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_insert as sk_DIST_POINT_insert;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_is_sorted as sk_DIST_POINT_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_new as sk_DIST_POINT_new;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_new_null as sk_DIST_POINT_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_num as sk_DIST_POINT_num;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_pop as sk_DIST_POINT_pop;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_pop_free as sk_DIST_POINT_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_push as sk_DIST_POINT_push;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_set as sk_DIST_POINT_set;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_set_cmp_func as sk_DIST_POINT_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_shift as sk_DIST_POINT_shift;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_sort as sk_DIST_POINT_sort;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_value as sk_DIST_POINT_value;
+pub use ${BORINGSSL_PREFIX}_sk_DIST_POINT_zero as sk_DIST_POINT_zero;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_call_cmp_func as sk_GENERAL_NAME_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_call_copy_func as sk_GENERAL_NAME_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_call_delete_if_func as sk_GENERAL_NAME_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_call_free_func as sk_GENERAL_NAME_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_deep_copy as sk_GENERAL_NAME_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_delete as sk_GENERAL_NAME_delete;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_delete_if as sk_GENERAL_NAME_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_delete_ptr as sk_GENERAL_NAME_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_dup as sk_GENERAL_NAME_dup;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_find as sk_GENERAL_NAME_find;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_free as sk_GENERAL_NAME_free;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_insert as sk_GENERAL_NAME_insert;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_is_sorted as sk_GENERAL_NAME_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_new as sk_GENERAL_NAME_new;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_new_null as sk_GENERAL_NAME_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_num as sk_GENERAL_NAME_num;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_pop as sk_GENERAL_NAME_pop;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_pop_free as sk_GENERAL_NAME_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_push as sk_GENERAL_NAME_push;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_set as sk_GENERAL_NAME_set;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_set_cmp_func as sk_GENERAL_NAME_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_shift as sk_GENERAL_NAME_shift;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_sort as sk_GENERAL_NAME_sort;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_value as sk_GENERAL_NAME_value;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_NAME_zero as sk_GENERAL_NAME_zero;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_call_cmp_func as sk_GENERAL_SUBTREE_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_call_copy_func as sk_GENERAL_SUBTREE_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_call_delete_if_func as sk_GENERAL_SUBTREE_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_call_free_func as sk_GENERAL_SUBTREE_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_deep_copy as sk_GENERAL_SUBTREE_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_delete as sk_GENERAL_SUBTREE_delete;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_delete_if as sk_GENERAL_SUBTREE_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_delete_ptr as sk_GENERAL_SUBTREE_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_dup as sk_GENERAL_SUBTREE_dup;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_find as sk_GENERAL_SUBTREE_find;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_free as sk_GENERAL_SUBTREE_free;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_insert as sk_GENERAL_SUBTREE_insert;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_is_sorted as sk_GENERAL_SUBTREE_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_new as sk_GENERAL_SUBTREE_new;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_new_null as sk_GENERAL_SUBTREE_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_num as sk_GENERAL_SUBTREE_num;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_pop as sk_GENERAL_SUBTREE_pop;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_pop_free as sk_GENERAL_SUBTREE_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_push as sk_GENERAL_SUBTREE_push;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_set as sk_GENERAL_SUBTREE_set;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_set_cmp_func as sk_GENERAL_SUBTREE_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_shift as sk_GENERAL_SUBTREE_shift;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_sort as sk_GENERAL_SUBTREE_sort;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_value as sk_GENERAL_SUBTREE_value;
+pub use ${BORINGSSL_PREFIX}_sk_GENERAL_SUBTREE_zero as sk_GENERAL_SUBTREE_zero;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_call_cmp_func as sk_OPENSSL_STRING_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_call_copy_func as sk_OPENSSL_STRING_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_call_delete_if_func as sk_OPENSSL_STRING_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_call_free_func as sk_OPENSSL_STRING_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_deep_copy as sk_OPENSSL_STRING_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_delete as sk_OPENSSL_STRING_delete;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_delete_if as sk_OPENSSL_STRING_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_delete_ptr as sk_OPENSSL_STRING_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_dup as sk_OPENSSL_STRING_dup;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_find as sk_OPENSSL_STRING_find;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_free as sk_OPENSSL_STRING_free;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_insert as sk_OPENSSL_STRING_insert;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_is_sorted as sk_OPENSSL_STRING_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_new as sk_OPENSSL_STRING_new;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_new_null as sk_OPENSSL_STRING_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_num as sk_OPENSSL_STRING_num;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_pop as sk_OPENSSL_STRING_pop;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_pop_free as sk_OPENSSL_STRING_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_push as sk_OPENSSL_STRING_push;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_set as sk_OPENSSL_STRING_set;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_set_cmp_func as sk_OPENSSL_STRING_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_shift as sk_OPENSSL_STRING_shift;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_sort as sk_OPENSSL_STRING_sort;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_value as sk_OPENSSL_STRING_value;
+pub use ${BORINGSSL_PREFIX}_sk_OPENSSL_STRING_zero as sk_OPENSSL_STRING_zero;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_call_cmp_func as sk_POLICYINFO_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_call_copy_func as sk_POLICYINFO_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_call_delete_if_func as sk_POLICYINFO_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_call_free_func as sk_POLICYINFO_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_deep_copy as sk_POLICYINFO_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_delete as sk_POLICYINFO_delete;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_delete_if as sk_POLICYINFO_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_delete_ptr as sk_POLICYINFO_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_dup as sk_POLICYINFO_dup;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_find as sk_POLICYINFO_find;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_free as sk_POLICYINFO_free;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_insert as sk_POLICYINFO_insert;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_is_sorted as sk_POLICYINFO_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_new as sk_POLICYINFO_new;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_new_null as sk_POLICYINFO_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_num as sk_POLICYINFO_num;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_pop as sk_POLICYINFO_pop;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_pop_free as sk_POLICYINFO_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_push as sk_POLICYINFO_push;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_set as sk_POLICYINFO_set;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_set_cmp_func as sk_POLICYINFO_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_shift as sk_POLICYINFO_shift;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_sort as sk_POLICYINFO_sort;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_value as sk_POLICYINFO_value;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYINFO_zero as sk_POLICYINFO_zero;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_call_cmp_func as sk_POLICYQUALINFO_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_call_copy_func as sk_POLICYQUALINFO_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_call_delete_if_func as sk_POLICYQUALINFO_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_call_free_func as sk_POLICYQUALINFO_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_deep_copy as sk_POLICYQUALINFO_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_delete as sk_POLICYQUALINFO_delete;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_delete_if as sk_POLICYQUALINFO_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_delete_ptr as sk_POLICYQUALINFO_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_dup as sk_POLICYQUALINFO_dup;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_find as sk_POLICYQUALINFO_find;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_free as sk_POLICYQUALINFO_free;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_insert as sk_POLICYQUALINFO_insert;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_is_sorted as sk_POLICYQUALINFO_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_new as sk_POLICYQUALINFO_new;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_new_null as sk_POLICYQUALINFO_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_num as sk_POLICYQUALINFO_num;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_pop as sk_POLICYQUALINFO_pop;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_pop_free as sk_POLICYQUALINFO_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_push as sk_POLICYQUALINFO_push;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_set as sk_POLICYQUALINFO_set;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_set_cmp_func as sk_POLICYQUALINFO_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_shift as sk_POLICYQUALINFO_shift;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_sort as sk_POLICYQUALINFO_sort;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_value as sk_POLICYQUALINFO_value;
+pub use ${BORINGSSL_PREFIX}_sk_POLICYQUALINFO_zero as sk_POLICYQUALINFO_zero;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_call_cmp_func as sk_POLICY_MAPPING_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_call_copy_func as sk_POLICY_MAPPING_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_call_delete_if_func as sk_POLICY_MAPPING_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_call_free_func as sk_POLICY_MAPPING_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_deep_copy as sk_POLICY_MAPPING_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_delete as sk_POLICY_MAPPING_delete;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_delete_if as sk_POLICY_MAPPING_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_delete_ptr as sk_POLICY_MAPPING_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_dup as sk_POLICY_MAPPING_dup;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_find as sk_POLICY_MAPPING_find;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_free as sk_POLICY_MAPPING_free;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_insert as sk_POLICY_MAPPING_insert;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_is_sorted as sk_POLICY_MAPPING_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_new as sk_POLICY_MAPPING_new;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_new_null as sk_POLICY_MAPPING_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_num as sk_POLICY_MAPPING_num;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_pop as sk_POLICY_MAPPING_pop;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_pop_free as sk_POLICY_MAPPING_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_push as sk_POLICY_MAPPING_push;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_set as sk_POLICY_MAPPING_set;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_set_cmp_func as sk_POLICY_MAPPING_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_shift as sk_POLICY_MAPPING_shift;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_sort as sk_POLICY_MAPPING_sort;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_value as sk_POLICY_MAPPING_value;
+pub use ${BORINGSSL_PREFIX}_sk_POLICY_MAPPING_zero as sk_POLICY_MAPPING_zero;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_call_cmp_func as sk_SRTP_PROTECTION_PROFILE_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_call_copy_func as sk_SRTP_PROTECTION_PROFILE_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_call_delete_if_func as sk_SRTP_PROTECTION_PROFILE_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_call_free_func as sk_SRTP_PROTECTION_PROFILE_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_deep_copy as sk_SRTP_PROTECTION_PROFILE_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_delete as sk_SRTP_PROTECTION_PROFILE_delete;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_delete_if as sk_SRTP_PROTECTION_PROFILE_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_delete_ptr as sk_SRTP_PROTECTION_PROFILE_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_dup as sk_SRTP_PROTECTION_PROFILE_dup;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_find as sk_SRTP_PROTECTION_PROFILE_find;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_free as sk_SRTP_PROTECTION_PROFILE_free;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_insert as sk_SRTP_PROTECTION_PROFILE_insert;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_is_sorted as sk_SRTP_PROTECTION_PROFILE_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_new as sk_SRTP_PROTECTION_PROFILE_new;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_new_null as sk_SRTP_PROTECTION_PROFILE_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_num as sk_SRTP_PROTECTION_PROFILE_num;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_pop as sk_SRTP_PROTECTION_PROFILE_pop;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_pop_free as sk_SRTP_PROTECTION_PROFILE_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_push as sk_SRTP_PROTECTION_PROFILE_push;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_set as sk_SRTP_PROTECTION_PROFILE_set;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_set_cmp_func as sk_SRTP_PROTECTION_PROFILE_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_shift as sk_SRTP_PROTECTION_PROFILE_shift;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_sort as sk_SRTP_PROTECTION_PROFILE_sort;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_value as sk_SRTP_PROTECTION_PROFILE_value;
+pub use ${BORINGSSL_PREFIX}_sk_SRTP_PROTECTION_PROFILE_zero as sk_SRTP_PROTECTION_PROFILE_zero;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_call_cmp_func as sk_SSL_CIPHER_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_call_copy_func as sk_SSL_CIPHER_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_call_delete_if_func as sk_SSL_CIPHER_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_call_free_func as sk_SSL_CIPHER_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_deep_copy as sk_SSL_CIPHER_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_delete as sk_SSL_CIPHER_delete;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_delete_if as sk_SSL_CIPHER_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_delete_ptr as sk_SSL_CIPHER_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_dup as sk_SSL_CIPHER_dup;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_find as sk_SSL_CIPHER_find;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_free as sk_SSL_CIPHER_free;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_insert as sk_SSL_CIPHER_insert;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_is_sorted as sk_SSL_CIPHER_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_new as sk_SSL_CIPHER_new;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_new_null as sk_SSL_CIPHER_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_num as sk_SSL_CIPHER_num;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_pop as sk_SSL_CIPHER_pop;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_pop_free as sk_SSL_CIPHER_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_push as sk_SSL_CIPHER_push;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_set as sk_SSL_CIPHER_set;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_set_cmp_func as sk_SSL_CIPHER_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_shift as sk_SSL_CIPHER_shift;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_sort as sk_SSL_CIPHER_sort;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_value as sk_SSL_CIPHER_value;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_CIPHER_zero as sk_SSL_CIPHER_zero;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_call_cmp_func as sk_SSL_COMP_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_call_copy_func as sk_SSL_COMP_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_call_delete_if_func as sk_SSL_COMP_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_call_free_func as sk_SSL_COMP_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_deep_copy as sk_SSL_COMP_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_delete as sk_SSL_COMP_delete;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_delete_if as sk_SSL_COMP_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_delete_ptr as sk_SSL_COMP_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_dup as sk_SSL_COMP_dup;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_find as sk_SSL_COMP_find;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_free as sk_SSL_COMP_free;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_insert as sk_SSL_COMP_insert;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_is_sorted as sk_SSL_COMP_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_new as sk_SSL_COMP_new;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_new_null as sk_SSL_COMP_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_num as sk_SSL_COMP_num;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_pop as sk_SSL_COMP_pop;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_pop_free as sk_SSL_COMP_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_push as sk_SSL_COMP_push;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_set as sk_SSL_COMP_set;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_set_cmp_func as sk_SSL_COMP_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_shift as sk_SSL_COMP_shift;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_sort as sk_SSL_COMP_sort;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_value as sk_SSL_COMP_value;
+pub use ${BORINGSSL_PREFIX}_sk_SSL_COMP_zero as sk_SSL_COMP_zero;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_call_cmp_func as sk_TRUST_TOKEN_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_call_copy_func as sk_TRUST_TOKEN_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_call_delete_if_func as sk_TRUST_TOKEN_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_call_free_func as sk_TRUST_TOKEN_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_deep_copy as sk_TRUST_TOKEN_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_delete as sk_TRUST_TOKEN_delete;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_delete_if as sk_TRUST_TOKEN_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_delete_ptr as sk_TRUST_TOKEN_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_dup as sk_TRUST_TOKEN_dup;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_find as sk_TRUST_TOKEN_find;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_free as sk_TRUST_TOKEN_free;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_insert as sk_TRUST_TOKEN_insert;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_is_sorted as sk_TRUST_TOKEN_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_new as sk_TRUST_TOKEN_new;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_new_null as sk_TRUST_TOKEN_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_num as sk_TRUST_TOKEN_num;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_pop as sk_TRUST_TOKEN_pop;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_pop_free as sk_TRUST_TOKEN_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_push as sk_TRUST_TOKEN_push;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_set as sk_TRUST_TOKEN_set;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_set_cmp_func as sk_TRUST_TOKEN_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_shift as sk_TRUST_TOKEN_shift;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_sort as sk_TRUST_TOKEN_sort;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_value as sk_TRUST_TOKEN_value;
+pub use ${BORINGSSL_PREFIX}_sk_TRUST_TOKEN_zero as sk_TRUST_TOKEN_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_call_cmp_func as sk_X509_ALGOR_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_call_copy_func as sk_X509_ALGOR_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_call_delete_if_func as sk_X509_ALGOR_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_call_free_func as sk_X509_ALGOR_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_deep_copy as sk_X509_ALGOR_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_delete as sk_X509_ALGOR_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_delete_if as sk_X509_ALGOR_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_delete_ptr as sk_X509_ALGOR_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_dup as sk_X509_ALGOR_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_find as sk_X509_ALGOR_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_free as sk_X509_ALGOR_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_insert as sk_X509_ALGOR_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_is_sorted as sk_X509_ALGOR_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_new as sk_X509_ALGOR_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_new_null as sk_X509_ALGOR_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_num as sk_X509_ALGOR_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_pop as sk_X509_ALGOR_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_pop_free as sk_X509_ALGOR_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_push as sk_X509_ALGOR_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_set as sk_X509_ALGOR_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_set_cmp_func as sk_X509_ALGOR_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_shift as sk_X509_ALGOR_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_sort as sk_X509_ALGOR_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_value as sk_X509_ALGOR_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ALGOR_zero as sk_X509_ALGOR_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_call_cmp_func as sk_X509_ATTRIBUTE_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_call_copy_func as sk_X509_ATTRIBUTE_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_call_delete_if_func as sk_X509_ATTRIBUTE_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_call_free_func as sk_X509_ATTRIBUTE_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_deep_copy as sk_X509_ATTRIBUTE_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_delete as sk_X509_ATTRIBUTE_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_delete_if as sk_X509_ATTRIBUTE_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_delete_ptr as sk_X509_ATTRIBUTE_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_dup as sk_X509_ATTRIBUTE_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_find as sk_X509_ATTRIBUTE_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_free as sk_X509_ATTRIBUTE_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_insert as sk_X509_ATTRIBUTE_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_is_sorted as sk_X509_ATTRIBUTE_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_new as sk_X509_ATTRIBUTE_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_new_null as sk_X509_ATTRIBUTE_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_num as sk_X509_ATTRIBUTE_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_pop as sk_X509_ATTRIBUTE_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_pop_free as sk_X509_ATTRIBUTE_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_push as sk_X509_ATTRIBUTE_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_set as sk_X509_ATTRIBUTE_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_set_cmp_func as sk_X509_ATTRIBUTE_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_shift as sk_X509_ATTRIBUTE_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_sort as sk_X509_ATTRIBUTE_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_value as sk_X509_ATTRIBUTE_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_ATTRIBUTE_zero as sk_X509_ATTRIBUTE_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_call_cmp_func as sk_X509_CRL_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_call_copy_func as sk_X509_CRL_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_call_delete_if_func as sk_X509_CRL_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_call_free_func as sk_X509_CRL_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_deep_copy as sk_X509_CRL_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_delete as sk_X509_CRL_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_delete_if as sk_X509_CRL_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_delete_ptr as sk_X509_CRL_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_dup as sk_X509_CRL_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_find as sk_X509_CRL_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_free as sk_X509_CRL_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_insert as sk_X509_CRL_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_is_sorted as sk_X509_CRL_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_new as sk_X509_CRL_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_new_null as sk_X509_CRL_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_num as sk_X509_CRL_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_pop as sk_X509_CRL_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_pop_free as sk_X509_CRL_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_push as sk_X509_CRL_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_set as sk_X509_CRL_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_set_cmp_func as sk_X509_CRL_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_shift as sk_X509_CRL_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_sort as sk_X509_CRL_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_value as sk_X509_CRL_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_CRL_zero as sk_X509_CRL_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_call_cmp_func as sk_X509_EXTENSION_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_call_copy_func as sk_X509_EXTENSION_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_call_delete_if_func as sk_X509_EXTENSION_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_call_free_func as sk_X509_EXTENSION_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_deep_copy as sk_X509_EXTENSION_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_delete as sk_X509_EXTENSION_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_delete_if as sk_X509_EXTENSION_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_delete_ptr as sk_X509_EXTENSION_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_dup as sk_X509_EXTENSION_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_find as sk_X509_EXTENSION_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_free as sk_X509_EXTENSION_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_insert as sk_X509_EXTENSION_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_is_sorted as sk_X509_EXTENSION_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_new as sk_X509_EXTENSION_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_new_null as sk_X509_EXTENSION_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_num as sk_X509_EXTENSION_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_pop as sk_X509_EXTENSION_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_pop_free as sk_X509_EXTENSION_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_push as sk_X509_EXTENSION_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_set as sk_X509_EXTENSION_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_set_cmp_func as sk_X509_EXTENSION_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_shift as sk_X509_EXTENSION_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_sort as sk_X509_EXTENSION_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_value as sk_X509_EXTENSION_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_EXTENSION_zero as sk_X509_EXTENSION_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_call_cmp_func as sk_X509_INFO_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_call_copy_func as sk_X509_INFO_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_call_delete_if_func as sk_X509_INFO_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_call_free_func as sk_X509_INFO_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_deep_copy as sk_X509_INFO_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_delete as sk_X509_INFO_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_delete_if as sk_X509_INFO_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_delete_ptr as sk_X509_INFO_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_dup as sk_X509_INFO_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_find as sk_X509_INFO_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_free as sk_X509_INFO_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_insert as sk_X509_INFO_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_is_sorted as sk_X509_INFO_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_new as sk_X509_INFO_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_new_null as sk_X509_INFO_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_num as sk_X509_INFO_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_pop as sk_X509_INFO_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_pop_free as sk_X509_INFO_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_push as sk_X509_INFO_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_set as sk_X509_INFO_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_set_cmp_func as sk_X509_INFO_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_shift as sk_X509_INFO_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_sort as sk_X509_INFO_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_value as sk_X509_INFO_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_INFO_zero as sk_X509_INFO_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_call_cmp_func as sk_X509_NAME_ENTRY_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_call_copy_func as sk_X509_NAME_ENTRY_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_call_delete_if_func as sk_X509_NAME_ENTRY_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_call_free_func as sk_X509_NAME_ENTRY_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_deep_copy as sk_X509_NAME_ENTRY_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_delete as sk_X509_NAME_ENTRY_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_delete_if as sk_X509_NAME_ENTRY_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_delete_ptr as sk_X509_NAME_ENTRY_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_dup as sk_X509_NAME_ENTRY_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_find as sk_X509_NAME_ENTRY_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_free as sk_X509_NAME_ENTRY_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_insert as sk_X509_NAME_ENTRY_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_is_sorted as sk_X509_NAME_ENTRY_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_new as sk_X509_NAME_ENTRY_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_new_null as sk_X509_NAME_ENTRY_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_num as sk_X509_NAME_ENTRY_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_pop as sk_X509_NAME_ENTRY_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_pop_free as sk_X509_NAME_ENTRY_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_push as sk_X509_NAME_ENTRY_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_set as sk_X509_NAME_ENTRY_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_set_cmp_func as sk_X509_NAME_ENTRY_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_shift as sk_X509_NAME_ENTRY_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_sort as sk_X509_NAME_ENTRY_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_value as sk_X509_NAME_ENTRY_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_ENTRY_zero as sk_X509_NAME_ENTRY_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_call_cmp_func as sk_X509_NAME_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_call_copy_func as sk_X509_NAME_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_call_delete_if_func as sk_X509_NAME_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_call_free_func as sk_X509_NAME_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_deep_copy as sk_X509_NAME_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_delete as sk_X509_NAME_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_delete_if as sk_X509_NAME_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_delete_ptr as sk_X509_NAME_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_dup as sk_X509_NAME_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_find as sk_X509_NAME_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_free as sk_X509_NAME_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_insert as sk_X509_NAME_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_is_sorted as sk_X509_NAME_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_new as sk_X509_NAME_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_new_null as sk_X509_NAME_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_num as sk_X509_NAME_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_pop as sk_X509_NAME_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_pop_free as sk_X509_NAME_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_push as sk_X509_NAME_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_set as sk_X509_NAME_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_set_cmp_func as sk_X509_NAME_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_shift as sk_X509_NAME_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_sort as sk_X509_NAME_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_value as sk_X509_NAME_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_NAME_zero as sk_X509_NAME_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_call_cmp_func as sk_X509_OBJECT_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_call_copy_func as sk_X509_OBJECT_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_call_delete_if_func as sk_X509_OBJECT_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_call_free_func as sk_X509_OBJECT_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_deep_copy as sk_X509_OBJECT_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_delete as sk_X509_OBJECT_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_delete_if as sk_X509_OBJECT_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_delete_ptr as sk_X509_OBJECT_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_dup as sk_X509_OBJECT_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_find as sk_X509_OBJECT_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_free as sk_X509_OBJECT_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_insert as sk_X509_OBJECT_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_is_sorted as sk_X509_OBJECT_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_new as sk_X509_OBJECT_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_new_null as sk_X509_OBJECT_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_num as sk_X509_OBJECT_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_pop as sk_X509_OBJECT_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_pop_free as sk_X509_OBJECT_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_push as sk_X509_OBJECT_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_set as sk_X509_OBJECT_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_set_cmp_func as sk_X509_OBJECT_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_shift as sk_X509_OBJECT_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_sort as sk_X509_OBJECT_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_value as sk_X509_OBJECT_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_OBJECT_zero as sk_X509_OBJECT_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_call_cmp_func as sk_X509_REVOKED_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_call_copy_func as sk_X509_REVOKED_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_call_delete_if_func as sk_X509_REVOKED_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_call_free_func as sk_X509_REVOKED_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_deep_copy as sk_X509_REVOKED_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_delete as sk_X509_REVOKED_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_delete_if as sk_X509_REVOKED_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_delete_ptr as sk_X509_REVOKED_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_dup as sk_X509_REVOKED_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_find as sk_X509_REVOKED_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_free as sk_X509_REVOKED_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_insert as sk_X509_REVOKED_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_is_sorted as sk_X509_REVOKED_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_new as sk_X509_REVOKED_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_new_null as sk_X509_REVOKED_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_num as sk_X509_REVOKED_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_pop as sk_X509_REVOKED_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_pop_free as sk_X509_REVOKED_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_push as sk_X509_REVOKED_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_set as sk_X509_REVOKED_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_set_cmp_func as sk_X509_REVOKED_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_shift as sk_X509_REVOKED_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_sort as sk_X509_REVOKED_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_value as sk_X509_REVOKED_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_REVOKED_zero as sk_X509_REVOKED_zero;
+pub use ${BORINGSSL_PREFIX}_sk_X509_call_cmp_func as sk_X509_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_call_copy_func as sk_X509_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_call_delete_if_func as sk_X509_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_call_free_func as sk_X509_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_deep_copy as sk_X509_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_X509_delete as sk_X509_delete;
+pub use ${BORINGSSL_PREFIX}_sk_X509_delete_if as sk_X509_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_X509_delete_ptr as sk_X509_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_X509_dup as sk_X509_dup;
+pub use ${BORINGSSL_PREFIX}_sk_X509_find as sk_X509_find;
+pub use ${BORINGSSL_PREFIX}_sk_X509_free as sk_X509_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_insert as sk_X509_insert;
+pub use ${BORINGSSL_PREFIX}_sk_X509_is_sorted as sk_X509_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_X509_new as sk_X509_new;
+pub use ${BORINGSSL_PREFIX}_sk_X509_new_null as sk_X509_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_X509_num as sk_X509_num;
+pub use ${BORINGSSL_PREFIX}_sk_X509_pop as sk_X509_pop;
+pub use ${BORINGSSL_PREFIX}_sk_X509_pop_free as sk_X509_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_X509_push as sk_X509_push;
+pub use ${BORINGSSL_PREFIX}_sk_X509_set as sk_X509_set;
+pub use ${BORINGSSL_PREFIX}_sk_X509_set_cmp_func as sk_X509_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_X509_shift as sk_X509_shift;
+pub use ${BORINGSSL_PREFIX}_sk_X509_sort as sk_X509_sort;
+pub use ${BORINGSSL_PREFIX}_sk_X509_value as sk_X509_value;
+pub use ${BORINGSSL_PREFIX}_sk_X509_zero as sk_X509_zero;
+pub use ${BORINGSSL_PREFIX}_sk_void_call_cmp_func as sk_void_call_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_void_call_copy_func as sk_void_call_copy_func;
+pub use ${BORINGSSL_PREFIX}_sk_void_call_delete_if_func as sk_void_call_delete_if_func;
+pub use ${BORINGSSL_PREFIX}_sk_void_call_free_func as sk_void_call_free_func;
+pub use ${BORINGSSL_PREFIX}_sk_void_deep_copy as sk_void_deep_copy;
+pub use ${BORINGSSL_PREFIX}_sk_void_delete as sk_void_delete;
+pub use ${BORINGSSL_PREFIX}_sk_void_delete_if as sk_void_delete_if;
+pub use ${BORINGSSL_PREFIX}_sk_void_delete_ptr as sk_void_delete_ptr;
+pub use ${BORINGSSL_PREFIX}_sk_void_dup as sk_void_dup;
+pub use ${BORINGSSL_PREFIX}_sk_void_find as sk_void_find;
+pub use ${BORINGSSL_PREFIX}_sk_void_free as sk_void_free;
+pub use ${BORINGSSL_PREFIX}_sk_void_insert as sk_void_insert;
+pub use ${BORINGSSL_PREFIX}_sk_void_is_sorted as sk_void_is_sorted;
+pub use ${BORINGSSL_PREFIX}_sk_void_new as sk_void_new;
+pub use ${BORINGSSL_PREFIX}_sk_void_new_null as sk_void_new_null;
+pub use ${BORINGSSL_PREFIX}_sk_void_num as sk_void_num;
+pub use ${BORINGSSL_PREFIX}_sk_void_pop as sk_void_pop;
+pub use ${BORINGSSL_PREFIX}_sk_void_pop_free as sk_void_pop_free;
+pub use ${BORINGSSL_PREFIX}_sk_void_push as sk_void_push;
+pub use ${BORINGSSL_PREFIX}_sk_void_set as sk_void_set;
+pub use ${BORINGSSL_PREFIX}_sk_void_set_cmp_func as sk_void_set_cmp_func;
+pub use ${BORINGSSL_PREFIX}_sk_void_shift as sk_void_shift;
+pub use ${BORINGSSL_PREFIX}_sk_void_sort as sk_void_sort;
+pub use ${BORINGSSL_PREFIX}_sk_void_value as sk_void_value;
+pub use ${BORINGSSL_PREFIX}_sk_void_zero as sk_void_zero;
diff --git a/rust/bssl-sys/build.rs b/rust/bssl-sys/build.rs
index aa211e8..143d85e 100644
--- a/rust/bssl-sys/build.rs
+++ b/rust/bssl-sys/build.rs
@@ -104,12 +104,41 @@
     // Find the bindgen generated target platform bindings file and put it into
     // OUT_DIR/bindgen.rs.
     let bindgen_source_file = bssl_sys_build_dir.join(format!("wrapper_{}.rs", target));
-    std::fs::copy(&bindgen_source_file, &bindgen_out_file).expect(&format!(
-        "Could not copy bindings from '{}' to '{}'",
+    let prefix_inc_source_file = Path::new("boringssl_prefix_symbols_bindgen.rs.in");
+    let bindgen_source = std::fs::read_to_string(&bindgen_source_file).expect(&format!(
+        "Could not read bindings from '{}'",
         bindgen_source_file.display(),
-        bindgen_out_file.display()
     ));
     println!("cargo:rerun-if-changed={}", bindgen_source_file.display());
+    let prefix_source = match env::var("BORINGSSL_PREFIX") {
+        Ok(prefix) => {
+            // Preprocess the file to insert the prefix.
+            std::fs::read_to_string(&prefix_inc_source_file)
+                .expect(&format!(
+                    "Could not read prefixing data from '{}'",
+                    prefix_inc_source_file.display(),
+                ))
+                .replace("${BORINGSSL_PREFIX}", prefix.as_str())
+        }
+        Err(env::VarError::NotPresent) => {
+            // Just don't append anything.
+            "".to_string()
+        }
+        Err(e) => panic!("failed to read BORINGSSL_PREFIX variable: {}", e),
+    };
+    std::fs::write(
+        &bindgen_out_file,
+        format!("{}{}", bindgen_source, prefix_source),
+    )
+    .expect(&format!(
+        "Could not write bindings to '{}'",
+        bindgen_out_file.display()
+    ));
+    println!(
+        "cargo:rerun-if-changed={}",
+        prefix_inc_source_file.display()
+    );
+    println!("cargo:rerun-if-env-changed=BORINGSSL_PREFIX");
 
     // Statically link libraries.
     println!(
diff --git a/util/pregenerate/build.go b/util/pregenerate/build.go
index 4849273..7b142a9 100644
--- a/util/pregenerate/build.go
+++ b/util/pregenerate/build.go
@@ -372,14 +372,25 @@
 
 // MakePrefixingIncludes returns the tasks to generate the header files for symbol prefixing.
 func MakePrefixingIncludes(in map[string]InputTarget, targetsOut map[string]build.Target) []*Task {
-	var headers []string
-	for _, t := range in {
-		headers = append(headers, t.Hdrs...)
+	var cHeader, bindgenInclude []byte
+	var err error
+	buildHeadersOnce := func() {
+		var headers []string
+		for _, t := range in {
+			headers = append(headers, t.Hdrs...)
+		}
+		cHeader, bindgenInclude, err = BuildCRenamingIncludes(headers)
 	}
 	addGeneratedHeader(targetsOut, "include/openssl/prefix_symbols.h")
+	var once sync.Once
 	return []*Task{
 		NewSimpleTask("include/openssl/prefix_symbols.h", func() ([]byte, error) {
-			return BuildCRenamingHeader(headers)
+			once.Do(buildHeadersOnce)
+			return cHeader, err
+		}),
+		NewSimpleTask("rust/bssl-sys/boringssl_prefix_symbols_bindgen.rs.in", func() ([]byte, error) {
+			once.Do(buildHeadersOnce)
+			return bindgenInclude, err
 		}),
 	}
 }
diff --git a/util/pregenerate/idextractor.go b/util/pregenerate/idextractor.go
index c1086d8..c1a0c2f 100644
--- a/util/pregenerate/idextractor.go
+++ b/util/pregenerate/idextractor.go
@@ -54,11 +54,11 @@
 
 // BuildCRenamingHeader calls Clang to extract the AST of the headers, then processes them to extract the symbols.
 //
-// It returns an include for C.
-func BuildCRenamingHeader(headers []string) (cInclude []byte, err error) {
+// It returns a header for C and a matching one for Rust's bindgen.
+func BuildCRenamingIncludes(headers []string) (cHeader []byte, bindgenInclude []byte, err error) {
 	cmd := *clangPath
 	if cmd == "" {
-		return nil, fmt.Errorf("%w: clang has been disabled by flag", TaskSkipped)
+		return nil, nil, fmt.Errorf("%w: clang has been disabled by flag", TaskSkipped)
 	}
 
 	defer func() {
@@ -69,7 +69,7 @@
 
 	isCL, err := isClangCL(cmd)
 	if err != nil {
-		return nil, err
+		return nil, nil, err
 	}
 
 	var args []string
@@ -115,13 +115,13 @@
 
 	stdout, err := c.StdoutPipe()
 	if err != nil {
-		return nil, err
+		return nil, nil, err
 	}
 	defer stdout.Close()
 
 	err = c.Start()
 	if err != nil {
-		return nil, err
+		return nil, nil, err
 	}
 
 	var viaRedefineExtname = map[string]struct{}{}
@@ -181,19 +181,19 @@
 
 	for sym := range viaMacro {
 		if _, found := viaRedefineExtname[sym]; found {
-			return nil, fmt.Errorf("symbol %q both marked for macro and redefine_extname renaming; please fix", sym)
+			return nil, nil, fmt.Errorf("symbol %q both marked for macro and redefine_extname renaming; please fix", sym)
 		}
 	}
 
 	err = idextractor.New(report, idextractor.Options{Language: "C++"}).Parse(stdout)
 	if err != nil {
 		c.Process.Kill()
-		return nil, err
+		return nil, nil, err
 	}
 
 	err = c.Wait()
 	if err != nil {
-		return nil, err
+		return nil, nil, err
 	}
 
 	var cOutput bytes.Buffer
@@ -236,5 +236,13 @@
 	cOutput.WriteString(`
 #endif  // OPENSSL_HEADER_PREFIX_SYMBOLS_H
 `)
-	return cOutput.Bytes(), nil
+
+	var bindgenOutput bytes.Buffer
+	writeHeader(&bindgenOutput, "//")
+	bindgenOutput.WriteString("\n")
+	for _, sym := range slices.Sorted(maps.Keys(viaMacro)) {
+		fmt.Fprintf(&bindgenOutput, "pub use ${BORINGSSL_PREFIX}_%s as %s;\n", sym, sym)
+	}
+
+	return cOutput.Bytes(), bindgenOutput.Bytes(), nil
 }