From 0ca0851a01251b960ba19d958978004168f58593 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Tue, 26 Feb 2019 17:04:25 +0300 Subject: Add implementation --- openssl/.gitignore | 19 ++ openssl/INSTALL | 7 + openssl/LICENSE | 1 + openssl/README | 21 ++ openssl/README-DEV | 10 + openssl/build/.gitignore | 3 + openssl/build/bootstrap.build | 11 + openssl/build/export.build | 10 + openssl/build/root.build | 12 + openssl/buildfile | 10 + openssl/manifest | 23 ++ openssl/openssl/.gitignore | 1 + openssl/openssl/apps | 1 + openssl/openssl/buildfile | 97 +++++++ openssl/openssl/e_os.h | 1 + openssl/openssl/internal | 1 + openssl/openssl/progs.h | 507 ++++++++++++++++++++++++++++++++++++ openssl/tests/.gitignore | 4 + openssl/tests/build/.gitignore | 3 + openssl/tests/build/bootstrap.build | 9 + openssl/tests/build/root.build | 16 ++ openssl/tests/buildfile | 5 + openssl/tests/rsa.testscript | 61 +++++ openssl/tests/version.testscript | 14 + 24 files changed, 847 insertions(+) create mode 100644 openssl/.gitignore create mode 100644 openssl/INSTALL create mode 120000 openssl/LICENSE create mode 100644 openssl/README create mode 100644 openssl/README-DEV create mode 100644 openssl/build/.gitignore create mode 100644 openssl/build/bootstrap.build create mode 100644 openssl/build/export.build create mode 100644 openssl/build/root.build create mode 100644 openssl/buildfile create mode 100644 openssl/manifest create mode 100644 openssl/openssl/.gitignore create mode 120000 openssl/openssl/apps create mode 100644 openssl/openssl/buildfile create mode 120000 openssl/openssl/e_os.h create mode 120000 openssl/openssl/internal create mode 100644 openssl/openssl/progs.h create mode 100644 openssl/tests/.gitignore create mode 100644 openssl/tests/build/.gitignore create mode 100644 openssl/tests/build/bootstrap.build create mode 100644 openssl/tests/build/root.build create mode 100644 openssl/tests/buildfile create mode 100644 openssl/tests/rsa.testscript create mode 100644 openssl/tests/version.testscript (limited to 'openssl') diff --git a/openssl/.gitignore b/openssl/.gitignore new file mode 100644 index 0000000..cece09c --- /dev/null +++ b/openssl/.gitignore @@ -0,0 +1,19 @@ +# Compiler/linker output. +# +*.d +*.t +*.i +*.ii +*.o +*.obj +*.so +*.dll +*.a +*.lib +*.exp +*.pdb +*.ilk +*.exe +*.exe.dlls/ +*.exe.manifest +*.pc diff --git a/openssl/INSTALL b/openssl/INSTALL new file mode 100644 index 0000000..4c55e7c --- /dev/null +++ b/openssl/INSTALL @@ -0,0 +1,7 @@ +The aim of this package is to make reading the INSTALL file unnecessary. So +next time try running: + +$ bpkg build openssl + +But if you don't want to use the package manager, then you can also build this +package manually using the standard build2 build system. diff --git a/openssl/LICENSE b/openssl/LICENSE new file mode 120000 index 0000000..6246057 --- /dev/null +++ b/openssl/LICENSE @@ -0,0 +1 @@ +../upstream/LICENSE \ No newline at end of file diff --git a/openssl/README b/openssl/README new file mode 100644 index 0000000..933ef40 --- /dev/null +++ b/openssl/README @@ -0,0 +1,21 @@ +OpenSSL is a robust, commercial-grade, and full-featured toolkit for the +Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols with +openssl command line tool for using the various cryptography functions of +libcrypto and libssl libraries from the shell. For more information see: + +https://www.openssl.org + +This package contains the original openssl program source code overlaid with +the build2-based build system and packaged for the build2 package manager +(bpkg). + +See the INSTALL file for the prerequisites and installation instructions. + +Send questions, bug reports, or any other feedback about the program itself to +the OpenSSL mailing lists. Send build system and packaging-related feedback to +the packaging@build2.org mailing list (see https://lists.build2.org for posting +guidelines, etc). + +The packaging of openssl for build2 is tracked in a Git repository at: + +https://git.build2.org/cgit/packaging/openssl/ diff --git a/openssl/README-DEV b/openssl/README-DEV new file mode 100644 index 0000000..9d09f98 --- /dev/null +++ b/openssl/README-DEV @@ -0,0 +1,10 @@ +This document describes how the openssl program was packaged for build2. In +particular, this understanding will be useful when upgrading to a new upstream +version. See ../README-DEV for general notes on OpenSSL packaging. + +Symlink the required upstream files and directories into openssl/: + +$ ln -s ../../upstream/{apps,include/internal,e_os.h} openssl + +Copy upstream's auto-generated apps/progs.h into openssl/. Note that this +header is not platform-specific. diff --git a/openssl/build/.gitignore b/openssl/build/.gitignore new file mode 100644 index 0000000..4a730a3 --- /dev/null +++ b/openssl/build/.gitignore @@ -0,0 +1,3 @@ +config.build +root/ +bootstrap/ diff --git a/openssl/build/bootstrap.build b/openssl/build/bootstrap.build new file mode 100644 index 0000000..51c3465 --- /dev/null +++ b/openssl/build/bootstrap.build @@ -0,0 +1,11 @@ +# file : build/root.build +# copyright : Copyright (c) 2018-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + +project = openssl + +using version +using config +using test +using install +using dist diff --git a/openssl/build/export.build b/openssl/build/export.build new file mode 100644 index 0000000..34b7d3b --- /dev/null +++ b/openssl/build/export.build @@ -0,0 +1,10 @@ +# file : build/export.build +# copyright : Copyright (c) 2018-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + +$out_root/ +{ + include openssl/ +} + +export $out_root/openssl/exe{openssl} diff --git a/openssl/build/root.build b/openssl/build/root.build new file mode 100644 index 0000000..2a4a530 --- /dev/null +++ b/openssl/build/root.build @@ -0,0 +1,12 @@ +# file : build/root.build +# copyright : Copyright (c) 2018-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + +using c + +h{*}: extension = h +c{*}: extension = c + +# The test target for cross-testing (running tests under Wine, etc). +# +test.target = $c.target diff --git a/openssl/buildfile b/openssl/buildfile new file mode 100644 index 0000000..4c31f89 --- /dev/null +++ b/openssl/buildfile @@ -0,0 +1,10 @@ +# file : buildfile +# copyright : Copyright (c) 2018-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + +./: {*/ -build/} doc{LICENSE INSTALL README} manifest + +# Don't install tests or the INSTALL file. +# +tests/: install = false +doc{INSTALL}@./: install = false diff --git a/openssl/manifest b/openssl/manifest new file mode 100644 index 0000000..6dbe142 --- /dev/null +++ b/openssl/manifest @@ -0,0 +1,23 @@ +: 1 +name: openssl + +# Note: remember to update summary and doc-url below! +# +version: 1.1.1-a.0.z + +summary: Command line tool providing various cryptography functions, version 1.1.1a +license: OpenSSL License, SSLeay License; Copyleft free dual software license. +tags: SSLv3, SSL, TLS, x.509, cryptography, command, line, tool +description-file: README +url: https://www.openssl.org/ +doc-url: https://www.openssl.org/docs/man1.1.1/man3/ +src-url: https://git.build2.org/cgit/packaging/openssl/openssl/tree/openssl/ +package-url: https://git.build2.org/cgit/packaging/openssl/ +email: openssl-users@openssl.org ; Mailing list. +package-email: packaging@build2.org ; Mailing list. +build-error-email: builds@build2.org +builds: all +depends: * build2 >= 0.10.0- +depends: * bpkg >= 0.10.0- +depends: libcrypto == $ +depends: libssl == $ diff --git a/openssl/openssl/.gitignore b/openssl/openssl/.gitignore new file mode 100644 index 0000000..fa963ae --- /dev/null +++ b/openssl/openssl/.gitignore @@ -0,0 +1 @@ +openssl diff --git a/openssl/openssl/apps b/openssl/openssl/apps new file mode 120000 index 0000000..701d741 --- /dev/null +++ b/openssl/openssl/apps @@ -0,0 +1 @@ +../../upstream/apps \ No newline at end of file diff --git a/openssl/openssl/buildfile b/openssl/openssl/buildfile new file mode 100644 index 0000000..10eefb6 --- /dev/null +++ b/openssl/openssl/buildfile @@ -0,0 +1,97 @@ +# file : openssl/buildfile +# copyright : Copyright (c) 2018-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + +import libs = libssl%lib{ssl} +import libs += libcrypto%lib{crypto} + +exe{openssl}: {h c}{** -vms_* -apps/win32_init} $libs + +tclass = $c.target.class + +i686 = ($c.target.cpu == 'i686') + +linux = ($tclass == 'linux') +bsd = ($tclass == 'bsd') +macos = ($tclass == 'macos') +windows = ($tclass == 'windows') + +gcc = ($c.class == 'gcc') +msvc = ($c.class == 'msvc') +mingw = ($c.target.system == 'mingw32') + +exe{openssl}: apps/c{win32_init}: include = $windows + +if! $windows +{ + # Note that the upstream package uses -pthread compiler/linker option on + # Linux and FreeBSD. The option is currently unsupported by build2, so we + # use -D_REENTRANT and -lpthread preprocessor/linker options instead. + # + # Also note that on FreeBSD and Mac OS the upstream package passes + # -D_REENTRANT. + # + c.poptions += -D_REENTRANT + + if $bsd + c.poptions += -D_THREAD_SAFE +} +else +{ + c.poptions += -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE + + # Note that upstream also passes -DOPENSSL_USE_APPLINK if compiled with VC. + # We drop this option (see libcrypto/buildfile) for details. + # + if $msvc + { + c.poptions += -DOPENSSL_SYS_WIN32 -D_CRT_SECURE_NO_DEPRECATE \ + -D_WINSOCK_DEPRECATED_NO_WARNINGS + + c.coptions += /Gs0 /GF /Gy + } + else + c.poptions += -D_MT +} + +if ($i686 && $gcc) + c.coptions += -fomit-frame-pointer + +# Disable compiler warnings. +# +if $msvc +{ + # Disable warnings that pop up with /W3. + # + c.coptions += /wd4090 /wd4244 /wd4267 +} +else +{ + # Disable warnings that pop up with -Wall -Wextra. Upstream doesn't seem to + # care about these and it is not easy to disable specific warnings in a way + # that works across compilers/versions (some -Wno-* options are only + # recognized in newer versions). There are still some warnings left that + # appear for certain platforms/compilers. We pass them through but disable + # treating them as errors. + # + c.coptions += -Wno-all -Wno-extra -Wno-error +} + +c.poptions =+ "-I$src_base" + +if! $windows +{ + if $linux + c.libs += -ldl + + if ($linux || $bsd) + c.libs += -lpthread +} +else +{ + c.libs += $regex.apply(ws2_32 gdi32 crypt32, \ + '(.+)', \ + $msvc ? '\1.lib' : '-l\1') + if $msvc + c.libs += advapi32.lib +} diff --git a/openssl/openssl/e_os.h b/openssl/openssl/e_os.h new file mode 120000 index 0000000..223dc93 --- /dev/null +++ b/openssl/openssl/e_os.h @@ -0,0 +1 @@ +../../upstream/e_os.h \ No newline at end of file diff --git a/openssl/openssl/internal b/openssl/openssl/internal new file mode 120000 index 0000000..967b3ae --- /dev/null +++ b/openssl/openssl/internal @@ -0,0 +1 @@ +../../upstream/include/internal \ No newline at end of file diff --git a/openssl/openssl/progs.h b/openssl/openssl/progs.h new file mode 100644 index 0000000..9b3d270 --- /dev/null +++ b/openssl/openssl/progs.h @@ -0,0 +1,507 @@ +/* + * WARNING: do not edit! + * Generated by apps/progs.pl + * + * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html + */ + +typedef enum FUNC_TYPE { + FT_none, FT_general, FT_md, FT_cipher, FT_pkey, + FT_md_alg, FT_cipher_alg +} FUNC_TYPE; + +typedef struct function_st { + FUNC_TYPE type; + const char *name; + int (*func)(int argc, char *argv[]); + const OPTIONS *help; +} FUNCTION; + +DEFINE_LHASH_OF(FUNCTION); + +extern int asn1parse_main(int argc, char *argv[]); +extern int ca_main(int argc, char *argv[]); +extern int ciphers_main(int argc, char *argv[]); +extern int cms_main(int argc, char *argv[]); +extern int crl_main(int argc, char *argv[]); +extern int crl2pkcs7_main(int argc, char *argv[]); +extern int dgst_main(int argc, char *argv[]); +extern int dhparam_main(int argc, char *argv[]); +extern int dsa_main(int argc, char *argv[]); +extern int dsaparam_main(int argc, char *argv[]); +extern int ec_main(int argc, char *argv[]); +extern int ecparam_main(int argc, char *argv[]); +extern int enc_main(int argc, char *argv[]); +extern int engine_main(int argc, char *argv[]); +extern int errstr_main(int argc, char *argv[]); +extern int gendsa_main(int argc, char *argv[]); +extern int genpkey_main(int argc, char *argv[]); +extern int genrsa_main(int argc, char *argv[]); +extern int help_main(int argc, char *argv[]); +extern int list_main(int argc, char *argv[]); +extern int nseq_main(int argc, char *argv[]); +extern int ocsp_main(int argc, char *argv[]); +extern int passwd_main(int argc, char *argv[]); +extern int pkcs12_main(int argc, char *argv[]); +extern int pkcs7_main(int argc, char *argv[]); +extern int pkcs8_main(int argc, char *argv[]); +extern int pkey_main(int argc, char *argv[]); +extern int pkeyparam_main(int argc, char *argv[]); +extern int pkeyutl_main(int argc, char *argv[]); +extern int prime_main(int argc, char *argv[]); +extern int rand_main(int argc, char *argv[]); +extern int rehash_main(int argc, char *argv[]); +extern int req_main(int argc, char *argv[]); +extern int rsa_main(int argc, char *argv[]); +extern int rsautl_main(int argc, char *argv[]); +extern int s_client_main(int argc, char *argv[]); +extern int s_server_main(int argc, char *argv[]); +extern int s_time_main(int argc, char *argv[]); +extern int sess_id_main(int argc, char *argv[]); +extern int smime_main(int argc, char *argv[]); +extern int speed_main(int argc, char *argv[]); +extern int spkac_main(int argc, char *argv[]); +extern int srp_main(int argc, char *argv[]); +extern int storeutl_main(int argc, char *argv[]); +extern int ts_main(int argc, char *argv[]); +extern int verify_main(int argc, char *argv[]); +extern int version_main(int argc, char *argv[]); +extern int x509_main(int argc, char *argv[]); + +extern const OPTIONS asn1parse_options[]; +extern const OPTIONS ca_options[]; +extern const OPTIONS ciphers_options[]; +extern const OPTIONS cms_options[]; +extern const OPTIONS crl_options[]; +extern const OPTIONS crl2pkcs7_options[]; +extern const OPTIONS dgst_options[]; +extern const OPTIONS dhparam_options[]; +extern const OPTIONS dsa_options[]; +extern const OPTIONS dsaparam_options[]; +extern const OPTIONS ec_options[]; +extern const OPTIONS ecparam_options[]; +extern const OPTIONS enc_options[]; +extern const OPTIONS engine_options[]; +extern const OPTIONS errstr_options[]; +extern const OPTIONS gendsa_options[]; +extern const OPTIONS genpkey_options[]; +extern const OPTIONS genrsa_options[]; +extern const OPTIONS help_options[]; +extern const OPTIONS list_options[]; +extern const OPTIONS nseq_options[]; +extern const OPTIONS ocsp_options[]; +extern const OPTIONS passwd_options[]; +extern const OPTIONS pkcs12_options[]; +extern const OPTIONS pkcs7_options[]; +extern const OPTIONS pkcs8_options[]; +extern const OPTIONS pkey_options[]; +extern const OPTIONS pkeyparam_options[]; +extern const OPTIONS pkeyutl_options[]; +extern const OPTIONS prime_options[]; +extern const OPTIONS rand_options[]; +extern const OPTIONS rehash_options[]; +extern const OPTIONS req_options[]; +extern const OPTIONS rsa_options[]; +extern const OPTIONS rsautl_options[]; +extern const OPTIONS s_client_options[]; +extern const OPTIONS s_server_options[]; +extern const OPTIONS s_time_options[]; +extern const OPTIONS sess_id_options[]; +extern const OPTIONS smime_options[]; +extern const OPTIONS speed_options[]; +extern const OPTIONS spkac_options[]; +extern const OPTIONS srp_options[]; +extern const OPTIONS storeutl_options[]; +extern const OPTIONS ts_options[]; +extern const OPTIONS verify_options[]; +extern const OPTIONS version_options[]; +extern const OPTIONS x509_options[]; + +#ifdef INCLUDE_FUNCTION_TABLE +static FUNCTION functions[] = { + {FT_general, "asn1parse", asn1parse_main, asn1parse_options}, + {FT_general, "ca", ca_main, ca_options}, +#ifndef OPENSSL_NO_SOCK + {FT_general, "ciphers", ciphers_main, ciphers_options}, +#endif +#ifndef OPENSSL_NO_CMS + {FT_general, "cms", cms_main, cms_options}, +#endif + {FT_general, "crl", crl_main, crl_options}, + {FT_general, "crl2pkcs7", crl2pkcs7_main, crl2pkcs7_options}, + {FT_general, "dgst", dgst_main, dgst_options}, +#ifndef OPENSSL_NO_DH + {FT_general, "dhparam", dhparam_main, dhparam_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsa", dsa_main, dsa_options}, +#endif +#ifndef OPENSSL_NO_DSA + {FT_general, "dsaparam", dsaparam_main, dsaparam_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ec", ec_main, ec_options}, +#endif +#ifndef OPENSSL_NO_EC + {FT_general, "ecparam", ecparam_main, ecparam_options}, +#endif + {FT_general, "enc", enc_main, enc_options}, +#ifndef OPENSSL_NO_ENGINE + {FT_general, "engine", engine_main, engine_options}, +#endif + {FT_general, "errstr", errstr_main, errstr_options}, +#ifndef OPENSSL_NO_DSA + {FT_general, "gendsa", gendsa_main, gendsa_options}, +#endif + {FT_general, "genpkey", genpkey_main, genpkey_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "genrsa", genrsa_main, genrsa_options}, +#endif + {FT_general, "help", help_main, help_options}, + {FT_general, "list", list_main, list_options}, + {FT_general, "nseq", nseq_main, nseq_options}, +#ifndef OPENSSL_NO_OCSP + {FT_general, "ocsp", ocsp_main, ocsp_options}, +#endif + {FT_general, "passwd", passwd_main, passwd_options}, +#ifndef OPENSSL_NO_DES + {FT_general, "pkcs12", pkcs12_main, pkcs12_options}, +#endif + {FT_general, "pkcs7", pkcs7_main, pkcs7_options}, + {FT_general, "pkcs8", pkcs8_main, pkcs8_options}, + {FT_general, "pkey", pkey_main, pkey_options}, + {FT_general, "pkeyparam", pkeyparam_main, pkeyparam_options}, + {FT_general, "pkeyutl", pkeyutl_main, pkeyutl_options}, + {FT_general, "prime", prime_main, prime_options}, + {FT_general, "rand", rand_main, rand_options}, + {FT_general, "rehash", rehash_main, rehash_options}, + {FT_general, "req", req_main, req_options}, + {FT_general, "rsa", rsa_main, rsa_options}, +#ifndef OPENSSL_NO_RSA + {FT_general, "rsautl", rsautl_main, rsautl_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_client", s_client_main, s_client_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_server", s_server_main, s_server_options}, +#endif +#ifndef OPENSSL_NO_SOCK + {FT_general, "s_time", s_time_main, s_time_options}, +#endif + {FT_general, "sess_id", sess_id_main, sess_id_options}, + {FT_general, "smime", smime_main, smime_options}, + {FT_general, "speed", speed_main, speed_options}, + {FT_general, "spkac", spkac_main, spkac_options}, +#ifndef OPENSSL_NO_SRP + {FT_general, "srp", srp_main, srp_options}, +#endif + {FT_general, "storeutl", storeutl_main, storeutl_options}, +#ifndef OPENSSL_NO_TS + {FT_general, "ts", ts_main, ts_options}, +#endif + {FT_general, "verify", verify_main, verify_options}, + {FT_general, "version", version_main, version_options}, + {FT_general, "x509", x509_main, x509_options}, +#ifndef OPENSSL_NO_MD2 + {FT_md, "md2", dgst_main}, +#endif +#ifndef OPENSSL_NO_MD4 + {FT_md, "md4", dgst_main}, +#endif + {FT_md, "md5", dgst_main}, +#ifndef OPENSSL_NO_GOST + {FT_md, "gost", dgst_main}, +#endif + {FT_md, "sha1", dgst_main}, + {FT_md, "sha224", dgst_main}, + {FT_md, "sha256", dgst_main}, + {FT_md, "sha384", dgst_main}, + {FT_md, "sha512", dgst_main}, + {FT_md, "sha512-224", dgst_main}, + {FT_md, "sha512-256", dgst_main}, + {FT_md, "sha3-224", dgst_main}, + {FT_md, "sha3-256", dgst_main}, + {FT_md, "sha3-384", dgst_main}, + {FT_md, "sha3-512", dgst_main}, + {FT_md, "shake128", dgst_main}, + {FT_md, "shake256", dgst_main}, +#ifndef OPENSSL_NO_MDC2 + {FT_md, "mdc2", dgst_main}, +#endif +#ifndef OPENSSL_NO_RMD160 + {FT_md, "rmd160", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2b512", dgst_main}, +#endif +#ifndef OPENSSL_NO_BLAKE2 + {FT_md, "blake2s256", dgst_main}, +#endif +#ifndef OPENSSL_NO_SM3 + {FT_md, "sm3", dgst_main}, +#endif + {FT_cipher, "aes-128-cbc", enc_main, enc_options}, + {FT_cipher, "aes-128-ecb", enc_main, enc_options}, + {FT_cipher, "aes-192-cbc", enc_main, enc_options}, + {FT_cipher, "aes-192-ecb", enc_main, enc_options}, + {FT_cipher, "aes-256-cbc", enc_main, enc_options}, + {FT_cipher, "aes-256-ecb", enc_main, enc_options}, +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-128-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-192-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ctr", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb1", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_ARIA + {FT_cipher, "aria-256-cfb8", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-128-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-192-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAMELLIA + {FT_cipher, "camellia-256-ecb", enc_main, enc_options}, +#endif + {FT_cipher, "base64", enc_main, enc_options}, +#ifdef ZLIB + {FT_cipher, "zlib", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "desx", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC4 + {FT_cipher, "rc4-40", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_DES + {FT_cipher, "des-ede3-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_IDEA + {FT_cipher, "idea-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SEED + {FT_cipher, "seed-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-64-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC2 + {FT_cipher, "rc2-40-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_BF + {FT_cipher, "bf-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_CAST + {FT_cipher, "cast-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_RC5 + {FT_cipher, "rc5-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cbc", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ecb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-cfb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ofb", enc_main, enc_options}, +#endif +#ifndef OPENSSL_NO_SM4 + {FT_cipher, "sm4-ctr", enc_main, enc_options}, +#endif + {0, NULL, NULL} +}; +#endif diff --git a/openssl/tests/.gitignore b/openssl/tests/.gitignore new file mode 100644 index 0000000..ce6eed8 --- /dev/null +++ b/openssl/tests/.gitignore @@ -0,0 +1,4 @@ +# Testscript output directories (can be symlinks). +# +test +test-* diff --git a/openssl/tests/build/.gitignore b/openssl/tests/build/.gitignore new file mode 100644 index 0000000..4a730a3 --- /dev/null +++ b/openssl/tests/build/.gitignore @@ -0,0 +1,3 @@ +config.build +root/ +bootstrap/ diff --git a/openssl/tests/build/bootstrap.build b/openssl/tests/build/bootstrap.build new file mode 100644 index 0000000..dd525c0 --- /dev/null +++ b/openssl/tests/build/bootstrap.build @@ -0,0 +1,9 @@ +# file : tests/build/bootstrap.build +# copyright : Copyright (c) 2018-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + +project = # Unnamed tests subproject. + +using config +using test +using dist diff --git a/openssl/tests/build/root.build b/openssl/tests/build/root.build new file mode 100644 index 0000000..d593d3d --- /dev/null +++ b/openssl/tests/build/root.build @@ -0,0 +1,16 @@ +# file : tests/build/root.build +# copyright : Copyright (c) 2018-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + +# We need to configure C module to obtain the target information (see below). +# +using c + +# Setup the openssl program that we are testing. +# +import openssl = openssl%exe{openssl} +testscript{*}: test = $openssl + +# Specify the test target for cross-testing. +# +test.target = $c.target diff --git a/openssl/tests/buildfile b/openssl/tests/buildfile new file mode 100644 index 0000000..63882e6 --- /dev/null +++ b/openssl/tests/buildfile @@ -0,0 +1,5 @@ +# file : tests/buildfile +# copyright : Copyright (c) 2018-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + +./: testscript{*} $openssl diff --git a/openssl/tests/rsa.testscript b/openssl/tests/rsa.testscript new file mode 100644 index 0000000..47f17cb --- /dev/null +++ b/openssl/tests/rsa.testscript @@ -0,0 +1,61 @@ +# file : tests/rsa.testscript +# copyright : Copyright (c) 2016-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + ++cat <=openssl.cnf +repository = build2.org +company = Code Synthesis +email = info@build2.org + +[ req ] + +distinguished_name = req_distinguished_name +x509_extensions = v3_req +prompt = no +utf8 = yes + +[ req_distinguished_name ] + +O = $company +CN = name:$repository + +[ v3_req ] + +keyUsage = critical,digitalSignature +extendedKeyUsage = critical,codeSigning +subjectAltName = email:$email +EOI + ++$* genrsa 4096 >=key.pem 2>>~%EOO% + %Generating RSA private key, 4096 bit long modulus.*% + %.* + EOO + ++cat key.pem >>~%EOO% + -----BEGIN RSA PRIVATE KEY----- + %.{1,64}%.+ + -----END RSA PRIVATE KEY----- + EOO + ++$* req -x509 -new -key key.pem -days 1825 -config openssl.cnf >=cert.pem + ++cat cert.pem >>~%EOO% + -----BEGIN CERTIFICATE----- + %.{1,64}%.+ + -----END CERTIFICATE----- + EOO + +: cert-fingerprint +: +{ + $* x509 -sha256 -noout -fingerprint <<<../cert.pem >>~%EOO% + %SHA256 Fingerprint=([[:xdigit:]]{2}:){31}[[:xdigit:]]{2}% + EOO +} + +: sign-verify +: +{ + $* rsautl -sign -inkey ../key.pem <'test' | \ + $* rsautl -verify -certin -inkey ../cert.pem >'test' +} diff --git a/openssl/tests/version.testscript b/openssl/tests/version.testscript new file mode 100644 index 0000000..bc14c50 --- /dev/null +++ b/openssl/tests/version.testscript @@ -0,0 +1,14 @@ +# file : tests/version.testscript +# copyright : Copyright (c) 2016-2019 Code Synthesis Ltd +# license : OpenSSL and SSLeay Licenses; see accompanying LICENSE file + +$* version -a >>~"%EOO%" + OpenSSL 1.1.1a 20 Nov 2018 + %built on: .+ UTC% + %platform: $c.target.class-$c.target.cpu% + %options: .+% + %compiler: $c.class .*-DLIBCRYPTO_BUILD.*% + %OPENSSLDIR: ".+"% + %ENGINESDIR: ".+"% + %Seeding source: .+% + EOO -- cgit v1.1