decryptByPrivateKey function
Uint8List
decryptByPrivateKey(
- Uint8List data,
- RSAPublicKey publicKey,
- RSAPrivateKey privateKey
)
Implementation
Uint8List decryptByPrivateKey(
Uint8List data, RSAPublicKey publicKey, RSAPrivateKey privateKey) {
try {
var keyParameter = () => PrivateKeyParameter<RSAPrivateKey>(privateKey);
AsymmetricBlockCipher cipher = AsymmetricBlockCipher("RSA/PKCS1");
cipher.reset();
cipher.init(false, keyParameter());
int index = 0;
int strlength = data.length;
final keysize = publicKey.modulus!.bitLength ~/ 8 - 11;
final blocksize = publicKey.modulus!.bitLength ~/ 8;
final numBlocks = strlength ~/ blocksize;
Uint8List list = Uint8List(keysize * numBlocks);
int count = 0;
int strindex = 0;
while (index < strlength) {
Uint8List listtmp =
data.sublist(count * blocksize, (count + 1) * blocksize);
Uint8List encryptResult = cipher.process(listtmp);
for (int v_i = 0; v_i < encryptResult.length; v_i++) {
list[count * keysize + v_i] = encryptResult[v_i];
}
count += 1;
strindex += encryptResult.length;
index += blocksize;
}
return list.sublist(0, strindex);
} catch (e) {
print(e.toString());
rethrow;
}
}