xomniseal 2.1.11
xomniseal: ^2.1.11 copied to clipboard
A Dart library for concealing and revealing data in various file formats
Xomniseal Dart Package #
Dart SDK for Xomniseal with file-path, bytes, and base64 APIs.
Installation #
dependencies:
xomniseal: ^2.1.1
Then run:
dart pub get
Notes #
- API is synchronous by default.
- Verification status values are
cleanortampered. removeFile,removeBytes, andremoveBase64requireprivateSeed.
File-Path API #
import 'package:xomniseal/xomniseal.dart';
void main() {
final xs = Xomniseal();
const seed = 'my-private-seed';
final concealResult = xs.concealFile('cover.png', 'secret.txt', 'sealed.png', seed);
print(concealResult['output_path']);
final revealResult = xs.revealFile('sealed.png', 'out', seed);
print(revealResult['output_path']);
final verifyResult = xs.verifyFile('sealed.png');
print(verifyResult['success']); // true when status == clean
print(verifyResult['status']); // clean / tampered / not_sealed
xs.removeFile('sealed.png', seed, outputFilePath: 'clean.png');
}
Bytes API #
import 'dart:io';
import 'dart:typed_data';
import 'package:path/path.dart' as p;
import 'package:xomniseal/xomniseal.dart';
void main() {
final xs = Xomniseal();
const seed = 'my-private-seed';
final coverBytes = Uint8List.fromList(File('cover.png').readAsBytesSync());
final secretBytes = Uint8List.fromList(File('secret.txt').readAsBytesSync());
final sealed = xs.concealBytes(
coverBytes,
p.basename('cover.png'),
secretBytes,
p.basename('secret.txt'),
seed,
);
final reveal = xs.revealBytes(sealed, 'cover.png', seed);
if (reveal != null) {
print(reveal.verificationStatus); // clean / tampered
}
final cleaned = xs.removeBytes(sealed, 'cover.png', seed);
File('clean.png').writeAsBytesSync(cleaned);
}
Base64 API #
import 'dart:convert';
import 'dart:io';
import 'package:xomniseal/xomniseal.dart';
void main() {
final xs = Xomniseal();
const seed = 'my-private-seed';
final coverB64 = base64Encode(File('cover.png').readAsBytesSync());
final secretB64 = base64Encode(File('secret.txt').readAsBytesSync());
final conceal = xs.concealBase64(
coverB64,
'cover.png',
secretB64,
'secret.txt',
seed,
);
final sealedB64 = conceal['sealed_file_base64']!;
final verify = xs.verifyBase64(sealedB64, 'cover.png');
print(verify['success']); // true when status == clean
print(verify['status']); // clean / tampered / not_sealed
final remove = xs.removeBase64(sealedB64, 'cover.png', seed);
final cleanedB64 = remove['cleaned_file_base64']!;
File('clean.png').writeAsBytesSync(base64Decode(cleanedB64));
}
Error Handling #
import 'package:xomniseal/xomniseal.dart';
void main() {
final xs = Xomniseal();
try {
xs.concealFile('missing.png', 'secret.txt', 'sealed.png', 'seed');
} on XomnisealError catch (e) {
print(e);
}
}
Supported Formats #
- Office:
docx,pptx,xlsx - Plaintext:
txt,csv,json,xml,html,md - DICOM:
dcm - NOS primary:
jpg,jpeg,png,pdf,tiff,gif,webp,bmp,mp3,mp4 - NOS experimental:
wav,flac,ogg,avi,mov,wmv,mkv,webm,m4a,m4v,flv,3gp,3g2
License #
Proprietary. See LICENSE.