I know this is my error, but the following is undesirable behavior:

$ ./config fips shared -no-sslv2 -no-sslv3 -no-comp -no-hw -no-engines
--openssldir=/usr/local/ssl/$ANDROID_API
--with-fipsdir=/usr/local/ssl/$ANDROID_API
--with-fipslibdir=/usr/local/ssl/$ANDROID_API/lib/
Operating system: armv7-whatever-android
Configuring for android-armv7
Configuring for android-armv7
    no-comp         [option]   OPENSSL_NO_COMP (skip dir)
    no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
    no-engines      [option]   OPENSSL_NO_ENGINES (skip dir)
    no-gmp          [default]  OPENSSL_NO_GMP (skip dir)
    no-hw           [option]   OPENSSL_NO_HW
    no-jpake        [experimental] OPENSSL_NO_JPAKE (skip dir)
    no-krb5         [krb5-flavor not specified] OPENSSL_NO_KRB5
    no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
    no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
    no-rfc3779      [default]  OPENSSL_NO_RFC3779 (skip dir)
    no-rsax         [forced]   OPENSSL_NO_RSAX (skip dir)
    no-sctp         [default]  OPENSSL_NO_SCTP (skip dir)
    no-sslv2        [option]   OPENSSL_NO_SSLV2 (skip dir)
    no-sslv3        [option]   OPENSSL_NO_SSLV3 (skip dir)
    no-store        [experimental] OPENSSL_NO_STORE (skip dir)
    no-zlib         [default]
    no-zlib-dynamic [default]

In the above, `config` accepted incorrect arguments with no warning or
error on Linux: no-sslv2, no-sslv3, and no-engines. Its noteworthy the
WIN32 scripts *did* complain about an unknown option.

To aggravate the situation, neither `config` nor `Configure`
enumerates usage. Below is from `Configure`.

my $usage="Usage: Configure [no-<cipher> ...] [enable-<cipher> ...]
[experimental-<cipher> ...] [-Dxxx] [-lxxx] [-Lxxx] [-fxxx] [-Kxxx]
[no-hw-xxx|no-hw] [[no-]threads] [[no-]shared]
[[no-]zlib|zlib-dynamic] [no-asm] [no-dso] [no-krb5] [sctp] [386]
[--prefix=DIR] [--openssldir=OPENSSLDIR] [--with-xxx[=vvv]]
[--test-sanity] os/compiler[:flags]\n";

# Options:
#
# --openssldir  install OpenSSL in OPENSSLDIR (Default: DIR/ssl if the
#               --prefix option is given; /usr/local/ssl otherwise)
# --prefix      prefix for the OpenSSL include, lib and bin directories
#               (Default: the OPENSSLDIR directory)
#
# --install_prefix  Additional prefix for package builders (empty by
#               default).  This needn't be set in advance, you can
#               just as well use "make INSTALL_PREFIX=/whatever install".
#
# --with-krb5-dir  Declare where Kerberos 5 lives.  The libraries are expected
#               to live in the subdirectory lib/ and the header files in
#               include/.  A value is required.
# --with-krb5-lib  Declare where the Kerberos 5 libraries live.  A value is
#               required.
#               (Default: KRB5_DIR/lib)
# --with-krb5-include  Declare where the Kerberos 5 header files live.  A
#               value is required.
#               (Default: KRB5_DIR/include)
# --with-krb5-flavor  Declare what flavor of Kerberos 5 is used.  Currently
#               supported values are "MIT" and "Heimdal".  A value is required.
#
# --test-sanity Make a number of sanity checks on the data in this file.
#               This is a debugging tool for OpenSSL developers.
#
# --cross-compile-prefix Add specified prefix to binutils components.
#
# no-hw-xxx     do not compile support for specific crypto hardware.
#               Generic OpenSSL-style methods relating to this support
#               are always compiled but return NULL if the hardware
#               support isn't compiled.
# no-hw         do not compile support for any crypto hardware.
# [no-]threads  [don't] try to create a library that is suitable for
#               multithreaded applications (default is "threads" if we
#               know how to do it)
# [no-]shared   [don't] try to create shared libraries when supported.
# no-asm        do not use assembler
# no-dso        do not compile in any native shared-library methods. This
#               will ensure that all methods just return NULL.
# no-krb5       do not compile in any KRB5 library or code.
# [no-]zlib     [don't] compile support for zlib compression.
# zlib-dynamic  Like "zlib", but the zlib library is expected to be a shared
#               library and will be loaded in run-time by the OpenSSL library.
# sctp          include SCTP support
# 386           generate 80386 code
# no-sse2       disables IA-32 SSE2 code, above option implies no-sse2
# no-<cipher>   build without specified algorithm (rsa, idea, rc5, ...)
# -<xxx> +<xxx> compiler options are passed through
#
# DEBUG_SAFESTACK use type-safe stacks to enforce type-safety on stack items
#               provided to stack calls. Generates unique stack functions for
#               each possible stack type.
# DES_PTR       use pointer lookup vs arrays in the DES in crypto/des/des_locl.h
# DES_RISC1     use different DES_ENCRYPT macro that helps reduce register
#               dependancies but needs to more registers, good for RISC CPU's
# DES_RISC2     A different RISC variant.
# DES_UNROLL    unroll the inner DES loop, sometimes helps, somtimes hinders.
# DES_INT       use 'int' instead of 'long' for DES_LONG in crypto/des/des.h
#               This is used on the DEC Alpha where long is 8 bytes
#               and int is 4
# BN_LLONG      use the type 'long long' in crypto/bn/bn.h
# MD2_CHAR      use 'char' instead of 'int' for MD2_INT in crypto/md2/md2.h
# MD2_LONG      use 'long' instead of 'int' for MD2_INT in crypto/md2/md2.h
# IDEA_SHORT    use 'short' instead of 'int' for IDEA_INT in crypto/idea/idea.h
# IDEA_LONG     use 'long' instead of 'int' for IDEA_INT in crypto/idea/idea.h
# RC2_SHORT     use 'short' instead of 'int' for RC2_INT in crypto/rc2/rc2.h
# RC2_LONG      use 'long' instead of 'int' for RC2_INT in crypto/rc2/rc2.h
# RC4_CHAR      use 'char' instead of 'int' for RC4_INT in crypto/rc4/rc4.h
# RC4_LONG      use 'long' instead of 'int' for RC4_INT in crypto/rc4/rc4.h
# RC4_INDEX     define RC4_INDEX in crypto/rc4/rc4_locl.h.  This turns on
#               array lookups instead of pointer use.
# RC4_CHUNK     enables code that handles data aligned at long (natural CPU
#               word) boundary.
# RC4_CHUNK_LL  enables code that handles data aligned at long long boundary
#               (intended for 64-bit CPUs running 32-bit OS).
# BF_PTR        use 'pointer arithmatic' for Blowfish (unsafe on Alpha).
# BF_PTR2       intel specific version (generic version is more efficient).
#
# Following are set automatically by this script
#
# MD5_ASM       use some extra md5 assember,
# SHA1_ASM      use some extra sha1 assember, must define L_ENDIAN for x86
# RMD160_ASM    use some extra ripemd160 assember,
# SHA256_ASM    sha256_block is implemented in assembler
# SHA512_ASM    sha512_block is implemented in assembler
# AES_ASM       ASE_[en|de]crypt is implemented in assembler

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to