diff --git a/SabreTools.Serialization/Models/AACS/CopyrightRecord.cs b/SabreTools.Serialization/Models/AACS/CopyrightRecord.cs index 6724a552..1be349af 100644 --- a/SabreTools.Serialization/Models/AACS/CopyrightRecord.cs +++ b/SabreTools.Serialization/Models/AACS/CopyrightRecord.cs @@ -11,6 +11,6 @@ namespace SabreTools.Data.Models.AACS /// Null-terminated ASCII string representing the copyright /// [MarshalAs(UnmanagedType.LPStr)] - public string? Copyright; + public string Copyright; } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/DriveRevocationListRecord.cs b/SabreTools.Serialization/Models/AACS/DriveRevocationListRecord.cs index 8306927e..4ef5da19 100644 --- a/SabreTools.Serialization/Models/AACS/DriveRevocationListRecord.cs +++ b/SabreTools.Serialization/Models/AACS/DriveRevocationListRecord.cs @@ -4,7 +4,7 @@ namespace SabreTools.Data.Models.AACS /// A properly formatted type 3 or type 4 Media Key Block contains exactly /// one Drive Revocation List Record. It follows the Host Revocation List /// Record, although it may not immediately follow it. - /// + /// /// The Drive Revocation List Record is identical to the Host Revocation /// List Record, except it has type 2016, and it contains Drive Revocation /// List Entries, not Host Revocation List Entries. The Drive Revocation List @@ -21,6 +21,6 @@ namespace SabreTools.Data.Models.AACS /// /// Revocation list entries /// - public DriveRevocationSignatureBlock[]? SignatureBlocks { get; set; } + public DriveRevocationSignatureBlock[] SignatureBlocks { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/DriveRevocationSignatureBlock.cs b/SabreTools.Serialization/Models/AACS/DriveRevocationSignatureBlock.cs index efd69854..8bd7d246 100644 --- a/SabreTools.Serialization/Models/AACS/DriveRevocationSignatureBlock.cs +++ b/SabreTools.Serialization/Models/AACS/DriveRevocationSignatureBlock.cs @@ -12,6 +12,6 @@ namespace SabreTools.Data.Models.AACS /// A list of 8-byte Host Drive List Entry fields, the length of this /// list being equal to the number in the signature block. /// - public DriveRevocationListEntry[]? EntryFields { get; set; } + public DriveRevocationListEntry[] EntryFields { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/Enums.cs b/SabreTools.Serialization/Models/AACS/Enums.cs index 108adc39..55bf06c7 100644 --- a/SabreTools.Serialization/Models/AACS/Enums.cs +++ b/SabreTools.Serialization/Models/AACS/Enums.cs @@ -66,4 +66,4 @@ namespace SabreTools.Data.Models.AACS VerifyMediaKey_AACS2 = 0x86, EmptyRecord0xF8_AACS2 = 0xF8, } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/ExplicitSubsetDifferenceRecord.cs b/SabreTools.Serialization/Models/AACS/ExplicitSubsetDifferenceRecord.cs index 0a82b27c..41a907d8 100644 --- a/SabreTools.Serialization/Models/AACS/ExplicitSubsetDifferenceRecord.cs +++ b/SabreTools.Serialization/Models/AACS/ExplicitSubsetDifferenceRecord.cs @@ -6,6 +6,6 @@ namespace SabreTools.Data.Models.AACS /// /// In this record, each subset-difference is encoded with 5 bytes. /// - public SubsetDifference[]? SubsetDifferences { get; set; } + public SubsetDifference[] SubsetDifferences { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/HostRevocationListRecord.cs b/SabreTools.Serialization/Models/AACS/HostRevocationListRecord.cs index 71e60e32..7f2f2e09 100644 --- a/SabreTools.Serialization/Models/AACS/HostRevocationListRecord.cs +++ b/SabreTools.Serialization/Models/AACS/HostRevocationListRecord.cs @@ -24,6 +24,6 @@ namespace SabreTools.Data.Models.AACS /// /// Revocation list entries /// - public HostRevocationSignatureBlock[]? SignatureBlocks { get; set; } + public HostRevocationSignatureBlock[] SignatureBlocks { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/HostRevocationSignatureBlock.cs b/SabreTools.Serialization/Models/AACS/HostRevocationSignatureBlock.cs index 99e8ad72..94885a73 100644 --- a/SabreTools.Serialization/Models/AACS/HostRevocationSignatureBlock.cs +++ b/SabreTools.Serialization/Models/AACS/HostRevocationSignatureBlock.cs @@ -12,6 +12,6 @@ namespace SabreTools.Data.Models.AACS /// A list of 8-byte Host Revocation List Entry fields, the length of this /// list being equal to the number in the signature block. /// - public HostRevocationListEntry[]? EntryFields { get; set; } + public HostRevocationListEntry[] EntryFields { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/MediaKeyBlock.cs b/SabreTools.Serialization/Models/AACS/MediaKeyBlock.cs index b51de9a9..3f0b8614 100644 --- a/SabreTools.Serialization/Models/AACS/MediaKeyBlock.cs +++ b/SabreTools.Serialization/Models/AACS/MediaKeyBlock.cs @@ -9,6 +9,6 @@ namespace SabreTools.Data.Models.AACS /// /// Records /// - public Record[]? Records { get; set; } + public Record[] Records { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/MediaKeyDataRecord.cs b/SabreTools.Serialization/Models/AACS/MediaKeyDataRecord.cs index de151b51..22037d5f 100644 --- a/SabreTools.Serialization/Models/AACS/MediaKeyDataRecord.cs +++ b/SabreTools.Serialization/Models/AACS/MediaKeyDataRecord.cs @@ -13,6 +13,6 @@ namespace SabreTools.Data.Models.AACS /// record. This 16 bytes is the ciphertext value C in the media /// key calculation. /// - public byte[][]? MediaKeyData { get; set; } + public byte[][] MediaKeyData { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/Record.cs b/SabreTools.Serialization/Models/AACS/Record.cs index d7c7ce3e..877ec807 100644 --- a/SabreTools.Serialization/Models/AACS/Record.cs +++ b/SabreTools.Serialization/Models/AACS/Record.cs @@ -2,8 +2,8 @@ namespace SabreTools.Data.Models.AACS { /// /// Each Record begins with a one-byte Record Type field, followed by a - /// three-byte Record Length field. - /// + /// three-byte Record Length field. + /// /// The following subsections describe the currently defined Record types, /// and how a device processes each. All multi-byte integers, including /// the length field, are “Big Endian”; in other words, the most significant @@ -25,4 +25,4 @@ namespace SabreTools.Data.Models.AACS // UInt24 not UInt32 public uint RecordLength { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/SubsetDifference.cs b/SabreTools.Serialization/Models/AACS/SubsetDifference.cs index 39a86247..556e325f 100644 --- a/SabreTools.Serialization/Models/AACS/SubsetDifference.cs +++ b/SabreTools.Serialization/Models/AACS/SubsetDifference.cs @@ -20,4 +20,4 @@ namespace SabreTools.Data.Models.AACS /// public uint Number; } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/SubsetDifferenceIndexRecord.cs b/SabreTools.Serialization/Models/AACS/SubsetDifferenceIndexRecord.cs index 2fc39512..d87068df 100644 --- a/SabreTools.Serialization/Models/AACS/SubsetDifferenceIndexRecord.cs +++ b/SabreTools.Serialization/Models/AACS/SubsetDifferenceIndexRecord.cs @@ -21,6 +21,6 @@ namespace SabreTools.Data.Models.AACS /// Subset-Difference record, with 0 being the start of the record. /// // UInt24 not UInt32 - public uint[]? Offsets { get; set; } + public uint[] Offsets { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/TypeAndVersionRecord.cs b/SabreTools.Serialization/Models/AACS/TypeAndVersionRecord.cs index 240b2396..4fddc750 100644 --- a/SabreTools.Serialization/Models/AACS/TypeAndVersionRecord.cs +++ b/SabreTools.Serialization/Models/AACS/TypeAndVersionRecord.cs @@ -29,4 +29,4 @@ namespace SabreTools.Data.Models.AACS /// public uint VersionNumber { get; set; } } -} \ No newline at end of file +} diff --git a/SabreTools.Serialization/Models/AACS/VerifyMediaKeyRecord.cs b/SabreTools.Serialization/Models/AACS/VerifyMediaKeyRecord.cs index 03780af7..a475f093 100644 --- a/SabreTools.Serialization/Models/AACS/VerifyMediaKeyRecord.cs +++ b/SabreTools.Serialization/Models/AACS/VerifyMediaKeyRecord.cs @@ -19,6 +19,7 @@ namespace SabreTools.Data.Models.AACS /// where 0xXXXXXXXXXXXXXXXX is an arbitrary 8-byte value, and Km is /// the correct final Media Key value. /// + /// 0x10 bytes public byte[] CiphertextValue { get; set; } = new byte[0x10]; } } diff --git a/SabreTools.Serialization/Wrappers/AACSMediaKeyBlock.Printing.cs b/SabreTools.Serialization/Wrappers/AACSMediaKeyBlock.Printing.cs index dd8c438d..a6d214d8 100644 --- a/SabreTools.Serialization/Wrappers/AACSMediaKeyBlock.Printing.cs +++ b/SabreTools.Serialization/Wrappers/AACSMediaKeyBlock.Printing.cs @@ -21,11 +21,11 @@ namespace SabreTools.Serialization.Wrappers Print(builder, Model.Records); } - private static void Print(StringBuilder builder, Record[]? records) + private static void Print(StringBuilder builder, Record[] records) { builder.AppendLine(" Records Information:"); builder.AppendLine(" -------------------------"); - if (records == null || records.Length == 0) + if (records.Length == 0) { builder.AppendLine(" No records"); builder.AppendLine(); @@ -94,7 +94,7 @@ namespace SabreTools.Serialization.Wrappers { builder.AppendLine(" Subset Differences:"); builder.AppendLine(" -------------------------"); - if (record?.SubsetDifferences == null || record.SubsetDifferences.Length == 0) + if (record.SubsetDifferences.Length == 0) { builder.AppendLine(" No subset differences"); return; @@ -114,7 +114,7 @@ namespace SabreTools.Serialization.Wrappers { builder.AppendLine(" Media Keys:"); builder.AppendLine(" -------------------------"); - if (record?.MediaKeyData == null || record.MediaKeyData.Length == 0) + if (record.MediaKeyData.Length == 0) { builder.AppendLine(" No media keys"); return; @@ -132,7 +132,7 @@ namespace SabreTools.Serialization.Wrappers builder.AppendLine($" Span: {record.Span} (0x{record.Span:X})"); builder.AppendLine(" Offsets:"); builder.AppendLine(" -------------------------"); - if (record.Offsets == null || record.Offsets.Length == 0) + if (record.Offsets.Length == 0) { builder.AppendLine(" No offsets"); return; @@ -156,7 +156,7 @@ namespace SabreTools.Serialization.Wrappers builder.AppendLine(record.TotalNumberOfEntries, " Total number of entries"); builder.AppendLine(" Signature Blocks:"); builder.AppendLine(" -------------------------"); - if (record.SignatureBlocks == null || record.SignatureBlocks.Length == 0) + if (record.SignatureBlocks.Length == 0) { builder.AppendLine(" No signature blocks"); return; @@ -170,7 +170,7 @@ namespace SabreTools.Serialization.Wrappers builder.AppendLine(block.NumberOfEntries, " Number of entries"); builder.AppendLine(" Entry Fields:"); builder.AppendLine(" -------------------------"); - if (block.EntryFields == null || block.EntryFields.Length == 0) + if (block.EntryFields.Length == 0) { builder.AppendLine(" No entry fields"); continue; @@ -192,7 +192,7 @@ namespace SabreTools.Serialization.Wrappers builder.AppendLine($" Total number of entries: {record.TotalNumberOfEntries} (0x{record.TotalNumberOfEntries:X})"); builder.AppendLine(" Signature Blocks:"); builder.AppendLine(" -------------------------"); - if (record.SignatureBlocks == null || record.SignatureBlocks.Length == 0) + if (record.SignatureBlocks.Length == 0) { builder.AppendLine(" No signature blocks"); return; @@ -206,7 +206,7 @@ namespace SabreTools.Serialization.Wrappers builder.AppendLine(block.NumberOfEntries, " Number of entries"); builder.AppendLine(" Entry Fields:"); builder.AppendLine(" -------------------------"); - if (block.EntryFields == null || block.EntryFields.Length == 0) + if (block.EntryFields.Length == 0) { builder.AppendLine(" No entry fields"); continue; diff --git a/SabreTools.Serialization/Wrappers/AACSMediaKeyBlock.cs b/SabreTools.Serialization/Wrappers/AACSMediaKeyBlock.cs index 38cc765e..0c429e68 100644 --- a/SabreTools.Serialization/Wrappers/AACSMediaKeyBlock.cs +++ b/SabreTools.Serialization/Wrappers/AACSMediaKeyBlock.cs @@ -18,7 +18,7 @@ namespace SabreTools.Serialization.Wrappers /// /// Media key block records /// - public Record[] Records => Model.Records ?? []; + public Record[] Records => Model.Records; /// /// Reported version of the media key block