Sophie

Sophie

distrib > CentOS > 5 > x86_64 > by-pkgid > 67e32647b06c0323bf90c6b54a6438d1 > files > 443

rpm-apidocs-4.4.2.3-34.el5.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>rpm: lib/package.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<h1>lib/package.c File Reference</h1><code>#include &quot;<a class="el" href="system_8h-source.html">system.h</a>&quot;</code><br>
<code>#include &lt;netinet/in.h&gt;</code><br>
<code>#include &lt;<a class="el" href="rpmio__internal_8h-source.html">rpmio_internal.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="rpmlib_8h-source.html">rpmlib.h</a>&gt;</code><br>
<code>#include &quot;<a class="el" href="rpmts_8h-source.html">rpmts.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="misc_8h-source.html">misc.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="legacy_8h-source.html">legacy.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="rpmlead_8h-source.html">rpmlead.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="header__internal_8h-source.html">header_internal.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="signature_8h-source.html">signature.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="debug_8h-source.html">debug.h</a>&quot;</code><br>

<p>
<a href="package_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#96e4041c4047f3298ec98d081530508b">alloca_strdup</a>(_s)&nbsp;&nbsp;&nbsp;strcpy(alloca(strlen(_s)+1), (_s))</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#78ac4516779b806a6feb2acadf73fae4">hdrchkTags</a>(_ntags)&nbsp;&nbsp;&nbsp;((_ntags) &amp; 0xffff0000)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sanity check on no.  <a href="#78ac4516779b806a6feb2acadf73fae4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#a27794c5cdd64c2ffdf54bee88b28094">hdrchkType</a>(_type)&nbsp;&nbsp;&nbsp;((_type) &lt; RPM_MIN_TYPE || (_type) &gt; RPM_MAX_TYPE)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sanity check on type values.  <a href="#a27794c5cdd64c2ffdf54bee88b28094"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#0c39623ea192cf47a2aa6f3a611c4c30">hdrchkData</a>(_nbytes)&nbsp;&nbsp;&nbsp;((_nbytes) &amp; 0xff000000)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sanity check on data size and/or offset and/or count.  <a href="#0c39623ea192cf47a2aa6f3a611c4c30"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#e99d12699c0d7b664e5df233f1f8fac6">hdrchkAlign</a>(_type, _off)&nbsp;&nbsp;&nbsp;((_off) &amp; (<a class="el" href="group__header.html#g9228ba00b1a43f5e554aff59e63eb49c">typeAlign</a>[_type]-1))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sanity check on data alignment for data type.  <a href="#e99d12699c0d7b664e5df233f1f8fac6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#f672e022f53597751c881988ac14d535">hdrchkRange</a>(_dl, _off)&nbsp;&nbsp;&nbsp;((_off) &lt; 0 || (_off) &gt; (_dl))</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sanity check on range of data offset.  <a href="#f672e022f53597751c881988ac14d535"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#57d198dca1a838c7a2e44e221fd9494f">_chk</a>(_mask)&nbsp;&nbsp;&nbsp;(sigtag == 0 &amp;&amp; !(<a class="el" href="rpmgraph_8c.html#0db9ecdc1e541264501b025ef23d7c69">vsflags</a> &amp; (_mask)))</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#g95e02e0e6be7de34f141fe8e82515ae8">headerMergeLegacySigs</a> (<a class="el" href="structheaderToken__s.html">Header</a> h, const <a class="el" href="structheaderToken__s.html">Header</a> sigh)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Translate and merge legacy signature tags into header.  <a href="group__header.html#g95e02e0e6be7de34f141fe8e82515ae8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structheaderToken__s.html">Header</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#g0240750b808fc759dee76f3440194570">headerRegenSigHeader</a> (const <a class="el" href="structheaderToken__s.html">Header</a> h, int noArchiveSize)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Regenerate signature header.  <a href="group__header.html#g0240750b808fc759dee76f3440194570"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#ea1f68f483810b0d2e9aa8d0d397683c">rpmtsStashKeyid</a> (<a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remember current key id.  <a href="#ea1f68f483810b0d2e9aa8d0d397683c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#f77927dd7aafa1bb3d1d878890387f0f">headerVerifyInfo</a> (int il, int dl, const void *pev, void *iv, int negate)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Perform simple sanity and range checks on header tag(s).  <a href="#f77927dd7aafa1bb3d1d878890387f0f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#46cbd8d07696edbd85f72addf868bedd">headerCheck</a> (<a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, const void *uh, size_t uc, const char **msg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check header consistency, performing <a class="el" href="group__header.html#g0b59789e021aa6ecab28e72a1f39d0a4">headerGetEntry()</a> the hard way.  <a href="#46cbd8d07696edbd85f72addf868bedd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#3368a5898ca0088b6aa01bac1a4b8501">rpmReadHeader</a> (<a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, <a class="el" href="struct__FD__s.html">FD_t</a> fd, <a class="el" href="structheaderToken__s.html">Header</a> *hdrp, const char **msg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return checked and loaded header.  <a href="#3368a5898ca0088b6aa01bac1a4b8501"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#e10b6de3f6b14ba9bf473e782c6ed65c">rpmReadPackageFile</a> (<a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, <a class="el" href="struct__FD__s.html">FD_t</a> fd, const char *fn, <a class="el" href="structheaderToken__s.html">Header</a> *hdrp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return package header from file handle, verifying digests/signatures.  <a href="#e10b6de3f6b14ba9bf473e782c6ed65c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#b1eb7d04798d892e03ec01a8e281ba79">headerCheckPayloadFormat</a> (<a class="el" href="structheaderToken__s.html">Header</a> h)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check for supported payload format in header.  <a href="#b1eb7d04798d892e03ec01a8e281ba79"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#ecd25710f1d2b5bb3fe8325b1396a34d">_print_pkts</a> = 0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#9eef9fb936c4022ba46458a5757683b0">nkeyids_max</a> = 256</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#80a671d81212a43091515b37d6c6858a">nkeyids</a> = 0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#63337850f15a88267a212e05f52f02d0">nextkeyid</a> = 0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#dd5fdc9b5a4e6833a46cac61f473266b">keyids</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#68915b3bb540c3571a315f399cf2d981">header_magic</a> [8]</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="package_8c.html#9228ba00b1a43f5e554aff59e63eb49c">typeAlign</a> [16]</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Alignment needs (and sizeof scalars types) for internal rpm data types.  <a href="#9228ba00b1a43f5e554aff59e63eb49c"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>

