/// <summary> /// Initializes a new instance of the <see cref="IssuerScriptCommand"/> class. /// </summary> /// <param name="tag"></param> /// <param name="value">The value.</param> internal IssuerScriptCommand(TagLengthValueType tag, byte[] value) : base(tag, value) { var s = value.AsString(false); Value = new byte[s.Length]; s.ForIndex((i, c) => Value[i] = (byte)c); }
/// <summary> /// Initializes a new instance of the <see cref="ApplicationDateBase"/> class. /// </summary> /// <param name="tag">The TLV.</param> /// <param name="value">The TLV value</param> protected ApplicationDateBase(TagLengthValueType tag, byte[] value) : base(tag, value) { if (value == null) { throw new ArgumentNullException("value", "Application date values was null."); } if (value.Length != 3) { throw new ArgumentOutOfRangeException("value", "Application date values was not 3 in length."); } }
/// <summary> /// Initializes a new instance of the <see cref="DecodedItem"/> class. /// </summary> /// <param name="tag">The tag.</param> /// <param name="value">The value.</param> public DecodedItem(TagLengthValueType tag, byte[] value) { Value = value; Tag = tag; ApplyToString(); }
/// <summary> /// /// </summary> /// <param name="tag"></param> /// <param name="value"></param> /// <returns></returns> public IEmvElement New(TagLengthValueType tag, byte[] value) { switch (tag) { case TagLengthValueType.ApplicationLabel: return(new ApplicationLabel(value)); case TagLengthValueType.CryptogramInformationData: return(new CryptogramInformationData(value[0])); case TagLengthValueType.TransactionTotalAmount: return(new AmountAuthorisedNumeric(value)); case TagLengthValueType.TerminalVerificationResults: return(new TerminalVerificationResult(value)); case TagLengthValueType.ApplicationInterchangeProfile: return(new ApplicationInterchangeProfile(value)); case TagLengthValueType.TransactionStatusInformation: return(new TransactionStatusInformation(value)); case TagLengthValueType.TerminalCountryCode: return(new TerminalCountryCode(value)); case TagLengthValueType.IssuerCountryCode: return(new IssuerCountryCode(value)); case TagLengthValueType.IssuerCountryCodeAlpha3: return(new IssuerCountryCodeAlpha3(value)); case TagLengthValueType.PrimaryAccountNumber: return(new PrimaryAccountNumber(value)); case TagLengthValueType.OnlinePinCipherBlock: return(new OnlinePinCipherBlock(value)); case TagLengthValueType.Ksn: return(new Ksn(value)); case TagLengthValueType.ApplicationUsageControl: return(new ApplicationUsageControl(value)); case TagLengthValueType.LanguagePreference: return(new LanguagePreference(value)); case TagLengthValueType.PinResult: return(new PinResult(value)); case TagLengthValueType.ApplicationIdentifier: return(new ApplicationIdentifier(value)); case TagLengthValueType.ApplicationCryptogram: return(new ApplicationCryptogram(value)); case TagLengthValueType.CvmList: return(new CvmList(value)); case TagLengthValueType.CvmResults: return(new CvmResults(value)); case TagLengthValueType.TerminalCapabilities: return(new TerminalCapabilities(value)); default: return(new GenericEmvType(tag, value)); } }
/// <summary> /// Gets a byte array representation of the <paramref name="value"/>. /// </summary> /// <param name="value">The <see cref="TagLengthValueType"/> value.</param> /// <returns>A byte array representation of the value.</returns> public static IEnumerable <byte> RawValue(this TagLengthValueType value) { var b = BitConverter.GetBytes((int)value); return(b.Take(value.Length()).Reverse()); }
/// <summary> /// Returns the length of the <paramref name="value"/> when converted to a byte array /// </summary> /// <param name="value">The <see cref="TagLengthValueType"/> value.</param> /// <returns>The length of the value</returns> public static int Length(this TagLengthValueType value) { var b = BitConverter.GetBytes((int)value); return(b.Count(x => x != 0x00)); }
/// <summary> /// Initializes a new instance of the <see cref="GenericEmvType"/> class. /// </summary> /// <param name="tag">The TLV.</param> /// <param name="value">The TLV value</param> public GenericEmvType(TagLengthValueType tag, byte[] value) : base(tag, value) { }
/// <summary> /// Initializes a new instance of the <see cref="EmvElement"/> class. /// </summary> /// <param name="tag">The TLV.</param> /// <param name="value">The TLV value</param> protected EmvElement(TagLengthValueType tag, byte[] value) { Tag = tag; Value = value; }