コード例 #1
0
        private void CreateDfFile(SmartCardManagement.SmartCard card, string fileName)
        {
            var file = new SmartCardManagement.File(fileName, card.CardHandle, card.Protocol);
            var s    = file.SelectFile();

            var param    = new SmartCardManagement.FileControlParams();
            var security = new List <KeyValuePair <SmartCardManagement.CompactAccessModeDF, SmartCardManagement.CompactSecurityCondition> >();

            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeDF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeDF.DELETE_FILE_SELF, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));
            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeDF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeDF.TERMINATE_MF_DF, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));
            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeDF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeDF.DEACTIVATE_FILE, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));
            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeDF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeDF.CREATE_FILE_DF, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));
            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeDF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeDF.CREATE_FILE_EF, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));
            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeDF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeDF.DELETE_CHILD_FILE, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));
            param.CompactAccessModeForDF = security;

            var desc = new List <SmartCardManagement.FileDescriptor>();

            desc.Add(SmartCardManagement.FileDescriptor.DF);
            param.Descriptors    = desc;
            param.FileIdentifier = fileName;
            param.LifeCycle      = SmartCardManagement.FileLifeCycle.OPERATION_STATE_ACTIVATED;

            /*param.ExpandedSecurityCondition = new SmartCardManagement.FileControlParams.ExpandedSecurityFormat();
             * param.ExpandedSecurityCondition.ExpandedAccessModeDataObject = SmartCardManagement.ExpandAccessModeDataObject.VALUE_OF_INS;
             * param.ExpandedSecurityCondition.INSCode = new SmartCardManagement.INS { SelectedINS = SmartCardManagement.INSCode.PUT_DATA };
             * param.ExpandedSecurityCondition.ExpandedSecurityCondition = SmartCardManagement.ExpandSecurityCondition.NEVER;*/

            file.Parameters = param;

            string msg, msg1 = string.Empty;

            msg = file.CreateFile(false, ref msg1);
        }
コード例 #2
0
        private void CreateEfFile(SmartCardManagement.SmartCard card, string fileName, string shortFileName)
        {
            var file = new SmartCardManagement.File(fileName, card.CardHandle, card.Protocol);
            var s    = file.SelectFile();

            var param    = new SmartCardManagement.FileControlParams();
            var security = new List <KeyValuePair <SmartCardManagement.CompactAccessModeEF, SmartCardManagement.CompactSecurityCondition> >();

            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeEF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeEF.DELETE_FILE, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));
            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeEF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeEF.TERMINATE_EF, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));
            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeEF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeEF.DEACTIVATE_FILE, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));
            security.Add(new KeyValuePair <SmartCardManagement.CompactAccessModeEF, SmartCardManagement.CompactSecurityCondition>(SmartCardManagement.CompactAccessModeEF.UPDATE_BINARY_RECORD, SmartCardManagement.CompactSecurityCondition.NO_CONDITION));

            param.CompactAccessModeForEF = security;
            List <SmartCardManagement.FileDescriptor> desc = new List <SmartCardManagement.FileDescriptor>();

            desc.Add(SmartCardManagement.FileDescriptor.EF_TRANSPARENT);
            param.Descriptors       = desc;
            param.CodingByte        = SmartCardManagement.DataCodingByte.DATA_UNIT_SIZE_ONE_BYTE;
            param.FileIdentifier    = fileName;
            param.ShortEFIdentifer  = shortFileName;
            param.SizeExcludeStruct = 520;

            file.Parameters = param;

            string msg, msg1 = string.Empty;

            msg = file.CreateFile(false, ref msg1);

            byte[] b = SmartCardManagement.Convertor.StringToByteArray("Thank God", null, null);
            s = file.WriteBinary(0, b, null);
            byte[] b1 = new byte[100];
            s = file.ReadBinary(0, 15, ref b1);
            s = file.UpdateBinary(0, SmartCardManagement.Convertor.StringToByteArray("Thank you god", null, null), null);
            s = SmartCardManagement.Convertor.ByteArrayToString(b1);
        }