Re: DSS cipherspecs ...
Dr Stephen Henson [EMAIL PROTECTED]: [...] The SSL spec isn't clear on the format of the DSS signature. I hadn't noticed that problem -- the TLS RFC does have an explicit definition ("hashing [...] produces two values, r and s. The DSS signature is an opaque vector [...] the contents of which are the DER encoding of [...]"). Which leads to the question: Are there any browsers that are not based on SSLeay/OpenSSL and support TLS 1.0? __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: Compiling OpenSSL 0.9.2b on Win32
On Tue, 30 Mar 1999, Jerry Baker wrote: After thouroughly following the directions that come with the distribution (including fixing some broken stuff that's not documented like a bunch of link files in place of some includes), I am running into an error that I cannot figure out. The compiler spits out "LIBEAY32.def : error LNK2001: unresolved external symbol BIO_get_ex_num". I am absolutely 100% positive that all paths are correct and all settings are good. I have several times wiped out the entire src tree for OpenSSL and unpacked the tarball to start fresh. Same error everytime. Any ideas anyone? This is all on Win98 with MS VC++ 6.0 SP2 I compiled the 0.9.2b version on my Win98+VC++5.0 without any trouble, by running only 3 commands, like described in the INSTALL.W32 doc: perl Configure VC-WIN32 ms\do_ms.bat nmake -f ms\ntdll.mak Maybe you missed one step? Or your VC++6.0 is the problem? -- Erwann ABALEA System and Development Engineer - Certplus SA [EMAIL PROTECTED] - RSA PGP Key ID: 0x2D0EABD5 - __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
RE: Problem compiling C++ code that includes des.h
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hi, I have C++ module where I want to use SSL objects. I am including some openssl .h files which include "des.h". "des.h" declares function crypt() . I had a similar problem a longtime ago. As I recall we fixed it by adding #define _KERBEROS_DES_H into the code to stop des.h being included by unistd.h I don't know if this is the same thing that you're seeing or a different manifestation of something similar. Jon -BEGIN PGP SIGNATURE- Version: PGPfreeware 6.0.2i iQA/AwUBNwHu6ngWiDO86u4+EQINkwCg0zo9UxGQGsl2YTOuYpFlUoMSkgIAoPee uCs2S47gozR7itl1/DCWt0TX =kICY -END PGP SIGNATURE- __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: Compiling OpenSSL 0.9.2b on Win32
I did compile 0.9.2b on Win98 w/ VC6.0 and no problem. (followed the same steps as described below) fyi. -Original Message- From: Erwann ABALEA [EMAIL PROTECTED] To: [EMAIL PROTECTED] [EMAIL PROTECTED] Date: Wednesday, March 31, 1999 1:52 AM Subject: Re: Compiling OpenSSL 0.9.2b on Win32 On Tue, 30 Mar 1999, Jerry Baker wrote: After thouroughly following the directions that come with the distribution (including fixing some broken stuff that's not documented like a bunch of link files in place of some includes), I am running into an error that I cannot figure out. The compiler spits out "LIBEAY32.def : error LNK2001: unresolved external symbol BIO_get_ex_num". I am absolutely 100% positive that all paths are correct and all settings are good. I have several times wiped out the entire src tree for OpenSSL and unpacked the tarball to start fresh. Same error everytime. Any ideas anyone? This is all on Win98 with MS VC++ 6.0 SP2 I compiled the 0.9.2b version on my Win98+VC++5.0 without any trouble, by running only 3 commands, like described in the INSTALL.W32 doc: perl Configure VC-WIN32 ms\do_ms.bat nmake -f ms\ntdll.mak Maybe you missed one step? Or your VC++6.0 is the problem? -- Erwann ABALEA System and Development Engineer - Certplus SA [EMAIL PROTECTED] - RSA PGP Key ID: 0x2D0EABD5 - __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED] __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Crypt::OpenSSL
hey, Did this ever happen? I looked on CPAN a couple of days ago, but saw nothing.. Ed __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
NT perl SSL
Hi all, My continued efforts to install Net::SSLeay on NT have hit another hurdle. Firstly I have, 1. Built openssl-0.9.1c without asm to build the win32dll's. 2. Copied this entire directory structure toit's installation directory. 3. Renames out32dll to bin so that Makefile.pl in Net::SSLeay can find ssleay 4. Altered Makefile.pl to check for ssleay.exe not ssleay 5. Finally got a make file to build the Perl. Now running nmake install gives c:\openssl/include\bn.h(266) : error C2143: syntax error : missing ';' before '-' c:\openssl/include\bn.h(266) : error C2238: unexpected token(s) preceding ';' c:\openssl/include\bn.h(417) : error C2143: syntax error : missing ')' before '-' c:\openssl/include\bn.h(417) : error C2059: syntax error : '-' c:\openssl/include\bn.h(417) : error C2059: syntax error : ')' c:\openssl/include\bn.h(426) : error C2143: syntax error : missing ')' before '-' c:\openssl/include\bn.h(426) : error C2059: syntax error : '-' c:\openssl/include\bn.h(426) : error C2501: 'PL_na' : missing decl-specifiers c:\openssl/include\bn.h(426) : error C2062: type 'unsigned long' unexpected c:\openssl/include\bn.h(426) : error C2501: 'b' : missing decl-specifiers c:\openssl/include\bn.h(426) : warning C4228: nonstandard extension used : qualifiers after comma in declarator list are ignored c:\openssl/include\bn.h(426) : error C2062: type 'int' unexpected c:\openssl/include\bn.h(426) : error C2059: syntax error : ')' c:\openssl/include\bn.h(426) : error C2501: 'nb' : missing decl-specifiers c:\openssl/include\bn.h(426) : warning C4228: nonstandard extension used : qualifiers after comma in declarator list are ignored c:\openssl/include\asn1.h(138) : fatal error C1903: unable to recover from previous error(s); stopping compilation NMAKE : fatal error U1077: 'cl.exe' : return code '0x2' Stop. What am I doing wrong? Why is this so hard? Andy -- Andy Shaw [EMAIL PROTECTED] Phone: +44 (0)1223 715002 __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: error in ceritificate request from MSIE 4.0
Hubert Froehlich wrote: Um, I am working on the same. The scripts mentioned above already include the 'msie_hack' option... When working on the Unix side all works fine. Just when trying them out with MSIE I got some error code like 0x80092004 I'm familiar with Unix, Linux and all that, not with Microsoft (here: NT 4.0, MSIE 4.0). Any idea? Hi, try these parameters into your request cgi...They worked for me. Enroll.KeySpec = 1 Enroll.GenKeyFlags = 3 Enroll.providerType = 1 Enroll.providerName = "Microsoft Base Cryptographic Provider v1.0" Enroll.HashAlgorithm = "MD5" - If you have problem, I can send you the cgi I use. __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: DSS cipherspecs ...
Bodo Moeller wrote: Dr Stephen Henson [EMAIL PROTECTED]: [...] The SSL spec isn't clear on the format of the DSS signature. I hadn't noticed that problem -- the TLS RFC does have an explicit definition ("hashing [...] produces two values, r and s. The DSS signature is an opaque vector [...] the contents of which are the DER encoding of [...]"). Unfortunately the SSL spec isn't so clear. The three formats in use are: 1. OpenSSL/SSLeay: DSS-sig structure with outer length parameter. 2. Sun HotJava: DSS-sig but without length parameter. 3. Netscape: 40 byte raw encoding of r and s with length parameter. Steve. -- Dr Stephen N. Henson. http://www.drh-consultancy.demon.co.uk/ Personal Email: [EMAIL PROTECTED] Senior crypto engineer, Celo Communications: http://www.celocom.com/ Core developer of the OpenSSL project: http://www.openssl.org/ Business Email: [EMAIL PROTECTED] PGP key: via homepage. __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: NT perl SSL
Andy, I just went throught the considerable pain in almost exactly what you have done so far. I was extremly lucky to get the help of the folks on this and some other news groups. I am including 4 messages that detail many steps that need to be taken to fix files in the build process. Read all the messages first then see what your files look like, then take the steps slowly. Thats what I did and was finally able to compile yesterday. I did need to get a new Makefile.PL for the net::ssleay that had the correct set of libraries. I would be happy to send you that if you need it. Hope this helps. Here goes From: "Francois Orsini" [EMAIL PROTECTED] To: dougc@lynxhub Subject: Re: Win 32 DLL library NET_SSLEAY Date: Sat, 20 Mar 1999 14:28:53 -0800 Doug, To get you moving, Here is what you need to do to fix your compilation problem. I used Net_SSLeay 1.0.3, SSLeay 0.9.0b and MSVC++ 6.0 1) The \use\local\ssl\include\bn.h file contains a bn_blinding_st structure definition with a "mod" member. Rename it to "modnum". 2) In the \usr\local\ssl\include\ssl.h file, a function declaration used a argument name of "list", which appears to be an MSVC reserved word, as this generates a compiler error (under VC6 at least). Rename the argument to "listref". NOTE: (2 instances of this type of error, in ssl.h) 3) ssleay.xs - Conversion errors with regards to the SSL_CTX_set_verify function. Attempting to convert a (SV *) to a (void *) - This is easy to fix: SSL_CTX_set_verify(ctx,mode,(int(*)(void))ssleay_ctx_verify_callback_g lue); 4) If you get some undefined for RAND_seed(), RAND_xxx(), etc...: Add: #include rand.h in ssleay.xs before "buffer.h" Date: Sat, 20 Mar 1999 17:37:44 -0500 From: Jack Velte [EMAIL PROTECTED] Subject: Compiling Crypt::SSLeay on Windows with VC++ To: dougc@lynxhub Manually add the 3 ssl libraries to Crypt::SSLeay Makefile. I couldn't get makefile.pl to write the libraries correctly to the created Makefile. I added them to the EXTRALIBS and LDLOADLIBS lines. You probably want to use the path to the output of Your compilation in step 0. :-) "C:/Perl/local/openssl-SNAP-19990314-0330/out32dll/libeay32.lib" "C:/Perl/local/openssl-SNAP-19990314-0330/out32dll/RSAglue.lib" "C:/Perl/local/openssl-SNAP-19990314-0330/out32dll/ssleay32.lib" -- 3 -- Fix reserved words in openssl ssl.h and bn.h function prototype headers. My system needs the same fix for older versions of ssleay. (Back to SSLeay-0.9.0b at least.) Since you already compiled openssl, and we are only changing function prototypes, this should have no effect on Crypt::SSLeay. I don't know why the C compiler complains about these reserved words when compiling SSLeay/OpenSSL suite compiles, but it does. -- ssl.h: ('list') void SSL_set_client_CA_list(SSL *s, STACK *list); - void SSL_set_client_CA_list(SSL *s, STACK *list_x); ('list') void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK *list); - void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK *list_x); ('mod') bn.h: BIGNUM *mod; /* just a reference */ - BIGNUM *mod_x; /* just a reference */ ('mod') BN_BLINDING *BN_BLINDING_new(BIGNUM *A,BIGNUM *Ai,BIGNUM *mod); - BN_BLINDING *BN_BLINDING_new(BIGNUM *A,BIGNUM *Ai,BIGNUM *mod_x); ('na') void bn_mul_normal(BN_ULONG *r,BN_ULONG *a,int na,BN_ULONG *b,int nb); - void bn_mul_normal(BN_ULONG *r,BN_ULONG *a,int na_x,BN_ULONG *b,int nb); -- 4 -- copy the openssl libraries to somewhere on your path. (or your perl5lib path -- i have my lib directory on both for now.) -- "nmake" should now compile Crypt::SSLeay "nmake install" installs the library. now if you use new HTTP::Request('GET', "https://www.foo.com/"); the LWP library will automatically use the SSL libraries. a simple test downloading a secure page worked for me. -jack From: "Francois Orsini" [EMAIL PROTECTED] To: dougc@lynxhub Subject: Re: Win 32 DLL library NET_SSLEAY Date: Sat, 20 Mar 1999 15:21:44 -0800 I know what it is... all the functions must be declared ANSI (PROTO)... so make sure the args type is declared within the function () such as: static int not_here(char *s) { } You need to do this for all of them... I must have done it but do not remember... if it is too much hassle for you : i'll send you my ssleay.xs Hope this helps, --francois -Original Message- From: [EMAIL PROTECTED] [EMAIL PROTECTED] To: Francois Orsini [EMAIL PROTECTED] Date: Saturday, March 20, 1999 3:11 PM Subject: Re: Win 32 DLL library NET_SSLEAY Francois, I made good progress with your help, thanks so much. I have now gotten past the compile problem for SSLeay.c, but have run into something strange
Re: DSS cipherspecs ...
On Wed, Mar 31, 1999 at 02:15:23PM +, Dr Stephen Henson wrote: Bodo Moeller wrote: Dr Stephen Henson [EMAIL PROTECTED]: The SSL spec isn't clear on the format of the DSS signature. I hadn't noticed that problem -- the TLS RFC does have an explicit definition ("hashing [...] produces two values, r and s. The DSS signature is an opaque vector [...] the contents of which are the DER encoding of [...]"). Unfortunately the SSL spec isn't so clear. The three formats in use are: 1. OpenSSL/SSLeay: DSS-sig structure with outer length parameter. 2. Sun HotJava: DSS-sig but without length parameter. 3. Netscape: 40 byte raw encoding of r and s with length parameter. Case 1 being exactly what RFC 2246 asks for, right? __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: Problems to compile openssl on IRIX 6.2
(sorry.. forgot to finish send this message off.. there you go) Mike Hess wrote: I believe I encountered a problem compiling openssl-0.9.2b on IRIX 6.2 similar to the one encountered in an earlier note on Digital UNIX V4.0E. I used the solution 1, (./Configure irix-cc no-asm) recommended below but wonder whether you have a patch file below for solution 2. Below are the errors I encountered during make after [...] ld: ERROR 33: Unresolved text symbol "bn_div_words" -- 1st referenced by ../libcrypto.a(bn_div.o). ld: ERROR 33: Unresolved text symbol "bn_mul_comba8" -- 1st referenced by ../libcrypto.a(bn_mul.o). ld: ERROR 33: Unresolved text symbol "bn_sub_words" -- 1st referenced by ../libcrypto.a(bn_mul.o). ld: ERROR 33: Unresolved text symbol "bn_mul_comba4" -- 1st referenced by ../libcrypto.a(bn_mul.o). ld: ERROR 33: Unresolved text symbol "bn_sqr_comba4" -- 1st referenced by ../libcrypto.a(bn_sqr.o). ld: ERROR 33: Unresolved text symbol "bn_sqr_comba8" -- 1st referenced by ../libcrypto.a(bn_sqr.o). Michael R.A. Hess -- [EMAIL PROTECTED] -- 573-882-2000 There has been some discussion on bn_div_words around in openssl-dev: From: Ben Laurie [EMAIL PROTECTED] Organization: A.L. Group plc To: [EMAIL PROTECTED] Subject: Re: Patch: BN_div_words in asm/alpha.s Hannes Reinecke wrote: Hi all, here is a patch for adding bn_div_words to asm/alpha.s. It got lost somehow, but without the assembler version won't compile. I'm not entirely familiar with the internal working of openssl, but to my untrained eye bn_asm.c:bn_div_words and bn_mulw.c:bn_div64 are looking suspiciously similar. Is there a special reason for it or can we just scrap one version ? (I suspect that's also why bn_div_words does not appear in asm/alpha.s; it just got renamed to bn_div64 hoping that all functions would call this and not bn_div_words. Evolutionary programming :-). Looks to me like the whole of bn_mulw.c is redundant. bn_div_words and bn_div64 are indeed identical, and bn_div64 is not actually used anywhere, AFAICS. So, I'm going to blow away bn_mulw.c, and rename bn_div64 to bn_div_words in alpha.s. Cheers, Ben. Looking at crypto/bn/asm/{mips1,mips3,r3000}.s I see bn_div64 is implemented in all of those. Try see whether - ./Configure irix64-cc no-asm - ./Configure irix-n64-cc no-asm work, build, and pass make test I think we can assume without no-asm they all fail, so change bn_div64 to bn_div_words in the 3 assembler files above, then try - ./Configure irix-cc - ./Configure irix64-cc - ./Configure irix-n64-cc and report what symbols are missing then ... -- Niels Poppe - org.net bv [EMAIL PROTECTED] __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Telnet+telnetd on AIX
Hi, I'm have one AIX box withless Internet conection and not C compile too. Anyone have SSLtelnet work like a charm in AIX 3.4 or know any url for binary package? Thanks for your time and attention, -- ./nelson -murilo __ OpenSSL Project http://www.openssl.org User Support Mailing List[EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
Re: Problems to compile openssl on IRIX 6.2
On Wed, 31 Mar 1999, Niels Poppe wrote: (sorry.. forgot to finish send this message off.. there you go) [chop] There has been some discussion on bn_div_words around in openssl-dev: From: Ben Laurie [EMAIL PROTECTED] Organization: A.L. Group plc To: [EMAIL PROTECTED] Subject: Re: Patch: BN_div_words in asm/alpha.s Hannes Reinecke wrote: Hi all, here is a patch for adding bn_div_words to asm/alpha.s. It got lost somehow, but without the assembler version won't compile. I'm not entirely familiar with the internal working of openssl, but to my untrained eye bn_asm.c:bn_div_words and bn_mulw.c:bn_div64 are looking suspiciously similar. Is there a special reason for it or can we just scrap one version ? (I suspect that's also why bn_div_words does not appear in asm/alpha.s; it just got renamed to bn_div64 hoping that all functions would call this and not bn_div_words. Evolutionary programming :-). Looks to me like the whole of bn_mulw.c is redundant. bn_div_words and bn_div64 are indeed identical, and bn_div64 is not actually used anywhere, AFAICS. So, I'm going to blow away bn_mulw.c, and rename bn_div64 to bn_div_words in alpha.s. Cheers, Ben. Looking at crypto/bn/asm/{mips1,mips3,r3000}.s I see bn_div64 is implemented in all of those. Try see whether - ./Configure irix64-cc no-asm - ./Configure irix-n64-cc no-asm work, build, and pass make test No go on this one. I built with "irix64-gcc no-asm", and it fails the exptest as follows (yipes): mont and recp results differ a (455) = 5F3155A6B3B4E28410F42E9B8DBAD719A4A52DD5EEA30E6276D77BD15743232869DDAE5D70683F508A8EFF4FCB3777B6EC8FE91A47A97E0049 b (493) = 1E115BCCCAE984E5994833DA4C30D418DF649EB2AE283BF850A7804711B89D3D970F7764AA8D939D700FB433CFF9C72E5F25D4728D5A831584E9FA77A8A0 m (496) = 92853BD41425AE78793934E7FCD45909D25452DAEA74855216FA3FADE8674C60ED0D11929E69003D13D759237AE9AC7168C9C1ABAB14A07348E8F597 recp =6D448EB3266A1FAA0A80E38BD7B71EC899AEDAF289FB06BAB3137D328D599C15B1CA75093AF0B82590914636AF06FF92DC1D9A503D38AA52435B9ABDAEC74C84BBA4CFB2E8153282203FEA9DE1218B38D277E17D7C1F240E049C324154E381C2FCA328C85C7938D6831E3CBDA7AA71B518620E0D3109FC546749F68CDFA1F1EF1D8879FF6292817CE5E708B596BF023AFD091F4169DD196AB3F5CA8DF2BEABBC00D1DCD6E2EF6909C2D898A41CAA437DF29BCF1CD4902519083B1AF36563AE9BC6B530B530C79CBD3EFF07976C286ACF6D3A200A336768C48D8ACC36BDE703DC580F1B171118DA5617DB2313D21ED90F1FB3A69C824CE9C9D74968F7D4F4579E17D5B51EF6FC085E9985F12A4C99DEE922571811DEF97DEDB5AFDF147F20E6E8E3C6E15E998C87FA680A3707FFE9FCA3D9098A2DF3EE5E3D7290FA22FFC775CCE86520DC43CA19882D4B71B61B67EF892399595AFA5CB6DFBDF1CFDA5A65DC62D52147BFF8297692C39A95C7CB40BB8CD0201315D845CDC658BDC42453CA66EA1956945979D6BEB2432F3D3515912C1636F7E86A694CF835726635670998AB71838C9BFF1F43740526BB7C070194ABB25088F19C9587488DF77B7F7AB9AE9AB63D23194BBFC77437943C566F6E25E13D1E64C34A7E157E21759E92637AA7988788C1838CF61253B! A7! ! ! 37C1E092696BFBD4AF940D78AEE7A474736F4C8E71E8CD69E0B586A663912498A420A90D53101209372C43B2F37ACEA14DC2586AA257BE1606954C89D1292825769944589078C5A5A3B0666524D94261BDD53C842B5DD5D30AC68D26A17F6635AB83EE4AA92390E9E2D4530C9BBE6D3F1E7846F6B74197BA5149B51C5ABC822C2181333E9A793336A3D1DF355DE6C13CAD6FE1E228ABA058640A2F39C9242712290172062F7371EC697CF49FCBD7B961BB24B03FAA7619D3BC26F389BFE3F7DA417AD2B5F82A335C927BD8094EEF5476E44D5DAF8A65D0B9BF1E676264C39E095C445F53966CA3DAD76D308B00A96F321C07EFD8E8A76460DA37636298F754A3E351204EBAA1960A91B873691AB5FCB4985845B53EB10D082C4C624D2DD47650FAD95542AC9D7DC96C62D2A7051B2F029C767A868CCB67C3A174099196E0887FE47CE994CD91E94CEDD948ED51C5E3F9466A5E4EB2D868C71E67D0109C04678A2268CA1BCF99EEC95E1CB3BF1FD94B047B6806FA5F81E00AE1D6C39F5A729A8DE5443AE7AC76DB53092403171B7E6D1C625229389E7A8C3DB041842A3E469FAD12962937E635A223E5C00B077786DCF2C7B143A25DA91D94630BD6ABE302A54B2FBE429519E8600C454CC8598F0FA87A883BB828A05E1AB0D25C7C0BA6EC7DE9FA1C6C9B06AA0AAA4CD9544E908AB! 5B! ! ! 8E1DD89D mont =3719792ED445DEC8CE0D9A0B2CC7DF4A84EEC02A991BE83A23E1AC797A1C71D9B3F31F3FE8B910190635CF6804DD5D0329CC35C1E47303B051A5F5865069 If I do it as "irix-gcc no-asm", it compiles, and the tests all pass (after excluding the rsa_oaep_test). I think we can assume without no-asm they all fail, so change bn_div64 to bn_div_words in the 3 assembler files above, then try - ./Configure irix-cc - ./Configure irix64-cc - ./Configure irix-n64-cc and report what symbols are missing then ... I get lots conflicts with builtins and some undeclared macros: [Configure irix-gcc (or irix64-gcc)] pem.h:6: warning: `EVP_MAX_MD_SIZE' redefined ../../include/evp.h:108: warning: this is the location of the previous definition In file included from ../cryptlib.h:63, from pem_sign.c:60: /usr/include/string.h:67: warning: conflicting types for built-in function `memcpy' /usr/include/string.h:74: warning: conflicting types for built-in function `memcmp'