<div dir="ltr"><div class="gmail_default" style=""><font color="#444444" face="courier new, monospace">Dear all,</font></div><div class="gmail_default" style=""><font color="#444444" face="courier new, monospace"><br></font></div><div class="gmail_default" style=""><font color="#444444" face="courier new, monospace">I am trying to compile a sample for testing openssl FIP mode, I have successfully compiled executable file in ubuntu 14.04.</font><br clear="all"></div><div class="gmail_default" style=""><br></div><div class="gmail_default" style=""><b>Sample:</b></div><div class="gmail_default" style=""><font color="#666666">/* test.c */</font></div><div class="gmail_default" style=""><div class="gmail_default"><font color="#666666">#include <stdio.h></font></div><div class="gmail_default"><font color="#666666">#include <openssl/crypto.h></font></div><div class="gmail_default"><font color="#666666">#include <openssl/err.h></font></div><div class="gmail_default"><font color="#666666">#include <openssl/fips.h></font></div><div class="gmail_default"><font color="#666666"><br></font></div><div class="gmail_default"><font color="#666666">int main()</font></div><div class="gmail_default"><font color="#666666">{</font></div><div class="gmail_default"><font color="#666666">#ifdef OPENSSL_FIPS </font></div><div class="gmail_default"><font color="#666666">    if(!FIPS_mode_set(1)) </font></div><div class="gmail_default"><font color="#666666">    {</font></div><div class="gmail_default"><font color="#666666">        fprintf(stderr, "MSG: \n");</font></div><div class="gmail_default"><font color="#666666">        ERR_load_crypto_strings();</font></div><div class="gmail_default"><font color="#666666">        ERR_print_errors_fp(stderr);</font></div><div class="gmail_default"><font color="#666666">        exit(1); </font></div><div class="gmail_default"><font color="#666666">    } </font></div><div class="gmail_default"><font color="#666666">    else</font></div><div class="gmail_default"><font color="#666666">        fprintf(stderr,"*** IN FIPS MODE ***\n");</font></div><div class="gmail_default"><font color="#666666"><br></font></div><div class="gmail_default"><font color="#666666">#else</font></div><div class="gmail_default"><font color="#666666">    fprintf(stderr, "NO DEFINE_FIPS !\n");</font></div><div class="gmail_default"><font color="#666666">#endif </font></div><div class="gmail_default"><font color="#666666">}</font></div><div class="gmail_default"><i><br></i></div><div class="gmail_default"><b>The error message I got:</b></div><div class="gmail_default"><i><br></i></div><div class="gmail_default"><div class="gmail_default"><font color="#666666">MSG: </font></div><div class="gmail_default"><font color="#666666">140270859593376:error:0F06D065:common libcrypto routines:FIPS_mode_set:fips mode not supported:o_fips.c:92:</font></div><div style="font-style:italic"><br></div></div><div><br></div></div><div class="gmail_default" style=""><b>Makefile for sample:</b></div><div class="gmail_default" style=""><i><br></i></div><div class="gmail_default" style=""><div class="gmail_default"><font color="#666666"># targets</font></div><div class="gmail_default"><font color="#666666">BIN = test</font></div><div class="gmail_default"><font color="#666666">OBJS= test.c</font></div><div class="gmail_default"><font color="#666666"><br></font></div><div class="gmail_default"><font color="#666666"># openssl</font></div><div class="gmail_default"><font color="#666666">OPENSSLDIR = /home/ken/Work/openssl-fips/compile_fips/ssl/</font></div><div class="gmail_default"><font color="#666666"><br></font></div><div class="gmail_default"><font color="#666666"># relevant path</font></div><div class="gmail_default"><font color="#666666">INCLUDES = -I$(OPENSSLDIR)/include/</font></div><div class="gmail_default"><font color="#666666">INCLUDES += -I$(OPENSSLDIR)/fips2.0/include/</font></div><div class="gmail_default"><font color="#666666">LFLAGS = -L$(OPENSSLDIR)/lib/</font></div><div class="gmail_default"><font color="#666666"><br></font></div><div class="gmail_default"><font color="#666666"># compiler</font></div><div class="gmail_default"><font color="#666666">CC = $(OPENSSLDIR)/fips2.0/bin/fipsld</font></div><div class="gmail_default"><font color="#666666">export FIPSLD_CC=gcc</font></div><div class="gmail_default"><font color="#666666">CFLAGS = -Wall</font></div><div class="gmail_default"><font color="#666666"><br></font></div><div class="gmail_default"><font color="#666666"># for FIPS</font></div><div class="gmail_default"><font color="#666666">FIPSMODULE = $(OPENSSLDIR)/fips2.0/lib/fipscanister.o</font></div><div class="gmail_default"><font color="#666666"><br></font></div><div class="gmail_default"><font color="#666666"># librarys</font></div><div class="gmail_default"><font color="#666666">LIBS = -lcrypto -lssl -ldl</font></div><div class="gmail_default"><font color="#666666"><br></font></div><div class="gmail_default"><font color="#666666">$(BIN): $(OBJS) $(FIPSMODULE)</font></div><div class="gmail_default"><font color="#666666"><span class="" style="white-space:pre">      </span>$(CC) $(CLFAGS) -o $@ $(OBJS) $(INCLUDES) $(LFLAGS) $(LIBS)</font></div><div class="gmail_default"><font color="#666666"><br></font></div><div class="gmail_default"><font color="#666666">clean:</font></div><div class="gmail_default"><font color="#666666"><span class="" style="white-space:pre"> </span>rm -rf $(BIN) *.o </font></div><div><br></div><div><b>And the Makefile for building and installing openssl fips mode:</b></div><div><font color="#666666"><br></font></div><div><div><font color="#666666">#</font></div><div><font color="#666666">all: openssl-1.0.1c/.built setenv</font></div><div><font color="#666666"><br></font></div><div><font color="#666666">openssl-fips-2.0.12.tar.gz:</font></div><div><font color="#666666"><span class="" style="white-space:pre">     </span>#wget <a href="http://www.openssl.org/source/openssl-fips-2.0.1.tar.gz">http://www.openssl.org/source/openssl-fips-2.0.1.tar.gz</a></font></div><div><font color="#666666"><span class="" style="white-space:pre">       </span>wget <a href="http://45.78.29.98/openssl-fips-2.0.12.tar.gz">http://45.78.29.98/openssl-fips-2.0.12.tar.gz</a></font></div><div><font color="#666666"><br></font></div><div><font color="#666666">openssl-1.0.2g.tar.gz:</font></div><div><font color="#666666"><span class="" style="white-space:pre">        </span>#wget <a href="http://www.openssl.org/source/openssl-1.0.1c.tar.gz">http://www.openssl.org/source/openssl-1.0.1c.tar.gz</a></font></div><div><font color="#666666"><span class="" style="white-space:pre">       </span>wget <a href="http://45.78.29.98/openssl-1.0.2g.tar.gz">http://45.78.29.98/openssl-1.0.2g.tar.gz</a></font></div><div><font color="#666666"><br></font></div><div><font color="#666666">ssl/:<span class="" style="white-space:pre">     </span></font></div><div><font color="#666666"><span class="" style="white-space:pre">        </span>mkdir ssl</font></div><div><font color="#666666"><br></font></div><div><font color="#666666">setenv:</font></div><div><font color="#666666"><span class="" style="white-space:pre">  </span>env OPENSSL_FIPS=1</font></div><div><font color="#666666"><br></font></div><div><font color="#666666">openssl-fips-2.0.12/.built: openssl-fips-2.0.12.tar.gz ssl/ setenv</font></div><div><font color="#666666"><span class="" style="white-space:pre">      </span>gunzip -c openssl-fips-2.0.12.tar.gz | tar xf -</font></div><div><font color="#666666"><span class="" style="white-space:pre"> </span>cd openssl-fips-2.0.12 && \</font></div><div><font color="#666666"><span class="" style="white-space:pre">     </span>export FIPSDIR=$$PWD/../ssl/fips2.0 && \</font></div><div><font color="#666666"><span class="" style="white-space:pre">        </span>./config && \</font></div><div><font color="#666666"><span class="" style="white-space:pre">   </span>make && \</font></div><div><font color="#666666"><span class="" style="white-space:pre">       </span>make install && \</font></div><div><font color="#666666"><span class="" style="white-space:pre">       </span>touch .built</font></div><div><font color="#666666"><br></font></div><div><font color="#666666">openssl-1.0.1c/.built: openssl-fips-2.0.12/.built openssl-1.0.2g.tar.gz</font></div><div><font color="#666666"><span class="" style="white-space:pre">       </span>gunzip  -c openssl-1.0.2g.tar.gz | tar xf -</font></div><div><font color="#666666"><span class="" style="white-space:pre">    </span>cd openssl-1.0.2g && \</font></div><div><font color="#666666"><span class="" style="white-space:pre">  </span>./config fips shared --openssldir=$$PWD/../ssl --with-fipsdir=$$PWD/../ssl/fips2.0 && \</font></div><div><font color="#666666"><span class="" style="white-space:pre"> </span>make depend && \</font></div><div><font color="#666666"><span class="" style="white-space:pre">        </span>make && \</font></div><div><font color="#666666"><span class="" style="white-space:pre">       </span>make install_sw &&\</font></div><div><font color="#666666"><span class="" style="white-space:pre">     </span>touch .built</font></div><div><font color="#666666"><br></font></div><div><font color="#666666">clean:</font></div><div><font color="#666666"><span class="" style="white-space:pre">        </span>rm -rf openssl-fips-2.0.12 openssl-1.0.2g ssl</font></div></div><div><br></div><div><br></div><div>so, how should I enable openssl fips mode? thank you for you help.</div></div><div><div class="gmail_signature"><div dir="ltr"><a href="http://about.me/kenchowcn" style="margin:0px;padding:0px;border:0px;outline:0px;font-size:14px;font-family:proxima-nova-1,proxima-nova-2,Tahoma,Helvetica,Verdana,sans-serif;vertical-align:baseline;color:rgb(58,169,233);text-decoration:none;line-height:18.2px" target="_blank"></a><a href="http://about.me/kenchowcn" style="margin:0px;padding:0px;border:0px;outline:0px;vertical-align:baseline;color:rgb(58,169,233);text-decoration:none" target="_blank"><table border="0" cellpadding="0" cellspacing="0" style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;border-spacing:0px"><tbody style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;height:30px"> </td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td align="left" valign="top" style="padding:0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:top;line-height:1"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:bold;font-style:inherit;font-size:18px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline;line-height:1;color:rgb(51,51,51)">Ken Chow</div><div style="margin:3px 0px 0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-size:12px;font-family:proxima-nova-1,Proxima-Nova,Helvetica,Arial,sans-serif;vertical-align:baseline;color:rgb(43,130,173)">about.me/kenchowcn</div></td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td align="left" valign="top" style="padding:8px 0px 0px;border:0px;outline:0px;font-style:inherit;font-family:inherit;vertical-align:top;line-height:1"><div style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;text-align:right;height:4px;background-color:rgb(197,208,224)"><img src="http://d13pix9kaak6wt.cloudfront.net/signature/colorbar.png" alt="Ken Chow on about.me" width="88" height="4" style="margin: 0px; padding: 0px; border: 0px; outline: 0px; font-weight: inherit; font-style: inherit; font-family: inherit; vertical-align: baseline; float: right; display: block;"></div></td></tr><tr style="margin:0px;padding:0px;border:0px;outline:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline"><td style="padding:0px;border:0px;outline:0px;font-style:inherit;font-size:0px;font-family:inherit;vertical-align:baseline;height:20px"> </td></tr></tbody></table></a></div></div></div>
</div>