SHA-256/-512 x86_64 assembler

2005-07-25 Thread Andy Polyakov
SHA-256/-512 x86_64 assembler implementation is available in HEAD now. 
As usual, code was benchmarked on Opteron only and out of curiosity I'd 
like to hear from people with EM64T hardware. The test it grab latest 
openssl-SNAP-* at ftp://ftp.openssl.org/snapshot/ and './config no-asm; 
make; apps/openssl speed sha' and then './config; make; apps/openssl 
speed sha'. For reference, the commentary section contains following note:


# Special note on Intel EM64T. While Opteron CPU exhibits perfect
# perfromance ratio of 1.5 between 64- and 32-bit flavors [see above],
# [currently available] EM64T CPUs apparently are far from it. 64-bit
# version, sha512_block, is hardly faster than 32-bit one. This is
# presumably because 64-bit shifts/rotates apparently are not atomic
# instructions, but implemented in microcode.

This is actually based on benchmark results obtained for C version, but 
I see no reason why it wouldn't hold true for assembler implementation. 
A lot of thanks in advance. A.

__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: [Fwd: Re: [openssl.org #1171] Unable to pass make test 2]

2005-07-25 Thread [EMAIL PROTECTED] via RT

  Original Message 
 Subject: Re: [openssl.org #1171] Unable to pass make test 2
 Date: Mon, 25 Jul 2005 00:39:36 +0200 (METDST)
 From: Andy Polyakov via RT [EMAIL PROTECTED]
 Reply-To: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 CC: openssl-dev@openssl.org
 
 
 test BN_sqr
 make[2]: *** [test_bn] Error 139
 
 
 Could you examine
 https://www.aet.tu-cottbus.de/rt2/Ticket/Display.html?id=1146 and see if
 you confirm that it's identical problem. A.
 
 

I am sorry but I cannot reproduce the problem any more. I did these steps after
reporting the problem till now:

- instaled openssl 0.9.7g instead of 0.9.7e and relinked lib{crypto,ssl}.so and
dtto.so.0 to this version,
- instaled openssh 4.1 instead of 4.0,
- instaled latest binutils,
- and instaled gcc 3.4.4.

And now it (make  make test for openssl 0.9.8) works fine.

Regards,
marcel Svitalský
-- 

**
  tlf: (+420) 245 005 546 ... po-pá 8:00-16:30
  tlf: (+420) 606 439 651
  e-mail:  [EMAIL PROTECTED]
  e-mail:  [EMAIL PROTECTED]

  Nebojte se ¹ifrování - ¹ifra je jako obálka na dopise.
  Osobní a dùvìrné vìci také nepí¹ete na pohlednici.
  GPG public key (ID 0xD98EC83A) fingerprint:
  3BEB 4658 A998 B9B3 3476  AD64 EF87 D0A5 D98E C83A


__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: mk1mf.pl doesn't generate makefile for Windows CE

2005-07-25 Thread Andy Polyakov

I've chosen to unify VC-32.pl and VC-CE.pl instead. I mean VC-CE.pl is
gone now and VC-32.pl is expected to take care of all Windows flavors,
Win32, Win64 and WinCE. See http://cvs.openssl.org/chngview?cn=14275
for reference.


I see. I downloaded the latest 0.9.8-snapshot, and it generates correct
cedll.mak.


I've been browsing through MSDN and didn't quite figured out where 
_WIN32_WCE and platform-specific pre-processor macros get 
assigned/defined. Most notably I used to believe that they're 
pre-defined by compiler driver itself, but [this time?] I failed to find 
an explicit reference confirming that this is actually case. I found 
reference that at least _WIN32_WCE is defined through project 
preferences as -D_WIN32_WCE=$(CEVersion). Now, VC-32.pl passes down 
$(WCETARGETDEFS), but does it actually cover _WIN32_WCE? Can you 
double-check this? Or better yet, can you post how WCETARGETDEFS is 
[normally] expanded?



Just in case, there is ongoing discussion about improving CE support,
which goes under OpenSSL for Windows Mobile 2003 subject, see for
example http://marc.theaimsgroup.com/?t=11218523281r=1w=2.


I feel changing too many things at once is not a good idea. How about
making the current code to compile on the corrent supported platforms
first, then making changes for other platforms such as eVC4 + PPC2003SDK
if needed. After that, remove dependencies on wcecompat for platforms
which allow that.


Well, the way I feel is that currently supported platforms needs 
definition first:-) And once again [as already mentioned in above 
mentioned thread] I still fail to see why PPC2003 needs special 
treatment. I'd rather classify them by _WIN32_WCE value or something 
similar. A.

__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: [Fwd: Re: [openssl.org #1171] Unable to pass make test 2]

2005-07-25 Thread Andy Polyakov via RT

test BN_sqr
make[2]: *** [test_bn] Error 139

Could you examine
https://www.aet.tu-cottbus.de/rt2/Ticket/Display.html?id=1146 and see if
you confirm that it's identical problem.
 
 
 I am sorry but I cannot reproduce the problem any more. I did these steps 
 after
 reporting the problem till now:
 
 - instaled openssl 0.9.7g instead of 0.9.7e and relinked lib{crypto,ssl}.so 
 and
 dtto.so.0 to this version,
 - instaled openssh 4.1 instead of 4.0,
 - instaled latest binutils,
 - and instaled gcc 3.4.4.
 
 And now it (make  make test for openssl 0.9.8) works fine.

Working theory in #1146 is that it's a bug in binutils, either linker or 
assembler. And the fact that binutils update helped in your case does 
not refute it, on the contrary confirms. Can you tell wich binutils 
version did you upgrade from? And which version to? A.

__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: [Fwd: Re: [openssl.org #1171] Unable to pass make test 2]

2005-07-25 Thread [EMAIL PROTECTED] via RT

Andy Polyakov via RT wrote:
test BN_sqr
make[2]: *** [test_bn] Error 139

Could you examine
https://www.aet.tu-cottbus.de/rt2/Ticket/Display.html?id=1146 and see if
you confirm that it's identical problem.


I am sorry but I cannot reproduce the problem any more. I did these steps 
after
reporting the problem till now:

- instaled openssl 0.9.7g instead of 0.9.7e and relinked lib{crypto,ssl}.so 
and
dtto.so.0 to this version,
- instaled openssh 4.1 instead of 4.0,
- instaled latest binutils,
- and instaled gcc 3.4.4.

And now it (make  make test for openssl 0.9.8) works fine.
 
 
 Working theory in #1146 is that it's a bug in binutils, either linker or 
 assembler. And the fact that binutils update helped in your case does 
 not refute it, on the contrary confirms. Can you tell wich binutils 
 version did you upgrade from? And which version to? A.
 
 
 

To version is 2.16.1.
About from version I am not quite sure -- it could be either 2.11.93 (as 
deployed with RedHat 7.3) or some a bit newer version from the former 
RedHat up2date system.

Marcel Svitalský

-- 

**
   tlf: (+420) 245 005 546 ... po-pá 8:00-16:30
   tlf: (+420) 606 439 651
   e-mail:  [EMAIL PROTECTED]
   e-mail:  [EMAIL PROTECTED]

   Nebojte se ¹ifrování - ¹ifra je jako obálka na dopise.
   Osobní a dùvìrné vìci také nepí¹ete na pohlednici.
   GPG public key (ID 0xD98EC83A) fingerprint:
   3BEB 4658 A998 B9B3 3476  AD64 EF87 D0A5 D98E C83A

__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: mk1mf.pl doesn't generate makefile for Windows CE

2005-07-25 Thread Satoshi Nakamura
Hi,

At 25 Jul 2005 11:27:32 +0200 Andy Polyakov wrote:
 I've been browsing through MSDN and didn't quite figured out where
 _WIN32_WCE and platform-specific pre-processor macros get
 assigned/defined. Most notably I used to believe that they're pre-
 defined by compiler driver itself, but [this time?] I failed to find an
 explicit reference confirming that this is actually case. I found
 reference that at least _WIN32_WCE is defined through project
 preferences as -D_WIN32_WCE=$(CEVersion). Now, VC-32.pl passes down
 $(WCETARGETDEFS), but does it actually cover _WIN32_WCE? Can you double-
 check this? Or better yet, can you post how WCETARGETDEFS is [normally]
 expanded?

Compiler doesn't define any _WIN32_WCE, UNDER_CE and so on. So you need
to specify explicitly with -D options. Unfortunatelly wcecompat has a bug
that it defines _WIN32_CE instead of _WIN32_WCE.

For example, for Pocket PC (on WCE300) ARM, WCETARGETDEFS is expanded to

-DWCEPLATFORM=MS_POCKET_PC_2000 -DARM -D_ARM_ -DUNDER_CE=300 -D_WIN32_CE=300 
-DUNICODE -D_UNICODE

I think we need to fix this problem before everything else. The simplest
way to fix this problem is to add -D_WIN32_WCE=$(WCEVERSION) after
$(WCETARGETDEFS) in makefiles.


 Well, the way I feel is that currently supported platforms needs
 definition first:-) And once again [as already mentioned in above
 mentioned thread] I still fail to see why PPC2003 needs special
 treatment. I'd rather classify them by _WIN32_WCE value or something
 similar.

In original wcecompat, there are five platforms defined: MS HPC, MS HPC
Pro, ms palm size pc, ms pocket pc and Pocket PC 2002. I think ms pocket
pc is a good starting point. Because this is the oldest platform which
was built on Windows CE 3.0. Before Windows CE 3.0, supports for C
runtime library are poorer. In addition, a library built for ms pocket
pc can be used on newer Pocket PC platforms.

Actually, I can build OpenSSL for MS HPC Pro platform using some
patches against wcecompat. But before we start investigating about lacks
of C runtime library supports, how about making it compile for ms pocket
pc platform?


About PPC2003 issue, sometimes it needs platform specific treatment,
because APIs are defined for 'Platform' but for 'Version of Windows CE'.
But from my experience, these cases are rare and mostly involved in shell
APIs or something which may not be used by OpenSSL.

I beleive we can classify by _WIN32_WCE (and possibly _WIN32_WCE_PSPC) in
most cases.

Regards.

-- 
Satoshi Nakamura [EMAIL PROTECTED]
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: [Fwd: Re: [openssl.org #1171] Unable to pass make test 2]

2005-07-25 Thread [EMAIL PROTECTED] via RT

Andy Polyakov via RT wrote:
test BN_sqr
make[2]: *** [test_bn] Error 139

Could you examine
https://www.aet.tu-cottbus.de/rt2/Ticket/Display.html?id=1146 and see if
you confirm that it's identical problem.


I am sorry but I cannot reproduce the problem any more. I did these steps 
after
reporting the problem till now:

- instaled openssl 0.9.7g instead of 0.9.7e and relinked lib{crypto,ssl}.so 
and
dtto.so.0 to this version,
- instaled openssh 4.1 instead of 4.0,
- instaled latest binutils,
- and instaled gcc 3.4.4.

And now it (make  make test for openssl 0.9.8) works fine.
 
 
 Working theory in #1146 is that it's a bug in binutils, either linker or 
 assembler. And the fact that binutils update helped in your case does 
 not refute it, on the contrary confirms. Can you tell wich binutils 
 version did you upgrade from? And which version to? A.
 
 
 

I wrote:


To version is 2.16.1.
About from version I am not quite sure -- it could be either 2.11.93 (as
deployed with RedHat 7.3) or some a bit newer version from the former
RedHat up2date system.


and now, trying rpm -q binutils command (as the new version was the first one
compiled from the source code, previous was/were instaled from RPM(s)), I can
say that from version was binutils-2.11.93.0.2-11.

Marcel Svitalský

-- 

**
   tlf: (+420) 245 005 546 ... po-pá 8:00-16:30
   tlf: (+420) 606 439 651
   e-mail:  [EMAIL PROTECTED]
   e-mail:  [EMAIL PROTECTED]

   Nebojte se ¹ifrování - ¹ifra je jako obálka na dopise.
   Osobní a dùvìrné vìci také nepí¹ete na pohlednici.
   GPG public key (ID 0xD98EC83A) fingerprint:
   3BEB 4658 A998 B9B3 3476  AD64 EF87 D0A5 D98E C83A



__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: Missing 0 test in BN_mod_word = core dump

2005-07-25 Thread Nils Larsch

Ton Hospel wrote:
...

Gives:
Floating point exception (core dumped)

Reason: unlike in BN_div_word, in BN_mod_word w is not checked for being 0


ok



PS:
 these functions are really bad in that you can't distinguish
 between failure and a real 0 result. Maybe they should be
 returning (BN_ULONG) -1, since that value is impossible as normal output


agree, returning 0 in case of an error isn't really optimal here
and (BN_ULONG)-1 is the only value that can't be the result of a
normal operation. Actually the return value in case of an error
isn't even specified in the manpage so setting it to (BN_ULONG)-1
shouldn't be too problematic.
I will commit a patch soon.

Thanks,
Nils
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


[openssl.org #869] [FWD] [PATCH] OpenSSL patch for CRL Distribution Points for the X.509 Certificate Profile

2005-07-25 Thread Stephen Henson via RT

This has now been implemented in 0.9.9 but using a somewhat different
syntax.

Ticket resolved.

Steve.
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: mk1mf.pl doesn't generate makefile for Windows CE

2005-07-25 Thread Andy Polyakov

I found
reference that at least _WIN32_WCE is defined through project
preferences as -D_WIN32_WCE=$(CEVersion).


I think we need to fix this problem before everything else. The simplest
way to fix this problem is to add -D_WIN32_WCE=$(WCEVERSION) after
$(WCETARGETDEFS) in makefiles.


Can you double-confirm this? MSDN mentions -D_WIN32_WCE=$(CEVersion) and 
you suggest -D_WIN32_WCE=$(WCEVERSION). Is one wrong or are both right? A.

__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: mk1mf.pl doesn't generate makefile for Windows CE

2005-07-25 Thread Andy Polyakov

I found
reference that at least _WIN32_WCE is defined through project
preferences as -D_WIN32_WCE=$(CEVersion).



I think we need to fix this problem before everything else. The simplest
way to fix this problem is to add -D_WIN32_WCE=$(WCEVERSION) after
$(WCETARGETDEFS) in makefiles.



Can you double-confirm this? MSDN mentions -D_WIN32_WCE=$(CEVersion) and 
you suggest -D_WIN32_WCE=$(WCEVERSION). Is one wrong or are both right?


OK, I can see that WCEVERSION is defined in 3rd party wcecompat.mak, but 
I would feel better if we use variable set by VCVARS*.BAR or whatever 
it's called in embedded C. Meaning that I'd like to rephrase the 
question. Can you figure out variables set by VC, which we can use? A.


__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: mk1mf.pl doesn't generate makefile for Windows CE

2005-07-25 Thread Satoshi Nakamura
Hi,

At 25 Jul 2005 23:36:41 +0200 Andy Polyakov wrote:
  Can you double-confirm this? MSDN mentions -D_WIN32_WCE=$(CEVersion)
  and you suggest -D_WIN32_WCE=$(WCEVERSION). Is one wrong or are both
  right?
 
 OK, I can see that WCEVERSION is defined in 3rd party wcecompat.mak,
 but I would feel better if we use variable set by VCVARS*.BAR or
 whatever it's called in embedded C. Meaning that I'd like to rephrase
 the question. Can you figure out variables set by VC, which we can use?

They are OSVERSION, PLATFORM, WCEROOT, SDKROOT, PATH, INCLUDE, LIB, CC,
TARGETCPU and CFG.

Here is a script from WCEARM.BAT.

if %OSVERSION%== set OSVERSION=WCE300
if %PLATFORM%== set PLATFORM=ms pocket pc
if %WCEROOT%== set WCEROOT=C:\Program Files\Microsoft eMbedded Visual Tools
if %SDKROOT%== set SDKROOT=C:\Program Files\Windows CE Tools

set PATH=%WCEROOT%\COMMON\EVC\bin;%WCEROOT%\EVC\%OSVERSION%\bin;%path%
set 
INCLUDE=%SDKROOT%\%OSVERSION%\%PLATFORM%\include;%SDKROOT%\%OSVERSION%\%PLATFORM%\MFC\include;%SDKROOT%\%OSVERSION%\%PLATFORM%\ATL\include;
set 
LIB=%SDKROOT%\%OSVERSION%\%PLATFORM%\lib\arm;%SDKROOT%\%OSVERSION%\%PLATFORM%\MFC\lib\arm;%SDKROOT%\%OSVERSION%\%PLATFORM%\ATL\lib\arm;

set CC=clarm.exe

set TARGETCPU=ARM
set CFG=none


CEVersion is set by IDE, so you cannot utilize it from commandline.

-- 
Satoshi Nakamura [EMAIL PROTECTED]
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]