<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-13824</id>
	<title>Nabble - Exim Dev</title>
	<updated>2009-12-10T00:35:30Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/Exim-Dev-f13824.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Exim-Dev-f13824.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26723884</id>
	<title>[Bug 335] Shadow remote transports</title>
	<published>2009-12-10T00:35:30Z</published>
	<updated>2009-12-10T00:35:30Z</updated>
	<author>
		<name>Bugzilla from chibi@gol.com</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are the QA contact for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=335&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=335&lt;/a&gt;&lt;br&gt;&lt;br&gt;Christian Balzer &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26723884&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chibi@...&lt;/a&gt;&amp;gt; changed:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;What &amp;nbsp; &amp;nbsp;|Removed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |Added
&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CC| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26723884&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chibi@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #2 from Christian Balzer &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26723884&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chibi@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-10 08:35:29 ---
&lt;br&gt;If this is still on Nigel's plate, anybody's plate really, this is a feature
&lt;br&gt;that would be really useful in this day and age and has been requested on
&lt;br&gt;exim-users a number of times over the years. The real crux of the matter is to
&lt;br&gt;have something that can trigger a remote delivery upon a successful local
&lt;br&gt;delivery.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-335--Shadow-remote-transports-tp26723884p26723884.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26709655</id>
	<title>[Bug 929] New: acl_smtp_dkim not mentioned in ch40 &quot;Access Control Lists&quot;</title>
	<published>2009-12-09T04:48:14Z</published>
	<updated>2009-12-09T04:48:14Z</updated>
	<author>
		<name>Bugzilla from jethro.binks@strath.ac.uk</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=929&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=929&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Summary: acl_smtp_dkim not mentioned in ch40 &amp;quot;Access Control
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Lists&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Product: Exim
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Version: 4.70
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Platform: Other
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OS/Version: FreeBSD
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Status: NEW
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Severity: bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: medium
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Component: Documentation
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignedTo: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26709655&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nigel@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReportedBy: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26709655&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jethro.binks@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CC: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26709655&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;The new acl_smtp_dkim discussed in ch54 is not mentioned in ch40 &amp;quot;Access
&lt;br&gt;Control Lists&amp;quot;.
&lt;br&gt;&lt;br&gt;I suppose that &amp;quot;acl_smtp_dkim&amp;quot; needs to be added to the list in 40.2, maybe
&lt;br&gt;after acl_smtp_data, and a section inserted for it after 40.6, to the effect
&lt;br&gt;of:
&lt;br&gt;&lt;br&gt;===
&lt;br&gt;40.7 The SMTP DKIM ACL
&lt;br&gt;&lt;br&gt;The acl_smtp_dkim ACL is available only when Exim is compiled with DKIM support
&lt;br&gt;enabled (which is the default).
&lt;br&gt;&lt;br&gt;The ACL test specified by acl_smtp_dkim happens after a message has been
&lt;br&gt;received, and is executed for each DKIM signature found in a message. &amp;nbsp;If not
&lt;br&gt;otherwise specified, the default action is to accept.
&lt;br&gt;&lt;br&gt;For details on the operation of DKIM, see chapter 54.
&lt;br&gt;===
&lt;br&gt;&lt;br&gt;It is probably also appropriate for main config option dkim_verify_signers and
&lt;br&gt;global expansion variable $dkim_signers to be mentioned in the appropriate
&lt;br&gt;sections, and appear in the index.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-929--New%3A-acl_smtp_dkim-not-mentioned-in-ch40-%22Access-Control-Lists%22-tp26709655p26709655.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26705523</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-08T21:48:49Z</published>
	<updated>2009-12-08T21:48:49Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26705523&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; changed:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;What &amp;nbsp; &amp;nbsp;|Removed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |Added
