Skip to content
Snippets Groups Projects
Commit e882a4d3 authored by Leon Tappe's avatar Leon Tappe 🔥
Browse files

make encryption backwards compatible

parent 60af2108
No related branches found
No related tags found
No related merge requests found
......@@ -125,7 +125,8 @@ class VerificationBloc extends Bloc<VerificationEvent, VerificationState> {
}
if (response.ticket != null && response.ticket!.isNotEmpty) {
_ticket = response.ticket;
_writeEncryptedTicket(_ticket!);
//_writeEncryptedTicket(_ticket!);
await _ticketStore!.writeAsString(_ticket!, flush: true);
yield VerificationState.unverified;
add(VerificationEvent.check());
}
......@@ -179,7 +180,16 @@ class VerificationBloc extends Bloc<VerificationEvent, VerificationState> {
if (ticket.isNotEmpty) {
final iv = IV.fromBase64(ticket.substring(0, 24));
final encrypted = Encrypted.fromBase64(ticket.substring(24));
_ticket = _encrypter!.decrypt(encrypted, iv: iv);
try {
_ticket = _encrypter!.decrypt(encrypted, iv: iv);
} catch (e) {
// convert old ticket into encrypted
_writeEncryptedTicket(ticket);
_log.info('restarting loadTicket with migrated ticket');
_loadTicket();
return;
}
add(VerificationEvent.check());
} else {
_log.fine('ticket empty, going to noTicket state');
......@@ -189,9 +199,9 @@ class VerificationBloc extends Bloc<VerificationEvent, VerificationState> {
Future<void> _writeEncryptedTicket(String ticket) async {
final iv = IV.fromLength(16);
print(iv.base64.length); // 24
// write 24 characters of IV and append encrypted data to ticketStore
await _ticketStore!.writeAsString(
iv.base64 + _encrypter!.encrypt(_ticket!, iv: iv).base64,
iv.base64 + _encrypter!.encrypt(ticket, iv: iv).base64,
flush: true,
);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment