Шифрование PKCS1 во Flutter не будет работать без отражения - PullRequest
0 голосов
/ 11 сентября 2018

Я пишу некоторый код для шифрования данных с клиента флаттера и отправки его на наши серверы.Мы используем RSA с добавлением PKCS1, но я получаю ошибку ниже при попытке зашифровать данные.

I/flutter (12394): Bad state: Reflectable has not been initialized.
I/flutter (12394): Please make sure that the first action taken by your program
I/flutter (12394): in `main` is to call `initializeReflectable()`.

Код, отвечающий за это, выглядит следующим образом.

static String encrypt(String text, RSAPublicKey pubKey) {
    var cipher = PKCS1Encoding(RSAEngine());
    cipher.init(true, PublicKeyParameter<RSAPublicKey>(pubKey));
    Uint8List output1 = cipher.process(utf8.encode(text));
    return base64Encode(output1);
}

Мне удалосьчтобы получить незаполненный образец, работающий нормально, но для дополненного шифрования PKCS1 требуется генератор случайных чисел, который инициализируется посредством отражения, а флаттер говорит «нет».

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 11 сентября 2018

Конструктор на основе отражения Random был заменен на FortunaRandom и засеян.

_random = new FortunaRandom();
_random.seed(KeyParameter(_seed()));

PR был утвержден и находится в стадии разработки, поэтому ни у кого больше не должно быть этой проблемы!

...