Re: FIPS mode fails with fingerprint not matching error

2012-09-21 Thread Cassie Helms
> How do I make the FIPS module point to the FIPS capable version that has been
> built?
Look for the --with-fipslibdir option referenced in UserGuide 2.0.  There is 
also a --with-fipsdir that I don't believe is talked about in the document.

You might want to run ldd on your app executable to check which ssl it's
linking in. It may be linking an older ssl version living on your machine 
that's not necessarily the one you just built.

Cassie


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: AES-CMAC-128 equivalent to EVP_aes_128_cbc sent to CMAC?

2012-08-31 Thread Cassie Helms
> In implementing AES-CMAC-128 over a message, I assumed it would be
> equivalent in OpenSSL to hand the EVP_aes_128_cbc() EVP_CIPHER to CMAC, as
> I did not see a regular AES-128 EVP_CIPHER availble. 

It looks like sending AES-CBC into CMAC is the same thing as AES-CMAC-128.
Question answered.

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


AES-CMAC-128 equivalent to EVP_aes_128_cbc sent to CMAC?

2012-08-22 Thread Cassie Helms
Hi folks,
Thanks for your help with previous questions. I have a new one, which
should hopefully be quick:

In implementing AES-CMAC-128 over a message, I assumed it would be
equivalent in OpenSSL to hand the EVP_aes_128_cbc() EVP_CIPHER to CMAC, as
I did not see a regular AES-128 EVP_CIPHER availble. Perhaps this is 
incorrect, but it seems as if there are only a variety of modes of AES 
available to send to CMAC, rather than the most "basic" version of the 
cipher.

Is there just a generic AES-128 EVP_CIPHER available to pass as an arg
to CMAC?

Thanks for insight.

Cassie

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: Easy way to turn on gdb symbols (and just gdb symbols?)

2012-08-17 Thread Cassie Helms
> Maybe I should add that I've verified that FIPS_mode is turned on right before
> my failing MD4 calls (think OpenSSLDie()), and I didn't do anything special 
> to compile or turn on the MD4 algorithm.could that be where I'm missing a
> step?

Ah yes, now I see that what I am trying to do is perhaps impossible:

"Other non-FIPS approved algorithms such a Blowfish, MD5, IDEA, RC4, etc. are
disabled in FIPS mode."

OK.  Here is where I'm coming from:
- I have a new version of a product that needs to use CMAC and CCM
- but it also has to support older versions of a protocol that call for things 
like... MD4
- as far as I know, CMAC and CCM can only be used through validated fips code 
(right?)...
- but if fips mode is turned on, MD4 is not available because it's not a 
validated algorithm.

Steve, if you are there, do you have advice on what library I should have used 
to achieve these requirements? Or if I am to toggle between fips and not fips 
mode during run time?

I was under the impression that moving the new openssl library into my product 
source would offer all of the old functionality I needed, as well as the new 
fips functionality. Is this not true?

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: Easy way to turn on gdb symbols (and just gdb symbols?)

2012-08-17 Thread Cassie Helms
> I'm seeing odd failures in the MD4/MD4_Init functions and I can't 
> debug them with gdb because I can't see what the source is doing.

Maybe I should add that I've verified that FIPS_mode is turned on right before
my failing MD4 calls (think OpenSSLDie()), and I didn't do anything special 
to compile or turn on the MD4 algorithm.could that be where I'm missing a
step?


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: openssl bug database?

2012-08-17 Thread Cassie Helms
Actually, my real question was, where can I see a list of bugs that are 
already reported for openssl, so I can anticipate certain openssl 
functions failing? I wish I could contribute more to the source by 
reporting bugs, but I have so many of my own already...and would like
to be able to see where they are going to happen next, if that's 
possible.

Thanks.



__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Easy way to turn on gdb symbols (and just gdb symbols?)

2012-08-17 Thread Cassie Helms
Hi folks,
I'm looking to compile fips and openssl with gdb symbols. So far both 
compilations are unhappy with

make CFLAGS=-g

after doing my typical config stuff.

I noticed there are some "debug" options for fips/Configure, if you look really 
hard in the Configure file...I think these typically include a gdb flag. The 
problem is, if I do

