Re: [openssl.org #1790] [Patch] Windows CE 5 and following support

2008-11-24 Thread Maurice Kalinowski

Hi,

ext Roumen Petrov wrote:

Some notes about patch:
  

First, thank you for having a look at it.

- INSTALL.WCE
   "perl by MSYS" what is this ?
   If this is perl build from mingw32 project ? I can't found perl issue
in mingw32 bug tracker. Since the issue is not confirmed you can't write
that a package don't work.
  
Sorry, I meant the one from the mingw32 project. I use msysgit in my 
environment, thus I mixed up with the names. In any case, if I use that 
perl version, then nmake is not capable of parsing the generated 
makefiles. I can send a diff of both versions to this thread or create 
another request, if you prefer that.

- apps/ocsp.c
   why extra include of ? this mean that e_os.h patch is
incomplete.
  
I was tempted to add the include in e_os.h, but as this is the only file 
requiring this header I felt it to be much cleaner. If the general 
consensus is that e_os should be responsible for header inclusion 
ignoring that other files will use it for no purpose, I can change the 
patch accordingly.



- ms/do_ms.bat
   please keep changes minimal
  
There seemed to be a line-ending mixup or sth. It basically just adds 
"enable-experimental-jpake" to the WinCE makefile generator.

- util/pl/VC-32.pl
   please don't remove flags that affect warnings. WX->Wall ?
  
As stated in the mail, I needed to disable WX to have at least a 
successful compilation. WX treats warnings as errors and thus it will 
fail on two instances, where my knowledge about OpenSSL insides is 
limited. As already mentioned, I can send both compile warnings(errors) 
to this list and somebody can have a look at them.



   why is linked with crypt32 ?
  
The additional dependency results from using Cert* functions inside of 
engines/e_capi.c.


Best Regards,
Maurice Kalinowski


--
Maurice Kalinowski - maurice.kalinowski (AT) nokia.com
Software Engineer - Nokia, Qt Software
Rudower Chaussee 13, 12489 Berlin, Germany

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


[openssl.org #1791] BUG: openssl 0.9.8i creates a notAfter time in the past for dates after 2049

2008-11-24 Thread Christopher Williams via RT
If I attempt to create a certificate with an expiry time after 2049 (so
that openssl will use a GeneralizedTime rather than a UTCTime for the
notAfter field), openssl actually generates a date in the past.

This can be seen with the following:
openssl req -new -key  -config  -x509 -set_serial 1
-days 2 | openssl x509 -noout -dates

Which produces the following output on STDOUT:
notBefore=Nov 24 14:52:00 2008 GMT
notAfter=Jul 23 08:24:00 1927 GMT

Please excuse me if this is a known issue.  A quick Google search did
not turn anything up.

Kind regards,

Christopher Williams,
Software engineer, McAfee Inc.


McAfee International Limited is registered in England and Wales with its 
registered address at 100 New Bridge Street, London, Company No. 02825890


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


Re: verify certificate - not from a file

2008-11-24 Thread Patrick Patterson
On November 23, 2008 10:57:55 pm ThanhTrung Do wrote:
> > From: Itay Dagan <[EMAIL PROTECTED]>
> > Subject: verify certificate - not from a file
> > To: openssl-dev@openssl.org
> > Date: Monday, November 24, 2008, 12:37 AM
> > Hi Guys
> >
> > I am new in openssl - so hopfully I am not bringing up an
> > old issue :
> >
> > I am trying to verify a certificate that I am saving as
> > string in a random place on my PC memory.
> >
> > I know that there is the
> > "SSL_CTX_load_verify_locations()" that verify
> > certificate from a file or a path.
> >
> > My Q is :
> > Does openssl supports taking certificate not from a file or
> > path but from a place in the memory ?
> > meaning - A function that gets a char* - reads the
> > certificate from that location and verifying it.
> >
> >
> > appreciate your help :)
>
> I have the same need too, highly appreciate your helps.
>
Something like the following should work if the certificate is in PEM format.
(note: this is example only - the below code is probably full of errors, 
because I just zen'd it from memory). I'm sure that Steve or one of the other 
guru's will correct any problems :)

char certbuf = "PEM-ENCODED-CERTIFICATE";

BIO *bufbio = BIO_new(BIO_s_mem());
int len = BIO_puts(bufbio , certbuf);

X509 *cert = X509_new();
PEM_read_bio_X509(bufbio, &cert, NULL, NULL);

If the Cert is already in DER format, just use the d2i_X509() function to read 
it into the OpenSSL internal representation.

Have fun.


-- 
Patrick Patterson
President and Chief PKI Architect,
Carillon Information Security Inc.
http://www.carillon.ca
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


FIPS v1.2 test failures on FreeBSD 7

2008-11-24 Thread Brad House
When running the tx509 test (with no args), it ends up generating
a SIGILL.  GDB says the instruction is 'ud2a' which I believe is the
guaranteed illegal opcode on ia32.  Not sure why it's being generated
though.  This occurs on both FreeBSD 7 x86 and x64.  FreeBSD 5 and 6
do not exhibit this behavior.  All are being run within VMWare Server
v1.0.x, but that's never been an issue before.

Just for testing purposes, I also tried using the 'no-asm', 'no-sse2',
and '386' flags, and edited Configure to use '-O0 -g' instead of '-O3'
and it also generates the same thing.

Here's what GDB says:

Starting program: /usr/home/build/openssl-fips-1.2/apps/openssl x509 -in fff.p 
-inform p -outform d
[New LWP 100100]
[New Thread 0x28401100 (LWP 100100)]

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 0x28401100 (LWP 100100)]
0x0815b5e0 in PEM_read_bio_X509_AUX (bp=0x284051c0, x=0x0, cb=0x80c2a60 
, u=0x0)
(gdb) bt
#0  0x0815b5e0 in PEM_read_bio_X509_AUX (bp=0x284051c0, x=0x0, cb=0x80c2a60 
, u=0x0)
#1  0x080c3843 in load_cert (err=0x28405040, file=0xbfbfedc3 "fff.p", format=3, 
pass=0x0, e=0x0, cert_descrip=0x81d3290 "Certificate") at apps.c:821
#2  0x080af73e in x509_main (argc=0, argv=0xbfbfecc0) at x509.c:632
#3  0x0809082b in do_cmd (prog=0x28406200, argc=7, argv=0xbfbfeca4) at 
openssl.c:396
#4  0x080904b8 in main (Argc=7, Argv=0xbfbfeca4) at openssl.c:315
(gdb) disas
Dump of assembler code for function PEM_read_bio_X509_AUX:
0x0815b5e0 :   ud2a
End of assembler dump.

