[openssl] master update

Richard Levitte levitte at openssl.org
Tue Nov 5 21:47:51 UTC 2019


The branch master has been updated
       via  6af1b11848f000c900877f1289a42948d415f21c (commit)
       via  b6fc6620cff7e5971757ad1c50edd022fdaffc04 (commit)
       via  8635730333af792fae75394bb593afe4054da238 (commit)
       via  e4f2d539f631060654faf3b45f54e222637109ac (commit)
       via  a4aab7871939d3661557fd843e0d411bbaa78bc6 (commit)
       via  81ddd952ea1c4f80df45435fb927fd0c6314a008 (commit)
       via  3da95f3c5159b8404917e3ff349566488c28f798 (commit)
       via  5d61758ee70aebb479d6f7a43483af405c0031a2 (commit)
      from  c9c4a356b778d042fee3d86f7178012ec0077205 (commit)


- Log -----------------------------------------------------------------
commit 6af1b11848f000c900877f1289a42948d415f21c
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Nov 4 11:41:01 2019 +0100

    test/recipes/02-test_ordinals.t: Take '?' and '?+' into account
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/10348)

commit b6fc6620cff7e5971757ad1c50edd022fdaffc04
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Nov 4 10:36:54 2019 +0100

    util/mknum.pl: output stats on unassigned symbols
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/10348)

commit 8635730333af792fae75394bb593afe4054da238
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Nov 4 10:34:10 2019 +0100

    util/mknum.pl: Call OpenSSL::Ordinals::renumber() for real releases
    
    When the source isn't in development any more (the version number
    doesn't the tags 'dev' or 'alpha'), we renumber the unassigned symbols
    to ensure that we have fixed numbers on all.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/10348)

commit e4f2d539f631060654faf3b45f54e222637109ac
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Nov 4 10:33:10 2019 +0100

    util/mkdef.pl: writer_VMS(): handle symbols with no assigned number
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/10348)

commit a4aab7871939d3661557fd843e0d411bbaa78bc6
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Nov 4 10:31:04 2019 +0100

    OpenSSL::Ordinals: when validating, collect statistics on unassigned syms
    
    If a script wants to display how many symbols have assigned numbers
    and how many don't, this gives them those numbers.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/10348)

commit 81ddd952ea1c4f80df45435fb927fd0c6314a008
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Nov 4 10:29:53 2019 +0100

    OpenSSL::Ordinals: add a renumber() function, to assign unassigned symbols
    
    This should be used when it's time to assign constant numbers to the
    unassigned symbols.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/10348)

commit 3da95f3c5159b8404917e3ff349566488c28f798
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Nov 4 10:28:00 2019 +0100

    OpenSSL::Ordinals: Handle symbols with unassigned ordinal numbers
    
    We preserve the number or '?' or '?+', but assign numbers internally
    on the latter, to ensure we keep the order of the input.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/10348)