cd fips
./Configure debug

on my build machine (which is gcc version 4.1.2) and then do

make

I get 

gcc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include  -
DOPENSSL_FIPSCANISTER -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -
DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -ggdb -g2 -Wformat -Wshadow 
-Wmissing-prototypes 
-Wmissing-declarations -Werror   -c -o bn_blind.o bn_blind.c
gcc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include  -
DOPENSSL_FIPSCANISTER -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -
DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -ggdb -g2 -Wformat -Wshadow 
-Wmissing-prototypes 
-Wmissing-declarations -Werror   -c -o bn_ctx.o bn_ctx.c
cc1: warnings being treated as errors
bn_ctx.c: In function ‘ctxdbg’:
bn_ctx.c:163: warning: cast from pointer to integer of different size
make[2]: *** [bn_ctx.o] Error 1
make[2]: Leaving directory `/home/cassie/fips-2.0/crypto/bn'
make[1]: *** [fips] Error 1
make[1]: Leaving directory `/home/cassie/fips-2.0/crypto'
make: *** [build_crypto] Error 1

which is an error I don't get if I just do a typical ./config.

I'm guessing this is a gcc version problem. But I'm wondering if there is any 
simpler way to get gdb symbols compiled into fips 2.0 and openssl 1.0.1c that 
I'm overlooking.

At the moment, I'm seeing odd failures in the MD4/MD4_Init functions and I 
can't 
debug them with gdb because I can't see what the source is doing.

Any advice is greatly appreciated. Thanks.

Cassie


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


openssl bug database?

2012-08-17 Thread Cassie Helms
I want to make sure I don't potentially report openssl bugs that someone else 
has already reported.  Is there a database of open openssl bugs that I 
haven't seen the link to, somewhere?

Thanks,
Cassie

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: fingerprint does not match on FIPS_mode_set when FIPS + openssl is dynamically linked into build

2012-08-14 Thread Cassie Helms
Eventually I solved this problem. Here is the set of commands I need to use to 
generate the shared fips-capable openssl libraries:

su
cd fips // wherever that may be
./config
make
make install
// this installs fipscanister.o and adjacent files into /usr/local/ssl/fips-2.0/

cd openssl // still as root
./config fips shared
make depend
make
make install
// this installs libssl.so* and libcrypto.so* into /usr/local/ssl/lib

// I couldn’t get ldconfig to work for me, so I did this
export LD_LIBRARY_PATH=/usr/local/ssl/lib:$LD_LIBRARY_PATH

When I make my tiny application, I use the following directive in my Makefile:

DRIVER = encryption_driver
#export FIPSLD_CC = gcc // don't need this for .so
#export CC = fipsld // don't need this for .so
CC = gcc
CFLAGS = -Wall
INCLUDES = -I/usr/local/ssl/include/
LFLAGS = -L/usr/local/ssl/lib
LIBS = -lcrypto -lssl -ldl

$(DRIVER): $(DRIVER).c $(DRIVER).h
$(CC) $(CFLAGS) -o $@ $(INCLUDES) $(LFLAGS) $(LIBS) $^

Subsequently, a call to FIPS_mode_set in my encryption_driver returns without 
error.

This was very difficult to debug in my actual product build sequence.  Several 
executables are generated from the build and it turns out some were linking in 
an old version of openssl in some archaic location on the build machine (boo!)  
I made a lot of calls to ldd to discover this.

Hopefully this is helpful to someone else out there...

Cassie

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: Compiling openssl 1.0.1c with fips 2.0.1

2012-08-10 Thread Cassie Helms
> ar: creating ../libcrypto.a
> [ -z "/usr/local/ssl/fips-2.0/lib" ] || ar  r ../libcrypto.a 
/usr/local/ssl/fips-2.0/libfipscanister.o
> ar: /usr/local/ssl/fips-2.0/libfipscanister.o: No such file or directory

Here is your problem, perhaps -- missing a slash at the end of lib. Should be 
pointing to 
/usr/local/ssl/fips-2.0/lib/fipscanister.o 
instead of 
/usr/local/ssl/fips-2.0/libfipscanister.o

I suspect when you run a regular "make" it can't find fipscanister.o either. 
May want to verify.