$ gcc --version
gcc (GCC) 4.2.1 20070719  [FreeBSD]

Any ideas? GCC issue perhaps?

Thanks.
-Brad


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


Re: FIPS v1.2 test failures on FreeBSD 7

2008-11-24 Thread Brad House
I might have jumped the gun here.  I'm getting that failure
on OpenSSL 0.9.8e (no fips), which I think was the branch
point for the FIPS v1.2, but not OpenSSL 0.9.8f (no fips).
So something must have been fixed between those 2 releases
for FreeBSD7.

I'm going to go ahead and build the FIPS release, then try to
use the 20081123 snapshot and link the fips canister to that and
see if the tests pass.

-Brad

Brad House wrote:
> When running the tx509 test (with no args), it ends up generating
> a SIGILL.  GDB says the instruction is 'ud2a' which I believe is the
> guaranteed illegal opcode on ia32.  Not sure why it's being generated
> though.  This occurs on both FreeBSD 7 x86 and x64.  FreeBSD 5 and 6
> do not exhibit this behavior.  All are being run within VMWare Server
> v1.0.x, but that's never been an issue before.
> 
> Just for testing purposes, I also tried using the 'no-asm', 'no-sse2',
> and '386' flags, and edited Configure to use '-O0 -g' instead of '-O3'
> and it also generates the same thing.
> 
> Here's what GDB says:
> 
> Starting program: /usr/home/build/openssl-fips-1.2/apps/openssl x509 -in 
> fff.p -inform p -outform d
> [New LWP 100100]
> [New Thread 0x28401100 (LWP 100100)]
> 
> Program received signal SIGILL, Illegal instruction.
> [Switching to Thread 0x28401100 (LWP 100100)]
> 0x0815b5e0 in PEM_read_bio_X509_AUX (bp=0x284051c0, x=0x0, cb=0x80c2a60 
> , u=0x0)
> (gdb) bt
> #0  0x0815b5e0 in PEM_read_bio_X509_AUX (bp=0x284051c0, x=0x0, cb=0x80c2a60 
> , u=0x0)
> #1  0x080c3843 in load_cert (err=0x28405040, file=0xbfbfedc3 "fff.p", 
> format=3, pass=0x0, e=0x0, cert_descrip=0x81d3290 "Certificate") at apps.c:821
> #2  0x080af73e in x509_main (argc=0, argv=0xbfbfecc0) at x509.c:632
> #3  0x0809082b in do_cmd (prog=0x28406200, argc=7, argv=0xbfbfeca4) at 
> openssl.c:396
> #4  0x080904b8 in main (Argc=7, Argv=0xbfbfeca4) at openssl.c:315
> (gdb) disas
> Dump of assembler code for function PEM_read_bio_X509_AUX:
> 0x0815b5e0 :   ud2a
> End of assembler dump.
> 
> $ gcc --version
> gcc (GCC) 4.2.1 20070719  [FreeBSD]
> 
> Any ideas? GCC issue perhaps?
> 
> Thanks.
> -Brad
> 
> 
> __
> OpenSSL Project http://www.openssl.org
> Development Mailing List   openssl-dev@openssl.org
> Automated List Manager   [EMAIL PROTECTED]
> 
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: Heimdal compatibility of the kerberos support