commit 5d61758ee70aebb479d6f7a43483af405c0031a2
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Nov 4 09:02:28 2019 +0100

    util/*.num: deassign ordinal numbers from new symbols
    
    Symbols that have appeared since 1.1.1 was released are considered
    unassigned in the development branch.   This is marked by having a
    question mark as its ordinal number.
    
    This introduces two new markers to be used instead of ordinal numbers:
    
        ?   signifying it gets the previous symbol's number plus one
        ?+  signifying it gets the same number as the previous symbol
    
    '?+' should remain rare, but is useful to create aliases when needed
    (for example when two different symbols clash because they only differ
    in character case, see include/openssl/symhacks.h)
    
    The intention is that a development branch won't have set numbers for
    new symbols, and that the final numbers will only get allocated when
    making beta or final releases.
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    Reviewed-by: Paul Dale <paul.dale at oracle.com>
    (Merged from https://github.com/openssl/openssl/pull/10348)

-----------------------------------------------------------------------

Summary of changes:
 test/recipes/02-test_ordinals.t |   7 +-
 util/libcrypto.num              | 866 ++++++++++++++++++++--------------------
 util/libssl.num                 |  28 +-
 util/mkdef.pl                   |  17 +-
 util/mknum.pl                   |  13 +-
 util/perl/OpenSSL/Ordinals.pm   | 174 +++++---
 6 files changed, 602 insertions(+), 503 deletions(-)

diff --git a/test/recipes/02-test_ordinals.t b/test/recipes/02-test_ordinals.t
index 16d3877451..710e7e2324 100644
--- a/test/recipes/02-test_ordinals.t
+++ b/test/recipes/02-test_ordinals.t
@@ -41,8 +41,11 @@ sub testordinals
         #Some ordinals can be repeated, e.g. if one is VMS and another is !VMS
         $newqual = $tokens[4];
         $newqual =~ s/!//g;
-        if ($cnt > $tokens[1]
-                || ($cnt == $tokens[1] && ($qualifier ne $newqual
+        my $number = $tokens[1];
+        $number = $cnt + 1 if $number eq '?';
+        $number = $cnt if $number eq '?+';
+        if ($cnt > $number
+                || ($cnt == $number && ($qualifier ne $newqual
                                            || $qualifier eq ""))) {
             print STDERR "Invalid ordinal detected: ".$tokens[1]."\n";
             $ret = 0;
diff --git a/util/libcrypto.num b/util/libcrypto.num
index f63949484c..625e10996b 100644
--- a/util/libcrypto.num
+++ b/util/libcrypto.num
@@ -4424,436 +4424,436 @@ OCSP_resp_get0_respdata                 4530	3_0_0	EXIST::FUNCTION:OCSP
 EVP_MD_CTX_set_pkey_ctx                 4531	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_meth_set_digest_custom         4532	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_meth_get_digest_custom         4533	3_0_0	EXIST::FUNCTION:
-EVP_MAC_CTX_new                         4534	3_0_0	EXIST::FUNCTION:
-EVP_MAC_CTX_new_id                      4535	3_0_0	NOEXIST::FUNCTION:
-EVP_MAC_CTX_free                        4536	3_0_0	EXIST::FUNCTION:
-EVP_MAC_CTX_dup                         4537	3_0_0	EXIST::FUNCTION:
-EVP_MAC_CTX_mac                         4538	3_0_0	EXIST::FUNCTION:
-EVP_MAC_size                            4539	3_0_0	EXIST::FUNCTION:
-EVP_MAC_init                            4540	3_0_0	EXIST::FUNCTION:
-EVP_MAC_update                          4541	3_0_0	EXIST::FUNCTION:
-EVP_MAC_final                           4542	3_0_0	EXIST::FUNCTION:
-EVP_MAC_ctrl                            4543	3_0_0	NOEXIST::FUNCTION:
-EVP_MAC_vctrl                           4544	3_0_0	NOEXIST::FUNCTION:
-EVP_MAC_ctrl_str                        4545	3_0_0	NOEXIST::FUNCTION:
-EVP_MAC_str2ctrl                        4546	3_0_0	NOEXIST::FUNCTION:
-EVP_MAC_hex2ctrl                        4547	3_0_0	NOEXIST::FUNCTION:
-EVP_MAC_nid                             4548	3_0_0	NOEXIST::FUNCTION:
-EVP_get_macbyname                       4549	3_0_0	NOEXIST::FUNCTION:
-EVP_MAC_do_all                          4550	3_0_0	NOEXIST::FUNCTION:
-EVP_MAC_do_all_sorted                   4551	3_0_0	NOEXIST::FUNCTION:
-EVP_str2ctrl                            4552	3_0_0	EXIST::FUNCTION:
-EVP_hex2ctrl                            4553	3_0_0	EXIST::FUNCTION:
-EVP_PKEY_supports_digest_nid            4554	3_0_0	EXIST::FUNCTION:
-SRP_VBASE_add0_user                     4555	3_0_0	EXIST::FUNCTION:SRP
-SRP_user_pwd_new                        4556	3_0_0	EXIST::FUNCTION:SRP
-SRP_user_pwd_set_gN                     4557	3_0_0	EXIST::FUNCTION:SRP
-SRP_user_pwd_set1_ids                   4558	3_0_0	EXIST::FUNCTION:SRP
-SRP_user_pwd_set0_sv                    4559	3_0_0	EXIST::FUNCTION:SRP
-OPENSSL_version_major                   4560	3_0_0	EXIST::FUNCTION:
-OPENSSL_version_minor                   4561	3_0_0	EXIST::FUNCTION:
-OPENSSL_version_patch                   4562	3_0_0	EXIST::FUNCTION:
-OPENSSL_version_pre_release             4563	3_0_0	EXIST::FUNCTION:
-OPENSSL_version_build_metadata          4564	3_0_0	EXIST::FUNCTION:
-EVP_aes_128_siv                         4565	3_0_0	EXIST::FUNCTION:SIV
-EVP_aes_192_siv                         4566	3_0_0	EXIST::FUNCTION:SIV
-EVP_aes_256_siv                         4567	3_0_0	EXIST::FUNCTION:SIV
-CRYPTO_siv128_new                       4568	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_init                      4569	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_copy_ctx                  4570	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_aad                       4571	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_encrypt                   4572	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_decrypt                   4573	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_finish                    4574	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_set_tag                   4575	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_get_tag                   4576	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_cleanup                   4577	3_0_0	NOEXIST::FUNCTION:SIV
-CRYPTO_siv128_speed                     4578	3_0_0	NOEXIST::FUNCTION:SIV
-OPENSSL_INIT_set_config_filename        4579	3_0_0	EXIST::FUNCTION:STDIO
-OPENSSL_INIT_set_config_file_flags      4580	3_0_0	EXIST::FUNCTION:STDIO
-ASYNC_WAIT_CTX_get_callback             4581	3_0_0	EXIST::FUNCTION:
-ASYNC_WAIT_CTX_set_callback             4582	3_0_0	EXIST::FUNCTION:
-ASYNC_WAIT_CTX_set_status               4583	3_0_0	EXIST::FUNCTION:
-ASYNC_WAIT_CTX_get_status               4584	3_0_0	EXIST::FUNCTION:
-ERR_load_ESS_strings                    4589	3_0_0	EXIST::FUNCTION:
-EVP_KDF_CTX_free                        4591	3_0_0	EXIST::FUNCTION:
-EVP_KDF_reset                           4592	3_0_0	EXIST::FUNCTION:
-EVP_KDF_size                            4596	3_0_0	EXIST::FUNCTION:
-EVP_KDF_derive                          4597	3_0_0	EXIST::FUNCTION:
-EC_GROUP_get0_field                     4598	3_0_0	EXIST::FUNCTION:EC
-CRYPTO_alloc_ex_data                    4599	3_0_0	EXIST::FUNCTION:
-OPENSSL_CTX_new                         4600	3_0_0	EXIST::FUNCTION:
-OPENSSL_CTX_free                        4601	3_0_0	EXIST::FUNCTION:
-OPENSSL_LH_flush                        4602	3_0_0	EXIST::FUNCTION:
-BN_native2bn                            4603	3_0_0	EXIST::FUNCTION:
-BN_bn2nativepad                         4604	3_0_0	EXIST::FUNCTION:
-OSSL_trace_get_category_num             4605	3_0_0	EXIST::FUNCTION:
-OSSL_trace_get_category_name            4606	3_0_0	EXIST::FUNCTION:
-OSSL_trace_set_channel                  4607	3_0_0	EXIST::FUNCTION:
-OSSL_trace_set_prefix                   4608	3_0_0	EXIST::FUNCTION:
-OSSL_trace_set_suffix                   4609	3_0_0	EXIST::FUNCTION:
-OSSL_trace_set_callback                 4610	3_0_0	EXIST::FUNCTION:
-OSSL_trace_enabled                      4611	3_0_0	EXIST::FUNCTION:
-OSSL_trace_begin                        4612	3_0_0	EXIST::FUNCTION:
-OSSL_trace_end                          4613	3_0_0	EXIST::FUNCTION:
-OSSL_PROVIDER_load                      4614	3_0_0	EXIST::FUNCTION:
-OSSL_PROVIDER_unload                    4615	3_0_0	EXIST::FUNCTION:
-OSSL_PROVIDER_add_builtin               4616	3_0_0	EXIST::FUNCTION:
-OSSL_PROVIDER_gettable_params           4617	3_0_0	EXIST::FUNCTION:
-OSSL_PROVIDER_get_params                4618	3_0_0	EXIST::FUNCTION:
-d2i_OSSL_CRMF_ENCRYPTEDVALUE            4619	3_0_0	EXIST::FUNCTION:CRMF
-i2d_OSSL_CRMF_ENCRYPTEDVALUE            4620	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_ENCRYPTEDVALUE_free           4621	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_ENCRYPTEDVALUE_new            4622	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_ENCRYPTEDVALUE_it             4623	3_0_0	EXIST::FUNCTION:CRMF
-d2i_OSSL_CRMF_MSG                       4624	3_0_0	EXIST::FUNCTION:CRMF
-i2d_OSSL_CRMF_MSG                       4625	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_free                      4626	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_new                       4627	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_it                        4628	3_0_0	EXIST::FUNCTION:CRMF
-d2i_OSSL_CRMF_PBMPARAMETER              4629	3_0_0	EXIST::FUNCTION:CRMF
-i2d_OSSL_CRMF_PBMPARAMETER              4630	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_PBMPARAMETER_free             4631	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_PBMPARAMETER_new              4632	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_PBMPARAMETER_it               4633	3_0_0	EXIST::FUNCTION:CRMF
-d2i_OSSL_CRMF_CERTID                    4634	3_0_0	EXIST::FUNCTION:CRMF
-i2d_OSSL_CRMF_CERTID                    4635	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTID_free                   4636	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTID_new                    4637	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTID_it                     4638	3_0_0	EXIST::FUNCTION:CRMF
-d2i_OSSL_CRMF_PKIPUBLICATIONINFO        4639	3_0_0	EXIST::FUNCTION:CRMF
-i2d_OSSL_CRMF_PKIPUBLICATIONINFO        4640	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_PKIPUBLICATIONINFO_free       4641	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_PKIPUBLICATIONINFO_new        4642	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_PKIPUBLICATIONINFO_it         4643	3_0_0	EXIST::FUNCTION:CRMF
-d2i_OSSL_CRMF_SINGLEPUBINFO             4644	3_0_0	EXIST::FUNCTION:CRMF
-i2d_OSSL_CRMF_SINGLEPUBINFO             4645	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_SINGLEPUBINFO_free            4646	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_SINGLEPUBINFO_new             4647	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_SINGLEPUBINFO_it              4648	3_0_0	EXIST::FUNCTION:CRMF
-d2i_OSSL_CRMF_CERTTEMPLATE              4649	3_0_0	EXIST::FUNCTION:CRMF
-i2d_OSSL_CRMF_CERTTEMPLATE              4650	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTTEMPLATE_free             4651	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTTEMPLATE_new              4652	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTTEMPLATE_it               4653	3_0_0	EXIST::FUNCTION:CRMF
-d2i_OSSL_CRMF_MSGS                      4654	3_0_0	EXIST::FUNCTION:CRMF
-i2d_OSSL_CRMF_MSGS                      4655	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSGS_free                     4656	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSGS_new                      4657	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSGS_it                       4658	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_pbmp_new                      4659	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_pbm_new                       4660	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set1_regCtrl_regToken     4661	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set1_regCtrl_authenticator 4662	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo 4663	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set0_SinglePubInfo        4664	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set_PKIPublicationInfo_action 4665	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo 4666	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set1_regCtrl_protocolEncrKey 4667	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set1_regCtrl_oldCertID    4668	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTID_gen                    4669	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set1_regInfo_utf8Pairs    4670	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set1_regInfo_certReq      4671	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set_validity              4672	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set_certReqId             4673	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_get_certReqId             4674	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_set0_extensions           4675	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_push0_extension           4676	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_create_popo               4677	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSGS_verify_popo              4678	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_MSG_get0_tmpl                 4679	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTTEMPLATE_get0_serialNumber 4680	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTTEMPLATE_get0_issuer      4681	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTTEMPLATE_fill             4682	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert   4683	3_0_0	EXIST::FUNCTION:CRMF
-ERR_load_CRMF_strings                   4684	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_PARAM_locate                       4685	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_int                4686	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_uint               4687	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_long               4688	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_ulong              4689	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_int32              4690	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_uint32             4691	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_int64              4692	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_uint64             4693	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_size_t             4694	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_BN                 4695	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_double             4696	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_utf8_string        4697	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_utf8_ptr           4698	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_octet_string       4699	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_octet_ptr          4700	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_int                      4701	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_uint                     4702	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_long                     4703	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_ulong                    4704	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_int32                    4705	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_uint32                   4706	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_int64                    4707	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_uint64                   4708	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_size_t                   4709	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_int                      4710	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_uint                     4711	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_long                     4712	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_ulong                    4713	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_int32                    4714	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_uint32                   4715	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_int64                    4716	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_uint64                   4717	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_size_t                   4718	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_double                   4719	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_double                   4720	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_BN                       4721	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_BN                       4722	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_utf8_string              4723	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_utf8_string              4724	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_octet_string             4725	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_octet_string             4726	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_utf8_ptr                 4727	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_utf8_ptr                 4728	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_get_octet_ptr                4729	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_set_octet_ptr                4730	3_0_0	EXIST::FUNCTION:
-X509_set0_sm2_id                        4731	3_0_0	EXIST::FUNCTION:SM2
-X509_get0_sm2_id                        4732	3_0_0	EXIST::FUNCTION:SM2
-EVP_PKEY_get0_engine                    4733	3_0_0	EXIST::FUNCTION:ENGINE
-EVP_MD_up_ref                           4734	3_0_0	EXIST::FUNCTION:
-EVP_MD_fetch                            4735	3_0_0	EXIST::FUNCTION:
-EVP_set_default_properties              4736	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_end                4737	3_0_0	EXIST::FUNCTION:
-EC_GROUP_check_named_curve              4738	3_0_0	EXIST::FUNCTION:EC
-EVP_CIPHER_up_ref                       4739	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_fetch                        4740	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_mode                         4741	3_0_0	EXIST::FUNCTION:
-OPENSSL_info                            4742	3_0_0	EXIST::FUNCTION:
-EVP_KDF_CTX_new                         4743	3_0_0	EXIST::FUNCTION:
-EVP_KDF_CTX_kdf                         4744	3_0_0	EXIST::FUNCTION:
-i2d_KeyParams                           4747	3_0_0	EXIST::FUNCTION:
-d2i_KeyParams                           4748	3_0_0	EXIST::FUNCTION:
-i2d_KeyParams_bio                       4749	3_0_0	EXIST::FUNCTION:
-d2i_KeyParams_bio                       4750	3_0_0	EXIST::FUNCTION:
-OSSL_CMP_PKISTATUS_it                   4751	3_0_0	EXIST::FUNCTION:CMP
-d2i_OSSL_CMP_PKIHEADER                  4752	3_0_0	EXIST::FUNCTION:CMP
-i2d_OSSL_CMP_PKIHEADER                  4753	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_PKIHEADER_free                 4754	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_PKIHEADER_new                  4755	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_PKIHEADER_it                   4756	3_0_0	EXIST::FUNCTION:CMP
-d2i_OSSL_CMP_MSG                        4757	3_0_0	EXIST::FUNCTION:CMP
-i2d_OSSL_CMP_MSG                        4758	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_MSG_it                         4759	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_ITAV_create                    4760	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_ITAV_set0                      4761	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_ITAV_get0_type                 4762	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_ITAV_get0_value                4763	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_ITAV_push0_stack_item          4764	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_ITAV_free                      4765	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_MSG_free                       4766	3_0_0	EXIST::FUNCTION:CMP
-ERR_load_CMP_strings                    4767	3_0_0	EXIST::FUNCTION:CMP
-EVP_MD_CTX_set_params                   4768	3_0_0	EXIST::FUNCTION:
-EVP_MD_CTX_get_params                   4769	3_0_0	EXIST::FUNCTION:
-RAND_DRBG_new_ex                        4770	3_0_0	EXIST::FUNCTION:
-RAND_DRBG_secure_new_ex                 4771	3_0_0	EXIST::FUNCTION:
-OPENSSL_CTX_get0_master_drbg            4772	3_0_0	EXIST::FUNCTION:
-OPENSSL_CTX_get0_public_drbg            4773	3_0_0	EXIST::FUNCTION:
-OPENSSL_CTX_get0_private_drbg           4774	3_0_0	EXIST::FUNCTION:
-BN_CTX_new_ex                           4775	3_0_0	EXIST::FUNCTION:
-BN_CTX_secure_new_ex                    4776	3_0_0	EXIST::FUNCTION:
-OPENSSL_thread_stop_ex                  4777	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_locate_const                 4778	3_0_0	EXIST::FUNCTION:
-X509_REQ_set0_sm2_id                    4779	3_0_0	EXIST::FUNCTION:SM2
-X509_REQ_get0_sm2_id                    4780	3_0_0	EXIST::FUNCTION:SM2
-BN_rand_ex                              4781	3_0_0	EXIST::FUNCTION:
-BN_priv_rand_ex                         4782	3_0_0	EXIST::FUNCTION:
-BN_rand_range_ex                        4783	3_0_0	EXIST::FUNCTION:
-BN_priv_rand_range_ex                   4784	3_0_0	EXIST::FUNCTION:
-BN_generate_prime_ex2                   4785	3_0_0	EXIST::FUNCTION:
-EVP_PKEY_derive_init_ex                 4786	3_0_0	NOEXIST::FUNCTION:
-EVP_KEYEXCH_free                        4787	3_0_0	EXIST::FUNCTION:
-EVP_KEYEXCH_up_ref                      4788	3_0_0	EXIST::FUNCTION:
-EVP_KEYEXCH_fetch                       4789	3_0_0	EXIST::FUNCTION:
-EVP_PKEY_CTX_set_dh_pad                 4790	3_0_0	EXIST::FUNCTION:DH
-EVP_PKEY_CTX_set_params                 4791	3_0_0	EXIST::FUNCTION:
-EVP_KEYMGMT_fetch                       4792	3_0_0	EXIST::FUNCTION:
-EVP_KEYMGMT_up_ref                      4793	3_0_0	EXIST::FUNCTION:
-EVP_KEYMGMT_free                        4794	3_0_0	EXIST::FUNCTION:
-EVP_KEYMGMT_provider                    4795	3_0_0	EXIST::FUNCTION:
-X509_PUBKEY_dup                         4796	3_0_0	EXIST::FUNCTION:
-ERR_put_func_error                      4797	3_0_0	NOEXIST::FUNCTION:
-EVP_MD_name                             4798	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_name                         4799	3_0_0	EXIST::FUNCTION:
-EVP_MD_provider                         4800	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_provider                     4801	3_0_0	EXIST::FUNCTION:
-OSSL_PROVIDER_name                      4802	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_do_all_provided              4803	3_0_0	EXIST::FUNCTION:
-EVP_MD_do_all_provided                  4804	3_0_0	EXIST::FUNCTION:
-EVP_KEYEXCH_provider                    4805	3_0_0	EXIST::FUNCTION:
-OSSL_PROVIDER_available                 4806	3_0_0	EXIST::FUNCTION:
-ERR_new                                 4807	3_0_0	EXIST::FUNCTION:
-ERR_set_debug                           4808	3_0_0	EXIST::FUNCTION:
-ERR_set_error                           4809	3_0_0	EXIST::FUNCTION:
-ERR_vset_error                          4810	3_0_0	EXIST::FUNCTION:
-X509_get0_authority_issuer              4811	3_0_0	EXIST::FUNCTION:
-X509_get0_authority_serial              4812	3_0_0	EXIST::FUNCTION:
-EC_GROUP_new_ex                         4813	3_0_0	EXIST::FUNCTION:EC
-EC_GROUP_new_by_curve_name_ex           4814	3_0_0	EXIST::FUNCTION:EC
-EC_KEY_new_ex                           4815	3_0_0	EXIST::FUNCTION:EC
-EC_KEY_new_by_curve_name_ex             4816	3_0_0	EXIST::FUNCTION:EC
-OPENSSL_hexstr2buf_ex                   4817	3_0_0	EXIST::FUNCTION:
-OPENSSL_buf2hexstr_ex                   4818	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_construct_from_text          4819	3_0_0	EXIST::FUNCTION:
-OSSL_PARAM_allocate_from_text           4820	3_0_0	EXIST::FUNCTION:
-EVP_MD_gettable_params                  4821	3_0_0	EXIST::FUNCTION:
-EVP_MD_CTX_settable_params              4822	3_0_0	EXIST::FUNCTION:
-EVP_MD_CTX_gettable_params              4823	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_get_params                   4824	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_CTX_set_params               4825	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_CTX_get_params               4826	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_gettable_params              4827	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_settable_ctx_params          4828	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_gettable_ctx_params          4829	3_0_0	EXIST::FUNCTION:
-EVP_MD_get_params                       4830	3_0_0	EXIST::FUNCTION:
-EVP_MAC_fetch                           4831	3_0_0	EXIST::FUNCTION:
-EVP_MAC_settable_ctx_params             4832	3_0_0	EXIST::FUNCTION:
-EVP_MAC_CTX_set_params                  4833	3_0_0	EXIST::FUNCTION:
-EVP_MAC_CTX_get_params                  4834	3_0_0	EXIST::FUNCTION:
-EVP_MAC_gettable_ctx_params             4835	3_0_0	EXIST::FUNCTION:
-EVP_MAC_free                            4836	3_0_0	EXIST::FUNCTION:
-EVP_MAC_up_ref                          4837	3_0_0	EXIST::FUNCTION:
-EVP_MAC_name                            4838	3_0_0	NOEXIST::FUNCTION:
-EVP_MAC_get_params                      4839	3_0_0	EXIST::FUNCTION:
-EVP_MAC_gettable_params                 4840	3_0_0	EXIST::FUNCTION:
-EVP_MAC_provider                        4841	3_0_0	EXIST::FUNCTION:
-EVP_MAC_do_all_provided                 4842	3_0_0	EXIST::FUNCTION:
-EVP_MD_free                             4843	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_free                         4844	3_0_0	EXIST::FUNCTION:
-EVP_KDF_up_ref                          4845	3_0_0	EXIST::FUNCTION:
-EVP_KDF_free                            4846	3_0_0	EXIST::FUNCTION:
-EVP_KDF_fetch                           4847	3_0_0	EXIST::FUNCTION:
-EVP_KDF_CTX_dup                         4848	3_0_0	EXIST::FUNCTION:
-EVP_KDF_name                            4849	3_0_0	NOEXIST::FUNCTION:
-EVP_KDF_provider                        4850	3_0_0	EXIST::FUNCTION:
-EVP_KDF_get_params                      4851	3_0_0	EXIST::FUNCTION:
-EVP_KDF_CTX_get_params                  4852	3_0_0	EXIST::FUNCTION:
-EVP_KDF_CTX_set_params                  4853	3_0_0	EXIST::FUNCTION:
-EVP_KDF_gettable_params                 4854	3_0_0	EXIST::FUNCTION:
-EVP_KDF_gettable_ctx_params             4855	3_0_0	EXIST::FUNCTION:
-EVP_KDF_settable_ctx_params             4856	3_0_0	EXIST::FUNCTION:
-EVP_KDF_do_all_provided                 4857	3_0_0	EXIST::FUNCTION:
-EVP_SIGNATURE_free                      4858	3_0_0	EXIST::FUNCTION:
-EVP_SIGNATURE_up_ref                    4859	3_0_0	EXIST::FUNCTION:
-EVP_SIGNATURE_provider                  4860	3_0_0	EXIST::FUNCTION:
-EVP_SIGNATURE_fetch                     4861	3_0_0	EXIST::FUNCTION:
-EVP_PKEY_sign_init_ex                   4862	3_0_0	NOEXIST::FUNCTION:
-EVP_PKEY_CTX_set_signature_md           4863	3_0_0	EXIST::FUNCTION:
-EVP_PKEY_verify_init_ex                 4864	3_0_0	NOEXIST::FUNCTION:
-EVP_PKEY_verify_recover_init_ex         4865	3_0_0	NOEXIST::FUNCTION:
-EVP_PKEY_CTX_get_signature_md           4866	3_0_0	EXIST::FUNCTION:
-EVP_PKEY_CTX_get_params                 4867	3_0_0	EXIST::FUNCTION:
-EVP_PKEY_CTX_gettable_params            4868	3_0_0	EXIST::FUNCTION:
-EVP_PKEY_CTX_settable_params            4869	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_CTX_tag_length               4870	3_0_0	EXIST::FUNCTION:
-ERR_get_error_func                      4871	3_0_0	EXIST::FUNCTION:
-ERR_get_error_data                      4872	3_0_0	EXIST::FUNCTION:
-ERR_get_error_all                       4873	3_0_0	EXIST::FUNCTION:
-ERR_peek_error_func                     4874	3_0_0	EXIST::FUNCTION:
-ERR_peek_error_data                     4875	3_0_0	EXIST::FUNCTION:
-ERR_peek_error_all                      4876	3_0_0	EXIST::FUNCTION:
-ERR_peek_last_error_func                4877	3_0_0	EXIST::FUNCTION:
-ERR_peek_last_error_data                4878	3_0_0	EXIST::FUNCTION:
-ERR_peek_last_error_all                 4879	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_is_a                         4880	3_0_0	EXIST::FUNCTION:
-EVP_MAC_is_a                            4881	3_0_0	EXIST::FUNCTION:
-EVP_MD_settable_ctx_params              4882	3_0_0	EXIST::FUNCTION:
-EVP_MD_gettable_ctx_params              4883	3_0_0	EXIST::FUNCTION:
-OSSL_CMP_CTX_new                        4884	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_free                       4885	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_reinit                     4886	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_option                 4887	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get_option                 4888	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_log_cb                 4889	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_print_errors               4890	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_serverPath            4891	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_serverName            4892	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_serverPort             4893	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_proxyName             4894	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_proxyPort              4895	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_http_cb                4896	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_http_cb_arg            4897	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get_http_cb_arg            4898	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_transfer_cb            4899	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_transfer_cb_arg        4900	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get_transfer_cb_arg        4901	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_srvCert               4902	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_expected_sender       4903	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set0_trustedStore          4904	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get0_trustedStore          4905	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_untrusted_certs       4906	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get0_untrusted_certs       4907	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_clCert                4908	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_pkey                  4909	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_referenceValue        4910	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_secretValue           4911	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_recipient             4912	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_push0_geninfo_ITAV         4913	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_extraCertsOut         4914	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set0_newPkey               4915	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get0_newPkey               4916	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_issuer                4917	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_subjectName           4918	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_push1_subjectAltName       4919	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set0_reqExtensions         4920	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_reqExtensions_have_SAN     4921	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_push0_policy               4922	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_oldCert               4923	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_p10CSR                4924	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_push0_genm_ITAV            4925	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_certConf_cb            4926	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set_certConf_cb_arg        4927	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get_certConf_cb_arg        4928	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get_status                 4929	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get0_statusString          4930	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get_failInfoCode           4931	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get0_newCert               4932	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get1_caPubs                4933	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_get1_extraCertsIn          4934	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_transactionID         4935	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_CTX_set1_senderNonce           4936	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_log_open                       4937	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_log_close                      4938	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_print_errors_cb                4939	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CRMF_CERTID_get0_issuer            4940	3_0_0	EXIST::FUNCTION:CRMF
-OSSL_CRMF_CERTID_get0_serialNumber      4941	3_0_0	EXIST::FUNCTION:CRMF
-EVP_DigestSignInit_ex                   4942	3_0_0	EXIST::FUNCTION:
-EVP_DigestSignUpdate                    4943	3_0_0	EXIST::FUNCTION:
-EVP_DigestVerifyInit_ex                 4944	3_0_0	EXIST::FUNCTION:
-EVP_DigestVerifyUpdate                  4945	3_0_0	EXIST::FUNCTION:
-BN_check_prime                          4946	3_0_0	EXIST::FUNCTION:
-EVP_PKEY_CTX_new_provided               4947	3_0_0	EXIST::FUNCTION:
-EVP_KEYMGMT_is_a                        4948	3_0_0	EXIST::FUNCTION:
-EVP_KEYMGMT_do_all_provided             4949	3_0_0	EXIST::FUNCTION:
-EVP_KEYEXCH_is_a                        4950	3_0_0	EXIST::FUNCTION:
-EVP_KEYEXCH_do_all_provided             4951	3_0_0	EXIST::FUNCTION:
-EVP_KDF_is_a                            4952	3_0_0	EXIST::FUNCTION:
-EVP_MD_is_a                             4953	3_0_0	EXIST::FUNCTION:
-EVP_SIGNATURE_is_a                      4954	3_0_0	EXIST::FUNCTION:
-EVP_SIGNATURE_do_all_provided           4955	3_0_0	EXIST::FUNCTION:
-EVP_MD_names_do_all                     4956	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_names_do_all                 4957	3_0_0	EXIST::FUNCTION:
-EVP_MAC_names_do_all                    4958	3_0_0	EXIST::FUNCTION:
-EVP_KEYMGMT_names_do_all                4959	3_0_0	EXIST::FUNCTION:
-EVP_KEYEXCH_names_do_all                4960	3_0_0	EXIST::FUNCTION:
-EVP_KDF_names_do_all                    4961	3_0_0	EXIST::FUNCTION:
-EVP_SIGNATURE_names_do_all              4962	3_0_0	EXIST::FUNCTION:
-EVP_MD_number                           4963	3_0_0	EXIST::FUNCTION:
-EVP_CIPHER_number                       4964	3_0_0	EXIST::FUNCTION:
-EVP_MAC_number                          4965	3_0_0	EXIST::FUNCTION:
-EVP_KEYMGMT_number                      4966	3_0_0	EXIST::FUNCTION:
-EVP_KEYEXCH_number                      4967	3_0_0	EXIST::FUNCTION:
-EVP_KDF_number                          4968	3_0_0	EXIST::FUNCTION:
-EVP_SIGNATURE_number                    4969	3_0_0	EXIST::FUNCTION:
-OSSL_CMP_CTX_snprint_PKIStatus          4970	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_HDR_get0_transactionID         4971	3_0_0	EXIST::FUNCTION:CMP
-OSSL_CMP_HDR_get0_recipNonce            4972	3_0_0	EXIST::FUNCTION:CMP
-X509_LOOKUP_store                       4973	3_0_0	EXIST::FUNCTION:
-X509_STORE_load_file                    4974	3_0_0	EXIST::FUNCTION:
-X509_STORE_load_path                    4975	3_0_0	EXIST::FUNCTION:
-X509_STORE_load_store                   4976	3_0_0	EXIST::FUNCTION:
+EVP_MAC_CTX_new                         ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_CTX_new_id                      ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MAC_CTX_free                        ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_CTX_dup                         ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_CTX_mac                         ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_size                            ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_init                            ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_update                          ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_final                           ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_ctrl                            ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MAC_vctrl                           ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MAC_ctrl_str                        ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MAC_str2ctrl                        ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MAC_hex2ctrl                        ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MAC_nid                             ?	3_0_0	NOEXIST::FUNCTION:
+EVP_get_macbyname                       ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MAC_do_all                          ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MAC_do_all_sorted                   ?	3_0_0	NOEXIST::FUNCTION:
+EVP_str2ctrl                            ?	3_0_0	EXIST::FUNCTION:
+EVP_hex2ctrl                            ?	3_0_0	EXIST::FUNCTION:
+EVP_PKEY_supports_digest_nid            ?	3_0_0	EXIST::FUNCTION:
+SRP_VBASE_add0_user                     ?	3_0_0	EXIST::FUNCTION:SRP
+SRP_user_pwd_new                        ?	3_0_0	EXIST::FUNCTION:SRP
+SRP_user_pwd_set_gN                     ?	3_0_0	EXIST::FUNCTION:SRP
+SRP_user_pwd_set1_ids                   ?	3_0_0	EXIST::FUNCTION:SRP
+SRP_user_pwd_set0_sv                    ?	3_0_0	EXIST::FUNCTION:SRP
+OPENSSL_version_major                   ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_version_minor                   ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_version_patch                   ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_version_pre_release             ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_version_build_metadata          ?	3_0_0	EXIST::FUNCTION:
+EVP_aes_128_siv                         ?	3_0_0	EXIST::FUNCTION:SIV
+EVP_aes_192_siv                         ?	3_0_0	EXIST::FUNCTION:SIV
+EVP_aes_256_siv                         ?	3_0_0	EXIST::FUNCTION:SIV
+CRYPTO_siv128_new                       ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_init                      ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_copy_ctx                  ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_aad                       ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_encrypt                   ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_decrypt                   ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_finish                    ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_set_tag                   ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_get_tag                   ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_cleanup                   ?	3_0_0	NOEXIST::FUNCTION:SIV
+CRYPTO_siv128_speed                     ?	3_0_0	NOEXIST::FUNCTION:SIV
+OPENSSL_INIT_set_config_filename        ?	3_0_0	EXIST::FUNCTION:STDIO
+OPENSSL_INIT_set_config_file_flags      ?	3_0_0	EXIST::FUNCTION:STDIO
+ASYNC_WAIT_CTX_get_callback             ?	3_0_0	EXIST::FUNCTION:
+ASYNC_WAIT_CTX_set_callback             ?	3_0_0	EXIST::FUNCTION:
+ASYNC_WAIT_CTX_set_status               ?	3_0_0	EXIST::FUNCTION:
+ASYNC_WAIT_CTX_get_status               ?	3_0_0	EXIST::FUNCTION:
+ERR_load_ESS_strings                    ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_CTX_free                        ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_reset                           ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_size                            ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_derive                          ?	3_0_0	EXIST::FUNCTION:
+EC_GROUP_get0_field                     ?	3_0_0	EXIST::FUNCTION:EC
+CRYPTO_alloc_ex_data                    ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_CTX_new                         ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_CTX_free                        ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_LH_flush                        ?	3_0_0	EXIST::FUNCTION:
+BN_native2bn                            ?	3_0_0	EXIST::FUNCTION:
+BN_bn2nativepad                         ?	3_0_0	EXIST::FUNCTION:
+OSSL_trace_get_category_num             ?	3_0_0	EXIST::FUNCTION:
+OSSL_trace_get_category_name            ?	3_0_0	EXIST::FUNCTION:
+OSSL_trace_set_channel                  ?	3_0_0	EXIST::FUNCTION:
+OSSL_trace_set_prefix                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_trace_set_suffix                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_trace_set_callback                 ?	3_0_0	EXIST::FUNCTION:
+OSSL_trace_enabled                      ?	3_0_0	EXIST::FUNCTION:
+OSSL_trace_begin                        ?	3_0_0	EXIST::FUNCTION:
+OSSL_trace_end                          ?	3_0_0	EXIST::FUNCTION:
+OSSL_PROVIDER_load                      ?	3_0_0	EXIST::FUNCTION:
+OSSL_PROVIDER_unload                    ?	3_0_0	EXIST::FUNCTION:
+OSSL_PROVIDER_add_builtin               ?	3_0_0	EXIST::FUNCTION:
+OSSL_PROVIDER_gettable_params           ?	3_0_0	EXIST::FUNCTION:
+OSSL_PROVIDER_get_params                ?	3_0_0	EXIST::FUNCTION:
+d2i_OSSL_CRMF_ENCRYPTEDVALUE            ?	3_0_0	EXIST::FUNCTION:CRMF
+i2d_OSSL_CRMF_ENCRYPTEDVALUE            ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_ENCRYPTEDVALUE_free           ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_ENCRYPTEDVALUE_new            ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_ENCRYPTEDVALUE_it             ?	3_0_0	EXIST::FUNCTION:CRMF
+d2i_OSSL_CRMF_MSG                       ?	3_0_0	EXIST::FUNCTION:CRMF
+i2d_OSSL_CRMF_MSG                       ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_free                      ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_new                       ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_it                        ?	3_0_0	EXIST::FUNCTION:CRMF
+d2i_OSSL_CRMF_PBMPARAMETER              ?	3_0_0	EXIST::FUNCTION:CRMF
+i2d_OSSL_CRMF_PBMPARAMETER              ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_PBMPARAMETER_free             ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_PBMPARAMETER_new              ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_PBMPARAMETER_it               ?	3_0_0	EXIST::FUNCTION:CRMF
+d2i_OSSL_CRMF_CERTID                    ?	3_0_0	EXIST::FUNCTION:CRMF
+i2d_OSSL_CRMF_CERTID                    ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTID_free                   ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTID_new                    ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTID_it                     ?	3_0_0	EXIST::FUNCTION:CRMF
+d2i_OSSL_CRMF_PKIPUBLICATIONINFO        ?	3_0_0	EXIST::FUNCTION:CRMF
+i2d_OSSL_CRMF_PKIPUBLICATIONINFO        ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_PKIPUBLICATIONINFO_free       ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_PKIPUBLICATIONINFO_new        ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_PKIPUBLICATIONINFO_it         ?	3_0_0	EXIST::FUNCTION:CRMF
+d2i_OSSL_CRMF_SINGLEPUBINFO             ?	3_0_0	EXIST::FUNCTION:CRMF
+i2d_OSSL_CRMF_SINGLEPUBINFO             ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_SINGLEPUBINFO_free            ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_SINGLEPUBINFO_new             ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_SINGLEPUBINFO_it              ?	3_0_0	EXIST::FUNCTION:CRMF
+d2i_OSSL_CRMF_CERTTEMPLATE              ?	3_0_0	EXIST::FUNCTION:CRMF
+i2d_OSSL_CRMF_CERTTEMPLATE              ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTTEMPLATE_free             ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTTEMPLATE_new              ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTTEMPLATE_it               ?	3_0_0	EXIST::FUNCTION:CRMF
+d2i_OSSL_CRMF_MSGS                      ?	3_0_0	EXIST::FUNCTION:CRMF
+i2d_OSSL_CRMF_MSGS                      ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSGS_free                     ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSGS_new                      ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSGS_it                       ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_pbmp_new                      ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_pbm_new                       ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set1_regCtrl_regToken     ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set1_regCtrl_authenticator ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_PKIPublicationInfo_push0_SinglePubInfo ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set0_SinglePubInfo        ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set_PKIPublicationInfo_action ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set1_regCtrl_pkiPublicationInfo ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set1_regCtrl_protocolEncrKey ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set1_regCtrl_oldCertID    ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTID_gen                    ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set1_regInfo_utf8Pairs    ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set1_regInfo_certReq      ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set_validity              ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set_certReqId             ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_get_certReqId             ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_set0_extensions           ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_push0_extension           ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_create_popo               ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSGS_verify_popo              ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_MSG_get0_tmpl                 ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTTEMPLATE_get0_serialNumber ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTTEMPLATE_get0_issuer      ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTTEMPLATE_fill             ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_ENCRYPTEDVALUE_get1_encCert   ?	3_0_0	EXIST::FUNCTION:CRMF
+ERR_load_CRMF_strings                   ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_PARAM_locate                       ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_int                ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_uint               ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_long               ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_ulong              ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_int32              ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_uint32             ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_int64              ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_uint64             ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_size_t             ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_BN                 ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_double             ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_utf8_string        ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_utf8_ptr           ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_octet_string       ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_octet_ptr          ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_int                      ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_uint                     ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_long                     ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_ulong                    ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_int32                    ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_uint32                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_int64                    ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_uint64                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_size_t                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_int                      ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_uint                     ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_long                     ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_ulong                    ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_int32                    ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_uint32                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_int64                    ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_uint64                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_size_t                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_double                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_double                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_BN                       ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_BN                       ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_utf8_string              ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_utf8_string              ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_octet_string             ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_octet_string             ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_utf8_ptr                 ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_utf8_ptr                 ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_get_octet_ptr                ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_set_octet_ptr                ?	3_0_0	EXIST::FUNCTION:
+X509_set0_sm2_id                        ?	3_0_0	EXIST::FUNCTION:SM2
+X509_get0_sm2_id                        ?	3_0_0	EXIST::FUNCTION:SM2
+EVP_PKEY_get0_engine                    ?	3_0_0	EXIST::FUNCTION:ENGINE
+EVP_MD_up_ref                           ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_fetch                            ?	3_0_0	EXIST::FUNCTION:
+EVP_set_default_properties              ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_end                ?	3_0_0	EXIST::FUNCTION:
+EC_GROUP_check_named_curve              ?	3_0_0	EXIST::FUNCTION:EC
+EVP_CIPHER_up_ref                       ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_fetch                        ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_mode                         ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_info                            ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_CTX_new                         ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_CTX_kdf                         ?	3_0_0	EXIST::FUNCTION:
+i2d_KeyParams                           ?	3_0_0	EXIST::FUNCTION:
+d2i_KeyParams                           ?	3_0_0	EXIST::FUNCTION:
+i2d_KeyParams_bio                       ?	3_0_0	EXIST::FUNCTION:
+d2i_KeyParams_bio                       ?	3_0_0	EXIST::FUNCTION:
+OSSL_CMP_PKISTATUS_it                   ?	3_0_0	EXIST::FUNCTION:CMP
+d2i_OSSL_CMP_PKIHEADER                  ?	3_0_0	EXIST::FUNCTION:CMP
+i2d_OSSL_CMP_PKIHEADER                  ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_PKIHEADER_free                 ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_PKIHEADER_new                  ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_PKIHEADER_it                   ?	3_0_0	EXIST::FUNCTION:CMP
+d2i_OSSL_CMP_MSG                        ?	3_0_0	EXIST::FUNCTION:CMP
+i2d_OSSL_CMP_MSG                        ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_MSG_it                         ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_ITAV_create                    ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_ITAV_set0                      ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_ITAV_get0_type                 ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_ITAV_get0_value                ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_ITAV_push0_stack_item          ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_ITAV_free                      ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_MSG_free                       ?	3_0_0	EXIST::FUNCTION:CMP
+ERR_load_CMP_strings                    ?	3_0_0	EXIST::FUNCTION:CMP
+EVP_MD_CTX_set_params                   ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_CTX_get_params                   ?	3_0_0	EXIST::FUNCTION:
+RAND_DRBG_new_ex                        ?	3_0_0	EXIST::FUNCTION:
+RAND_DRBG_secure_new_ex                 ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_CTX_get0_master_drbg            ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_CTX_get0_public_drbg            ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_CTX_get0_private_drbg           ?	3_0_0	EXIST::FUNCTION:
+BN_CTX_new_ex                           ?	3_0_0	EXIST::FUNCTION:
+BN_CTX_secure_new_ex                    ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_thread_stop_ex                  ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_locate_const                 ?	3_0_0	EXIST::FUNCTION:
+X509_REQ_set0_sm2_id                    ?	3_0_0	EXIST::FUNCTION:SM2
+X509_REQ_get0_sm2_id                    ?	3_0_0	EXIST::FUNCTION:SM2
+BN_rand_ex                              ?	3_0_0	EXIST::FUNCTION:
+BN_priv_rand_ex                         ?	3_0_0	EXIST::FUNCTION:
+BN_rand_range_ex                        ?	3_0_0	EXIST::FUNCTION:
+BN_priv_rand_range_ex                   ?	3_0_0	EXIST::FUNCTION:
+BN_generate_prime_ex2                   ?	3_0_0	EXIST::FUNCTION:
+EVP_PKEY_derive_init_ex                 ?	3_0_0	NOEXIST::FUNCTION:
+EVP_KEYEXCH_free                        ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYEXCH_up_ref                      ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYEXCH_fetch                       ?	3_0_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_set_dh_pad                 ?	3_0_0	EXIST::FUNCTION:DH
+EVP_PKEY_CTX_set_params                 ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYMGMT_fetch                       ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYMGMT_up_ref                      ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYMGMT_free                        ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYMGMT_provider                    ?	3_0_0	EXIST::FUNCTION:
+X509_PUBKEY_dup                         ?	3_0_0	EXIST::FUNCTION:
+ERR_put_func_error                      ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MD_name                             ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_name                         ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_provider                         ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_provider                     ?	3_0_0	EXIST::FUNCTION:
+OSSL_PROVIDER_name                      ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_do_all_provided              ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_do_all_provided                  ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYEXCH_provider                    ?	3_0_0	EXIST::FUNCTION:
+OSSL_PROVIDER_available                 ?	3_0_0	EXIST::FUNCTION:
+ERR_new                                 ?	3_0_0	EXIST::FUNCTION:
+ERR_set_debug                           ?	3_0_0	EXIST::FUNCTION:
+ERR_set_error                           ?	3_0_0	EXIST::FUNCTION:
+ERR_vset_error                          ?	3_0_0	EXIST::FUNCTION:
+X509_get0_authority_issuer              ?	3_0_0	EXIST::FUNCTION:
+X509_get0_authority_serial              ?	3_0_0	EXIST::FUNCTION:
+EC_GROUP_new_ex                         ?	3_0_0	EXIST::FUNCTION:EC
+EC_GROUP_new_by_curve_name_ex           ?	3_0_0	EXIST::FUNCTION:EC
+EC_KEY_new_ex                           ?	3_0_0	EXIST::FUNCTION:EC
+EC_KEY_new_by_curve_name_ex             ?	3_0_0	EXIST::FUNCTION:EC
+OPENSSL_hexstr2buf_ex                   ?	3_0_0	EXIST::FUNCTION:
+OPENSSL_buf2hexstr_ex                   ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_construct_from_text          ?	3_0_0	EXIST::FUNCTION:
+OSSL_PARAM_allocate_from_text           ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_gettable_params                  ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_CTX_settable_params              ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_CTX_gettable_params              ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_get_params                   ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_set_params               ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_get_params               ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_gettable_params              ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_settable_ctx_params          ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_gettable_ctx_params          ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_get_params                       ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_fetch                           ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_settable_ctx_params             ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_CTX_set_params                  ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_CTX_get_params                  ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_gettable_ctx_params             ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_free                            ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_up_ref                          ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_name                            ?	3_0_0	NOEXIST::FUNCTION:
+EVP_MAC_get_params                      ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_gettable_params                 ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_provider                        ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_do_all_provided                 ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_free                             ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_free                         ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_up_ref                          ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_free                            ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_fetch                           ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_CTX_dup                         ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_name                            ?	3_0_0	NOEXIST::FUNCTION:
+EVP_KDF_provider                        ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_get_params                      ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_CTX_get_params                  ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_CTX_set_params                  ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_gettable_params                 ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_gettable_ctx_params             ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_settable_ctx_params             ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_do_all_provided                 ?	3_0_0	EXIST::FUNCTION:
+EVP_SIGNATURE_free                      ?	3_0_0	EXIST::FUNCTION:
+EVP_SIGNATURE_up_ref                    ?	3_0_0	EXIST::FUNCTION:
+EVP_SIGNATURE_provider                  ?	3_0_0	EXIST::FUNCTION:
+EVP_SIGNATURE_fetch                     ?	3_0_0	EXIST::FUNCTION:
+EVP_PKEY_sign_init_ex                   ?	3_0_0	NOEXIST::FUNCTION:
+EVP_PKEY_CTX_set_signature_md           ?	3_0_0	EXIST::FUNCTION:
+EVP_PKEY_verify_init_ex                 ?	3_0_0	NOEXIST::FUNCTION:
+EVP_PKEY_verify_recover_init_ex         ?	3_0_0	NOEXIST::FUNCTION:
+EVP_PKEY_CTX_get_signature_md           ?	3_0_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_get_params                 ?	3_0_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_gettable_params            ?	3_0_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_settable_params            ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_CTX_tag_length               ?	3_0_0	EXIST::FUNCTION:
+ERR_get_error_func                      ?	3_0_0	EXIST::FUNCTION:
+ERR_get_error_data                      ?	3_0_0	EXIST::FUNCTION:
+ERR_get_error_all                       ?	3_0_0	EXIST::FUNCTION:
+ERR_peek_error_func                     ?	3_0_0	EXIST::FUNCTION:
+ERR_peek_error_data                     ?	3_0_0	EXIST::FUNCTION:
+ERR_peek_error_all                      ?	3_0_0	EXIST::FUNCTION:
+ERR_peek_last_error_func                ?	3_0_0	EXIST::FUNCTION:
+ERR_peek_last_error_data                ?	3_0_0	EXIST::FUNCTION:
+ERR_peek_last_error_all                 ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_is_a                         ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_is_a                            ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_settable_ctx_params              ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_gettable_ctx_params              ?	3_0_0	EXIST::FUNCTION:
+OSSL_CMP_CTX_new                        ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_free                       ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_reinit                     ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_option                 ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get_option                 ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_log_cb                 ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_print_errors               ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_serverPath            ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_serverName            ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_serverPort             ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_proxyName             ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_proxyPort              ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_http_cb                ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_http_cb_arg            ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get_http_cb_arg            ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_transfer_cb            ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_transfer_cb_arg        ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get_transfer_cb_arg        ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_srvCert               ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_expected_sender       ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set0_trustedStore          ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get0_trustedStore          ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_untrusted_certs       ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get0_untrusted_certs       ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_clCert                ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_pkey                  ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_referenceValue        ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_secretValue           ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_recipient             ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_push0_geninfo_ITAV         ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_extraCertsOut         ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set0_newPkey               ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get0_newPkey               ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_issuer                ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_subjectName           ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_push1_subjectAltName       ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set0_reqExtensions         ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_reqExtensions_have_SAN     ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_push0_policy               ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_oldCert               ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_p10CSR                ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_push0_genm_ITAV            ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_certConf_cb            ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set_certConf_cb_arg        ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get_certConf_cb_arg        ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get_status                 ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get0_statusString          ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get_failInfoCode           ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get0_newCert               ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get1_caPubs                ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_get1_extraCertsIn          ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_transactionID         ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_CTX_set1_senderNonce           ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_log_open                       ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_log_close                      ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_print_errors_cb                ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CRMF_CERTID_get0_issuer            ?	3_0_0	EXIST::FUNCTION:CRMF
+OSSL_CRMF_CERTID_get0_serialNumber      ?	3_0_0	EXIST::FUNCTION:CRMF
+EVP_DigestSignInit_ex                   ?	3_0_0	EXIST::FUNCTION:
+EVP_DigestSignUpdate                    ?	3_0_0	EXIST::FUNCTION:
+EVP_DigestVerifyInit_ex                 ?	3_0_0	EXIST::FUNCTION:
+EVP_DigestVerifyUpdate                  ?	3_0_0	EXIST::FUNCTION:
+BN_check_prime                          ?	3_0_0	EXIST::FUNCTION:
+EVP_PKEY_CTX_new_provided               ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYMGMT_is_a                        ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYMGMT_do_all_provided             ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYEXCH_is_a                        ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYEXCH_do_all_provided             ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_is_a                            ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_is_a                             ?	3_0_0	EXIST::FUNCTION:
+EVP_SIGNATURE_is_a                      ?	3_0_0	EXIST::FUNCTION:
+EVP_SIGNATURE_do_all_provided           ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_names_do_all                     ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_names_do_all                 ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_names_do_all                    ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYMGMT_names_do_all                ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYEXCH_names_do_all                ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_names_do_all                    ?	3_0_0	EXIST::FUNCTION:
+EVP_SIGNATURE_names_do_all              ?	3_0_0	EXIST::FUNCTION:
+EVP_MD_number                           ?	3_0_0	EXIST::FUNCTION:
+EVP_CIPHER_number                       ?	3_0_0	EXIST::FUNCTION:
+EVP_MAC_number                          ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYMGMT_number                      ?	3_0_0	EXIST::FUNCTION:
+EVP_KEYEXCH_number                      ?	3_0_0	EXIST::FUNCTION:
+EVP_KDF_number                          ?	3_0_0	EXIST::FUNCTION:
+EVP_SIGNATURE_number                    ?	3_0_0	EXIST::FUNCTION:
+OSSL_CMP_CTX_snprint_PKIStatus          ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_HDR_get0_transactionID         ?	3_0_0	EXIST::FUNCTION:CMP
+OSSL_CMP_HDR_get0_recipNonce            ?	3_0_0	EXIST::FUNCTION:CMP
+X509_LOOKUP_store                       ?	3_0_0	EXIST::FUNCTION:
+X509_STORE_load_file                    ?	3_0_0	EXIST::FUNCTION:
+X509_STORE_load_path                    ?	3_0_0	EXIST::FUNCTION:
+X509_STORE_load_store                   ?	3_0_0	EXIST::FUNCTION:
diff --git a/util/libssl.num b/util/libssl.num
index c643acbb24..4b5965285a 100644
--- a/util/libssl.num
+++ b/util/libssl.num
@@ -497,17 +497,17 @@ SSL_get_recv_max_early_data             497	3_0_0	EXIST::FUNCTION:
 SSL_CTX_get_recv_max_early_data         498	3_0_0	EXIST::FUNCTION:
 SSL_CTX_set_recv_max_early_data         499	3_0_0	EXIST::FUNCTION:
 SSL_CTX_set_post_handshake_auth         500	3_0_0	EXIST::FUNCTION:
-SSL_get_signature_type_nid              501	3_0_0	EXIST::FUNCTION:
-SSL_CTX_set_async_callback              502	3_0_0	EXIST::FUNCTION:
-SSL_CTX_set_async_callback_arg          503	3_0_0	EXIST::FUNCTION:
-SSL_set_async_callback                  504	3_0_0	EXIST::FUNCTION:
-SSL_set_async_callback_arg              505	3_0_0	EXIST::FUNCTION:
-SSL_get_async_status                    506	3_0_0	EXIST::FUNCTION:
-SSL_sendfile                            507	3_0_0	EXIST::FUNCTION:
-OSSL_default_cipher_list                508	3_0_0	EXIST::FUNCTION:
-OSSL_default_ciphersuites               509	3_0_0	EXIST::FUNCTION:
-SSL_add_store_cert_subjects_to_stack    510	3_0_0	EXIST::FUNCTION:
-SSL_CTX_set_default_verify_store        511	3_0_0	EXIST::FUNCTION:
-SSL_CTX_load_verify_file                512	3_0_0	EXIST::FUNCTION:
-SSL_CTX_load_verify_dir                 513	3_0_0	EXIST::FUNCTION:
-SSL_CTX_load_verify_store               514	3_0_0	EXIST::FUNCTION:
+SSL_get_signature_type_nid              ?	3_0_0	EXIST::FUNCTION:
+SSL_CTX_set_async_callback              ?	3_0_0	EXIST::FUNCTION:
+SSL_CTX_set_async_callback_arg          ?	3_0_0	EXIST::FUNCTION:
+SSL_set_async_callback                  ?	3_0_0	EXIST::FUNCTION:
+SSL_set_async_callback_arg              ?	3_0_0	EXIST::FUNCTION:
+SSL_get_async_status                    ?	3_0_0	EXIST::FUNCTION:
+SSL_sendfile                            ?	3_0_0	EXIST::FUNCTION:
+OSSL_default_cipher_list                ?	3_0_0	EXIST::FUNCTION:
+OSSL_default_ciphersuites               ?	3_0_0	EXIST::FUNCTION:
+SSL_add_store_cert_subjects_to_stack    ?	3_0_0	EXIST::FUNCTION:
+SSL_CTX_set_default_verify_store        ?	3_0_0	EXIST::FUNCTION:
+SSL_CTX_load_verify_file                ?	3_0_0	EXIST::FUNCTION:
+SSL_CTX_load_verify_dir                 ?	3_0_0	EXIST::FUNCTION:
+SSL_CTX_load_verify_store               ?	3_0_0	EXIST::FUNCTION:
diff --git a/util/mkdef.pl b/util/mkdef.pl
index a860db601d..11471499df 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -323,7 +323,10 @@ sub writer_VMS {
 
     my $last_num = 0;
     foreach (@_) {
-        while (++$last_num < $_->number()) {
+        my $this_num = $_->number();
+        $this_num = $last_num + 1 if $this_num =~ m|^\?|;
+
+        while (++$last_num < $this_num) {
             push @slot_collection, $collector->(); # Just occupy a slot
         }
         my $type = {
@@ -406,12 +409,20 @@ int main()
 {
 _____
 
+    my $last_num = 0;
     for (@_) {
+        my $this_num = $_->number();
+        $this_num = $last_num + 1 if $this_num =~ m|^\?|;
+
         if ($_->type() eq 'VARIABLE') {
-            print "\textern int ", $_->name(), '; /* type unknown */ /* ', $_->number(), ' ', $_->version(), " */\n";
+            print "\textern int ", $_->name(), '; /* type unknown */ /* ',
+                  $this_num, ' ', $_->version(), " */\n";
         } else {
-            print "\textern int ", $_->name(), '(); /* type unknown */ /* ', $_->number(), ' ', $_->version(), " */\n";
+            print "\textern int ", $_->name(), '(); /* type unknown */ /* ',
+                  $this_num, ' ', $_->version(), " */\n";
         }
