43 lines
1.2 KiB
Dart
43 lines
1.2 KiB
Dart
// See file LICENSE for more information.
|
|
|
|
library impl.block_cipher.modes.ecb;
|
|
|
|
import 'dart:typed_data';
|
|
|
|
import 'package:pointycastle/api.dart';
|
|
import 'package:pointycastle/src/registry/registry.dart';
|
|
import 'package:pointycastle/src/impl/base_block_cipher.dart';
|
|
|
|
/// Implementation of Electronic Code Book (ECB) mode on top of a [BlockCipher].
|
|
class ECBBlockCipher extends BaseBlockCipher {
|
|
/// Intended for internal use.
|
|
static final FactoryConfig factoryConfig = DynamicFactoryConfig.suffix(
|
|
BlockCipher,
|
|
'/ECB',
|
|
(_, final Match match) => () {
|
|
var underlying = BlockCipher(match.group(1)!);
|
|
return ECBBlockCipher(underlying);
|
|
});
|
|
|
|
final BlockCipher _underlyingCipher;
|
|
|
|
ECBBlockCipher(this._underlyingCipher);
|
|
|
|
@override
|
|
String get algorithmName => '${_underlyingCipher.algorithmName}/ECB';
|
|
@override
|
|
int get blockSize => _underlyingCipher.blockSize;
|
|
@override
|
|
void reset() {
|
|
_underlyingCipher.reset();
|
|
}
|
|
|
|
@override
|
|
void init(bool forEncryption, CipherParameters? params) {
|
|
_underlyingCipher.init(forEncryption, params);
|
|
}
|
|
|
|
@override
|
|
int processBlock(Uint8List inp, int inpOff, Uint8List out, int outOff) =>
|
|
_underlyingCipher.processBlock(inp, inpOff, out, outOff);
|
|
}
|