decrypt method
Decrypts edata from Secure Messaging.
edata must be unpadded after calling this function.
ssc is used as IV for encryption.
Implementation
@override
Uint8List decrypt(Uint8List data, {SSC? ssc}) {
_log.debug(
"decrypt: data size: ${data.length}, ssc: ${ssc?.toBytes().hex()}");
_log.sdVerbose("decrypt: data: ${data}, KSenc: ${KSenc.hex()}");
if (ssc == null)
throw Exception("PACE_SMCipher_AES.decrypt: SSC should not be null");
//IV = E(KSenc, SCC)
Uint8List iv = cipher.encrypt(
data: ssc.toBytes(), key: KSenc, mode: BLOCK_CIPHER_MODE.ECB);
_log.sdVerbose("IV: ${iv.hex()}");
Uint8List decrypted = cipher.decrypt(data: data, key: KSenc, iv: iv);
_log.sdVerbose("Decrypted data: ${decrypted.hex()}");
return decrypted;
}