mirror of
https://github.com/SabreTools/SabreTools.Models.git
synced 2026-09-22 22:57:11 +00:00
Add PKZIP appendix A and B
This commit is contained in:
26
PKZIP/AS400ExtraFieldAttribute.cs
Normal file
26
PKZIP/AS400ExtraFieldAttribute.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
namespace SabreTools.Models.PKZIP
|
||||
{
|
||||
/// <summary>
|
||||
/// AS/400 Extra Field (0x0065) Attribute [APPENDIX A]
|
||||
/// </summary>
|
||||
/// <see href="https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT"/>
|
||||
public class AS400ExtraFieldAttribute : ExtensibleDataField
|
||||
{
|
||||
/// <summary>
|
||||
/// Field length including length
|
||||
/// </summary>
|
||||
/// <remarks>Big-endian</remarks>
|
||||
public ushort FieldLength { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Field code
|
||||
/// </summary>
|
||||
public AS400ExtraFieldAttributeFieldCode FieldCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Data
|
||||
/// </summary>
|
||||
/// <remarks>Variable byte length based on field code</remarks>
|
||||
public byte[]? Data { get; set; }
|
||||
}
|
||||
}
|
||||
800
PKZIP/Enums.cs
800
PKZIP/Enums.cs
@@ -207,6 +207,87 @@ namespace SabreTools.Models.PKZIP
|
||||
Reserved31 = 0b1000_0000_0000_0000_0000_0000_0000_0000,
|
||||
}
|
||||
|
||||
public enum AS400ExtraFieldAttributeFieldCode : ushort
|
||||
{
|
||||
/// <summary>
|
||||
/// Source type i.e. CLP etc
|
||||
/// </summary>
|
||||
SourceType = 0x4001,
|
||||
|
||||
/// <summary>
|
||||
/// The text description of the library
|
||||
/// </summary>
|
||||
LibraryTextDescription = 0x4002,
|
||||
|
||||
/// <summary>
|
||||
/// The text description of the file
|
||||
/// </summary>
|
||||
FileTextDescription = 0x4003,
|
||||
|
||||
/// <summary>
|
||||
/// The text description of the member
|
||||
/// </summary>
|
||||
MemberTextDescription = 0x4004,
|
||||
|
||||
/// <summary>
|
||||
/// x'F0' or 0 is PF-DTA, x'F1' or 1 is PF_SRC
|
||||
/// </summary>
|
||||
PFType = 0x4005,
|
||||
|
||||
/// <summary>
|
||||
/// Database Type Code
|
||||
/// </summary>
|
||||
/// <remarks>1 byte</remarks>
|
||||
DatabaseTypeCode = 0x4007,
|
||||
|
||||
/// <summary>
|
||||
/// Database file and fields definition
|
||||
/// </summary>
|
||||
DatabaseFileAndFieldsDefinition = 0x4008,
|
||||
|
||||
/// <summary>
|
||||
/// GZIP file type
|
||||
/// </summary>
|
||||
/// <remarks>2 bytes</remarks>
|
||||
GZIPFileType = 0x4009,
|
||||
|
||||
/// <summary>
|
||||
/// IFS code page
|
||||
/// </summary>
|
||||
/// <remarks>2 bytes</remarks>
|
||||
IFSCodePage = 0x400B,
|
||||
|
||||
/// <summary>
|
||||
/// IFS Time of last file status change
|
||||
/// </summary>
|
||||
/// <remarks>4 bytes</remarks>
|
||||
IFSTimeOfLastFileStatusChange = 0x400C,
|
||||
|
||||
/// <summary>
|
||||
/// IFS Access Time
|
||||
/// </summary>
|
||||
/// <remarks>4 bytes</remarks>
|
||||
IFSAccessTime = 0x4001,
|
||||
|
||||
/// <summary>
|
||||
/// IFS Modification time
|
||||
/// </summary>
|
||||
/// <remarks>4 bytes</remarks>
|
||||
IFSModificationTime = 0x4001,
|
||||
|
||||
/// <summary>
|
||||
/// Length of the records in the file
|
||||
/// </summary>
|
||||
/// <remarks>2 bytes</remarks>
|
||||
RecordsLength = 0x4001,
|
||||
|
||||
/// <summary>
|
||||
/// GZIP two words
|
||||
/// </summary>
|
||||
/// <remarks>8 bytes</remarks>
|
||||
GZIPTwoWords = 0x4001,
|
||||
}
|
||||
|
||||
public enum CompressionMethod : ushort
|
||||
{
|
||||
/// <summary>
|
||||
@@ -920,4 +1001,723 @@ namespace SabreTools.Models.PKZIP
|
||||
value is provided for mainframe data transfer support.
|
||||
*/
|
||||
}
|
||||
|
||||
public enum ZOSExtraFieldAttributeFieldCode : ushort
|
||||
{
|
||||
/// <summary>
|
||||
/// File Type
|
||||
/// <summary>
|
||||
/// </remarks>2 bytes</remarks>
|
||||
FileType = 0x0001,
|
||||
|
||||
/// <summary>
|
||||
/// NonVSAM Record Format
|
||||
/// <summary>
|
||||
/// </remarks>1 byte</remarks>
|
||||
NonVSAMRecordFormat = 0x0002,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
/// </remarks></remarks>
|
||||
Reserved03 = 0x0003,
|
||||
|
||||
/// <summary>
|
||||
/// NonVSAM Block Size
|
||||
/// <summary>
|
||||
/// </remarks>2 bytes Big Endian</remarks>
|
||||
NonVSAMBlockSize = 0x0004,
|
||||
|
||||
/// <summary>
|
||||
/// Primary Space Allocation
|
||||
/// <summary>
|
||||
/// </remarks>3 bytes Big Endian</remarks>
|
||||
PrimarySpaceAllocation = 0x0005,
|
||||
|
||||
/// <summary>
|
||||
/// Secondary Space Allocation
|
||||
/// <summary>
|
||||
/// </remarks>3 bytes Big Endian</remarks>
|
||||
SecondarySpaceAllocation = 0x0006,
|
||||
|
||||
/// <summary>
|
||||
/// Space Allocation Type1 byte flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte</remarks>
|
||||
SpaceAllocationType1ByteFlag = 0x0007,
|
||||
|
||||
/// <summary>
|
||||
/// Modification Date
|
||||
/// <summary>
|
||||
/// </remarks>Retired with PKZIP 5.0 +</remarks>
|
||||
ModificationDate = 0x0008,
|
||||
|
||||
/// <summary>
|
||||
/// Expiration Date
|
||||
/// <summary>
|
||||
/// </remarks>Retired with PKZIP 5.0 +</remarks>
|
||||
ExpirationDate = 0x0009,
|
||||
|
||||
/// <summary>
|
||||
/// PDS Directory Block Allocation
|
||||
/// <summary>
|
||||
/// </remarks>3 bytes Big Endian binary value</remarks>
|
||||
PDSDirectoryBlockAllocation = 0x000A,
|
||||
|
||||
/// <summary>
|
||||
/// NonVSAM Volume List
|
||||
/// <summary>
|
||||
/// </remarks>variable</remarks>
|
||||
NonVSAMVolumeList = 0x000B,
|
||||
|
||||
/// <summary>
|
||||
/// UNIT Reference
|
||||
/// <summary>
|
||||
/// </remarks>Retired with PKZIP 5.0 +</remarks>
|
||||
UNITReference = 0x000C,
|
||||
|
||||
/// <summary>
|
||||
/// DF/SMS Management Class
|
||||
/// <summary>
|
||||
/// </remarks>8 bytes EBCDIC Text Value</remarks>
|
||||
DFSMSManagementClass = 0x000D,
|
||||
|
||||
/// <summary>
|
||||
/// DF/SMS Storage Class
|
||||
/// <summary>
|
||||
/// </remarks>8 bytes EBCDIC Text Value</remarks>
|
||||
DFSMSStorageClass = 0x000E,
|
||||
|
||||
/// <summary>
|
||||
/// DF/SMS Data Class
|
||||
/// <summary>
|
||||
/// </remarks>8 bytes EBCDIC Text Value</remarks>
|
||||
DFSMSDataClass = 0x000F,
|
||||
|
||||
/// <summary>
|
||||
/// PDS/PDSE Member Info
|
||||
/// <summary>
|
||||
/// </remarks>30 bytes</remarks>
|
||||
PDSPDSEMemberInfo = 0x0010,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM sub-filetype
|
||||
/// <summary>
|
||||
/// </remarks>2 bytes</remarks>
|
||||
VSAMSubFiletype = 0x0011,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM LRECL
|
||||
/// <summary>
|
||||
/// </remarks>13 bytes EBCDIC "(num_avg num_max)"</remarks>
|
||||
VSAMLRECL = 0x0012,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Cluster Name
|
||||
/// <summary>
|
||||
/// </remarks>Retired with PKZIP 5.0 +</remarks>
|
||||
VSAMClusterName = 0x0013,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM KSDS Key Information
|
||||
/// <summary>
|
||||
/// </remarks>13 bytes EBCDIC "(num_length num_position)"</remarks>
|
||||
VSAMKSDSKeyInformation = 0x0014,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Average LRECL
|
||||
/// <summary>
|
||||
/// </remarks>5 bytes EBCDIC num_value padded with blanks</remarks>
|
||||
VSAMAverageLRECL = 0x0015,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Maximum LRECL
|
||||
/// <summary>
|
||||
/// </remarks>5 bytes EBCDIC num_value padded with blanks</remarks>
|
||||
VSAMMaximumLRECL = 0x0016,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM KSDS Key Length
|
||||
/// <summary>
|
||||
/// </remarks>5 bytes EBCDIC num_value padded with blanks</remarks>
|
||||
VSAMKSDSKeyLength = 0x0017,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM KSDS Key Position
|
||||
/// <summary>
|
||||
/// </remarks>5 bytes EBCDIC num_value padded with blanks</remarks>
|
||||
VSAMKSDSKeyPosition = 0x0018,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Data Name
|
||||
/// <summary>
|
||||
/// </remarks>1-44 bytes EBCDIC text string</remarks>
|
||||
VSAMDataName = 0x0019,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM KSDS Index Name
|
||||
/// <summary>
|
||||
/// </remarks>1-44 bytes EBCDIC text string</remarks>
|
||||
VSAMKSDSIndexName = 0x001A,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Catalog Name
|
||||
/// <summary>
|
||||
/// </remarks>1-44 bytes EBCDIC text string</remarks>
|
||||
VSAMCatalogName = 0x001B,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Data Space Type
|
||||
/// <summary>
|
||||
/// </remarks>9 bytes EBCDIC text string</remarks>
|
||||
VSAMDataSpaceType = 0x001C,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Data Space Primary
|
||||
/// <summary>
|
||||
/// </remarks>9 bytes EBCDIC num_value left-justified</remarks>
|
||||
VSAMDataSpacePrimary = 0x001D,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Data Space Secondary
|
||||
/// <summary>
|
||||
/// </remarks>9 bytes EBCDIC num_value left-justified</remarks>
|
||||
VSAMDataSpaceSecondary = 0x001E,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Data Volume List
|
||||
/// <summary>
|
||||
/// </remarks>variable EBCDIC text list of 6-character Volume IDs</remarks>
|
||||
VSAMDataVolumeList = 0x001F,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Data Buffer Space
|
||||
/// <summary>
|
||||
/// </remarks>8 bytes EBCDIC num_value left-justified</remarks>
|
||||
VSAMDataBufferSpace = 0x0020,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Data CISIZE
|
||||
/// <summary>
|
||||
/// </remarks>5 bytes EBCDIC num_value left-justified</remarks>
|
||||
VSAMDataCISIZE = 0x0021,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Erase Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMEraseFlag = 0x0022,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Free CI %
|
||||
/// <summary>
|
||||
/// </remarks>3 bytes EBCDIC num_value left-justified</remarks>
|
||||
VSAMFreeCIPercentage = 0x0023,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Free CA %
|
||||
/// <summary>
|
||||
/// </remarks>3 bytes EBCDIC num_value left-justified</remarks>
|
||||
VSAMFreeCAPercentage = 0x0024,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index Volume List
|
||||
/// <summary>
|
||||
/// </remarks>variable EBCDIC text list of 6-character Volume IDs</remarks>
|
||||
VSAMIndexVolumeList = 0x0025,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Ordered Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMOrderedFlag = 0x0026,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM REUSE Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMREUSEFlag = 0x0027,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM SPANNED Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMSPANNEDFlag = 0x0028,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Recovery Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMRecoveryFlag = 0x0029,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM WRITECHK Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMWRITECHKFlag = 0x002A,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Cluster/Data SHROPTS
|
||||
/// <summary>
|
||||
/// </remarks>3 bytes EBCDIC "n,y"</remarks>
|
||||
CSAMClusterDataSHROPTS = 0x002B,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index SHROPTS
|
||||
/// <summary>
|
||||
/// </remarks>3 bytes EBCDIC "n,y"</remarks>
|
||||
VSAMIndexSHROPTS = 0x002C,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index Space Type
|
||||
/// <summary>
|
||||
/// </remarks>9 bytes EBCDIC text string</remarks>
|
||||
VSAMIndexSpaceType = 0x002D,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index Space Primary
|
||||
/// <summary>
|
||||
/// </remarks>9 bytes EBCDIC num_value left-justified</remarks>
|
||||
VSAMIndexSpacePrimary = 0x002E,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index Space Secondary
|
||||
/// <summary>
|
||||
/// </remarks>9 bytes EBCDIC num_value left-justified</remarks>
|
||||
VSAMIndexSpaceSecondary = 0x002F,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index CISIZE
|
||||
/// <summary>
|
||||
/// </remarks>v</remarks>
|
||||
VSAMIndexCISIZE = 0x0030,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index IMBED
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMIndexIMBED = 0x0031,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index Ordered Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMIndexOrderedFlag = 0x0032,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM REPLICATE Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMREPLICATEFlag = 0x0033,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index REUSE Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
VSAMIndexREUSEFlag = 0x0034,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index WRITECHK Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag Retired with PKZIP 5.0 +</remarks>
|
||||
VSAMIndexWRITECHKFlag = 0x0035,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Owner
|
||||
/// <summary>
|
||||
/// </remarks>8 bytes EBCDIC text string</remarks>
|
||||
VSAMOwner = 0x0036,
|
||||
|
||||
/// <summary>
|
||||
/// VSAM Index Owner
|
||||
/// <summary>
|
||||
/// </remarks>8 bytes EBCDIC text string</remarks>
|
||||
VSAMIndexOwner = 0x0037,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved38 = 0x0038,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved39 = 0x0039,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved3A = 0x003A,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved3B = 0x003B,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved3C = 0x003C,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved3D = 0x003D,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved3E = 0x003E,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
ReservedeF = 0x003F,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved40 = 0x0040,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved41 = 0x0041,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved42 = 0x0042,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved43 = 0x0043,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved44 = 0x0044,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved45 = 0x0045,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved46 = 0x0046,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved47 = 0x0047,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved48 = 0x0048,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved49 = 0x0049,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved4A = 0x004A,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved4B = 0x004B,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved4C = 0x004C,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved4D = 0x004D,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved4E = 0x004E,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved4F = 0x004F,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved50 = 0x0050,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved51 = 0x0051,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved52 = 0x0052,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved53 = 0x0053,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved54 = 0x0054,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved55 = 0x0055,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved56 = 0x0056,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved57 = 0x0057,
|
||||
|
||||
/// <summary>
|
||||
/// PDS/PDSE Member TTR Info
|
||||
/// <summary>
|
||||
/// </remarks>6 bytes Big Endian</remarks>
|
||||
PDSPDSEMemberTTRInfo = 0x0058,
|
||||
|
||||
/// <summary>
|
||||
/// PDS 1st LMOD Text TTR
|
||||
/// <summary>
|
||||
/// </remarks>3 bytes Big Endian</remarks>
|
||||
PDSFirstLMODTextTTR = 0x0059,
|
||||
|
||||
/// <summary>
|
||||
/// PDS LMOD EP Rec #
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes Big Endian</remarks>
|
||||
PDSLMODEPRecNum = 0x005A,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved5B = 0x005B,
|
||||
|
||||
/// <summary>
|
||||
/// Max Length of records
|
||||
/// <summary>
|
||||
/// </remarks>2 bytes Big Endian</remarks>
|
||||
MaxLengthOfRecords = 0x005C,
|
||||
|
||||
/// <summary>
|
||||
/// PDSE Flag
|
||||
/// <summary>
|
||||
/// </remarks>1 byte flag</remarks>
|
||||
PDSEFlag = 0x005D,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved5E = 0x005E,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved5F = 0x005F,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved60 = 0x0060,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved61 = 0x0061,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved62 = 0x0062,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved63 = 0x0063,
|
||||
|
||||
/// <summary>
|
||||
/// Reserved
|
||||
/// <summary>
|
||||
Reserved64 = 0x0064,
|
||||
|
||||
/// <summary>
|
||||
/// Last Date Referenced
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes Packed Hex "yyyymmdd"</remarks>
|
||||
LastDateReferenced = 0x0065,
|
||||
|
||||
/// <summary>
|
||||
/// Date Created
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes Packed Hex "yyyymmdd"</remarks>
|
||||
DateCreated = 0x0066,
|
||||
|
||||
/// <summary>
|
||||
/// GZIP two words
|
||||
/// <summary>
|
||||
/// </remarks>8 bytes</remarks>
|
||||
GZIPTwoWords = 0x0068,
|
||||
|
||||
/// <summary>
|
||||
/// Extended NOTE Location
|
||||
/// <summary>
|
||||
/// </remarks>12 bytes Big Endian</remarks>
|
||||
ExtendedNOTELocation = 0x0071,
|
||||
|
||||
/// <summary>
|
||||
/// Archive device UNIT
|
||||
/// <summary>
|
||||
/// </remarks>6 bytes EBCDIC</remarks>
|
||||
ArchiveDeviceUNIT = 0x0072,
|
||||
|
||||
/// <summary>
|
||||
/// Archive 1st Volume
|
||||
/// <summary>
|
||||
/// </remarks>6 bytes EBCDIC</remarks>
|
||||
ArchiveFirstVolume = 0x0073,
|
||||
|
||||
/// <summary>
|
||||
/// Archive 1st VOL File Seq#
|
||||
/// <summary>
|
||||
/// </remarks>2 bytes Binary</remarks>
|
||||
ArchiveFirstVolFileSeqNum = 0x0074,
|
||||
|
||||
/// <summary>
|
||||
/// Native I/O Flags
|
||||
/// <summary>
|
||||
/// </remarks>2 bytes</remarks>
|
||||
NativeIOFlags = 0x0075,
|
||||
|
||||
/// <summary>
|
||||
/// Unix File Type
|
||||
/// <summary>
|
||||
/// </remarks>1 byte enumerated</remarks>
|
||||
UnixFileType = 0x0081,
|
||||
|
||||
/// <summary>
|
||||
/// Unix File Format
|
||||
/// <summary>
|
||||
/// </remarks>1 byte enumerated</remarks>
|
||||
UnixFileFormat = 0x0082,
|
||||
|
||||
/// <summary>
|
||||
/// Unix File Character Set Tag Info
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes</remarks>
|
||||
UnixFileCharacterSetTagInfo = 0x0083,
|
||||
|
||||
/// <summary>
|
||||
/// ZIP Environmental Processing Info
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes</remarks>
|
||||
ZIPEnvironmentalProcessingInfo = 0x0090,
|
||||
|
||||
/// <summary>
|
||||
/// EAV EATTR Flags
|
||||
/// <summary>
|
||||
/// </remarks>1 byte</remarks>
|
||||
EAVEATTRFlags = 0x0091,
|
||||
|
||||
/// <summary>
|
||||
/// DSNTYPE Flags
|
||||
/// <summary>
|
||||
/// </remarks>1 byte</remarks>
|
||||
DSNTYPEFlags = 0x0092,
|
||||
|
||||
/// <summary>
|
||||
/// Total Space Allocation (Cyls)
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes Big Endian</remarks>
|
||||
TotalSpaceAllocationCyls = 0x0093,
|
||||
|
||||
/// <summary>
|
||||
/// NONVSAM DSORG
|
||||
/// <summary>
|
||||
/// </remarks>2 bytes</remarks>
|
||||
NONVSAMDSORG = 0x009D,
|
||||
|
||||
/// <summary>
|
||||
/// Program Virtual Object Info
|
||||
/// <summary>
|
||||
/// </remarks>3 bytes</remarks>
|
||||
ProgramVirtualObjectInfo = 0x009E,
|
||||
|
||||
/// <summary>
|
||||
/// Encapsulated file Info
|
||||
/// <summary>
|
||||
/// </remarks>9 bytes</remarks>
|
||||
EncapsulatedFileInfo = 0x009F,
|
||||
|
||||
/// <summary>
|
||||
/// Cluster Log
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes Binary</remarks>
|
||||
ClusterLog = 0x00A2,
|
||||
|
||||
/// <summary>
|
||||
/// Cluster LSID Length
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes Binary</remarks>
|
||||
ClusterLSIDLength = 0x00A3,
|
||||
|
||||
/// <summary>
|
||||
/// Cluster LSID
|
||||
/// <summary>
|
||||
/// </remarks>26 bytes EBCDIC</remarks>
|
||||
ClusterLSID = 0x00A4,
|
||||
|
||||
/// <summary>
|
||||
/// Unix File Creation Time
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes</remarks>
|
||||
UnixFileCreationTime = 0x400C,
|
||||
|
||||
/// <summary>
|
||||
/// Unix File Access Time
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes</remarks>
|
||||
UnixFileAccessTime = 0x400D,
|
||||
|
||||
/// <summary>
|
||||
/// Unix File Modification time
|
||||
/// <summary>
|
||||
/// </remarks>4 bytes</remarks>
|
||||
UnixFileModificationTime = 0x400E,
|
||||
|
||||
/// <summary>
|
||||
/// IBMCMPSC Compression Info
|
||||
/// <summary>
|
||||
/// </remarks>variable</remarks>
|
||||
IBMCMPSCCompressionInfo = 0x4101,
|
||||
|
||||
/// <summary>
|
||||
/// IBMCMPSC Compression Size
|
||||
/// <summary>
|
||||
/// </remarks>8 bytes Big Endian</remarks>
|
||||
IBMCMPSCCompressionSize = 0x4102,
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace SabreTools.Models.PKZIP
|
||||
{
|
||||
/// <summary>
|
||||
/// TThe following is the layout of the Policy Key Data "extra" block.
|
||||
/// The following is the layout of the Policy Key Data "extra" block.
|
||||
/// TData is a variable length, variable content field. It holds
|
||||
/// information about encryptions and/or encryption key sources.
|
||||
/// Contact PKWARE for information on current TData structures.
|
||||
|
||||
26
PKZIP/ZOSExtraFieldAttribute.cs
Normal file
26
PKZIP/ZOSExtraFieldAttribute.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
namespace SabreTools.Models.PKZIP
|
||||
{
|
||||
/// <summary>
|
||||
/// z/OS Extra Field (0x0065) Attribute [APPENDIX B]
|
||||
/// </summary>
|
||||
/// <see href="https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT"/>
|
||||
public class ZOSExtraFieldAttribute : ExtensibleDataField
|
||||
{
|
||||
/// <summary>
|
||||
/// Field length including length
|
||||
/// </summary>
|
||||
/// <remarks>Big-endian</remarks>
|
||||
public ushort FieldLength { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Field code
|
||||
/// </summary>
|
||||
public ZOSExtraFieldAttributeFieldCode FieldCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Data
|
||||
/// </summary>
|
||||
/// <remarks>Variable byte length based on field code</remarks>
|
||||
public byte[]? Data { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user