+
+OSSL_provider_init_fn fips_intern_provider_init;
+int fips_intern_provider_init(const OSSL_PROVIDER *provider,
+ const OSSL_DISPATCH *in,
+ const OSSL_DISPATCH **out)
+{
+ /*
+ * The internal init function used when the FIPS module uses EVP to call
+ * another algorithm also in the FIPS module.
+ */
+ return 1;
+}
+
+void ERR_put_error(int lib, int func, int reason, const char *file, int line)
+{
+ /*
+ * TODO(3.0): This works for the FIPS module because we're going to be
+ * using lib/func/reason codes that libcrypto already knows about. This
+ * won't work for third party providers that have their own error mechanisms,
+ * so we'll need to come up with something else for them.
+ */
+ c_put_error(lib, func, reason, file, line);
+}
+
+void ERR_add_error_data(int num, ...)
+{
+ va_list args;
+ va_start(args, num);
+ ERR_add_error_vdata(num, args);
+ va_end(args);
+}
+
+void ERR_add_error_vdata(int num, va_list args)
+{
+ c_add_error_vdata(num, args);
+}