trying to clear the memory

This commit is contained in:
otsmr 2025-06-03 18:21:31 +02:00
parent 4988242901
commit 69231282d0
3 changed files with 13 additions and 6 deletions

View file

@ -5,8 +5,10 @@ part 'signal_identity.g.dart';
@JsonSerializable() @JsonSerializable()
class SignalIdentity { class SignalIdentity {
const SignalIdentity( const SignalIdentity({
{required this.identityKeyPairU8List, required this.registrationId}); required this.identityKeyPairU8List,
required this.registrationId,
});
final int registrationId; final int registrationId;

View file

@ -356,10 +356,11 @@ class ApiService {
final challenge = result.value.authchallenge; final challenge = result.value.authchallenge;
final privKey = (await getSignalIdentityKeyPair())?.getPrivateKey(); var privKey = (await getSignalIdentityKeyPair())?.getPrivateKey();
if (privKey == null) return; if (privKey == null) return;
final random = getRandomUint8List(32); final random = getRandomUint8List(32);
final signature = sign(privKey.serialize(), challenge, random); final signature = sign(privKey.serialize(), challenge, random);
privKey = null;
final getAuthToken = Handshake_GetAuthToken() final getAuthToken = Handshake_GetAuthToken()
..response = signature ..response = signature

View file

@ -72,12 +72,14 @@ Future<List<PreKeyRecord>> signalGetPreKeys() async {
Future<SignalIdentity?> getSignalIdentity() async { Future<SignalIdentity?> getSignalIdentity() async {
try { try {
final storage = FlutterSecureStorage(); final storage = FlutterSecureStorage();
final signalIdentityJson = var signalIdentityJson =
await storage.read(key: SecureStorageKeys.signalIdentity); await storage.read(key: SecureStorageKeys.signalIdentity);
if (signalIdentityJson == null) { if (signalIdentityJson == null) {
return null; return null;
} }
return SignalIdentity.fromJson(jsonDecode(signalIdentityJson)); final decoded = jsonDecode(signalIdentityJson);
signalIdentityJson = null;
return SignalIdentity.fromJson(decoded);
} catch (e) { } catch (e) {
Log.error("could not load signal identity: $e"); Log.error("could not load signal identity: $e");
return null; return null;
@ -118,7 +120,7 @@ Future createIfNotExistsSignalIdentity() async {
} }
Future<SignedPreKeyRecord?> _getNewSignalSignedPreKey() async { Future<SignedPreKeyRecord?> _getNewSignalSignedPreKey() async {
final identityKeyPair = await getSignalIdentityKeyPair(); var identityKeyPair = await getSignalIdentityKeyPair();
if (identityKeyPair == null) return null; if (identityKeyPair == null) return null;
final signalStore = await getSignalStore(); final signalStore = await getSignalStore();
if (signalStore == null) return null; if (signalStore == null) return null;
@ -130,6 +132,8 @@ Future<SignedPreKeyRecord?> _getNewSignalSignedPreKey() async {
signedPreKeyId, signedPreKeyId,
); );
identityKeyPair = null;
await signalStore.storeSignedPreKey(signedPreKeyId, signedPreKey); await signalStore.storeSignedPreKey(signedPreKeyId, signedPreKey);
return signedPreKey; return signedPreKey;