mirror of
https://gitlab.com/veilid/veilidchat.git
synced 2024-10-01 06:55:46 -04:00
25 lines
801 B
Dart
25 lines
801 B
Dart
import 'dart:typed_data';
|
|
import '../entities/local_account.dart';
|
|
import '../veilid_support/veilid_support.dart';
|
|
|
|
Future<Uint8List> encryptSecretToBytes(
|
|
{required SecretKey secret,
|
|
required CryptoKind cryptoKind,
|
|
EncryptionKeyType encryptionKeyType = EncryptionKeyType.none,
|
|
String encryptionKey = ''}) async {
|
|
final veilid = await eventualVeilid.future;
|
|
|
|
late final Uint8List identitySecretBytes;
|
|
switch (encryptionKeyType) {
|
|
case EncryptionKeyType.none:
|
|
identitySecretBytes = secret.decode();
|
|
case EncryptionKeyType.pin:
|
|
case EncryptionKeyType.password:
|
|
final cs = await veilid.getCryptoSystem(cryptoKind);
|
|
|
|
identitySecretBytes =
|
|
await cs.encryptNoAuthWithPassword(secret.decode(), encryptionKey);
|
|
}
|
|
return identitySecretBytes;
|
|
}
|