shaka-packager/docs/dd/d58/crypto__params_8h_source.html

296 lines
58 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Shaka Packager SDK: packager/media/public/crypto_params.h Source File</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Shaka Packager SDK
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="../../dir_3f8eec2fc361645de4b1ec14c19fffc7.html">packager</a></li><li class="navelem"><a class="el" href="../../dir_f99dae54fe7170f791f339b952d5067a.html">media</a></li><li class="navelem"><a class="el" href="../../dir_588b87f799233a7c3afc1168633bb252.html">public</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">crypto_params.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Copyright 2017 Google Inc. All rights reserved.</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// Use of this source code is governed by a BSD-style</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// license that can be found in the LICENSE file or at</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// https://developers.google.com/open-source/licenses/bsd</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#ifndef PACKAGER_MEDIA_PUBLIC_CRYPTO_PARAMS_H_</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define PACKAGER_MEDIA_PUBLIC_CRYPTO_PARAMS_H_</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; </div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;packager/status.h&quot;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">namespace </span><a class="code" href="../../d8/daf/namespaceshaka.html">shaka</a> {</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="../../d8/daf/namespaceshaka.html#a539b99ce5c34193e294bc544437e9185"> 21</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="../../d8/daf/namespaceshaka.html#a539b99ce5c34193e294bc544437e9185">KeyProvider</a> {</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; kNone,</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; kRawKey,</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; kWidevine,</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; kPlayReady,</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;};</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac"> 31</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> : uint16_t {</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; kNone = 0,</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673aca4a8a926ca6c8454f8249deec51b47e66">kCommon</a> = (1 &lt;&lt; 0),</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; kWidevine = (1 &lt;&lt; 1),</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; kPlayReady = (1 &lt;&lt; 2),</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; kFairPlay = (1 &lt;&lt; 3),</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; kMarlin = (1 &lt;&lt; 4),</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;};</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">inline</span> <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> operator|(<a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> a, <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> b) {</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a><span class="keyword">&gt;</span>(<span class="keyword">static_cast&lt;</span>uint16_t<span class="keyword">&gt;</span>(a) |</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">static_cast&lt;</span>uint16_t<span class="keyword">&gt;</span>(b));</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">inline</span> <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a>&amp; operator|=(<a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a>&amp; a, <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> b) {</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> a = a | b;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">inline</span> <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> operator&amp;(<a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> a, <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> b) {</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a><span class="keyword">&gt;</span>(<span class="keyword">static_cast&lt;</span>uint16_t<span class="keyword">&gt;</span>(a) &amp;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static_cast&lt;</span>uint16_t<span class="keyword">&gt;</span>(b));</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">inline</span> <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a>&amp; operator&amp;=(<a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a>&amp; a, <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> b) {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> a = a &amp; b;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">inline</span> <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> operator~(<a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> a) {</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a><span class="keyword">&gt;</span>(~static_cast&lt;uint16_t&gt;(a));</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> has_flag(<a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> value, <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> flag) {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> (value &amp; flag) == flag;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="../../df/d22/structshaka_1_1WidevineSigner.html"> 63</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../df/d22/structshaka_1_1WidevineSigner.html">WidevineSigner</a> {</div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="../../df/d22/structshaka_1_1WidevineSigner.html#a6768d5addb3c90f33ce5f241705c827e"> 65</a></span>&#160; std::string <a class="code" href="../../df/d22/structshaka_1_1WidevineSigner.html#a6768d5addb3c90f33ce5f241705c827e">signer_name</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">enum class</span> SigningKeyType {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; kNone,</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; kAes,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; kRsa,</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; };</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="../../df/d22/structshaka_1_1WidevineSigner.html#a656fbc14799c96fa8b822e3917070cf6"> 74</a></span>&#160; SigningKeyType <a class="code" href="../../df/d22/structshaka_1_1WidevineSigner.html#a656fbc14799c96fa8b822e3917070cf6">signing_key_type</a> = SigningKeyType::kNone;</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="../../df/d22/structshaka_1_1WidevineSigner.html#ad5c378d29df509280d8697f986163324"> 77</a></span>&#160; std::vector&lt;uint8_t&gt; <a class="code" href="../../df/d22/structshaka_1_1WidevineSigner.html#ad5c378d29df509280d8697f986163324">key</a>;</div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="../../df/d22/structshaka_1_1WidevineSigner.html#a6db96d4c3f1189bbd09515732bec94d9"> 79</a></span>&#160; std::vector&lt;uint8_t&gt; <a class="code" href="../../df/d22/structshaka_1_1WidevineSigner.html#a6db96d4c3f1189bbd09515732bec94d9">iv</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; } aes;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="../../df/d22/structshaka_1_1WidevineSigner.html#a25bb558aa06563d24c3d7f9733ff8898"> 83</a></span>&#160; std::string <a class="code" href="../../df/d22/structshaka_1_1WidevineSigner.html#a25bb558aa06563d24c3d7f9733ff8898">key</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; } rsa;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;};</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html">WidevineEncryptionParams</a> {</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#ac222c5bd0620e5a6f9bf5e9fec534fb9"> 90</a></span>&#160; std::string <a class="code" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#ac222c5bd0620e5a6f9bf5e9fec534fb9">key_server_url</a>;</div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6b9770524a9507d0a9a3606ceef23075"> 92</a></span>&#160; std::vector&lt;uint8_t&gt; <a class="code" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6b9770524a9507d0a9a3606ceef23075">content_id</a>;</div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a469f3db91b42af20f270a280c4d42b4f"> 94</a></span>&#160; std::string <a class="code" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a469f3db91b42af20f270a280c4d42b4f">policy</a>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a233141ad4baf2f2afce30f96adf340ae"> 96</a></span>&#160; <a class="code" href="../../df/d22/structshaka_1_1WidevineSigner.html">WidevineSigner</a> <a class="code" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a233141ad4baf2f2afce30f96adf340ae">signer</a>;</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6d69402cd4c66d546be180c7800e6d09"> 98</a></span>&#160; std::vector&lt;uint8_t&gt; <a class="code" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6d69402cd4c66d546be180c7800e6d09">group_id</a>;</div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a47239bcc571757930ba89e8831013234"> 100</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a47239bcc571757930ba89e8831013234">enable_entitlement_license</a>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;};</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html"> 106</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html">PlayReadyEncryptionParams</a> {</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#ac5298ee04e36296e8dd4b7a56e8bc464"> 108</a></span>&#160; std::string <a class="code" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#ac5298ee04e36296e8dd4b7a56e8bc464">key_server_url</a>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8716552505d244227bf93c4878071f2d"> 110</a></span>&#160; std::string <a class="code" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8716552505d244227bf93c4878071f2d">program_identifier</a>;</div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#aff3107b2636f730056c6c5a673376226"> 113</a></span>&#160; std::string <a class="code" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#aff3107b2636f730056c6c5a673376226">ca_file</a>;</div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8e3c7d3b038b602e09589e0fda0aad66"> 115</a></span>&#160; std::string <a class="code" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8e3c7d3b038b602e09589e0fda0aad66">client_cert_file</a>;</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a63e0f55b12ef1a0305bd51315322b153"> 117</a></span>&#160; std::string <a class="code" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a63e0f55b12ef1a0305bd51315322b153">client_cert_private_key_file</a>;</div>
<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a672dbcea4caa427b3fd83e1a2e329859"> 119</a></span>&#160; std::string <a class="code" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a672dbcea4caa427b3fd83e1a2e329859">client_cert_private_key_password</a>;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;};</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="../../d0/db4/structshaka_1_1RawKeyParams.html"> 123</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d0/db4/structshaka_1_1RawKeyParams.html">RawKeyParams</a> {</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="../../d0/db4/structshaka_1_1RawKeyParams.html#aab733ab6920dd8fbed523810e64ea3f1"> 127</a></span>&#160; std::vector&lt;uint8_t&gt; <a class="code" href="../../d0/db4/structshaka_1_1RawKeyParams.html#aab733ab6920dd8fbed523810e64ea3f1">iv</a>;</div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="../../d0/db4/structshaka_1_1RawKeyParams.html#a448b8c435fc86d4fbc85214e523f2ac5"> 131</a></span>&#160; std::vector&lt;uint8_t&gt; <a class="code" href="../../d0/db4/structshaka_1_1RawKeyParams.html#a448b8c435fc86d4fbc85214e523f2ac5">pssh</a>;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">using</span> StreamLabel = std::string;</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="../../d0/dbe/structshaka_1_1RawKeyParams_1_1KeyInfo.html"> 134</a></span>&#160; <span class="keyword">struct </span><a class="code" href="../../d0/dbe/structshaka_1_1RawKeyParams_1_1KeyInfo.html">KeyInfo</a> {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; std::vector&lt;uint8_t&gt; key_id;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; std::vector&lt;uint8_t&gt; key;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; std::vector&lt;uint8_t&gt; iv;</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; };</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="../../d0/db4/structshaka_1_1RawKeyParams.html#a14e44fed95583d0bb319c082fb1ddb84"> 142</a></span>&#160; std::map&lt;StreamLabel, KeyInfo&gt; <a class="code" href="../../d0/db4/structshaka_1_1RawKeyParams.html#a14e44fed95583d0bb319c082fb1ddb84">key_map</a>;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;};</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html"> 146</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html">EncryptionParams</a> {</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#adcf61ebf8d129a5bcf3f159b9b076eed"> 150</a></span>&#160; <a class="code" href="../../d8/daf/namespaceshaka.html#a539b99ce5c34193e294bc544437e9185">KeyProvider</a> <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#adcf61ebf8d129a5bcf3f159b9b076eed">key_provider</a> = KeyProvider::kNone;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// Only one of the three fields is valid.</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html">WidevineEncryptionParams</a> widevine;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html">PlayReadyEncryptionParams</a> playready;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="../../d0/db4/structshaka_1_1RawKeyParams.html">RawKeyParams</a> raw_key;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a8e1877b4a4cbd071b6bd68c54341f8bc"> 157</a></span>&#160; <a class="code" href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">ProtectionSystem</a> <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a8e1877b4a4cbd071b6bd68c54341f8bc">protection_systems</a>;</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a750b46e3c52157c6a05ff074d4355833"> 159</a></span>&#160; std::string <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a750b46e3c52157c6a05ff074d4355833">playready_extra_header_data</a>;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a1ad46963dc926aa4b72813dccb3f6a45"> 162</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a1ad46963dc926aa4b72813dccb3f6a45">clear_lead_in_seconds</a> = 0;</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a1d7a8c6b5e46b51ccadcaef3f9cf9cb0"> 164</a></span>&#160; <span class="keyword">static</span> constexpr uint32_t <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a1d7a8c6b5e46b51ccadcaef3f9cf9cb0">kProtectionSchemeCenc</a> = 0x63656E63;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">static</span> constexpr uint32_t kProtectionSchemeCbc1 = 0x63626331;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">static</span> constexpr uint32_t kProtectionSchemeCens = 0x63656E73;</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">static</span> constexpr uint32_t kProtectionSchemeCbcs = 0x63626373;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; uint32_t protection_scheme = <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a1d7a8c6b5e46b51ccadcaef3f9cf9cb0">kProtectionSchemeCenc</a>;</div>
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a87b1deb1705f07c01efa69f14260e0af"> 174</a></span>&#160; uint8_t <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a87b1deb1705f07c01efa69f14260e0af">crypt_byte_block</a> = 1;</div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#afa236ca5a091603c2bc6d28b1f84d816"> 178</a></span>&#160; uint8_t <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#afa236ca5a091603c2bc6d28b1f84d816">skip_byte_block</a> = 9;</div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a92ad4ca8e1ccb7d6b5fa2ee0b1b196fa"> 181</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keywordtype">double</span> <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a92ad4ca8e1ccb7d6b5fa2ee0b1b196fa">kNoKeyRotation</a> = 0;</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">double</span> crypto_period_duration_in_seconds = <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a92ad4ca8e1ccb7d6b5fa2ee0b1b196fa">kNoKeyRotation</a>;</div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a48d415f17d51306ce7e1931fd954c37c"> 184</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a48d415f17d51306ce7e1931fd954c37c">vp9_subsample_encryption</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="../../d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html"> 187</a></span>&#160; <span class="keyword">struct </span><a class="code" href="../../d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html">EncryptedStreamAttributes</a> {</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">enum</span> StreamType {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; kUnknown,</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; kVideo,</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; kAudio,</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; };</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; StreamType stream_type = kUnknown;</div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="../../d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html"> 195</a></span>&#160; <span class="keyword">union </span><a class="code" href="../../d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html">OneOf</a> {</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="../../d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html">OneOf</a>() {}</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">int</span> width = 0;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">int</span> height = 0;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">float</span> frame_rate = 0;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">int</span> bit_depth = 0;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; } video;</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordtype">int</span> number_of_channels = 0;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; } audio;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; } oneof;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; };</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; std::function&lt;std::string(<span class="keyword">const</span> <a class="code" href="../../d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html">EncryptedStreamAttributes</a>&amp; stream_attributes)&gt;</div>
<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a7686a6aca6a7c3d077a5d7215c39fc51"> 216</a></span>&#160; <a class="code" href="../../dc/da0/structshaka_1_1EncryptionParams.html#a7686a6aca6a7c3d077a5d7215c39fc51">stream_label_func</a>;</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;};</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html"> 220</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html">WidevineDecryptionParams</a> {</div>
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html#adb765979bcc7f63ce46c9ed6ead1ee5b"> 222</a></span>&#160; std::string <a class="code" href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html#adb765979bcc7f63ce46c9ed6ead1ee5b">key_server_url</a>;</div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html#acf84772bb9787f61110e388490412939"> 224</a></span>&#160; <a class="code" href="../../df/d22/structshaka_1_1WidevineSigner.html">WidevineSigner</a> <a class="code" href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html#acf84772bb9787f61110e388490412939">signer</a>;</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;};</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="../../d1/d4f/structshaka_1_1DecryptionParams.html"> 228</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d1/d4f/structshaka_1_1DecryptionParams.html">DecryptionParams</a> {</div>
<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="../../d1/d4f/structshaka_1_1DecryptionParams.html#ad93d153f9e777cccb6404611d5b4d339"> 232</a></span>&#160; <a class="code" href="../../d8/daf/namespaceshaka.html#a539b99ce5c34193e294bc544437e9185">KeyProvider</a> <a class="code" href="../../d1/d4f/structshaka_1_1DecryptionParams.html#ad93d153f9e777cccb6404611d5b4d339">key_provider</a> = KeyProvider::kNone;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// Only one of the two fields is valid.</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html">WidevineDecryptionParams</a> widevine;</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="../../d0/db4/structshaka_1_1RawKeyParams.html">RawKeyParams</a> raw_key;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;};</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;} <span class="comment">// namespace shaka</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#endif // PACKAGER_MEDIA_PUBLIC_CRYPTO_PARAMS_H_</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructshaka_1_1WidevineDecryptionParams_html_acf84772bb9787f61110e388490412939"><div class="ttname"><a href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html#acf84772bb9787f61110e388490412939">shaka::WidevineDecryptionParams::signer</a></div><div class="ttdeci">WidevineSigner signer</div><div class="ttdoc">Signer credential for Widevine license / key server.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00224">crypto_params.h:224</a></div></div>
<div class="ttc" id="astructshaka_1_1PlayReadyEncryptionParams_html_a63e0f55b12ef1a0305bd51315322b153"><div class="ttname"><a href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a63e0f55b12ef1a0305bd51315322b153">shaka::PlayReadyEncryptionParams::client_cert_private_key_file</a></div><div class="ttdeci">std::string client_cert_private_key_file</div><div class="ttdoc">Absolute path to the private key file.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00117">crypto_params.h:117</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineEncryptionParams_html"><div class="ttname"><a href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html">shaka::WidevineEncryptionParams</a></div><div class="ttdoc">Widevine encryption parameters.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00088">crypto_params.h:88</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineDecryptionParams_html"><div class="ttname"><a href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html">shaka::WidevineDecryptionParams</a></div><div class="ttdoc">Widevine decryption parameters.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00220">crypto_params.h:220</a></div></div>
<div class="ttc" id="astructshaka_1_1DecryptionParams_html_ad93d153f9e777cccb6404611d5b4d339"><div class="ttname"><a href="../../d1/d4f/structshaka_1_1DecryptionParams.html#ad93d153f9e777cccb6404611d5b4d339">shaka::DecryptionParams::key_provider</a></div><div class="ttdeci">KeyProvider key_provider</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00232">crypto_params.h:232</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineDecryptionParams_html_adb765979bcc7f63ce46c9ed6ead1ee5b"><div class="ttname"><a href="../../d8/d48/structshaka_1_1WidevineDecryptionParams.html#adb765979bcc7f63ce46c9ed6ead1ee5b">shaka::WidevineDecryptionParams::key_server_url</a></div><div class="ttdeci">std::string key_server_url</div><div class="ttdoc">Widevine license / key server URL.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00222">crypto_params.h:222</a></div></div>
<div class="ttc" id="astructshaka_1_1PlayReadyEncryptionParams_html_a672dbcea4caa427b3fd83e1a2e329859"><div class="ttname"><a href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a672dbcea4caa427b3fd83e1a2e329859">shaka::PlayReadyEncryptionParams::client_cert_private_key_password</a></div><div class="ttdeci">std::string client_cert_private_key_password</div><div class="ttdoc">Password to the private key file.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00119">crypto_params.h:119</a></div></div>
<div class="ttc" id="anamespaceshaka_html_aadc0cc211185374c4bf219da325673aca4a8a926ca6c8454f8249deec51b47e66"><div class="ttname"><a href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673aca4a8a926ca6c8454f8249deec51b47e66">shaka::ProtectionSystem::kCommon</a></div><div class="ttdeci">@ kCommon</div><div class="ttdoc">The common key system from EME: https://goo.gl/s8RIhr.</div></div>
<div class="ttc" id="astructshaka_1_1WidevineEncryptionParams_html_a47239bcc571757930ba89e8831013234"><div class="ttname"><a href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a47239bcc571757930ba89e8831013234">shaka::WidevineEncryptionParams::enable_entitlement_license</a></div><div class="ttdeci">bool enable_entitlement_license</div><div class="ttdoc">Enables entitlement license when set to true.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00100">crypto_params.h:100</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_a87b1deb1705f07c01efa69f14260e0af"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#a87b1deb1705f07c01efa69f14260e0af">shaka::EncryptionParams::crypt_byte_block</a></div><div class="ttdeci">uint8_t crypt_byte_block</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00174">crypto_params.h:174</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_html"><div class="ttname"><a href="../../d7/d6d/structshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes.html">shaka::EncryptionParams::EncryptedStreamAttributes</a></div><div class="ttdoc">Encrypted stream information that is used to determine stream label.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00187">crypto_params.h:187</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_a92ad4ca8e1ccb7d6b5fa2ee0b1b196fa"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#a92ad4ca8e1ccb7d6b5fa2ee0b1b196fa">shaka::EncryptionParams::kNoKeyRotation</a></div><div class="ttdeci">static constexpr double kNoKeyRotation</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00181">crypto_params.h:181</a></div></div>
<div class="ttc" id="anamespaceshaka_html"><div class="ttname"><a href="../../d8/daf/namespaceshaka.html">shaka</a></div><div class="ttdoc">All the methods that are virtual are virtual for mocking.</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/d15/gflags__hex__bytes_8cc_source.html#l00011">gflags_hex_bytes.cc:11</a></div></div>
<div class="ttc" id="astructshaka_1_1PlayReadyEncryptionParams_html_a8716552505d244227bf93c4878071f2d"><div class="ttname"><a href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8716552505d244227bf93c4878071f2d">shaka::PlayReadyEncryptionParams::program_identifier</a></div><div class="ttdeci">std::string program_identifier</div><div class="ttdoc">PlayReady program identifier.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00110">crypto_params.h:110</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_a1d7a8c6b5e46b51ccadcaef3f9cf9cb0"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#a1d7a8c6b5e46b51ccadcaef3f9cf9cb0">shaka::EncryptionParams::kProtectionSchemeCenc</a></div><div class="ttdeci">static constexpr uint32_t kProtectionSchemeCenc</div><div class="ttdoc">The protection scheme: &quot;cenc&quot;, &quot;cens&quot;, &quot;cbc1&quot;, &quot;cbcs&quot;.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00164">crypto_params.h:164</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_a8e1877b4a4cbd071b6bd68c54341f8bc"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#a8e1877b4a4cbd071b6bd68c54341f8bc">shaka::EncryptionParams::protection_systems</a></div><div class="ttdeci">ProtectionSystem protection_systems</div><div class="ttdoc">The protection systems to generate, multiple can be OR'd together.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00157">crypto_params.h:157</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineEncryptionParams_html_a6d69402cd4c66d546be180c7800e6d09"><div class="ttname"><a href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6d69402cd4c66d546be180c7800e6d09">shaka::WidevineEncryptionParams::group_id</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; group_id</div><div class="ttdoc">Group identifier, if present licenses will belong to this group.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00098">crypto_params.h:98</a></div></div>
<div class="ttc" id="astructshaka_1_1RawKeyParams_1_1KeyInfo_html"><div class="ttname"><a href="../../d0/dbe/structshaka_1_1RawKeyParams_1_1KeyInfo.html">shaka::RawKeyParams::KeyInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00134">crypto_params.h:134</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineSigner_html_a25bb558aa06563d24c3d7f9733ff8898"><div class="ttname"><a href="../../df/d22/structshaka_1_1WidevineSigner.html#a25bb558aa06563d24c3d7f9733ff8898">shaka::WidevineSigner::key</a></div><div class="ttdeci">std::string key</div><div class="ttdoc">RSA signing private key.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00083">crypto_params.h:83</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_adcf61ebf8d129a5bcf3f159b9b076eed"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#adcf61ebf8d129a5bcf3f159b9b076eed">shaka::EncryptionParams::key_provider</a></div><div class="ttdeci">KeyProvider key_provider</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00150">crypto_params.h:150</a></div></div>
<div class="ttc" id="astructshaka_1_1RawKeyParams_html_a14e44fed95583d0bb319c082fb1ddb84"><div class="ttname"><a href="../../d0/db4/structshaka_1_1RawKeyParams.html#a14e44fed95583d0bb319c082fb1ddb84">shaka::RawKeyParams::key_map</a></div><div class="ttdeci">std::map&lt; StreamLabel, KeyInfo &gt; key_map</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00142">crypto_params.h:142</a></div></div>
<div class="ttc" id="anamespaceshaka_html_a539b99ce5c34193e294bc544437e9185"><div class="ttname"><a href="../../d8/daf/namespaceshaka.html#a539b99ce5c34193e294bc544437e9185">shaka::KeyProvider</a></div><div class="ttdeci">KeyProvider</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00021">crypto_params.h:21</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineEncryptionParams_html_a469f3db91b42af20f270a280c4d42b4f"><div class="ttname"><a href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a469f3db91b42af20f270a280c4d42b4f">shaka::WidevineEncryptionParams::policy</a></div><div class="ttdeci">std::string policy</div><div class="ttdoc">The name of a stored policy, which specifies DRM content rights.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00094">crypto_params.h:94</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineSigner_html"><div class="ttname"><a href="../../df/d22/structshaka_1_1WidevineSigner.html">shaka::WidevineSigner</a></div><div class="ttdoc">Signer credential for Widevine license server.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00063">crypto_params.h:63</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineSigner_html_a6db96d4c3f1189bbd09515732bec94d9"><div class="ttname"><a href="../../df/d22/structshaka_1_1WidevineSigner.html#a6db96d4c3f1189bbd09515732bec94d9">shaka::WidevineSigner::iv</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; iv</div><div class="ttdoc">AES signing IV.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00079">crypto_params.h:79</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineSigner_html_a6768d5addb3c90f33ce5f241705c827e"><div class="ttname"><a href="../../df/d22/structshaka_1_1WidevineSigner.html#a6768d5addb3c90f33ce5f241705c827e">shaka::WidevineSigner::signer_name</a></div><div class="ttdeci">std::string signer_name</div><div class="ttdoc">Name of the signer / content provider.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00065">crypto_params.h:65</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_a750b46e3c52157c6a05ff074d4355833"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#a750b46e3c52157c6a05ff074d4355833">shaka::EncryptionParams::playready_extra_header_data</a></div><div class="ttdeci">std::string playready_extra_header_data</div><div class="ttdoc">Extra XML data to add to PlayReady data.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00159">crypto_params.h:159</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineSigner_html_ad5c378d29df509280d8697f986163324"><div class="ttname"><a href="../../df/d22/structshaka_1_1WidevineSigner.html#ad5c378d29df509280d8697f986163324">shaka::WidevineSigner::key</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; key</div><div class="ttdoc">AES signing key.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00077">crypto_params.h:77</a></div></div>
<div class="ttc" id="astructshaka_1_1RawKeyParams_html"><div class="ttname"><a href="../../d0/db4/structshaka_1_1RawKeyParams.html">shaka::RawKeyParams</a></div><div class="ttdoc">Raw key encryption/decryption parameters, i.e. with key parameters provided.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00123">crypto_params.h:123</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineEncryptionParams_html_ac222c5bd0620e5a6f9bf5e9fec534fb9"><div class="ttname"><a href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#ac222c5bd0620e5a6f9bf5e9fec534fb9">shaka::WidevineEncryptionParams::key_server_url</a></div><div class="ttdeci">std::string key_server_url</div><div class="ttdoc">Widevine license / key server URL.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00090">crypto_params.h:90</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_a48d415f17d51306ce7e1931fd954c37c"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#a48d415f17d51306ce7e1931fd954c37c">shaka::EncryptionParams::vp9_subsample_encryption</a></div><div class="ttdeci">bool vp9_subsample_encryption</div><div class="ttdoc">Enable/disable subsample encryption for VP9.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00184">crypto_params.h:184</a></div></div>
<div class="ttc" id="astructshaka_1_1PlayReadyEncryptionParams_html"><div class="ttname"><a href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html">shaka::PlayReadyEncryptionParams</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00106">crypto_params.h:106</a></div></div>
<div class="ttc" id="astructshaka_1_1PlayReadyEncryptionParams_html_aff3107b2636f730056c6c5a673376226"><div class="ttname"><a href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#aff3107b2636f730056c6c5a673376226">shaka::PlayReadyEncryptionParams::ca_file</a></div><div class="ttdeci">std::string ca_file</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00113">crypto_params.h:113</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineSigner_html_a656fbc14799c96fa8b822e3917070cf6"><div class="ttname"><a href="../../df/d22/structshaka_1_1WidevineSigner.html#a656fbc14799c96fa8b822e3917070cf6">shaka::WidevineSigner::signing_key_type</a></div><div class="ttdeci">SigningKeyType signing_key_type</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00074">crypto_params.h:74</a></div></div>
<div class="ttc" id="anamespaceshaka_html_aadc0cc211185374c4bf219da325673ac"><div class="ttname"><a href="../../d8/daf/namespaceshaka.html#aadc0cc211185374c4bf219da325673ac">shaka::ProtectionSystem</a></div><div class="ttdeci">ProtectionSystem</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00031">crypto_params.h:31</a></div></div>
<div class="ttc" id="astructshaka_1_1PlayReadyEncryptionParams_html_a8e3c7d3b038b602e09589e0fda0aad66"><div class="ttname"><a href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#a8e3c7d3b038b602e09589e0fda0aad66">shaka::PlayReadyEncryptionParams::client_cert_file</a></div><div class="ttdeci">std::string client_cert_file</div><div class="ttdoc">Absolute path to client certificate file.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00115">crypto_params.h:115</a></div></div>
<div class="ttc" id="astructshaka_1_1DecryptionParams_html"><div class="ttname"><a href="../../d1/d4f/structshaka_1_1DecryptionParams.html">shaka::DecryptionParams</a></div><div class="ttdoc">Decryption parameters.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00228">crypto_params.h:228</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html">shaka::EncryptionParams</a></div><div class="ttdoc">Encryption parameters.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00146">crypto_params.h:146</a></div></div>
<div class="ttc" id="aunionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf_html"><div class="ttname"><a href="../../d0/d37/unionshaka_1_1EncryptionParams_1_1EncryptedStreamAttributes_1_1OneOf.html">shaka::EncryptionParams::EncryptedStreamAttributes::OneOf</a></div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00195">crypto_params.h:195</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_a1ad46963dc926aa4b72813dccb3f6a45"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#a1ad46963dc926aa4b72813dccb3f6a45">shaka::EncryptionParams::clear_lead_in_seconds</a></div><div class="ttdeci">double clear_lead_in_seconds</div><div class="ttdoc">Clear lead duration in seconds.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00162">crypto_params.h:162</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineEncryptionParams_html_a233141ad4baf2f2afce30f96adf340ae"><div class="ttname"><a href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a233141ad4baf2f2afce30f96adf340ae">shaka::WidevineEncryptionParams::signer</a></div><div class="ttdeci">WidevineSigner signer</div><div class="ttdoc">Signer credential for Widevine license / key server.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00096">crypto_params.h:96</a></div></div>
<div class="ttc" id="astructshaka_1_1RawKeyParams_html_a448b8c435fc86d4fbc85214e523f2ac5"><div class="ttname"><a href="../../d0/db4/structshaka_1_1RawKeyParams.html#a448b8c435fc86d4fbc85214e523f2ac5">shaka::RawKeyParams::pssh</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; pssh</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00131">crypto_params.h:131</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_a7686a6aca6a7c3d077a5d7215c39fc51"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#a7686a6aca6a7c3d077a5d7215c39fc51">shaka::EncryptionParams::stream_label_func</a></div><div class="ttdeci">std::function&lt; std::string(const EncryptedStreamAttributes &amp;stream_attributes)&gt; stream_label_func</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00216">crypto_params.h:216</a></div></div>
<div class="ttc" id="astructshaka_1_1EncryptionParams_html_afa236ca5a091603c2bc6d28b1f84d816"><div class="ttname"><a href="../../dc/da0/structshaka_1_1EncryptionParams.html#afa236ca5a091603c2bc6d28b1f84d816">shaka::EncryptionParams::skip_byte_block</a></div><div class="ttdeci">uint8_t skip_byte_block</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00178">crypto_params.h:178</a></div></div>
<div class="ttc" id="astructshaka_1_1WidevineEncryptionParams_html_a6b9770524a9507d0a9a3606ceef23075"><div class="ttname"><a href="../../d9/dd2/structshaka_1_1WidevineEncryptionParams.html#a6b9770524a9507d0a9a3606ceef23075">shaka::WidevineEncryptionParams::content_id</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; content_id</div><div class="ttdoc">Content identifier.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00092">crypto_params.h:92</a></div></div>
<div class="ttc" id="astructshaka_1_1RawKeyParams_html_aab733ab6920dd8fbed523810e64ea3f1"><div class="ttname"><a href="../../d0/db4/structshaka_1_1RawKeyParams.html#aab733ab6920dd8fbed523810e64ea3f1">shaka::RawKeyParams::iv</a></div><div class="ttdeci">std::vector&lt; uint8_t &gt; iv</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00127">crypto_params.h:127</a></div></div>
<div class="ttc" id="astructshaka_1_1PlayReadyEncryptionParams_html_ac5298ee04e36296e8dd4b7a56e8bc464"><div class="ttname"><a href="../../df/d47/structshaka_1_1PlayReadyEncryptionParams.html#ac5298ee04e36296e8dd4b7a56e8bc464">shaka::PlayReadyEncryptionParams::key_server_url</a></div><div class="ttdeci">std::string key_server_url</div><div class="ttdoc">PlayReady license / key server URL.</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d58/crypto__params_8h_source.html#l00108">crypto_params.h:108</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 22 2021 00:16:04 for Shaka Packager SDK by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>