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