BShield Flutter Plugin

BShield Flutter Plugin callback.

Getting Started

BShield OS

import 'package:flutter_bshield_callback/flutter_bshield_callback.dart';

Uint8List shieldData = await FlutterBShieldCallback.readData();
await FlutterBShieldCallback.insertParameter("Your key", "Your value");
await FlutterBShieldCallback.updateConfig();
await FlutterBShieldCallback.retry();
Uint8List assets = await FlutterBShieldCallback.readAssets("test.txt");

BShield API protection

try {
  String urlString = 'https://example.com/v1/foo';
  final url = Uri.parse(urlString);
  Map<String, String> data = {
    'name': 'Test',
    'address': 'Viet Nam',
  };

  String body = jsonEncode(data);
  Uint8List signature = await FlutterBShieldCallback.generateSignature(urlString, Uint8List.fromList(utf8.encode(body)), "POST");
  int shieldCode = await FlutterBShieldCallback.getShieldCode();
  final response = await http.post(
    url,
    headers: {
      'Content-Type': 'application/json',
      'xqcode': shieldCode.toString(),
      'xqsig': base64Encode(signature)
    },
    body: body,
  );

  if (response.statusCode == 200 || response.statusCode == 201) {
    log('Success: ${response.body}');
  } else {
    log('Error: ${response.statusCode} - ${response.body}');
  }
} catch (e) {
  log('Exception: $e');
}

BShield Data Protection

await FlutterBShieldCallback.saveFile(filePath, fileContent);

final fileContent = await FlutterBShieldCallback.readFile(filePath);

final ciphertext = await FlutterBShieldCallback.encryptData(plaintext);

final plaintext = await FlutterBShieldCallback.decryptData(ciphertext);

final plaintext = await FlutterBShieldCallback.decryptRemoteData(ciphertext);

await FlutterBShieldCallback.setString(key, value);

final stringValue = await FlutterBShieldCallback.getString(key);

await FlutterBShieldCallback.setInteger(key, value);

final intValue = await FlutterBShieldCallback.getInteger(key);

await FlutterBShieldCallback.setBoolean(key, value);

final booleanValue = await FlutterBShieldCallback.getBoolean(key);

await FlutterBShieldCallback.removeKey(key);

await FlutterBShieldCallback.removeAll();

Proguard/R8 rule: -keep class io.bshield.** { *; }