&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp;Attachment #357 is|0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |1
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;obsolete| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #10 from Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26705523&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-09 05:48:49 ---
&lt;br&gt;Created an attachment (id=358)
&lt;br&gt;&amp;nbsp;--&amp;gt; (&lt;a href=&quot;http://bugs.exim.org/attachment.cgi?id=358&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/attachment.cgi?id=358&lt;/a&gt;)
&lt;br&gt;sig_atomic_t use and getgroups() return code checking
&lt;br&gt;&lt;br&gt;sorry for the spam
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26705523.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26705356</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-08T21:21:26Z</published>
	<updated>2009-12-08T21:21:26Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #9 from Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26705356&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-09 05:21:26 ---
&lt;br&gt;Bleh, focus. &amp;nbsp;Forgot to compile with that change. &amp;nbsp;Sorry, it's busted. &amp;nbsp;I suck.
&lt;br&gt;&amp;nbsp;Fix imminent
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26705356.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26705115</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-08T20:40:18Z</published>
	<updated>2009-12-08T20:40:18Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #8 from Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26705115&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-09 04:40:18 ---
&lt;br&gt;Created an attachment (id=357)
&lt;br&gt;&amp;nbsp;--&amp;gt; (&lt;a href=&quot;http://bugs.exim.org/attachment.cgi?id=357&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/attachment.cgi?id=357&lt;/a&gt;)
&lt;br&gt;check getgroups() returns, use sig_atomic_t for vars set from signal handlers
&lt;br&gt;&lt;br&gt;This patch against current CVS makes Exim a little more paranoid:
&lt;br&gt;&amp;nbsp;* check the return value of getgroups() for error
&lt;br&gt;&amp;nbsp;* use sig_atomic_t sizing, in addition to the volatile type qualifier, for
&lt;br&gt;vars set from signal handlers.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26705115.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26706333</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-08T20:17:00Z</published>
	<updated>2009-12-08T20:17:00Z</updated>
	<author>
		<name>Bugzilla from chibi@gol.com</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #7 from Christian Balzer &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26706333&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chibi@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-09 04:17:00 ---
&lt;br&gt;Yes, the machines mostly have ECC RAM and all have been tested for bad RAM
&lt;br&gt;during their burn-in phase. This happens also on machines that did NOT exhibit
&lt;br&gt;this problem with previous Exim and/or kernel versions.
&lt;br&gt;And I have been beating (with postal) the hell out of several i386 boxes with
&lt;br&gt;exactly the same versions as the affected AMD64 ones and been unable to
&lt;br&gt;generate a single crash.
&lt;br&gt;&lt;br&gt;If Andreas can cook up a version with the sigalarm patch, I'll be happy to give
&lt;br&gt;it a whirl. However given the data I have, it would seem that if this is the
&lt;br&gt;culprit, something in the kernels &amp;gt;2.6.24 must have triggered it.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26706333.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26703990</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-08T17:58:16Z</published>
	<updated>2009-12-08T17:58:16Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #6 from Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26703990&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-09 01:58:16 ---
&lt;br&gt;Note that &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553503&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553503&lt;/a&gt;&amp;nbsp;shows two
&lt;br&gt;full backtraces, with the problem happening in *different* locations, which is
&lt;br&gt;what makes me somewhat suspicious of the RAM.
&lt;br&gt;&lt;br&gt;The other obvious option would be that it's timing related and connected to
&lt;br&gt;SIGALRM handling having been established; I don't recall if timer expiry
&lt;br&gt;persists across an exec() and if this might be tied to an earlier signal set
&lt;br&gt;up? &amp;nbsp;Otherwise, it still seems unlikely that statbuf would be so bogus by the
&lt;br&gt;time SIGALRM is rigged to actually fire.
&lt;br&gt;&lt;br&gt;sigalrm_handler() sets its signal handler parameter to itself (to shut up
&lt;br&gt;compilers) which should be safe (int assignment) and sets sigalrm_seen true.
&lt;br&gt;&lt;br&gt;Now, sigalrm_seen is volatile BOOL, where BOOL is an int.
&lt;br&gt;&lt;br&gt;On a 64-bit platform, that might be iffy.
&lt;br&gt;&lt;br&gt;What happens if src/globals.c is edited, around line 1066:
&lt;br&gt;&amp;nbsp; volatile &amp;nbsp;BOOL sigalrm_seen &amp;nbsp; &amp;nbsp;= FALSE;
&lt;br&gt;&lt;br&gt;to change that to:
&lt;br&gt;&amp;nbsp; volatile sig_atomic_t sigalrm_seen = FALSE
&lt;br&gt;&lt;br&gt;?
&lt;br&gt;&lt;br&gt;-Phil
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26703990.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26703934</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-08T17:48:08Z</published>
	<updated>2009-12-08T17:48:08Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #5 from Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26703934&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-09 01:48:08 ---
&lt;br&gt;The value of statbuf is interesting. &amp;nbsp;I find it hard to believe that any file
&lt;br&gt;reasonably encountered has 4131212846 hard links, and the values of the times
&lt;br&gt;include (timeval).tv_sec from variously 98 years in the future, to over 4
&lt;br&gt;million years in the future.
&lt;br&gt;&lt;br&gt;This suggests that statbuf is uninitialised, which means that the death has to
&lt;br&gt;be happening fairly early on. &amp;nbsp;This narrows the range down to somewhere between
&lt;br&gt;the start of main() at 1296 and line 1493, where stderr is stat'd, unless the
&lt;br&gt;stat of stderr failed.
&lt;br&gt;&lt;br&gt;So, there are some user/group checks, all error-checked; possibly some
&lt;br&gt;OS-specific startup in OS_INIT, if defined; a check for a field patched from
&lt;br&gt;within the test harness, so that branch won't have been taken;
&lt;br&gt;setlocale(LC_ALL, &amp;quot;C&amp;quot;) which had better be very safe (or lots of daemons will
&lt;br&gt;be failing); SIGALRM handler setting; and a log_buffer malloc, error-checked.
&lt;br&gt;&lt;br&gt;Nothing in exim4_4.69-9.diff.gz looks relevant to me.
&lt;br&gt;&lt;br&gt;The user/group checks would have led to a failure with another stack frame in
&lt;br&gt;play, rather than at main().
&lt;br&gt;&lt;br&gt;OS_INIT is only defined for Cygwin.
&lt;br&gt;&lt;br&gt;Does the affected system have ECC RAM?
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26703934.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26706334</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-08T15:52:39Z</published>
	<updated>2009-12-08T15:52:39Z</updated>
	<author>
		<name>Bugzilla from chibi@gol.com</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #4 from Christian Balzer &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26706334&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chibi@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-08 23:52:38 ---
&lt;br&gt;&lt;br&gt;Got another coredump, but nothing new/different from the previous ones really.
&lt;br&gt;This version of the binary had a getgroups return code patch by Andreas in it,
&lt;br&gt;which obviously wasn't triggered. Anything else I can do to help squashing this
&lt;br&gt;elusive roach?
&lt;br&gt;---
&lt;br&gt;Core was generated by `/usr/sbin/exim4 -Mc 1NI1Aw-0001HF-OM'.
&lt;br&gt;Program terminated with signal 11, Segmentation fault.
&lt;br&gt;[New process 4914]
&lt;br&gt;#0 &amp;nbsp;main (argc=3, cargv=0x7fff51f66b88) at exim.c:1298
&lt;br&gt;1298 &amp;nbsp; &amp;nbsp;exim.c: No such file or directory.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; in exim.c
&lt;br&gt;(gdb) bt full
&lt;br&gt;#0 &amp;nbsp;main (argc=3, cargv=0x7fff51f66b88) at exim.c:1298
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arg_receive_timeout = 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arg_smtp_receive_timeout = 4812469
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arg_error_handling = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filter_sfd = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filter_ufd = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; group_count = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; i = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; list_queue_option = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; msg_action = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; msg_action_arg = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; namelen = 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; queue_only_reason = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; perl_start_option = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; recipients_arg = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sender_address_domain = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; test_retry_arg = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; test_rewrite_arg = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arg_queue_only = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; bi_option = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; checking = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; count_queue = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expansion_test = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; extract_recipients = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; forced_delivery = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f_end_dot = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deliver_give_up = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; list_queue = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; list_options = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; local_queue_only = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; more = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; one_msg_action = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; queue_only_set = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sender_ident_set = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; session_local_queue_only = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unprivileged = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; removed_privilege = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; usage_wanted = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; verify_address_mode = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; verify_as_sender = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; version_printed = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alias_arg = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; called_as = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; start_queue_run_id = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; stop_queue_run_id = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expansion_test_message = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ftest_domain = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ftest_localpart = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ftest_prefix = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ftest_suffix = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; real_sender_address = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; originator_home = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reset_point = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pw = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; statbuf = {st_dev = 140734568491728, st_ino = 140734568491672,
&lt;br&gt;&amp;nbsp; st_nlink = 4131212846, st_mode = 1375103616, st_uid = 32767, st_gid = 0,
&lt;br&gt;&amp;nbsp; pad0 = 0, st_rdev = 140734624118190, st_size = 0,
&lt;br&gt;&amp;nbsp; st_blksize = 140734625129288, st_blocks = 140733193388033, st_atim = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; tv_sec = 0, tv_nsec = 140733193388033}, st_mtim = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; tv_sec = 140734626215088, tv_nsec = 37}, st_ctim = {tv_sec = 4294967295,
&lt;br&gt;&amp;nbsp; &amp;nbsp; tv_nsec = 5666281712}, __unused = {140734625129288, 140734626284376,
&lt;br&gt;&amp;nbsp; &amp;nbsp; 140734568491776}}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; passed_qr_pid = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; passed_qr_pipe = &amp;lt;value optimized out&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; group_list = Cannot access memory at address 0x7fff51f267c0
&lt;br&gt;---
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26706334.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26677811</id>
	<title>Re: Updating PolarSSL files used by PDKIM</title>
	<published>2009-12-07T06:12:03Z</published>
	<updated>2009-12-07T06:12:03Z</updated>
	<author>
		<name>Bugzilla from tom@duncanthrax.net</name>
	</author>
	<content type="html">Andreas Metzler wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; I have gone over PDKIM and have updated/merged the files from PolarSSL
&lt;br&gt;&amp;gt; to 0.12.1. This release features this change which might have relevance for
&lt;br&gt;&amp;gt; pdkim.
&lt;br&gt;&lt;br&gt;Thanks Andreas! I have checked in the changes.
&lt;br&gt;&lt;br&gt;&amp;gt; On a sidenote the whole updating process is not lovely. Do you have a smart
&lt;br&gt;&amp;gt; script for that, or have you considered restructuring the code to make
&lt;br&gt;&amp;gt; importing a new upstream version easier?
&lt;br&gt;&lt;br&gt;My hope was that the PolarSSL code is relatively stable and would not 
&lt;br&gt;change too much. Naive, I know, but I wanted an implementation without 
&lt;br&gt;further compile- or runtime dependencies. :)
&lt;br&gt;&lt;br&gt;/tom
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Updating-PolarSSL-files-used-by-PDKIM-tp26663104p26677811.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26674064</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-06T20:14:19Z</published>
	<updated>2009-12-06T20:14:19Z</updated>
	<author>
		<name>Bugzilla from chibi@gol.com</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #3 from Christian Balzer &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26674064&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chibi@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-07 04:14:19 ---
&lt;br&gt;OK, I'm running a special debug version now and hoping for a crash.
&lt;br&gt;As a reminder for those who might have an Eureka moment given this hint, all
&lt;br&gt;the reporters of this bug experienced it only on AMD64 versions of the binary
&lt;br&gt;and I have not seen this happen on i386 (32bit) binaries on any machines here.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26674064.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26665277</id>
	<title>Re: [Bug 926] clamd 0.95 deprecates &quot;STREAM&quot; command</title>
	<published>2009-12-06T06:02:00Z</published>
	<updated>2009-12-06T06:02:00Z</updated>
	<author>
		<name>Jeremy Harris</name>
	</author>
	<content type="html">On 12/05/2009 01:27 AM, Phil Pennock wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ------- You are receiving this mail because: -------
&lt;br&gt;&amp;gt; You are on the CC list for the bug.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=926&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=926&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Phil Pennock&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26665277&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp;changed:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; What &amp;nbsp; &amp;nbsp;|Removed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |Added
&lt;br&gt;&amp;gt; ----------------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CC| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26665277&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --- Comment #1 from Phil Pennock&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26665277&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp; 2009-12-05 01:27:41 ---
&lt;br&gt;&amp;gt; Thanks for the heads-up.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Incidentally, it looks as though Exim has an undocumented feature (!!) in the
&lt;br&gt;&amp;gt; ClamAV scanning.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; As well as using the SCAN command for unix-domain sockets, if you configure a
&lt;br&gt;&amp;gt; second option of &amp;quot;local&amp;quot; for network sockets, it tells Exim to assume common
&lt;br&gt;&amp;gt; storage (which, given Exim's spool ownership, had better mean &amp;quot;same machine&amp;quot;)
&lt;br&gt;&amp;gt; and so again issues the SCAN command, instead of STREAM.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This would be a configuration of:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; av_scanner = clamd:192.0.2.42 1234:local
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Untested, but that's what the code appears to do.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; This is more efficient (avoids sending the files around) so is a win, if this
&lt;br&gt;&amp;gt; configuration can work for you.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -Phil
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;cf. &lt;a href=&quot;http://lists.exim.org/lurker/message/20070107.160455.b6eea57a.en.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/lurker/message/20070107.160455.b6eea57a.en.html&lt;/a&gt;&lt;br&gt;I found that it did not work (as of 4.69), but did with a minor patch.
&lt;br&gt;I've not tested 4.71, but the equivalent lines are around malware.c:1193
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Jeremy
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-926--New%3A-clamd-0.95-deprecates-%22STREAM%22-command-tp26645830p26665277.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26663103</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-05T18:26:29Z</published>
	<updated>2009-12-05T18:26:29Z</updated>
	<author>
		<name>Bugzilla from chibi@gol.com</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;Christian Balzer &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26663103&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chibi@...&lt;/a&gt;&amp;gt; changed:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;What &amp;nbsp; &amp;nbsp;|Removed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |Added
&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CC| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26663103&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chibi@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #2 from Christian Balzer &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26663103&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;chibi@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-06 02:26:28 ---
&lt;br&gt;The exim user is only a member of the exim group on both machines I have 
&lt;br&gt;coredumps from.
&lt;br&gt;As for the kernel call, I have no idea, but the kernel version is the only
&lt;br&gt;difference between Debian Lenny machines where this happens (in all it's
&lt;br&gt;infrequency) and not. 
&lt;br&gt;Also the 4.69 backport on Debian Etch machines (but of course here we have
&lt;br&gt;all different library versions as well) does not exhibit this problem and they
&lt;br&gt;all run nothing newer than 2.6.24 kernels.
&lt;br&gt;&lt;br&gt;I was hoping for more information out of the backtrace myself, but essentially
&lt;br&gt;I have very little clue what is going on here, not having dug so deep into the
&lt;br&gt;bowels of code since the days of 8 and 16bit processors. ;)
&lt;br&gt;&lt;br&gt;If Andreas can whip up a special gdb compiled version (though I thought all 
&lt;br&gt;that info was already in the exim4-blah-dbg package) I'll be happy to install
&lt;br&gt;it on the box with the most coredumps, which still could mean 1-2 days of
&lt;br&gt;waiting.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26663103.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26663104</id>
	<title>Updating PolarSSL files used by PDKIM</title>
	<published>2009-12-05T10:12:31Z</published>
	<updated>2009-12-05T10:12:31Z</updated>
	<author>
		<name>Bugzilla from eximusers@downhill.at.eu.org</name>
	</author>
	<content type="html">Hello,
&lt;br&gt;&lt;br&gt;I have gone over PDKIM and have updated/merged the files from PolarSSL
&lt;br&gt;to 0.12.1. This release features this change which might have relevance for
&lt;br&gt;pdkim.
&lt;br&gt;&lt;br&gt;* Fixed segfault on handling empty rsa_context in
&lt;br&gt;&amp;nbsp; rsa_check_pubkey() and rsa_check_privkey() (found by
&lt;br&gt;&amp;nbsp; code coverage tests).
&lt;br&gt;&lt;br&gt;The test in sample/ still succeeds and no compile time warnigs were
&lt;br&gt;introduced.
&lt;br&gt;&lt;br&gt;On a sidenote the whole updating process is not lovely. Do you have a smart
&lt;br&gt;script for that, or have you considered restructuring the code to make
&lt;br&gt;importing a new upstream version easier?
&lt;br&gt;&lt;br&gt;thanks, cu andreas
&lt;br&gt;&lt;br /&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;tt&gt;From 4ad8deb16a87fbdba6bb4efcfe643c077ebd5b22 Mon Sep 17 00:00:00 2001
&lt;br&gt;From: Andreas Metzler &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26663104&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ametzler@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Date: Sat, 5 Dec 2009 18:55:36 +0100
&lt;br&gt;Subject: [PATCH 1/2] Merge updated files from polarssl 0.12.1 (Part 1).
&lt;br&gt;&lt;br&gt;---
&lt;br&gt;&amp;nbsp;base64.c | &amp;nbsp; &amp;nbsp;6 +-
&lt;br&gt;&amp;nbsp;base64.h | &amp;nbsp; &amp;nbsp;9 ++-
&lt;br&gt;&amp;nbsp;bignum.c | &amp;nbsp; 75 +++++++++++++++++++----
&lt;br&gt;&amp;nbsp;bignum.h | &amp;nbsp;204 ++++++++++++++++++++++++++++++++++++++++++++++++++-----------
&lt;br&gt;&amp;nbsp;bn_mul.h | &amp;nbsp;202 +++++++++++++++++++++++++++++++++----------------------------
&lt;br&gt;&amp;nbsp;sha1.c &amp;nbsp; | &amp;nbsp; 10 ++-
&lt;br&gt;&amp;nbsp;sha1.h &amp;nbsp; | &amp;nbsp; &amp;nbsp;9 ++-
&lt;br&gt;&amp;nbsp;sha2.c &amp;nbsp; | &amp;nbsp; &amp;nbsp;6 +-
&lt;br&gt;&amp;nbsp;sha2.h &amp;nbsp; | &amp;nbsp; &amp;nbsp;5 +-
&lt;br&gt;&amp;nbsp;9 files changed, 367 insertions(+), 159 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/base64.c b/base64.c
&lt;br&gt;index eb7652e..948c691 100644
&lt;br&gt;--- a/base64.c
&lt;br&gt;+++ b/base64.c
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * &amp;nbsp;RFC 1521 base64 encoding/decoding
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -176,3 +177,4 @@ int base64_decode( unsigned char *dst, int *dlen,
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return( 0 );
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;diff --git a/base64.h b/base64.h
&lt;br&gt;index c837cd2..df5624e 100644
&lt;br&gt;--- a/base64.h
&lt;br&gt;+++ b/base64.h
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \file base64.h
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -22,8 +23,8 @@
&lt;br&gt;&amp;nbsp;#ifndef POLARSSL_BASE64_H
&lt;br&gt;&amp;nbsp;#define POLARSSL_BASE64_H
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#define POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0010
&lt;br&gt;-#define POLARSSL_ERR_BASE64_INVALID_CHARACTER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0012
&lt;br&gt;+#define POLARSSL_ERR_BASE64_BUFFER_TOO_SMALL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0010
&lt;br&gt;+#define POLARSSL_ERR_BASE64_INVALID_CHARACTER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0012
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#ifdef __cplusplus
&lt;br&gt;&amp;nbsp;extern &amp;quot;C&amp;quot; {
&lt;br&gt;diff --git a/bignum.c b/bignum.c
&lt;br&gt;index d9ea937..0d252d3 100644
&lt;br&gt;--- a/bignum.c
&lt;br&gt;+++ b/bignum.c
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * &amp;nbsp;Multi-precision integer library
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -27,6 +28,7 @@
&lt;br&gt;&amp;nbsp; * &amp;nbsp;http://math.libtomcrypt.com/files/tommath.pdf
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;#include &amp;quot;bignum.h&amp;quot;
&lt;br&gt;&amp;nbsp;#include &amp;quot;bn_mul.h&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -282,7 +284,15 @@ int mpi_read_string( mpi *X, int radix, char *s )
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_get_digit( &amp;d, radix, s[i] ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_mul_int( &amp;T, X, radix ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_add_int( X, &amp;T, d ) );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( X-&amp;gt;s == 1 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_add_int( X, &amp;T, d ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_sub_int( X, &amp;T, d ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -370,6 +380,10 @@ int mpi_write_string( mpi *X, int radix, char *s, int *slen )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_copy( &amp;T, X ) );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( T.s == -1 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;T.s = 1;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_write_hlp( &amp;T, radix, &amp;p ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -671,6 +685,11 @@ int mpi_add_abs( mpi *X, mpi *A, mpi *B )
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if( X != A )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_copy( X, A ) );
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * X should always be positive as a result of unsigned additions.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;X-&amp;gt;s = 1;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for( j = B-&amp;gt;n - 1; j &amp;gt;= 0; j-- )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( B-&amp;gt;p[j] != 0 )
&lt;br&gt;@@ -745,6 +764,11 @@ int mpi_sub_abs( mpi *X, mpi *A, mpi *B )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if( X != A )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_copy( X, A ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * X should always be positive as a result of unsigned substractions.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;X-&amp;gt;s = 1;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ret = 0;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for( n = B-&amp;gt;n - 1; n &amp;gt;= 0; n-- )
&lt;br&gt;@@ -856,7 +880,7 @@ int mpi_sub_int( mpi *X, mpi *A, int b )
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * Helper for mpi multiplication
&lt;br&gt;- */
&lt;br&gt;+ */ 
&lt;br&gt;&amp;nbsp;static void mpi_mul_hlp( int i, t_int *s, t_int *d, t_int b )
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;t_int c = 0, t = 0;
&lt;br&gt;@@ -1158,6 +1182,9 @@ int mpi_mod_mpi( mpi *R, mpi *A, mpi *B )
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;int ret;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( mpi_cmp_int( B, 0 ) &amp;lt; 0 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return POLARSSL_ERR_MPI_NEGATIVE_VALUE;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_div_mpi( NULL, R, A, B ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;while( mpi_cmp_int( R, 0 ) &amp;lt; 0 )
&lt;br&gt;@@ -1183,7 +1210,7 @@ int mpi_mod_int( t_int *r, mpi *A, int b )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_MPI_DIVISION_BY_ZERO );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if( b &amp;lt; 0 )
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;b = -b;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return POLARSSL_ERR_MPI_NEGATIVE_VALUE;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; * handle trivial cases
&lt;br&gt;@@ -1216,6 +1243,13 @@ int mpi_mod_int( t_int *r, mpi *A, int b )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;y -= z * b;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * If A is negative, then the current y represents a negative value.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; * Flipping it to the positive side.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; */
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( A-&amp;gt;s &amp;lt; 0 &amp;&amp; y != 0 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;y = b - y;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*r = y;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return( 0 );
&lt;br&gt;@@ -1362,7 +1396,7 @@ int mpi_exp_mod( mpi *X, mpi *A, mpi *E, mpi *N, mpi *_RR )
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for( i = 0; i &amp;lt; wsize - 1; i++ )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mpi_montmul( &amp;W[j], &amp;W[j], N, mm, &amp;T );
&lt;br&gt;-
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/*
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; * W[i] = W[i - 1] * W[1]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;@@ -1472,21 +1506,29 @@ cleanup:
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int mpi_gcd( mpi *G, mpi *A, mpi *B )
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp;int ret;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;int ret, lz, lzt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;mpi TG, TA, TB;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;mpi_init( &amp;TG, &amp;TA, &amp;TB, NULL );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_lset( &amp;TG, 1 ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_copy( &amp;TA, A ) );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_copy( &amp;TB, B ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;lz = mpi_lsb( &amp;TA );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;lzt = mpi_lsb( &amp;TB );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if ( lzt &amp;lt; lz )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lz = lzt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_shift_r( &amp;TA, lz ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_shift_r( &amp;TB, lz ) );
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;TA.s = TB.s = 1;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;while( mpi_cmp_int( &amp;TA, 0 ) != 0 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while( ( TA.p[0] &amp; 1 ) == 0 ) MPI_CHK( mpi_shift_r( &amp;TA, 1 ) );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while( ( TB.p[0] &amp; 1 ) == 0 ) MPI_CHK( mpi_shift_r( &amp;TB, 1 ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_shift_r( &amp;TA, mpi_lsb( &amp;TA ) ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_shift_r( &amp;TB, mpi_lsb( &amp;TB ) ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( mpi_cmp_mpi( &amp;TA, &amp;TB ) &amp;gt;= 0 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;@@ -1500,7 +1542,8 @@ int mpi_gcd( mpi *G, mpi *A, mpi *B )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_mul_mpi( G, &amp;TG, &amp;TB ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_shift_l( &amp;TB, lz ) );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_copy( G, &amp;TB ) );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;cleanup:
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -1509,6 +1552,8 @@ cleanup:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return( ret );
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+#if defined(POLARSSL_GENPRIME)
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * Modular inverse: X = A^-1 mod N &amp;nbsp;(HAC 14.61 / 14.64)
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -1636,7 +1681,11 @@ int mpi_is_prime( mpi *X, int (*f_rng)(void *), void *p_rng )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;mpi W, R, T, A, RR;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;unsigned char *p;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if( mpi_cmp_int( X, 0 ) == 0 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( mpi_cmp_int( X, 0 ) == 0 ||
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mpi_cmp_int( X, 1 ) == 0 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_MPI_NOT_ACCEPTABLE );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( mpi_cmp_int( X, 2 ) == 0 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( 0 );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;mpi_init( &amp;W, &amp;R, &amp;T, &amp;A, &amp;RR, NULL );
&lt;br&gt;@@ -1809,3 +1858,5 @@ cleanup:
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return( ret );
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+#endif
&lt;br&gt;diff --git a/bignum.h b/bignum.h
&lt;br&gt;index 5e71876..2139c5c 100644
&lt;br&gt;--- a/bignum.h
&lt;br&gt;+++ b/bignum.h
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \file bignum.h
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -24,13 +25,13 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#include &amp;lt;stdio.h&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#define POLARSSL_ERR_MPI_FILE_IO_ERROR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0002
&lt;br&gt;-#define POLARSSL_ERR_MPI_BAD_INPUT_DATA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0004
&lt;br&gt;-#define POLARSSL_ERR_MPI_INVALID_CHARACTER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0006
&lt;br&gt;-#define POLARSSL_ERR_MPI_BUFFER_TOO_SMALL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0008
&lt;br&gt;-#define POLARSSL_ERR_MPI_NEGATIVE_VALUE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x000A
&lt;br&gt;-#define POLARSSL_ERR_MPI_DIVISION_BY_ZERO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x000C
&lt;br&gt;-#define POLARSSL_ERR_MPI_NOT_ACCEPTABLE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x000E
&lt;br&gt;+#define POLARSSL_ERR_MPI_FILE_IO_ERROR &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0002
&lt;br&gt;+#define POLARSSL_ERR_MPI_BAD_INPUT_DATA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0004
&lt;br&gt;+#define POLARSSL_ERR_MPI_INVALID_CHARACTER &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0006
&lt;br&gt;+#define POLARSSL_ERR_MPI_BUFFER_TOO_SMALL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0008
&lt;br&gt;+#define POLARSSL_ERR_MPI_NEGATIVE_VALUE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x000A
&lt;br&gt;+#define POLARSSL_ERR_MPI_DIVISION_BY_ZERO &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x000C
&lt;br&gt;+#define POLARSSL_ERR_MPI_NOT_ACCEPTABLE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x000E
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#define MPI_CHK(f) if( ( ret = f ) != 0 ) goto cleanup
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -54,7 +55,9 @@ typedef unsigned long &amp;nbsp;t_dbl;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;defined(__ia64__) &amp;nbsp;|| defined(__alpha__)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;typedef unsigned int t_dbl __attribute__((mode(TI)));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;#else
&lt;br&gt;- &amp;nbsp; &amp;nbsp;typedef unsigned long long t_dbl;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;#if defined(POLARSSL_HAVE_LONGLONG)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;typedef unsigned long long t_dbl;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;#endif
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;#endif
&lt;br&gt;&amp;nbsp; &amp;nbsp;#endif
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;@@ -88,6 +91,9 @@ void mpi_free( mpi *X, ... );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Enlarge to the specified number of limbs
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI to grow
&lt;br&gt;+ * \param nblimbs &amp;nbsp;The target number of limbs
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -96,6 +102,9 @@ int mpi_grow( mpi *X, int nblimbs );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Copy the contents of Y into X
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param Y &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Source MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -103,12 +112,18 @@ int mpi_copy( mpi *X, mpi *Y );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Swap the contents of X and Y
&lt;br&gt;+ *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;First MPI value
&lt;br&gt;+ * \param Y &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Second MPI value
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;void mpi_swap( mpi *X, mpi *Y );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Set value from integer
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI to set
&lt;br&gt;+ * \param z &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Value to use
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -116,25 +131,31 @@ int mpi_lset( mpi *X, int z );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Return the number of least significant bits
&lt;br&gt;+ *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI to use
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int mpi_lsb( mpi *X );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Return the number of most significant bits
&lt;br&gt;+ *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI to use
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int mpi_msb( mpi *X );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Return the total size in bytes
&lt;br&gt;+ *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI to use
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int mpi_size( mpi *X );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Import from an ASCII string
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;destination mpi
&lt;br&gt;- * \param radix &amp;nbsp; &amp;nbsp;input numeric base
&lt;br&gt;- * \param s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;null-terminated string buffer
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param radix &amp;nbsp; &amp;nbsp;Input numeric base
&lt;br&gt;+ * \param s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Null-terminated string buffer
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful, or an POLARSSL_ERR_MPI_XXX error code
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -143,10 +164,10 @@ int mpi_read_string( mpi *X, int radix, char *s );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Export into an ASCII string
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;source mpi
&lt;br&gt;- * \param radix &amp;nbsp; &amp;nbsp;output numeric base
&lt;br&gt;- * \param s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;string buffer
&lt;br&gt;- * \param slen &amp;nbsp; &amp;nbsp; string buffer size
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Source MPI
&lt;br&gt;+ * \param radix &amp;nbsp; &amp;nbsp;Output numeric base
&lt;br&gt;+ * \param s &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String buffer
&lt;br&gt;+ * \param slen &amp;nbsp; &amp;nbsp; String buffer size
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful, or an POLARSSL_ERR_MPI_XXX error code
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;@@ -158,21 +179,21 @@ int mpi_write_string( mpi *X, int radix, char *s, int *slen );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Read X from an opened file
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;destination mpi
&lt;br&gt;- * \param radix &amp;nbsp; &amp;nbsp;input numeric base
&lt;br&gt;- * \param fin &amp;nbsp; &amp;nbsp; &amp;nbsp;input file handle
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param radix &amp;nbsp; &amp;nbsp;Input numeric base
&lt;br&gt;+ * \param fin &amp;nbsp; &amp;nbsp; &amp;nbsp;Input file handle
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful, or an POLARSSL_ERR_MPI_XXX error code
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int mpi_read_file( mpi *X, int radix, FILE *fin );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;- * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Write X into an opened file, or stdout
&lt;br&gt;+ * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Write X into an opened file, or stdout if fout is NULL
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * \param p &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;prefix, can be NULL
&lt;br&gt;- * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;source mpi
&lt;br&gt;- * \param radix &amp;nbsp; &amp;nbsp;output numeric base
&lt;br&gt;- * \param fout &amp;nbsp; &amp;nbsp; output file handle
&lt;br&gt;+ * \param p &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Prefix, can be NULL
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Source MPI
&lt;br&gt;+ * \param radix &amp;nbsp; &amp;nbsp;Output numeric base
&lt;br&gt;+ * \param fout &amp;nbsp; &amp;nbsp; Output file handle (can be NULL)
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful, or an POLARSSL_ERR_MPI_XXX error code
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;@@ -183,9 +204,9 @@ int mpi_write_file( char *p, mpi *X, int radix, FILE *fout );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Import X from unsigned binary data, big endian
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;destination mpi
&lt;br&gt;- * \param buf &amp;nbsp; &amp;nbsp; &amp;nbsp;input buffer
&lt;br&gt;- * \param buflen &amp;nbsp; input buffer size
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param buf &amp;nbsp; &amp;nbsp; &amp;nbsp;Input buffer
&lt;br&gt;+ * \param buflen &amp;nbsp; Input buffer size
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;@@ -195,21 +216,21 @@ int mpi_read_binary( mpi *X, unsigned char *buf, int buflen );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Export X into unsigned binary data, big endian
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;source mpi
&lt;br&gt;- * \param buf &amp;nbsp; &amp;nbsp; &amp;nbsp;output buffer
&lt;br&gt;- * \param buflen &amp;nbsp; output buffer size
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Source MPI
&lt;br&gt;+ * \param buf &amp;nbsp; &amp;nbsp; &amp;nbsp;Output buffer
&lt;br&gt;+ * \param buflen &amp;nbsp; Output buffer size
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_BUFFER_TOO_SMALL if buf isn't large enough
&lt;br&gt;- *
&lt;br&gt;- * \note &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Call this function with *buflen = 0 to obtain the
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; minimum required buffer size in *buflen.
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int mpi_write_binary( mpi *X, unsigned char *buf, int buflen );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-shift: X &amp;lt;&amp;lt;= count
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI to shift
&lt;br&gt;+ * \param count &amp;nbsp; &amp;nbsp;Amount to shift
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -218,6 +239,9 @@ int mpi_shift_l( mpi *X, int count );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-shift: X &amp;gt;&amp;gt;= count
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI to shift
&lt;br&gt;+ * \param count &amp;nbsp; &amp;nbsp;Amount to shift
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -226,6 +250,9 @@ int mpi_shift_r( mpi *X, int count );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Compare unsigned values
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param Y &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if |X| is greater than |Y|,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-1 if |X| is lesser &amp;nbsp;than |Y| or
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if |X| is equal to |Y|
&lt;br&gt;@@ -235,6 +262,9 @@ int mpi_cmp_abs( mpi *X, mpi *Y );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Compare signed values
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param Y &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if X is greater than Y,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-1 if X is lesser &amp;nbsp;than Y or
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if X is equal to Y
&lt;br&gt;@@ -244,6 +274,9 @@ int mpi_cmp_mpi( mpi *X, mpi *Y );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Compare signed values
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param z &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;The integer value to compare to
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if X is greater than z,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-1 if X is lesser &amp;nbsp;than z or
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if X is equal to z
&lt;br&gt;@@ -253,6 +286,10 @@ int mpi_cmp_int( mpi *X, int z );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Unsigned addition: X = |A| + |B|
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -261,6 +298,10 @@ int mpi_add_abs( mpi *X, mpi *A, mpi *B );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Unsigned substraction: X = |A| - |B|
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_NEGATIVE_VALUE if B is greater than A
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -269,6 +310,10 @@ int mpi_sub_abs( mpi *X, mpi *A, mpi *B );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Signed addition: X = A + B
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -277,6 +322,10 @@ int mpi_add_mpi( mpi *X, mpi *A, mpi *B );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Signed substraction: X = A - B
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -285,6 +334,10 @@ int mpi_sub_mpi( mpi *X, mpi *A, mpi *B );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Signed addition: X = A + b
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param b &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;The integer value to add
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -293,6 +346,10 @@ int mpi_add_int( mpi *X, mpi *A, int b );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Signed substraction: X = A - b
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param b &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;The integer value to subtract
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -301,6 +358,10 @@ int mpi_sub_int( mpi *X, mpi *A, int b );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Baseline multiplication: X = A * B
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -308,6 +369,12 @@ int mpi_mul_mpi( mpi *X, mpi *A, mpi *B );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Baseline multiplication: X = A * b
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Note: b is an unsigned integer type, thus
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Negative values of b are ignored.
&lt;br&gt;+ *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param b &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;The integer value to multiply with
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;@@ -317,6 +384,11 @@ int mpi_mul_int( mpi *X, mpi *A, t_int b );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Division by mpi: A = Q * B + R
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param Q &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI for the quotient
&lt;br&gt;+ * \param R &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI for the rest value
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_DIVISION_BY_ZERO if B == 0
&lt;br&gt;@@ -328,6 +400,11 @@ int mpi_div_mpi( mpi *Q, mpi *R, mpi *A, mpi *B );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Division by int: A = Q * b + R
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param Q &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI for the quotient
&lt;br&gt;+ * \param R &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI for the rest value
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param b &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Integer to divide by
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_DIVISION_BY_ZERO if b == 0
&lt;br&gt;@@ -339,24 +416,40 @@ int mpi_div_int( mpi *Q, mpi *R, mpi *A, int b );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Modulo: R = A mod B
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param R &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI for the rest value
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed,
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_DIVISION_BY_ZERO if B == 0
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_DIVISION_BY_ZERO if B == 0,
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_NEGATIVE_VALUE if B &amp;lt; 0
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int mpi_mod_mpi( mpi *R, mpi *A, mpi *B );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Modulo: r = A mod b
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param a &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination t_int
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param b &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Integer to divide by
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed,
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_DIVISION_BY_ZERO if b == 0
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_DIVISION_BY_ZERO if b == 0,
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_NEGATIVE_VALUE if b &amp;lt; 0
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int mpi_mod_int( t_int *r, mpi *A, int b );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Sliding-window exponentiation: X = A^E mod N
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI 
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param E &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exponent MPI
&lt;br&gt;+ * \param N &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Modular MPI
&lt;br&gt;+ * \param _RR &amp;nbsp; &amp;nbsp; &amp;nbsp;Speed-up MPI used for recalculations
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_BAD_INPUT_DATA if N is negative or even
&lt;br&gt;@@ -370,6 +463,10 @@ int mpi_exp_mod( mpi *X, mpi *A, mpi *E, mpi *N, mpi *_RR );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Greatest common divisor: G = gcd(A, B)
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param G &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param B &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -378,13 +475,46 @@ int mpi_gcd( mpi *G, mpi *A, mpi *B );
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Modular inverse: X = A^-1 mod N
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param A &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Left-hand MPI
&lt;br&gt;+ * \param N &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Right-hand MPI
&lt;br&gt;+ *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed,
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_BAD_INPUT_DATA if N is negative or nil
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_NOT_ACCEPTABLE if A has no inverse mod N
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_NOT_ACCEPTABLE if A has no inverse mod N
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int mpi_inv_mod( mpi *X, mpi *A, mpi *N );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+/**
&lt;br&gt;+ * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Miller-Rabin primality test
&lt;br&gt;+ *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MPI to check
&lt;br&gt;+ * \param f_rng &amp;nbsp; &amp;nbsp;RNG function
&lt;br&gt;+ * \param p_rng &amp;nbsp; &amp;nbsp;RNG parameter
&lt;br&gt;+ *
&lt;br&gt;+ * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful (probably prime),
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed,
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_NOT_ACCEPTABLE if X is not prime
&lt;br&gt;+ */
&lt;br&gt;+int mpi_is_prime( mpi *X, int (*f_rng)(void *), void *p_rng );
&lt;br&gt;+
&lt;br&gt;+/**
&lt;br&gt;+ * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Prime number generation
&lt;br&gt;+ *
&lt;br&gt;+ * \param X &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Destination MPI
&lt;br&gt;+ * \param nbits &amp;nbsp; &amp;nbsp;Required size of X in bits
&lt;br&gt;+ * \param dh_flag &amp;nbsp;If 1, then (X-1)/2 will be prime too
&lt;br&gt;+ * \param f_rng &amp;nbsp; &amp;nbsp;RNG function
&lt;br&gt;+ * \param p_rng &amp;nbsp; &amp;nbsp;RNG parameter
&lt;br&gt;+ *
&lt;br&gt;+ * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful (probably prime),
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 if memory allocation failed,
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; POLARSSL_ERR_MPI_BAD_INPUT_DATA if nbits is &amp;lt; 3
&lt;br&gt;+ */
&lt;br&gt;+int mpi_gen_prime( mpi *X, int nbits, int dh_flag,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int (*f_rng)(void *), void *p_rng );
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;#ifdef __cplusplus
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;diff --git a/bn_mul.h b/bn_mul.h
&lt;br&gt;index c9737f6..8f86ccf 100644
&lt;br&gt;--- a/bn_mul.h
&lt;br&gt;+++ b/bn_mul.h
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \file bn_mul.h
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -41,105 +42,120 @@
&lt;br&gt;&amp;nbsp;#if defined(__GNUC__)
&lt;br&gt;&amp;nbsp;#if defined(__i386__)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#define MULADDC_INIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %%ebx, %0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; : &amp;quot;=m&amp;quot; (t)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %0, %%esi &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; :: &amp;quot;m&amp;quot; (s)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %0, %%edi &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; :: &amp;quot;m&amp;quot; (d)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %0, %%ecx &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; :: &amp;quot;m&amp;quot; (c)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %0, %%ebx &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; :: &amp;quot;m&amp;quot; (b));
&lt;br&gt;-
&lt;br&gt;-#define MULADDC_CORE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;lodsl &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;mull &amp;nbsp; %ebx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;addl &amp;nbsp; %ecx, &amp;nbsp; %eax &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;adcl &amp;nbsp; $0, &amp;nbsp; &amp;nbsp; %edx &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;addl &amp;nbsp; (%edi), %eax &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;adcl &amp;nbsp; $0, &amp;nbsp; &amp;nbsp; %edx &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %edx, &amp;nbsp; %ecx &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;stosl &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot; );
&lt;br&gt;+#define MULADDC_INIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;asm( &amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %%ebx, %0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %5, %%esi; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %6, %%edi; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %7, %%ecx; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %8, %%ebx; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;
&lt;br&gt;+
&lt;br&gt;+#define MULADDC_CORE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lodsl; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mull &amp;nbsp; %%ebx; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addl &amp;nbsp; %%ecx, &amp;nbsp; %%eax; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;adcl &amp;nbsp; $0, &amp;nbsp; &amp;nbsp; &amp;nbsp;%%edx; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addl &amp;nbsp; (%%edi), %%eax; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;adcl &amp;nbsp; $0, &amp;nbsp; &amp;nbsp; &amp;nbsp;%%edx; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %%edx, &amp;nbsp; %%ecx; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;stosl; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#if defined(POLARSSL_HAVE_SSE2)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#define MULADDC_HUIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %ecx, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %ebx, &amp;nbsp; &amp;nbsp; %mm0 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; (%edi), &amp;nbsp; %mm3 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm3, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; (%esi), &amp;nbsp; %mm2 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;pmuludq &amp;nbsp;%mm0, &amp;nbsp; &amp;nbsp; %mm2 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 4(%esi), &amp;nbsp;%mm4 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;pmuludq &amp;nbsp;%mm0, &amp;nbsp; &amp;nbsp; %mm4 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 8(%esi), &amp;nbsp;%mm6 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;pmuludq &amp;nbsp;%mm0, &amp;nbsp; &amp;nbsp; %mm6 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 12(%esi), %mm7 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;pmuludq &amp;nbsp;%mm0, &amp;nbsp; &amp;nbsp; %mm7 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm2, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 4(%edi), &amp;nbsp;%mm3 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm4, &amp;nbsp; &amp;nbsp; %mm3 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 8(%edi), &amp;nbsp;%mm5 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm6, &amp;nbsp; &amp;nbsp; %mm5 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 12(%edi), %mm4 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm4, &amp;nbsp; &amp;nbsp; %mm7 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %mm1, &amp;nbsp; &amp;nbsp; (%edi) &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 16(%esi), %mm2 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;pmuludq &amp;nbsp;%mm0, &amp;nbsp; &amp;nbsp; %mm2 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 20(%esi), %mm4 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;pmuludq &amp;nbsp;%mm0, &amp;nbsp; &amp;nbsp; %mm4 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm3, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 24(%esi), %mm6 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;pmuludq &amp;nbsp;%mm0, &amp;nbsp; &amp;nbsp; %mm6 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %mm1, &amp;nbsp; &amp;nbsp; 4(%edi) &amp;nbsp;&amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 28(%esi), %mm3 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;pmuludq &amp;nbsp;%mm0, &amp;nbsp; &amp;nbsp; %mm3 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm5, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 16(%edi), %mm5 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm5, &amp;nbsp; &amp;nbsp; %mm2 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %mm1, &amp;nbsp; &amp;nbsp; 8(%edi) &amp;nbsp;&amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm7, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 20(%edi), %mm5 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm5, &amp;nbsp; &amp;nbsp; %mm4 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %mm1, &amp;nbsp; &amp;nbsp; 12(%edi) &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm2, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 24(%edi), %mm5 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm5, &amp;nbsp; &amp;nbsp; %mm6 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %mm1, &amp;nbsp; &amp;nbsp; 16(%edi) &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm4, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; 28(%edi), %mm5 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm5, &amp;nbsp; &amp;nbsp; %mm3 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %mm1, &amp;nbsp; &amp;nbsp; 20(%edi) &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm6, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %mm1, &amp;nbsp; &amp;nbsp; 24(%edi) &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;paddq &amp;nbsp; &amp;nbsp;%mm3, &amp;nbsp; &amp;nbsp; %mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %mm1, &amp;nbsp; &amp;nbsp; 28(%edi) &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;addl &amp;nbsp; &amp;nbsp; $32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%edi &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;addl &amp;nbsp; &amp;nbsp; $32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%esi &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp;%mm1 &amp;nbsp; &amp;nbsp; &amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movd &amp;nbsp; &amp;nbsp; %mm1, &amp;nbsp; &amp;nbsp; %ecx &amp;nbsp; &amp;nbsp; &amp;quot; );
&lt;br&gt;-
&lt;br&gt;-#define MULADDC_STOP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;emms &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; ); &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %0, %%ebx &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; :: &amp;quot;m&amp;quot; (t)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %%ecx, %0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; : &amp;quot;=m&amp;quot; (c)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %%edi, %0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; : &amp;quot;=m&amp;quot; (d)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %%esi, %0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; : &amp;quot;=m&amp;quot; (s) :: \
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;eax&amp;quot;, &amp;quot;ecx&amp;quot;, &amp;quot;edx&amp;quot;, &amp;quot;esi&amp;quot;, &amp;quot;edi&amp;quot; );
&lt;br&gt;+#define MULADDC_HUIT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%ecx, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%ebx, &amp;nbsp; &amp;nbsp; %%mm0; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; (%%edi), &amp;nbsp; %%mm3; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm3, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; (%%esi), &amp;nbsp; %%mm2; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmuludq &amp;nbsp;%%mm0, &amp;nbsp; &amp;nbsp; %%mm2; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 4(%%esi), &amp;nbsp;%%mm4; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmuludq &amp;nbsp;%%mm0, &amp;nbsp; &amp;nbsp; %%mm4; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 8(%%esi), &amp;nbsp;%%mm6; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmuludq &amp;nbsp;%%mm0, &amp;nbsp; &amp;nbsp; %%mm6; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 12(%%esi), %%mm7; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmuludq &amp;nbsp;%%mm0, &amp;nbsp; &amp;nbsp; %%mm7; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm2, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 4(%%edi), &amp;nbsp;%%mm3; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm4, &amp;nbsp; &amp;nbsp; %%mm3; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 8(%%edi), &amp;nbsp;%%mm5; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm6, &amp;nbsp; &amp;nbsp; %%mm5; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 12(%%edi), %%mm4; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm4, &amp;nbsp; &amp;nbsp; %%mm7; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%mm1, &amp;nbsp; &amp;nbsp; (%%edi); &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 16(%%esi), %%mm2; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmuludq &amp;nbsp;%%mm0, &amp;nbsp; &amp;nbsp; %%mm2; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 20(%%esi), %%mm4; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmuludq &amp;nbsp;%%mm0, &amp;nbsp; &amp;nbsp; %%mm4; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm3, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 24(%%esi), %%mm6; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmuludq &amp;nbsp;%%mm0, &amp;nbsp; &amp;nbsp; %%mm6; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%mm1, &amp;nbsp; &amp;nbsp; 4(%%edi); &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 28(%%esi), %%mm3; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;pmuludq &amp;nbsp;%%mm0, &amp;nbsp; &amp;nbsp; %%mm3; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm5, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 16(%%edi), %%mm5; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm5, &amp;nbsp; &amp;nbsp; %%mm2; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%mm1, &amp;nbsp; &amp;nbsp; 8(%%edi); &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm7, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 20(%%edi), %%mm5; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm5, &amp;nbsp; &amp;nbsp; %%mm4; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%mm1, &amp;nbsp; &amp;nbsp; 12(%%edi); &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm2, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 24(%%edi), %%mm5; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm5, &amp;nbsp; &amp;nbsp; %%mm6; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%mm1, &amp;nbsp; &amp;nbsp; 16(%%edi); &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm4, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; 28(%%edi), %%mm5; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm5, &amp;nbsp; &amp;nbsp; %%mm3; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%mm1, &amp;nbsp; &amp;nbsp; 20(%%edi); &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm6, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%mm1, &amp;nbsp; &amp;nbsp; 24(%%edi); &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;paddq &amp;nbsp; &amp;nbsp;%%mm3, &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%mm1, &amp;nbsp; &amp;nbsp; 28(%%edi); &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addl &amp;nbsp; &amp;nbsp; $32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%edi; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;addl &amp;nbsp; &amp;nbsp; $32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%esi; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;psrlq &amp;nbsp; &amp;nbsp;$32, &amp;nbsp; &amp;nbsp; &amp;nbsp; %%mm1; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movd &amp;nbsp; &amp;nbsp; %%mm1, &amp;nbsp; &amp;nbsp; %%ecx; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;
&lt;br&gt;+
&lt;br&gt;+#define MULADDC_STOP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;emms; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %4, %%ebx; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %%ecx, %1; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %%edi, %2; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %%esi, %3; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;quot;=m&amp;quot; (t), &amp;quot;=m&amp;quot; (c), &amp;quot;=m&amp;quot; (d), &amp;quot;=m&amp;quot; (s) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;quot;m&amp;quot; (t), &amp;quot;m&amp;quot; (s), &amp;quot;m&amp;quot; (d), &amp;quot;m&amp;quot; (c), &amp;quot;m&amp;quot; (b) &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;quot;eax&amp;quot;, &amp;quot;ecx&amp;quot;, &amp;quot;edx&amp;quot;, &amp;quot;esi&amp;quot;, &amp;quot;edi&amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;);
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#else
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#define MULADDC_STOP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %0, %%ebx &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; :: &amp;quot;m&amp;quot; (t)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %%ecx, %0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; : &amp;quot;=m&amp;quot; (c)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %%edi, %0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; : &amp;quot;=m&amp;quot; (d)); &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;asm( &amp;quot;movl &amp;nbsp; %%esi, %0 &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; : &amp;quot;=m&amp;quot; (s) :: \
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;eax&amp;quot;, &amp;quot;ecx&amp;quot;, &amp;quot;edx&amp;quot;, &amp;quot;esi&amp;quot;, &amp;quot;edi&amp;quot; );
&lt;br&gt;-
&lt;br&gt;+#define MULADDC_STOP &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %4, %%ebx; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %%ecx, %1; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %%edi, %2; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;movl &amp;nbsp; %%esi, %3; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;quot;=m&amp;quot; (t), &amp;quot;=m&amp;quot; (c), &amp;quot;=m&amp;quot; (d), &amp;quot;=m&amp;quot; (s) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;quot;m&amp;quot; (t), &amp;quot;m&amp;quot; (s), &amp;quot;m&amp;quot; (d), &amp;quot;m&amp;quot; (c), &amp;quot;m&amp;quot; (b) &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &amp;quot;eax&amp;quot;, &amp;quot;ecx&amp;quot;, &amp;quot;edx&amp;quot;, &amp;quot;esi&amp;quot;, &amp;quot;edi&amp;quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;);
&lt;br&gt;&amp;nbsp;#endif /* SSE2 */
&lt;br&gt;&amp;nbsp;#endif /* i386 */
&lt;br&gt;&amp;nbsp;
&lt;br&gt;diff --git a/sha1.c b/sha1.c
&lt;br&gt;index f4a12e3..fcda11e 100644
&lt;br&gt;--- a/sha1.c
&lt;br&gt;+++ b/sha1.c
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * &amp;nbsp;FIPS-180-1 compliant SHA-1 implementation
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -308,7 +309,7 @@ void sha1_finish( sha1_context *ctx, unsigned char output[20] )
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * output = SHA-1( input buffer )
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-void sha1_oneshot( unsigned char *input, int ilen, unsigned char output[20] )
&lt;br&gt;+void sha1( unsigned char *input, int ilen, unsigned char output[20] )
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;sha1_context ctx;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -361,7 +362,7 @@ void sha1_hmac_starts( sha1_context *ctx, unsigned char *key, int keylen )
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if( keylen &amp;gt; 64 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sha1_oneshot( key, keylen, sum );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sha1( key, keylen, sum );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;keylen = 20;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;key = sum;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -420,3 +421,4 @@ void sha1_hmac( unsigned char *key, int keylen,
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;memset( &amp;ctx, 0, sizeof( sha1_context ) );
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;diff --git a/sha1.h b/sha1.h
&lt;br&gt;index 84f1f51..8d5c394 100644
&lt;br&gt;--- a/sha1.h
&lt;br&gt;+++ b/sha1.h
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \file sha1.h
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -25,6 +26,7 @@
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SHA-1 context structure
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;#ifndef HAVE_SHA1_CONTEXT
&lt;br&gt;&amp;nbsp;#define HAVE_SHA1_CONTEXT
&lt;br&gt;&amp;nbsp;typedef struct sha1_context sha1_context;
&lt;br&gt;@@ -40,6 +42,7 @@ struct sha1_context
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;unsigned char opad[64]; &amp;nbsp; &amp;nbsp; /*!&amp;lt; HMAC: outer padding &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;nbsp;};
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;#ifdef __cplusplus
&lt;br&gt;&amp;nbsp;extern &amp;quot;C&amp;quot; {
&lt;br&gt;&amp;nbsp;#endif
&lt;br&gt;@@ -75,7 +78,7 @@ void sha1_finish( sha1_context *ctx, unsigned char output[20] );
&lt;br&gt;&amp;nbsp; * \param ilen &amp;nbsp; &amp;nbsp; length of the input data
&lt;br&gt;&amp;nbsp; * \param output &amp;nbsp; SHA-1 checksum result
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-void sha1_oneshot( unsigned char *input, int ilen, unsigned char output[20] );
&lt;br&gt;+void sha1( unsigned char *input, int ilen, unsigned char output[20] );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Output = SHA-1( file contents )
&lt;br&gt;diff --git a/sha2.c b/sha2.c
&lt;br&gt;index e030f27..ed6d7ad 100644
&lt;br&gt;--- a/sha2.c
&lt;br&gt;+++ b/sha2.c
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * &amp;nbsp;FIPS-180-2 compliant SHA-256 implementation
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -427,3 +428,4 @@ void sha2_hmac( unsigned char *key, int keylen,
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;memset( &amp;ctx, 0, sizeof( sha2_context ) );
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;diff --git a/sha2.h b/sha2.h
&lt;br&gt;index 88ba1f5..8996093 100644
&lt;br&gt;--- a/sha2.h
&lt;br&gt;+++ b/sha2.h
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \file sha2.h
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;-- 
&lt;br&gt;1.6.3.3
&lt;br&gt;&lt;br&gt;&lt;/tt&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;br /&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;tt&gt;From 2914cf65b6ee06ac503b2e5b424b9aac96b7fbad Mon Sep 17 00:00:00 2001
&lt;br&gt;From: Andreas Metzler &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26663104&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ametzler@...&lt;/a&gt;&amp;gt;
&lt;br&gt;Date: Sat, 5 Dec 2009 18:57:19 +0100
&lt;br&gt;Subject: [PATCH 2/2] Merge updated files from polarssl 0.12.1 (Part 2).
&lt;br&gt;&lt;br&gt;---
&lt;br&gt;&amp;nbsp;pdkim.c | &amp;nbsp; &amp;nbsp;4 +-
&lt;br&gt;&amp;nbsp;rsa.c &amp;nbsp; | &amp;nbsp;115 ++++++++++++++++++++++++++++++++++++++++-----------------
&lt;br&gt;&amp;nbsp;rsa.h &amp;nbsp; | &amp;nbsp;126 ++++++++++++++++++++++++++++++++++++++++++++++-----------------
&lt;br&gt;&amp;nbsp;3 files changed, 174 insertions(+), 71 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/pdkim.c b/pdkim.c
&lt;br&gt;index 53d1c5a..b661e99 100644
&lt;br&gt;--- a/pdkim.c
&lt;br&gt;+++ b/pdkim.c
&lt;br&gt;@@ -1494,7 +1494,7 @@ DLLEXPORT int pdkim_feed_finish(pdkim_ctx *ctx, pdkim_signature **return_signatu
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rsa_pkcs1_sign( &amp;rsa, RSA_PRIVATE,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((sig-&amp;gt;algo == PDKIM_ALGO_RSA_SHA1)?
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RSA_SHA1:RSA_SHA256),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SIG_RSA_SHA1:SIG_RSA_SHA256),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(unsigned char *)headerhash,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(unsigned char *)sig-&amp;gt;sigdata ) != 0) {
&lt;br&gt;@@ -1588,7 +1588,7 @@ DLLEXPORT int pdkim_feed_finish(pdkim_ctx *ctx, pdkim_signature **return_signatu
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (rsa_pkcs1_verify(&amp;rsa,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RSA_PUBLIC,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;((sig-&amp;gt;algo == PDKIM_ALGO_RSA_SHA1)?
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RSA_SHA1:RSA_SHA256),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SIG_RSA_SHA1:SIG_RSA_SHA256),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(unsigned char *)headerhash,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(unsigned char *)sig-&amp;gt;sigdata) != 0) {
&lt;br&gt;diff --git a/rsa.c b/rsa.c
&lt;br&gt;index 2abec04..9fe6918 100644
&lt;br&gt;--- a/rsa.c
&lt;br&gt;+++ b/rsa.c
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * &amp;nbsp;The RSA public-key cryptosystem
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -34,6 +35,7 @@
&lt;br&gt;&amp;nbsp;#include &amp;lt;stdio.h&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+/* *************** begin copy from x509parse.c ********************/
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * ASN.1 DER decoding routines
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;@@ -131,6 +133,8 @@ static int asn1_get_mpi( unsigned char **p,
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return( ret );
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+/* *************** &amp;nbsp; end copy from x509parse.c ********************/
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;@@ -157,7 +161,10 @@ void rsa_init( rsa_context *ctx,
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;int rsa_check_pubkey( rsa_context *ctx )
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if( ( ctx-&amp;gt;N.p[0] &amp; 1 ) == 0 ||
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( !ctx-&amp;gt;N.p || !ctx-&amp;gt;E.p )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_KEY_CHECK_FAILED );
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( ( ctx-&amp;gt;N.p[0] &amp; 1 ) == 0 || 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( ctx-&amp;gt;E.p[0] &amp; 1 ) == 0 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_KEY_CHECK_FAILED );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -183,6 +190,9 @@ int rsa_check_privkey( rsa_context *ctx )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if( ( ret = rsa_check_pubkey( ctx ) ) != 0 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( ret );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( !ctx-&amp;gt;P.p || !ctx-&amp;gt;Q.p || !ctx-&amp;gt;D.p )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_KEY_CHECK_FAILED );
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;mpi_init( &amp;PQ, &amp;DE, &amp;P1, &amp;Q1, &amp;H, &amp;I, &amp;G, NULL );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;MPI_CHK( mpi_mul_mpi( &amp;PQ, &amp;ctx-&amp;gt;P, &amp;ctx-&amp;gt;Q ) );
&lt;br&gt;@@ -353,11 +363,11 @@ int rsa_pkcs1_decrypt( rsa_context *ctx,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int mode, int *olen,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned char *input,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned char *output,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int output_max_len)
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp; &amp;nbsp; int output_max_len)
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;int ret, ilen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;unsigned char *p;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;unsigned char buf[512];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;unsigned char buf[1024];
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ilen = ctx-&amp;gt;len;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -395,7 +405,7 @@ int rsa_pkcs1_decrypt( rsa_context *ctx,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if (ilen - (int)(p - buf) &amp;gt; output_max_len)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_OUTPUT_TO_LARGE );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	return( POLARSSL_ERR_RSA_OUTPUT_TOO_LARGE );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;*olen = ilen - (int)(p - buf);
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( output, p, *olen );
&lt;br&gt;@@ -424,24 +434,37 @@ int rsa_pkcs1_sign( rsa_context *ctx,
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;switch( hash_id )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_RAW:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_RAW:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - hashlen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_MD2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_MD4:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_MD5:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - 16 - 18;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_MD2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_MD4:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_MD5:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - 34;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - 35;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA224:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - 47;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA256:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - 51;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_SHA1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - 20 - 15;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA384:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - 67;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_SHA256:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - 32 - 19;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA512:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;nb_pad = olen - 3 - 83;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;@@ -463,34 +486,49 @@ int rsa_pkcs1_sign( rsa_context *ctx,
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;switch( hash_id )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_RAW:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_RAW:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, hash, hashlen );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_MD2:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_MD2:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, ASN1_HASH_MDX, 18 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p + 18, hash, 16 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p[13] = 2; break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_MD4:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_MD4:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, ASN1_HASH_MDX, 18 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p + 18, hash, 16 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p[13] = 4; break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_MD5:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_MD5:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, ASN1_HASH_MDX, 18 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p + 18, hash, 16 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p[13] = 5; break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_SHA1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA1:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, ASN1_HASH_SHA1, 15 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p + 15, hash, 20 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case RSA_SHA256:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, ASN1_HASH_SHA256, 19 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA224:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, ASN1_HASH_SHA2X, 19 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p + 19, hash, 28 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p[1] += 28; p[14] = 4; p[18] += 28; break;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA256:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, ASN1_HASH_SHA2X, 19 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p + 19, hash, 32 );
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p[1] += 32; p[14] = 1; p[18] += 32; break;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA384:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, ASN1_HASH_SHA2X, 19 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p + 19, hash, 48 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p[1] += 48; p[14] = 2; p[18] += 48; break;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;case SIG_RSA_SHA512:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p, ASN1_HASH_SHA2X, 19 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcpy( p + 19, hash, 64 );
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p[1] += 64; p[14] = 3; p[18] += 64; break;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;default:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_BAD_INPUT_DATA );
&lt;br&gt;@@ -513,7 +551,7 @@ int rsa_pkcs1_verify( rsa_context *ctx,
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;int ret, len, siglen;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;unsigned char *p, c;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;unsigned char buf[512];
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;unsigned char buf[1024];
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;siglen = ctx-&amp;gt;len;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -560,18 +598,18 @@ int rsa_pkcs1_verify( rsa_context *ctx,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( memcmp( p, ASN1_HASH_MDX, 18 ) != 0 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_VERIFY_FAILED );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( ( c == 2 &amp;&amp; hash_id == RSA_MD2 ) ||
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( c == 4 &amp;&amp; hash_id == RSA_MD4 ) ||
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( c == 5 &amp;&amp; hash_id == RSA_MD5 ) )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( ( c == 2 &amp;&amp; hash_id == SIG_RSA_MD2 ) ||
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( c == 4 &amp;&amp; hash_id == SIG_RSA_MD4 ) ||
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( c == 5 &amp;&amp; hash_id == SIG_RSA_MD5 ) )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( memcmp( p + 18, hash, 16 ) == 0 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( memcmp( p + 18, hash, 16 ) == 0 ) 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( 0 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_VERIFY_FAILED );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if( len == 35 &amp;&amp; hash_id == RSA_SHA1 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( len == 35 &amp;&amp; hash_id == SIG_RSA_SHA1 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( memcmp( p, ASN1_HASH_SHA1, 15 ) == 0 &amp;&amp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcmp( p + 15, hash, 20 ) == 0 )
&lt;br&gt;@@ -579,17 +617,24 @@ int rsa_pkcs1_verify( rsa_context *ctx,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_VERIFY_FAILED );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if( len == 51 &amp;&amp; hash_id == RSA_SHA256 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( ( len == 19 + 28 &amp;&amp; p[14] == 4 &amp;&amp; hash_id == SIG_RSA_SHA224 ) ||
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( len == 19 + 32 &amp;&amp; p[14] == 1 &amp;&amp; hash_id == SIG_RSA_SHA256 ) ||
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( len == 19 + 48 &amp;&amp; p[14] == 2 &amp;&amp; hash_id == SIG_RSA_SHA384 ) ||
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( len == 19 + 64 &amp;&amp; p[14] == 3 &amp;&amp; hash_id == SIG_RSA_SHA512 ) )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( memcmp( p, ASN1_HASH_SHA256, 19 ) == 0 &amp;&amp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcmp( p + 19, hash, 32 ) == 0 )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;	c = p[1] - 17;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p[1] = 17;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;p[14] = 0;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( p[18] == c &amp;&amp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcmp( p, ASN1_HASH_SHA2X, 18 ) == 0 &amp;&amp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;memcmp( p + 19, hash, c ) == 0 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( 0 );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( POLARSSL_ERR_RSA_VERIFY_FAILED );
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if( len == hashlen &amp;&amp; hash_id == RSA_RAW )
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if( len == hashlen &amp;&amp; hash_id == SIG_RSA_RAW )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if( memcmp( p, hash, hashlen ) == 0 )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return( 0 );
&lt;br&gt;@@ -611,7 +656,6 @@ void rsa_free( rsa_context *ctx )
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;ctx-&amp;gt;E, &amp;nbsp;&amp;ctx-&amp;gt;N, &amp;nbsp;NULL );
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * Parse a public RSA key
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -818,3 +862,4 @@ int rsa_parse_key( rsa_context *rsa, unsigned char *buf, int buflen,
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return( 0 );
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;diff --git a/rsa.h b/rsa.h
&lt;br&gt;index f3ba0cd..75626c7 100644
&lt;br&gt;--- a/rsa.h
&lt;br&gt;+++ b/rsa.h
&lt;br&gt;@@ -1,9 +1,10 @@
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \file rsa.h
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Based on XySSL: Copyright (C) 2006-2008 &amp;nbsp;Christophe Devine
&lt;br&gt;+ * &amp;nbsp;Copyright (C) 2006-2009, Paul Bakker &amp;lt;polarssl_maintainer at polarssl.org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;All rights reserved.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;- * &amp;nbsp;Copyright (C) 2009 &amp;nbsp;Paul Bakker &amp;lt;polarssl_maintainer at polarssl dot org&amp;gt;
&lt;br&gt;+ * &amp;nbsp;Joined copyright on original XySSL code with: Christophe Devine
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * &amp;nbsp;This program is free software; you can redistribute it and/or modify
&lt;br&gt;&amp;nbsp; * &amp;nbsp;it under the terms of the GNU General Public License as published by
&lt;br&gt;@@ -24,6 +25,9 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#include &amp;quot;bignum.h&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+/*
&lt;br&gt;+ * RSA Error codes
&lt;br&gt;+ */
&lt;br&gt;&amp;nbsp;#define POLARSSL_ERR_RSA_BAD_INPUT_DATA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0400
&lt;br&gt;&amp;nbsp;#define POLARSSL_ERR_RSA_INVALID_PADDING &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0410
&lt;br&gt;&amp;nbsp;#define POLARSSL_ERR_RSA_KEY_GEN_FAILED &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0420
&lt;br&gt;@@ -31,14 +35,24 @@
&lt;br&gt;&amp;nbsp;#define POLARSSL_ERR_RSA_PUBLIC_FAILED &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0440
&lt;br&gt;&amp;nbsp;#define POLARSSL_ERR_RSA_PRIVATE_FAILED &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0450
&lt;br&gt;&amp;nbsp;#define POLARSSL_ERR_RSA_VERIFY_FAILED &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0460
&lt;br&gt;-#define POLARSSL_ERR_RSA_OUTPUT_TO_LARGE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0470
&lt;br&gt;+#define POLARSSL_ERR_RSA_OUTPUT_TOO_LARGE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0470
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-#define POLARSSL_ERR_ASN1_OUT_OF_DATA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0014
&lt;br&gt;-#define POLARSSL_ERR_ASN1_UNEXPECTED_TAG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0016
&lt;br&gt;-#define POLARSSL_ERR_ASN1_INVALID_LENGTH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0018
&lt;br&gt;-#define POLARSSL_ERR_ASN1_LENGTH_MISMATCH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x001A
&lt;br&gt;-#define POLARSSL_ERR_ASN1_INVALID_DATA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x001C
&lt;br&gt;+/* *************** begin copy from x509.h &amp;nbsp;************************/
&lt;br&gt;+/*
&lt;br&gt;+ * ASN1 Error codes
&lt;br&gt;+ *
&lt;br&gt;+ * These error codes will be OR'ed to X509 error codes for
&lt;br&gt;+ * higher error granularity.
&lt;br&gt;+ */
&lt;br&gt;+#define POLARSSL_ERR_ASN1_OUT_OF_DATA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0014
&lt;br&gt;+#define POLARSSL_ERR_ASN1_UNEXPECTED_TAG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0016
&lt;br&gt;+#define POLARSSL_ERR_ASN1_INVALID_LENGTH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0018
&lt;br&gt;+#define POLARSSL_ERR_ASN1_LENGTH_MISMATCH &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x001A
&lt;br&gt;+#define POLARSSL_ERR_ASN1_INVALID_DATA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x001C
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+/*
&lt;br&gt;+ * X509 Error codes
&lt;br&gt;+ */
&lt;br&gt;&amp;nbsp;#define POLARSSL_ERR_X509_FEATURE_UNAVAILABLE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0020
&lt;br&gt;&amp;nbsp;#define POLARSSL_ERR_X509_CERT_INVALID_PEM &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -0x0040
&lt;br&gt;&amp;nbsp;#define POLARSSL_ERR_X509_CERT_INVALID_FORMAT &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-0x0060
&lt;br&gt;@@ -87,15 +101,20 @@
&lt;br&gt;&amp;nbsp;#define ASN1_CONSTRUCTED &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x20
&lt;br&gt;&amp;nbsp;#define ASN1_CONTEXT_SPECIFIC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x80
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+/* *************** &amp;nbsp; end copy from x509.h &amp;nbsp;************************/
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * PKCS#1 constants
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-#define RSA_RAW &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0
&lt;br&gt;-#define RSA_MD2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2
&lt;br&gt;-#define RSA_MD4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3
&lt;br&gt;-#define RSA_MD5 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4
&lt;br&gt;-#define RSA_SHA1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5
&lt;br&gt;-#define RSA_SHA256 &amp;nbsp; &amp;nbsp; &amp;nbsp;6
&lt;br&gt;+#define SIG_RSA_RAW &amp;nbsp; &amp;nbsp; 0
&lt;br&gt;+#define SIG_RSA_MD2 &amp;nbsp; &amp;nbsp; 2
&lt;br&gt;+#define SIG_RSA_MD4 &amp;nbsp; &amp;nbsp; 3
&lt;br&gt;+#define SIG_RSA_MD5 &amp;nbsp; &amp;nbsp; 4
&lt;br&gt;+#define SIG_RSA_SHA1	5
&lt;br&gt;+#define SIG_RSA_SHA224	14
&lt;br&gt;+#define SIG_RSA_SHA256	11
&lt;br&gt;+#define	SIG_RSA_SHA384	12
&lt;br&gt;+#define SIG_RSA_SHA512	13
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;#define RSA_PUBLIC &amp;nbsp; &amp;nbsp; &amp;nbsp;0
&lt;br&gt;&amp;nbsp;#define RSA_PRIVATE &amp;nbsp; &amp;nbsp; 1
&lt;br&gt;@@ -106,6 +125,29 @@
&lt;br&gt;&amp;nbsp;#define RSA_SIGN &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1
&lt;br&gt;&amp;nbsp;#define RSA_CRYPT &amp;nbsp; &amp;nbsp; &amp;nbsp; 2
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+#define ASN1_STR_CONSTRUCTED_SEQUENCE	&amp;quot;\x30&amp;quot;
&lt;br&gt;+#define ASN1_STR_NULL			 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;\x05&amp;quot;
&lt;br&gt;+#define ASN1_STR_OID			 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;\x06&amp;quot;
&lt;br&gt;+#define ASN1_STR_OCTET_STRING		 &amp;nbsp; &amp;nbsp;&amp;quot;\x04&amp;quot;
&lt;br&gt;+
&lt;br&gt;+#define OID_DIGEST_ALG_MDX	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;\x2A\x86\x48\x86\xF7\x0D\x02\x00&amp;quot;
&lt;br&gt;+#define OID_HASH_ALG_SHA1	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;\x2b\x0e\x03\x02\x1a&amp;quot;
&lt;br&gt;+#define OID_HASH_ALG_SHA2X	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;\x60\x86\x48\x01\x65\x03\x04\x02\x00&amp;quot;
&lt;br&gt;+
&lt;br&gt;+#define OID_ISO_MEMBER_BODIES	 &amp;nbsp; &amp;nbsp;&amp;quot;\x2a&amp;quot;
&lt;br&gt;+#define OID_ISO_IDENTIFIED_ORG	 &amp;nbsp; &amp;nbsp;&amp;quot;\x2b&amp;quot;
&lt;br&gt;+
&lt;br&gt;+/*
&lt;br&gt;+ * ISO Member bodies OID parts
&lt;br&gt;+ */
&lt;br&gt;+#define OID_COUNTRY_US		 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;\x86\x48&amp;quot;
&lt;br&gt;+#define OID_RSA_DATA_SECURITY	 &amp;nbsp; &amp;nbsp;&amp;quot;\x86\xf7\x0d&amp;quot;
&lt;br&gt;+
&lt;br&gt;+/*
&lt;br&gt;+ * ISO Identified organization OID parts
&lt;br&gt;+ */
&lt;br&gt;+#define OID_OIW_SECSIG_SHA1	 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;\x0e\x03\x02\x1a&amp;quot;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;/*
&lt;br&gt;&amp;nbsp; * DigestInfo ::= SEQUENCE {
&lt;br&gt;&amp;nbsp; * &amp;nbsp; digestAlgorithm DigestAlgorithmIdentifier,
&lt;br&gt;@@ -115,18 +157,31 @@
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * Digest ::= OCTET STRING
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;-#define ASN1_HASH_MDX &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; \
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;\x30\x20\x30\x0C\x06\x08\x2A\x86\x48&amp;quot; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;\x86\xF7\x0D\x02\x00\x05\x00\x04\x10&amp;quot;
&lt;br&gt;-
&lt;br&gt;-#define ASN1_HASH_SHA1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;\x30\x21\x30\x09\x06\x05\x2B\x0E\x03&amp;quot; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;\x02\x1A\x05\x00\x04\x14&amp;quot;
&lt;br&gt;-
&lt;br&gt;-#define ASN1_HASH_SHA256 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;\x30\x31\x30\x0d\x06\x09\x60\x86\x48&amp;quot; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;\x01\x65\x03\x04\x02\x01\x05\x00\x04&amp;quot; &amp;nbsp;\
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;\x20&amp;quot;
&lt;br&gt;+#define ASN1_HASH_MDX					 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+(							 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;ASN1_STR_CONSTRUCTED_SEQUENCE &amp;quot;\x20&amp;quot;		\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_CONSTRUCTED_SEQUENCE &amp;quot;\x0C&amp;quot;		\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_OID &amp;quot;\x08&amp;quot;				 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+	 &amp;nbsp;OID_DIGEST_ALG_MDX				 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+	ASN1_STR_NULL &amp;quot;\x00&amp;quot;				 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_OCTET_STRING &amp;quot;\x10&amp;quot;			 &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+)
&lt;br&gt;+
&lt;br&gt;+#define ASN1_HASH_SHA1					 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;ASN1_STR_CONSTRUCTED_SEQUENCE &amp;quot;\x21&amp;quot;		\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_CONSTRUCTED_SEQUENCE &amp;quot;\x09&amp;quot;		\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_OID &amp;quot;\x05&amp;quot;				 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+	 &amp;nbsp;OID_HASH_ALG_SHA1				 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_NULL &amp;quot;\x00&amp;quot;				 &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_OCTET_STRING &amp;quot;\x14&amp;quot;
&lt;br&gt;+
&lt;br&gt;+#define ASN1_HASH_SHA2X					 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;ASN1_STR_CONSTRUCTED_SEQUENCE &amp;quot;\x11&amp;quot;		\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_CONSTRUCTED_SEQUENCE &amp;quot;\x0d&amp;quot;		\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_OID &amp;quot;\x09&amp;quot;				 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+	 &amp;nbsp;OID_HASH_ALG_SHA2X				 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_NULL &amp;quot;\x00&amp;quot;				 &amp;nbsp; &amp;nbsp;\
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;ASN1_STR_OCTET_STRING &amp;quot;\x00&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RSA context structure
&lt;br&gt;@@ -224,7 +279,8 @@ int rsa_check_privkey( rsa_context *ctx );
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful, or an POLARSSL_ERR_RSA_XXX error code
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \note &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; This function does NOT take care of message
&lt;br&gt;- * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; padding. Also, be sure to set input[0] = 0.
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; padding. Also, be sure to set input[0] = 0 or assure that
&lt;br&gt;+ * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; input is smaller than N.
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \note &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; The input and output buffers must be large
&lt;br&gt;&amp;nbsp; * &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; enough (eg. 128 bytes if RSA-1024 is used).
&lt;br&gt;@@ -254,7 +310,7 @@ int rsa_private( rsa_context *ctx,
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \param ctx &amp;nbsp; &amp;nbsp; &amp;nbsp;RSA context
&lt;br&gt;&amp;nbsp; * \param mode &amp;nbsp; &amp;nbsp; RSA_PUBLIC or RSA_PRIVATE
&lt;br&gt;- * \param ilen &amp;nbsp; &amp;nbsp; contains the the plaintext length
&lt;br&gt;+ * \param ilen &amp;nbsp; &amp;nbsp; contains the plaintext length
&lt;br&gt;&amp;nbsp; * \param input &amp;nbsp; &amp;nbsp;buffer holding the data to be encrypted
&lt;br&gt;&amp;nbsp; * \param output &amp;nbsp; buffer that will hold the ciphertext
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;@@ -276,7 +332,7 @@ int rsa_pkcs1_encrypt( rsa_context *ctx,
&lt;br&gt;&amp;nbsp; * \param input &amp;nbsp; &amp;nbsp;buffer holding the encrypted data
&lt;br&gt;&amp;nbsp; * \param output &amp;nbsp; buffer that will hold the plaintext
&lt;br&gt;&amp;nbsp; * \param olen &amp;nbsp; &amp;nbsp; will contain the plaintext length
&lt;br&gt;- * \param output_max_len &amp;nbsp; &amp;nbsp;maximum length of the output buffer
&lt;br&gt;+ * \param output_max_len	maximum length of the output buffer
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \return &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0 if successful, or an POLARSSL_ERR_RSA_XXX error code
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;@@ -288,15 +344,15 @@ int rsa_pkcs1_decrypt( rsa_context *ctx,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int mode, int *olen,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned char *input,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; unsigned char *output,
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int output_max_len);
&lt;br&gt;+		 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int output_max_len );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Do a private RSA to sign a message digest
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \param ctx &amp;nbsp; &amp;nbsp; &amp;nbsp;RSA context
&lt;br&gt;&amp;nbsp; * \param mode &amp;nbsp; &amp;nbsp; RSA_PUBLIC or RSA_PRIVATE
&lt;br&gt;- * \param hash_id &amp;nbsp;RSA_RAW, RSA_MD{2,4,5} or RSA_SHA{1,256}
&lt;br&gt;- * \param hashlen &amp;nbsp;message digest length (for RSA_RAW only)
&lt;br&gt;+ * \param hash_id &amp;nbsp;SIG_RSA_RAW, SIG_RSA_MD{2,4,5} or SIG_RSA_SHA{1,224,256,384,512}
&lt;br&gt;+ * \param hashlen &amp;nbsp;message digest length (for SIG_RSA_RAW only)
&lt;br&gt;&amp;nbsp; * \param hash &amp;nbsp; &amp;nbsp; buffer holding the message digest
&lt;br&gt;&amp;nbsp; * \param sig &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer that will hold the ciphertext
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;@@ -318,8 +374,8 @@ int rsa_pkcs1_sign( rsa_context *ctx,
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;&amp;nbsp; * \param ctx &amp;nbsp; &amp;nbsp; &amp;nbsp;points to an RSA public key
&lt;br&gt;&amp;nbsp; * \param mode &amp;nbsp; &amp;nbsp; RSA_PUBLIC or RSA_PRIVATE
&lt;br&gt;- * \param hash_id &amp;nbsp;RSA_RAW, RSA_MD{2,4,5} or RSA_SHA{1,256}
&lt;br&gt;- * \param hashlen &amp;nbsp;message digest length (for RSA_RAW only)
&lt;br&gt;+ * \param hash_id &amp;nbsp;SIG_RSA_RAW, RSA_MD{2,4,5} or RSA_SHA{1,256}
&lt;br&gt;+ * \param hashlen &amp;nbsp;message digest length (for SIG_RSA_RAW only)
&lt;br&gt;&amp;nbsp; * \param hash &amp;nbsp; &amp;nbsp; buffer holding the message digest
&lt;br&gt;&amp;nbsp; * \param sig &amp;nbsp; &amp;nbsp; &amp;nbsp;buffer holding the ciphertext
&lt;br&gt;&amp;nbsp; *
&lt;br&gt;@@ -338,6 +394,8 @@ int rsa_pkcs1_verify( rsa_context *ctx,
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;/**
&lt;br&gt;&amp;nbsp; * \brief &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Free the components of an RSA key
&lt;br&gt;+ *
&lt;br&gt;+ * \param ctx &amp;nbsp; &amp;nbsp; &amp;nbsp;RSA Context to free
&lt;br&gt;&amp;nbsp; */
&lt;br&gt;&amp;nbsp;void rsa_free( rsa_context *ctx );
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-- 
&lt;br&gt;1.6.3.3
&lt;br&gt;&lt;br&gt;&lt;/tt&gt;&lt;hr align=&quot;left&quot; width=&quot;300&quot; /&gt;&lt;br /&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Updating-PolarSSL-files-used-by-PDKIM-tp26663104p26663104.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26654398</id>
	<title>[Bug 927] segfault around group_list</title>
	<published>2009-12-05T02:20:44Z</published>
	<updated>2009-12-05T02:20:44Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&lt;br&gt;Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26654398&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; changed:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;What &amp;nbsp; &amp;nbsp;|Removed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |Added
&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CC| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26654398&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #1 from Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26654398&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-05 10:20:43 ---
&lt;br&gt;[ sorry, don't have a Debian BTS account to comment there ]
&lt;br&gt;&lt;br&gt;How many groups is the Exim user a member of? &amp;nbsp;What is the value of NGROUPS_MAX
&lt;br&gt;on the OS?
&lt;br&gt;&lt;br&gt;It's true that the call to getgroups(2) is not checked for a failure return,
&lt;br&gt;but this is a syscall, not a library call, no memory needs to be alloced and
&lt;br&gt;the setup of the call does not allow for any of the possible documented errno
&lt;br&gt;values to be set. &amp;nbsp;However, if the OS allows more members to be in a group than
&lt;br&gt;NGROUPS_MAX, then that would be one explanation. &amp;nbsp;But that would be a
&lt;br&gt;consistent failure.
&lt;br&gt;&lt;br&gt;I note that someone in the referenced bug noted that the problem arrived with a
&lt;br&gt;new kernel version. &amp;nbsp;Is there a new undocumented error return possible from
&lt;br&gt;getgroups() in the updated kernel?
&lt;br&gt;&lt;br&gt;Exim should check that return value and panic/exit on failure, rather than
&lt;br&gt;crash. &amp;nbsp;It's a simple 2-line patch, you can shove that into a debug build and
&lt;br&gt;see if Exim aborts?
&lt;br&gt;&lt;br&gt;The referenced long list of values in the array is rather suspicious. &amp;nbsp;The
&lt;br&gt;groups_list has a defined fixed length. &amp;nbsp;I'm not currently seeing why that
&lt;br&gt;would happen, other than lack of sufficient typing available to gdb. &amp;nbsp;Any
&lt;br&gt;chance of getting a reproduction with a version of Exim built with -ggdb, which
&lt;br&gt;I'm guessing might provide enough type information to prevent this?
&lt;br&gt;&lt;br&gt;I notice that as well as being used for setgroups(), the getgroups() data is
&lt;br&gt;used in two loops for checking for an admin/trusted user. &amp;nbsp;The loops iterate,
&lt;br&gt;stopping once the index no is no longer less than the group count, so if
&lt;br&gt;group_count (the return value from getgroups()) is -1, then it will still go
&lt;br&gt;through the loop once. &amp;nbsp;If the first sizeof(gid_t) bytes from the thus
&lt;br&gt;unitialised memory matches a value configured as an admin_groups or a
&lt;br&gt;trusted_groups gid, then the process will grant the user too many privileges.
&lt;br&gt;&lt;br&gt;So it's a good thing this is crashing, otherwise it would risk being a security
&lt;br&gt;hole (which would let the user, at most, issue an Exim admin command, no
&lt;br&gt;running of arbitrary code). &amp;nbsp;Note though that the reported crashing processes
&lt;br&gt;are running as the exim user, so are already entitled to these privileges. &amp;nbsp;Oh,
&lt;br&gt;and Exim will already have dropped privileges if invoked with an option which
&lt;br&gt;would change the default config (-D, -C) which somewhat limits the possibility
&lt;br&gt;for mischief.
&lt;br&gt;&lt;br&gt;However, although this is uninitialised memory (if getgroups() failed), it's
&lt;br&gt;also memory on the stack frame in main(), so it's not like a previous call will
&lt;br&gt;have let an attacker put whatever data they want there. &amp;nbsp;Linux distributions
&lt;br&gt;don't tend to use &amp;quot;wheel&amp;quot; as group 0, so the fairly common &amp;quot;admin_groups =
&lt;br&gt;wheel&amp;quot; config would not let (gid_t)0 match. &amp;nbsp;On configurations where
&lt;br&gt;admin_groups or trusted_groups contains a group whose gid is 0, this could be
&lt;br&gt;more problematic.
&lt;br&gt;&lt;br&gt;(I'm about to go to sleep, 2.14am, so can't chase this up further tonight).
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26654398.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26654149</id>
	<title>[Bug 926] clamd 0.95 deprecates &quot;STREAM&quot; command</title>
	<published>2009-12-05T01:40:22Z</published>
	<updated>2009-12-05T01:40:22Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=926&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=926&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #3 from Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26654149&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-05 09:40:21 ---
&lt;br&gt;It works for me. &amp;nbsp;I just tested it.
&lt;br&gt;&lt;br&gt;Code went in with revision 1.4 of malware.c:
&lt;br&gt;Wed Jan 5 13:33:58 2005 UTC (4 years, 11 months ago) by tom 
&lt;br&gt;&lt;br&gt;&amp;quot;&amp;quot;&amp;quot;Added patches for remote clamd operation and improved drwebd error handling.
&lt;br&gt;Contributed by Alex Miller&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;&lt;br&gt;This with:
&lt;br&gt;&amp;nbsp;av_scanner = $acl_m_avscanner
&lt;br&gt;and in my ACL referenced from &amp;quot;acl_smtp_data&amp;quot;:
&lt;br&gt;&amp;nbsp; deny &amp;nbsp;message = [VIRUS] This message contains malware ($malware_name)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; set acl_m_avscanner = clamd:127.0.0.1 3310:local
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; malware = *
&lt;br&gt;&lt;br&gt;Exim debug trace:
&lt;br&gt;23725 processing &amp;quot;deny&amp;quot;
&lt;br&gt;23725 check set acl_m_avscanner = clamd:127.0.0.1 3310:local
&lt;br&gt;23725 check malware = *
&lt;br&gt;23725 Expanded av_scanner global: clamd:127.0.0.1 3310:local
&lt;br&gt;23725 waiting for data on socket
&lt;br&gt;23725 deny: condition test succeeded
&lt;br&gt;23725 unspool_mbox(): unlinking
&lt;br&gt;'/var/spool/exim/scan/1NGqyI-0006Af-PB/1NGqyI-0006Af-PB.eml'
&lt;br&gt;23725 unspool_mbox(): unlinking
&lt;br&gt;'/var/spool/exim/scan/1NGqyI-0006Af-PB/1NGqyI-0006Af-PB-00000.com'
&lt;br&gt;23725 SMTP&amp;gt;&amp;gt; 550 [VIRUS] This message contains malware (Eicar-Test-Signature)
&lt;br&gt;&lt;br&gt;clamd log:
&lt;br&gt;Sat Dec &amp;nbsp;5 09:30:38 2009 -&amp;gt;
&lt;br&gt;/var/spool/exim/scan/1NGqyI-0006Af-PB/1NGqyI-0006Af-PB.eml:
&lt;br&gt;Eicar-Test-Signature FOUND
&lt;br&gt;and no complaint of garbage.
&lt;br&gt;&lt;br&gt;This on FreeBSD 7.x with ClamAV 0.95.3.
&lt;br&gt;&lt;br&gt;You're doing something else wrong. &amp;nbsp;If you need assistance debugging, please
&lt;br&gt;ask for user support on the exim-users mailing-list, not in this bug.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Jethro, if you're talking to a local ClamAV I can now confirm that:
&lt;br&gt;&amp;nbsp;(1) you have a workaround
&lt;br&gt;&amp;nbsp;(2) we need to update the docs to mention this option!
&lt;br&gt;&amp;nbsp;(3) none of this changes the need to use the new API; since ClamAV is software
&lt;br&gt;where people should be either up-to-date or not running it, even on the more
&lt;br&gt;conservative distributions AIUI, it should be safe to just replace the current
&lt;br&gt;API with the new one, instead of making it an option.
&lt;br&gt;&lt;br&gt;-Phil
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-926--New%3A-clamd-0.95-deprecates-%22STREAM%22-command-tp26645830p26654149.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26654067</id>
	<title>[Bug 927] New: segfault around group_list</title>
	<published>2009-12-05T01:27:59Z</published>
	<updated>2009-12-05T01:27:59Z</updated>
	<author>
		<name>Bugzilla from eximusers@downhill.at.eu.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=927&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=927&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Summary: segfault around group_list
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Product: Exim
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Version: 4.69
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Platform: Other
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;http://bugs.debian.org/553503&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.debian.org/553503&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OS/Version: Linux
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Status: NEW
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Severity: bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: medium
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Component: General execution
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignedTo: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26654067&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nigel@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReportedBy: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26654067&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eximusers@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CC: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26654067&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Multiple people have reported random segfaults in Debian bug 553503. Christian
&lt;br&gt;Balzer has been able to get a coredump, but I am a little bit lost on how to go
&lt;br&gt;on from there.
&lt;br&gt;&lt;br&gt;(gdb) bt full
&lt;br&gt;#0 &amp;nbsp;main (argc=3, cargv=0x7fff949d3d28) at exim.c:1296
&lt;br&gt;[...]
&lt;br&gt;group_list = Cannot access memory at address 0x7fff94993960
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-927--New%3A-segfault-around-group_list-tp26654067p26654067.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26654046</id>
	<title>[Bug 896] dovecot AUTH segfaults on long answer</title>
	<published>2009-12-05T01:23:26Z</published>
	<updated>2009-12-05T01:23:26Z</updated>
	<author>
		<name>Bugzilla from eximusers@downhill.at.eu.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=896&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=896&lt;/a&gt;&lt;br&gt;&lt;br&gt;Andreas Metzler &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26654046&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eximusers@...&lt;/a&gt;&amp;gt; changed:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;What &amp;nbsp; &amp;nbsp;|Removed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |Added
&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Status|NEW &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |RESOLVED
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Resolution| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|FIXED
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #1 from Andreas Metzler &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26654046&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eximusers@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-05 09:23:26 ---
&lt;br&gt;Fixed in 4.70. Closing.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-896--New%3A-dovecot-AUTH-segfaults-on-long-answer-tp25945367p26654046.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26653399</id>
	<title>[Bug 926] clamd 0.95 deprecates &quot;STREAM&quot; command</title>
	<published>2009-12-04T22:56:47Z</published>
	<updated>2009-12-04T22:56:47Z</updated>
	<author>
		<name>Bugzilla from d.hill@yournetplus.com</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=926&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=926&lt;/a&gt;&lt;br&gt;&lt;br&gt;Duane Hill &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26653399&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;d.hill@...&lt;/a&gt;&amp;gt; changed:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;What &amp;nbsp; &amp;nbsp;|Removed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |Added
&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CC| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26653399&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;d.hill@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #2 from Duane Hill &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26653399&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;d.hill@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-05 06:56:47 ---
&lt;br&gt;This is my first post in the bug report. Forgive if it was done incorrectly.
&lt;br&gt;&lt;br&gt;Does this include using the following config:
&lt;br&gt;&lt;br&gt;...
&lt;br&gt;av_scanner = $acl_m0
&lt;br&gt;...
&lt;br&gt;acl_check_data:
&lt;br&gt;&lt;br&gt;&amp;nbsp; ...
&lt;br&gt;&amp;nbsp; # &amp;nbsp; &amp;nbsp; &amp;nbsp; Reject the message if it is found to contain a virus or malware.
&lt;br&gt;&amp;nbsp; deny &amp;nbsp; &amp;nbsp;message &amp;nbsp; &amp;nbsp; &amp;nbsp; = Message content was found to be unsafe.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; hosts &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = !+viriskip_hostaddr
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; set acl_m0 &amp;nbsp; &amp;nbsp;= clamd:127.0.0.1 3310:local
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; malware &amp;nbsp; &amp;nbsp; &amp;nbsp; = */defer_ok
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; log_message &amp;nbsp; = Message content was found to be unsafe. \
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $malware_name was found.
&lt;br&gt;&amp;nbsp; ...
&lt;br&gt;&lt;br&gt;If so, I receive the following in the ClamAV logs:
&lt;br&gt;&lt;br&gt;Sat Dec &amp;nbsp;5 06:40:37 2009 -&amp;gt; WARNING: Client sent garbage after last command: 43
&lt;br&gt;bytes
&lt;br&gt;&lt;br&gt;This is using Exim 4.69 on FreeBSD 7.2 with ClamAV 0.95.3.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-926--New%3A-clamd-0.95-deprecates-%22STREAM%22-command-tp26645830p26653399.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26652059</id>
	<title>[Bug 926] clamd 0.95 deprecates &quot;STREAM&quot; command</title>
	<published>2009-12-04T17:27:42Z</published>
	<updated>2009-12-04T17:27:42Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=926&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=926&lt;/a&gt;&lt;br&gt;&lt;br&gt;Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26652059&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; changed:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;What &amp;nbsp; &amp;nbsp;|Removed &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |Added
&lt;br&gt;----------------------------------------------------------------------------
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CC| &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26652059&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #1 from Phil Pennock &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26652059&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-12-05 01:27:41 ---
&lt;br&gt;Thanks for the heads-up.
&lt;br&gt;&lt;br&gt;Incidentally, it looks as though Exim has an undocumented feature (!!) in the
&lt;br&gt;ClamAV scanning.
&lt;br&gt;&lt;br&gt;As well as using the SCAN command for unix-domain sockets, if you configure a
&lt;br&gt;second option of &amp;quot;local&amp;quot; for network sockets, it tells Exim to assume common
&lt;br&gt;storage (which, given Exim's spool ownership, had better mean &amp;quot;same machine&amp;quot;)
&lt;br&gt;and so again issues the SCAN command, instead of STREAM.
&lt;br&gt;&lt;br&gt;This would be a configuration of:
&lt;br&gt;&lt;br&gt;av_scanner = clamd:192.0.2.42 1234:local
&lt;br&gt;&lt;br&gt;Untested, but that's what the code appears to do.
&lt;br&gt;&lt;br&gt;This is more efficient (avoids sending the files around) so is a win, if this
&lt;br&gt;configuration can work for you.
&lt;br&gt;&lt;br&gt;-Phil
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-926--New%3A-clamd-0.95-deprecates-%22STREAM%22-command-tp26645830p26652059.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26645830</id>
	<title>[Bug 926] New: clamd 0.95 deprecates &quot;STREAM&quot; command</title>
	<published>2009-12-04T09:11:28Z</published>
	<updated>2009-12-04T09:11:28Z</updated>
	<author>
		<name>Bugzilla from jethro.binks@strath.ac.uk</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=926&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=926&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Summary: clamd 0.95 deprecates &amp;quot;STREAM&amp;quot; command
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Product: Exim
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Version: 4.70
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Platform: All
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OS/Version: All
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Status: NEW
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Severity: wishlist
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: low
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Component: Content Scanning
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignedTo: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26645830&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tom@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReportedBy: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26645830&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;jethro.binks@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CC: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26645830&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Hi,
&lt;br&gt;&lt;br&gt;I just wanted to raise the issue that, as of clamd 0.95 I think, the
&lt;br&gt;&amp;quot;STREAM&amp;quot; command (which receives a PORT to which the client should
&lt;br&gt;re-connect in order to perform the scan) is deprecated, in favour of
&lt;br&gt;&amp;quot;INSTREAM&amp;quot; where the data to be scanned is sent on the same connection.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://wiki.clamav.net/bin/view/Main/UpgradeNotes095&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.clamav.net/bin/view/Main/UpgradeNotes095&lt;/a&gt;&lt;br&gt;&lt;br&gt;clamd man page:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INSTREAM
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; It is mandatory to prefix this command with n or z.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Scan &amp;nbsp;a &amp;nbsp;stream &amp;nbsp;of data. The stream is sent to clamd in chunks,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; after INSTREAM, on the same socket &amp;nbsp;on &amp;nbsp;which &amp;nbsp;the &amp;nbsp;command &amp;nbsp;was
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sent. &amp;nbsp; This avoids the overhead of establishing new TCP connec-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tions and problems &amp;nbsp;with &amp;nbsp;NAT. &amp;nbsp;The &amp;nbsp;format &amp;nbsp;of &amp;nbsp;the &amp;nbsp;chunk &amp;nbsp;is:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; '&amp;lt;length&amp;gt;&amp;lt;data&amp;gt;' &amp;nbsp;where &amp;nbsp;&amp;lt;length&amp;gt; &amp;nbsp;is &amp;nbsp;the size of the following
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; data in bytes expressed as a 4 byte unsigned integer in &amp;nbsp;network
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; byte &amp;nbsp;order &amp;nbsp;and &amp;lt;data&amp;gt; is the actual chunk. Streaming is termi-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; nated by sending &amp;nbsp;a &amp;nbsp;zero-length &amp;nbsp;chunk. &amp;nbsp;Note: &amp;nbsp;do &amp;nbsp;not &amp;nbsp;exceed
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; StreamMaxLength &amp;nbsp;as &amp;nbsp;defined in clamd.conf, otherwise clamd will
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reply with INSTREAM size limit exceeded and &amp;nbsp;close &amp;nbsp;the &amp;nbsp;connec-
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tion.
&lt;br&gt;...
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DEPRECATED COMMANDS
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;STREAM Scan stream - on this command clamd will &amp;nbsp;return &amp;nbsp;&amp;quot;PORT &amp;nbsp;number&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; you &amp;nbsp;should &amp;nbsp;connect &amp;nbsp;to and send data to scan. (DEPRECATED, use
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INSTREAM instead)
&lt;br&gt;...
&lt;br&gt;&lt;br&gt;Note also that it is recommended to send &amp;quot;zINSTREAM&amp;quot; to denote the delimiter is
&lt;br&gt;null.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-926--New%3A-clamd-0.95-deprecates-%22STREAM%22-command-tp26645830p26645830.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26639527</id>
	<title>Re: compilation failure of 4.70 and 4.71 on HP-UX-11.31</title>
	<published>2009-12-04T00:58:09Z</published>
	<updated>2009-12-04T00:58:09Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">On 2009-12-04 at 09:36 +0100, Johannes Berg wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Tue, 2009-12-01 at 00:11 -0800, Phil Pennock wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;quot;bignum.h&amp;quot;, line 58: error #3089: there is no type with the width specified
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; typedef unsigned int t_dbl __attribute__((mode(TI)));
&lt;br&gt;&amp;gt; &amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ^
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; There's a GCC-ism in src/pdkim/bignum.h which is not wrapped by a check
&lt;br&gt;&amp;gt; &amp;gt; for GCC.
&lt;br&gt;&amp;gt; &amp;gt; 
&lt;br&gt;&amp;gt; &amp;gt; Do you know how to get a 128-bit integer on your platform?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Are you sure that's meant to be a 128 bit type?
&lt;/div&gt;&lt;br&gt;&lt;a href=&quot;http://gcc.gnu.org/onlinedocs/gcc-3.1.1/gcc/X86-Built-in-Functions.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/onlinedocs/gcc-3.1.1/gcc/X86-Built-in-Functions.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;quot;&amp;quot;&amp;quot;If SSE extensions are enabled, V4SF is used for a vector of four
&lt;br&gt;32-bit floating point values. Some instructions use a vector of four
&lt;br&gt;32-bit integers, these use V4SI. Finally, some instructions operate on
&lt;br&gt;an entire vector register, interpreting it as a 128-bit integer, these
&lt;br&gt;use mode TI.&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://gcc.gnu.org/gcc-4.4/changes.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/gcc-4.4/changes.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;In a section re MIPS support, there's now: &amp;quot;&amp;quot;&amp;quot;You can now achieve the
&lt;br&gt;same effect using 128-bit types:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; typedef unsigned int uint128_t __attribute__((mode(TI)));
&lt;br&gt;&amp;nbsp; &amp;nbsp; result = ((uint128_t) x * y) &amp;gt;&amp;gt; 64;
&lt;br&gt;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;&lt;br&gt;That's about the limit of my knowledge of the subject.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;-Phil
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/compilation-failure-of-4.70-and-4.71-on-HP-UX-11.31-tp26587846p26639527.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26639286</id>
	<title>Re: compilation failure of 4.70 and 4.71 on HP-UX-11.31</title>
	<published>2009-12-04T00:36:49Z</published>
	<updated>2009-12-04T00:36:49Z</updated>
	<author>
		<name>Johannes Berg</name>
	</author>
	<content type="html">On Tue, 2009-12-01 at 00:11 -0800, Phil Pennock wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;gt; &amp;quot;bignum.h&amp;quot;, line 58: error #3089: there is no type with the width specified
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; typedef unsigned int t_dbl __attribute__((mode(TI)));
&lt;br&gt;&amp;gt; &amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ^
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; There's a GCC-ism in src/pdkim/bignum.h which is not wrapped by a check
&lt;br&gt;&amp;gt; for GCC.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Do you know how to get a 128-bit integer on your platform?
&lt;br&gt;&lt;br&gt;Are you sure that's meant to be a 128 bit type? The other side of the
&lt;br&gt;architecture ifdef uses 'unsigned long long' which typically is 64 bits,
&lt;br&gt;no? OTOH, unsigned long will be 64 bits already on 64-bit platforms so
&lt;br&gt;you're probably right about it wanting 128 bits -- it does appear to be
&lt;br&gt;checking for all possible 64-bit platforms there.
&lt;br&gt;&lt;br&gt;However, looking at the code, it looks like you can get a (probably
&lt;br&gt;slower) version of it that uses 16/32 bit types by defining
&lt;br&gt;POLARSSL_HAVE_INT16.
&lt;br&gt;&lt;br&gt;johannes
&lt;br&gt;&lt;br /&gt; &lt;br /&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;&lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;signature.asc&lt;/strong&gt; (817 bytes) &lt;a href=&quot;http://old.nabble.com/attachment/26639286/0/signature.asc&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/compilation-failure-of-4.70-and-4.71-on-HP-UX-11.31-tp26587846p26639286.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26639018</id>
	<title>Re: compilation failure of 4.70 and 4.71 on HP-UX-11.31</title>
	<published>2009-12-03T03:46:13Z</published>
	<updated>2009-12-03T03:46:13Z</updated>
	<author>
		<name>V. T. Mueller, Continum</name>
	</author>
	<content type="html">Hello Phil,
&lt;br&gt;&lt;br&gt;Phil Pennock wrote:
&lt;br&gt;&amp;gt; On 2009-12-01 at 11:31 +0100, V. T. Mueller, Continum wrote:
&lt;br&gt;&amp;gt;&amp;gt; does that mean that AIX/HP-UX/Solaris users with their vendor's 
&lt;br&gt;&amp;gt;&amp;gt; compilers will get stuck on this point?
&lt;br&gt;&amp;gt; Yes. &amp;nbsp;It's a goof.
&lt;br&gt;&amp;gt; The solution is easy: when Release Candidates (RCs) are announced, try
&lt;br&gt;&amp;gt; to build them! &amp;nbsp;You don't need to deploy it, but if nobody using a
&lt;br&gt;&amp;gt; compiler other than GCC tries to build the release candidates with the
&lt;br&gt;&amp;gt; options they want enabled, then these problems will slip through into
&lt;br&gt;&amp;gt; the final releases.
&lt;br&gt;&amp;nbsp;&amp;gt; If you can build it and run some basic tests, even better.
&lt;br&gt;&lt;br&gt;That's what we're intending to do. And I asked for (my) clarity; I 
&lt;br&gt;didn't mean to complain. We're always short of time, even sometimes 
&lt;br&gt;wondering whether we should switch to some black-bock SMTP app. So it's 
&lt;br&gt;simply a matter of time that we never set up the test suite.
&lt;br&gt;&lt;br&gt;&amp;gt;&amp;gt; which appears to be set to int64_t which boils down to
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;#define INT64_MAX INT64_C(9223372036854775807)
&lt;br&gt;&amp;gt;&amp;gt; Will it be safe to just change occurences of 128 to 64 in bignum.c 
&lt;br&gt;&amp;gt;&amp;gt; without breakting anything somewhere else?
&lt;br&gt;&amp;gt; I'm not familiar with the bignum code and this is one of those weeks
&lt;br&gt;&amp;gt; where I don't have time to go diving (I get home and crash).
&lt;br&gt;&lt;br&gt;Sounds familiar... ;)
&lt;br&gt;Maybe &amp;quot;next year&amp;quot; we can have a colleague who speaks C take a look into 
&lt;br&gt;it. Until then we're trying to build exim without dkim - which we won't 
&lt;br&gt;need anyway I guess.
&lt;br&gt;&lt;br&gt;&amp;gt; If memory serves, the code looked as though you need two int types, and
&lt;br&gt;&amp;gt; one needs to be twice the size of the other. &amp;nbsp;If you just lower the size
&lt;br&gt;&amp;gt; of the larger to be the same as the smaller, I would expect things to
&lt;br&gt;&amp;gt; break -- I'm guessing there is a reason for the differences.
&lt;br&gt;&lt;br&gt;Thanks, we'll try that.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;Volker
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Volker T. Mueller
&lt;br&gt;Continum AG
&lt;br&gt;Bismarckallee 7d
&lt;br&gt;79098 Freiburg i. Br.
&lt;br&gt;Tel. +49 761 21711171
&lt;br&gt;Fax. +49 761 21711198
&lt;br&gt;&lt;a href=&quot;http://www.continum.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.continum.net&lt;/a&gt;&lt;br&gt;&lt;br&gt;Sitz der Gesellschaft: Freiburg im Breisgau
&lt;br&gt;Registergericht: Amtsgericht Freiburg, HRB 6866
&lt;br&gt;Vorstand: Rolf Mathis, Volker T. Mueller
&lt;br&gt;Vorsitzender d. Aufsichtsrats: Prof. Dr. Karl-F. Fischbach
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/compilation-failure-of-4.70-and-4.71-on-HP-UX-11.31-tp26587846p26639018.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26617336</id>
	<title>Re: compilation failure of 4.70 and 4.71 on HP-UX-11.31</title>
	<published>2009-12-02T14:03:52Z</published>
	<updated>2009-12-02T14:03:52Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">On 2009-12-01 at 11:31 +0100, V. T. Mueller, Continum wrote:
&lt;br&gt;&amp;gt; does that mean that AIX/HP-UX/Solaris users with their vendor's 
&lt;br&gt;&amp;gt; compilers will get stuck on this point?
&lt;br&gt;&lt;br&gt;Yes. &amp;nbsp;It's a goof.
&lt;br&gt;&lt;br&gt;The solution is easy: when Release Candidates (RCs) are announced, try
&lt;br&gt;to build them! &amp;nbsp;You don't need to deploy it, but if nobody using a
&lt;br&gt;compiler other than GCC tries to build the release candidates with the
&lt;br&gt;options they want enabled, then these problems will slip through into
&lt;br&gt;the final releases.
&lt;br&gt;&lt;br&gt;If you can build it and run some basic tests, even better.
&lt;br&gt;&lt;br&gt;&amp;gt; which appears to be set to int64_t which boils down to
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;#define INT64_MAX INT64_C(9223372036854775807)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Will it be safe to just change occurences of 128 to 64 in bignum.c 
&lt;br&gt;&amp;gt; without breakting anything somewhere else?
&lt;br&gt;&lt;br&gt;I'm not familiar with the bignum code and this is one of those weeks
&lt;br&gt;where I don't have time to go diving (I get home and crash).
&lt;br&gt;&lt;br&gt;If memory serves, the code looked as though you need two int types, and
&lt;br&gt;one needs to be twice the size of the other. &amp;nbsp;If you just lower the size
&lt;br&gt;of the larger to be the same as the smaller, I would expect things to
&lt;br&gt;break -- I'm guessing there is a reason for the differences.
&lt;br&gt;&lt;br&gt;-Phil
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/compilation-failure-of-4.70-and-4.71-on-HP-UX-11.31-tp26587846p26617336.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26605731</id>
	<title>Re: compilation failure of 4.70 and 4.71 on HP-UX-11.31</title>
	<published>2009-12-01T06:13:16Z</published>
	<updated>2009-12-01T06:13:16Z</updated>
	<author>
		<name>Marc Beyer</name>
	</author>
	<content type="html">Hi Phil,
&lt;br&gt;&lt;br&gt;thanks for your answer!
&lt;br&gt;&lt;br&gt;&amp;gt; There's a GCC-ism in src/pdkim/bignum.h which is not wrapped by a check
&lt;br&gt;&amp;gt; for GCC.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Do you know how to get a 128-bit integer on your platform?
&lt;br&gt;&lt;br&gt;Unfortunately not :-/
&lt;br&gt;&lt;br&gt;&amp;gt; You &amp;quot;just&amp;quot; need to replace that line with a typedef which lets t_dbl be
&lt;br&gt;&amp;gt; a 128-bit int.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Perhaps int128_t or __int128_t exists, via &amp;lt;stdint.h&amp;gt; ?
&lt;br&gt;&lt;br&gt;Neither of these exist in /usr/include/stdint.h .
&lt;br&gt;&lt;br&gt;&amp;gt; Otherwise, if you can't get a 128 bit int, I think (but am not sure)
&lt;br&gt;&amp;gt; that you need to drop t_int down to 32 bits. &amp;nbsp;I've only glanced over it,
&lt;br&gt;&amp;gt; but it looks like things will just work after that.
&lt;br&gt;&lt;br&gt;If I simply replace the line with
&lt;br&gt;&lt;br&gt;typedef unsigned int t_dbl;
&lt;br&gt;&lt;br&gt;the compile goes through fine. Is that what you meant?
&lt;br&gt;&lt;br&gt;We won't be using pdkim (for now at least), so if that part of the code
&lt;br&gt;doesn't work properly &amp;nbsp;it won't be of any great concern to us.
&lt;br&gt;&lt;br&gt;Thanks for your help,
&lt;br&gt;&lt;br&gt;Marc
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/compilation-failure-of-4.70-and-4.71-on-HP-UX-11.31-tp26587846p26605731.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26605732</id>
	<title>Re: compilation failure of 4.70 and 4.71 on HP-UX-11.31</title>
	<published>2009-12-01T02:31:14Z</published>
	<updated>2009-12-01T02:31:14Z</updated>
	<author>
		<name>V. T. Mueller, Continum</name>
	</author>
	<content type="html">Hello,
&lt;br&gt;&lt;br&gt;Phil Pennock wrote:
&lt;br&gt;&amp;gt; On 2009-11-30 at 15:41 +0100, Marc Beyer wrote:
&lt;br&gt;&amp;gt;&amp;gt; gmake[2]: Entering directory
&lt;br&gt;&amp;gt;&amp;gt; `/var/tmp/eximtest/exim-4.71/build-HP-UX-ia64/pdkim'
&lt;br&gt;&amp;gt;&amp;gt; cc base64.c
&lt;br&gt;&amp;gt;&amp;gt; cc bignum.c
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;bignum.h&amp;quot;, line 58: error #3089: there is no type with the width specified
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; typedef unsigned int t_dbl __attribute__((mode(TI)));
&lt;br&gt;&amp;gt; There's a GCC-ism in src/pdkim/bignum.h which is not wrapped by a check
&lt;br&gt;&amp;gt; for GCC.
&lt;br&gt;&lt;br&gt;does that mean that AIX/HP-UX/Solaris users with their vendor's 
&lt;br&gt;compilers will get stuck on this point?
&lt;br&gt;&lt;br&gt;&amp;gt; Do you know how to get a 128-bit integer on your platform?
&lt;br&gt;&amp;gt; You &amp;quot;just&amp;quot; need to replace that line with a typedef which lets t_dbl be
&lt;br&gt;&amp;gt; a 128-bit int.
&lt;br&gt;&amp;gt; Perhaps int128_t or __int128_t exists, via &amp;lt;stdint.h&amp;gt; ?
&lt;br&gt;&amp;gt; Otherwise, if you can't get a 128 bit int, I think (but am not sure)
&lt;br&gt;&amp;gt; that you need to drop t_int down to 32 bits. &amp;nbsp;I've only glanced over it,
&lt;br&gt;&amp;gt; but it looks like things will just work after that.
&lt;br&gt;&lt;br&gt;As far as I can see there is no 128bit integer in HP-UX 11.31. According 
&lt;br&gt;to stdint.h(5) there is
&lt;br&gt;&amp;nbsp; &amp;nbsp;intmax_t &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;largest signed integer data type supported
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; by implementation
&lt;br&gt;which appears to be set to int64_t which boils down to
&lt;br&gt;&amp;nbsp; &amp;nbsp;#define INT64_MAX INT64_C(9223372036854775807)
&lt;br&gt;&lt;br&gt;Will it be safe to just change occurences of 128 to 64 in bignum.c 
&lt;br&gt;without breakting anything somewhere else?
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Volker
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Volker T. Mueller
&lt;br&gt;Continum AG
&lt;br&gt;Bismarckallee 7d
&lt;br&gt;79098 Freiburg i. Br.
&lt;br&gt;Tel. +49 761 21711171
&lt;br&gt;Fax. +49 761 21711198
&lt;br&gt;&lt;a href=&quot;http://www.continum.net&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.continum.net&lt;/a&gt;&lt;br&gt;&lt;br&gt;Sitz der Gesellschaft: Freiburg im Breisgau
&lt;br&gt;Registergericht: Amtsgericht Freiburg, HRB 6866
&lt;br&gt;Vorstand: Rolf Mathis, Volker T. Mueller
&lt;br&gt;Vorsitzender d. Aufsichtsrats: Prof. Dr. Karl-F. Fischbach
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/compilation-failure-of-4.70-and-4.71-on-HP-UX-11.31-tp26587846p26605732.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26588035</id>
	<title>Re: compilation failure of 4.70 and 4.71 on HP-UX-11.31</title>
	<published>2009-12-01T00:11:14Z</published>
	<updated>2009-12-01T00:11:14Z</updated>
	<author>
		<name>Bugzilla from exim-dev@spodhuis.org</name>
	</author>
	<content type="html">On 2009-11-30 at 15:41 +0100, Marc Beyer wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I'm getting a compilation failure for the last two versions of exim
&lt;br&gt;&amp;gt; under HP-UX, the error is:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; gmake[2]: Entering directory
&lt;br&gt;&amp;gt; `/var/tmp/eximtest/exim-4.71/build-HP-UX-ia64/pdkim'
&lt;br&gt;&amp;gt; cc base64.c
&lt;br&gt;&amp;gt; cc bignum.c
&lt;br&gt;&amp;gt; &amp;quot;bignum.h&amp;quot;, line 58: error #3089: there is no type with the width specified
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; typedef unsigned int t_dbl __attribute__((mode(TI)));
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ^
&lt;/div&gt;&lt;br&gt;There's a GCC-ism in src/pdkim/bignum.h which is not wrapped by a check
&lt;br&gt;for GCC.
&lt;br&gt;&lt;br&gt;Do you know how to get a 128-bit integer on your platform?
&lt;br&gt;&lt;br&gt;You &amp;quot;just&amp;quot; need to replace that line with a typedef which lets t_dbl be
&lt;br&gt;a 128-bit int.
&lt;br&gt;&lt;br&gt;Perhaps int128_t or __int128_t exists, via &amp;lt;stdint.h&amp;gt; ?
&lt;br&gt;&lt;br&gt;Otherwise, if you can't get a 128 bit int, I think (but am not sure)
&lt;br&gt;that you need to drop t_int down to 32 bits. &amp;nbsp;I've only glanced over it,
&lt;br&gt;but it looks like things will just work after that.
&lt;br&gt;&lt;br&gt;-Phil
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/compilation-failure-of-4.70-and-4.71-on-HP-UX-11.31-tp26587846p26588035.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26587846</id>
	<title>compilation failure of 4.70 and 4.71 on HP-UX-11.31</title>
	<published>2009-11-30T06:41:59Z</published>
	<updated>2009-11-30T06:41:59Z</updated>
	<author>
		<name>Marc Beyer</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I'm getting a compilation failure for the last two versions of exim
&lt;br&gt;under HP-UX, the error is:
&lt;br&gt;&lt;br&gt;gmake[2]: Entering directory
&lt;br&gt;`/var/tmp/eximtest/exim-4.71/build-HP-UX-ia64/pdkim'
&lt;br&gt;cc base64.c
&lt;br&gt;cc bignum.c
&lt;br&gt;&amp;quot;bignum.h&amp;quot;, line 58: error #3089: there is no type with the width specified
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; typedef unsigned int t_dbl __attribute__((mode(TI)));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ^
&lt;br&gt;&lt;br&gt;1 error detected in the compilation of &amp;quot;bignum.c&amp;quot;.
&lt;br&gt;gmake[2]: *** [bignum.o] Error 2
&lt;br&gt;gmake[2]: Leaving directory
&lt;br&gt;`/var/tmp/eximtest/exim-4.71/build-HP-UX-ia64/pdkim'
&lt;br&gt;&lt;br&gt;gmake[2]: Entering directory
&lt;br&gt;`/var/tmp/eximtest/exim-4.71/build-HP-UX-ia64/pdkim'
&lt;br&gt;cc bignum.c
&lt;br&gt;&amp;quot;bignum.h&amp;quot;, line 58: error #3089: there is no type with the width specified
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; typedef unsigned int t_dbl __attribute__((mode(TI)));
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ^
&lt;br&gt;&lt;br&gt;1 error detected in the compilation of &amp;quot;bignum.c&amp;quot;.
&lt;br&gt;gmake[2]: *** [bignum.o] Error 2
&lt;br&gt;&lt;br&gt;&lt;br&gt;# uname -a
&lt;br&gt;HP-UX dolphin B.11.31 U ia64 4162338659 unlimited-user license
&lt;br&gt;# cc --version
&lt;br&gt;cc: HP C/aC++ B3910B A.06.23 [May 18, 2009]
&lt;br&gt;# cat OS/Makefile-HP-UX
&lt;br&gt;# $Cambridge: exim/exim-src/OS/Makefile-HP-UX,v 1.5 2006/03/17 09:39:00
&lt;br&gt;ph10 Exp $
&lt;br&gt;CC=cc
&lt;br&gt;CFLAGS=+O2 +Onolimit -z -D_XOPEN_SOURCE_EXTENDED -O
&lt;br&gt;-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -L/usr/local/lib
&lt;br&gt;LIBS=-lelf -L/usr/local/lib -lpcre
&lt;br&gt;&lt;br&gt;BASENAME_COMMAND=/bin/basename
&lt;br&gt;HAVE_ICONV=yes
&lt;br&gt;HAVE_SETRESUID=YES
&lt;br&gt;HAVE_SETEUID=NO
&lt;br&gt;XINCLUDE=-I/usr/include/X11R6 -I/usr/contrib/X11R6/include
&lt;br&gt;XLFLAGS=-L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib
&lt;br&gt;X11_LD_LIB=/usr/contrib/X11R6/lib
&lt;br&gt;EXIMON_TEXTPOP=
&lt;br&gt;DBMLIB=-lndbm
&lt;br&gt;RANLIB=@true
&lt;br&gt;&lt;br&gt;# End
&lt;br&gt;&lt;br&gt;Does anybody have an idea how to fix this? I'll be happy to provide any
&lt;br&gt;further helpful information.
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;&lt;br&gt;Marc
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/compilation-failure-of-4.70-and-4.71-on-HP-UX-11.31-tp26587846p26587846.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26561080</id>
	<title>[Bug 925] New: docbook2texi:/book: no description for directory entry</title>
	<published>2009-11-29T03:15:34Z</published>
	<updated>2009-11-29T03:15:34Z</updated>
	<author>
		<name>Bugzilla from eximusers@downhill.at.eu.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=925&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=925&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Summary: docbook2texi:/book: no description for directory entry
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Product: Exim
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Version: 4.70
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Platform: Other
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OS/Version: Linux
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Status: NEW
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Severity: bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: low
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Component: Documentation
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignedTo: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26561080&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nigel@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReportedBy: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26561080&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;eximusers@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CC: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26561080&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;Created an attachment (id=356)
&lt;br&gt;&amp;nbsp;--&amp;gt; (&lt;a href=&quot;http://bugs.exim.org/attachment.cgi?id=356&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/attachment.cgi?id=356&lt;/a&gt;)
&lt;br&gt;suggested fix
&lt;br&gt;&lt;br&gt;When producing texinfo docs I get this error message:
&lt;br&gt;&lt;br&gt;&lt;br&gt;[...]
&lt;br&gt;docbook2x-texi filter-info.xml
&lt;br&gt;docbook2texi:/book: no description for directory entry
&lt;br&gt;[...]
&lt;br&gt;xfpt spec.xfpt
&lt;br&gt;./Pre-xml -ascii -html -noindex &amp;lt;spec.xml &amp;gt;spec-info.xml
&lt;br&gt;docbook2x-texi spec-info.xml
&lt;br&gt;docbook2texi:/book: no description for directory entry
&lt;br&gt;&lt;br&gt;and therefore end up with
&lt;br&gt;--------------------
&lt;br&gt;@direntry
&lt;br&gt;* Exim's interfaces to mail filtering: (exim_filtering).
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [MISSING TEXT]
&lt;br&gt;@end direntry
&lt;br&gt;--------------------
&lt;br&gt;&lt;br&gt;(This is also present in
&lt;br&gt;ftp://ftp.exim.org/pub/exim/exim4/exim-texinfo-4.71.tar.bz2.)
&lt;br&gt;&lt;br&gt;Attached patch fixes the &amp;quot;MISSING TEXT&amp;quot; part and also adds a &amp;quot;@dircategory
&lt;br&gt;Mail&amp;quot; line. If you do not like the latter part just drop the &amp;lt;subjectset
&lt;br&gt;scheme=&amp;quot;texinfo-directory&amp;quot;&amp;gt; parts.
&lt;br&gt;&lt;br&gt;Disclaimer: I am not a xml/docbok/info guru, this is a copy-and-paste fix.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-925--New%3A-docbook2texi%3A-book%3A-no-description-for-directory-entry-tp26561080p26561080.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26491803</id>
	<title>[Bug 922] 4.70 doc changes - several but relatively minor.</title>
	<published>2009-11-23T23:55:00Z</published>
	<updated>2009-11-23T23:55:00Z</updated>
	<author>
		<name>Bugzilla from nigel@exim.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=922&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=922&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #1 from Nigel Metheringham &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26491803&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nigel@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-11-24 07:54:59 ---
&lt;br&gt;4.71 is already tagged and built, so holding these for next release.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-922--New%3A-4.70-doc-changes---several-but-relatively-minor.-tp26487267p26491803.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26491801</id>
	<title>[Bug 923] 4.70 introcuces f-protd av-scanner but no docs</title>
	<published>2009-11-23T23:54:52Z</published>
	<updated>2009-11-23T23:54:52Z</updated>
	<author>
		<name>Bugzilla from nigel@exim.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=923&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=923&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #1 from Nigel Metheringham &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26491801&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nigel@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-11-24 07:54:52 ---
&lt;br&gt;4.71 is already tagged and built, so holding these for next release.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-923--New%3A-4.70-introcuces-f-protd-av-scanner-but-no-docs-tp26487337p26491801.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26491802</id>
	<title>[Bug 924] No documentation about 'dkim_disable_verify'.</title>
	<published>2009-11-23T23:54:44Z</published>
	<updated>2009-11-23T23:54:44Z</updated>
	<author>
		<name>Bugzilla from nigel@exim.org</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=924&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=924&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;--- Comment #1 from Nigel Metheringham &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26491802&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nigel@...&lt;/a&gt;&amp;gt; &amp;nbsp;2009-11-24 07:54:44 ---
&lt;br&gt;4.71 is already tagged and built, so holding these for next release.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-924--New%3A-No-documentation-about-%27dkim_disable_verify%27.-tp26487402p26491802.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26487402</id>
	<title>[Bug 924] New: No documentation about 'dkim_disable_verify'.</title>
	<published>2009-11-23T14:38:31Z</published>
	<updated>2009-11-23T14:38:31Z</updated>
	<author>
		<name>Bugzilla from john.horne@plymouth.ac.uk</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=924&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=924&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Summary: No documentation about 'dkim_disable_verify'.
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Product: Exim
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Version: 4.70
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Platform: All
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OS/Version: All
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Status: NEW
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Severity: bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: medium
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Component: Documentation
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignedTo: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487402&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nigel@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReportedBy: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487402&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;john.horne@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CC: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487402&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;The 4.70 spec file states (section 54):
&lt;br&gt;&lt;br&gt;&amp;nbsp; You might want to turn off DKIM verification processing entirely for internal
&lt;br&gt;&amp;nbsp; or relay mail sources. To do that, set the dkim_disable_verify ACL control
&lt;br&gt;&amp;nbsp; modifier.
&lt;br&gt;&lt;br&gt;However 'dkim_disable_verify' is mentioned nowhere else. It should have a
&lt;br&gt;section about it in the 'control modifier' section (40.20), and be indexed.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-924--New%3A-No-documentation-about-%27dkim_disable_verify%27.-tp26487402p26487402.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26487337</id>
	<title>[Bug 923] New: 4.70 introcuces f-protd av-scanner but no docs</title>
	<published>2009-11-23T14:33:34Z</published>
	<updated>2009-11-23T14:33:34Z</updated>
	<author>
		<name>Bugzilla from john.horne@plymouth.ac.uk</name>
	</author>
	<content type="html">------- You are receiving this mail because: -------
&lt;br&gt;You are on the CC list for the bug.
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://bugs.exim.org/show_bug.cgi?id=923&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/show_bug.cgi?id=923&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Summary: 4.70 introcuces f-protd av-scanner but no docs
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Product: Exim
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Version: 4.70
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Platform: All
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; OS/Version: All
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Status: NEW
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Severity: bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: medium
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Component: Documentation
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AssignedTo: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487337&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;nigel@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ReportedBy: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487337&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;john.horne@...&lt;/a&gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CC: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487337&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;exim-dev@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;The 4.70 changelog states:
&lt;br&gt;&lt;br&gt;&amp;nbsp; TK/04 Bugzilla 673: Add f-protd malware scanner support. Patch submitted
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; by Mark Daniel Reidel &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26487337&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;mr@...&lt;/a&gt;&amp;gt;.
&lt;br&gt;&lt;br&gt;However there is no documentation specifying how to use f-protd in the virus
&lt;br&gt;scanning section (41.1).
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Configure bugmail: &lt;a href=&quot;http://bugs.exim.org/userprefs.cgi?tab=email&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.exim.org/userprefs.cgi?tab=email&lt;/a&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;## List details at &lt;a href=&quot;http://lists.exim.org/mailman/listinfo/exim-dev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://lists.exim.org/mailman/listinfo/exim-dev&lt;/a&gt;&amp;nbsp;Exim details at &lt;a href=&quot;http://www.exim.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.exim.org/&lt;/a&gt;&amp;nbsp;##
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Bug-923--New%3A-4.70-introcuces-f-protd-av-scanner-but-no-docs-tp26487337p26487337.html" />
</entry>

</feed>
