twonly-app-dependencies/pointycastle/lib/adapters/stream_cipher_as_block_cipher.dart
2025-12-07 16:10:41 +01:00

37 lines
1,004 B
Dart

// See file LICENSE for more information.
library impl.adapters.stream_cipher_as_block_cipher;
import 'dart:typed_data';
import 'package:pointycastle/api.dart';
import 'package:pointycastle/src/impl/base_block_cipher.dart';
/// An adapter to convert an [StreamCipher] to a [BlockCipher]
class StreamCipherAsBlockCipher extends BaseBlockCipher {
final StreamCipher streamCipher;
@override
final int blockSize;
/// Create a [BlockCipher] from [streamCipher] simulating the given [blockSize]
StreamCipherAsBlockCipher(this.blockSize, this.streamCipher);
@override
String get algorithmName => streamCipher.algorithmName;
@override
void reset() {
streamCipher.reset();
}
@override
void init(bool forEncryption, CipherParameters? params) {
streamCipher.init(forEncryption, params);
}
@override
int processBlock(Uint8List inp, int inpOff, Uint8List out, int outOff) {
streamCipher.processBytes(inp, inpOff, blockSize, out, outOff);
return blockSize;
}
}