private byte[] GenerateCryptogram(CryptogramType cryptogramType) { var data = new List <byte>(); switch (cryptogramType) { case CryptogramType.Card: data.AddRange(this.HostChallenge); data.AddRange(this.SequenceCounter); data.AddRange(this.CardChallenge); break; case CryptogramType.Host: data.AddRange(this.SequenceCounter); data.AddRange(this.CardChallenge); data.AddRange(this.HostChallenge); break; } data.Pad(); byte[] cryptogram = MAC.Algorithm1(data.ToArray(), this.EncryptionKey); return(cryptogram); }