initFromSodiumFFI2 static method

Future<SodiumSumo> initFromSodiumFFI2(
  1. LibSodiumFFIFactory getSodium
)

Creates a SodiumSumo instance for the loaded libsodium returned by the callback asLibSodiumFFI.

Helper function that you can use if you can't provide a DynamicLibrary for loading libsodium. Instead, you can pass the LibSodiumFFI native interface, which is the raw dart interface to access the C library.

Please note that LibSodiumFFI is not documented, as it is an auto generated binding, which simply mimics the C interface in dart, as required by dart:ffi.

Unlike the initFromSodiumFFI method, this one enables the use of SodiumSumo.runIsolated. Use it preferably.

Implementation

static Future<SodiumSumo> initFromSodiumFFI2(
  LibSodiumFFIFactory getSodium,
) async =>
    Future.value(
      SodiumSumoFFI.fromFactory(() async {
        final sodium = await getSodium();
        final result = sodium.sodium_init();
        SodiumException.checkSucceededInitInt(result);
        return sodium;
      }),
    );