Как заполнить обязательные параметры для метода cipher.doFinal () в Dart? - PullRequest
3 голосов
/ 22 мая 2019

Я пытаюсь выполнить шифрование в своем приложении Flutter, используя пакет pointy_castle, который похож на библиотеку crypto.Cipher в Java. Существует метод с именем doFinal(), в Java вы можете назначить один параметр. Находясь в Dart, вы должны назначить четыре параметра. Так как же правильно заполнить необходимые параметры? Мне нужен пример того, как это сделать.

В пакете документов, doFinal(Uint8List inp, int inpOff, Uint8List out, int outOff) → int

Это код на Java:

 ...
    byte[] encrypted;
    encrypted = cipher.doFinal(padString(text).getBytes());
    String finalData = bytesToHex(encrypted);
    return finalData;
 ...

И в дротике:

...
    Uint8List encrypted; // <- I have to make it of type Uint8List because _bytesToHex method requires looping through the list. However, it produces an error because of that: `A value of type 'int' can't be assigned to a variable of type 'Uint8List'.`
    encrypted = cipher.doFinal(utf8.encode(_padString(data))); // <- This produces an error since doFinal() requires 4 params.
    String finalData = _bytesToHex(encrypted);
    return finalData;
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...