Cassie

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: fingerprint does not match on FIPS_mode_set when FIPS + openssl is dynamically linked into build

2012-07-27 Thread Cassie Helms
Dr. Stephen Henson  writes:

> > Integrity  test started
> > ERROR:2D06B06F:lib=45,func=107,reason=111:file=fips.c:line=229
> > Integrity  test Failed Incorrectly!!
> 
> Well that error indicates the fingerprint error. The question is what is
> different about the two build processes?

The difference seems to be in the sequence of building things. In the main 
build, I do

1. fipscanister.o
2. fips_algvs
3. openssl + fipscanister.o module

If I use the copy of fips_algvs tool generated in step 2, I get the error on 
the 
target system.

The build is set up such that I have source and build output leftover in debug 
directories. If I go back manually to the debugging source for fips and do a 
make build_algvs, like so

4. fips_algvs

and use that copy of the tool, no error comes out on the target system.

Much head scratching. And I still don't know what "digests" are getting 
compared 
during this FIPS_mode_set step. What is an incore fingerprint anyway?

Cassie


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: fingerprint does not match on FIPS_mode_set when FIPS + openssl is dynamically linked into build

2012-07-27 Thread Cassie Helms
Cassie Helms  writes:

> Built fips_algvs on build system and scp'd to target system as suggested. 

Hmm. I incorporated building fips_algvs into my build system and ran it from 
the 
rpm install on the target machine. I get different results now -- can anyone 
point to what this might indicate, coupled with the fips fingerprint error?

# fips_algvs fips_test_suite post

FIPS-mode test application
FIPS 2.0 validated module 14 Mar 2012

DRBG AES-256-CTR DF test started
DRBG AES-256-CTR DF test OK
POST started
Integrity  test started
ERROR:2D06B06F:lib=45,func=107,reason=111:file=fips.c:line=229
Integrity  test Failed Incorrectly!!
DRBG AES-256-CTR DF test started
DRBG AES-256-CTR DF test OK
DRBG AES-256-CTR test started
DRBG AES-256-CTR test OK
DRBG SHA256 test started
DRBG SHA256 test OK
DRBG HMAC-SHA256 test started
DRBG HMAC-SHA256 test OK
DRBG P-256 SHA256 test started
DRBG P-256 SHA256 test OK
X9.31 PRNG keylen=16 test started
X9.31 PRNG keylen=16 test OK
X9.31 PRNG keylen=24 test started
X9.31 PRNG keylen=24 test OK
X9.31 PRNG keylen=32 test started
X9.31 PRNG keylen=32 test OK
Digest SHA1 test started
Digest SHA1 test OK
Digest SHA1 test started
Digest SHA1 test OK
Digest SHA1 test started
Digest SHA1 test OK
HMAC SHA1 test started
HMAC SHA1 test OK
HMAC SHA224 test started
HMAC SHA224 test OK
HMAC SHA256 test started
HMAC SHA256 test OK
HMAC SHA384 test started
HMAC SHA384 test OK
HMAC SHA512 test started
HMAC SHA512 test OK
CMAC AES-128-CBC test started
CMAC AES-128-CBC test OK
CMAC AES-192-CBC test started
CMAC AES-192-CBC test OK
CMAC AES-256-CBC test started
CMAC AES-256-CBC test OK
CMAC DES-EDE3-CBC test started
CMAC DES-EDE3-CBC test OK
Cipher AES-128-ECB test started
Cipher AES-128-ECB test OK
CCM  test started
CCM  test OK
GCM  test started
GCM  test OK
XTS AES-128-XTS test started
XTS AES-128-XTS test OK
XTS AES-256-XTS test started
XTS AES-256-XTS test OK
Cipher DES-EDE3-ECB test started
Cipher DES-EDE3-ECB test OK
Cipher DES-EDE3-ECB test started
Cipher DES-EDE3-ECB test OK
Signature RSA test started
Signature RSA test OK
Signature ECDSA P-224 test started
Signature ECDSA P-224 test OK
Signature ECDSA K-233 test started
Signature ECDSA K-233 test OK
Signature DSA test started
Signature DSA test OK
ECDH P-224 test started
ECDH P-224 test OK
POST Failed
Power-up self test failed

