Example #1
0
        public Byte[] GetAccessConditions(byte[] data)
        {
            //  byte[] data = this.accessConditionBytes;
            BitArray byte6=new BitArray(new Byte[] { 0xFF });
            BitArray byte7=new BitArray(new Byte[] { 0x07 });
            BitArray byte8=new BitArray(new Byte[] { 0x80 });
            BitArray byte9=new BitArray(new Byte[] { 0x69 });

            if (data != null)
            {
                byte6=new BitArray(new Byte[] { data[0] });
                byte7=new BitArray(new Byte[] { data[1] });
                byte8=new BitArray(new Byte[] { data[2] });
                byte9=new BitArray(new Byte[] { data[3] });
            }
            this.standardizedcards=(data == null) || (data[3] == 0x69) ;
            
            BitArray[] condBits=new BitArray[4];
            Byte[] result=new Byte[4];
            condBits[0]=new BitArray(new bool[]
            {
                byte7.Get(4), // C1-0
                byte8.Get(0), // C2-0
                byte8.Get(4)  // C3-0
            });

            condBits[1]=new BitArray(new bool[]
            {
                byte7.Get(5), // C1-1
                byte8.Get(1), // C2-1
                byte8.Get(5)  // C3-1
            });

            condBits[2]=new BitArray(new bool[]
            {
                byte7.Get(6), // C1-2
                byte8.Get(2), // C2-2
                byte8.Get(3)  // C2-3
            });

            condBits[3]=new BitArray(new bool[]
            {
                byte7.Get(7), // C1-3
                byte8.Get(3), // C2-3
                byte8.Get(7)  // C3-3
            });

            this.madVersion=MadVersionEnum.NoMad;
            if (byte9.Get(7))
            {
                if (byte9.Get(0))
                    this.madVersion=MadVersionEnum.Version1;
                if (byte9.Get(1))
                    this.madVersion=MadVersionEnum.Version2;
            }
            multiApplicationCard=byte9.Get(6);

            condBits[0].CopyTo(result, 0);
            condBits[1].CopyTo(result, 1);
            condBits[2].CopyTo(result, 2);
            
            condBits[3].CopyTo(result, 3);
          
            // this.accessBits = result;
            return result;
        }
Example #2
0
        public Byte[] GetAccessConditions(byte[] data)
        {
            //  byte[] data = this.accessConditionBytes;
            BitArray byte6 = new BitArray(new Byte[] { 0xFF });
            BitArray byte7 = new BitArray(new Byte[] { 0x07 });
            BitArray byte8 = new BitArray(new Byte[] { 0x80 });
            BitArray byte9 = new BitArray(new Byte[] { 0x69 });

            if (data != null)
            {
                byte6 = new BitArray(new Byte[] { data[0] });
                byte7 = new BitArray(new Byte[] { data[1] });
                byte8 = new BitArray(new Byte[] { data[2] });
                byte9 = new BitArray(new Byte[] { data[3] });
            }
            this.standardizedcards = (data == null) || (data[3] == 0x69);

            BitArray[] condBits = new BitArray[4];
            Byte[]     result   = new Byte[4];
            condBits[0] = new BitArray(new bool[]
            {
                byte7.Get(4), // C1-0
                byte8.Get(0), // C2-0
                byte8.Get(4)  // C3-0
            });

            condBits[1] = new BitArray(new bool[]
            {
                byte7.Get(5), // C1-1
                byte8.Get(1), // C2-1
                byte8.Get(5)  // C3-1
            });

            condBits[2] = new BitArray(new bool[]
            {
                byte7.Get(6), // C1-2
                byte8.Get(2), // C2-2
                byte8.Get(3)  // C2-3
            });

            condBits[3] = new BitArray(new bool[]
            {
                byte7.Get(7), // C1-3
                byte8.Get(3), // C2-3
                byte8.Get(7)  // C3-3
            });

            this.madVersion = MadVersionEnum.NoMad;
            if (byte9.Get(7))
            {
                if (byte9.Get(0))
                {
                    this.madVersion = MadVersionEnum.Version1;
                }
                if (byte9.Get(1))
                {
                    this.madVersion = MadVersionEnum.Version2;
                }
            }
            multiApplicationCard = byte9.Get(6);

            condBits[0].CopyTo(result, 0);
            condBits[1].CopyTo(result, 1);
            condBits[2].CopyTo(result, 2);

            condBits[3].CopyTo(result, 3);

            // this.accessBits = result;
            return(result);
        }