zetrix_encryption_flutter 0.1.0
zetrix_encryption_flutter: ^0.1.0 copied to clipboard
Zetrix encryption library — ED25519, SM2, Dilithium3 (ML-DSA-65 FIPS 204), and Hybrid key support.
example/lib/main.dart
import 'dart:convert';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:zetrix_encryption_flutter/zetrix_encryption_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await initZetrixEncryption();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final _results = <String>[];
bool _running = false;
Future<void> _runDemo() async {
setState(() {
_results.clear();
_running = true;
});
const message = 'Hello, Zetrix!';
final msgBytes = utf8.encode(message);
final results = <String>[];
for (final keyType in [keyTypeEd25519, keyTypeSm2, keyTypeDilithium3, keyTypeHybrid]) {
try {
final kp = await ZetrixKeypair.generateKeyPair(keyType);
final signResult = await ZetrixSignature.signMessage(message, kp.privateKey);
final sigBytes = _hexDecode(signResult.signature);
final valid = await ZetrixSignature.verify(sigBytes, msgBytes, signResult.publicKey);
results.add('[$keyType]\nAddress: ${kp.address}\nSignature valid: $valid\n');
} catch (e) {
results.add('[$keyType] Error: $e\n');
}
}
setState(() {
_results.addAll(results);
_running = false;
});
}
static Uint8List _hexDecode(String hex) {
final bytes = Uint8List(hex.length ~/ 2);
for (var i = 0; i < bytes.length; i++) {
bytes[i] = int.parse(hex.substring(i * 2, i * 2 + 2), radix: 16);
}
return bytes;
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('Zetrix Encryption Demo')),
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
ElevatedButton(
onPressed: _running ? null : _runDemo,
child: Text(_running ? 'Running…' : 'Run Key Generation + Sign Demo'),
),
const SizedBox(height: 16),
Expanded(
child: ListView.builder(
itemCount: _results.length,
itemBuilder: (_, i) => Text(
_results[i],
style: const TextStyle(fontFamily: 'monospace', fontSize: 12),
),
),
),
],
),
),
),
);
}
}