37 lines
1,004 B
Dart
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;
|
|
}
|
|
}
|