シナリオ:オフラインで公開されるSilverlight 5 OOBアプリケーション(DVD ROM)があります。このアプリケーションは、いくつかの教育コンテンツのメディアプレーヤーとして機能します。 DVD ROMに同梱されているビデオファイルを保護するため、各ユーザーに固有のキーでビデオファイルを暗号化し、コンテンツを出荷し、再生が必要なときに解読することに決めました。MediaStreamSourceおよびCryptoStream
問題:メディアをオンザフライで復号化するのはどのように可能ですか?私はメモリと性能の問題のためにファイル全体を一度に解読したくない。 MediaElement
がタイプストリームのソースをサポートしていますが、私はCryptoStream
を使用してビデオファイルを復号化し、MediaElement.SetSource
メソッドに渡したときに、次の例外がスローされます。
{System.Windows.Media.DrmException: 3121 3121 An error has occurred.
at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
at MS.Internal.XcpImports.MediaElement_SetStreamSource(MediaElement element, Stream stream)
at System.Windows.Controls.MediaElement.SetSource(Stream stream)
at SilverlightApplication4.MainPage.button1_Click(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)}
私は、AESのalorithmを使用cryptographics操作のためのAesManaged
クラスです。
ありがとうございます。
ここで、AESキーの保管を計画していますか?それがビデオと共にディスク上にあるならば、あなたは本当にあなた自身を守っているわけではありません。 –