+
+        $last_num = $this_num;
     }
     print <<'_____';
 }
diff --git a/util/mknum.pl b/util/mknum.pl
index 1fa1b958dc..871c07055b 100644
--- a/util/mknum.pl
+++ b/util/mknum.pl
@@ -88,6 +88,13 @@ foreach my $f (($symhacks_file // (), @ARGV)) {
     close IN;
 }
 
+# As long as we're running in development or alpha releases, we can have
+# symbols without specific numbers assigned.  When in beta or final release,
+# all symbols MUST have an assigned number.
+if ($version !~ m/^\d+\.\d+\.\d+(?:[a-z]+)?-(?:dev|alpha)/) {
+    $ordinals->renumber();
+}
+
 if ($checkexist) {
     my %new_names = map { $_->name() => 1 }
         $ordinals->items(comparator => sub { $_[0] cmp $_[1] },
@@ -121,5 +128,9 @@ if ($checkexist) {
     } else {
         print STDERR "${ordinals_file}: No new symbols added\n";
     }
-
+    if ($stats{unassigned}) {
+        my $symbol = $stats{unassigned} == 1 ? "symbol" : "symbols";
+        my $is = $stats{unassigned} == 1 ? "is" : "are";
+        print STDERR "${ordinals_file}: $stats{unassigned} $symbol $is without ordinal number\n";
+    }
 }
diff --git a/util/perl/OpenSSL/Ordinals.pm b/util/perl/OpenSSL/Ordinals.pm
index 302d58f8b1..c3cfc98e71 100644
--- a/util/perl/OpenSSL/Ordinals.pm
+++ b/util/perl/OpenSSL/Ordinals.pm
@@ -64,12 +64,12 @@ on different platforms.
 =item B<new> I<%options>
 
 Creates a new instance of the C<OpenSSL::Ordinals> class.  It takes options
-in keyed pair form, i.e. a series of C<key =E<gt> value> pairs.  Available
+in keyed pair form, i.e. a series of C<< key => value >> pairs.  Available
 options are:
 
 =over 4
 
-=item B<from =E<gt> FILENAME>
+=item B<< from => FILENAME >>
 
 Not only create a new instance, but immediately load it with data from the
 ordinals file FILENAME.
@@ -86,6 +86,7 @@ sub new {
         filename        => undef, # File name registered when loading
         loaded_maxnum   => 0,     # Highest allocated item number when loading
         loaded_contents => [],    # Loaded items, if loading there was
+        maxassigned     => 0,     # Current highest assigned item number
         maxnum          => 0,     # Current highest allocated item number
         contents        => [],    # Items, indexed by number
         name2num        => {},    # Name to number dictionary
@@ -101,7 +102,7 @@ sub new {
     return $instance;
 }
 
-=item B<$ordinals-E<gt>load FILENAME>
+=item B<< $ordinals->load FILENAME >>
 
 Loads the data from FILENAME into the instance.  Any previously loaded data
 is dropped.
@@ -121,6 +122,7 @@ sub load {
 
     my @tmp_contents = ();
     my %tmp_name2num = ();
+    my $max_assigned = 0;
     my $max_num = 0;
     open F, '<', $filename or croak "Unable to open $filename";
     while (<F>) {
@@ -131,17 +133,27 @@ sub load {
         my $item = OpenSSL::Ordinals::Item->new(from => $_);
 
         my $num = $item->number();
-        croak "Disordered ordinals, $num < $max_num"
-            if $num < $max_num;
-        $max_num = $num;
+        if ($num eq '?') {
+            $num = ++$max_num;
+        } elsif ($num eq '?+') {
+            $num = $max_num;
+        } else {
+            croak "Disordered ordinals, number sequence restarted"
+                if $max_num > $max_assigned && $num < $max_num;
+            croak "Disordered ordinals, $num < $max_num"
+                if $num < $max_num;
+            $max_assigned = $max_num = $num;
+        }
 
-        push @{$tmp_contents[$item->number()]}, $item;
-        $tmp_name2num{$item->name()} = $item->number();
+        $item->intnum($num);
+        push @{$tmp_contents[$num]}, $item;
+        $tmp_name2num{$item->name()} = $num;
     }
     close F;
 
     $self->{contents} = [ @tmp_contents ];
     $self->{name2num} = { %tmp_name2num };
+    $self->{maxassigned} = $max_assigned;
     $self->{maxnum} = $max_num;
     $self->{filename} = $filename;
 
@@ -157,7 +169,26 @@ sub load {
     return 1;
 }
 
-=item B<$ordinals-E<gt>rewrite>
+=item B<< $ordinals->renumber >>
+
+Renumber any item that doesn't have an assigned number yet.
+
+=cut
+
+sub renumber {
+    my $self = shift;
+
+    my $max_assigned = 0;
+    foreach ($self->items(by => by_number())) {
+        $_->number($_->intnum()) if $_->number() =~ m|^\?|;
+        if ($max_assigned < $_->number()) {
+            $max_assigned = $_->number();
+        }
+    }
+    $self->{maxassigned} = $max_assigned;
+}
+
+=item B<< $ordinals->rewrite >>
 
 If an ordinals file has been loaded, it gets rewritten with the data from
 the current work database.
@@ -170,10 +201,10 @@ sub rewrite {
     $self->write($self->{filename});
 }
 
-=item B<$ordinals-E<gt>write FILENAME>
+=item B<< $ordinals->write FILENAME >>
 
 Writes the current work database data to the ordinals file FILENAME.
-This also validates the data, see B<$ordinals-E<gt>validate> below.
+This also validates the data, see B<< $ordinals->validate >> below.
 
 =cut
 
@@ -195,21 +226,21 @@ sub write {
     return 1;
 }
 
-=item B<$ordinals-E<gt>items> I<%options>
+=item B<< $ordinals->items >> I<%options>
 
 Returns a list of items according to a set of criteria.  The criteria is
-given in form keyed pair form, i.e. a series of C<key =E<gt> value> pairs.
+given in form keyed pair form, i.e. a series of C<< key => value >> pairs.
 Available options are:
 
 =over 4
 
-=item B<sort =E<gt> SORTFUNCTION>
+=item B<< sort => SORTFUNCTION >>
 
 SORTFUNCTION is a reference to a function that takes two arguments, which
 correspond to the classic C<$a> and C<$b> that are available in a C<sort>
 block.
 
-=item B<filter =E<gt> FILTERFUNCTION>
+=item B<< filter => FILTERFUNCTION >>
 
 FILTERFUNTION is a reference to a function that takes one argument, which
 is every OpenSSL::Ordinals::Item element available.
@@ -271,7 +302,7 @@ sub _putback {
         my %versions = ();
         my %features = ();
         foreach (@items) {
-            $numbers{$_->number()} = 1;
+            $numbers{$_->intnum()} = 1;
             $versions{$_->version()} = 1;
             foreach ($_->features()) {
                 $features{$_}++;
@@ -280,7 +311,7 @@ sub _putback {
 
         # Check that all items we're trying to put back have the same number
         croak "Items don't have the same numeral: ",
-            join(", ", map { $_->name()." => ".$_->number() } @items), "\n"
+            join(", ", map { $_->name()." => ".$_->intnum() } @items), "\n"
             if (scalar keys %numbers > 1);
         croak "Items don't have the same version: ",
             join(", ", map { $_->name()." => ".$_->version() } @items), "\n"
@@ -323,7 +354,7 @@ sub _putback {
                 $items[0]->name(), " and ", $items[1]->name(), "\n";
         }
     }
-    $self->{contents}->[$items[0]->number()] = [ @items ];
+    $self->{contents}->[$items[0]->intnum()] = [ @items ];
 }
 
 sub _parse_platforms {
@@ -379,7 +410,7 @@ sub _adjust_version {
     return $version;
 }
 
-=item B<$ordinals-E<gt>add NAME, TYPE, LIST>
+=item B<< $ordinals->add NAME, TYPE, LIST >>
 
 Adds a new item named NAME with the type TYPE, and a set of C macros in
 LIST that are expected to be defined or undefined to use this symbol, if
@@ -387,9 +418,7 @@ any.  For undefined macros, they each must be prefixed with a C<!>.
 
 If this symbol already exists in loaded data, it will be rewritten using
 the new input data, but will keep the same ordinal number and version.
-If it's entirely new, it will get a new number and the current default
-version.  The new ordinal number is a simple increment from the last
-maximum number.
+If it's entirely new, it will get a '?' and the current default version.
 
 =cut
 
@@ -411,7 +440,8 @@ sub add {
 
     my @items = $self->items(filter => f_name($name));
     my $version = @items ? $items[0]->version() : $self->{currversion};
-    my $number = @items ? $items[0]->number() : ++$self->{maxnum};
+    my $intnum = @items ? $items[0]->intnum() : ++$self->{maxnum};
+    my $number = @items ? $items[0]->number() : '?';
     print STDERR "DEBUG[",__PACKAGE__,":add] $verbsig\n",
         @items ? map { "\t".$_->to_string()."\n" } @items : "No previous items\n",
         if $self->{debug};
@@ -421,6 +451,7 @@ sub add {
         OpenSSL::Ordinals::Item->new( name          => $name,
                                       type          => $type,
                                       number        => $number,
+                                      intnum        => $intnum,
                                       version       =>
                                           $self->_adjust_version($version),
                                       exists        => 1,
@@ -445,7 +476,7 @@ sub add {
     return @returns;
 }
 
-=item B<$ordinals-E<gt>add_alias ALIAS, NAME, LIST>
+=item B<< $ordinals->add_alias ALIAS, NAME, LIST >>
 
 Adds an alias ALIAS for the symbol NAME, and a set of C macros in LIST
 that are expected to be defined or undefined to use this symbol, if any.
@@ -505,10 +536,13 @@ sub add_alias {
         # We supposedly do now know how to do this...  *ahem*
         $items[0]->{platforms} = { %alias_platforms };
 
+        my $number =
+            $items[0]->number() =~ m|^\?| ? '?+' : $items[0]->number();
         my $alias_item = OpenSSL::Ordinals::Item->new(
             name          => $alias,
             type          => $items[0]->type(),
-            number        => $items[0]->number(),
+            number        => $number,
+            intnum        => $items[0]->intnum(),
             version       => $self->_adjust_version($items[0]->version()),
             exists        => $items[0]->exists(),
             platforms     => { %platforms },
@@ -528,9 +562,9 @@ sub add_alias {
         "\t", join(", ", map { $_->name() } @items), "\n";
 }
 
-=item B<$ordinals-E<gt>set_version VERSION>
+=item B<< $ordinals->set_version VERSION >>
 
-=item B<$ordinals-E<gt>set_version VERSION BASEVERSION>
+=item B<< $ordinals->set_version VERSION BASEVERSION >>
 
 Sets the default version for new symbol to VERSION.
 
@@ -591,7 +625,7 @@ sub set_version {
     return 1;
 }
 
-=item B<$ordinals-E<gt>invalidate>
+=item B<< $ordinals->invalidate >>
 
 Invalidates the whole working database.  The practical effect is that all
 symbols are set to not exist, but are kept around in the database to retain
@@ -610,11 +644,11 @@ sub invalidate {
     $self->{stats} = {};
 }
 
-=item B<$ordinals-E<gt>validate>
+=item B<< $ordinals->validate >>
 
 Validates the current working database by collection statistics on how many
 symbols were added and how many were changed.  These numbers can be retrieved
-with B<$ordinals-E<gt>stats>.
+with B<< $ordinals->stats >>.
 
 =cut
 
@@ -628,6 +662,11 @@ sub validate {
                     && @{$self->{contents}->[$i] // []})) {
             $self->{stats}->{new}++;
         }
+        if ($i <= $self->{maxassigned}) {
+            $self->{stats}->{assigned}++;
+        } else {
+            $self->{stats}->{unassigned}++;
+        }
         next if ($i > $self->{loaded_maxnum});
 
         my @loaded_strings =
@@ -644,7 +683,7 @@ sub validate {
     }
 }
 
-=item B<$ordinals-E<gt>stats>
+=item B<< $ordinals->stats >>
 
 Returns the statistics that B<validate> calculate.
 
@@ -676,12 +715,12 @@ use Carp;
 =item B<new> I<%options>
 
 Creates a new instance of the C<OpenSSL::Ordinals::Item> class.  It takes
-options in keyed pair form, i.e. a series of C<key =E<gt> value> pairs.
+options in keyed pair form, i.e. a series of C<< key => value >> pairs.
 Available options are:
 
 =over 4
 
-=item B<from =E<gt> STRING>
+=item B<< from => STRING >>
 
 This will create a new item, filled with data coming from STRING.
 
@@ -691,8 +730,8 @@ STRING must conform to the following EBNF description:
                    exist, ":", platforms, ":", type, ":", features;
   spaces         = space, { space };
   space          = " " | "\t";
-  symbol         = ( letter | "_"), { letter | digit | "_" };
-  ordinal        = number;
+  symbol         = ( letter | "_" ), { letter | digit | "_" };
+  ordinal        = number | "?" | "?+";
   version        = number, "_", number, "_", number, [ letter, [ letter ] ];
   exist          = "EXIST" | "NOEXIST";
   platforms      = platform, { ",", platform };
@@ -704,9 +743,9 @@ STRING must conform to the following EBNF description:
 
 (C<letter> and C<digit> are assumed self evident)
 
-=item B<name =E<gt> STRING>, B<number =E<gt> NUMBER>, B<version =E<gt> STRING>,
-      B<exists =E<gt> BOOLEAN>, B<type =E<gt> STRING>,
-      B<platforms =E<gt> HASHref>, B<features =E<gt> LISTref>
+=item B<< name => STRING >>, B<< number => NUMBER >>, B<< version => STRING >>,
+      B<< exists => BOOLEAN >>, B<< type => STRING >>,
+      B<< platforms => HASHref >>, B<< features => LISTref >>
 
 This will create a new item with data coming from the arguments.
 
@@ -732,7 +771,7 @@ sub new {
         croak "Badly formatted ordinals string: $opts{from}"
             unless ( scalar @a == 4
                      && $a[0] =~ /^[A-Za-z_][A-Za-z_0-9]*$/
-                     && $a[1] =~ /^\d+$/
+                     && $a[1] =~ /^\d+|\?\+?$/
                      && $a[2] =~ /^(?:\*|\d+_\d+_\d+[a-z]{0,2})$/
                      && $a[3] =~ /^
                                   (?:NO)?EXIST:
@@ -762,6 +801,7 @@ sub new {
         $instance = { name      => $opts{name},
                       type      => $opts{type},
                       number    => $opts{number},
+                      intnum    => $opts{intnum},
                       version   => $version,
                       exists    => !!$opts{exists},
                       platforms => { %{$opts{platforms} // {}} },
@@ -777,36 +817,40 @@ sub new {
 sub DESTROY {
 }
 
-=item B<$item-E<gt>name>
+=item B<< $item->name >>
 
 The symbol name for this item.
 
-=item B<$item-E<gt>number>
+=item B<< $item->number >> (read-write)
 
 The positional number for this item.
 
-=item B<$item-E<gt>version>
+This may be '?' for an unassigned symbol, or '?+' for an unassigned symbol
+that's an alias for the previous symbol.  '?' and '?+' must be properly
+handled by the caller.  The caller may change this to an actual number.
+
+=item B<< $item->version >> (read-only)
 
 The version number for this item.  Please note that these version numbers
 have underscore (C<_>) as a separator the the version parts.
 
-=item B<$item-E<gt>exists>
+=item B<< $item->exists >> (read-only)
 
 A boolean that tells if this symbol exists in code or not.
 
-=item B<$item-E<gt>platforms>
+=item B<< $item->platforms >> (read-only)
 
 A hash table reference.  The keys of the hash table are the names of
 the specified platforms, with a value of 0 to indicate that this symbol
 isn't available on that platform, and 1 to indicate that it is.  Platforms
 that aren't mentioned default to 1.
 
-=item B<$item-E<gt>type>
+=item B<< $item->type >> (read-only)
 
 C<FUNCTION> or C<VARIABLE>, depending on what the symbol represents.
 Some platforms do not care about this, others do.
 
-=item B<$item-E<gt>features>
+=item B<< $item->features >> (read-only)
 
 An array reference, where every item indicates a feature where this symbol
 is available.  If no features are mentioned, the symbol is always available.
@@ -830,7 +874,37 @@ sub AUTOLOAD {
     return %{$self->{$item}} if ref($self->{$item}) eq 'HASH';
 }
 
-=item B<$item-E<gt>to_string>
+=item B<< $item->intnum >> (read-write)
+
+Internal positional number.  If I<< $item->number >> is '?' or '?+', the
+caller can use this to set a number for its purposes.
+If I<< $item->number >> is a number, I<< $item->intnum >> should be the
+same
+
+=cut
+
+# Getter/setters
+sub intnum {
+    my $self = shift;
+    my $value = shift;
+    my $item = 'intnum';
+
+    croak "$item called with extra arguments" if @_;
+    $self->{$item} = "$value" if defined $value;
+    return $self->{$item};
+}
+
+sub number {
+    my $self = shift;
+    my $value = shift;
+    my $item = 'number';
+
+    croak "$item called with extra arguments" if @_;
+    $self->{$item} = "$value" if defined $value;
+    return $self->{$item};
+}
+
+=item B<< $item->to_string >>
 
 Converts the item to a string that can be saved in an ordinals file.
 
@@ -844,7 +918,7 @@ sub to_string {
     my @features = $self->features();
     my $version = $self->version();
     $version =~ s|\.|_|g;
-    return sprintf "%-39s %d\t%s\t%s:%s:%s:%s",
+    return sprintf "%-39s %s\t%s\t%s:%s:%s:%s",
         $self->name(),
         $self->number(),
         $version,
@@ -859,7 +933,7 @@ sub to_string {
 
 =head2 Comparators and filters
 
-For the B<$ordinals-E<gt>items> method, there are a few functions to create
+For the B<< $ordinals->items >> method, there are a few functions to create
 comparators based on specific data:
 
 =over 4
@@ -890,7 +964,7 @@ OpenSSL::Ordinals::Item objects.
 =cut
 
 sub by_number {
-    return sub { $_[0]->number() <=> $_[1]->number() };
+    return sub { $_[0]->intnum() <=> $_[1]->intnum() };
 }
 
 =item B<by_version>


More information about the openssl-commits mailing list