/// <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.");
            }
        }
Exemple #3
0
 /// <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));
            }
        }
Exemple #5
0
        /// <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());
        }
Exemple #6
0
        /// <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)
 {
 }
Exemple #8
0
 /// <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;
 }