secure_enclave 0.0.2 copy "secure_enclave: ^0.0.2" to clipboard
secure_enclave: ^0.0.2 copied to clipboard

outdated

Apple Secure Enclave implementaton for Flutter

secure_enclave #

Apple Secure Enclave implementaton for Flutter

How to Use #

Encrypt:

Uint8List encrypted = Uint8List(0);  

void encrypt(String message, bool isRequiresBiometric) {
  _secureEnclavePlugin
      .encrypt(
      message: message,
      accessControl: AccessControl(
        options: isRequiresBiometric
            ? SecureEnclave.defaultRequiredAuthForAccessControlOption
            : SecureEnclave.defaulAccessControlOption,
        tag: _isRequiresBiometric ? tagBiometric : tag,
      ))
      .then((result) => setState(() {
    if (result.error == null) {
      encrypted = result.value ?? Uint8List(0);
    } else {
      final error = result.error!;
      _messangerKey.currentState?.showSnackBar(SnackBar(
          content:
          Text('code = ${error.code}  |  desc = ${error.desc}')));
    }
  }));
}

decrypt:

String decrypted = "";

void decrypt(Uint8List message, bool isRequiresBiometric) {
  _secureEnclavePlugin.decrypt(
      message: message,
      accessControl: AccessControl(
        options: isRequiresBiometric
            ? SecureEnclave.defaultRequiredAuthForAccessControlOption
            : SecureEnclave.defaulAccessControlOption,
        tag: _isRequiresBiometric ? tagBiometric : tag,
      ))
      .then((result) => setState(() {
    if (result.error == null) {
      decrypted = result.value ?? "";
    } else {
      final error = result.error!;
      _messangerKey.currentState?.showSnackBar(SnackBar(
          content:
          Text('code = ${error.code}  |  desc = ${error.desc}')));
    }
  }));
}

get base64EncodedString public Key:

  String publicKey = "";

  void getPublicKey() {
    _secureEnclavePlugin.getPublicKey(
        accessControl: AccessControl(
            options: _isRequiresBiometric
                        ? SecureEnclave.defaultRequiredAuthForAccessControlOption
                        : SecureEnclave.defaulAccessControlOption,
            tag: _isRequiresBiometric ? tagBiometric : tag,
    )).then((result) {
      if (result.error == null) {
        publicKey = result.value ?? "";
      } else {
        final error = result.error!;
        _messangerKey.currentState?.showSnackBar(SnackBar(
            content: Text('code = ${error.code}  |  desc = ${error.desc}')));
      }
    });
  }

Encrypt and use custom base64EncodedString public Key:

be aware that the tag and the required public key is valid. Otherwise, it will throw error. For safety, use encrypt function without custom public key

  Uint8List encryptedWithPublicKey = Uint8List(0);

  void encryptWithPublicKey(String message, String publicKey) {
    _secureEnclavePlugin
        .encrypt(
            message: message,
            accessControl: AccessControl(
              options: _isRequiresBiometric
                  ? SecureEnclave.defaultRequiredAuthForAccessControlOption
                  : SecureEnclave.defaulAccessControlOption,
              tag: _isRequiresBiometric ? tagBiometric : tag,
            ),
            publicKeyString: publicKey
    ).then((result) => setState(() {
              if (result.error == null) {
                encryptedWithPublicKey = result.value ?? Uint8List(0);
              } else {
                final error = result.error!;
                _messangerKey.currentState?.showSnackBar(SnackBar(
                    content:
                        Text('code = ${error.code}  |  desc = ${error.desc}')));
              }
            }));
  }
10
likes
0
points
156
downloads

Publisher

verified publisheranggaaryas.my.id

Weekly Downloads

Apple Secure Enclave implementaton for Flutter

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, json_annotation, plugin_platform_interface

More

Packages that depend on secure_enclave