<?xml version="1.0" encoding="cp1251"?>
<?xml-stylesheet type="text/css" href="http://www.pgpru.com/styles/atom.css" media="screen"?>
<rss version="2.0">
<channel>
<title>openPGP в России/Разработки/Движок/GnuPG</title>
<link>http://www.pgpru.com/%D0%E0%E7%F0%E0%E1%EE%F2%EA%E8/%C4%E2%E8%E6%EE%EA/GnuPG</link>
<description>История изменений документа Разработки/Движок/GnuPG</description>
<copyright>http://www.pgpru.com/%CF%F0%EE%E5%EA%F2/%CF%F0%E0%E2%E8%EB%E0</copyright>
<language>ru</language>
<image>
<title>openPGP в России</title>
<link>http://www.pgpru.com/</link>
<url>http://www.pgpru.com/images/pgpru_banner.gif</url>
<width>88</width>
<height>31</height>
</image>
<item>
<title>Редакция от 17/06/2007 20:09</title>
<link>http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg/show?time=2007-06-17+20%3A09%3A56</link>
<guid isPermaLink="true">http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg</guid>
<description><![CDATA[<div class="pageBefore"></div><div class="page">
<h3>Сравнение редакций документа <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">Разработки / Движок / Gnu P G</a> от <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-17+20%3A09%3A56">17/06/2007 20:09</a> и <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">03/07/2007 21:34</a></h3>
<br />
<h2>Удалено:</h2><br />
<div class="deletions"><ol type="4"><li> Функциональное обеспечение публичного доступа к серверам ключей. <span class="cite">[в разработке]</span></li></ol>
Генерирует псевдослучайный идентификатор для протокола запрос-ответ (в настоящее время используется при загрузке ключа в профиль и при удалении ключа: пользователь своей цифровой подписью должен подтвердить, что обладает закрытой частью ключа). Генерация производится по следующей схеме:<br />
// OPENSPACE-GPG INTEGRATION CLASS version 0.5.2<br />
//	&ndash; keyserver search/query interface<br />
// CONSTANTS<br />
define('GPG_STATUS_LINE',		'[GNUPG:] ');<br />
define('GPG_VERSION_STRING',	'gpg (GnuPG)');<br />
define('GPG_VERSION_MIN',		'1.4.0');<br />
define('GPG_TEMP_FILE_SIZE',	262144);<br />
define('GPG_TEMP_RING_NAME',	'tempring');<br />
define('GPG_TEMP_FILE_NAME',	'tempfile');<br />
define('GPG_STATUS_NAME',		'status');<br />
define('GPG_STDERR_NAME',		'error');<br />
define('GPG_GENERAL_ERROR',		'openSpace-GPG: general operational error.');<br />
<div class="indent"><div class="indent">$this-&gt;secret	= sha1($this-&gt;engine-&gt;config['system_seed'].'secret');<br />
<div class="indent"><div class="indent"><div class="indent">'cl' =&gt; $request,			// command line params<br />
</div></div></div>if (!$str = trim($str, ' -')) return <span class="cite">;<br />
</div>// compose temporary keyring command line arguments<br />
function TempRing()<br />
<div class="indent">return "--no-default-keyring --keyring {$this-&gt;sessdir}/". GPG_TEMP_RING_NAME;<br />
<div class="indent">if ($this-&gt;engine-&gt;config['gpg_debug'] == true) return nl2br(str_replace("\r", </span>, $errorcodes));<br />
else return GPG_GENERAL_ERROR;<br />
</div></div>// $keyring defines source db to search: 'temp' or 'work'<br />
function GetList($keyring, $keyID = <span class="cite">)<br />
<div class="indent">if		($keyring == 'temp')	$ring = $this-&gt;TempRing();<br />
else if ($keyring == 'work')	$ring = </span>;<br />
if ($list = $this-&gt;Call("$ring <s>list-public-keys $keyID"))<br />
</div>// $keyring definition is the same as in the GetList() method.<br />
// $keyID and $keyring are required only in case $source = 'list'<br />
function DefineKey($source, $keyring = <span class="cite">, $keyID = </span>)<br />
<div class="indent"><div class="indent">if (false === $list = $this-&gt;GetList($keyring, $keyID))<br />
</div>if ($gpg = $this-&gt;Call('</s>version'))<br />
<div class="indent">$gpg = substr($gpg, 0, strpos($gpg, "\n"));<br />
if (stristr($gpg, GPG_VERSION_STRING) === false) return 2;<br />
// version number requirement is not met<br />
if (substr($gpg, strlen(GPG_VERSION_STRING.' ')) &lt; GPG_VERSION_MIN) return 3;<br />
</div></div>// $keyring definition is the same as in the GetList() method.<br />
function CheckPK($keyring, $keyID)<br />
<div class="indent">if (false == $list = $this-&gt;GetList($keyring, $keyID))<br />
$this-&gt;Call($this-&gt;TempRing()." <s>import", 'post', $keyblock);<br />
</div>// name may be passed along the key ID. returns:<br />
//	false	&ndash; defined key was found on server.<br />
//	array()	&ndash; 2D array containing usernames (array index 0) and<br />
//			 fingerprints (array index 1) if more than one key<br />
<em>			 was found. </em> of no use currently :-(<br />
<div class="indent">$this-&gt;Call($this-&gt;TempRing()." --keyserver $keyserver --recv-key $keyID");<br />
$pack	= $this-&gt;Call($this-&gt;TempRing()." --export $keyID");<br />
$this-&gt;Call("</s>import", 'post', $pack);<br />
$this-&gt;Call("<s>delete-key $fingerprint");<br />
</div>// extract selected public key from the keyring defined<br />
function GetPK($keyID, $keyring = 'work')<br />
<div class="indent">$key	= $this-&gt;Call(( $keyring == 'temp' ? $this-&gt;TempRing() : '' )." --export $keyID");<br />
$ciphertext	= $this-&gt;Call("</s>recipient $keyID --encrypt", 'post', $plaintext);<br />
</div>function VerifyMsg($data, $keyring = 'work')<br />
<div class="indent">$body = $this-&gt;Call(( $keyring == 'temp' ? $this-&gt;TempRing() : '' )." -v", 'post', $data);<br />
</div>// filename</div></div><br />
<h2>Добавлено:</h2><br />
<div class="additions"><ol type="4"><li> Функциональное обеспечение публичного доступа к серверам ключей.</li></ol>
Генерирует псевдослучайный идентификатор для протокола запрос-ответ (в настоящее время используется при загрузке ключа в профиль и удалении ключа, смене пароля и мэйл-адреса: пользователь своей цифровой подписью должен подтвердить, что обладает закрытой частью ключа или санкционирует производимые изменения). Генерация производится по следующей схеме:<br />
// OPENSPACE-GPG INTEGRATION CLASS version 0.6<br />
//	nothing currently<br />
<div class="indent">var $context	= <span class="cite">;		// keyring context<br />
var $override	= </span>;		// override global command line and config parameters<br />
<div class="indent">$this-&gt;secret	= sha1($this-&gt;engine-&gt;config['system_seed'].'some_secret_value');<br />
<div class="indent"><div class="indent"><div class="indent">'cl' =&gt; $this-&gt;override.' '.$request,	// command line params<br />
</div></div></div>if (!$str = trim(html_entity_decode($str), ' -')) return <span class="cite">;<br />
</div>// define keyring context. empty value means default keyring.<br />
// special 'temp' value means temporary ring being cleared<br />
// out by the object destructor. anything else is a keyring<br />
// filename under gpg_home dir (be careful not to point out<br />
// to any existing file)<br />
function SetContext($new = </span>)<br />
<div class="indent">if		($new == <span class="cite">)		return $this-&gt;context = </span>;<br />
else if	($new == 'temp')	return $this-&gt;context = "<s>no-default-keyring --keyring {$this-&gt;sessdir}/". GPG_TEMP_RING_NAME;<br />
else						return $this-&gt;context = "</s>no-default-keyring <s>keyring {$this-&gt;homedir}/".$new;<br />
<div class="indent">// MAC mismatch<br />
// procedure mismatch<br />
// token expired<br />
if ($this-&gt;engine-&gt;config['gpg_debug'] == true)<br />
<div class="indent">return nl2br("OpenSpace-GPG terminated, error output follows:\n</s><hr />\n".
str_replace("\r", <span class="cite">, $errorcodes));<br />
</div>else<br />
<div class="indent">return GPG_GENERAL_ERROR;<br />
</div></div></div>function GetList($keyID = </span>)<br />
<div class="indent">if ($list = $this-&gt;Call("{$this-&gt;context} <s>list-public-keys $keyID"))<br />
</div>// $keyID is required only for $source = 'list'<br />
function DefineKey($source, $keyID = '')<br />
<div class="indent"><div class="indent">if (false === $list = $this-&gt;GetList($keyID))<br />
</div>if ($gpg = $this-&gt;Call('</s>list-config'))<br />
<div class="indent">$gpg = explode("\n", $gpg);<br />
if (is_array($gpg) === false || false === is_array($sub = explode(':', $gpg[0])))
				 return 2;
			else
				if ($sub[0] == 'cfg' &amp;&amp; $sub[1] == 'version')
					// version number requirement is not met
					if ($sub[2] &lt; GPG_VERSION_MIN) return 3;
					return 2;
	function CheckPK($keyID)
		if (false == $list = $this-&gt;GetList($keyID))
		$_context = $this-&gt;context;
		$this-&gt;Call($this-&gt;SetContext('temp').&quot; --import&quot;, 'post', $keyblock);
		$this-&gt;context = $_context;
	// name may be passed along the key ID. returns one of the
	// following:
	//	false	&ndash; defined key wasn't found on server.
	//	array()	&ndash; indexed array (if more than one key was
	//			 found; of no use currently :-(
	//			[0] &ndash; username
	//			[1] &ndash; fingerprint
		$_context = $this-&gt;context;
		$this-&gt;Call($this-&gt;SetContext('temp').&quot; --keyserver $keyserver --recv-key $keyID&quot;);
		$this-&gt;context = $_context;
		$_context		= $this-&gt;context;
		$keyID			= $this-&gt;PrepareInput($keyID, 42);
		$pack			= $this-&gt;Call($this-&gt;SetContext('temp').&quot; --export $keyID&quot;);
		$this-&gt;context	= $_context;
		$this-&gt;Call(&quot;{$this-&gt;context} --import&quot;, 'post', $pack);
		$this-&gt;Call(&quot;{$this-&gt;context} --delete-key $fingerprint&quot;);
	// extract selected public key from the keyring
	function GetPK($keyID)
		$key	= $this-&gt;Call(&quot;{$this-&gt;context} --export $keyID&quot;);
		$ciphertext	= $this-&gt;Call(&quot;{$this-&gt;context} --recipient $keyID --encrypt&quot;, 'post', $plaintext);
	function VerifyMsg($data)
		$body = $this-&gt;Call(&quot;{$this-&gt;context} -v&quot;, 'post', $data);
	// binary object
	// send the given key to the keyserver. despite
	// returning Call() results function returns nothing,
	// and gpg status codes is empty too
	function SendPK($keyID, $keyserver = '')
		// defining keyserver
		if (!$keyserver) $keyserver = $this-&gt;engine-&gt;config['gpg_server'];
		else $keyserver = $this-&gt;PrepareInput($keyserver);
		$keyID = $this-&gt;PrepareInput($keyserver, 42);
		return $this-&gt;Call(&quot;{$this-&gt;context} --keyserver $keyserver --send-keys $keyID&quot;);
	// search $string on a public $keyserver.
	// returns associative array with keyIDs as keys
	// and indexed arrays as values. subarrays' values
	// are as follows:
	//	[0] &ndash; (str) primary key type
	//	[1] &ndash; (int) key length
	//	[2] &ndash; (int) key creation timestamp
	//	[3] &ndash; (str) status:
	//			'r' &ndash; revoked
	//	[4] &ndash; (array):
	//			(str) UID =&gt; (int) UID creation timestamp
	function SearchPK($string, $keyserver = '')
		// matches limit
		$max = 50;
		// defining keyserver
		if (!$keyserver) $keyserver = $this-&gt;engine-&gt;config['gpg_server'];
		else $keyserver = $this-&gt;PrepareInput($keyserver);
		// requesting key search
		if ($list = $this-&gt;Call(&quot;--keyserver $keyserver --search-key $string&quot;))
			array_shift($rows);
			// how many matches we've got (hoping
			// server returned matches count)?
			if (false === is_array($row = explode(':', $rows[0])))
			else if ($row[0] == 'info')
				// break flooding searches
				if ($max &lt; $i = (int)$row[2]) return false;
				$n = 0;
				array_shift($rows);
			// filling results array
			$results = array();
			if (! Isset($i) || $i &gt; 0) foreach ($rows as $row)<br />
<div class="indent">$cells = explode(':', $row);<br />
// new pubkey element<br />
if ($cells[0] == 'pub')<br />
<div class="indent">if (isset($i) && ++$n &gt; $i) break;	// this should not going to happen in the normal course of action, but what could be...<br />
if ($n &gt; $max) return false;		// break flooding searches<br />
<br />
switch ($cells[2])<br />
{<br />
<div class="indent">case '1':	$type = 'RSA';		break;<br />
case '3':	$type = 'RSA-S';	break;<br />
case '17':	$type = 'DSA';		break;<br />
default:	$type = 'Undefined';<br />
</div>}<br />
<br />
$results[$keyID = $cells[1]] = array(<br />
<div class="indent">0 =&gt; $type,<br />
1 =&gt; (int)$cells[3],<br />
2 =&gt; (int)$cells[4],<br />
3 =&gt; trim($cells[6]),<br />
4 =&gt; array()<br />
</div>);<br />
</div>// uid for the current pubkey element<br />
else if ($cells[0] == 'uid')<br />
<div class="indent">$results[$keyID][4][$cells[1]] = (int)$cells[2];</div></div></div></div></div></div></div>
]]></description>
<pubDate>Sun, 17 Jun 2007 20:09:56 +0400</pubDate>
</item>
<item>
<title>Редакция от 10/06/2007 22:57</title>
<link>http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg/show?time=2007-06-10+22%3A57%3A41</link>
<guid isPermaLink="true">http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg</guid>
<description><![CDATA[<div class="pageBefore"></div><div class="page">
<h3>Сравнение редакций документа <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">Разработки / Движок / Gnu P G</a> от <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-10+22%3A57%3A41">10/06/2007 22:57</a> и <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-17+20%3A09%3A56">17/06/2007 20:09</a></h3>
<br />
<h2>Удалено:</h2><br />
<div class="deletions"><div class="indent">// elements 1-3 may be null if input error encountered<br />
<div class="indent"><div class="indent">$body	// [4], always defined</div></div></div></div><br />
<h2>Добавлено:</h2><br />
<div class="additions"><div class="indent">//	[5] &ndash; additional status:<br />
//			0 = not relevant<br />
//			1 = expired key<br />
//			2 = expired signature<br />
//			3 = revoked key<br />
// elements [1]-[3] may be null if input error encountered<br />
<div class="indent"><div class="indent">$body,	// [4], always defined<br />
0,		// [5]<br />
else if ($code[0] == 'EXPKEYSIG')<br />
<div class="indent">// signature with expired key<br />
$results[5] = 1;<br />
</div>else if ($code[0] == 'EXPSIG')<br />
<div class="indent">// signature itself is expired<br />
$results[5] = 2;<br />
</div>else if ($code[0] == 'REVKEYSIG')<br />
<div class="indent">// signing key is revoked<br />
$results[5] = 3;</div></div></div></div></div></div>
]]></description>
<pubDate>Sun, 10 Jun 2007 22:57:41 +0400</pubDate>
</item>
<item>
<title>Редакция от 10/06/2007 22:06</title>
<link>http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg/show?time=2007-06-10+22%3A06%3A14</link>
<guid isPermaLink="true">http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg</guid>
<description><![CDATA[<div class="pageBefore"></div><div class="page">
<h3>Сравнение редакций документа <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">Разработки / Движок / Gnu P G</a> от <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-10+22%3A06%3A14">10/06/2007 22:06</a> и <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-10+22%3A57%3A41">10/06/2007 22:57</a></h3>
<br />
<h2>Удалено:</h2><br />
<div class="deletions"><div class="indent">function DecodePackets($ascii = <span class="cite">, $file = </span>)<br />
<div class="indent">if ($ascii)<br />
<div class="indent">return $this-&gt;Call('<s>list-packets', 'post', $ascii);<br />
</div>else if ($file)<br />
<div class="indent">return $this-&gt;Call('</s>list-packets '.$this-&gt;PrepareInput($file, 512));</div></div></div></div><br />
<h2>Добавлено:</h2><br />
<div class="additions"><div class="indent">function DecodePackets($data)<br />
<div class="indent">return $this-&gt;Call('--list-packets', 'post', $data);</div></div></div></div>
]]></description>
<pubDate>Sun, 10 Jun 2007 22:06:14 +0400</pubDate>
</item>
<item>
<title>Редакция от 09/06/2007 08:36</title>
<link>http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg/show?time=2007-06-09+08%3A36%3A32</link>
<guid isPermaLink="true">http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg</guid>
<description><![CDATA[<div class="pageBefore"></div><div class="page">
<h3>Сравнение редакций документа <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">Разработки / Движок / Gnu P G</a> от <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-09+08%3A36%3A32">09/06/2007 08:36</a> и <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-10+22%3A06%3A14">10/06/2007 22:06</a></h3>
<br />
<h2>Удалено:</h2><br />
<div class="deletions"><ol type="5"><li> Функциональное обеспечение публичного декодировщика OpenPGP-пакетов. <span class="cite">[в разработке]</span></li></ol>
// OPENSPACE-GPG INTEGRATION CLASS version 0.5.1<br />
//	&ndash; packets dump interface<br />
<div class="indent"><div class="indent">else $input = base64_encode(str_replace("\r", <span class="cite">, $input));<br />
else if (strpos($str, "</div></div>
")) return </span>;<br />
<div class="indent">//	'uploadpk'	&ndash; uploading a key into the user profile<br />
//	'deletepk'	&ndash; removing a key from the profile<br />
//	'changepwd'	&ndash; changing password for logged in user<br />
<div class="indent">return $token = "$time|$procedure</div></div>
".sha1($this-&gt;engine-&gt;config['system_seed'].session_id().$time.$procedure);<br />
<div class="indent"><div class="indent"><div class="indent">$rows	= explode("</div></div></div>
", str_replace("\r", '', $statuscodes));<br />
<div class="indent"><div class="indent"><div class="indent">$rows = explode("</div></div></div>
", $list);<br />
<div class="indent"><div class="indent"><div class="indent">$gpg = substr($gpg, 0, strpos($gpg, "</div></div></div>
"));<br />
<div class="indent"><div class="indent"><div class="indent"><div class="indent">// defining output elements<br />
// in case of bad signature we return long keyID, not a full FPR!<br />
// error encountered, aborting</div></div></div></div></div><br />
<h2>Добавлено:</h2><br />
<div class="additions"><ol type="5"><li> Функциональное обеспечение публичного декодировщика OpenPGP-пакетов.</li></ol>
// OPENSPACE-GPG INTEGRATION CLASS version 0.5.2<br />
<div class="indent"><div class="indent"><br />
</div><br />
<br />
<div class="indent"><br />
else $input = base64_encode($input);<br />
<br />
<br />
<br />
<div class="indent"><br />
</div></div><br />
<div class="indent">else if (strpos($str, "\n")) return <span class="cite">;<br />
<br />
</div><br />
<br />
//	'uploadpk'		&ndash; uploading a key into the user profile<br />
//	'deletepk'		&ndash; removing a key from the profile<br />
//	'changepwd'		&ndash; changing password for logged in user<br />
<div class="indent">return $token = "$time|$procedure\n".sha1($this-&gt;engine-&gt;config['system_seed'].session_id().$time.$procedure);<br />
</div><br />
<div class="indent"><div class="indent"><br />
</div><br />
<br />
</div><br />
<div class="indent"><br />
<br />
<div class="indent">$rows	= explode("\n", str_replace("\r", </span>, $statuscodes));<br />
</div></div><br />
<div class="indent"><br />
<br />
</div><br />
<div class="indent"><br />
<br />
<br />
<div class="indent">$rows = explode("\n", $list);<br />
</div></div><br />
<br />
<br />
<div class="indent"><div class="indent">$gpg = substr($gpg, 0, strpos($gpg, "\n"));<br />
<br />
</div></div><br />
<div class="indent"><br />
<br />
</div><br />
<br />
<div class="indent"><br />
<br />
</div><br />
<div class="indent"><div class="indent"><div class="indent"><br />
</div></div><br />
</div><br />
<br />
<div class="indent"><br />
<br />
</div><br />
<br />
<br />
<div class="indent"><br />
<br />
<div class="indent"><div class="indent">// defining output elements for good sig<br />
// in case of bad signature we return<br />
// long keyID, not a full FPR!<br />
</div>else if ($code[0] == 'ERRSIG')<br />
<div class="indent">// signature verification error (no pubkey?).<br />
// only long keyID is returned!<br />
$results[2] = $code[5];<br />
// (if applicable)<br />
// input error encountered, aborting<br />
</div></div><br />
</div><br />
// print packets listing for the given data<br />
// which may be passed as a plain text or a<br />
// filename<br />
function DecodePackets($ascii = <span class="cite">, $file = </span>)<br />
<div class="indent">if ($ascii)<br />
<div class="indent">return $this-&gt;Call('<s>list-packets', 'post', $ascii);<br />
</div>else if ($file)<br />
<div class="indent">return $this-&gt;Call('</s>list-packets '.$this-&gt;PrepareInput($file, 512));<br />
</div></div></div></div></div>
]]></description>
<pubDate>Sat, 09 Jun 2007 08:36:32 +0400</pubDate>
</item>
<item>
<title>Редакция от 07/06/2007 12:25</title>
<link>http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg/show?time=2007-06-07+12%3A25%3A38</link>
<guid isPermaLink="true">http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg</guid>
<description><![CDATA[<div class="pageBefore"></div><div class="page">
<h3>Сравнение редакций документа <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">Разработки / Движок / Gnu P G</a> от <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-07+12%3A25%3A38">07/06/2007 12:25</a> и <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-09+08%3A36%3A32">09/06/2007 08:36</a></h3>
<br />
<h2>Удалено:</h2><br />
<div class="deletions"><ol type="6"><li> Проверка цифровых подписей с пользовательских комментариев.</li></ol></div><br />
<h2>Добавлено:</h2><br />
<div class="additions"><ol type="6"><li> Проверка цифровых подписей для пользовательских комментариев.</li></ol></div></div>
]]></description>
<pubDate>Thu, 07 Jun 2007 12:25:38 +0400</pubDate>
</item>
<item>
<title>Редакция от 05/06/2007 17:06</title>
<link>http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg/show?time=2007-06-05+17%3A06%3A35</link>
<guid isPermaLink="true">http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg</guid>
<description><![CDATA[<div class="pageBefore"></div><div class="page">
<h3>Сравнение редакций документа <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">Разработки / Движок / Gnu P G</a> от <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-05+17%3A06%3A35">05/06/2007 17:06</a> и <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-07+12%3A25%3A38">07/06/2007 12:25</a></h3>
<br />
<h2>Удалено:</h2><br />
<div class="deletions">Задачами, решаемыми интеграцией GnuPG, являются: <br />
<ol type="4"><li> Функциональное обеспечение публичного доступа к серверам ключей. <span class="cite">[не реализовано]</span><br />
</li><li> Функциональное обеспечение публичного декодировщика OpenPGP-пакетов. <span class="cite">[не реализовано]</span><br />
</li><li> Проверка цифровых подписей с пользовательских комментариев. <span class="cite">[не реализовано]</span><br />
<div class="indent"><br />
</div><br />
<br />
<div class="indent"><br />
<br />
<br />
<br />
<div class="indent"><br />
</div></div><br />
<div class="indent"><br />
</div><br />
<br />
<br />
<div class="indent"><div class="indent"><br />
</div><br />
<br />
</div><br />
<div class="indent"><br />
<br />
</div><br />
<div class="indent"><br />
<br />
</div><br />
<div class="indent"><br />
<br />
<br />
</div><br />
<br />
<br />
<div class="indent"><div class="indent"><br />
</div></div><br />
<div class="indent"><br />
<br />
</div><br />
<br />
<div class="indent"><br />
<br />
</div><br />
<div class="indent"><div class="indent"><div class="indent"><br />
</div></div><br />
</div><br />
<br />
<div class="indent"><br />
<br />
</div><br />
<br />
<br />
<div class="indent"><br />
<br />
<br />
</div></li></ol>
# Stand-alone GPG configuration for openSpace-GPG <br />
# Copyright 1999-2003 CGI-Factory.com TM <br />
<div class="indent"><br />
</div></div><br />
<h2>Добавлено:</h2><br />
<div class="additions">Задачами, решаемыми интеграцией GnuPG, являются:<br />
<ol type="4"><li> Функциональное обеспечение публичного доступа к серверам ключей. <span class="cite">[в разработке]</span><br />
</li><li> Функциональное обеспечение публичного декодировщика OpenPGP-пакетов. <span class="cite">[в разработке]</span><br />
</li><li> Проверка цифровых подписей с пользовательских комментариев.</li></ol>
# Stand-alone GPG configuration for openSpace-GPG<br />
# Copyright 1999-2003 CGI-Factory.com TM</div></div>
]]></description>
<pubDate>Tue, 05 Jun 2007 17:06:35 +0400</pubDate>
</item>
<item>
<title>Редакция от 03/06/2007 20:43</title>
<link>http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg/show?time=2007-06-03+20%3A43%3A43</link>
<guid isPermaLink="true">http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg</guid>
<description><![CDATA[<div class="pageBefore"></div><div class="page">
<h3>Сравнение редакций документа <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">Разработки / Движок / Gnu P G</a> от <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-03+20%3A43%3A43">03/06/2007 20:43</a> и <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-05+17%3A06%3A35">05/06/2007 17:06</a></h3>
<br />
<h2>Удалено:</h2><br />
<div class="deletions">// OPENSPACE-GPG INTEGRATION CLASS version 0.5<br />
<div class="indent"><div class="indent">else if (strpos($str, "\n")) return <span class="cite">;<br />
return $token = "$time|$procedure\n".sha1($this-&gt;engine-&gt;config['system_seed'].session_id().$time.$procedure);<br />
<div class="indent">$rows	= explode("\n", str_replace("\r", </span>, $statuscodes));<br />
$rows = explode("\n", $list);<br />
$gpg = substr($gpg, 0, strpos($gpg, "\n"));</div></div></div>
comment openSpace-GPG &ndash; <a href="http://openspace.pgpru.com" target="_blank" title="" class="outerlink">http://openspace.pgpru.com</a><br />
<div class="indent">$value	=~ s/\n/\s/g;</div>
print "Content-Type: text/plain\n\n";<br />
print GPGIN "$pack\n";</div><br />
<h2>Добавлено:</h2><br />
<div class="additions">// OPENSPACE-GPG INTEGRATION CLASS version 0.5.1<br />
<div class="indent"><div class="indent">else if (strpos($str, "</div></div>
")) return <span class="cite">;<br />
<div class="indent"><div class="indent">return $token = "$time|$procedure</div></div>
".sha1($this-&gt;engine-&gt;config['system_seed'].session_id().$time.$procedure);<br />
<div class="indent"><div class="indent">else if ($tokenProc !== $procedure)<br />
<div class="indent">$rows	= explode("</div></div></div>
", str_replace("\r", </span>, $statuscodes));<br />
<div class="indent"><div class="indent"><div class="indent">$rows = explode("</div></div></div>
", $list);<br />
<div class="indent"><div class="indent"><div class="indent">$gpg = substr($gpg, 0, strpos($gpg, "</div></div></div>
"));<br />
comment openSpace-GPG &ndash; <a href="http://openspace.vladmiller.info" target="_blank" title="" class="outerlink">http://openspace.vladmiller.info</a><br />
<div class="indent">$value	=~ s/</div>
/\s/g;<br />
print "Content-Type: text/plain<br />
";<br />
print GPGIN "$pack<br />
";</div></div>
]]></description>
<pubDate>Sun, 03 Jun 2007 20:43:43 +0400</pubDate>
</item>
<item>
<title>Редакция от 25/05/2007 14:50</title>
<link>http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg/show?time=2007-05-25+14%3A50%3A50</link>
<guid isPermaLink="true">http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg</guid>
<description><![CDATA[<div class="pageBefore"></div><div class="page">
<h3>Сравнение редакций документа <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">Разработки / Движок / Gnu P G</a> от <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-05-25+14%3A50%3A50">25/05/2007 14:50</a> и <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-06-03+20%3A43%3A43">03/06/2007 20:43</a></h3>
<br />
<h2>Удалено:</h2><br />
<div class="deletions">comment openSpace-GPG &ndash; <a href="http://openspace.vladmiller.info" target="_blank" title="" class="outerlink">http://openspace.vladmiller.info</a></div><br />
<h2>Добавлено:</h2><br />
<div class="additions">comment openSpace-GPG &ndash; <a href="http://openspace.pgpru.com" target="_blank" title="" class="outerlink">http://openspace.pgpru.com</a></div></div>
]]></description>
<pubDate>Fri, 25 May 2007 14:50:50 +0400</pubDate>
</item>
<item>
<title>Редакция от 22/05/2007 16:07</title>
<link>http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg/show?time=2007-05-22+16%3A07%3A14</link>
<guid isPermaLink="true">http://www.pgpru.com/%25d0%25e0%25e7%25f0%25e0%25e1%25ee%25f2%25ea%25e8/%25c4%25e2%25e8%25e6%25ee%25ea/gnupg</guid>
<description><![CDATA[<div class="pageBefore"></div><div class="page">
<h3>Сравнение редакций документа <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg">Разработки / Движок / Gnu P G</a> от <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-05-22+16%3A07%3A14">22/05/2007 16:07</a> и <a href="http://www.pgpru.com/razrabotki/dvizhok/gnupg?time=2007-05-25+14%3A50%3A50">25/05/2007 14:50</a></h3>
<br />
<h2>Удалено:</h2><br />
<div class="deletions">Для предотвращения замены ключа лицом, получившим несанкционированный доступ к учетной записи пользователя, его удаление из профиля должно быть подтверждено соответствующим закрытым ключом с помощью протокола запрос/ответ (используя <tt>VerifyMsg()</tt>). В любом случае, злоумышленник сможет эффективно изменить пароль аккаунта и его электронную почту, однако закрепленный в профиле ключ останется крайней мерой, к которой легитимный пользователь сможет прибегнуть, чтобы восстановить свои права на регистрационное имя (при условии, что закрытый ключ пользователя не был также скомпрометирован).<br />
<div class="indent"><div class="indent"><div class="indent">// creating session files and setting correct privileges</div></div></div></div><br />
<h2>Добавлено:</h2><br />
<div class="additions"><ol type="2"><li> Авторизация (по протоколу запрос-ответ) ряда чувствительных операций: смены пользовательского пароля доступа и почтового адреса.
</li><li> Проверка цифровых подписей с пользовательских комментариев. <span class="cite">[не реализовано]</span></li></ol>
Для предотвращения замены ключа лицом, получившим несанкционированный доступ к учетной записи пользователя, его удаление из профиля должно быть подтверждено соответствующим закрытым ключом с помощью протокола запрос/ответ (используя <tt>VerifyMsg()</tt>). Аналогичная процедура предусмотрена для изменения пользовательского пароля и смены почтового адреса, что не позволит захватить аккаунт, не обладая закрытым ключом пользователя.<br />
<div class="indent"><div class="indent"><div class="indent">// creating session files and setting appropriate privileges<br />
</div></div>//	'changepwd'	&ndash; changing password for logged in user<br />
//	'changemail'	&ndash; changing email address</div></div></div>
]]></description>
<pubDate>Tue, 22 May 2007 16:07:14 +0400</pubDate>
</item>
</channel>
</rss>
