decrypt method

  1. @override
Uint8List decrypt(
  1. Uint8List data, {
  2. SSC? ssc,
})
override

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;
}