<p>
Definition in file <a class="el" href="package_8c-source.html">package.c</a>.<hr><h2>Define Documentation</h2>
<a class="anchor" name="57d198dca1a838c7a2e44e221fd9494f"></a><!-- doxytag: member="package.c::_chk" ref="57d198dca1a838c7a2e44e221fd9494f" args="(_mask)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define _chk          </td>
          <td>(</td>
          <td class="paramtype">_mask&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;(sigtag == 0 &amp;&amp; !(<a class="el" href="rpmgraph_8c.html#0db9ecdc1e541264501b025ef23d7c69">vsflags</a> &amp; (_mask)))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Referenced by <a class="el" href="package_8c-source.html#l00753">rpmReadPackageFile()</a>.
</div>
</div><p>
<a class="anchor" name="96e4041c4047f3298ec98d081530508b"></a><!-- doxytag: member="package.c::alloca_strdup" ref="96e4041c4047f3298ec98d081530508b" args="(_s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define alloca_strdup          </td>
          <td>(</td>
          <td class="paramtype">_s&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;strcpy(alloca(strlen(_s)+1), (_s))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00022">22</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
</div>
</div><p>
<a class="anchor" name="e99d12699c0d7b664e5df233f1f8fac6"></a><!-- doxytag: member="package.c::hdrchkAlign" ref="e99d12699c0d7b664e5df233f1f8fac6" args="(_type, _off)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define hdrchkAlign          </td>
          <td>(</td>
          <td class="paramtype">_type,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_off&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((_off) &amp; (<a class="el" href="group__header.html#g9228ba00b1a43f5e554aff59e63eb49c">typeAlign</a>[_type]-1))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sanity check on data alignment for data type. 
<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00091">91</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00281">headerVerifyInfo()</a>, and <a class="el" href="header_8c-source.html#l00473">regionSwab()</a>.
</div>
</div><p>
<a class="anchor" name="0c39623ea192cf47a2aa6f3a611c4c30"></a><!-- doxytag: member="package.c::hdrchkData" ref="0c39623ea192cf47a2aa6f3a611c4c30" args="(_nbytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define hdrchkData          </td>
          <td>(</td>
          <td class="paramtype">_nbytes&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((_nbytes) &amp; 0xff000000)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sanity check on data size and/or offset and/or count. 
<p>
This check imposes a limit of 16 MB, more than enough. 
<p>
Definition at line <a class="el" href="package_8c-source.html#l00086">86</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="header_8c-source.html#l00610">doHeaderUnload()</a>, <a class="el" href="package_8c-source.html#l00098">headerMergeLegacySigs()</a>, <a class="el" href="package_8c-source.html#l00281">headerVerifyInfo()</a>, <a class="el" href="header_8c-source.html#l00473">regionSwab()</a>, and <a class="el" href="package_8c-source.html#l00655">rpmReadHeader()</a>.
</div>
</div><p>
<a class="anchor" name="f672e022f53597751c881988ac14d535"></a><!-- doxytag: member="package.c::hdrchkRange" ref="f672e022f53597751c881988ac14d535" args="(_dl, _off)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define hdrchkRange          </td>
          <td>(</td>
          <td class="paramtype">_dl,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">_off&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((_off) &lt; 0 || (_off) &gt; (_dl))</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sanity check on range of data offset. 
<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00096">96</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00281">headerVerifyInfo()</a>.
</div>
</div><p>
<a class="anchor" name="78ac4516779b806a6feb2acadf73fae4"></a><!-- doxytag: member="package.c::hdrchkTags" ref="78ac4516779b806a6feb2acadf73fae4" args="(_ntags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define hdrchkTags          </td>
          <td>(</td>
          <td class="paramtype">_ntags&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((_ntags) &amp; 0xffff0000)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sanity check on no. 
<p>
of tags. This check imposes a limit of 65K tags, more than enough. 
<p>
Definition at line <a class="el" href="package_8c-source.html#l00075">75</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="header_8c-source.html#l00610">doHeaderUnload()</a>, and <a class="el" href="package_8c-source.html#l00655">rpmReadHeader()</a>.
</div>
</div><p>
<a class="anchor" name="a27794c5cdd64c2ffdf54bee88b28094"></a><!-- doxytag: member="package.c::hdrchkType" ref="a27794c5cdd64c2ffdf54bee88b28094" args="(_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define hdrchkType          </td>
          <td>(</td>
          <td class="paramtype">_type&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;((_type) &lt; RPM_MIN_TYPE || (_type) &gt; RPM_MAX_TYPE)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sanity check on type values. 
<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00080">80</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00098">headerMergeLegacySigs()</a>, <a class="el" href="package_8c-source.html#l00281">headerVerifyInfo()</a>, and <a class="el" href="header_8c-source.html#l00473">regionSwab()</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="46cbd8d07696edbd85f72addf868bedd"></a><!-- doxytag: member="package.c::headerCheck" ref="46cbd8d07696edbd85f72addf868bedd" args="(rpmts ts, const void *uh, size_t uc, const char **msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> headerCheck           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a>&nbsp;</td>
          <td class="paramname"> <em>ts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>uh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>uc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>msg</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check header consistency, performing <a class="el" href="group__header.html#g0b59789e021aa6ecab28e72a1f39d0a4">headerGetEntry()</a> the hard way. 
<p>
Sanity checks on the header are performed while looking for a header-only digest or signature to verify the blob. If found, the digest or signature is verified.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ts</em>&nbsp;</td><td>transaction set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uh</em>&nbsp;</td><td>unloaded header blob </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>uc</em>&nbsp;</td><td>no. of bytes in blob (or 0 to disable) </td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>*msg</em>&nbsp;</td><td>signature verification msg </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>RPMRC_OK/RPMRC_NOTFOUND/RPMRC_FAIL </dd></dl>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00325">325</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="system_8h.html#eb1df3e83fb069eaa2eb66ace3a0ea52">alloca()</a>, <a class="el" href="package_8c-source.html#l00281">headerVerifyInfo()</a>, <a class="el" href="header__internal_8h-source.html#l00034">REGION_TAG_COUNT</a>, <a class="el" href="header__internal_8h-source.html#l00033">REGION_TAG_TYPE</a>, <a class="el" href="group__header.html#gg24690e18a34d56e178edf27b5cc97fed34cdc667815b86f8741fbf06ce4725eb">RPM_STRING_TYPE</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e8012e6125219f145fbb73353bc6ccac5cfc">RPMRC_FAIL</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e80163a651497a21974d2993a25d9b60208d">RPMRC_NOTFOUND</a>, <a class="el" href="rpmlib_8h.html#342756dddb61d125ae851a8b1ab0507bbf199b0f74f4a4704e89b424c76ac4db">RPMTAG_HEADERIMMUTABLE</a>, <a class="el" href="rpmlib_8h.html#342756dddb61d125ae851a8b1ab0507beeeeb04e725075070093d4a2c86f3334">RPMTAG_SHA1HEADER</a>, <a class="el" href="rpmts_8c-source.html#l00909">rpmtsVSFlags()</a>, <a class="el" href="rpmts_8h.html#081c96e55d490b5e99505eda7e93602df7252b6316f6bef89c95f2c5e9f92917">RPMVSF_NOSHA1HEADER</a>, <a class="el" href="rpmps_8c-source.html#l00182">snprintf()</a>, and <a class="el" href="rpmcache_8c-source.html#l00511">vsflags</a>.
<p>
Referenced by <a class="el" href="psm_8c-source.html#l01383">rpmpsmStage()</a>, <a class="el" href="package_8c-source.html#l00655">rpmReadHeader()</a>, <a class="el" href="rpmts-py_8c-source.html#l00826">rpmts_HdrCheck()</a>, <a class="el" href="rpmts_8c-source.html#l00256">rpmtsInitIterator()</a>, and <a class="el" href="rpmts_8c-source.html#l00203">rpmtsRebuildDB()</a>.
</div>
</div><p>
<a class="anchor" name="b1eb7d04798d892e03ec01a8e281ba79"></a><!-- doxytag: member="package.c::headerCheckPayloadFormat" ref="b1eb7d04798d892e03ec01a8e281ba79" args="(Header h)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> headerCheckPayloadFormat           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structheaderToken__s.html">Header</a>&nbsp;</td>
          <td class="paramname"> <em>h</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check for supported payload format in header. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>header to check </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>RPMRC_OK if supported, RPMRC_FAIL otherwise </dd></dl>

<p>
Definition at line <a class="el" href="package_8c-source.html#l01078">1078</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="rpmlib_8h-source.html#l00058">_free()</a>, <a class="el" href="hdrinline_8h-source.html#l00268">headerGetEntry()</a>, <a class="el" href="rpmts_8c-source.html#l00090">hGetNEVRA()</a>, <a class="el" href="rpmmessages_8h-source.html#l00015">RPMMESS_ERROR</a>, <a class="el" href="rpmmessages_8h-source.html#l00020">rpmMessage</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e8012e6125219f145fbb73353bc6ccac5cfc">RPMRC_FAIL</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>, and <a class="el" href="rpmlib_8h.html#342756dddb61d125ae851a8b1ab0507bd0bfa4d40066ab97e043a59d954ab444">RPMTAG_PAYLOADFORMAT</a>.
<p>
Referenced by <a class="el" href="depends_8c-source.html#l00127">rpmtsAddInstallElement()</a>.
</div>
</div><p>
<a class="anchor" name="f77927dd7aafa1bb3d1d878890387f0f"></a><!-- doxytag: member="package.c::headerVerifyInfo" ref="f77927dd7aafa1bb3d1d878890387f0f" args="(int il, int dl, const void *pev, void *iv, int negate)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerVerifyInfo           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>il</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>dl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&nbsp;</td>
          <td class="paramname"> <em>pev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>iv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>negate</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Perform simple sanity and range checks on header tag(s). 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>il</em>&nbsp;</td><td>no. of tags in header </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dl</em>&nbsp;</td><td>no. of bytes in header data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pev</em>&nbsp;</td><td>1st element in tag array, big-endian </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>iv</em>&nbsp;</td><td>failing (or last) tag element, host-endian </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>negate</em>&nbsp;</td><td>negative offset expected? </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>-1 on success, otherwise failing tag element index </dd></dl>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00281">281</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
References <a class="el" href="header__internal_8h-source.html#l00030">entryInfo_s::count</a>, <a class="el" href="package_8c-source.html#l00091">hdrchkAlign</a>, <a class="el" href="package_8c-source.html#l00086">hdrchkData</a>, <a class="el" href="package_8c-source.html#l00096">hdrchkRange</a>, <a class="el" href="package_8c-source.html#l00080">hdrchkType</a>, <a class="el" href="header__internal_8h-source.html#l00029">entryInfo_s::offset</a>, <a class="el" href="header__internal_8h-source.html#l00027">entryInfo_s::tag</a>, and <a class="el" href="header__internal_8h-source.html#l00028">entryInfo_s::type</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00325">headerCheck()</a>, and <a class="el" href="signature_8c-source.html#l00155">rpmReadSignature()</a>.
</div>
</div><p>
<a class="anchor" name="3368a5898ca0088b6aa01bac1a4b8501"></a><!-- doxytag: member="package.c::rpmReadHeader" ref="3368a5898ca0088b6aa01bac1a4b8501" args="(rpmts ts, FD_t fd, Header *hdrp, const char **msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> rpmReadHeader           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a>&nbsp;</td>
          <td class="paramname"> <em>ts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct__FD__s.html">FD_t</a>&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structheaderToken__s.html">Header</a> *&nbsp;</td>
          <td class="paramname"> <em>hdrp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>msg</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return checked and loaded header. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ts</em>&nbsp;</td><td>transaction set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fd</em>&nbsp;</td><td>file handle </td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hdrp</em>&nbsp;</td><td>address of header (or NULL) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>*msg</em>&nbsp;</td><td>verification error message (or NULL) </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>RPMRC_OK on success </dd></dl>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00655">655</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="rpmlib_8h-source.html#l00058">_free()</a>, <a class="el" href="lparser_8c-source.html#l00952">block()</a>, <a class="el" href="header__internal_8h-source.html#l00064">headerToken_s::flags</a>, <a class="el" href="package_8c-source.html#l00086">hdrchkData</a>, <a class="el" href="package_8c-source.html#l00075">hdrchkTags</a>, <a class="el" href="package_8c-source.html#l00044">header_magic</a>, <a class="el" href="package_8c-source.html#l00325">headerCheck()</a>, <a class="el" href="header__internal_8h-source.html#l00066">HEADERFLAG_ALLOCATED</a>, <a class="el" href="hdrinline_8h-source.html#l00047">headerFree()</a>, <a class="el" href="hdrinline_8h-source.html#l00062">headerLink()</a>, <a class="el" href="hdrinline_8h-source.html#l00175">headerLoad()</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e8012e6125219f145fbb73353bc6ccac5cfc">RPMRC_FAIL</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>, <a class="el" href="rpmps_8c-source.html#l00182">snprintf()</a>, <a class="el" href="rpmio_8h-source.html#l00647">timedRead</a>, <a class="el" href="rpmmalloc_8c-source.html#l00024">xmalloc()</a>, and <a class="el" href="rpmmalloc_8c-source.html#l00055">xstrdup()</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00753">rpmReadPackageFile()</a>.
</div>
</div><p>
<a class="anchor" name="e10b6de3f6b14ba9bf473e782c6ed65c"></a><!-- doxytag: member="package.c::rpmReadPackageFile" ref="e10b6de3f6b14ba9bf473e782c6ed65c" args="(rpmts ts, FD_t fd, const char *fn, Header *hdrp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> rpmReadPackageFile           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a>&nbsp;</td>
          <td class="paramname"> <em>ts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct__FD__s.html">FD_t</a>&nbsp;</td>
          <td class="paramname"> <em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>fn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structheaderToken__s.html">Header</a> *&nbsp;</td>
          <td class="paramname"> <em>hdrp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return package header from file handle, verifying digests/signatures. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ts</em>&nbsp;</td><td>transaction set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fd</em>&nbsp;</td><td>file handle </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fn</em>&nbsp;</td><td>file name </td></tr>
  </table>
</dl>
<dl compact><dt><b>Return values:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>hdrp</em>&nbsp;</td><td>address of header (or NULL) </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>RPMRC_OK on success </dd></dl>

<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000020">Todo:</a></b></dt><dd>Implement disable/enable/warn/error/anal policy. </dd></dl>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00753">753</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="package_8c.html#57d198dca1a838c7a2e44e221fd9494f">_chk</a>, <a class="el" href="rpmlib_8h-source.html#l00058">_free()</a>, <a class="el" href="package_8c-source.html#l00032">_print_pkts</a>, <a class="el" href="system_8h.html#eb1df3e83fb069eaa2eb66ace3a0ea52">alloca()</a>, <a class="el" href="header__internal_8h-source.html#l00030">entryInfo_s::count</a>, <a class="el" href="rpmsw_8h-source.html#l00035">rpmop_s::count</a>, <a class="el" href="rpmio__internal_8h-source.html#l00151">_FD_s::digests</a>, <a class="el" href="rpmio__internal_8h-source.html#l00510">fdInitDigest()</a>, <a class="el" href="group__rpmio.html#gg3f29a6d794c5c4d3283466f38802118184d3d23af13a1d2041439b1fbb993f17">FDSTAT_READ</a>, <a class="el" href="rpmio_8c-source.html#l03319">Fileno()</a>, <a class="el" href="rpmio_8c-source.html#l02824">Fread()</a>, <a class="el" href="rpmio_8c-source.html#l02813">Fstrerror()</a>, <a class="el" href="rpmio__internal_8h-source.html#l00036">pgpDigParams_s::hash_algo</a>, <a class="el" href="rpmio__internal_8h-source.html#l00113">_FDDIGEST_s::hashalgo</a>, <a class="el" href="rpmio__internal_8h-source.html#l00114">_FDDIGEST_s::hashctx</a>, <a class="el" href="rpmio__internal_8h-source.html#l00067">pgpDig_s::hdrmd5ctx</a>, <a class="el" href="rpmio__internal_8h-source.html#l00059">pgpDig_s::hdrsha1ctx</a>, <a class="el" href="package_8c-source.html#l00044">header_magic</a>, <a class="el" href="hdrinline_8h-source.html#l00047">headerFree()</a>, <a class="el" href="header_8h-source.html#l00704">headerFreeData()</a>, <a class="el" href="hdrinline_8h-source.html#l00268">headerGetEntry()</a>, <a class="el" href="hdrinline_8h-source.html#l00230">headerIsEntry()</a>, <a class="el" href="hdrinline_8h-source.html#l00062">headerLink()</a>, <a class="el" href="package_8c-source.html#l00098">headerMergeLegacySigs()</a>, <a class="el" href="legacy_8c-source.html#l00533">legacyRetrofit()</a>, <a class="el" href="rpmio__internal_8h-source.html#l00065">pgpDig_s::md5ctx</a>, <a class="el" href="rpmio__internal_8h-source.html#l00054">pgpDig_s::nbytes</a>, <a class="el" href="rpmio__internal_8h-source.html#l00149">_FD_s::ndigests</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54ed06371dade65fdf985086d1461218820">PGPHASHALGO_MD5</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54efadb8ed49f2346f83847d7ef8e0efe24">PGPHASHALGO_SHA1</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54e1318894b57fbacba8ca82305ba5198f2">PGPHASHALGO_SHA256</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54e02392fb7e4ada02a9d7fc6e09ef2dbb2">PGPHASHALGO_SHA384</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54ead5f6348a6d370be440d76cac0f7d9d2">PGPHASHALGO_SHA512</a>, <a class="el" href="rpmpgp_8c-source.html#l01211">pgpPrtPkts()</a>, <a class="el" href="rpmlead_8c-source.html#l00048">readLead()</a>, <a class="el" href="group__rpmio.html#gg42072ff4775f09dc80e11764dc0274695e623dd642f5283da2d878cd4cd1bd4e">RPMDIGEST_NONE</a>, <a class="el" href="digest_8c-source.html#l00076">rpmDigestInit()</a>, <a class="el" href="digest_8c-source.html#l00103">rpmDigestUpdate()</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b9591db5d3a418aeec69623dce2d14a31">RPMERR_FREAD</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b187c25679775a00040132f47394fee3c">RPMERR_NEWPACKAGE</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b1938a5929132f68f71c7fd763290027d">RPMERR_SIGGEN</a>, <a class="el" href="rpmerr_8h-source.html#l00143">rpmError</a>, <a class="el" href="signature_8c-source.html#l00385">rpmFreeSignature()</a>, <a class="el" href="rpmmessages_8h-source.html#l00031">rpmIsDebug</a>, <a class="el" href="rpmmessages_8h-source.html#l00011">RPMMESS_DEBUG</a>, <a class="el" href="rpmmessages_8h-source.html#l00015">RPMMESS_ERROR</a>, <a class="el" href="rpmmessages_8h-source.html#l00014">RPMMESS_WARNING</a>, <a class="el" href="rpmmessages_8h-source.html#l00020">rpmMessage</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e8012e6125219f145fbb73353bc6ccac5cfc">RPMRC_FAIL</a>, <a class="el" href="rpmlib_8h-source.html#l00025">RPMRC_NOKEY</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e80163a651497a21974d2993a25d9b60208d">RPMRC_NOTFOUND</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e80157ae69ad74eaa789264ec507d0f9e2c6">RPMRC_NOTTRUSTED</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>, <a class="el" href="package_8c-source.html#l00655">rpmReadHeader()</a>, <a class="el" href="signature_8c-source.html#l00155">rpmReadSignature()</a>, <a class="el" href="group__signature.html#gg42c7580fde696ff3b0f70bfb7bdade59b52ed4e5aa7d330de398f3e92334d828">RPMSIGTAG_DSA</a>, <a class="el" href="group__signature.html#gg42c7580fde696ff3b0f70bfb7bdade590ed5d0c19de281d46d38e0210dc9faa7">RPMSIGTAG_GPG</a>, <a class="el" href="group__signature.html#gg42c7580fde696ff3b0f70bfb7bdade5998404587b2537b1a0913f4bf84857b66">RPMSIGTAG_MD5</a>, <a class="el" href="group__signature.html#gg42c7580fde696ff3b0f70bfb7bdade59ad2717c301116c93390eb57f1a5bdfc6">RPMSIGTAG_PGP</a>, <a class="el" href="group__signature.html#gg42c7580fde696ff3b0f70bfb7bdade59bf5438c2d5c3e85d660be9588869ad7d">RPMSIGTAG_PGP5</a>, <a class="el" href="rpmlib_8h-source.html#l01220">RPMSIGTAG_RSA</a>, <a class="el" href="group__signature.html#gg42c7580fde696ff3b0f70bfb7bdade591f0885c883cbf3c6a56b43378b2abb44">RPMSIGTAG_SHA1</a>, <a class="el" href="rpmsw_8c-source.html#l00101">rpmswEnter()</a>, <a class="el" href="rpmsw_8c-source.html#l00117">rpmswExit()</a>, <a class="el" href="rpmlib_8h.html#342756dddb61d125ae851a8b1ab0507bbf199b0f74f4a4704e89b424c76ac4db">RPMTAG_HEADERIMMUTABLE</a>, <a class="el" href="rpmts_8h.html#91b5b6bbde8250526b406de6b91735e8a1b0a28f4a226d6ede631a48c893c699">RPMTS_OP_DIGEST</a>, <a class="el" href="rpmts_8h.html#91b5b6bbde8250526b406de6b91735e8cd751b874525c4a91d5069882ea4c3bd">RPMTS_OP_SIGNATURE</a>, <a class="el" href="rpmts_8c-source.html#l00754">rpmtsCleanDig()</a>, <a class="el" href="rpmts_8c-source.html#l01171">rpmtsDig()</a>, <a class="el" href="rpmts_8c-source.html#l01483">rpmtsOp()</a>, <a class="el" href="rpmts_8c-source.html#l01155">rpmtsSetSig()</a>, <a class="el" href="package_8c-source.html#l00242">rpmtsStashKeyid()</a>, <a class="el" href="rpmts_8c-source.html#l00909">rpmtsVSFlags()</a>, <a class="el" href="signature_8c-source.html#l01477">rpmVerifySignature()</a>, <a class="el" href="rpmts_8h.html#081c96e55d490b5e99505eda7e93602d22ad1bd80773be36567db398437f5c0b">RPMVSF_NEEDPAYLOAD</a>, <a class="el" href="rpmts_8h.html#081c96e55d490b5e99505eda7e93602dadb72320d5dbd46383a235c877fd6c92">RPMVSF_NODSA</a>, <a class="el" href="rpmts_8h.html#081c96e55d490b5e99505eda7e93602d66c69b05f49ce384ffb126235ba3ad9e">RPMVSF_NOMD5</a>, <a class="el" href="rpmts_8h.html#081c96e55d490b5e99505eda7e93602d67f42f762ffdc38638984ff9b6ae9a3e">RPMVSF_NORSA</a>, <a class="el" href="rpmts_8h.html#081c96e55d490b5e99505eda7e93602df7252b6316f6bef89c95f2c5e9f92917">RPMVSF_NOSHA1HEADER</a>, <a class="el" href="rpmio__internal_8h-source.html#l00057">pgpDig_s::sha1ctx</a>, <a class="el" href="rpmio__internal_8h-source.html#l00051">pgpDig_s::signature</a>, <a class="el" href="rpmio__internal_8h-source.html#l00147">_FD_s::stats</a>, <a class="el" href="rpmio__internal_8h-source.html#l00032">pgpDigParams_s::version</a>, and <a class="el" href="rpmcache_8c-source.html#l00511">vsflags</a>.
<p>
Referenced by <a class="el" href="rpmcache_8c-source.html#l00181">ftsStashLatest()</a>, <a class="el" href="rpminstall_8c-source.html#l01026">IDTXglob()</a>, <a class="el" href="rpm2cpio_8c-source.html#l00013">main()</a>, <a class="el" href="pack_8c-source.html#l00296">readRPM()</a>, <a class="el" href="rpmgi_8c-source.html#l00117">rpmgiReadHeader()</a>, <a class="el" href="rpmgraph_8c-source.html#l00044">rpmGraph()</a>, <a class="el" href="rpminstall_8c-source.html#l00288">rpmInstall()</a>, <a class="el" href="psm_8c-source.html#l00238">rpmInstallSourcePackage()</a>, <a class="el" href="rpmts-py_8c-source.html#l00773">rpmts_HdrFromFdno()</a>, <a class="el" href="transaction_8c-source.html#l01435">rpmtsRun()</a>, and <a class="el" href="rpmts_8c-source.html#l00547">rpmtsSolve()</a>.
</div>
</div><p>
<a class="anchor" name="ea1f68f483810b0d2e9aa8d0d397683c"></a><!-- doxytag: member="package.c::rpmtsStashKeyid" ref="ea1f68f483810b0d2e9aa8d0d397683c" args="(rpmts ts)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int rpmtsStashKeyid           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a>&nbsp;</td>
          <td class="paramname"> <em>ts</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remember current key id. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>ts</em>&nbsp;</td><td>transaction set </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 if new keyid, otherwise 1 </dd></dl>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00242">242</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
References <a class="el" href="package_8c-source.html#l00041">keyids</a>, <a class="el" href="package_8c-source.html#l00039">nextkeyid</a>, <a class="el" href="package_8c-source.html#l00037">nkeyids</a>, <a class="el" href="package_8c-source.html#l00035">nkeyids_max</a>, <a class="el" href="rpmpgp_8h-source.html#l00990">pgpGrab()</a>, <a class="el" href="rpmts_8c-source.html#l01171">rpmtsDig()</a>, <a class="el" href="rpmts_8c-source.html#l01139">rpmtsSig()</a>, <a class="el" href="rpmts_8c-source.html#l01182">rpmtsSignature()</a>, <a class="el" href="rpmio__internal_8h-source.html#l00040">pgpDigParams_s::signid</a>, and <a class="el" href="rpmmalloc_8c-source.html#l00045">xrealloc()</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00753">rpmReadPackageFile()</a>.
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="ecd25710f1d2b5bb3fe8325b1396a34d"></a><!-- doxytag: member="package.c::_print_pkts" ref="ecd25710f1d2b5bb3fe8325b1396a34d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="rpmchecksig_8c.html#ecd25710f1d2b5bb3fe8325b1396a34d">_print_pkts</a> = 0<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00032">32</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00753">rpmReadPackageFile()</a>, and <a class="el" href="rpmchecksig_8c-source.html#l00719">rpmVerifySignatures()</a>.
</div>
</div><p>
<a class="anchor" name="68915b3bb540c3571a315f399cf2d981"></a><!-- doxytag: member="package.c::header_magic" ref="68915b3bb540c3571a315f399cf2d981" args="[8]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char <a class="el" href="group__header.html#g68915b3bb540c3571a315f399cf2d981">header_magic</a>[8]<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
        0x8e, 0xad, 0xe8, 0x01, 0x00, 0x00, 0x00, 0x00
}
</pre></div>
<p>
Definition at line <a class="el" href="package_8c-source.html#l00044">44</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="signature_8c-source.html#l00701">makeHDRSignature()</a>, <a class="el" href="package_8c-source.html#l00655">rpmReadHeader()</a>, <a class="el" href="package_8c-source.html#l00753">rpmReadPackageFile()</a>, and <a class="el" href="signature_8c-source.html#l00155">rpmReadSignature()</a>.
</div>
</div><p>
<a class="anchor" name="dd5fdc9b5a4e6833a46cac61f473266b"></a><!-- doxytag: member="package.c::keyids" ref="dd5fdc9b5a4e6833a46cac61f473266b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int* <a class="el" href="package_8c.html#dd5fdc9b5a4e6833a46cac61f473266b">keyids</a><code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00041">41</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00242">rpmtsStashKeyid()</a>.
</div>
</div><p>
<a class="anchor" name="63337850f15a88267a212e05f52f02d0"></a><!-- doxytag: member="package.c::nextkeyid" ref="63337850f15a88267a212e05f52f02d0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="package_8c.html#63337850f15a88267a212e05f52f02d0">nextkeyid</a> = 0<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00039">39</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00242">rpmtsStashKeyid()</a>.
</div>
</div><p>
<a class="anchor" name="80a671d81212a43091515b37d6c6858a"></a><!-- doxytag: member="package.c::nkeyids" ref="80a671d81212a43091515b37d6c6858a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="package_8c.html#80a671d81212a43091515b37d6c6858a">nkeyids</a> = 0<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00037">37</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00242">rpmtsStashKeyid()</a>.
</div>
</div><p>
<a class="anchor" name="9eef9fb936c4022ba46458a5757683b0"></a><!-- doxytag: member="package.c::nkeyids_max" ref="9eef9fb936c4022ba46458a5757683b0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="package_8c.html#9eef9fb936c4022ba46458a5757683b0">nkeyids_max</a> = 256<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00035">35</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
<p>
Referenced by <a class="el" href="package_8c-source.html#l00242">rpmtsStashKeyid()</a>.
</div>
</div><p>
<a class="anchor" name="9228ba00b1a43f5e554aff59e63eb49c"></a><!-- doxytag: member="package.c::typeAlign" ref="9228ba00b1a43f5e554aff59e63eb49c" args="[16]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__header.html#g9228ba00b1a43f5e554aff59e63eb49c">typeAlign</a>[16]<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment">  {
    1,  
    1,  
    1,  
    2,  
    4,  
    8,  
    1,  
    1,  
    1,  
    1,  
    0,
    0,
    0,
    0,
    0,
    0
}
</pre></div>Alignment needs (and sizeof scalars types) for internal rpm data types. 
<p>

<p>
Definition at line <a class="el" href="package_8c-source.html#l00052">52</a> of file <a class="el" href="package_8c-source.html">package.c</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on 1 Oct 2013 for rpm by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>