summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mauderer <christian.mauderer@embedded-brains.de>2019-03-26 11:08:47 +0100
committerChristian Mauderer <christian.mauderer@embedded-brains.de>2019-03-27 10:53:26 +0100
commitd1dac7891cd3234c935ce7e4d742b6f87663a5e1 (patch)
tree7d3685301aba8a5c719d640a4213991d7dafe7bd
parentbin/openssl: Import from FreeBSD. (diff)
downloadrtems-libbsd-d1dac7891cd3234c935ce7e4d742b6f87663a5e1.tar.bz2
bin/openssl: Port to RTEMS.
-rw-r--r--buildset/default.ini1
-rw-r--r--buildset/minimal.ini1
-rw-r--r--freebsd/crypto/openssl/apps/app_rand.c7
-rw-r--r--freebsd/crypto/openssl/apps/apps.c15
-rw-r--r--freebsd/crypto/openssl/apps/asn1pars.c7
-rw-r--r--freebsd/crypto/openssl/apps/bf_prefix.c7
-rw-r--r--freebsd/crypto/openssl/apps/ca.c7
-rw-r--r--freebsd/crypto/openssl/apps/ciphers.c7
-rw-r--r--freebsd/crypto/openssl/apps/cms.c7
-rw-r--r--freebsd/crypto/openssl/apps/crl.c7
-rw-r--r--freebsd/crypto/openssl/apps/crl2p7.c7
-rw-r--r--freebsd/crypto/openssl/apps/dgst.c7
-rw-r--r--freebsd/crypto/openssl/apps/dhparam.c7
-rw-r--r--freebsd/crypto/openssl/apps/dsa.c7
-rw-r--r--freebsd/crypto/openssl/apps/dsaparam.c7
-rw-r--r--freebsd/crypto/openssl/apps/ec.c7
-rw-r--r--freebsd/crypto/openssl/apps/ecparam.c7
-rw-r--r--freebsd/crypto/openssl/apps/enc.c12
-rw-r--r--freebsd/crypto/openssl/apps/engine.c7
-rw-r--r--freebsd/crypto/openssl/apps/errstr.c7
-rw-r--r--freebsd/crypto/openssl/apps/gendsa.c7
-rw-r--r--freebsd/crypto/openssl/apps/genpkey.c7
-rw-r--r--freebsd/crypto/openssl/apps/genrsa.c7
-rw-r--r--freebsd/crypto/openssl/apps/nseq.c7
-rw-r--r--freebsd/crypto/openssl/apps/ocsp.c7
-rw-r--r--freebsd/crypto/openssl/apps/openssl.c40
-rw-r--r--freebsd/crypto/openssl/apps/opt.c7
-rw-r--r--freebsd/crypto/openssl/apps/passwd.c12
-rw-r--r--freebsd/crypto/openssl/apps/pkcs12.c7
-rw-r--r--freebsd/crypto/openssl/apps/pkcs7.c7
-rw-r--r--freebsd/crypto/openssl/apps/pkcs8.c7
-rw-r--r--freebsd/crypto/openssl/apps/pkey.c7
-rw-r--r--freebsd/crypto/openssl/apps/pkeyparam.c7
-rw-r--r--freebsd/crypto/openssl/apps/pkeyutl.c7
-rw-r--r--freebsd/crypto/openssl/apps/prime.c7
-rw-r--r--freebsd/crypto/openssl/apps/progs.h2
-rw-r--r--freebsd/crypto/openssl/apps/rand.c7
-rw-r--r--freebsd/crypto/openssl/apps/rehash.c13
-rw-r--r--freebsd/crypto/openssl/apps/req.c7
-rw-r--r--freebsd/crypto/openssl/apps/rsa.c7
-rw-r--r--freebsd/crypto/openssl/apps/rsautl.c7
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-app_rand-data.h5
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-apps-data.h10
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-asn1pars-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-bf_prefix-data.h5
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-ca-data.h8
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-ciphers-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-cms-data.h5
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-crl-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-crl2p7-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-data.h62
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-dgst-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-dhparam-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-dsa-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-dsaparam-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-ec-data.h6
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-ecparam-data.h6
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-enc-data.h5
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-engine-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-errstr-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-gendsa-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-genpkey-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-genrsa-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-namespace.h248
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-nseq-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-ocsp-data.h8
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-openssl-data.h7
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-opt-data.h14
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-passwd-data.h5
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs12-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs7-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs8-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkey-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkeyparam-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkeyutl-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-prime-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-rand-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-rehash-data.h13
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-req-data.h7
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-rsa-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-rsautl-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_cb-data.h15
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_client-data.h21
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_server-data.h35
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_socket-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_time-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-sess_id-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-smime-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-speed-data.h58
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-spkac-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-srp-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-ts-data.h5
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-verify-data.h6
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-version-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/rtems-bsd-openssl-x509-data.h4
-rw-r--r--freebsd/crypto/openssl/apps/s_cb.c12
-rw-r--r--freebsd/crypto/openssl/apps/s_client.c28
-rw-r--r--freebsd/crypto/openssl/apps/s_server.c13
-rw-r--r--freebsd/crypto/openssl/apps/s_socket.c7
-rw-r--r--freebsd/crypto/openssl/apps/s_time.c7
-rw-r--r--freebsd/crypto/openssl/apps/sess_id.c7
-rw-r--r--freebsd/crypto/openssl/apps/smime.c7
-rw-r--r--freebsd/crypto/openssl/apps/speed.c22
-rw-r--r--freebsd/crypto/openssl/apps/spkac.c7
-rw-r--r--freebsd/crypto/openssl/apps/srp.c7
-rw-r--r--freebsd/crypto/openssl/apps/storeutl.c475
-rw-r--r--freebsd/crypto/openssl/apps/ts.c7
-rw-r--r--freebsd/crypto/openssl/apps/verify.c7
-rw-r--r--freebsd/crypto/openssl/apps/version.c7
-rw-r--r--freebsd/crypto/openssl/apps/x509.c7
-rw-r--r--libbsd.py92
-rw-r--r--rtemsbsd/include/machine/rtems-bsd-commands.h2
-rw-r--r--rtemsbsd/include/rtems/netcmds-config.h1
-rw-r--r--rtemsbsd/rtems/rtems-bsd-shell-openssl.c40
-rw-r--r--testsuite/openssl02/test_main.c135
115 files changed, 1424 insertions, 475 deletions
diff --git a/buildset/default.ini b/buildset/default.ini
index caafb57c..f25fe9a3 100644
--- a/buildset/default.ini
+++ b/buildset/default.ini
@@ -57,5 +57,6 @@ tests = on
tty = on
user_space = on
user_space_wlanstats = off
+usr_bin_openssl = on
usr_sbin_tcpdump = on
usr_sbin_wpa_supplicant = off
diff --git a/buildset/minimal.ini b/buildset/minimal.ini
index c5ad8214..03dd96bb 100644
--- a/buildset/minimal.ini
+++ b/buildset/minimal.ini
@@ -20,3 +20,4 @@ extends = default.ini
[modules]
crypto_openssl = off
netinet6 = off
+usr_bin_openssl = off
diff --git a/freebsd/crypto/openssl/apps/app_rand.c b/freebsd/crypto/openssl/apps/app_rand.c
index 072dfa40..cf2fbb4f 100644
--- a/freebsd/crypto/openssl/apps/app_rand.c
+++ b/freebsd/crypto/openssl/apps/app_rand.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -93,3 +97,6 @@ int opt_rand(int opt)
}
return 1;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-app_rand-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/apps.c b/freebsd/crypto/openssl/apps/apps.c
index 9a7dce83..834d39f8 100644
--- a/freebsd/crypto/openssl/apps/apps.c
+++ b/freebsd/crypto/openssl/apps/apps.c
@@ -1,4 +1,11 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+/* The only file opened here is put into a BIO-structure which is handled by
+ * BIO_free. */
+#define RTEMS_BSD_PROGRAM_NO_OPEN_WRAP
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -371,10 +378,15 @@ int app_passwd(const char *arg1, const char *arg2, char **pass1, char **pass2)
return 1;
}
+#ifdef __rtems__
+static BIO *pwdbio = NULL;
+#endif /* __rtems__ */
static char *app_get_pass(const char *arg, int keepbio)
{
char *tmp, tpass[APP_PASS_LEN];
+#ifndef __rtems__
static BIO *pwdbio = NULL;
+#endif /* __rtems__ */
int i;
if (strncmp(arg, "pass:", 5) == 0)
@@ -2752,3 +2764,6 @@ void make_uppercase(char *string)
for (i = 0; string[i] != '\0'; i++)
string[i] = toupper((unsigned char)string[i]);
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-apps-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/asn1pars.c b/freebsd/crypto/openssl/apps/asn1pars.c
index 7861fe4d..a2af9e3c 100644
--- a/freebsd/crypto/openssl/apps/asn1pars.c
+++ b/freebsd/crypto/openssl/apps/asn1pars.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -357,3 +361,6 @@ static int do_generate(char *genstr, const char *genconf, BUF_MEM *buf)
ASN1_TYPE_free(atyp);
return -1;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-asn1pars-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/bf_prefix.c b/freebsd/crypto/openssl/apps/bf_prefix.c
index eb7dd052..c3c812e7 100644
--- a/freebsd/crypto/openssl/apps/bf_prefix.c
+++ b/freebsd/crypto/openssl/apps/bf_prefix.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -177,3 +181,6 @@ static int prefix_puts(BIO *b, const char *str)
{
return BIO_write(b, str, strlen(str));
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-bf_prefix-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/ca.c b/freebsd/crypto/openssl/apps/ca.c
index c36e2fd5..e6902a1f 100644
--- a/freebsd/crypto/openssl/apps/ca.c
+++ b/freebsd/crypto/openssl/apps/ca.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -2606,3 +2610,6 @@ int unpack_revinfo(ASN1_TIME **prevtm, int *preason, ASN1_OBJECT **phold,
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-ca-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/ciphers.c b/freebsd/crypto/openssl/apps/ciphers.c
index caaa088b..61f0e36e 100644
--- a/freebsd/crypto/openssl/apps/ciphers.c
+++ b/freebsd/crypto/openssl/apps/ciphers.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -266,3 +270,6 @@ int ciphers_main(int argc, char **argv)
SSL_free(ssl);
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-ciphers-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/cms.c b/freebsd/crypto/openssl/apps/cms.c
index de8818b6..29596fa7 100644
--- a/freebsd/crypto/openssl/apps/cms.c
+++ b/freebsd/crypto/openssl/apps/cms.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2008-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -1289,3 +1293,6 @@ static int cms_set_pkey_param(EVP_PKEY_CTX *pctx,
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-cms-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/crl.c b/freebsd/crypto/openssl/apps/crl.c
index 54a879d9..2439379f 100644
--- a/freebsd/crypto/openssl/apps/crl.c
+++ b/freebsd/crypto/openssl/apps/crl.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -342,3 +346,6 @@ int crl_main(int argc, char **argv)
X509_STORE_free(store);
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-crl-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/crl2p7.c b/freebsd/crypto/openssl/apps/crl2p7.c
index 8108e23a..e26ea4bc 100644
--- a/freebsd/crypto/openssl/apps/crl2p7.c
+++ b/freebsd/crypto/openssl/apps/crl2p7.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -217,3 +221,6 @@ static int add_certs_from_file(STACK_OF(X509) *stack, char *certfile)
sk_X509_INFO_free(sk);
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-crl2p7-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/dgst.c b/freebsd/crypto/openssl/apps/dgst.c
index fb4e6643..8cb894df 100644
--- a/freebsd/crypto/openssl/apps/dgst.c
+++ b/freebsd/crypto/openssl/apps/dgst.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -492,3 +496,6 @@ int do_fp(BIO *out, unsigned char *buf, BIO *bp, int sep, int binout,
}
return 0;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-dgst-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/dhparam.c b/freebsd/crypto/openssl/apps/dhparam.c
index 505ee4bf..420d0a9f 100644
--- a/freebsd/crypto/openssl/apps/dhparam.c
+++ b/freebsd/crypto/openssl/apps/dhparam.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -379,3 +383,6 @@ static int dh_cb(int p, int n, BN_GENCB *cb)
return 1;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-dhparam-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/dsa.c b/freebsd/crypto/openssl/apps/dsa.c
index bec86054..70bffcf6 100644
--- a/freebsd/crypto/openssl/apps/dsa.c
+++ b/freebsd/crypto/openssl/apps/dsa.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -265,3 +269,6 @@ int dsa_main(int argc, char **argv)
return ret;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-dsa-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/dsaparam.c b/freebsd/crypto/openssl/apps/dsaparam.c
index 78a5c64c..aa575dbe 100644
--- a/freebsd/crypto/openssl/apps/dsaparam.c
+++ b/freebsd/crypto/openssl/apps/dsaparam.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -258,3 +262,6 @@ static int dsa_cb(int p, int n, BN_GENCB *cb)
return 1;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-dsaparam-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/ec.c b/freebsd/crypto/openssl/apps/ec.c
index bbeccd97..4239f4e1 100644
--- a/freebsd/crypto/openssl/apps/ec.c
+++ b/freebsd/crypto/openssl/apps/ec.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -283,3 +287,6 @@ int ec_main(int argc, char **argv)
return ret;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-ec-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/ecparam.c b/freebsd/crypto/openssl/apps/ecparam.c
index 423b5f33..8841c715 100644
--- a/freebsd/crypto/openssl/apps/ecparam.c
+++ b/freebsd/crypto/openssl/apps/ecparam.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -450,3 +454,6 @@ int ecparam_main(int argc, char **argv)
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-ecparam-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/enc.c b/freebsd/crypto/openssl/apps/enc.c
index dd09cbac..285d6d50 100644
--- a/freebsd/crypto/openssl/apps/enc.c
+++ b/freebsd/crypto/openssl/apps/enc.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -90,9 +94,14 @@ const OPTIONS enc_options[] = {
{NULL}
};
+#ifdef __rtems__
+static char buf[128];
+#endif /* __rtems__ */
int enc_main(int argc, char **argv)
{
+#ifndef __rtems__
static char buf[128];
+#endif /* __rtems__ */
static const char magic[] = "Salted__";
ENGINE *e = NULL;
BIO *in = NULL, *out = NULL, *b64 = NULL, *benc = NULL, *rbio =
@@ -675,3 +684,6 @@ static int set_hex(const char *in, unsigned char *out, int size)
}
return 1;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-enc-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/engine.c b/freebsd/crypto/openssl/apps/engine.c
index bb77255b..32e386d0 100644
--- a/freebsd/crypto/openssl/apps/engine.c
+++ b/freebsd/crypto/openssl/apps/engine.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -489,3 +493,6 @@ int engine_main(int argc, char **argv)
return ret;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-engine-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/errstr.c b/freebsd/crypto/openssl/apps/errstr.c
index ae430510..c7a1ce12 100644
--- a/freebsd/crypto/openssl/apps/errstr.c
+++ b/freebsd/crypto/openssl/apps/errstr.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -67,3 +71,6 @@ int errstr_main(int argc, char **argv)
end:
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-errstr-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/gendsa.c b/freebsd/crypto/openssl/apps/gendsa.c
index ef845c75..d28eea35 100644
--- a/freebsd/crypto/openssl/apps/gendsa.c
+++ b/freebsd/crypto/openssl/apps/gendsa.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -146,3 +150,6 @@ int gendsa_main(int argc, char **argv)
return ret;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-gendsa-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/genpkey.c b/freebsd/crypto/openssl/apps/genpkey.c
index d420c885..0d3b30f2 100644
--- a/freebsd/crypto/openssl/apps/genpkey.c
+++ b/freebsd/crypto/openssl/apps/genpkey.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -322,3 +326,6 @@ static int genpkey_cb(EVP_PKEY_CTX *ctx)
(void)BIO_flush(b);
return 1;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-genpkey-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/genrsa.c b/freebsd/crypto/openssl/apps/genrsa.c
index 3becea60..88a1e611 100644
--- a/freebsd/crypto/openssl/apps/genrsa.c
+++ b/freebsd/crypto/openssl/apps/genrsa.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -201,3 +205,6 @@ static int genrsa_cb(int p, int n, BN_GENCB *cb)
return 1;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-genrsa-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/nseq.c b/freebsd/crypto/openssl/apps/nseq.c
index 57047f35..43825e29 100644
--- a/freebsd/crypto/openssl/apps/nseq.c
+++ b/freebsd/crypto/openssl/apps/nseq.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -114,3 +118,6 @@ int nseq_main(int argc, char **argv)
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-nseq-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/ocsp.c b/freebsd/crypto/openssl/apps/ocsp.c
index 6494fa27..9823d5fb 100644
--- a/freebsd/crypto/openssl/apps/ocsp.c
+++ b/freebsd/crypto/openssl/apps/ocsp.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -1593,3 +1597,6 @@ OCSP_RESPONSE *process_responder(OCSP_REQUEST *req,
# endif
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-ocsp-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/openssl.c b/freebsd/crypto/openssl/apps/openssl.c
index 0b41ea55..68a8882d 100644
--- a/freebsd/crypto/openssl/apps/openssl.c
+++ b/freebsd/crypto/openssl/apps/openssl.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -9,6 +13,10 @@
* https://www.openssl.org/source/license.html
*/
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include <machine/rtems-bsd-commands.h>
+#endif /* __rtems__ */
#include <internal/cryptlib.h>
#include <stdio.h>
#include <string.h>
@@ -32,6 +40,9 @@
#include "apps.h"
#define INCLUDE_FUNCTION_TABLE
#include "progs.h"
+#ifdef __rtems__
+#include "rtems-bsd-openssl-openssl-data.h"
+#endif /* __rtems__ */
/* Structure to hold the number of columns to be displayed and the
* field width used to display them.
@@ -119,6 +130,29 @@ static char *make_config_name(void)
return p;
}
+#ifdef __rtems__
+static int main(int argc, char *argv[]);
+
+RTEMS_LINKER_RWSET(bsd_prog_openssl, char);
+
+int
+rtems_bsd_command_openssl(int argc, char *argv[])
+{
+ int exit_code;
+ void *data_begin;
+ size_t data_size;
+
+ data_begin = RTEMS_LINKER_SET_BEGIN(bsd_prog_openssl);
+ data_size = RTEMS_LINKER_SET_SIZE(bsd_prog_openssl);
+
+ rtems_bsd_program_lock();
+ exit_code = rtems_bsd_program_call_main_with_data_restore("openssl",
+ main, argc, argv, data_begin, data_size);
+ rtems_bsd_program_unlock();
+
+ return exit_code;
+}
+#endif /* __rtems__ */
int main(int argc, char *argv[])
{
FUNCTION f, *fp;
@@ -802,10 +836,16 @@ static void list_disabled(void)
#endif
}
+#ifdef __rtems__
+static LHASH_OF(FUNCTION) *ret = NULL;
+static int prog_inited = 0;
+#endif /* __rtems__ */
static LHASH_OF(FUNCTION) *prog_init(void)
{
+#ifndef __rtems__
static LHASH_OF(FUNCTION) *ret = NULL;
static int prog_inited = 0;
+#endif /* __rtems__ */
FUNCTION *f;
size_t i;
diff --git a/freebsd/crypto/openssl/apps/opt.c b/freebsd/crypto/openssl/apps/opt.c
index e56b53f9..757b6494 100644
--- a/freebsd/crypto/openssl/apps/opt.c
+++ b/freebsd/crypto/openssl/apps/opt.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -898,3 +902,6 @@ void opt_help(const OPTIONS *list)
BIO_printf(bio_err, "%s %s\n", start, help);
}
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-opt-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/passwd.c b/freebsd/crypto/openssl/apps/passwd.c
index 81d99190..d2bc7cfd 100644
--- a/freebsd/crypto/openssl/apps/passwd.c
+++ b/freebsd/crypto/openssl/apps/passwd.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -82,6 +86,9 @@ const OPTIONS passwd_options[] = {
{NULL}
};
+#ifdef __rtems__
+static char *passwds_static[2] = { NULL, NULL };
+#endif /* __rtems__ */
int passwd_main(int argc, char **argv)
{
BIO *in = NULL;
@@ -235,7 +242,9 @@ int passwd_main(int argc, char **argv)
if (1) {
#ifndef OPENSSL_NO_UI_CONSOLE
/* build a null-terminated list */
+#ifndef __rtems__
static char *passwds_static[2] = { NULL, NULL };
+#endif /* __rtems__ */
passwds = passwds_static;
if (in == NULL) {
@@ -853,3 +862,6 @@ static int do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p,
end:
return 0;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-passwd-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/pkcs12.c b/freebsd/crypto/openssl/apps/pkcs12.c
index 66a4bac7..9235c970 100644
--- a/freebsd/crypto/openssl/apps/pkcs12.c
+++ b/freebsd/crypto/openssl/apps/pkcs12.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -961,3 +965,6 @@ static int set_pbe(int *ppbe, const char *str)
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-pkcs12-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/pkcs7.c b/freebsd/crypto/openssl/apps/pkcs7.c
index 6e5c4739..c7bad932 100644
--- a/freebsd/crypto/openssl/apps/pkcs7.c
+++ b/freebsd/crypto/openssl/apps/pkcs7.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -198,3 +202,6 @@ int pkcs7_main(int argc, char **argv)
BIO_free_all(out);
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-pkcs7-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/pkcs8.c b/freebsd/crypto/openssl/apps/pkcs8.c
index 97924228..07e991a4 100644
--- a/freebsd/crypto/openssl/apps/pkcs8.c
+++ b/freebsd/crypto/openssl/apps/pkcs8.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -359,3 +363,6 @@ int pkcs8_main(int argc, char **argv)
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-pkcs8-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/pkey.c b/freebsd/crypto/openssl/apps/pkey.c
index d220fde5..ec341419 100644
--- a/freebsd/crypto/openssl/apps/pkey.c
+++ b/freebsd/crypto/openssl/apps/pkey.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -243,3 +247,6 @@ int pkey_main(int argc, char **argv)
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-pkey-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/pkeyparam.c b/freebsd/crypto/openssl/apps/pkeyparam.c
index b58b445c..763ddc41 100644
--- a/freebsd/crypto/openssl/apps/pkeyparam.c
+++ b/freebsd/crypto/openssl/apps/pkeyparam.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -142,3 +146,6 @@ int pkeyparam_main(int argc, char **argv)
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-pkeyparam-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/pkeyutl.c b/freebsd/crypto/openssl/apps/pkeyutl.c
index ff88c782..657a5bee 100644
--- a/freebsd/crypto/openssl/apps/pkeyutl.c
+++ b/freebsd/crypto/openssl/apps/pkeyutl.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -525,3 +529,6 @@ static int do_keyop(EVP_PKEY_CTX *ctx, int pkey_op,
}
return rv;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-pkeyutl-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/prime.c b/freebsd/crypto/openssl/apps/prime.c
index c13bc3e2..c7707ecb 100644
--- a/freebsd/crypto/openssl/apps/prime.c
+++ b/freebsd/crypto/openssl/apps/prime.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -133,3 +137,6 @@ opthelp:
BN_free(bn);
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-prime-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/progs.h b/freebsd/crypto/openssl/apps/progs.h
index 0733d273..eabac0ba 100644
--- a/freebsd/crypto/openssl/apps/progs.h
+++ b/freebsd/crypto/openssl/apps/progs.h
@@ -202,7 +202,9 @@ static FUNCTION functions[] = {
#ifndef OPENSSL_NO_SRP
{FT_general, "srp", srp_main, srp_options},
#endif
+#ifndef __rtems__
{FT_general, "storeutl", storeutl_main, storeutl_options},
+#endif /* __rtems__ */
#ifndef OPENSSL_NO_TS
{FT_general, "ts", ts_main, ts_options},
#endif
diff --git a/freebsd/crypto/openssl/apps/rand.c b/freebsd/crypto/openssl/apps/rand.c
index af38f69d..e6b7ed26 100644
--- a/freebsd/crypto/openssl/apps/rand.c
+++ b/freebsd/crypto/openssl/apps/rand.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1998-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -133,3 +137,6 @@ int rand_main(int argc, char **argv)
BIO_free_all(out);
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-rand-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/rehash.c b/freebsd/crypto/openssl/apps/rehash.c
index b90cd08f..18fd5b14 100644
--- a/freebsd/crypto/openssl/apps/rehash.c
+++ b/freebsd/crypto/openssl/apps/rehash.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -100,6 +104,10 @@ static int bit_isset(unsigned char *set, unsigned int bit)
}
+#ifdef __rtems__
+static BUCKET nilbucket;
+static HENTRY nilhentry;
+#endif /* __rtems__ */
/*
* Process an entry; return number of errors.
*/
@@ -107,8 +115,10 @@ static int add_entry(enum Type type, unsigned int hash, const char *filename,
const unsigned char *digest, int need_symlink,
unsigned short old_id)
{
+#ifndef __rtems__
static BUCKET nilbucket;
static HENTRY nilhentry;
+#endif /* __rtems__ */
BUCKET *bp;
HENTRY *ep, *found = NULL;
unsigned int ndx = (type + hash) % OSSL_NELEM(hash_table);
@@ -512,3 +522,6 @@ int rehash_main(int argc, char **argv)
}
#endif /* defined(OPENSSL_SYS_UNIX) || defined(__APPLE__) */
+#ifdef __rtems__
+#include "rtems-bsd-openssl-rehash-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/req.c b/freebsd/crypto/openssl/apps/req.c
index 0308a607..37fdde9a 100644
--- a/freebsd/crypto/openssl/apps/req.c
+++ b/freebsd/crypto/openssl/apps/req.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -1664,3 +1668,6 @@ int do_X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md,
EVP_MD_CTX_free(mctx);
return rv > 0 ? 1 : 0;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-req-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/rsa.c b/freebsd/crypto/openssl/apps/rsa.c
index eb4774bb..bce77478 100644
--- a/freebsd/crypto/openssl/apps/rsa.c
+++ b/freebsd/crypto/openssl/apps/rsa.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -316,3 +320,6 @@ int rsa_main(int argc, char **argv)
return ret;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-rsa-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/rsautl.c b/freebsd/crypto/openssl/apps/rsautl.c
index f5275636..977a414d 100644
--- a/freebsd/crypto/openssl/apps/rsautl.c
+++ b/freebsd/crypto/openssl/apps/rsautl.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -282,3 +286,6 @@ int rsautl_main(int argc, char **argv)
return ret;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-rsautl-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-app_rand-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-app_rand-data.h
new file mode 100644
index 00000000..9f50a237
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-app_rand-data.h
@@ -0,0 +1,5 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* app_rand.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *save_rand_file);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-apps-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-apps-data.h
new file mode 100644
index 00000000..7138e3dc
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-apps-data.h
@@ -0,0 +1,10 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* apps.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static BIO *pwdbio);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static BIO_METHOD *prefix_method);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static UI_METHOD *ui_method);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static UI_METHOD const *ui_fallback_method);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char nmflag_set);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static long unsigned int nmflag);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-asn1pars-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-asn1pars-data.h
new file mode 100644
index 00000000..6ecd5f93
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-asn1pars-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* asn1pars.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-bf_prefix-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-bf_prefix-data.h
new file mode 100644
index 00000000..ddddcd78
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-bf_prefix-data.h
@@ -0,0 +1,5 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* bf_prefix.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static BIO_METHOD *prefix_meth);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ca-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ca-data.h
new file mode 100644
index 00000000..fd72b2a8
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ca-data.h
@@ -0,0 +1,8 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* ca.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static CONF *extconf);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char const *crl_reasons[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int msie_hack);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int preserve);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ciphers-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ciphers-data.h
new file mode 100644
index 00000000..0d67172c
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ciphers-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* ciphers.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-cms-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-cms-data.h
new file mode 100644
index 00000000..94c82ae6
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-cms-data.h
@@ -0,0 +1,5 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* cms.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int verify_err);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-crl-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-crl-data.h
new file mode 100644
index 00000000..b08799c7
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-crl-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* crl.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-crl2p7-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-crl2p7-data.h
new file mode 100644
index 00000000..764a933e
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-crl2p7-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* crl2p7.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-data.h
new file mode 100644
index 00000000..83ba8758
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-data.h
@@ -0,0 +1,62 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+/* app_rand.c */
+/* apps.c */
+/* asn1pars.c */
+/* bf_prefix.c */
+/* ca.c */
+/* ciphers.c */
+/* cms.c */
+/* crl2p7.c */
+/* crl.c */
+/* dgst.c */
+/* dhparam.c */
+/* dsa.c */
+/* dsaparam.c */
+/* ec.c */
+/* ecparam.c */
+/* enc.c */
+/* engine.c */
+/* errstr.c */
+/* gendsa.c */
+/* genpkey.c */
+/* genrsa.c */
+/* nseq.c */
+/* ocsp.c */
+/* openssl.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, extern BIO *bio_err);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, extern BIO *bio_in);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, extern BIO *bio_out);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, extern char *default_config_file);
+/* opt.c */
+/* passwd.c */
+/* pkcs12.c */
+/* pkcs7.c */
+/* pkcs8.c */
+/* pkey.c */
+/* pkeyparam.c */
+/* pkeyutl.c */
+/* prime.c */
+/* rand.c */
+/* rehash.c */
+/* req.c */
+/* rsa.c */
+/* rsautl.c */
+/* s_cb.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, extern VERIFY_CB_ARGS verify_args);
+/* s_client.c */
+/* sess_id.c */
+/* smime.c */
+/* speed.c */
+/* spkac.c */
+/* srp.c */
+/* s_server.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, extern char *psk_key);
+/* s_socket.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, extern BIO_ADDR *ourpeer);
+/* s_time.c */
+/* storeutl.c */
+/* ts.c */
+/* verify.c */
+/* version.c */
+/* x509.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dgst-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dgst-data.h
new file mode 100644
index 00000000..b89c4456
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dgst-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* dgst.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dhparam-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dhparam-data.h
new file mode 100644
index 00000000..12f45728
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dhparam-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* dhparam.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dsa-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dsa-data.h
new file mode 100644
index 00000000..055de288
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dsa-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* dsa.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dsaparam-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dsaparam-data.h
new file mode 100644
index 00000000..d2b2bbf0
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-dsaparam-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* dsaparam.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ec-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ec-data.h
new file mode 100644
index 00000000..d7a84888
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ec-data.h
@@ -0,0 +1,6 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* ec.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static OPT_PAIR conv_forms[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static OPT_PAIR param_enc[]);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ecparam-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ecparam-data.h
new file mode 100644
index 00000000..183ad4c0
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ecparam-data.h
@@ -0,0 +1,6 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* ecparam.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static OPT_PAIR encodings[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static OPT_PAIR forms[]);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-enc-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-enc-data.h
new file mode 100644
index 00000000..050ad047
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-enc-data.h
@@ -0,0 +1,5 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* enc.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char buf[]);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-engine-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-engine-data.h
new file mode 100644
index 00000000..5c50774b
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-engine-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* engine.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-errstr-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-errstr-data.h
new file mode 100644
index 00000000..b14665ad
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-errstr-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* errstr.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-gendsa-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-gendsa-data.h
new file mode 100644
index 00000000..c094e292
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-gendsa-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* gendsa.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-genpkey-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-genpkey-data.h
new file mode 100644
index 00000000..c6f84bd2
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-genpkey-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* genpkey.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-genrsa-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-genrsa-data.h
new file mode 100644
index 00000000..d4c87d2c
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-genrsa-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* genrsa.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-namespace.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-namespace.h
new file mode 100644
index 00000000..985bbae5
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-namespace.h
@@ -0,0 +1,248 @@
+/* generated by userspace-header-gen.py */
+/* app_rand.c */
+#define app_RAND_load_conf _bsd_openssl_app_RAND_load_conf
+#define app_RAND_write _bsd_openssl_app_RAND_write
+#define opt_rand _bsd_openssl_opt_rand
+/* apps.c */
+#define add_oid_section _bsd_openssl_add_oid_section
+#define app_access _bsd_openssl_app_access
+#define app_init _bsd_openssl_app_init
+#define app_isdir _bsd_openssl_app_isdir
+#define app_load_config _bsd_openssl_app_load_config
+#define app_load_config_bio _bsd_openssl_app_load_config_bio
+#define app_load_config_quiet _bsd_openssl_app_load_config_quiet
+#define app_load_modules _bsd_openssl_app_load_modules
+#define app_malloc _bsd_openssl_app_malloc
+#define app_passwd _bsd_openssl_app_passwd
+#define app_tminterval _bsd_openssl_app_tminterval
+#define bio_open_default _bsd_openssl_bio_open_default
+#define bio_open_default_quiet _bsd_openssl_bio_open_default_quiet
+#define bio_open_owner _bsd_openssl_bio_open_owner
+#define bio_to_mem _bsd_openssl_bio_to_mem
+#define chopup_args _bsd_openssl_chopup_args
+#define copy_extensions _bsd_openssl_copy_extensions
+#define corrupt_signature _bsd_openssl_corrupt_signature
+#define ctx_set_ctlog_list_file _bsd_openssl_ctx_set_ctlog_list_file
+#define ctx_set_verify_locations _bsd_openssl_ctx_set_verify_locations
+#define destroy_prefix_method _bsd_openssl_destroy_prefix_method
+#define destroy_ui_method _bsd_openssl_destroy_ui_method
+#define dump_cert_text _bsd_openssl_dump_cert_text
+#define dup_bio_err _bsd_openssl_dup_bio_err
+#define dup_bio_in _bsd_openssl_dup_bio_in
+#define dup_bio_out _bsd_openssl_dup_bio_out
+#define fileno_stdin _bsd_openssl_fileno_stdin
+#define fileno_stdout _bsd_openssl_fileno_stdout
+#define free_index _bsd_openssl_free_index
+#define get_nameopt _bsd_openssl_get_nameopt
+#define get_ui_method _bsd_openssl_get_ui_method
+#define index_index _bsd_openssl_index_index
+#define index_name_cmp _bsd_openssl_index_name_cmp
+#define load_cert _bsd_openssl_load_cert
+#define load_certs _bsd_openssl_load_certs
+#define load_crl _bsd_openssl_load_crl
+#define load_crls _bsd_openssl_load_crls
+#define load_index _bsd_openssl_load_index
+#define load_key _bsd_openssl_load_key
+#define load_pubkey _bsd_openssl_load_pubkey
+#define load_serial _bsd_openssl_load_serial
+#define make_uppercase _bsd_openssl_make_uppercase
+#define next_protos_parse _bsd_openssl_next_protos_parse
+#define parse_name _bsd_openssl_parse_name
+#define parse_yesno _bsd_openssl_parse_yesno
+#define password_callback _bsd_openssl_password_callback
+#define pkey_ctrl_string _bsd_openssl_pkey_ctrl_string
+#define policies_print _bsd_openssl_policies_print
+#define print_array _bsd_openssl_print_array
+#define print_bignum_var _bsd_openssl_print_bignum_var
+#define print_cert_checks _bsd_openssl_print_cert_checks
+#define print_name _bsd_openssl_print_name
+#define rand_serial _bsd_openssl_rand_serial
+#define raw_read_stdin _bsd_openssl_raw_read_stdin
+#define raw_write_stdout _bsd_openssl_raw_write_stdout
+#define release_engine _bsd_openssl_release_engine
+#define rotate_index _bsd_openssl_rotate_index
+#define rotate_serial _bsd_openssl_rotate_serial
+#define save_index _bsd_openssl_save_index
+#define save_serial _bsd_openssl_save_serial
+#define set_cert_ex _bsd_openssl_set_cert_ex
+#define set_cert_times _bsd_openssl_set_cert_times
+#define set_ext_copy _bsd_openssl_set_ext_copy
+#define set_name_ex _bsd_openssl_set_name_ex
+#define set_nameopt _bsd_openssl_set_nameopt
+#define setup_engine _bsd_openssl_setup_engine
+#define setup_ui_method _bsd_openssl_setup_ui_method
+#define setup_verify _bsd_openssl_setup_verify
+#define store_setup_crl_download _bsd_openssl_store_setup_crl_download
+#define unbuffer _bsd_openssl_unbuffer
+#define wait_for_async _bsd_openssl_wait_for_async
+/* asn1pars.c */
+#define asn1parse_main _bsd_openssl_asn1parse_main
+/* bf_prefix.c */
+#define apps_bf_prefix _bsd_openssl_apps_bf_prefix
+/* ca.c */
+#define ca_main _bsd_openssl_ca_main
+#define unpack_revinfo _bsd_openssl_unpack_revinfo
+/* ciphers.c */
+#define ciphers_main _bsd_openssl_ciphers_main
+/* cms.c */
+#define cms_main _bsd_openssl_cms_main
+/* crl2p7.c */
+#define crl2pkcs7_main _bsd_openssl_crl2pkcs7_main
+/* crl.c */
+#define crl_main _bsd_openssl_crl_main
+/* dgst.c */
+#define dgst_main _bsd_openssl_dgst_main
+#define do_fp _bsd_openssl_do_fp
+/* dhparam.c */
+#define dhparam_main _bsd_openssl_dhparam_main
+/* dsa.c */
+#define dsa_main _bsd_openssl_dsa_main
+/* dsaparam.c */
+#define dsaparam_main _bsd_openssl_dsaparam_main
+/* ec.c */
+#define ec_main _bsd_openssl_ec_main
+/* ecparam.c */
+#define ecparam_main _bsd_openssl_ecparam_main
+/* enc.c */
+#define enc_main _bsd_openssl_enc_main
+/* engine.c */
+#define engine_main _bsd_openssl_engine_main
+/* errstr.c */
+#define errstr_main _bsd_openssl_errstr_main
+/* gendsa.c */
+#define gendsa_main _bsd_openssl_gendsa_main
+/* genpkey.c */
+#define genpkey_main _bsd_openssl_genpkey_main
+#define init_gen_str _bsd_openssl_init_gen_str
+/* genrsa.c */
+#define genrsa_main _bsd_openssl_genrsa_main
+/* nseq.c */
+#define nseq_main _bsd_openssl_nseq_main
+/* ocsp.c */
+#define ocsp_main _bsd_openssl_ocsp_main
+#define process_responder _bsd_openssl_process_responder
+/* openssl.c */
+#define bio_err _bsd_openssl_bio_err
+#define bio_in _bsd_openssl_bio_in
+#define bio_out _bsd_openssl_bio_out
+#define default_config_file _bsd_openssl_default_config_file
+#define help_main _bsd_openssl_help_main
+#define list_main _bsd_openssl_list_main
+/* opt.c */
+#define opt_arg _bsd_openssl_opt_arg
+#define opt_cipher _bsd_openssl_opt_cipher
+#define opt_flag _bsd_openssl_opt_flag
+#define opt_format _bsd_openssl_opt_format
+#define opt_format_error _bsd_openssl_opt_format_error
+#define opt_getprog _bsd_openssl_opt_getprog
+#define opt_help _bsd_openssl_opt_help
+#define opt_imax _bsd_openssl_opt_imax
+#define opt_init _bsd_openssl_opt_init
+#define opt_int _bsd_openssl_opt_int
+#define opt_long _bsd_openssl_opt_long
+#define opt_md _bsd_openssl_opt_md
+#define opt_next _bsd_openssl_opt_next
+#define opt_num_rest _bsd_openssl_opt_num_rest
+#define opt_pair _bsd_openssl_opt_pair
+#define opt_progname _bsd_openssl_opt_progname
+#define opt_rest _bsd_openssl_opt_rest
+#define opt_ulong _bsd_openssl_opt_ulong
+#define opt_umax _bsd_openssl_opt_umax
+#define opt_unknown _bsd_openssl_opt_unknown
+#define opt_verify _bsd_openssl_opt_verify
+/* passwd.c */
+#define passwd_main _bsd_openssl_passwd_main
+/* pkcs12.c */
+#define cert_load _bsd_openssl_cert_load
+#define dump_certs_keys_p12 _bsd_openssl_dump_certs_keys_p12
+#define dump_certs_pkeys_bag _bsd_openssl_dump_certs_pkeys_bag
+#define dump_certs_pkeys_bags _bsd_openssl_dump_certs_pkeys_bags
+#define hex_prin _bsd_openssl_hex_prin
+#define pkcs12_main _bsd_openssl_pkcs12_main
+#define print_attribs _bsd_openssl_print_attribs
+/* pkcs7.c */
+#define pkcs7_main _bsd_openssl_pkcs7_main
+/* pkcs8.c */
+#define pkcs8_main _bsd_openssl_pkcs8_main
+/* pkey.c */
+#define pkey_main _bsd_openssl_pkey_main
+/* pkeyparam.c */
+#define pkeyparam_main _bsd_openssl_pkeyparam_main
+/* pkeyutl.c */
+#define pkeyutl_main _bsd_openssl_pkeyutl_main
+/* prime.c */
+#define prime_main _bsd_openssl_prime_main
+/* rand.c */
+#define rand_main _bsd_openssl_rand_main
+/* rehash.c */
+#define rehash_main _bsd_openssl_rehash_main
+/* req.c */
+#define do_X509_CRL_sign _bsd_openssl_do_X509_CRL_sign
+#define do_X509_REQ_sign _bsd_openssl_do_X509_REQ_sign
+#define do_X509_sign _bsd_openssl_do_X509_sign
+#define req_main _bsd_openssl_req_main
+/* rsa.c */
+#define rsa_main _bsd_openssl_rsa_main
+/* rsautl.c */
+#define rsautl_main _bsd_openssl_rsautl_main
+/* s_cb.c */
+#define apps_ssl_info_callback _bsd_openssl_apps_ssl_info_callback
+#define args_excert _bsd_openssl_args_excert
+#define bio_dump_callback _bsd_openssl_bio_dump_callback
+#define config_ctx _bsd_openssl_config_ctx
+#define generate_cookie_callback _bsd_openssl_generate_cookie_callback
+#define generate_stateless_cookie_callback _bsd_openssl_generate_stateless_cookie_callback
+#define load_excert _bsd_openssl_load_excert
+#define msg_cb _bsd_openssl_msg_cb
+#define print_ca_names _bsd_openssl_print_ca_names
+#define print_ssl_summary _bsd_openssl_print_ssl_summary
+#define print_verify_detail _bsd_openssl_print_verify_detail
+#define set_cert_key_stuff _bsd_openssl_set_cert_key_stuff
+#define set_cert_stuff _bsd_openssl_set_cert_stuff
+#define set_keylog_file _bsd_openssl_set_keylog_file
+#define ssl_ctx_add_crls _bsd_openssl_ssl_ctx_add_crls
+#define ssl_ctx_security_debug _bsd_openssl_ssl_ctx_security_debug
+#define ssl_ctx_set_excert _bsd_openssl_ssl_ctx_set_excert
+#define ssl_excert_free _bsd_openssl_ssl_excert_free
+#define ssl_load_stores _bsd_openssl_ssl_load_stores
+#define ssl_print_groups _bsd_openssl_ssl_print_groups
+#define ssl_print_point_formats _bsd_openssl_ssl_print_point_formats
+#define ssl_print_sigalgs _bsd_openssl_ssl_print_sigalgs
+#define ssl_print_tmp_key _bsd_openssl_ssl_print_tmp_key
+#define tlsext_cb _bsd_openssl_tlsext_cb
+#define verify_args _bsd_openssl_verify_args
+#define verify_callback _bsd_openssl_verify_callback
+#define verify_cookie_callback _bsd_openssl_verify_cookie_callback
+#define verify_stateless_cookie_callback _bsd_openssl_verify_stateless_cookie_callback
+/* s_client.c */
+#define s_client_main _bsd_openssl_s_client_main
+/* sess_id.c */
+#define sess_id_main _bsd_openssl_sess_id_main
+/* smime.c */
+#define smime_main _bsd_openssl_smime_main
+/* speed.c */
+#define get_dsa _bsd_openssl_get_dsa
+#define speed_main _bsd_openssl_speed_main
+/* spkac.c */
+#define spkac_main _bsd_openssl_spkac_main
+/* srp.c */
+#define srp_main _bsd_openssl_srp_main
+/* s_server.c */
+#define psk_key _bsd_openssl_psk_key
+#define s_server_main _bsd_openssl_s_server_main
+/* s_socket.c */
+#define do_server _bsd_openssl_do_server
+#define init_client _bsd_openssl_init_client
+#define ourpeer _bsd_openssl_ourpeer
+/* s_time.c */
+#define s_time_main _bsd_openssl_s_time_main
+/* storeutl.c */
+#define storeutl_main _bsd_openssl_storeutl_main
+/* ts.c */
+#define ts_main _bsd_openssl_ts_main
+/* verify.c */
+#define verify_main _bsd_openssl_verify_main
+/* version.c */
+#define version_main _bsd_openssl_version_main
+/* x509.c */
+#define x509_main _bsd_openssl_x509_main
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-nseq-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-nseq-data.h
new file mode 100644
index 00000000..3162ed45
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-nseq-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* nseq.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ocsp-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ocsp-data.h
new file mode 100644
index 00000000..2c2b926e
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ocsp-data.h
@@ -0,0 +1,8 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* ocsp.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *prog);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int acfd);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int multi);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int termsig);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-openssl-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-openssl-data.h
new file mode 100644
index 00000000..68e01a45
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-openssl-data.h
@@ -0,0 +1,7 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* openssl.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static FUNCTION functions[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int prog_inited);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static struct lhash_st_FUNCTION *ret);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-opt-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-opt-data.h
new file mode 100644
index 00000000..fcd604a2
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-opt-data.h
@@ -0,0 +1,14 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* opt.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static OPTIONS const *opts);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static OPTIONS const *unknown);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static OPT_PAIR formats[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char **argv);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *arg);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *dunno);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *flag);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char prog[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int argc);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int opt_index);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-passwd-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-passwd-data.h
new file mode 100644
index 00000000..cb4302b6
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-passwd-data.h
@@ -0,0 +1,5 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* passwd.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *passwds_static[]);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs12-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs12-data.h
new file mode 100644
index 00000000..cfc082d9
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs12-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* pkcs12.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs7-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs7-data.h
new file mode 100644
index 00000000..5a5f2765
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs7-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* pkcs7.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs8-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs8-data.h
new file mode 100644
index 00000000..34c2f20d
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkcs8-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* pkcs8.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkey-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkey-data.h
new file mode 100644
index 00000000..828c195c
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkey-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* pkey.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkeyparam-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkeyparam-data.h
new file mode 100644
index 00000000..dd63662a
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkeyparam-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* pkeyparam.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkeyutl-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkeyutl-data.h
new file mode 100644
index 00000000..28895574
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-pkeyutl-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* pkeyutl.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-prime-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-prime-data.h
new file mode 100644
index 00000000..665f9259
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-prime-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* prime.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rand-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rand-data.h
new file mode 100644
index 00000000..19df25f4
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rand-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* rand.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rehash-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rehash-data.h
new file mode 100644
index 00000000..6dd60793
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rehash-data.h
@@ -0,0 +1,13 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* rehash.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static BUCKET *hash_table[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static BUCKET nilbucket);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static EVP_MD const *evpmd);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static HENTRY nilhentry);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char const *extensions[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char const *suffixes[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int evpmdsize);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int remove_links);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int verbose);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-req-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-req-data.h
new file mode 100644
index 00000000..ad6fc0d7
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-req-data.h
@@ -0,0 +1,7 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* req.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static CONF *addext_conf);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static CONF *req_conf);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int batch);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rsa-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rsa-data.h
new file mode 100644
index 00000000..64192574
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rsa-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* rsa.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rsautl-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rsautl-data.h
new file mode 100644
index 00000000..54574fe1
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-rsautl-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* rsautl.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_cb-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_cb-data.h
new file mode 100644
index 00000000..a3d76b54
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_cb-data.h
@@ -0,0 +1,15 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* s_cb.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static BIO *bio_keylog);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static STRINT_PAIR alert_types[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static STRINT_PAIR callback_types[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static STRINT_PAIR cert_type_list[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static STRINT_PAIR chain_flags[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static STRINT_PAIR handshakes[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static STRINT_PAIR ssl_versions[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static STRINT_PAIR tlsext_types[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int cookie_initialized);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int retry_cnt);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char cookie_secret[]);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_client-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_client-data.h
new file mode 100644
index 00000000..807aae08
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_client-data.h
@@ -0,0 +1,21 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* s_client.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static BIO *bio_c_out);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static SSL_SESSION *psksess);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *keymatexportlabel);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *prog);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *psk_identity);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *sess_out);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int c_debug);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int c_quiet);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int c_showcerts);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int keymatexportlen);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int saved_errno);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static struct tlsa_field tlsa_fields[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static tlsextnextprotoctx next_proto);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static uint8_t mtype);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static uint8_t selector);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static uint8_t usage);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char *data);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_server-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_server-data.h
new file mode 100644
index 00000000..fe55aaa6
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_server-data.h
@@ -0,0 +1,35 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* s_server.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static BIO *bio_s_msg);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static BIO *bio_s_out);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static SSL_CTX *ctx);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static SSL_CTX *ctx2);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static SSL_SESSION *psksess);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char **local_argv);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *keymatexportlabel);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *psk_identity);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char const *session_id_prefix);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int accept_socket);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int async);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int dtlslisten);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int early_data);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int enable_timeouts);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int keymatexportlen);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int local_argc);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int s_brief);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int s_crlf);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int s_debug);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int s_ign_eof);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int s_msg);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int s_nbio);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int s_nbio_test);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int s_quiet);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int s_tlsextdebug);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int stateless);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int www);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static long int socket_mtu);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static simple_ssl_session *first);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static srpsrvparm srp_callback_parm);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static tlsextstatusctx tlscstatp);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_socket-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_socket-data.h
new file mode 100644
index 00000000..a4f18aa5
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_socket-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* s_socket.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_time-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_time-data.h
new file mode 100644
index 00000000..1ab19964
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-s_time-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* s_time.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-sess_id-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-sess_id-data.h
new file mode 100644
index 00000000..48f1ebc3
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-sess_id-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* sess_id.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-smime-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-smime-data.h
new file mode 100644
index 00000000..b6dd416b
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-smime-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* smime.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-speed-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-speed-data.h
new file mode 100644
index 00000000..9d7a8042
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-speed-data.h
@@ -0,0 +1,58 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* speed.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static AES_KEY aes_ks1);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static AES_KEY aes_ks2);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static AES_KEY aes_ks3);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static DES_key_schedule sch);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static DES_key_schedule sch2);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static DES_key_schedule sch3);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static EVP_MD const *evp_md);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static OPT_PAIR ecdsa_choices[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static OPT_PAIR eddsa_choices[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static RC4_KEY rc4_ks);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char const *names[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static double dsa_results[][2]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static double ecdh_results[][1]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static double ecdsa_results[][2]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static double eddsa_results[][2]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static double results[][6]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static double rsa_results[][2]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int const *lengths);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int decrypt);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int mr);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int usertime);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int volatile run);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static long int c[][6]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static long int dsa_c[][2]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static long int ecdh_c[][1]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static long int ecdsa_c[][2]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static long int eddsa_c[][2]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static long int rsa_c[][2]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static long int save_count);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char DES_iv[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa1024_g[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa1024_p[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa1024_priv[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa1024_pub[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa1024_q[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa2048_g[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa2048_p[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa2048_priv[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa2048_pub[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa2048_q[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa512_g[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa512_p[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa512_priv[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa512_pub[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char dsa512_q[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char iv[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char test1024[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char test15360[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char test2048[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char test3072[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char test4096[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char test512[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned char test7680[]);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static unsigned int testnum);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-spkac-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-spkac-data.h
new file mode 100644
index 00000000..6e7afc6e
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-spkac-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* spkac.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-srp-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-srp-data.h
new file mode 100644
index 00000000..27572477
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-srp-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* srp.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ts-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ts-data.h
new file mode 100644
index 00000000..23ff542a
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-ts-data.h
@@ -0,0 +1,5 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* ts.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static char *opt_helplist[]);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-verify-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-verify-data.h
new file mode 100644
index 00000000..9d032a1f
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-verify-data.h
@@ -0,0 +1,6 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* verify.c */
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int v_verbose);
+RTEMS_LINKER_RWSET_CONTENT(bsd_prog_openssl, static int vflags);
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-version-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-version-data.h
new file mode 100644
index 00000000..8289879e
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-version-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* version.c */
diff --git a/freebsd/crypto/openssl/apps/rtems-bsd-openssl-x509-data.h b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-x509-data.h
new file mode 100644
index 00000000..0deee10d
--- /dev/null
+++ b/freebsd/crypto/openssl/apps/rtems-bsd-openssl-x509-data.h
@@ -0,0 +1,4 @@
+/* generated by userspace-header-gen.py */
+#include <rtems/linkersets.h>
+#include "rtems-bsd-openssl-data.h"
+/* x509.c */
diff --git a/freebsd/crypto/openssl/apps/s_cb.c b/freebsd/crypto/openssl/apps/s_cb.c
index ace2df34..24a99304 100644
--- a/freebsd/crypto/openssl/apps/s_cb.c
+++ b/freebsd/crypto/openssl/apps/s_cb.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -834,6 +838,9 @@ static void print_chain_flags(SSL *s, int flags)
BIO_printf(bio_err, "not tested\n");
}
+#ifdef __rtems__
+ static int retry_cnt;
+#endif /* __rtems__ */
/*
* Very basic selection callback: just use any certificate chain reported as
* valid. More sophisticated could prioritise according to local policy.
@@ -843,7 +850,9 @@ static int set_cert_cb(SSL *ssl, void *arg)
int i, rv;
SSL_EXCERT *exc = arg;
#ifdef CERT_CB_TEST_RETRY
+#ifndef __rtems__
static int retry_cnt;
+#endif /* __rtems__ */
if (retry_cnt < 5) {
retry_cnt++;
BIO_printf(bio_err,
@@ -1481,3 +1490,6 @@ void print_ca_names(BIO *bio, SSL *s)
BIO_write(bio, "\n", 1);
}
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-s_cb-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/s_client.c b/freebsd/crypto/openssl/apps/s_client.c
index 2c08d94d..40512c5e 100644
--- a/freebsd/crypto/openssl/apps/s_client.c
+++ b/freebsd/crypto/openssl/apps/s_client.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -503,9 +507,23 @@ struct tlsa_field {
ossl_ssize_t (*parser)(const char **, void *);
};
+#ifdef __rtems__
+static uint8_t usage;
+static uint8_t selector;
+static uint8_t mtype;
+static unsigned char *data;
+static struct tlsa_field tlsa_fields[] = {
+ { &usage, "usage", checked_uint8 },
+ { &selector, "selector", checked_uint8 },
+ { &mtype, "mtype", checked_uint8 },
+ { &data, "data", hexdecode },
+ { NULL, }
+};
+#endif /* __rtems__ */
static int tlsa_import_rr(SSL *con, const char *rrdata)
{
/* Not necessary to re-init these values; the "parsers" do that. */
+#ifndef __rtems__
static uint8_t usage;
static uint8_t selector;
static uint8_t mtype;
@@ -517,6 +535,7 @@ static int tlsa_import_rr(SSL *con, const char *rrdata)
{ &data, "data", hexdecode },
{ NULL, }
};
+#endif /* __rtems__ */
struct tlsa_field *f;
int ret;
const char *cp = rrdata;
@@ -2615,6 +2634,9 @@ int s_client_main(int argc, char **argv)
case PROTO_LDAP:
{
/* StartTLS Operation according to RFC 4511 */
+#ifdef __rtems__
+ const
+#endif /* __rtems__ */
static char ldap_tls_genconf[] = "asn1=SEQUENCE:LDAPMessage\n"
"[LDAPMessage]\n"
"messageID=INTEGER:1\n"
@@ -2931,6 +2953,9 @@ int s_client_main(int argc, char **argv)
} else if (ssl_pending || FD_ISSET(SSL_get_fd(con), &readfds)) {
#ifdef RENEG
{
+#ifdef __rtems__
+#error FIXME: Make a global static variable out of this.
+#endif /* __rtems__ */
static int iiii;
if (++iiii == 52) {
SSL_renegotiate(con);
@@ -3462,3 +3487,6 @@ static int ldap_ExtendedResponse_parse(const char *buf, long rem)
}
#endif /* OPENSSL_NO_SOCK */
+#ifdef __rtems__
+#include "rtems-bsd-openssl-s_client-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/s_server.c b/freebsd/crypto/openssl/apps/s_server.c
index acf9a7af..5461ac6a 100644
--- a/freebsd/crypto/openssl/apps/s_server.c
+++ b/freebsd/crypto/openssl/apps/s_server.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -2557,6 +2561,9 @@ static int sv_body(int s, int stype, int prot, unsigned char *context)
for (;;) {
/* should do a select for the write */
#ifdef RENEG
+#ifdef __rtems__
+#error FIXME: Make a global static variable out of this.
+#endif /* __rtems__ */
static count = 0;
if (++count == 100) {
count = 0;
@@ -3275,6 +3282,9 @@ static int www_body(int s, int stype, int prot, unsigned char *context)
for (j = 0; j < i;) {
#ifdef RENEG
+#ifdef __rtems__
+#error FIXME: Make a global static variable out of this.
+#endif /* __rtems__ */
static count = 0;
if (++count == 13) {
SSL_renegotiate(con);
@@ -3615,3 +3625,6 @@ static void free_sessions(void)
}
#endif /* OPENSSL_NO_SOCK */
+#ifdef __rtems__
+#include "rtems-bsd-openssl-s_server-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/s_socket.c b/freebsd/crypto/openssl/apps/s_socket.c
index 497eb290..1402f513 100644
--- a/freebsd/crypto/openssl/apps/s_socket.c
+++ b/freebsd/crypto/openssl/apps/s_socket.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -395,3 +399,6 @@ int do_server(int *accept_sock, const char *host, const char *port,
}
#endif /* OPENSSL_NO_SOCK */
+#ifdef __rtems__
+#include "rtems-bsd-openssl-s_socket-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/s_time.c b/freebsd/crypto/openssl/apps/s_time.c
index e807cb38..ac0b1998 100644
--- a/freebsd/crypto/openssl/apps/s_time.c
+++ b/freebsd/crypto/openssl/apps/s_time.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -405,3 +409,6 @@ static SSL *doConnection(SSL *scon, const char *host, SSL_CTX *ctx)
return serverCon;
}
#endif /* OPENSSL_NO_SOCK */
+#ifdef __rtems__
+#include "rtems-bsd-openssl-s_time-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/sess_id.c b/freebsd/crypto/openssl/apps/sess_id.c
index 537fdab4..212e8dac 100644
--- a/freebsd/crypto/openssl/apps/sess_id.c
+++ b/freebsd/crypto/openssl/apps/sess_id.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -191,3 +195,6 @@ static SSL_SESSION *load_sess_id(char *infile, int format)
BIO_free(in);
return x;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-sess_id-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/smime.c b/freebsd/crypto/openssl/apps/smime.c
index 0b96a717..40ddedc6 100644
--- a/freebsd/crypto/openssl/apps/smime.c
+++ b/freebsd/crypto/openssl/apps/smime.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -647,3 +651,6 @@ static int smime_cb(int ok, X509_STORE_CTX *ctx)
return ok;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-smime-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/speed.c b/freebsd/crypto/openssl/apps/speed.c
index 10cabd0e..989d8923 100644
--- a/freebsd/crypto/openssl/apps/speed.c
+++ b/freebsd/crypto/openssl/apps/speed.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -33,6 +37,9 @@
#if !defined(OPENSSL_SYS_MSDOS)
# include OPENSSL_UNISTD
#endif
+#ifdef __rtems__
+#undef SIGALRM
+#endif /* __rtems__ */
#if defined(_WIN32)
# include <windows.h>
@@ -1455,12 +1462,21 @@ int speed_main(int argc, char **argv)
CAMELLIA_KEY camellia_ks1, camellia_ks2, camellia_ks3;
#endif
#ifndef OPENSSL_NO_DES
+ #ifdef __rtems__
+ const
+ #endif /* __rtems__ */
static DES_cblock key = {
0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0
};
+ #ifdef __rtems__
+ const
+ #endif /* __rtems__ */
static DES_cblock key2 = {
0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12
};
+ #ifdef __rtems__
+ const
+ #endif /* __rtems__ */
static DES_cblock key3 = {
0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x12, 0x34
};
@@ -3442,6 +3458,9 @@ static int do_multi(int multi, int size_num)
int n;
int fd[2];
int *fds;
+#ifdef __rtems__
+ const
+#endif /* __rtems__ */
static char sep[] = ":";
fds = app_malloc(sizeof(*fds) * multi, "fd buffer for do_multi");
@@ -3691,3 +3710,6 @@ static void multiblock_speed(const EVP_CIPHER *evp_cipher, int lengths_single,
OPENSSL_free(out);
EVP_CIPHER_CTX_free(ctx);
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-speed-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/spkac.c b/freebsd/crypto/openssl/apps/spkac.c
index a235bfc0..c184ee6b 100644
--- a/freebsd/crypto/openssl/apps/spkac.c
+++ b/freebsd/crypto/openssl/apps/spkac.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -202,3 +206,6 @@ int spkac_main(int argc, char **argv)
OPENSSL_free(passin);
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-spkac-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/srp.c b/freebsd/crypto/openssl/apps/srp.c
index 0c7dad72..06551c74 100644
--- a/freebsd/crypto/openssl/apps/srp.c
+++ b/freebsd/crypto/openssl/apps/srp.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -613,3 +617,6 @@ int srp_main(int argc, char **argv)
return ret;
}
#endif
+#ifdef __rtems__
+#include "rtems-bsd-openssl-srp-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/storeutl.c b/freebsd/crypto/openssl/apps/storeutl.c
deleted file mode 100644
index fdbd1511..00000000
--- a/freebsd/crypto/openssl/apps/storeutl.c
+++ /dev/null
@@ -1,475 +0,0 @@
-#include <machine/rtems-bsd-user-space.h>
-
-/*
- * Copyright 2016-2018 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
- */
-
-#include <openssl/opensslconf.h>
-
-#include "apps.h"
-#include "progs.h"
-#include <openssl/err.h>
-#include <openssl/pem.h>
-#include <openssl/store.h>
-#include <openssl/x509v3.h> /* s2i_ASN1_INTEGER */
-
-static int process(const char *uri, const UI_METHOD *uimeth, PW_CB_DATA *uidata,
- int expected, int criterion, OSSL_STORE_SEARCH *search,
- int text, int noout, int recursive, int indent, BIO *out,
- const char *prog);
-
-typedef enum OPTION_choice {
- OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_ENGINE, OPT_OUT, OPT_PASSIN,
- OPT_NOOUT, OPT_TEXT, OPT_RECURSIVE,
- OPT_SEARCHFOR_CERTS, OPT_SEARCHFOR_KEYS, OPT_SEARCHFOR_CRLS,
- OPT_CRITERION_SUBJECT, OPT_CRITERION_ISSUER, OPT_CRITERION_SERIAL,
- OPT_CRITERION_FINGERPRINT, OPT_CRITERION_ALIAS,
- OPT_MD
-} OPTION_CHOICE;
-
-const OPTIONS storeutl_options[] = {
- {OPT_HELP_STR, 1, '-', "Usage: %s [options] uri\nValid options are:\n"},
- {"help", OPT_HELP, '-', "Display this summary"},
- {"out", OPT_OUT, '>', "Output file - default stdout"},
- {"passin", OPT_PASSIN, 's', "Input file pass phrase source"},
- {"text", OPT_TEXT, '-', "Print a text form of the objects"},
- {"noout", OPT_NOOUT, '-', "No PEM output, just status"},
- {"certs", OPT_SEARCHFOR_CERTS, '-', "Search for certificates only"},
- {"keys", OPT_SEARCHFOR_KEYS, '-', "Search for keys only"},
- {"crls", OPT_SEARCHFOR_CRLS, '-', "Search for CRLs only"},
- {"subject", OPT_CRITERION_SUBJECT, 's', "Search by subject"},
- {"issuer", OPT_CRITERION_ISSUER, 's', "Search by issuer and serial, issuer name"},
- {"serial", OPT_CRITERION_SERIAL, 's', "Search by issuer and serial, serial number"},
- {"fingerprint", OPT_CRITERION_FINGERPRINT, 's', "Search by public key fingerprint, given in hex"},
- {"alias", OPT_CRITERION_ALIAS, 's', "Search by alias"},
- {"", OPT_MD, '-', "Any supported digest"},
-#ifndef OPENSSL_NO_ENGINE
- {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
-#endif
- {"r", OPT_RECURSIVE, '-', "Recurse through names"},
- {NULL}
-};
-
-int storeutl_main(int argc, char *argv[])
-{
- int ret = 1, noout = 0, text = 0, recursive = 0;
- char *outfile = NULL, *passin = NULL, *passinarg = NULL;
- BIO *out = NULL;
- ENGINE *e = NULL;
- OPTION_CHOICE o;
- char *prog = opt_init(argc, argv, storeutl_options);
- PW_CB_DATA pw_cb_data;
- int expected = 0;
- int criterion = 0;
- X509_NAME *subject = NULL, *issuer = NULL;
- ASN1_INTEGER *serial = NULL;
- unsigned char *fingerprint = NULL;
- size_t fingerprintlen = 0;
- char *alias = NULL;
- OSSL_STORE_SEARCH *search = NULL;
- const EVP_MD *digest = NULL;
-
- while ((o = opt_next()) != OPT_EOF) {
- switch (o) {
- case OPT_EOF:
- case OPT_ERR:
- opthelp:
- BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
- goto end;
- case OPT_HELP:
- opt_help(storeutl_options);
- ret = 0;
- goto end;
- case OPT_OUT:
- outfile = opt_arg();
- break;
- case OPT_PASSIN:
- passinarg = opt_arg();
- break;
- case OPT_NOOUT:
- noout = 1;
- break;
- case OPT_TEXT:
- text = 1;
- break;
- case OPT_RECURSIVE:
- recursive = 1;
- break;
- case OPT_SEARCHFOR_CERTS:
- case OPT_SEARCHFOR_KEYS:
- case OPT_SEARCHFOR_CRLS:
- if (expected != 0) {
- BIO_printf(bio_err, "%s: only one search type can be given.\n",
- prog);
- goto end;
- }
- {
- static const struct {
- enum OPTION_choice choice;
- int type;
- } map[] = {
- {OPT_SEARCHFOR_CERTS, OSSL_STORE_INFO_CERT},
- {OPT_SEARCHFOR_KEYS, OSSL_STORE_INFO_PKEY},
- {OPT_SEARCHFOR_CRLS, OSSL_STORE_INFO_CRL},
- };
- size_t i;
-
- for (i = 0; i < OSSL_NELEM(map); i++) {
- if (o == map[i].choice) {
- expected = map[i].type;
- break;
- }
- }
- /*
- * If expected wasn't set at this point, it means the map
- * isn't syncronised with the possible options leading here.
- */
- OPENSSL_assert(expected != 0);
- }
- break;
- case OPT_CRITERION_SUBJECT:
- if (criterion != 0) {
- BIO_printf(bio_err, "%s: criterion already given.\n",
- prog);
- goto end;
- }
- criterion = OSSL_STORE_SEARCH_BY_NAME;
- if (subject != NULL) {
- BIO_printf(bio_err, "%s: subject already given.\n",
- prog);
- goto end;
- }
- if ((subject = parse_name(opt_arg(), MBSTRING_UTF8, 1)) == NULL) {
- BIO_printf(bio_err, "%s: can't parse subject argument.\n",
- prog);
- goto end;
- }
- break;
- case OPT_CRITERION_ISSUER:
- if (criterion != 0
- || (criterion == OSSL_STORE_SEARCH_BY_ISSUER_SERIAL
- && issuer != NULL)) {
- BIO_printf(bio_err, "%s: criterion already given.\n",
- prog);
- goto end;
- }
- criterion = OSSL_STORE_SEARCH_BY_ISSUER_SERIAL;
- if (issuer != NULL) {
- BIO_printf(bio_err, "%s: issuer already given.\n",
- prog);
- goto end;
- }
- if ((issuer = parse_name(opt_arg(), MBSTRING_UTF8, 1)) == NULL) {
- BIO_printf(bio_err, "%s: can't parse issuer argument.\n",
- prog);
- goto end;
- }
- break;
- case OPT_CRITERION_SERIAL:
- if (criterion != 0
- || (criterion == OSSL_STORE_SEARCH_BY_ISSUER_SERIAL
- && serial != NULL)) {
- BIO_printf(bio_err, "%s: criterion already given.\n",
- prog);
- goto end;
- }
- criterion = OSSL_STORE_SEARCH_BY_ISSUER_SERIAL;
- if (serial != NULL) {
- BIO_printf(bio_err, "%s: serial number already given.\n",
- prog);
- goto end;
- }
- if ((serial = s2i_ASN1_INTEGER(NULL, opt_arg())) == NULL) {
- BIO_printf(bio_err, "%s: can't parse serial number argument.\n",
- prog);
- goto end;
- }
- break;
- case OPT_CRITERION_FINGERPRINT:
- if (criterion != 0
- || (criterion == OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT
- && fingerprint != NULL)) {
- BIO_printf(bio_err, "%s: criterion already given.\n",
- prog);
- goto end;
- }
- criterion = OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT;
- if (fingerprint != NULL) {
- BIO_printf(bio_err, "%s: fingerprint already given.\n",
- prog);
- goto end;
- }
- {
- long tmplen = 0;
-
- if ((fingerprint = OPENSSL_hexstr2buf(opt_arg(), &tmplen))
- == NULL) {
- BIO_printf(bio_err,
- "%s: can't parse fingerprint argument.\n",
- prog);
- goto end;
- }
- fingerprintlen = (size_t)tmplen;
- }
- break;
- case OPT_CRITERION_ALIAS:
- if (criterion != 0) {
- BIO_printf(bio_err, "%s: criterion already given.\n",
- prog);
- goto end;
- }
- criterion = OSSL_STORE_SEARCH_BY_ALIAS;
- if (alias != NULL) {
- BIO_printf(bio_err, "%s: alias already given.\n",
- prog);
- goto end;
- }
- if ((alias = OPENSSL_strdup(opt_arg())) == NULL) {
- BIO_printf(bio_err, "%s: can't parse alias argument.\n",
- prog);
- goto end;
- }
- break;
- case OPT_ENGINE:
- e = setup_engine(opt_arg(), 0);
- break;
- case OPT_MD:
- if (!opt_md(opt_unknown(), &digest))
- goto opthelp;
- }
- }
- argc = opt_num_rest();
- argv = opt_rest();
-
- if (argc == 0) {
- BIO_printf(bio_err, "%s: No URI given, nothing to do...\n", prog);
- goto opthelp;
- }
- if (argc > 1) {
- BIO_printf(bio_err, "%s: Unknown extra parameters after URI\n", prog);
- goto opthelp;
- }
-
- if (criterion != 0) {
- switch (criterion) {
- case OSSL_STORE_SEARCH_BY_NAME:
- if ((search = OSSL_STORE_SEARCH_by_name(subject)) == NULL) {
- ERR_print_errors(bio_err);
- goto end;
- }
- break;
- case OSSL_STORE_SEARCH_BY_ISSUER_SERIAL:
- if (issuer == NULL || serial == NULL) {
- BIO_printf(bio_err,
- "%s: both -issuer and -serial must be given.\n",
- prog);
- goto end;
- }
- if ((search = OSSL_STORE_SEARCH_by_issuer_serial(issuer, serial))
- == NULL) {
- ERR_print_errors(bio_err);
- goto end;
- }
- break;
- case OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT:
- if ((search = OSSL_STORE_SEARCH_by_key_fingerprint(digest,
- fingerprint,
- fingerprintlen))
- == NULL) {
- ERR_print_errors(bio_err);
- goto end;
- }
- break;
- case OSSL_STORE_SEARCH_BY_ALIAS:
- if ((search = OSSL_STORE_SEARCH_by_alias(alias)) == NULL) {
- ERR_print_errors(bio_err);
- goto end;
- }
- break;
- }
- }
-
- if (!app_passwd(passinarg, NULL, &passin, NULL)) {
- BIO_printf(bio_err, "Error getting passwords\n");
- goto end;
- }
- pw_cb_data.password = passin;
- pw_cb_data.prompt_info = argv[0];
-
- out = bio_open_default(outfile, 'w', FORMAT_TEXT);
- if (out == NULL)
- goto end;
-
- ret = process(argv[0], get_ui_method(), &pw_cb_data,
- expected, criterion, search,
- text, noout, recursive, 0, out, prog);
-
- end:
- OPENSSL_free(fingerprint);
- OPENSSL_free(alias);
- ASN1_INTEGER_free(serial);
- X509_NAME_free(subject);
- X509_NAME_free(issuer);
- OSSL_STORE_SEARCH_free(search);
- BIO_free_all(out);
- OPENSSL_free(passin);
- release_engine(e);
- return ret;
-}
-
-static int indent_printf(int indent, BIO *bio, const char *format, ...)
-{
- va_list args;
- int ret;
-
- va_start(args, format);
-
- ret = BIO_printf(bio, "%*s", indent, "") + BIO_vprintf(bio, format, args);
-
- va_end(args);
- return ret;
-}
-
-static int process(const char *uri, const UI_METHOD *uimeth, PW_CB_DATA *uidata,
- int expected, int criterion, OSSL_STORE_SEARCH *search,
- int text, int noout, int recursive, int indent, BIO *out,
- const char *prog)
-{
- OSSL_STORE_CTX *store_ctx = NULL;
- int ret = 1, items = 0;
-
- if ((store_ctx = OSSL_STORE_open(uri, uimeth, uidata, NULL, NULL))
- == NULL) {
- BIO_printf(bio_err, "Couldn't open file or uri %s\n", uri);
- ERR_print_errors(bio_err);
- return ret;
- }
-
- if (expected != 0) {
- if (!OSSL_STORE_expect(store_ctx, expected)) {
- ERR_print_errors(bio_err);
- goto end2;
- }
- }
-
- if (criterion != 0) {
- if (!OSSL_STORE_supports_search(store_ctx, criterion)) {
- BIO_printf(bio_err,
- "%s: the store scheme doesn't support the given search criteria.\n",
- prog);
- goto end2;
- }
-
- if (!OSSL_STORE_find(store_ctx, search)) {
- ERR_print_errors(bio_err);
- goto end2;
- }
- }
-
- /* From here on, we count errors, and we'll return the count at the end */
- ret = 0;
-
- for (;;) {
- OSSL_STORE_INFO *info = OSSL_STORE_load(store_ctx);
- int type = info == NULL ? 0 : OSSL_STORE_INFO_get_type(info);
- const char *infostr =
- info == NULL ? NULL : OSSL_STORE_INFO_type_string(type);
-
- if (info == NULL) {
- if (OSSL_STORE_eof(store_ctx))
- break;
-
- if (OSSL_STORE_error(store_ctx)) {
- if (recursive)
- ERR_clear_error();
- else
- ERR_print_errors(bio_err);
- ret++;
- continue;
- }
-
- BIO_printf(bio_err,
- "ERROR: OSSL_STORE_load() returned NULL without "
- "eof or error indications\n");
- BIO_printf(bio_err, " This is an error in the loader\n");
- ERR_print_errors(bio_err);
- ret++;
- break;
- }
-
- if (type == OSSL_STORE_INFO_NAME) {
- const char *name = OSSL_STORE_INFO_get0_NAME(info);
- const char *desc = OSSL_STORE_INFO_get0_NAME_description(info);
- indent_printf(indent, bio_out, "%d: %s: %s\n", items, infostr,
- name);
- if (desc != NULL)
- indent_printf(indent, bio_out, "%s\n", desc);
- } else {
- indent_printf(indent, bio_out, "%d: %s\n", items, infostr);
- }
-
- /*
- * Unfortunately, PEM_X509_INFO_write_bio() is sorely lacking in
- * functionality, so we must figure out how exactly to write things
- * ourselves...
- */
- switch (type) {
- case OSSL_STORE_INFO_NAME:
- if (recursive) {
- const char *suburi = OSSL_STORE_INFO_get0_NAME(info);
- ret += process(suburi, uimeth, uidata,
- expected, criterion, search,
- text, noout, recursive, indent + 2, out, prog);
- }
- break;
- case OSSL_STORE_INFO_PARAMS:
- if (text)
- EVP_PKEY_print_params(out, OSSL_STORE_INFO_get0_PARAMS(info),
- 0, NULL);
- if (!noout)
- PEM_write_bio_Parameters(out,
- OSSL_STORE_INFO_get0_PARAMS(info));
- break;
- case OSSL_STORE_INFO_PKEY:
- if (text)
- EVP_PKEY_print_private(out, OSSL_STORE_INFO_get0_PKEY(info),
- 0, NULL);
- if (!noout)
- PEM_write_bio_PrivateKey(out, OSSL_STORE_INFO_get0_PKEY(info),
- NULL, NULL, 0, NULL, NULL);
- break;
- case OSSL_STORE_INFO_CERT:
- if (text)
- X509_print(out, OSSL_STORE_INFO_get0_CERT(info));
- if (!noout)
- PEM_write_bio_X509(out, OSSL_STORE_INFO_get0_CERT(info));
- break;
- case OSSL_STORE_INFO_CRL:
- if (text)
- X509_CRL_print(out, OSSL_STORE_INFO_get0_CRL(info));
- if (!noout)
- PEM_write_bio_X509_CRL(out, OSSL_STORE_INFO_get0_CRL(info));
- break;
- default:
- BIO_printf(bio_err, "!!! Unknown code\n");
- ret++;
- break;
- }
- items++;
- OSSL_STORE_INFO_free(info);
- }
- indent_printf(indent, out, "Total found: %d\n", items);
-
- end2:
- if (!OSSL_STORE_close(store_ctx)) {
- ERR_print_errors(bio_err);
- ret++;
- }
-
- return ret;
-}
diff --git a/freebsd/crypto/openssl/apps/ts.c b/freebsd/crypto/openssl/apps/ts.c
index 3fd64d73..71c029e7 100644
--- a/freebsd/crypto/openssl/apps/ts.c
+++ b/freebsd/crypto/openssl/apps/ts.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -986,3 +990,6 @@ static int verify_cb(int ok, X509_STORE_CTX *ctx)
return ok;
}
#endif /* ndef OPENSSL_NO_TS */
+#ifdef __rtems__
+#include "rtems-bsd-openssl-ts-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/verify.c b/freebsd/crypto/openssl/apps/verify.c
index 8e7f8635..2caa8b0e 100644
--- a/freebsd/crypto/openssl/apps/verify.c
+++ b/freebsd/crypto/openssl/apps/verify.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -319,3 +323,6 @@ static int cb(int ok, X509_STORE_CTX *ctx)
ERR_clear_error();
return ok;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-verify-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/version.c b/freebsd/crypto/openssl/apps/version.c
index 82a98699..3bb53673 100644
--- a/freebsd/crypto/openssl/apps/version.c
+++ b/freebsd/crypto/openssl/apps/version.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -194,3 +198,6 @@ opthelp:
end:
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-version-data.h"
+#endif /* __rtems__ */
diff --git a/freebsd/crypto/openssl/apps/x509.c b/freebsd/crypto/openssl/apps/x509.c
index 94f0b794..b57d2229 100644
--- a/freebsd/crypto/openssl/apps/x509.c
+++ b/freebsd/crypto/openssl/apps/x509.c
@@ -1,4 +1,8 @@
#include <machine/rtems-bsd-user-space.h>
+#ifdef __rtems__
+#include <machine/rtems-bsd-program.h>
+#include "rtems-bsd-openssl-namespace.h"
+#endif /* __rtems__ */
/*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
@@ -1196,3 +1200,6 @@ static int print_x509v3_exts(BIO *bio, X509 *x, const char *ext_names)
OPENSSL_free(tmp_ext_names);
return ret;
}
+#ifdef __rtems__
+#include "rtems-bsd-openssl-x509-data.h"
+#endif /* __rtems__ */
diff --git a/libbsd.py b/libbsd.py
index 3235a5ca..d5e801f9 100644
--- a/libbsd.py
+++ b/libbsd.py
@@ -3944,6 +3944,96 @@ class crypto_openssl(builder.Module):
mm.generator['buildSystemFragmentComposer']()))
#
+# /usr/bin/openssl
+#
+# depends on crypto_openssl, user_space
+class usr_bin_openssl(builder.Module):
+
+ def __init__(self, manager):
+ super(usr_bin_openssl, self).__init__(manager, type(self).__name__)
+
+ def generate(self):
+ mm = self.manager
+ self.addUserSpaceHeaderFiles(
+ [
+ 'crypto/openssl/apps/apps.h',
+ 'crypto/openssl/apps/progs.h',
+ 'crypto/openssl/apps/s_apps.h',
+ 'crypto/openssl/apps/testdsa.h',
+ 'crypto/openssl/apps/testrsa.h',
+ 'crypto/openssl/apps/timeouts.h',
+ ]
+ )
+ self.addUserSpaceSourceFiles(
+ [
+ 'crypto/openssl/apps/app_rand.c',
+ 'crypto/openssl/apps/apps.c',
+ 'crypto/openssl/apps/asn1pars.c',
+ 'crypto/openssl/apps/bf_prefix.c',
+ 'crypto/openssl/apps/ca.c',
+ 'crypto/openssl/apps/ciphers.c',
+ 'crypto/openssl/apps/cms.c',
+ 'crypto/openssl/apps/crl.c',
+ 'crypto/openssl/apps/crl2p7.c',
+ 'crypto/openssl/apps/dgst.c',
+ 'crypto/openssl/apps/dhparam.c',
+ 'crypto/openssl/apps/dsa.c',
+ 'crypto/openssl/apps/dsaparam.c',
+ 'crypto/openssl/apps/ec.c',
+ 'crypto/openssl/apps/ecparam.c',
+ 'crypto/openssl/apps/enc.c',
+ 'crypto/openssl/apps/engine.c',
+ 'crypto/openssl/apps/errstr.c',
+ 'crypto/openssl/apps/gendsa.c',
+ 'crypto/openssl/apps/genpkey.c',
+ 'crypto/openssl/apps/genrsa.c',
+ 'crypto/openssl/apps/nseq.c',
+ 'crypto/openssl/apps/ocsp.c',
+ 'crypto/openssl/apps/openssl.c',
+ 'crypto/openssl/apps/opt.c',
+ 'crypto/openssl/apps/passwd.c',
+ 'crypto/openssl/apps/pkcs12.c',
+ 'crypto/openssl/apps/pkcs7.c',
+ 'crypto/openssl/apps/pkcs8.c',
+ 'crypto/openssl/apps/pkey.c',
+ 'crypto/openssl/apps/pkeyparam.c',
+ 'crypto/openssl/apps/pkeyutl.c',
+ 'crypto/openssl/apps/prime.c',
+ 'crypto/openssl/apps/rand.c',
+ 'crypto/openssl/apps/rehash.c',
+ 'crypto/openssl/apps/req.c',
+ 'crypto/openssl/apps/rsa.c',
+ 'crypto/openssl/apps/rsautl.c',
+ 'crypto/openssl/apps/s_cb.c',
+ 'crypto/openssl/apps/s_client.c',
+ 'crypto/openssl/apps/s_server.c',
+ 'crypto/openssl/apps/s_socket.c',
+ 'crypto/openssl/apps/s_time.c',
+ 'crypto/openssl/apps/sess_id.c',
+ 'crypto/openssl/apps/smime.c',
+ 'crypto/openssl/apps/speed.c',
+ 'crypto/openssl/apps/spkac.c',
+ 'crypto/openssl/apps/srp.c',
+ # storeutl excluded due to problem with OPENSSL_atexit
+ # 'crypto/openssl/apps/storeutl.c',
+ 'crypto/openssl/apps/ts.c',
+ 'crypto/openssl/apps/verify.c',
+ 'crypto/openssl/apps/version.c',
+ 'crypto/openssl/apps/x509.c',
+ ],
+ mm.generator['source'](['-D__FreeBSD__=1',
+ '-DOPENSSL_NO_RC5=1'],
+ ['freebsd/crypto/openssl']
+ )
+ )
+ self.addRTEMSSourceFiles(
+ [
+ 'rtems/rtems-bsd-shell-openssl.c',
+ ],
+ mm.generator['source']()
+ )
+
+#
# Contrib expat
#
class contrib_expat(builder.Module):
@@ -4945,6 +5035,7 @@ class tests(builder.Module):
self.addTest(mm.generator['test']('crypto01', ['test_main']))
self.addTest(mm.generator['test']('ipsec01', ['test_main']))
self.addTest(mm.generator['test']('openssl01', ['test_main']))
+ self.addTest(mm.generator['test']('openssl02', ['test_main']))
def load(mm):
@@ -5008,6 +5099,7 @@ def load(mm):
mm.addModule(usr_sbin_tcpdump(mm))
mm.addModule(usr_sbin_wpa_supplicant(mm))
mm.addModule(crypto_openssl(mm))
+ mm.addModule(usr_bin_openssl(mm))
mm.addModule(dhcpcd(mm))
mm.addModule(mdnsresponder(mm))
diff --git a/rtemsbsd/include/machine/rtems-bsd-commands.h b/rtemsbsd/include/machine/rtems-bsd-commands.h
index 7717c1ea..1b022902 100644
--- a/rtemsbsd/include/machine/rtems-bsd-commands.h
+++ b/rtemsbsd/include/machine/rtems-bsd-commands.h
@@ -78,6 +78,8 @@ int rtems_bsd_command_racoon(int argc, char **argv);
int rtems_bsd_command_setkey(int argc, char **argv);
+int rtems_bsd_command_openssl(int argc, char **argv);
+
__END_DECLS
#endif /* _RTEMS_BSD_MACHINE_RTEMS_BSD_COMMANDS_H_ */
diff --git a/rtemsbsd/include/rtems/netcmds-config.h b/rtemsbsd/include/rtems/netcmds-config.h
index ce84c155..f8dcdcdc 100644
--- a/rtemsbsd/include/rtems/netcmds-config.h
+++ b/rtemsbsd/include/rtems/netcmds-config.h
@@ -54,6 +54,7 @@ extern rtems_shell_cmd_t rtems_shell_STTY_Command;
extern rtems_shell_cmd_t rtems_shell_RACOON_Command;
extern rtems_shell_cmd_t rtems_shell_SETKEY_Command;
+extern rtems_shell_cmd_t rtems_shell_OPENSSL_Command;
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/rtemsbsd/rtems/rtems-bsd-shell-openssl.c b/rtemsbsd/rtems/rtems-bsd-shell-openssl.c
new file mode 100644
index 00000000..fc765b33
--- /dev/null
+++ b/rtemsbsd/rtems/rtems-bsd-shell-openssl.c
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2016 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <rtems/netcmds-config.h>
+#include <machine/rtems-bsd-commands.h>
+
+rtems_shell_cmd_t rtems_shell_OPENSSL_Command = {
+ .name = "openssl",
+ .usage = "openssl [args]",
+ .topic = "net",
+ .command = rtems_bsd_command_openssl
+};
diff --git a/testsuite/openssl02/test_main.c b/testsuite/openssl02/test_main.c
new file mode 100644
index 00000000..ccd48dc9
--- /dev/null
+++ b/testsuite/openssl02/test_main.c
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2013-2019 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Dornierstr. 4
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/param.h>
+
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sysexits.h>
+
+#include <machine/rtems-bsd-commands.h>
+
+#include <rtems/libcsupport.h>
+#include <rtems/bsd/modules.h>
+
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#define TEST_NAME "LIBBSD OPENSSL 2"
+
+#define ARGC(x) RTEMS_BSD_ARGC(x)
+
+#ifdef RTEMS_BSD_MODULE_USR_BIN_OPENSSL
+static void
+test_cmd_gencert(void)
+{
+ int fd;
+ int rv;
+ struct stat sb;
+ char *openssl_gencert[] = {
+ "openssl",
+ "req",
+ "-config",
+ "/openssl.cfg",
+ "-nodes",
+ "-newkey",
+ "rsa:2048",
+ "-keyout",
+ "/example.key",
+ "-out",
+ "example.csr",
+ "-subj",
+ "/C=GB/ST=London/L=London/O=Global Security/OU=IT Department/CN=example.com",
+ NULL
+ };
+
+ static const char config[] =
+ "[ req ]\n"
+ "distinguished_name = req_distinguished_name\n"
+ "[ req_distinguished_name ]\n"
+ "countryName = Country Name (2 letter code)\n"
+ "stateOrProvinceName = State or Province Name (full name)\n"
+ "localityName = Locality Name (eg, city)\n"
+ "0.organizationName = Organization Name (eg, company)\n"
+ "0.organizationName_default = Internet Widgits Pty Ltd\n"
+ "organizationalUnitName = Organizational Unit Name (eg, section)\n"
+ "organizationalUnitName_default =\n"
+ "commonName = Common Name (e.g. server FQDN or YOUR name)\n"
+ "commonName_max = 64\n"
+ "emailAddress = Email Address\n"
+ "emailAddress_max = 64\n";
+
+ /* Create config file. */
+ fd = open("/openssl.cfg", O_WRONLY | O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO);
+ assert(fd != -1);
+ rv = write(fd, config, sizeof(config));
+ assert(rv == sizeof(config));
+ rv = close(fd);
+ assert(rv == 0);
+
+ rtems_bsd_command_openssl(ARGC(openssl_gencert), openssl_gencert);
+
+ assert(stat("/example.key", &sb) == 0);
+ assert(stat("/example.csr", &sb) == 0);
+}
+
+static void
+test_cmd_speed(void)
+{
+ int fd;
+ int rv;
+ struct stat sb;
+ char *openssl_speed[] = {
+ "openssl",
+ "speed",
+ "sha1",
+ NULL
+ };
+
+ rtems_bsd_command_openssl(ARGC(openssl_speed), openssl_speed);
+}
+#endif /* RTEMS_BSD_MODULE_USR_BIN_OPENSSL */
+
+static void
+test_main(void)
+{
+#ifdef RTEMS_BSD_MODULE_USR_BIN_OPENSSL
+ test_cmd_gencert();
+ test_cmd_speed();
+#else /* ! RTEMS_BSD_MODULE_USR_BIN_OPENSSL */
+ puts("openssl command not enabled in the current build set");
+#endif /* RTEMS_BSD_MODULE_USR_BIN_OPENSSL */
+ exit(0);
+}
+
+#include <rtems/bsd/test/default-init.h>