Old results below --

> ./fips_algvs fips_test_suite post
>   FIPS-mode test application
>   FIPS 2.0 validated module 14 Mar 2012
> 
>   DRBG AES-256-CTR DF test started
>   DRBG AES-256-CTR DF test OK
>   POST started
>   Integrity  test started
>   Integrity  test OK
>   DRBG AES-256-CTR DF test started
>   DRBG AES-256-CTR DF test OK
>   DRBG AES-256-CTR test started
>   DRBG AES-256-CTR test OK
>   DRBG SHA256 test started
>   DRBG SHA256 test OK
>   DRBG HMAC-SHA256 test started
>   DRBG HMAC-SHA256 test OK
>   DRBG P-256 SHA256 test started
>   DRBG P-256 SHA256 test OK
>   X9.31 PRNG keylen=16 test started
>   X9.31 PRNG keylen=16 test OK
>   X9.31 PRNG keylen=24 test started
>   X9.31 PRNG keylen=24 test OK
>   X9.31 PRNG keylen=32 test started
>   X9.31 PRNG keylen=32 test OK
>   Digest SHA1 test started
>   Digest SHA1 test OK
>   Digest SHA1 test started
>   Digest SHA1 test OK
>   Digest SHA1 test started
>   Digest SHA1 test OK
>   HMAC SHA1 test started
>   HMAC SHA1 test OK
>   HMAC SHA224 test started
>   HMAC SHA224 test

Re: fingerprint does not match on FIPS_mode_set when FIPS + openssl is dynamically linked into build

2012-07-26 Thread Cassie Helms
Apologies, this thread is a duplicate of the one Dr. Henson is already 
responding to. The authentication system made it unclear whether or 
not my original question would post yesterday. Please do not respond 
to this thread.

Cassie

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: fingerprint does not match on FIPS_mode_set when FIPS + openssl is dynamically linked into build

