/// <summary>Initializes a new instance of the <see cref="FileDescriptor" /> class.</summary> /// <param name="fileDescriptorByte">The file descriptor byte that shall be parsed.</param> public FileDescriptor(byte fileDescriptorByte) { _fileDescriptor = fileDescriptorByte; _type = SCardHelper.IsSet(_fileDescriptor, FILE_TYPE_MASK, FILE_TYPE_DF) ? FileType.Dedicated : FileType.Elementary; // ExtendedType if (SCardHelper.IsSet(_fileDescriptor, FILE_TYPE_MASK, FILE_TYPE_DF)) { _extendedType = ExtendedFileType.Dedicated; } else if (SCardHelper.IsSet(_fileDescriptor, FILE_TYPE_MASK, FILE_TYPE_WORKING_EF)) { _extendedType = ExtendedFileType.WorkingElementary; } else if (SCardHelper.IsSet(_fileDescriptor, FILE_TYPE_MASK, FILE_TYPE_INTERNAL_EF)) { _extendedType = ExtendedFileType.InternalElementary; } else { _extendedType = ExtendedFileType.Proprietary; } _shareMode = SCardHelper.IsSet(_fileDescriptor, FILE_SHARE_MODE_MASK, FILE_SHARE_MODE_SHAREABLE) ? FileShareMode.Shareable : FileShareMode.NotShareable; _fileStructureInfoCache = null; }
/// <summary>Initializes a new instance of the <see cref="RecordInfo" /> class.</summary> /// <param name="fileDescriptor">The file descriptor.</param> public RecordInfo(byte fileDescriptor) { FileDescriptor = fileDescriptor; IsCyclic = false; IsLinear = false; IsFixed = false; IsVariable = false; IsSimpleTlv = false; // IsCyclic if (SCardHelper.IsSet(fileDescriptor, FILE_STRUCTURING_MASK, FILE_STRUCTURE_IS_CYCLIC)) { IsCyclic = true; // IsFixed IsFixed = true; } // IsLinear if (!IsCyclic) { IsLinear = true; // IsFixed if (SCardHelper.IsSet(fileDescriptor, FILE_STRUCTURING_MASK, FILE_STRUCTURE_IS_LINEAR_FIXED)) { IsFixed = true; } // IsVariable if (SCardHelper.IsSet(fileDescriptor, FILE_STRUCTURING_MASK, FILE_STRUCTURE_IS_LINEAR_VARIABLE)) { IsVariable = true; } } // IsSimpleTlv if (SCardHelper.IsSet(fileDescriptor, 1, 1)) { IsSimpleTlv = true; } }
protected void UpdateFileInfo() { // Type if (SCardHelper.IsSet(filedescriptor, FILE_TYPE_MASK, FILE_TYPE_DF)) { _type = FileType.Dedicated; } else { _type = FileType.Elementary; } // ExtendedType if (SCardHelper.IsSet(filedescriptor, FILE_TYPE_MASK, FILE_TYPE_DF)) { _extendedtype = ExtendedFileType.Dedicated; } else if (SCardHelper.IsSet(filedescriptor, FILE_TYPE_MASK, FILE_TYPE_WORKING_EF)) { _extendedtype = ExtendedFileType.WorkingElementary; } else if (SCardHelper.IsSet(filedescriptor, FILE_TYPE_MASK, FILE_TYPE_INTERNAL_EF)) { _extendedtype = ExtendedFileType.InternalElementary; } else { _extendedtype = ExtendedFileType.Proprietary; } // ShareMode if (SCardHelper.IsSet(filedescriptor, FILE_SHARE_MODE_MASK, FILE_SHARE_MODE_SHAREABLE)) { _sharemode = FileShareMode.Shareable; } else { _sharemode = FileShareMode.NotShareable; } _filestructureinfo = null; }
protected void UpdateFileInfo() { _iscyclic = false; _islinear = false; _isfixed = false; _isvariable = false; _issimpletlv = false; // IsCyclic if (SCardHelper.IsSet(filedescriptor, FILE_STRUCTURE_IS_MASK, FILE_STRUCTURE_IS_CYCLIC)) { _iscyclic = true; // IsFixed _isfixed = true; } // IsLinear if (!_iscyclic) { _islinear = true; // IsFixed if (SCardHelper.IsSet(filedescriptor, FILE_STRUCTURE_IS_MASK, FILE_STRUCTURE_IS_LINEAR_FIXED)) { _isfixed = true; } // IsVariable if (SCardHelper.IsSet(filedescriptor, FILE_STRUCTURE_IS_MASK, FILE_STRUCTURE_IS_LINEAR_VARIABLE)) { _isvariable = true; } } // IsSimpleTlv if (SCardHelper.IsSet(filedescriptor, 1, 1)) { _issimpletlv = true; } }
/// <summary>Determines whether the specified bits are set.</summary> /// <param name="mask">The a bit mask.</param> /// <param name="bits">The bits to check for.</param> /// <returns> /// <c>true</c> if the specified bits are set; otherwise, <c>false</c>.</returns> public bool IsSet(byte mask, byte bits) { return(SCardHelper.IsSet(_fileDescriptor, mask, bits)); }