<!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/signature.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 Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul></div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul></div> <h1>lib/signature.c File Reference</h1><code>#include "<a class="el" href="system_8h-source.html">system.h</a>"</code><br> <code>#include "<a class="el" href="rpmio__internal_8h-source.html">rpmio_internal.h</a>"</code><br> <code>#include <<a class="el" href="rpmlib_8h-source.html">rpmlib.h</a>></code><br> <code>#include <<a class="el" href="rpmmacro_8h-source.html">rpmmacro.h</a>></code><br> <code>#include "<a class="el" href="rpmdb_8h-source.html">rpmdb.h</a>"</code><br> <code>#include "<a class="el" href="rpmts_8h-source.html">rpmts.h</a>"</code><br> <code>#include "<a class="el" href="misc_8h-source.html">misc.h</a>"</code><br> <code>#include "<a class="el" href="legacy_8h-source.html">legacy.h</a>"</code><br> <code>#include "<a class="el" href="rpmlead_8h-source.html">rpmlead.h</a>"</code><br> <code>#include "<a class="el" href="signature_8h-source.html">signature.h</a>"</code><br> <code>#include "<a class="el" href="header__internal_8h-source.html">header_internal.h</a>"</code><br> <code>#include "<a class="el" href="debug_8h-source.html">debug.h</a>"</code><br> <p> <a href="signature_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>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__signature.html#ga229e3e1d9c9d9846be8f72792e6d33e">rpmLookupSignatureType</a> (int action)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return type of signature needed for signing/building. <a href="group__signature.html#ga229e3e1d9c9d9846be8f72792e6d33e"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__signature.html#gfb3f904eeef3bf7f947114df3dfda939">rpmDetectPGPVersion</a> (<a class="el" href="group__signature.html#ge1789e90ac0546a99a17e2c63567798c">pgpVersion</a> *pgpVer)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return path to pgp executable of given type, or NULL when not found. <a href="group__signature.html#gfb3f904eeef3bf7f947114df3dfda939"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#388ccc323ec5bc5ced2f60a1faa4d9b3">printSize</a> (<a class="el" href="struct__FD__s.html">FD_t</a> fd, int siglen, int pad, int datalen)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print package size. <a href="#388ccc323ec5bc5ced2f60a1faa4d9b3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__signature.html#ga624a140cf244d9c933a15690c192ae6">rpmReadSignature</a> (<a class="el" href="struct__FD__s.html">FD_t</a> fd, <a class="el" href="structheaderToken__s.html">Header</a> *sighp, <a class="el" href="group__signature.html#g76f741a06ca02aa698c8d84c2f5ceec0">sigType</a> sig_type, const char **msg)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read (and verify header+payload size) signature header. <a href="group__signature.html#ga624a140cf244d9c933a15690c192ae6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__signature.html#g29c4083297ecdc3ffc62fa25a84ed084">rpmWriteSignature</a> (<a class="el" href="struct__FD__s.html">FD_t</a> fd, <a class="el" href="structheaderToken__s.html">Header</a> sigh)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Write signature header. <a href="group__signature.html#g29c4083297ecdc3ffc62fa25a84ed084"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structheaderToken__s.html">Header</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__signature.html#ged413fb092ff3a54957df00c4298f550">rpmNewSignature</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return new, empty (signature) header instance. <a href="group__signature.html#ged413fb092ff3a54957df00c4298f550"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structheaderToken__s.html">Header</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__signature.html#gfe211addadae046d1ae9b66fe80d6aa9">rpmFreeSignature</a> (<a class="el" href="structheaderToken__s.html">Header</a> sigh)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy signature header from package. <a href="group__signature.html#gfe211addadae046d1ae9b66fe80d6aa9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#dfd0eb7c70e478dea185d46427998caa">makePGPSignature</a> (const char *<a class="el" href="parseScript_8c.html#f0baa3ccdd9d2a6adf03b72e2bea5789">file</a>, <a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> *sigTagp, <a class="el" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> **pktp, <a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> *pktlenp, const char *passPhrase)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate PGP signature(s) for a header+payload file. <a href="#dfd0eb7c70e478dea185d46427998caa"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#7451f59ca3dc18595360aceda48001e6">makeGPGSignature</a> (const char *<a class="el" href="parseScript_8c.html#f0baa3ccdd9d2a6adf03b72e2bea5789">file</a>, <a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> *sigTagp, <a class="el" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> **pktp, <a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> *pktlenp, const char *passPhrase)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate GPG signature(s) for a header+payload file. <a href="#7451f59ca3dc18595360aceda48001e6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#16a02a82d6d5f5352ac14ce0179020c9">makeHDRSignature</a> (<a class="el" href="structheaderToken__s.html">Header</a> sigh, const char *<a class="el" href="parseScript_8c.html#f0baa3ccdd9d2a6adf03b72e2bea5789">file</a>, <a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> sigTag, const char *passPhrase)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate header only signature(s) from a header+payload file. <a href="#16a02a82d6d5f5352ac14ce0179020c9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__signature.html#gc5ed7e34b9ab5dfa371d69d136b8cfa4">rpmAddSignature</a> (<a class="el" href="structheaderToken__s.html">Header</a> sigh, const char *<a class="el" href="parseScript_8c.html#f0baa3ccdd9d2a6adf03b72e2bea5789">file</a>, <a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> sigTag, const char *passPhrase)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Generate signature(s) from a header+payload file, save in signature header. <a href="group__signature.html#gc5ed7e34b9ab5dfa371d69d136b8cfa4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#51268aa2ff45e9fc02b740225e507230">checkPassPhrase</a> (const char *passPhrase, const int sigTag)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__signature.html#g1c54fff472c95990f2d4038782c33621">rpmGetPassPhrase</a> (const char *prompt, const int sigTag)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read a pass phrase using getpass(3), confirm with gpg/pgp helper binaries. <a href="group__signature.html#g1c54fff472c95990f2d4038782c33621"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#c4f70071020206b2cfb716c84522000e">rpmSigString</a> (<a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> res)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#fd2b5b7efe970997aeb1a7a439c8f73f">verifySizeSignature</a> (const <a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, char *t)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#a10497faa43c94377a14fe5a07622e38">verifyMD5Signature</a> (const <a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, char *t, <a class="el" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> md5ctx)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#703e1c6b7fcdbcfaf8ddd44932725beb">verifySHA1Signature</a> (const <a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, char *t, <a class="el" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> sha1ctx)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Verify header immutable region SHA1 digest. <a href="#703e1c6b7fcdbcfaf8ddd44932725beb"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#4372d5b963f64b00a84fb6f4be898dbd">nibble</a> (char c)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert hex to binary nibble. <a href="#4372d5b963f64b00a84fb6f4be898dbd"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#e2acebafa2174d98238a46bf030fdb86">verifyRSASignature</a> (<a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, char *t, <a class="el" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> md5ctx)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Verify RSA signature. <a href="#e2acebafa2174d98238a46bf030fdb86"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#6ae59661f3eb5eb51e9594fbe8cb0921">verifyDSASignature</a> (<a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, char *t, <a class="el" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> sha1ctx)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Verify DSA signature. <a href="#6ae59661f3eb5eb51e9594fbe8cb0921"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__signature.html#gf8998cbf765cb5af427bba5648bd5443">rpmVerifySignature</a> (const <a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, char *result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Verify a signature from a package. <a href="group__signature.html#gf8998cbf765cb5af427bba5648bd5443"></a><br></td></tr> <tr><td colspan="2"><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char ** </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#a006daaf11f1e2e45a6ababaf463212b">environ</a> = NULL</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="signature_8c.html#68915b3bb540c3571a315f399cf2d981">header_magic</a> [8]</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <p> Definition in file <a class="el" href="signature_8c-source.html">signature.c</a>.<hr><h2>Function Documentation</h2> <a class="anchor" name="51268aa2ff45e9fc02b740225e507230"></a><!-- doxytag: member="signature.c::checkPassPhrase" ref="51268aa2ff45e9fc02b740225e507230" args="(const char *passPhrase, const int sigTag)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int checkPassPhrase </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>passPhrase</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const int </td> <td class="paramname"> <em>sigTag</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="signature_8c-source.html#l00858">858</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. <p> References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="lib_2misc_8c-source.html#l00110">dosetenv()</a>, <a class="el" href="signature_8c-source.html#l00030">environ</a>, <a class="el" href="system_8h.html#d65a8842cc674e3ddf69355898c0ecbf">errno</a>, <a class="el" href="group__signature.html#gg1d966dd5b3912fd9ad31dcbc2d18bf9541f784d0a4dd74e20fa71788f20a0638">PGP_2</a>, <a class="el" href="group__signature.html#gg1d966dd5b3912fd9ad31dcbc2d18bf95fd31bb850e17d4ea70203167a75ac5b4">PGP_5</a>, <a class="el" href="group__signature.html#gg1d966dd5b3912fd9ad31dcbc2d18bf952606afd97b623ff43251e020fedd0ed2">PGP_NOTDETECTED</a>, <a class="el" href="group__signature.html#gg1d966dd5b3912fd9ad31dcbc2d18bf95ab5d2b5e12a46791008961354900524d">PGP_UNKNOWN</a>, <a class="el" href="poptparse_8c-source.html#l00057">poptParseArgvString()</a>, <a class="el" href="signature_8c-source.html#l00073">rpmDetectPGPVersion()</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b0482feba1e22d097402ab9f8bafa5e8e">RPMERR_EXEC</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="macro_8c-source.html#l02148">rpmExpand()</a>, <a class="el" href="rpmmessages_8h-source.html#l00029">rpmIsVerbose</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#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="file_8h-source.html#l00323">strerror</a>, and <a class="el" href="system_8h.html#8c996258959222a38a0d4c35d8e22105">unsetenv()</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l00969">rpmGetPassPhrase()</a>. </div> </div><p> <a class="anchor" name="7451f59ca3dc18595360aceda48001e6"></a><!-- doxytag: member="signature.c::makeGPGSignature" ref="7451f59ca3dc18595360aceda48001e6" args="(const char *file, int_32 *sigTagp, byte **pktp, int_32 *pktlenp, const char *passPhrase)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int makeGPGSignature </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>file</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> * </td> <td class="paramname"> <em>sigTagp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> ** </td> <td class="paramname"> <em>pktp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> * </td> <td class="paramname"> <em>pktlenp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>passPhrase</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Generate GPG signature(s) for a header+payload file. <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>file</em> </td><td>header+payload 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>*sigTagp</em> </td><td>signature tag </td></tr> <tr><td valign="top"></td><td valign="top"><em>*pktp</em> </td><td>signature packet(s) </td></tr> <tr><td valign="top"></td><td valign="top"><em>*pktlenp</em> </td><td>signature packet(s) length </td></tr> </table> </dl> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>passPhrase</em> </td><td>private key pass phrase </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure </dd></dl> <p> Definition at line <a class="el" href="signature_8c-source.html#l00548">548</a> of file <a class="el" href="signature_8c-source.html">signature.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="macro_8c-source.html#l01883">addMacro()</a>, <a class="el" href="system_8h.html#eb1df3e83fb069eaa2eb66ace3a0ea52">alloca()</a>, <a class="el" href="macro_8c-source.html#l01909">delMacro()</a>, <a class="el" href="lib_2misc_8c-source.html#l00110">dosetenv()</a>, <a class="el" href="signature_8c-source.html#l00030">environ</a>, <a class="el" href="system_8h.html#d65a8842cc674e3ddf69355898c0ecbf">errno</a>, <a class="el" href="rpmio_8c-source.html#l02903">Fclose()</a>, <a class="el" href="rpmio_8c-source.html#l03280">Ferror()</a>, <a class="el" href="rpmio_8c-source.html#l03187">Fopen()</a>, <a class="el" href="rpmpgp_8c-source.html#l01172">pgpFreeDig()</a>, <a class="el" href="rpmpgp_8c-source.html#l01116">pgpNewDig()</a>, <a class="el" href="rpmpgp_8c-source.html#l01211">pgpPrtPkts()</a>, <a class="el" href="rpmpgp_8h.html#40b051ecf9ec18b011f737b2244cd038ed719534d762654b5d2eb00b93c4bab1">PGPPUBKEYALGO_DSA</a>, <a class="el" href="rpmpgp_8h.html#40b051ecf9ec18b011f737b2244cd03891f7b078af891e97ae8616c86bddedce">PGPPUBKEYALGO_RSA</a>, <a class="el" href="poptparse_8c-source.html#l00057">poptParseArgvString()</a>, <a class="el" href="rpmio__internal_8h-source.html#l00034">pgpDigParams_s::pubkey_algo</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b0482feba1e22d097402ab9f8bafa5e8e">RPMERR_EXEC</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="macro_8c-source.html#l02148">rpmExpand()</a>, <a class="el" href="rpmmessages_8h-source.html#l00011">RPMMESS_DEBUG</a>, <a class="el" href="rpmmessages_8h-source.html#l00020">rpmMessage</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="group__signature.html#gg42c7580fde696ff3b0f70bfb7bdade599ce79a6dc5f08f628da38c4f0ed8461f">RPMSIGTAG_SIZE</a>, <a class="el" href="rpmio__internal_8h-source.html#l00051">pgpDig_s::signature</a>, <a class="el" href="system_8h.html#890dbcd7c456828c1b6ff714e405fcc1">stpcpy()</a>, <a class="el" href="file_8h-source.html#l00323">strerror</a>, <a class="el" href="rpmio_8h-source.html#l00647">timedRead</a>, <a class="el" href="system_8h.html#8c996258959222a38a0d4c35d8e22105">unsetenv()</a>, and <a class="el" href="rpmmalloc_8c-source.html#l00024">xmalloc()</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l00701">makeHDRSignature()</a>, and <a class="el" href="signature_8c-source.html#l00805">rpmAddSignature()</a>. </div> </div><p> <a class="anchor" name="16a02a82d6d5f5352ac14ce0179020c9"></a><!-- doxytag: member="signature.c::makeHDRSignature" ref="16a02a82d6d5f5352ac14ce0179020c9" args="(Header sigh, const char *file, int_32 sigTag, const char *passPhrase)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int makeHDRSignature </td> <td>(</td> <td class="paramtype"><a class="el" href="structheaderToken__s.html">Header</a> </td> <td class="paramname"> <em>sigh</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>file</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> </td> <td class="paramname"> <em>sigTag</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>passPhrase</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Generate header only signature(s) from a header+payload file. <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>sigh</em> </td><td>signature header </td></tr> <tr><td valign="top"></td><td valign="top"><em>file</em> </td><td>header+payload file name </td></tr> <tr><td valign="top"></td><td valign="top"><em>sigTag</em> </td><td>type of signature(s) to add </td></tr> <tr><td valign="top"></td><td valign="top"><em>passPhrase</em> </td><td>private key pass phrase </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure </dd></dl> <p> Definition at line <a class="el" href="signature_8c-source.html#l00701">701</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. <p> References <a class="el" href="rpmlib_8h-source.html#l00058">_free()</a>, <a class="el" href="rpmio_8c-source.html#l02903">Fclose()</a>, <a class="el" href="rpmio_8c-source.html#l03280">Ferror()</a>, <a class="el" href="rpmio_8c-source.html#l03187">Fopen()</a>, <a class="el" href="package_8c-source.html#l00044">header_magic</a>, <a class="el" href="group__header.html#gg2572591faf5430cdf28aaf9f70d74fa4ebb6d0af72ae9d4c607e81796dafa472">HEADER_MAGIC_YES</a>, <a class="el" href="hdrinline_8h-source.html#l00315">headerAddEntry()</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#l00200">headerRead()</a>, <a class="el" href="hdrinline_8h-source.html#l00214">headerWrite()</a>, <a class="el" href="signature_8c-source.html#l00548">makeGPGSignature()</a>, <a class="el" href="signature_8c-source.html#l00399">makePGPSignature()</a>, <a class="el" href="lib_2misc_8c-source.html#l00122">makeTempFile()</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54efadb8ed49f2346f83847d7ef8e0efe24">PGPHASHALGO_SHA1</a>, <a class="el" href="group__header.html#gg24690e18a34d56e178edf27b5cc97fed96437c1222f63450e6ab8d693447d1bd">RPM_BIN_TYPE</a>, <a class="el" href="group__header.html#gg24690e18a34d56e178edf27b5cc97fed34cdc667815b86f8741fbf06ce4725eb">RPM_STRING_TYPE</a>, <a class="el" href="group__rpmio.html#gg42072ff4775f09dc80e11764dc0274695e623dd642f5283da2d878cd4cd1bd4e">RPMDIGEST_NONE</a>, <a class="el" href="digest_8c-source.html#l00129">rpmDigestFinal()</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="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="group__signature.html#gg42c7580fde696ff3b0f70bfb7bdade599ce79a6dc5f08f628da38c4f0ed8461f">RPMSIGTAG_SIZE</a>, and <a class="el" href="rpmlib_8h.html#342756dddb61d125ae851a8b1ab0507bbf199b0f74f4a4704e89b424c76ac4db">RPMTAG_HEADERIMMUTABLE</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l00805">rpmAddSignature()</a>. </div> </div><p> <a class="anchor" name="dfd0eb7c70e478dea185d46427998caa"></a><!-- doxytag: member="signature.c::makePGPSignature" ref="dfd0eb7c70e478dea185d46427998caa" args="(const char *file, int_32 *sigTagp, byte **pktp, int_32 *pktlenp, const char *passPhrase)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int makePGPSignature </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>file</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> * </td> <td class="paramname"> <em>sigTagp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="rpmpgp_8h.html#0c8186d9b9b7880309c27230bbb5e69d">byte</a> ** </td> <td class="paramname"> <em>pktp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="header_8h.html#e5c5e6fe946fcce0d2156db86ffffa8a">int_32</a> * </td> <td class="paramname"> <em>pktlenp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>passPhrase</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Generate PGP signature(s) for a header+payload file. <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>file</em> </td><td>header+payload 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>*sigTagp</em> </td><td>signature tag </td></tr> <tr><td valign="top"></td><td valign="top"><em>*pktp</em> </td><td>signature packet(s) </td></tr> <tr><td valign="top"></td><td valign="top"><em>*pktlenp</em> </td><td>signature packet(s) length </td></tr> </table> </dl> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>passPhrase</em> </td><td>private key pass phrase </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>0 on success, 1 on failure </dd></dl> <p> Definition at line <a class="el" href="signature_8c-source.html#l00399">399</a> of file <a class="el" href="signature_8c-source.html">signature.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="macro_8c-source.html#l01883">addMacro()</a>, <a class="el" href="system_8h.html#eb1df3e83fb069eaa2eb66ace3a0ea52">alloca()</a>, <a class="el" href="macro_8c-source.html#l01909">delMacro()</a>, <a class="el" href="lib_2misc_8c-source.html#l00110">dosetenv()</a>, <a class="el" href="signature_8c-source.html#l00030">environ</a>, <a class="el" href="system_8h.html#d65a8842cc674e3ddf69355898c0ecbf">errno</a>, <a class="el" href="rpmio_8c-source.html#l02903">Fclose()</a>, <a class="el" href="rpmio_8c-source.html#l03280">Ferror()</a>, <a class="el" href="rpmio_8c-source.html#l03187">Fopen()</a>, <a class="el" href="group__signature.html#gg1d966dd5b3912fd9ad31dcbc2d18bf9541f784d0a4dd74e20fa71788f20a0638">PGP_2</a>, <a class="el" href="group__signature.html#gg1d966dd5b3912fd9ad31dcbc2d18bf95fd31bb850e17d4ea70203167a75ac5b4">PGP_5</a>, <a class="el" href="group__signature.html#gg1d966dd5b3912fd9ad31dcbc2d18bf952606afd97b623ff43251e020fedd0ed2">PGP_NOTDETECTED</a>, <a class="el" href="group__signature.html#gg1d966dd5b3912fd9ad31dcbc2d18bf95ab5d2b5e12a46791008961354900524d">PGP_UNKNOWN</a>, <a class="el" href="rpmpgp_8c-source.html#l01172">pgpFreeDig()</a>, <a class="el" href="rpmpgp_8c-source.html#l01116">pgpNewDig()</a>, <a class="el" href="rpmpgp_8c-source.html#l01211">pgpPrtPkts()</a>, <a class="el" href="poptparse_8c-source.html#l00057">poptParseArgvString()</a>, <a class="el" href="signature_8c-source.html#l00073">rpmDetectPGPVersion()</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b0482feba1e22d097402ab9f8bafa5e8e">RPMERR_EXEC</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="macro_8c-source.html#l02148">rpmExpand()</a>, <a class="el" href="rpmmessages_8h-source.html#l00011">RPMMESS_DEBUG</a>, <a class="el" href="rpmmessages_8h-source.html#l00020">rpmMessage</a>, <a class="el" href="rpmio__internal_8h-source.html#l00051">pgpDig_s::signature</a>, <a class="el" href="system_8h.html#890dbcd7c456828c1b6ff714e405fcc1">stpcpy()</a>, <a class="el" href="file_8h-source.html#l00323">strerror</a>, <a class="el" href="rpmio_8h-source.html#l00647">timedRead</a>, <a class="el" href="system_8h.html#8c996258959222a38a0d4c35d8e22105">unsetenv()</a>, and <a class="el" href="rpmmalloc_8c-source.html#l00024">xmalloc()</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l00701">makeHDRSignature()</a>, and <a class="el" href="signature_8c-source.html#l00805">rpmAddSignature()</a>. </div> </div><p> <a class="anchor" name="4372d5b963f64b00a84fb6f4be898dbd"></a><!-- doxytag: member="signature.c::nibble" ref="4372d5b963f64b00a84fb6f4be898dbd" args="(char c)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static unsigned char nibble </td> <td>(</td> <td class="paramtype">char </td> <td class="paramname"> <em>c</em> </td> <td> ) </td> <td width="100%"><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Convert hex to binary nibble. <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>c</em> </td><td>hex character </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>binary nibble </dd></dl> <p> Definition at line <a class="el" href="signature_8c-source.html#l01189">1189</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. </div> </div><p> <a class="anchor" name="388ccc323ec5bc5ced2f60a1faa4d9b3"></a><!-- doxytag: member="signature.c::printSize" ref="388ccc323ec5bc5ced2f60a1faa4d9b3" args="(FD_t fd, int siglen, int pad, int datalen)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> printSize </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__FD__s.html">FD_t</a> </td> <td class="paramname"> <em>fd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>siglen</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>pad</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>datalen</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Print package size. <p> <dl compact><dt><b><a class="el" href="todo.html#_todo000079">Todo:</a></b></dt><dd>rpmio: use fdSize rather than fstat(2) to get file size. </dd></dl> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>fd</em> </td><td>package file handle </td></tr> <tr><td valign="top"></td><td valign="top"><em>siglen</em> </td><td>signature header size </td></tr> <tr><td valign="top"></td><td valign="top"><em>pad</em> </td><td>signature padding </td></tr> <tr><td valign="top"></td><td valign="top"><em>datalen</em> </td><td>length of header+payload </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>rpmRC return code </dd></dl> <p> Definition at line <a class="el" href="signature_8c-source.html#l00122">122</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. <p> References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="rpmio_8c-source.html#l03319">Fileno()</a>, <a class="el" href="rpmmessages_8h-source.html#l00011">RPMMESS_DEBUG</a>, <a class="el" href="rpmmessages_8h-source.html#l00020">rpmMessage</a>, <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e8012e6125219f145fbb73353bc6ccac5cfc">RPMRC_FAIL</a>, and <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l00155">rpmReadSignature()</a>. </div> </div><p> <a class="anchor" name="c4f70071020206b2cfb716c84522000e"></a><!-- doxytag: member="signature.c::rpmSigString" ref="c4f70071020206b2cfb716c84522000e" args="(rpmRC res)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static const char* rpmSigString </td> <td>(</td> <td class="paramtype"><a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> </td> <td class="paramname"> <em>res</em> </td> <td> ) </td> <td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="signature_8c-source.html#l01022">1022</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. <p> References <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>, and <a class="el" href="rpmlib_8h.html#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l01382">verifyDSASignature()</a>, <a class="el" href="signature_8c-source.html#l01076">verifyMD5Signature()</a>, <a class="el" href="signature_8c-source.html#l01210">verifyRSASignature()</a>, <a class="el" href="signature_8c-source.html#l01135">verifySHA1Signature()</a>, and <a class="el" href="signature_8c-source.html#l01039">verifySizeSignature()</a>. </div> </div><p> <a class="anchor" name="6ae59661f3eb5eb51e9594fbe8cb0921"></a><!-- doxytag: member="signature.c::verifyDSASignature" ref="6ae59661f3eb5eb51e9594fbe8cb0921" args="(rpmts ts, char *t, DIGEST_CTX sha1ctx)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> verifyDSASignature </td> <td>(</td> <td class="paramtype"><a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> </td> <td class="paramname"> <em>ts</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> </td> <td class="paramname"> <em>sha1ctx</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Verify DSA signature. <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> </td><td>transaction set </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>t</em> </td><td>verbose success/failure text </td></tr> </table> </dl> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sha1ctx</em> </td><td></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="signature_8c-source.html#l01382">1382</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. <p> References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="rpmsw_8h-source.html#l00035">rpmop_s::count</a>, <a class="el" href="rpmio__internal_8h-source.html#l00073">pgpDig_s::dsa</a>, <a class="el" href="rpmio__internal_8h-source.html#l00074">pgpDig_s::dsasig</a>, <a class="el" href="rpmio__internal_8h-source.html#l00028">pgpDigParams_s::hash</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#l00038">pgpDigParams_s::hashlen</a>, <a class="el" href="rpmio__internal_8h-source.html#l00059">pgpDig_s::hdrsha1ctx</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54efadb8ed49f2346f83847d7ef8e0efe24">PGPHASHALGO_SHA1</a>, <a class="el" href="rpmpgp_8h-source.html#l01060">pgpHexCvt()</a>, <a class="el" href="rpmpgp_8h.html#40b051ecf9ec18b011f737b2244cd038ed719534d762654b5d2eb00b93c4bab1">PGPPUBKEYALGO_DSA</a>, <a class="el" href="rpmio__internal_8h-source.html#l00034">pgpDigParams_s::pubkey_algo</a>, <a class="el" href="digest_8c-source.html#l00027">rpmDigestDup()</a>, <a class="el" href="digest_8c-source.html#l00129">rpmDigestFinal()</a>, <a class="el" href="digest_8c-source.html#l00103">rpmDigestUpdate()</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#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>, <a class="el" href="signature_8c-source.html#l01022">rpmSigString()</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="rpmsw_8c-source.html#l00101">rpmswEnter()</a>, <a class="el" href="rpmsw_8c-source.html#l00117">rpmswExit()</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#l01171">rpmtsDig()</a>, <a class="el" href="rpmts_8c-source.html#l00338">rpmtsFindPubkey()</a>, <a class="el" href="rpmts_8c-source.html#l01483">rpmtsOp()</a>, <a class="el" href="rpmts_8c-source.html#l01139">rpmtsSig()</a>, <a class="el" href="rpmts_8c-source.html#l01147">rpmtsSiglen()</a>, <a class="el" href="rpmts_8c-source.html#l01182">rpmtsSignature()</a>, <a class="el" href="rpmts_8c-source.html#l01123">rpmtsSigtag()</a>, <a class="el" href="rpmio__internal_8h-source.html#l00061">pgpDig_s::sha1</a>, <a class="el" href="rpmio__internal_8h-source.html#l00062">pgpDig_s::sha1len</a>, <a class="el" href="rpmio__internal_8h-source.html#l00039">pgpDigParams_s::signhash16</a>, <a class="el" href="rpmio__internal_8h-source.html#l00040">pgpDigParams_s::signid</a>, <a class="el" href="system_8h.html#890dbcd7c456828c1b6ff714e405fcc1">stpcpy()</a>, and <a class="el" href="rpmio__internal_8h-source.html#l00032">pgpDigParams_s::version</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l01477">rpmVerifySignature()</a>. </div> </div><p> <a class="anchor" name="a10497faa43c94377a14fe5a07622e38"></a><!-- doxytag: member="signature.c::verifyMD5Signature" ref="a10497faa43c94377a14fe5a07622e38" args="(const rpmts ts, char *t, DIGEST_CTX md5ctx)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> verifyMD5Signature </td> <td>(</td> <td class="paramtype">const <a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> </td> <td class="paramname"> <em>ts</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> </td> <td class="paramname"> <em>md5ctx</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="signature_8c-source.html#l01076">1076</a> of file <a class="el" href="signature_8c-source.html">signature.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="rpmsw_8h-source.html#l00035">rpmop_s::count</a>, <a class="el" href="rpmpgp_8h-source.html#l01060">pgpHexCvt()</a>, <a class="el" href="digest_8c-source.html#l00027">rpmDigestDup()</a>, <a class="el" href="digest_8c-source.html#l00129">rpmDigestFinal()</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#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>, <a class="el" href="signature_8c-source.html#l01022">rpmSigString()</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="rpmts_8h.html#91b5b6bbde8250526b406de6b91735e8a1b0a28f4a226d6ede631a48c893c699">RPMTS_OP_DIGEST</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#l01139">rpmtsSig()</a>, <a class="el" href="rpmts_8c-source.html#l01147">rpmtsSiglen()</a>, and <a class="el" href="system_8h.html#890dbcd7c456828c1b6ff714e405fcc1">stpcpy()</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l01477">rpmVerifySignature()</a>. </div> </div><p> <a class="anchor" name="e2acebafa2174d98238a46bf030fdb86"></a><!-- doxytag: member="signature.c::verifyRSASignature" ref="e2acebafa2174d98238a46bf030fdb86" args="(rpmts ts, char *t, DIGEST_CTX md5ctx)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> verifyRSASignature </td> <td>(</td> <td class="paramtype"><a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> </td> <td class="paramname"> <em>ts</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> </td> <td class="paramname"> <em>md5ctx</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Verify RSA signature. <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> </td><td>transaction set </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>t</em> </td><td>verbose success/failure text </td></tr> </table> </dl> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>md5ctx</em> </td><td></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="signature_8c-source.html#l01210">1210</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. <p> References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="rpmsw_8h-source.html#l00035">rpmop_s::count</a>, <a class="el" href="rpmio__internal_8h-source.html#l00028">pgpDigParams_s::hash</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#l00038">pgpDigParams_s::hashlen</a>, <a class="el" href="rpmio__internal_8h-source.html#l00067">pgpDig_s::hdrmd5ctx</a>, <a class="el" href="rpmio__internal_8h-source.html#l00069">pgpDig_s::md5</a>, <a class="el" href="rpmio__internal_8h-source.html#l00070">pgpDig_s::md5len</a>, <a class="el" href="rpmio__internal_8h-source.html#l00054">pgpDig_s::nbytes</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54e2645f0e71da93e9df6a98fae0f6206f6">PGPHASHALGO_HAVAL_5_160</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54e322cbc66a629ad8b3cfff47a0afb4c6b">PGPHASHALGO_MD2</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54ed06371dade65fdf985086d1461218820">PGPHASHALGO_MD5</a>, <a class="el" href="rpmpgp_8h.html#8d48cf9c33d66a07d2fee34b0875d54e4504cec1d192341bba8b61e8ea247a54">PGPHASHALGO_RIPEMD160</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_8h.html#8d48cf9c33d66a07d2fee34b0875d54e4ce911926cfe4e14187900b8540bc546">PGPHASHALGO_TIGER192</a>, <a class="el" href="rpmpgp_8h-source.html#l01060">pgpHexCvt()</a>, <a class="el" href="rpmpgp_8h.html#40b051ecf9ec18b011f737b2244cd03891f7b078af891e97ae8616c86bddedce">PGPPUBKEYALGO_RSA</a>, <a class="el" href="rpmpgp_8h.html#8fc331a64843a9be0bf76cf25bead0bfe841827cc53342cc3ecceb5ff5aa6cf9">PGPSIGTYPE_BINARY</a>, <a class="el" href="rpmio__internal_8h-source.html#l00034">pgpDigParams_s::pubkey_algo</a>, <a class="el" href="digest_8c-source.html#l00027">rpmDigestDup()</a>, <a class="el" href="digest_8c-source.html#l00129">rpmDigestFinal()</a>, <a class="el" href="digest_8c-source.html#l00103">rpmDigestUpdate()</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#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>, <a class="el" href="signature_8c-source.html#l01022">rpmSigString()</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="rpmsw_8c-source.html#l00101">rpmswEnter()</a>, <a class="el" href="rpmsw_8c-source.html#l00117">rpmswExit()</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#l01171">rpmtsDig()</a>, <a class="el" href="rpmts_8c-source.html#l00338">rpmtsFindPubkey()</a>, <a class="el" href="rpmts_8c-source.html#l01483">rpmtsOp()</a>, <a class="el" href="rpmts_8c-source.html#l01139">rpmtsSig()</a>, <a class="el" href="rpmts_8c-source.html#l01147">rpmtsSiglen()</a>, <a class="el" href="rpmts_8c-source.html#l01182">rpmtsSignature()</a>, <a class="el" href="rpmts_8c-source.html#l01123">rpmtsSigtag()</a>, <a class="el" href="rpmio__internal_8h-source.html#l00077">pgpDig_s::rsa</a>, <a class="el" href="rpmio__internal_8h-source.html#l00078">pgpDig_s::rsasig</a>, <a class="el" href="rpmio__internal_8h-source.html#l00039">pgpDigParams_s::signhash16</a>, <a class="el" href="rpmio__internal_8h-source.html#l00040">pgpDigParams_s::signid</a>, <a class="el" href="rpmio__internal_8h-source.html#l00037">pgpDigParams_s::sigtype</a>, <a class="el" href="system_8h.html#890dbcd7c456828c1b6ff714e405fcc1">stpcpy()</a>, and <a class="el" href="rpmio__internal_8h-source.html#l00032">pgpDigParams_s::version</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l01477">rpmVerifySignature()</a>. </div> </div><p> <a class="anchor" name="703e1c6b7fcdbcfaf8ddd44932725beb"></a><!-- doxytag: member="signature.c::verifySHA1Signature" ref="703e1c6b7fcdbcfaf8ddd44932725beb" args="(const rpmts ts, char *t, DIGEST_CTX sha1ctx)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> verifySHA1Signature </td> <td>(</td> <td class="paramtype">const <a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> </td> <td class="paramname"> <em>ts</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>t</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structDIGEST__CTX__s.html">DIGEST_CTX</a> </td> <td class="paramname"> <em>sha1ctx</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Verify header immutable region SHA1 digest. <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> </td><td>transaction set </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>t</em> </td><td>verbose success/failure text </td></tr> </table> </dl> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>sha1ctx</em> </td><td></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="signature_8c-source.html#l01135">1135</a> of file <a class="el" href="signature_8c-source.html">signature.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="digest_8c-source.html#l00027">rpmDigestDup()</a>, <a class="el" href="digest_8c-source.html#l00129">rpmDigestFinal()</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#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>, <a class="el" href="signature_8c-source.html#l01022">rpmSigString()</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="rpmts_8h.html#91b5b6bbde8250526b406de6b91735e8a1b0a28f4a226d6ede631a48c893c699">RPMTS_OP_DIGEST</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#l01139">rpmtsSig()</a>, <a class="el" href="rpmts_8c-source.html#l01147">rpmtsSiglen()</a>, and <a class="el" href="system_8h.html#890dbcd7c456828c1b6ff714e405fcc1">stpcpy()</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l01477">rpmVerifySignature()</a>. </div> </div><p> <a class="anchor" name="fd2b5b7efe970997aeb1a7a439c8f73f"></a><!-- doxytag: member="signature.c::verifySizeSignature" ref="fd2b5b7efe970997aeb1a7a439c8f73f" args="(const rpmts ts, char *t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="rpmlib_8h.html#06da857c39457bfb6ea9049643fdb706">rpmRC</a> verifySizeSignature </td> <td>(</td> <td class="paramtype">const <a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> </td> <td class="paramname"> <em>ts</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>t</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="signature_8c-source.html#l01039">1039</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. <p> References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="rpmio__internal_8h-source.html#l00054">pgpDig_s::nbytes</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#a30b10f32f3a5e820ec05d099993e801b6a502fb02cfd2c16380fa6ac52902d4">RPMRC_OK</a>, <a class="el" href="signature_8c-source.html#l01022">rpmSigString()</a>, <a class="el" href="rpmts_8c-source.html#l01171">rpmtsDig()</a>, <a class="el" href="rpmts_8c-source.html#l01139">rpmtsSig()</a>, and <a class="el" href="system_8h.html#890dbcd7c456828c1b6ff714e405fcc1">stpcpy()</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l01477">rpmVerifySignature()</a>. </div> </div><p> <hr><h2>Variable Documentation</h2> <a class="anchor" name="a006daaf11f1e2e45a6ababaf463212b"></a><!-- doxytag: member="signature.c::environ" ref="a006daaf11f1e2e45a6ababaf463212b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char** <a class="el" href="signature_8c.html#a006daaf11f1e2e45a6ababaf463212b">environ</a> = NULL </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="signature_8c-source.html#l00030">30</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. <p> Referenced by <a class="el" href="signature_8c-source.html#l00858">checkPassPhrase()</a>, <a class="el" href="rpmqv_8c-source.html#l00170">main()</a>, <a class="el" href="signature_8c-source.html#l00548">makeGPGSignature()</a>, <a class="el" href="signature_8c-source.html#l00399">makePGPSignature()</a>, <a class="el" href="legacy_8c-source.html#l00036">open_dso()</a>, <a class="el" href="rpmsq_8c-source.html#l00636">rpmsqExecve()</a>, and <a class="el" href="psm_8c-source.html#l00625">runScript()</a>. </div> </div><p> <a class="anchor" name="68915b3bb540c3571a315f399cf2d981"></a><!-- doxytag: member="signature.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="signature_8c-source.html#l00151">151</a> of file <a class="el" href="signature_8c-source.html">signature.c</a>. </div> </div><p> <hr size="1"><address style="align: right;"><small>Generated on 1 Oct 2013 for rpm by <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>