2012-07-26 Thread Cassie Helms
> What platform is the target system?
cat /etc/*-release: RHEL Server 5.5 (Tikanga)
uname -mrs: Linux 2.6.18-194.el5 x86_64
Build system specs are the same as these.

> After you build the validated module do this:
> 
> make build_algvs
> 
> This should build an fips_algvs binary in the test directory. Copy that to
> the target system and run:
> 
> ./fips_algvs fips_test_suite post

Built fips_algvs on build system and scp'd to target system as suggested.

./fips_algvs fips_test_suite post
FIPS-mode test application
FIPS 2.0 validated module 14 Mar 2012

DRBG AES-256-CTR DF test started
DRBG AES-256-CTR DF test OK
POST started
Integrity  test started
Integrity  test OK
DRBG AES-256-CTR DF test started
DRBG AES-256-CTR DF test OK
DRBG AES-256-CTR test started
DRBG AES-256-CTR test OK
DRBG SHA256 test started
DRBG SHA256 test OK
DRBG HMAC-SHA256 test started
DRBG HMAC-SHA256 test OK
DRBG P-256 SHA256 test started
DRBG P-256 SHA256 test OK
X9.31 PRNG keylen=16 test started
X9.31 PRNG keylen=16 test OK
X9.31 PRNG keylen=24 test started
X9.31 PRNG keylen=24 test OK
X9.31 PRNG keylen=32 test started
X9.31 PRNG keylen=32 test OK
Digest SHA1 test started
Digest SHA1 test OK
Digest SHA1 test started
Digest SHA1 test OK
Digest SHA1 test started
Digest SHA1 test OK
HMAC SHA1 test started
HMAC SHA1 test OK
HMAC SHA224 test started
HMAC SHA224 test OK
HMAC SHA256 test started
HMAC SHA256 test OK
HMAC SHA384 test started
HMAC SHA384 test OK
HMAC SHA512 test started
HMAC SHA512 test OK
CMAC AES-128-CBC test started
CMAC AES-128-CBC test OK
CMAC AES-192-CBC test started
CMAC AES-192-CBC test OK
CMAC AES-256-CBC test started
CMAC AES-256-CBC test OK
CMAC DES-EDE3-CBC test started
CMAC DES-EDE3-CBC test OK
Cipher AES-128-ECB test started
Cipher AES-128-ECB test OK
CCM  test started
CCM  test OK
GCM  test started
GCM  test OK
XTS AES-128-XTS test started
XTS AES-128-XTS test OK
XTS AES-256-XTS test started
XTS AES-256-XTS test OK
Cipher DES-EDE3-ECB test started
Cipher DES-EDE3-ECB test OK
Cipher DES-EDE3-ECB test started
Cipher DES-EDE3-ECB test OK
Signature RSA test started
Signature RSA test OK
Signature ECDSA P-224 test started
Signature ECDSA P-224 test OK
Signature ECDSA K-233 test started
Signature ECDSA K-233 test OK
Signature DSA test started
Signature DSA test OK
ECDH P-224 test started
ECDH P-224 test OK
POST Success
Power-up self test successful

Thanks for looking at this.

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


fingerprint does not match on FIPS_mode_set when FIPS + openssl is dynamically linked into build

2012-07-26 Thread Cassie Helms
Hi folks,
I have a FIPS capable OpenSSL library, where libcrypto.so and libssl.so get 
linked into my product during build. I'm using FIPS 2.0 and OpenSSL 1.0.1c.

To the best of my knowledge, on the build machine I can do the following:
for fips, I call
./config
make
make install
where I give install an install prefix

for openssl, I call
./config fips -d shared --with-fipsdir={install_prefix}/usr/local/ssl/fips-2.0 -
-prefix={blah}

This all works fine. fipscanister.o comes out, I point openssl to it, and 
openssl makes some libraries. Doing an objdump on libcrypto.so reveals similar 
fingerprint text as found in an objdump on fipscanister.o.

My total build generates an rpm of my source with the linked ssl libraries, 
which I install on a different machine that does not have openssl or fips 
installed.

Unfortunately, FIPS_mode_set(1) still fails for me with the following:

error:2D06C06E:FIPS routines:FIPS_mode_set:fingerprint does not 
match:fips.c:489:

It is my understanding that fipscanister.o gets generated with its SHA1 value 
already embedded in it, and FIPS_mode_set generates its own fingerprint at 
runtime to compare to the embedded value. In this manner, fipscanister.o should 
be totally modular.

I am not statically linking and should not need to use fipsld. I also do not 
use 
fips_standalone_sha1 at any point.

Am I missing a step somewhere that is critical to getting FIPS initialized at 
runtime?

Thanks,
Cassie
__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


fingerprint does not match on FIPS_mode_set when FIPS + openssl is dynamically linked into build

2012-07-25 Thread Cassie Helms
Hi folks,
I have dynamically linked a FIPS capable OpenSSL library (libcrypto.so and 
libssl.so) into my product's build, but still get a "fingerprint does not 
match" 
error when I call FIPS_mode_set(1). This is using a validated copy of FIPS 2.0 
source and OpenSSL 1.0.1c.

The full error is:

25892:error:2D06C06E:FIPS routines:FIPS_mode_set:fingerprint does not 
match:fips.c:489:

During the build on a build machine, I execute the following --
for fips,
./config
make
make install (with an install prefix)

for openssl,
./config fips -d shared --with-fipsdir={.../usr/local/ssl/fips-2.0} --prefix=
{...}
make ... -I{fips include directory} depend
make ... -I{fips include directory}
make install

Everything appears to go well. fipscanister.o is generated, openssl is able to 
find it, and libcrypto.so has similar fingerprint text as fipscanister.o after 
doing an objdump on both of them. libssl.so and libcrypto.so get linked in with 
the product source and put into an rpm. The rpm is installed and executed on a 
different machine from building that does not have openssl or fips installed.

In the initialization sequence that calls FIPS_mode_set, I'm including 
openssl/crypto.h and openssl/err.h. Unfortunately, even after all of this, 
FIPS_mode_set is unhappy and returns the fingerprint does not match error. It 
is 
my understanding that if I'm not statically linking openssl, I should not need 
to use fipsld. I'm also not making use of fips_standalone_sha1 anywhere. 

So what are the digests that actually need to be compared for fips to be 
validated in a dynamic linking such as this? Is there a step I'm missing to 
generate and/or install them?



__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org