public static string PrettifyAACSDataKeys(AACSDataKeys?AACSDKResponse) { if (AACSDKResponse == null) { return(null); } AACSDataKeys response = AACSDKResponse.Value; StringBuilder sb = new StringBuilder(); #if DEBUG if (response.Reserved1 != 0) { sb.AppendFormat("Reserved1 = 0x{0:X2}", response.Reserved1).AppendLine(); } if (response.Reserved2 != 0) { sb.AppendFormat("Reserved2 = 0x{0:X2}", response.Reserved2).AppendLine(); } #endif sb.AppendFormat("AACS Data Keys in hex follows:"); sb.AppendLine(PrintHex.ByteArrayToHexArrayString(response.DataKeys, 80)); return(sb.ToString()); }
public static AACSDataKeys? DecodeAACSDataKeys(byte[] AACSDKResponse) { if(AACSDKResponse == null) return null; var decoded = new AACSDataKeys(); decoded.DataKeys = new byte[AACSDKResponse.Length - 4]; decoded.DataLength = BigEndianBitConverter.ToUInt16(AACSDKResponse, 0); decoded.Reserved1 = AACSDKResponse[2]; decoded.Reserved2 = AACSDKResponse[3]; Array.Copy(AACSDKResponse, 4, decoded.DataKeys, 0, AACSDKResponse.Length - 4); return decoded; }