2008-11-24 Thread Honza Macháček

On 2008/11/23 23:07, Evgeny Sinelnikov wrote:


../libssl.so: undefined reference to `krb5_principal_set_type


Thank you for the warning.

I'm consulting MIT krb5 sources, but not actually testing compilation 
against MIT kerberos installed. Thus I haven't realized when I've got 
somehow myself under a delusion that krb5_principal_set_type is common 
to MIT and Heimdal, just as krb5_principal_compare is -- which is not 
the case.


The attached patch is corrected with respect to this (but still does not 
solve the krb5_ticket differences).


With best regards

Honza Macháček
diff -Naur openssl-0.9.8i/include/openssl/kssl.h 
openssl-0.9.8i-heimdal/include/openssl/kssl.h
--- include/openssl/kssl.h  2005-04-09 23:55:55.0 +
+++ include/openssl/kssl.h  2008-11-22 16:27:24.0 +
@@ -81,6 +81,7 @@
 */
 #ifdef KRB5_HEIMDAL
 typedef unsigned char krb5_octet;
+typedef krb5_times krb5_ticket_times;
 #define FAR
 #else
 
diff -Naur openssl-0.9.8i/ssl/kssl.c openssl-0.9.8i-heimdal/ssl/kssl.c
--- ssl/kssl.c  2008-04-02 11:15:05.0 +
+++ ssl/kssl.c  2008-11-24 16:05:07.0 +
@@ -821,16 +821,27 @@
 {
switch (enctype)
{
-   case ENCTYPE_DES_HMAC_SHA1: /*EVP_des_cbc();   */
-   case ENCTYPE_DES_CBC_CRC:
+   case ENCTYPE_DES_CBC_CRC:   /*EVP_des_cbc();   */
case ENCTYPE_DES_CBC_MD4:
case ENCTYPE_DES_CBC_MD5:
+#ifdef KRB5_HEIMDAL
+   case ENCTYPE_DES_CBC_NONE:
+   case ENCTYPE_DES_CFB64_NONE:
+   case ENCTYPE_DES_PCBC_NONE:
+#else
+   case ENCTYPE_DES_HMAC_SHA1:
case ENCTYPE_DES_CBC_RAW:
+#endif
return EVP_des_cbc();
break;
case ENCTYPE_DES3_CBC_SHA1: /*EVP_des_ede3_cbc();  */
+#ifdef KRB5_HEIMDAL
+   case ENCTYPE_DES3_CBC_MD5:
+   case ENCTYPE_DES3_CBC_NONE:
+#else
case ENCTYPE_DES3_CBC_SHA:
case ENCTYPE_DES3_CBC_RAW:
+#endif
return EVP_des_ede3_cbc();
break;
default:return NULL;
@@ -883,6 +894,7 @@
{
int i, j, n;
static size_t   *cklens = NULL;
+   size_t  cksumsize;
 
 #ifdef KRB5_MIT_OLD11
n = krb5_max_cksum;
@@ -894,13 +906,14 @@
if (!cklens && !(cklens = (size_t *) calloc(sizeof(int),n+1)))  return 
NULL;
 
for (i=0; i < n; i++)  {
-   if (!valid_cksumtype(i))  continue; /*  array has holes  */
+   if (!krb5_c_valid_cksumtype(i))  continue;  /*  array has 
holes  */
+   if (krb5_c_checksum_length(NULL, i, &cksumsize))  continue; 
/*  there's something wrong  */
for (j=0; j < n; j++)  {
if (cklens[j] == 0)  {
-   cklens[j] = krb5_checksum_size(NULL,i);
+   cklens[j] = cksumsize;
break;  /*  krb5 elem was new: add   */
}
-   if (cklens[j] == krb5_checksum_size(NULL,i))  {
+   if (cklens[j] == cksumsize)  {
break;  /*  ignore duplicate elements */
}
}
@@ -957,14 +970,21 @@
 print_krb5_data(char *label, krb5_data *kdata)
 {
int i;
+   unsigned char *datastring;
+
+#ifdef KRB5_HEIMDAL
+   memcpy(datastring, kdata->data, kdata->length);
+#else
+   datastring = kdata->data;
+#endif
 
printf("%s[%d] ", label, kdata->length);
for (i=0; i < (int)kdata->length; i++)
 {
-   if (0 &&  isprint((int) kdata->data[i]))
-printf("%c ",  kdata->data[i]);
+   if (0 &&  isprint((int) datastring[i]))
+printf("%c ",  datastring[i]);
else
-printf("%02x ", (unsigned char) 
kdata->data[i]);
+printf("%02x ", datastring[i]);
}
printf("\n");
 }
@@ -1002,28 +1022,28 @@
 print_krb5_keyblock(char *label, krb5_keyblock *keyblk)
 {
int i;
+   unsigned char *keyblkcontents;
 
if (keyblk == NULL)
 {
printf("%s, keyblk==0\n", label);
return;
}
+
 #ifdef KRB5_HEIMDAL
printf("%s\n\t[et%d:%d]: ", label, keyblk->keytype,
-  keyblk->keyvalue->length);
-   for (i=0; i < (int)keyblk->keyvalue->length; i++)
-{
-   printf("%02x",(unsigned char *)(keyblk->keyvalue->contents)[i]);
-   }
-   printf("\n");
+  keyblk->keyvalue.length);
+   memcpy(keyblkcontents, keyblk->keyvalue.data, keyblk->keyvalue.length);

Re: verify certificate - not from a file

2008-11-24 Thread Itay Dagan
Hi Patrick

Thanks alot for the advise - I will try it :)

Itay

- Original Message -
From: "Patrick Patterson" <[EMAIL PROTECTED]>
To: openssl-dev@openssl.org
Sent: Monday, November 24, 2008 5:36:31 PM (GMT+0200) Auto-Detected
Subject: Re: verify certificate - not from a file

On November 23, 2008 10:57:55 pm ThanhTrung Do wrote:
> > From: Itay Dagan <[EMAIL PROTECTED]>
> > Subject: verify certificate - not from a file
> > To: openssl-dev@openssl.org
> > Date: Monday, November 24, 2008, 12:37 AM
> > Hi Guys
> >
> > I am new in openssl - so hopfully I am not bringing up an
> > old issue :
> >
> > I am trying to verify a certificate that I am saving as
> > string in a random place on my PC memory.
> >
> > I know that there is the
> > "SSL_CTX_load_verify_locations()" that verify
> > certificate from a file or a path.
> >
> > My Q is :
> > Does openssl supports taking certificate not from a file or
> > path but from a place in the memory ?
> > meaning - A function that gets a char* - reads the
> > certificate from that location and verifying it.
> >
> >
> > appreciate your help :)
>
> I have the same need too, highly appreciate your helps.
>
Something like the following should work if the certificate is in PEM format.
(note: this is example only - the below code is probably full of errors, 
because I just zen'd it from memory). I'm sure that Steve or one of the other 
guru's will correct any problems :)

char certbuf = "PEM-ENCODED-CERTIFICATE";

BIO *bufbio = BIO_new(BIO_s_mem());
int len = BIO_puts(bufbio , certbuf);

X509 *cert = X509_new();
PEM_read_bio_X509(bufbio, &cert, NULL, NULL);

If the Cert is already in DER format, just use the d2i_X509() function to read 
it into the OpenSSL internal representation.

Have fun.


-- 
Patrick Patterson
President and Chief PKI Architect,
Carillon Information Security Inc.
http://www.carillon.ca
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: verify certificate - not from a file

2008-11-24 Thread Shahin Khorasani




Patrick Patterson wrote:

  On November 23, 2008 10:57:55 pm ThanhTrung Do wrote:
  
  

  From: Itay Dagan <[EMAIL PROTECTED]>
Subject: verify certificate - not from a file
To: openssl-dev@openssl.org
Date: Monday, November 24, 2008, 12:37 AM
Hi Guys

I am new in openssl - so hopfully I am not bringing up an
old issue :

I am trying to verify a certificate that I am saving as
string in a random place on my PC memory.

I know that there is the
"SSL_CTX_load_verify_locations()" that verify
certificate from a file or a path.

My Q is :
Does openssl supports taking certificate not from a file or
path but from a place in the memory ?
meaning - A function that gets a char* - reads the
certificate from that location and verifying it.


appreciate your help :)
  

I have the same need too, highly appreciate your helps.


  
  Something like the following should work if the certificate is in PEM format.
(note: this is example only - the below code is probably full of errors, 
because I just zen'd it from memory). I'm sure that Steve or one of the other 
guru's will correct any problems :)

char certbuf = "PEM-ENCODED-CERTIFICATE";

BIO *bufbio = BIO_new(BIO_s_mem());
int len = BIO_puts(bufbio , certbuf);

X509 *cert = X509_new();
PEM_read_bio_X509(bufbio, &cert, NULL, NULL);

If the Cert is already in DER format, just use the d2i_X509() function to read 
it into the OpenSSL internal representation.

Have fun.


  

As Patrick wrote you can load a certificate into X509 structure, but
after that you need to validate it with other facilities such as
functions implemented in X509_STORE set. You can find a simple code
below to load both PEM and DER certificate into a X509 structure.

int    loadFromMemory(char *buf, int bufLen)
{
    BIO *bp = NULL;
    X509 *cert = NULL;

 #define retFree(x) do { \
        if(bp) \
            BIO_free(bp); \
        if(cert) \
            X509_free(cert); \
       return x; \
    } while(0);

    if(!buf || bufLen < 1)
        return 1;
       
    bp = BIO_new(BIO_s_mem());
    if(!bp)
        return 2;

    cert = X509_new();
    if(!cert)
        retFree(3);   

    if(!BIO_write(bp, buf, bufLen))
        retFree(4);   
    
    cert = PEM_read_bio_X509(bp, NULL, NULL);
    if(!cert) {
        BIO_free(bp);
        bp = BIO_new(BIO_s_mem());
        if(!bp)
            retFree(5);

        if(!BIO_write(bp, (char *) buf, bufLen))
            retFree(6);
   
       cert = d2i_X509_bio(bp, NULL);
   }

   BIO_free(bp);
  
   if(!cert)
       retFree(7);
   
   return 0;
}


Regards,
Shahin Khorasani



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


Re: FIPS v1.2 test failures on FreeBSD 7

2008-11-24 Thread Brad House
Ok, the tests passed when linking the fipscanister
against the 0.9.8-stable snap 20081123 ...

-Brad

Brad House wrote:
> I might have jumped the gun here.  I'm getting that failure
> on OpenSSL 0.9.8e (no fips), which I think was the branch
> point for the FIPS v1.2, but not OpenSSL 0.9.8f (no fips).
> So something must have been fixed between those 2 releases
> for FreeBSD7.
> 
> I'm going to go ahead and build the FIPS release, then try to
> use the 20081123 snapshot and link the fips canister to that and
> see if the tests pass.
> 
> -Brad
> 
> Brad House wrote:
>> When running the tx509 test (with no args), it ends up generating
>> a SIGILL.  GDB says the instruction is 'ud2a' which I believe is the
>> guaranteed illegal opcode on ia32.  Not sure why it's being generated
>> though.  This occurs on both FreeBSD 7 x86 and x64.  FreeBSD 5 and 6
>> do not exhibit this behavior.  All are being run within VMWare Server
>> v1.0.x, but that's never been an issue before.
>>
>> Just for testing purposes, I also tried using the 'no-asm', 'no-sse2',
>> and '386' flags, and edited Configure to use '-O0 -g' instead of '-O3'
>> and it also generates the same thing.
>>
>> Here's what GDB says:
>>
>> Starting program: /usr/home/build/openssl-fips-1.2/apps/openssl x509 -in 
>> fff.p -inform p -outform d
>> [New LWP 100100]
>> [New Thread 0x28401100 (LWP 100100)]
>>
>> Program received signal SIGILL, Illegal instruction.
>> [Switching to Thread 0x28401100 (LWP 100100)]
>> 0x0815b5e0 in PEM_read_bio_X509_AUX (bp=0x284051c0, x=0x0, cb=0x80c2a60 
>> , u=0x0)
>> (gdb) bt
>> #0  0x0815b5e0 in PEM_read_bio_X509_AUX (bp=0x284051c0, x=0x0, cb=0x80c2a60 
>> , u=0x0)
>> #1  0x080c3843 in load_cert (err=0x28405040, file=0xbfbfedc3 "fff.p", 
>> format=3, pass=0x0, e=0x0, cert_descrip=0x81d3290 "Certificate") at 
>> apps.c:821
>> #2  0x080af73e in x509_main (argc=0, argv=0xbfbfecc0) at x509.c:632
>> #3  0x0809082b in do_cmd (prog=0x28406200, argc=7, argv=0xbfbfeca4) at 
>> openssl.c:396
>> #4  0x080904b8 in main (Argc=7, Argv=0xbfbfeca4) at openssl.c:315
>> (gdb) disas
>> Dump of assembler code for function PEM_read_bio_X509_AUX:
>> 0x0815b5e0 :   ud2a
>> End of assembler dump.
>>
>> $ gcc --version
>> gcc (GCC) 4.2.1 20070719  [FreeBSD]
>>
>> Any ideas? GCC issue perhaps?
>>
>> Thanks.
>> -Brad
>>
>>
>> __
>> OpenSSL Project http://www.openssl.org
>> Development Mailing List   openssl-dev@openssl.org
>> Automated List Manager   [EMAIL PROTECTED]
>>
> __
> OpenSSL Project http://www.openssl.org
> Development Mailing List   openssl-dev@openssl.org
> Automated List Manager   [EMAIL PROTECTED]
> 
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: FIPS v1.2 test failures on FreeBSD 7

2008-11-24 Thread Dr. Stephen Henson
On Mon, Nov 24, 2008, Brad House wrote:

> I might have jumped the gun here.  I'm getting that failure
> on OpenSSL 0.9.8e (no fips), which I think was the branch
> point for the FIPS v1.2, but not OpenSSL 0.9.8f (no fips).
> So something must have been fixed between those 2 releases
> for FreeBSD7.
> 
> I'm going to go ahead and build the FIPS release, then try to
> use the 20081123 snapshot and link the fips canister to that and
> see if the tests pass.
> 

There is an issue with how OpenSSL uses function pointers which gcc 4.2 and
later chokes on, you should see warning saying it will abort when you compiled
it. It was was fixed around that time.

You shouldn't see that issue if you compile a newer version of OpenSSL or link
the FIPS modules against a newer version.

Steve.
--
Dr Stephen N. Henson. Email, S/MIME and PGP keys: see homepage
OpenSSL project core developer and freelance consultant.
Homepage: http://www.drh-consultancy.demon.co.uk
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: [openssl.org #1790] [Patch] Windows CE 5 and following support

2008-11-24 Thread Roumen Petrov

Maurice Kalinowski wrote:

Hi,


[SNIP]


- apps/ocsp.c
   why extra include of ? this mean that e_os.h patch is
incomplete.
  
I was tempted to add the include in e_os.h, but as this is the only file 
requiring this header I felt it to be much cleaner. If the general 
consensus is that e_os should be responsible for header inclusion 
ignoring that other files will use it for no purpose, I can change the 
patch accordingly.


Other openssl code use socket functions too.





- ms/do_ms.bat
   please keep changes minimal
  
There seemed to be a line-ending mixup or sth. It basically just adds 
"enable-experimental-jpake" to the WinCE makefile generator.

- util/pl/VC-32.pl
   please don't remove flags that affect warnings. WX->Wall ?
As stated in the mail, I needed to disable WX to have at least a 
successful compilation. WX treats warnings as errors and thus it will 
fail on two instances, where my knowledge about OpenSSL insides is 
limited. As already mentioned, I can send both compile warnings(errors) 
to this list and somebody can have a look at them.


If I remember well option "Wall" don't treat warnings as errors.



   why is linked with crypt32 ?
  
The additional dependency results from using Cert* functions inside of 
engines/e_capi.c.


Yep. capi is experimental and build of openssl-HEAD need some 
improvements, i.e. to support additional engine libraries in both cases: 
static and shared build.


I mean following changes:
=

+ if ($wcevers >= 500) {
+ $lflags .=" /NODEFAULTLIB:oldnames.lib /NODEFAULTLIB:libc.lib 
crypt32.lib";


+ if ($target =~ /capi/ && $FLAVOR !~ /CE/)
{
$ex.=' crypt32.lib advapi32.lib';

=

Only capi-engine require crypt32.
Why you add crypt32 to $lflags ?



Best Regards,
Maurice Kalinowski


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


Re: [openssl.org #1791] BUG: openssl 0.9.8i creates a notAfter time in the past for dates after 2049

2008-11-24 Thread Roumen Petrov

Christopher Williams via RT wrote:

If I attempt to create a certificate with an expiry time after 2049 (so
that openssl will use a GeneralizedTime rather than a UTCTime for the
notAfter field), openssl actually generates a date in the past.


[SNIP]

Did HEAD work for you ?
http://cvs.openssl.org/chngview?cn=17499

Roumen

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


Re: [openssl.org #1703] Bug report for DTLS

2008-11-24 Thread David Woodhouse
Apologies for delayed response. There was some bureaucracy to go through
to make sure I had management approval for releasing the code which
explains my interest in the subject.

That's done now; we have a full open source client for the VPN in
question, and OpenSSL client support for BAD_DTLS_VER is the last piece
in the jigsaw for me.

http://git.infradead.org/users/dwmw2/openconnect.git
git://git.infradead.org/users/dwmw2/openconnect.git

On Wed, 2008-10-15 at 09:13 +0200, Andy Polyakov wrote:
> >>> Note: I have reverted the DTLS1_BAD_VER part as DTLS1_BAD_VER handling
> >>> is not present in HEAD (0.9.9).
> >>> 
> >> That makes sense.
> >>
> >> I assume that DTLS1_BAD_VER handling wasn't added to HEAD because the
> >> pre-RFC version of DTLS was considered to be an OpenSSL-specific thing
> >> that would quickly die out as people upgraded to 0.9.8f and beyond?
> 
> Right.
> 
> >> Now we've observed that there are servers in the wild which implement
> >> that old OpenSSL-specific version of the protocol, but which we'd like
> >> to be compatible with.
> 
> Could you clarify? Haven't you mentioned that it's about Cisco 
> AnyConnect VPN? Isn't it OpenSSL-based? If it's pre-0.9.8f-based, then 
> shouldn't you question if it's appropriate to use it at all because of 
> security problems?

They do update to a new version of OpenSSL periodically, and they also
backport security patches even more frequently than that, allegedly.

But their products use the pre-RFC version of DTLS, so they have to
remain compatible with that. So even though they're currently on 0.9.8f,
they're still using DTLS1_BAD_VER.

Their server _does_ seem to accept some variant of the _real_ DTLS
protocol, but it's strangely broken -- you have to calculate the MAC as
if the version number in the packets was DTLS1_BAD_VER, even though it
isn't. And although the _handshake_ works that way, the server still
seems to ignore all incoming data packets.

I strongly suspect that their implementation of REAL_VER is completely
broken, and that there is _no_ way to interoperate with it. The real
clients use DTLS1_BAD_VER, and that's what we need to use too.

>  And if it turns out that their REAL_VER is not RFC-compliant, then
> why did they choose REAL_VER and not VENDOR_VER? 

They don't care about REAL_VER and probably aren't even aware that their
server seems to accept it. They never use it, and it's not tested. If
they do ever realise, they'll probably turn it off.

> In other words, can you remind the reason for re-introducing
> BAD_DTLS:-)

_My_ reason for wanting to re-introduce DTLS1_BAD_VER is purely
interoperability. There are servers out there which use it, which we
really really want to talk to. And it's a fairly simple patch.

> Even in worst case is DTLS the only option in 
> AnyConnect? I mean if it doesn't work, why not use TLS [till DTLS is 
> fixed to be RFC-compliant]?

This is a VPN, and TCP over TCP _really_ sucks.

The only viable option for connecting to these VPN servers is to use
DTLS1_BAD_VER, really.

> >> If I can actually get that working in HEAD, would
> >> a patch to support it be acceptable?
> >>   
> > I had a deeper look into the mailing list archive and I did not find
> > any explicit statement on why this was handed differently in 0.9.8
> > and in HEAD.
> > Finally we would of course prefer to move people to update to an
> > RFC compliant version, so I guess the pre-RFC support should be
> > configurable somehow. Andy, what do you think?

With my patch, the pre-RFC support is only available if you manually set
up a session to be 'resumed' that way. We don't need anything more,
because the master-secret and session-id for the DTLS session are
actually exchanged over HTTPS in advance.

> My vote still goes for *not* implementing BAD_VER in HEAD.

Please reconsider.

Obviously the _correct_ thing for them to do is make REAL_VER work on
the server in parallel with BAD_VER, then slowly migrate their clients
to use REAL_VER and over time they can completely forget about BAD_VER.

But this is a vendor of proprietary software. Of _course_ they don't
have the wit to do that, and we have to interoperate with what we're
given.


-- 
dwmw2

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


Can I create certificate for using in Windows ???

2008-11-24 Thread Rustam Rakhimov
Can I create certificate for using in Windows ???