From 1f563c5db50c6703fa2a64961eb5a9934568721f Mon Sep 17 00:00:00 2001 From: thead_admin Date: Tue, 13 Sep 2022 11:10:52 +0800 Subject: [PATCH] Linux_SDK_V0.9.5 --- ISO7816/Makefile | 24 + ISO7816/dsmart_card_interface.h | 79 + ISO7816/ioctl.h | 107 + ISO7816/iso7816 | Bin 0 -> 12248 bytes ISO7816/iso7816_test.c | 124 + ISO7816/tags | 98 + README.txt | 2 + efuse-hal-lib/Makefile | 30 + efuse-hal-lib/README.txt | 1 + efuse-hal-lib/lib/src/Makefile | 22 + efuse-hal-lib/lib/src/efuse-api.h | 377 ++ efuse-hal-lib/lib/src/light-efuse-hal.c | 1507 +++++ efuse-hal-lib/lib/src/light-efuse-hal.o | Bin 0 -> 81520 bytes efuse-hal-lib/test/efuse_demo/Makefile | 22 + efuse-hal-lib/test/efuse_demo/efuse-api.h | 377 ++ .../test/efuse_demo/light-efuse-test.c | 470 ++ .../test/efuse_demo/light-efuse-test.o | Bin 0 -> 20904 bytes efuse-hal-lib/test/output/efuse_demo | Bin 0 -> 23184 bytes .../mmc-utils/3rdparty/hmac_sha/hmac_sha2.c | 548 ++ .../mmc-utils/3rdparty/hmac_sha/hmac_sha2.h | 144 + .../mmc-utils/3rdparty/hmac_sha/sha2.c | 953 +++ .../mmc-utils/3rdparty/hmac_sha/sha2.h | 112 + emmc_hal_lib/mmc-utils/Android.mk | 12 + emmc_hal_lib/mmc-utils/Makefile | 59 + emmc_hal_lib/mmc-utils/csi_rpmb.c | 293 + emmc_hal_lib/mmc-utils/csi_rpmb.h | 62 + emmc_hal_lib/mmc-utils/csi_test.c | 108 + emmc_hal_lib/mmc-utils/lsmmc.c | 2431 ++++++++ emmc_hal_lib/mmc-utils/man/Makefile | 5 + emmc_hal_lib/mmc-utils/man/mmc.1 | 125 + emmc_hal_lib/mmc-utils/mmc.c | 496 ++ emmc_hal_lib/mmc-utils/mmc.h | 199 + emmc_hal_lib/mmc-utils/mmc_cmds.c | 2659 +++++++++ emmc_hal_lib/mmc-utils/mmc_cmds.h | 47 + emmc_hal_lib/mmc-utils/rpmb_test.png | Bin 0 -> 321506 bytes iopmp_hal_lib/Makefile | 22 + iopmp_hal_lib/light-iopmp-hal.c | 126 + iopmp_hal_lib/light-iopmp.h | 59 + iopmp_hal_lib/output/libiopmp.so | Bin 0 -> 7848 bytes iopmp_hal_lib/output/light-iopmp.h | 57 + light_fm_aon/light_aon_fpga.bin | Bin 0 -> 41492 bytes light_fm_aon/light_aon_fpga.elf | Bin 0 -> 631400 bytes rambus_sec_lib/bin/EIP120_scripts/aad.txt | 1 + .../bin/EIP120_scripts/ciphertest.sh | 186 + rambus_sec_lib/bin/EIP120_scripts/ckey.txt | 1 + rambus_sec_lib/bin/EIP120_scripts/hkey.txt | 1 + rambus_sec_lib/bin/EIP120_scripts/htest.sh | 219 + rambus_sec_lib/bin/EIP120_scripts/iv.txt | 1 + rambus_sec_lib/bin/EIP120_scripts/key.txt | 1 + rambus_sec_lib/bin/EIP120_scripts/lorum.txt | 3 + rambus_sec_lib/bin/EIP120_scripts/message.txt | 1 + rambus_sec_lib/bin/EIP120_scripts/tag.txt | 0 .../bin/EIP120_scripts/testdatain.txt | 1 + .../bin/EIP28_scripts/dh-key-agreement.sh | 344 ++ .../bin/EIP28_scripts/ecdh-key-agreement.sh | 342 ++ .../EIP28_scripts/edcsa-sign-and-verify.sh | 380 ++ .../rsa-encrypt-decrypt-sign-verify.sh | 415 ++ .../EIP28_scripts/sm2-encrypt-and-decrypt.sh | 376 ++ .../bin/EIP28_scripts/sm2-sign-and-verify.sh | 368 ++ rambus_sec_lib/bin/EIP28_scripts/test-all.sh | 37 + .../bin/EIP28_scripts/x25519-key-agreement.sh | 318 + rambus_sec_lib/bin/Makefile | 51 + rambus_sec_lib/bin/c_rehash | 232 + rambus_sec_lib/bin/cipher | Bin 0 -> 39808 bytes rambus_sec_lib/bin/digest | Bin 0 -> 25968 bytes rambus_sec_lib/bin/openssl | Bin 0 -> 665304 bytes rambus_sec_lib/bin/sm2decrypt | Bin 0 -> 27016 bytes rambus_sec_lib/bin/sm2encrypt | Bin 0 -> 31328 bytes rambus_sec_lib/bin/sm2sign | Bin 0 -> 33768 bytes rambus_sec_lib/bin/sm2verify | Bin 0 -> 32448 bytes rambus_sec_lib/include/openssl/aes.h | 92 + rambus_sec_lib/include/openssl/asn1.h | 886 +++ rambus_sec_lib/include/openssl/asn1_mac.h | 10 + rambus_sec_lib/include/openssl/asn1err.h | 256 + rambus_sec_lib/include/openssl/asn1t.h | 945 +++ rambus_sec_lib/include/openssl/async.h | 76 + rambus_sec_lib/include/openssl/asyncerr.h | 42 + rambus_sec_lib/include/openssl/bio.h | 801 +++ rambus_sec_lib/include/openssl/bioerr.h | 124 + rambus_sec_lib/include/openssl/blowfish.h | 61 + rambus_sec_lib/include/openssl/bn.h | 539 ++ rambus_sec_lib/include/openssl/bnerr.h | 100 + rambus_sec_lib/include/openssl/buffer.h | 58 + rambus_sec_lib/include/openssl/buffererr.h | 34 + rambus_sec_lib/include/openssl/camellia.h | 83 + rambus_sec_lib/include/openssl/cast.h | 53 + rambus_sec_lib/include/openssl/cmac.h | 41 + rambus_sec_lib/include/openssl/cms.h | 339 ++ rambus_sec_lib/include/openssl/cmserr.h | 202 + rambus_sec_lib/include/openssl/comp.h | 53 + rambus_sec_lib/include/openssl/comperr.h | 44 + rambus_sec_lib/include/openssl/conf.h | 168 + rambus_sec_lib/include/openssl/conf_api.h | 40 + rambus_sec_lib/include/openssl/conferr.h | 76 + rambus_sec_lib/include/openssl/crypto.h | 445 ++ rambus_sec_lib/include/openssl/cryptoerr.h | 57 + rambus_sec_lib/include/openssl/ct.h | 474 ++ rambus_sec_lib/include/openssl/cterr.h | 80 + rambus_sec_lib/include/openssl/des.h | 174 + rambus_sec_lib/include/openssl/dh.h | 340 ++ rambus_sec_lib/include/openssl/dherr.h | 88 + rambus_sec_lib/include/openssl/dsa.h | 244 + rambus_sec_lib/include/openssl/dsaerr.h | 72 + rambus_sec_lib/include/openssl/dtls1.h | 55 + rambus_sec_lib/include/openssl/e_os2.h | 300 + rambus_sec_lib/include/openssl/ebcdic.h | 33 + rambus_sec_lib/include/openssl/ec.h | 1481 +++++ rambus_sec_lib/include/openssl/ecdh.h | 10 + rambus_sec_lib/include/openssl/ecdsa.h | 10 + rambus_sec_lib/include/openssl/ecerr.h | 276 + rambus_sec_lib/include/openssl/engine.h | 751 +++ rambus_sec_lib/include/openssl/engineerr.h | 111 + rambus_sec_lib/include/openssl/err.h | 274 + rambus_sec_lib/include/openssl/evp.h | 1666 ++++++ rambus_sec_lib/include/openssl/evperr.h | 204 + rambus_sec_lib/include/openssl/hmac.h | 51 + rambus_sec_lib/include/openssl/idea.h | 64 + rambus_sec_lib/include/openssl/kdf.h | 97 + rambus_sec_lib/include/openssl/kdferr.h | 55 + rambus_sec_lib/include/openssl/lhash.h | 241 + rambus_sec_lib/include/openssl/md2.h | 44 + rambus_sec_lib/include/openssl/md4.h | 51 + rambus_sec_lib/include/openssl/md5.h | 50 + rambus_sec_lib/include/openssl/mdc2.h | 42 + rambus_sec_lib/include/openssl/modes.h | 208 + rambus_sec_lib/include/openssl/obj_mac.h | 5198 +++++++++++++++++ rambus_sec_lib/include/openssl/objects.h | 175 + rambus_sec_lib/include/openssl/objectserr.h | 42 + rambus_sec_lib/include/openssl/ocsp.h | 352 ++ rambus_sec_lib/include/openssl/ocsperr.h | 78 + rambus_sec_lib/include/openssl/opensslconf.h | 200 + rambus_sec_lib/include/openssl/opensslv.h | 101 + rambus_sec_lib/include/openssl/ossl_typ.h | 197 + rambus_sec_lib/include/openssl/pem.h | 378 ++ rambus_sec_lib/include/openssl/pem2.h | 13 + rambus_sec_lib/include/openssl/pemerr.h | 105 + rambus_sec_lib/include/openssl/pkcs12.h | 223 + rambus_sec_lib/include/openssl/pkcs12err.h | 81 + rambus_sec_lib/include/openssl/pkcs7.h | 319 + rambus_sec_lib/include/openssl/pkcs7err.h | 103 + rambus_sec_lib/include/openssl/rand.h | 77 + rambus_sec_lib/include/openssl/rand_drbg.h | 130 + rambus_sec_lib/include/openssl/randerr.h | 94 + rambus_sec_lib/include/openssl/rc2.h | 51 + rambus_sec_lib/include/openssl/rc4.h | 36 + rambus_sec_lib/include/openssl/rc5.h | 63 + rambus_sec_lib/include/openssl/ripemd.h | 47 + rambus_sec_lib/include/openssl/rsa.h | 513 ++ rambus_sec_lib/include/openssl/rsaerr.h | 167 + rambus_sec_lib/include/openssl/safestack.h | 207 + rambus_sec_lib/include/openssl/seed.h | 96 + rambus_sec_lib/include/openssl/sha.h | 119 + rambus_sec_lib/include/openssl/srp.h | 135 + rambus_sec_lib/include/openssl/srtp.h | 50 + rambus_sec_lib/include/openssl/ssl.h | 2438 ++++++++ rambus_sec_lib/include/openssl/ssl2.h | 24 + rambus_sec_lib/include/openssl/ssl3.h | 342 ++ rambus_sec_lib/include/openssl/sslerr.h | 773 +++ rambus_sec_lib/include/openssl/stack.h | 83 + rambus_sec_lib/include/openssl/store.h | 266 + rambus_sec_lib/include/openssl/storeerr.h | 91 + rambus_sec_lib/include/openssl/symhacks.h | 37 + rambus_sec_lib/include/openssl/tls1.h | 1237 ++++ rambus_sec_lib/include/openssl/ts.h | 559 ++ rambus_sec_lib/include/openssl/tserr.h | 132 + rambus_sec_lib/include/openssl/txt_db.h | 57 + rambus_sec_lib/include/openssl/ui.h | 368 ++ rambus_sec_lib/include/openssl/uierr.h | 65 + rambus_sec_lib/include/openssl/whrlpool.h | 48 + rambus_sec_lib/include/openssl/x509.h | 1050 ++++ rambus_sec_lib/include/openssl/x509_vfy.h | 632 ++ rambus_sec_lib/include/openssl/x509err.h | 129 + rambus_sec_lib/include/openssl/x509v3.h | 938 +++ rambus_sec_lib/include/openssl/x509v3err.h | 162 + rambus_sec_lib/lib/eip120.so | Bin 0 -> 95216 bytes rambus_sec_lib/lib/eip28pka.so | Bin 0 -> 220080 bytes rambus_sec_lib/lib/eip76rng.so | Bin 0 -> 93480 bytes rambus_sec_lib/lib/engines-1.1/capi.so | Bin 0 -> 7152 bytes rambus_sec_lib/lib/engines-1.1/padlock.so | Bin 0 -> 7152 bytes .../lib/firmware/firmware_eip28.bin | Bin 0 -> 19540 bytes rambus_sec_lib/lib/libcrypto.a | Bin 0 -> 8705850 bytes rambus_sec_lib/lib/libcrypto.so | 1 + rambus_sec_lib/lib/libcrypto.so.1.1 | Bin 0 -> 2491312 bytes rambus_sec_lib/lib/libdriver_120_u.a | Bin 0 -> 694690 bytes rambus_sec_lib/lib/libssl.a | Bin 0 -> 1963688 bytes rambus_sec_lib/lib/libssl.so | 1 + rambus_sec_lib/lib/libssl.so.1.1 | Bin 0 -> 544576 bytes .../lib/modules/extra/driver_120_k.ko | Bin 0 -> 5891344 bytes rambus_sec_lib/lib/modules/extra/lcik_main.ko | Bin 0 -> 3952640 bytes rambus_sec_lib/lib/modules/extra/tcrypt.ko | Bin 0 -> 339264 bytes .../lib/modules/extra/testmgr_rambus.ko | Bin 0 -> 225872 bytes rambus_sec_lib/lib/modules/extra/umdevxs_k.ko | Bin 0 -> 1641056 bytes rambus_sec_lib/lib/pkgconfig/libcrypto.pc | 12 + rambus_sec_lib/lib/pkgconfig/libssl.pc | 11 + rambus_sec_lib/lib/pkgconfig/openssl.pc | 9 + .../share/doc/openssl/html/man1/CA.pl.html | 198 + .../doc/openssl/html/man1/asn1parse.html | 227 + .../share/doc/openssl/html/man1/c_rehash.html | 1 + .../share/doc/openssl/html/man1/ca.html | 671 +++ .../share/doc/openssl/html/man1/ciphers.html | 811 +++ .../share/doc/openssl/html/man1/cms.html | 636 ++ .../share/doc/openssl/html/man1/crl.html | 170 + .../doc/openssl/html/man1/crl2pkcs7.html | 119 + .../share/doc/openssl/html/man1/dgst.html | 250 + .../share/doc/openssl/html/man1/dhparam.html | 170 + .../share/doc/openssl/html/man1/dsa.html | 178 + .../share/doc/openssl/html/man1/dsaparam.html | 144 + .../share/doc/openssl/html/man1/ec.html | 198 + .../share/doc/openssl/html/man1/ecparam.html | 201 + .../share/doc/openssl/html/man1/enc.html | 412 ++ .../share/doc/openssl/html/man1/engine.html | 133 + .../share/doc/openssl/html/man1/errstr.html | 64 + .../share/doc/openssl/html/man1/gendsa.html | 103 + .../share/doc/openssl/html/man1/genpkey.html | 363 ++ .../share/doc/openssl/html/man1/genrsa.html | 123 + .../share/doc/openssl/html/man1/list.html | 111 + .../share/doc/openssl/html/man1/nseq.html | 101 + .../share/doc/openssl/html/man1/ocsp.html | 415 ++ .../openssl/html/man1/openssl-asn1parse.html | 1 + .../openssl/html/man1/openssl-c_rehash.html | 1 + .../doc/openssl/html/man1/openssl-ca.html | 1 + .../openssl/html/man1/openssl-ciphers.html | 1 + .../doc/openssl/html/man1/openssl-cms.html | 1 + .../doc/openssl/html/man1/openssl-crl.html | 1 + .../openssl/html/man1/openssl-crl2pkcs7.html | 1 + .../doc/openssl/html/man1/openssl-dgst.html | 1 + .../openssl/html/man1/openssl-dhparam.html | 1 + .../doc/openssl/html/man1/openssl-dsa.html | 1 + .../openssl/html/man1/openssl-dsaparam.html | 1 + .../doc/openssl/html/man1/openssl-ec.html | 1 + .../openssl/html/man1/openssl-ecparam.html | 1 + .../doc/openssl/html/man1/openssl-enc.html | 1 + .../doc/openssl/html/man1/openssl-engine.html | 1 + .../doc/openssl/html/man1/openssl-errstr.html | 1 + .../doc/openssl/html/man1/openssl-gendsa.html | 1 + .../openssl/html/man1/openssl-genpkey.html | 1 + .../doc/openssl/html/man1/openssl-genrsa.html | 1 + .../doc/openssl/html/man1/openssl-list.html | 1 + .../doc/openssl/html/man1/openssl-nseq.html | 1 + .../doc/openssl/html/man1/openssl-ocsp.html | 1 + .../doc/openssl/html/man1/openssl-passwd.html | 1 + .../doc/openssl/html/man1/openssl-pkcs12.html | 1 + .../doc/openssl/html/man1/openssl-pkcs7.html | 1 + .../doc/openssl/html/man1/openssl-pkcs8.html | 1 + .../doc/openssl/html/man1/openssl-pkey.html | 1 + .../openssl/html/man1/openssl-pkeyparam.html | 1 + .../openssl/html/man1/openssl-pkeyutl.html | 1 + .../doc/openssl/html/man1/openssl-prime.html | 1 + .../doc/openssl/html/man1/openssl-rand.html | 1 + .../doc/openssl/html/man1/openssl-rehash.html | 1 + .../doc/openssl/html/man1/openssl-req.html | 1 + .../doc/openssl/html/man1/openssl-rsa.html | 1 + .../doc/openssl/html/man1/openssl-rsautl.html | 1 + .../openssl/html/man1/openssl-s_client.html | 1 + .../openssl/html/man1/openssl-s_server.html | 1 + .../doc/openssl/html/man1/openssl-s_time.html | 1 + .../openssl/html/man1/openssl-sess_id.html | 1 + .../doc/openssl/html/man1/openssl-smime.html | 1 + .../doc/openssl/html/man1/openssl-speed.html | 1 + .../doc/openssl/html/man1/openssl-spkac.html | 1 + .../doc/openssl/html/man1/openssl-srp.html | 1 + .../openssl/html/man1/openssl-storeutl.html | 1 + .../doc/openssl/html/man1/openssl-ts.html | 1 + .../doc/openssl/html/man1/openssl-tsget.html | 1 + .../doc/openssl/html/man1/openssl-verify.html | 1 + .../openssl/html/man1/openssl-version.html | 1 + .../doc/openssl/html/man1/openssl-x509.html | 1 + .../share/doc/openssl/html/man1/openssl.html | 712 +++ .../share/doc/openssl/html/man1/passwd.html | 154 + .../share/doc/openssl/html/man1/pkcs12.html | 379 ++ .../share/doc/openssl/html/man1/pkcs7.html | 141 + .../share/doc/openssl/html/man1/pkcs8.html | 291 + .../share/doc/openssl/html/man1/pkey.html | 185 + .../doc/openssl/html/man1/pkeyparam.html | 110 + .../share/doc/openssl/html/man1/pkeyutl.html | 331 ++ .../share/doc/openssl/html/man1/prime.html | 89 + .../share/doc/openssl/html/man1/rand.html | 101 + .../share/doc/openssl/html/man1/rehash.html | 132 + .../share/doc/openssl/html/man1/req.html | 612 ++ .../share/doc/openssl/html/man1/rsa.html | 202 + .../share/doc/openssl/html/man1/rsautl.html | 236 + .../share/doc/openssl/html/man1/s_client.html | 681 +++ .../share/doc/openssl/html/man1/s_server.html | 714 +++ .../share/doc/openssl/html/man1/s_time.html | 190 + .../share/doc/openssl/html/man1/sess_id.html | 195 + .../share/doc/openssl/html/man1/smime.html | 454 ++ .../share/doc/openssl/html/man1/speed.html | 117 + .../share/doc/openssl/html/man1/spkac.html | 167 + .../share/doc/openssl/html/man1/srp.html | 71 + .../share/doc/openssl/html/man1/storeutl.html | 151 + .../share/doc/openssl/html/man1/ts.html | 555 ++ .../share/doc/openssl/html/man1/tsget.html | 190 + .../share/doc/openssl/html/man1/verify.html | 825 +++ .../share/doc/openssl/html/man1/version.html | 110 + .../share/doc/openssl/html/man1/x509.html | 892 +++ .../html/man3/ACCESS_DESCRIPTION_free.html | 1 + .../html/man3/ACCESS_DESCRIPTION_new.html | 1 + .../doc/openssl/html/man3/ADMISSIONS.html | 120 + .../openssl/html/man3/ADMISSIONS_free.html | 1 + .../ADMISSIONS_get0_admissionAuthority.html | 1 + .../man3/ADMISSIONS_get0_namingAuthority.html | 1 + .../man3/ADMISSIONS_get0_professionInfos.html | 1 + .../doc/openssl/html/man3/ADMISSIONS_new.html | 1 + .../ADMISSIONS_set0_admissionAuthority.html | 1 + .../man3/ADMISSIONS_set0_namingAuthority.html | 1 + .../man3/ADMISSIONS_set0_professionInfos.html | 1 + .../openssl/html/man3/ADMISSION_SYNTAX.html | 1 + .../html/man3/ADMISSION_SYNTAX_free.html | 1 + ...ISSION_SYNTAX_get0_admissionAuthority.html | 1 + ...SION_SYNTAX_get0_contentsOfAdmissions.html | 1 + .../html/man3/ADMISSION_SYNTAX_new.html | 1 + ...ISSION_SYNTAX_set0_admissionAuthority.html | 1 + ...SION_SYNTAX_set0_contentsOfAdmissions.html | 1 + .../openssl/html/man3/ASIdOrRange_free.html | 1 + .../openssl/html/man3/ASIdOrRange_new.html | 1 + .../html/man3/ASIdentifierChoice_free.html | 1 + .../html/man3/ASIdentifierChoice_new.html | 1 + .../openssl/html/man3/ASIdentifiers_free.html | 1 + .../openssl/html/man3/ASIdentifiers_new.html | 1 + .../html/man3/ASN1_ENUMERATED_get.html | 1 + .../html/man3/ASN1_ENUMERATED_get_int64.html | 1 + .../html/man3/ASN1_ENUMERATED_set.html | 1 + .../html/man3/ASN1_ENUMERATED_set_int64.html | 1 + .../html/man3/ASN1_ENUMERATED_to_BN.html | 1 + .../html/man3/ASN1_GENERALIZEDTIME_adj.html | 1 + .../html/man3/ASN1_GENERALIZEDTIME_check.html | 1 + .../html/man3/ASN1_GENERALIZEDTIME_print.html | 1 + .../html/man3/ASN1_GENERALIZEDTIME_set.html | 1 + .../man3/ASN1_GENERALIZEDTIME_set_string.html | 1 + .../openssl/html/man3/ASN1_INTEGER_get.html | 1 + .../html/man3/ASN1_INTEGER_get_int64.html | 116 + .../html/man3/ASN1_INTEGER_get_uint64.html | 1 + .../openssl/html/man3/ASN1_INTEGER_set.html | 1 + .../html/man3/ASN1_INTEGER_set_int64.html | 1 + .../html/man3/ASN1_INTEGER_set_uint64.html | 1 + .../openssl/html/man3/ASN1_INTEGER_to_BN.html | 1 + .../doc/openssl/html/man3/ASN1_ITEM.html | 1 + .../doc/openssl/html/man3/ASN1_ITEM_get.html | 1 + .../openssl/html/man3/ASN1_ITEM_lookup.html | 59 + .../openssl/html/man3/ASN1_OBJECT_free.html | 1 + .../openssl/html/man3/ASN1_OBJECT_new.html | 68 + .../openssl/html/man3/ASN1_STRING_TABLE.html | 1 + .../html/man3/ASN1_STRING_TABLE_add.html | 82 + .../html/man3/ASN1_STRING_TABLE_cleanup.html | 1 + .../html/man3/ASN1_STRING_TABLE_get.html | 1 + .../openssl/html/man3/ASN1_STRING_cmp.html | 1 + .../openssl/html/man3/ASN1_STRING_data.html | 1 + .../openssl/html/man3/ASN1_STRING_dup.html | 1 + .../openssl/html/man3/ASN1_STRING_free.html | 1 + .../html/man3/ASN1_STRING_get0_data.html | 1 + .../openssl/html/man3/ASN1_STRING_length.html | 107 + .../openssl/html/man3/ASN1_STRING_new.html | 69 + .../openssl/html/man3/ASN1_STRING_print.html | 1 + .../html/man3/ASN1_STRING_print_ex.html | 103 + .../html/man3/ASN1_STRING_print_ex_fp.html | 1 + .../openssl/html/man3/ASN1_STRING_set.html | 1 + .../html/man3/ASN1_STRING_to_UTF8.html | 1 + .../openssl/html/man3/ASN1_STRING_type.html | 1 + .../html/man3/ASN1_STRING_type_new.html | 1 + .../doc/openssl/html/man3/ASN1_TIME_adj.html | 1 + .../openssl/html/man3/ASN1_TIME_check.html | 1 + .../html/man3/ASN1_TIME_cmp_time_t.html | 1 + .../openssl/html/man3/ASN1_TIME_compare.html | 1 + .../doc/openssl/html/man3/ASN1_TIME_diff.html | 1 + .../html/man3/ASN1_TIME_normalize.html | 1 + .../openssl/html/man3/ASN1_TIME_print.html | 1 + .../doc/openssl/html/man3/ASN1_TIME_set.html | 190 + .../html/man3/ASN1_TIME_set_string.html | 1 + .../html/man3/ASN1_TIME_set_string_X509.html | 1 + .../man3/ASN1_TIME_to_generalizedtime.html | 1 + .../openssl/html/man3/ASN1_TIME_to_tm.html | 1 + .../doc/openssl/html/man3/ASN1_TYPE_cmp.html | 1 + .../doc/openssl/html/man3/ASN1_TYPE_get.html | 89 + .../html/man3/ASN1_TYPE_pack_sequence.html | 1 + .../doc/openssl/html/man3/ASN1_TYPE_set.html | 1 + .../doc/openssl/html/man3/ASN1_TYPE_set1.html | 1 + .../html/man3/ASN1_TYPE_unpack_sequence.html | 1 + .../openssl/html/man3/ASN1_UTCTIME_adj.html | 1 + .../openssl/html/man3/ASN1_UTCTIME_check.html | 1 + .../html/man3/ASN1_UTCTIME_cmp_time_t.html | 1 + .../openssl/html/man3/ASN1_UTCTIME_print.html | 1 + .../openssl/html/man3/ASN1_UTCTIME_set.html | 1 + .../html/man3/ASN1_UTCTIME_set_string.html | 1 + .../html/man3/ASN1_add_oid_module.html | 1 + .../html/man3/ASN1_generate_nconf.html | 274 + .../openssl/html/man3/ASN1_generate_v3.html | 1 + .../doc/openssl/html/man3/ASN1_tag2str.html | 1 + .../doc/openssl/html/man3/ASRange_free.html | 1 + .../doc/openssl/html/man3/ASRange_new.html | 1 + .../html/man3/ASYNC_WAIT_CTX_clear_fd.html | 1 + .../html/man3/ASYNC_WAIT_CTX_free.html | 1 + .../html/man3/ASYNC_WAIT_CTX_get_all_fds.html | 1 + .../man3/ASYNC_WAIT_CTX_get_changed_fds.html | 1 + .../html/man3/ASYNC_WAIT_CTX_get_fd.html | 1 + .../openssl/html/man3/ASYNC_WAIT_CTX_new.html | 96 + .../html/man3/ASYNC_WAIT_CTX_set_wait_fd.html | 1 + .../openssl/html/man3/ASYNC_block_pause.html | 1 + .../html/man3/ASYNC_cleanup_thread.html | 1 + .../html/man3/ASYNC_get_current_job.html | 1 + .../openssl/html/man3/ASYNC_get_wait_ctx.html | 1 + .../openssl/html/man3/ASYNC_init_thread.html | 1 + .../openssl/html/man3/ASYNC_is_capable.html | 1 + .../openssl/html/man3/ASYNC_pause_job.html | 1 + .../openssl/html/man3/ASYNC_start_job.html | 273 + .../html/man3/ASYNC_unblock_pause.html | 1 + .../html/man3/AUTHORITY_INFO_ACCESS_free.html | 1 + .../html/man3/AUTHORITY_INFO_ACCESS_new.html | 1 + .../html/man3/AUTHORITY_KEYID_free.html | 1 + .../html/man3/AUTHORITY_KEYID_new.html | 1 + .../html/man3/BASIC_CONSTRAINTS_free.html | 1 + .../html/man3/BASIC_CONSTRAINTS_new.html | 1 + .../doc/openssl/html/man3/BF_cbc_encrypt.html | 1 + .../openssl/html/man3/BF_cfb64_encrypt.html | 1 + .../doc/openssl/html/man3/BF_decrypt.html | 1 + .../doc/openssl/html/man3/BF_ecb_encrypt.html | 1 + .../doc/openssl/html/man3/BF_encrypt.html | 95 + .../openssl/html/man3/BF_ofb64_encrypt.html | 1 + .../doc/openssl/html/man3/BF_options.html | 1 + .../doc/openssl/html/man3/BF_set_key.html | 1 + .../share/doc/openssl/html/man3/BIO_ADDR.html | 96 + .../doc/openssl/html/man3/BIO_ADDRINFO.html | 101 + .../html/man3/BIO_ADDRINFO_address.html | 1 + .../html/man3/BIO_ADDRINFO_family.html | 1 + .../openssl/html/man3/BIO_ADDRINFO_free.html | 1 + .../openssl/html/man3/BIO_ADDRINFO_next.html | 1 + .../html/man3/BIO_ADDRINFO_protocol.html | 1 + .../html/man3/BIO_ADDRINFO_socktype.html | 1 + .../doc/openssl/html/man3/BIO_ADDR_clear.html | 1 + .../openssl/html/man3/BIO_ADDR_family.html | 1 + .../doc/openssl/html/man3/BIO_ADDR_free.html | 1 + .../html/man3/BIO_ADDR_hostname_string.html | 1 + .../doc/openssl/html/man3/BIO_ADDR_new.html | 1 + .../html/man3/BIO_ADDR_path_string.html | 1 + .../html/man3/BIO_ADDR_rawaddress.html | 1 + .../openssl/html/man3/BIO_ADDR_rawmake.html | 1 + .../openssl/html/man3/BIO_ADDR_rawport.html | 1 + .../html/man3/BIO_ADDR_service_string.html | 1 + .../doc/openssl/html/man3/BIO_accept_ex.html | 1 + .../html/man3/BIO_append_filename.html | 1 + .../share/doc/openssl/html/man3/BIO_bind.html | 1 + .../openssl/html/man3/BIO_callback_ctrl.html | 1 + .../openssl/html/man3/BIO_callback_fn.html | 1 + .../openssl/html/man3/BIO_callback_fn_ex.html | 1 + .../openssl/html/man3/BIO_closesocket.html | 1 + .../doc/openssl/html/man3/BIO_connect.html | 121 + .../share/doc/openssl/html/man3/BIO_ctrl.html | 115 + .../html/man3/BIO_ctrl_get_read_request.html | 1 + .../man3/BIO_ctrl_get_write_guarantee.html | 1 + .../openssl/html/man3/BIO_ctrl_pending.html | 1 + .../man3/BIO_ctrl_reset_read_request.html | 1 + .../openssl/html/man3/BIO_ctrl_wpending.html | 1 + .../openssl/html/man3/BIO_debug_callback.html | 1 + .../html/man3/BIO_destroy_bio_pair.html | 1 + .../doc/openssl/html/man3/BIO_do_accept.html | 1 + .../doc/openssl/html/man3/BIO_do_connect.html | 1 + .../openssl/html/man3/BIO_do_handshake.html | 1 + .../share/doc/openssl/html/man3/BIO_eof.html | 1 + .../doc/openssl/html/man3/BIO_f_base64.html | 102 + .../doc/openssl/html/man3/BIO_f_buffer.html | 89 + .../doc/openssl/html/man3/BIO_f_cipher.html | 81 + .../share/doc/openssl/html/man3/BIO_f_md.html | 156 + .../doc/openssl/html/man3/BIO_f_null.html | 58 + .../doc/openssl/html/man3/BIO_f_ssl.html | 263 + .../doc/openssl/html/man3/BIO_find_type.html | 83 + .../doc/openssl/html/man3/BIO_flush.html | 1 + .../share/doc/openssl/html/man3/BIO_free.html | 1 + .../doc/openssl/html/man3/BIO_free_all.html | 1 + .../html/man3/BIO_get_accept_ip_family.html | 1 + .../html/man3/BIO_get_accept_name.html | 1 + .../html/man3/BIO_get_accept_port.html | 1 + .../openssl/html/man3/BIO_get_bind_mode.html | 1 + .../html/man3/BIO_get_buffer_num_lines.html | 1 + .../openssl/html/man3/BIO_get_callback.html | 1 + .../html/man3/BIO_get_callback_arg.html | 1 + .../html/man3/BIO_get_callback_ex.html | 1 + .../openssl/html/man3/BIO_get_cipher_ctx.html | 1 + .../html/man3/BIO_get_cipher_status.html | 1 + .../doc/openssl/html/man3/BIO_get_close.html | 1 + .../html/man3/BIO_get_conn_address.html | 1 + .../html/man3/BIO_get_conn_hostname.html | 1 + .../html/man3/BIO_get_conn_ip_family.html | 1 + .../openssl/html/man3/BIO_get_conn_port.html | 1 + .../doc/openssl/html/man3/BIO_get_data.html | 76 + .../openssl/html/man3/BIO_get_ex_data.html | 1 + .../html/man3/BIO_get_ex_new_index.html | 75 + .../doc/openssl/html/man3/BIO_get_fd.html | 1 + .../doc/openssl/html/man3/BIO_get_fp.html | 1 + .../html/man3/BIO_get_info_callback.html | 1 + .../doc/openssl/html/man3/BIO_get_init.html | 1 + .../doc/openssl/html/man3/BIO_get_md.html | 1 + .../doc/openssl/html/man3/BIO_get_md_ctx.html | 1 + .../openssl/html/man3/BIO_get_mem_data.html | 1 + .../openssl/html/man3/BIO_get_mem_ptr.html | 1 + .../openssl/html/man3/BIO_get_new_index.html | 1 + .../html/man3/BIO_get_num_renegotiates.html | 1 + .../openssl/html/man3/BIO_get_peer_name.html | 1 + .../openssl/html/man3/BIO_get_peer_port.html | 1 + .../html/man3/BIO_get_read_request.html | 1 + .../openssl/html/man3/BIO_get_retry_BIO.html | 1 + .../html/man3/BIO_get_retry_reason.html | 1 + .../openssl/html/man3/BIO_get_shutdown.html | 1 + .../doc/openssl/html/man3/BIO_get_ssl.html | 1 + .../html/man3/BIO_get_write_buf_size.html | 1 + .../html/man3/BIO_get_write_guarantee.html | 1 + .../share/doc/openssl/html/man3/BIO_gets.html | 1 + .../html/man3/BIO_hostserv_priorities.html | 1 + .../doc/openssl/html/man3/BIO_info_cb.html | 1 + .../doc/openssl/html/man3/BIO_int_ctrl.html | 1 + .../doc/openssl/html/man3/BIO_listen.html | 1 + .../doc/openssl/html/man3/BIO_lookup.html | 1 + .../doc/openssl/html/man3/BIO_lookup_ex.html | 1 + .../openssl/html/man3/BIO_lookup_type.html | 1 + .../openssl/html/man3/BIO_make_bio_pair.html | 1 + .../doc/openssl/html/man3/BIO_meth_free.html | 1 + .../html/man3/BIO_meth_get_callback_ctrl.html | 1 + .../html/man3/BIO_meth_get_create.html | 1 + .../openssl/html/man3/BIO_meth_get_ctrl.html | 1 + .../html/man3/BIO_meth_get_destroy.html | 1 + .../openssl/html/man3/BIO_meth_get_gets.html | 1 + .../openssl/html/man3/BIO_meth_get_puts.html | 1 + .../openssl/html/man3/BIO_meth_get_read.html | 1 + .../html/man3/BIO_meth_get_read_ex.html | 1 + .../openssl/html/man3/BIO_meth_get_write.html | 1 + .../html/man3/BIO_meth_get_write_ex.html | 1 + .../doc/openssl/html/man3/BIO_meth_new.html | 128 + .../html/man3/BIO_meth_set_callback_ctrl.html | 1 + .../html/man3/BIO_meth_set_create.html | 1 + .../openssl/html/man3/BIO_meth_set_ctrl.html | 1 + .../html/man3/BIO_meth_set_destroy.html | 1 + .../openssl/html/man3/BIO_meth_set_gets.html | 1 + .../openssl/html/man3/BIO_meth_set_puts.html | 1 + .../openssl/html/man3/BIO_meth_set_read.html | 1 + .../html/man3/BIO_meth_set_read_ex.html | 1 + .../openssl/html/man3/BIO_meth_set_write.html | 1 + .../html/man3/BIO_meth_set_write_ex.html | 1 + .../openssl/html/man3/BIO_method_type.html | 1 + .../share/doc/openssl/html/man3/BIO_new.html | 84 + .../doc/openssl/html/man3/BIO_new_CMS.html | 81 + .../doc/openssl/html/man3/BIO_new_accept.html | 1 + .../openssl/html/man3/BIO_new_bio_pair.html | 1 + .../html/man3/BIO_new_buffer_ssl_connect.html | 1 + .../openssl/html/man3/BIO_new_connect.html | 1 + .../doc/openssl/html/man3/BIO_new_fd.html | 1 + .../doc/openssl/html/man3/BIO_new_file.html | 1 + .../doc/openssl/html/man3/BIO_new_fp.html | 1 + .../openssl/html/man3/BIO_new_mem_buf.html | 1 + .../doc/openssl/html/man3/BIO_new_socket.html | 1 + .../doc/openssl/html/man3/BIO_new_ssl.html | 1 + .../html/man3/BIO_new_ssl_connect.html | 1 + .../share/doc/openssl/html/man3/BIO_next.html | 1 + .../openssl/html/man3/BIO_parse_hostserv.html | 91 + .../doc/openssl/html/man3/BIO_pending.html | 1 + .../share/doc/openssl/html/man3/BIO_pop.html | 1 + .../doc/openssl/html/man3/BIO_printf.html | 61 + .../doc/openssl/html/man3/BIO_ptr_ctrl.html | 1 + .../share/doc/openssl/html/man3/BIO_push.html | 98 + .../share/doc/openssl/html/man3/BIO_puts.html | 1 + .../share/doc/openssl/html/man3/BIO_read.html | 90 + .../doc/openssl/html/man3/BIO_read_ex.html | 1 + .../openssl/html/man3/BIO_read_filename.html | 1 + .../doc/openssl/html/man3/BIO_reset.html | 1 + .../doc/openssl/html/man3/BIO_retry_type.html | 1 + .../openssl/html/man3/BIO_rw_filename.html | 1 + .../doc/openssl/html/man3/BIO_s_accept.html | 175 + .../doc/openssl/html/man3/BIO_s_bio.html | 157 + .../doc/openssl/html/man3/BIO_s_connect.html | 171 + .../share/doc/openssl/html/man3/BIO_s_fd.html | 103 + .../doc/openssl/html/man3/BIO_s_file.html | 159 + .../doc/openssl/html/man3/BIO_s_mem.html | 137 + .../doc/openssl/html/man3/BIO_s_null.html | 60 + .../doc/openssl/html/man3/BIO_s_secmem.html | 1 + .../doc/openssl/html/man3/BIO_s_socket.html | 68 + .../share/doc/openssl/html/man3/BIO_seek.html | 1 + .../html/man3/BIO_set_accept_bios.html | 1 + .../html/man3/BIO_set_accept_ip_family.html | 1 + .../html/man3/BIO_set_accept_name.html | 1 + .../html/man3/BIO_set_accept_port.html | 1 + .../openssl/html/man3/BIO_set_bind_mode.html | 1 + .../html/man3/BIO_set_buffer_read_data.html | 1 + .../html/man3/BIO_set_buffer_size.html | 1 + .../openssl/html/man3/BIO_set_callback.html | 251 + .../html/man3/BIO_set_callback_arg.html | 1 + .../html/man3/BIO_set_callback_ex.html | 1 + .../doc/openssl/html/man3/BIO_set_cipher.html | 1 + .../doc/openssl/html/man3/BIO_set_close.html | 1 + .../html/man3/BIO_set_conn_address.html | 1 + .../html/man3/BIO_set_conn_hostname.html | 1 + .../html/man3/BIO_set_conn_ip_family.html | 1 + .../openssl/html/man3/BIO_set_conn_port.html | 1 + .../doc/openssl/html/man3/BIO_set_data.html | 1 + .../openssl/html/man3/BIO_set_ex_data.html | 1 + .../doc/openssl/html/man3/BIO_set_fd.html | 1 + .../doc/openssl/html/man3/BIO_set_fp.html | 1 + .../html/man3/BIO_set_info_callback.html | 1 + .../doc/openssl/html/man3/BIO_set_init.html | 1 + .../doc/openssl/html/man3/BIO_set_md.html | 1 + .../openssl/html/man3/BIO_set_mem_buf.html | 1 + .../html/man3/BIO_set_mem_eof_return.html | 1 + .../doc/openssl/html/man3/BIO_set_nbio.html | 1 + .../html/man3/BIO_set_nbio_accept.html | 1 + .../doc/openssl/html/man3/BIO_set_next.html | 1 + .../html/man3/BIO_set_read_buffer_size.html | 1 + .../html/man3/BIO_set_retry_reason.html | 1 + .../openssl/html/man3/BIO_set_shutdown.html | 1 + .../doc/openssl/html/man3/BIO_set_ssl.html | 1 + .../openssl/html/man3/BIO_set_ssl_mode.html | 1 + .../man3/BIO_set_ssl_renegotiate_bytes.html | 1 + .../man3/BIO_set_ssl_renegotiate_timeout.html | 1 + .../html/man3/BIO_set_write_buf_size.html | 1 + .../html/man3/BIO_set_write_buffer_size.html | 1 + .../html/man3/BIO_should_io_special.html | 1 + .../openssl/html/man3/BIO_should_read.html | 1 + .../openssl/html/man3/BIO_should_retry.html | 115 + .../openssl/html/man3/BIO_should_write.html | 1 + .../openssl/html/man3/BIO_shutdown_wr.html | 1 + .../doc/openssl/html/man3/BIO_snprintf.html | 1 + .../doc/openssl/html/man3/BIO_socket.html | 1 + .../html/man3/BIO_ssl_copy_session_id.html | 1 + .../openssl/html/man3/BIO_ssl_shutdown.html | 1 + .../share/doc/openssl/html/man3/BIO_tell.html | 1 + .../doc/openssl/html/man3/BIO_up_ref.html | 1 + .../doc/openssl/html/man3/BIO_vfree.html | 1 + .../doc/openssl/html/man3/BIO_vprintf.html | 1 + .../doc/openssl/html/man3/BIO_vsnprintf.html | 1 + .../doc/openssl/html/man3/BIO_wpending.html | 1 + .../doc/openssl/html/man3/BIO_write.html | 1 + .../doc/openssl/html/man3/BIO_write_ex.html | 1 + .../openssl/html/man3/BIO_write_filename.html | 1 + .../html/man3/BN_BLINDING_convert.html | 1 + .../html/man3/BN_BLINDING_convert_ex.html | 1 + .../html/man3/BN_BLINDING_create_param.html | 1 + .../openssl/html/man3/BN_BLINDING_free.html | 1 + .../html/man3/BN_BLINDING_get_flags.html | 1 + .../openssl/html/man3/BN_BLINDING_invert.html | 1 + .../html/man3/BN_BLINDING_invert_ex.html | 1 + .../man3/BN_BLINDING_is_current_thread.html | 1 + .../openssl/html/man3/BN_BLINDING_lock.html | 1 + .../openssl/html/man3/BN_BLINDING_new.html | 112 + .../man3/BN_BLINDING_set_current_thread.html | 1 + .../html/man3/BN_BLINDING_set_flags.html | 1 + .../openssl/html/man3/BN_BLINDING_unlock.html | 1 + .../openssl/html/man3/BN_BLINDING_update.html | 1 + .../doc/openssl/html/man3/BN_CTX_end.html | 1 + .../doc/openssl/html/man3/BN_CTX_free.html | 1 + .../doc/openssl/html/man3/BN_CTX_get.html | 1 + .../doc/openssl/html/man3/BN_CTX_new.html | 87 + .../openssl/html/man3/BN_CTX_secure_new.html | 1 + .../doc/openssl/html/man3/BN_CTX_start.html | 66 + .../doc/openssl/html/man3/BN_GENCB_call.html | 1 + .../doc/openssl/html/man3/BN_GENCB_free.html | 1 + .../openssl/html/man3/BN_GENCB_get_arg.html | 1 + .../doc/openssl/html/man3/BN_GENCB_new.html | 1 + .../doc/openssl/html/man3/BN_GENCB_set.html | 1 + .../openssl/html/man3/BN_GENCB_set_old.html | 1 + .../openssl/html/man3/BN_MONT_CTX_copy.html | 1 + .../openssl/html/man3/BN_MONT_CTX_free.html | 1 + .../openssl/html/man3/BN_MONT_CTX_new.html | 1 + .../openssl/html/man3/BN_MONT_CTX_set.html | 1 + .../openssl/html/man3/BN_RECP_CTX_free.html | 1 + .../openssl/html/man3/BN_RECP_CTX_new.html | 1 + .../openssl/html/man3/BN_RECP_CTX_set.html | 1 + .../share/doc/openssl/html/man3/BN_add.html | 117 + .../doc/openssl/html/man3/BN_add_word.html | 78 + .../doc/openssl/html/man3/BN_bin2bn.html | 1 + .../doc/openssl/html/man3/BN_bn2bin.html | 100 + .../doc/openssl/html/man3/BN_bn2binpad.html | 1 + .../doc/openssl/html/man3/BN_bn2dec.html | 1 + .../doc/openssl/html/man3/BN_bn2hex.html | 1 + .../doc/openssl/html/man3/BN_bn2lebinpad.html | 1 + .../doc/openssl/html/man3/BN_bn2mpi.html | 1 + .../share/doc/openssl/html/man3/BN_clear.html | 1 + .../doc/openssl/html/man3/BN_clear_bit.html | 1 + .../doc/openssl/html/man3/BN_clear_free.html | 1 + .../share/doc/openssl/html/man3/BN_cmp.html | 63 + .../share/doc/openssl/html/man3/BN_copy.html | 75 + .../doc/openssl/html/man3/BN_dec2bn.html | 1 + .../share/doc/openssl/html/man3/BN_div.html | 1 + .../doc/openssl/html/man3/BN_div_recp.html | 1 + .../doc/openssl/html/man3/BN_div_word.html | 1 + .../share/doc/openssl/html/man3/BN_dup.html | 1 + .../share/doc/openssl/html/man3/BN_exp.html | 1 + .../share/doc/openssl/html/man3/BN_free.html | 1 + .../openssl/html/man3/BN_from_montgomery.html | 1 + .../share/doc/openssl/html/man3/BN_gcd.html | 1 + .../openssl/html/man3/BN_generate_prime.html | 174 + .../html/man3/BN_generate_prime_ex.html | 1 + .../html/man3/BN_get0_nist_prime_192.html | 1 + .../html/man3/BN_get0_nist_prime_224.html | 1 + .../html/man3/BN_get0_nist_prime_256.html | 1 + .../html/man3/BN_get0_nist_prime_384.html | 1 + .../html/man3/BN_get0_nist_prime_521.html | 1 + .../html/man3/BN_get_rfc2409_prime_1024.html | 1 + .../html/man3/BN_get_rfc2409_prime_768.html | 1 + .../html/man3/BN_get_rfc3526_prime_1536.html | 1 + .../html/man3/BN_get_rfc3526_prime_2048.html | 1 + .../html/man3/BN_get_rfc3526_prime_3072.html | 1 + .../html/man3/BN_get_rfc3526_prime_4096.html | 1 + .../html/man3/BN_get_rfc3526_prime_6144.html | 1 + .../html/man3/BN_get_rfc3526_prime_8192.html | 1 + .../doc/openssl/html/man3/BN_get_word.html | 1 + .../doc/openssl/html/man3/BN_hex2bn.html | 1 + .../doc/openssl/html/man3/BN_is_bit_set.html | 1 + .../doc/openssl/html/man3/BN_is_odd.html | 1 + .../doc/openssl/html/man3/BN_is_one.html | 1 + .../doc/openssl/html/man3/BN_is_prime.html | 1 + .../doc/openssl/html/man3/BN_is_prime_ex.html | 1 + .../html/man3/BN_is_prime_fasttest.html | 1 + .../html/man3/BN_is_prime_fasttest_ex.html | 1 + .../doc/openssl/html/man3/BN_is_word.html | 1 + .../doc/openssl/html/man3/BN_is_zero.html | 1 + .../doc/openssl/html/man3/BN_lebin2bn.html | 1 + .../doc/openssl/html/man3/BN_lshift.html | 1 + .../doc/openssl/html/man3/BN_lshift1.html | 1 + .../doc/openssl/html/man3/BN_mask_bits.html | 1 + .../share/doc/openssl/html/man3/BN_mod.html | 1 + .../doc/openssl/html/man3/BN_mod_add.html | 1 + .../doc/openssl/html/man3/BN_mod_exp.html | 1 + .../doc/openssl/html/man3/BN_mod_inverse.html | 59 + .../doc/openssl/html/man3/BN_mod_mul.html | 1 + .../html/man3/BN_mod_mul_montgomery.html | 99 + .../html/man3/BN_mod_mul_reciprocal.html | 84 + .../doc/openssl/html/man3/BN_mod_sqr.html | 1 + .../doc/openssl/html/man3/BN_mod_sub.html | 1 + .../doc/openssl/html/man3/BN_mod_word.html | 1 + .../doc/openssl/html/man3/BN_mpi2bn.html | 1 + .../share/doc/openssl/html/man3/BN_mul.html | 1 + .../doc/openssl/html/man3/BN_mul_word.html | 1 + .../share/doc/openssl/html/man3/BN_new.html | 75 + .../share/doc/openssl/html/man3/BN_nnmod.html | 1 + .../doc/openssl/html/man3/BN_num_bits.html | 1 + .../openssl/html/man3/BN_num_bits_word.html | 1 + .../doc/openssl/html/man3/BN_num_bytes.html | 71 + .../share/doc/openssl/html/man3/BN_one.html | 1 + .../share/doc/openssl/html/man3/BN_print.html | 1 + .../doc/openssl/html/man3/BN_print_fp.html | 1 + .../doc/openssl/html/man3/BN_priv_rand.html | 1 + .../openssl/html/man3/BN_priv_rand_range.html | 1 + .../doc/openssl/html/man3/BN_pseudo_rand.html | 1 + .../html/man3/BN_pseudo_rand_range.html | 1 + .../share/doc/openssl/html/man3/BN_rand.html | 88 + .../doc/openssl/html/man3/BN_rand_range.html | 1 + .../doc/openssl/html/man3/BN_rshift.html | 1 + .../doc/openssl/html/man3/BN_rshift1.html | 1 + .../doc/openssl/html/man3/BN_secure_new.html | 1 + .../openssl/html/man3/BN_security_bits.html | 66 + .../doc/openssl/html/man3/BN_set_bit.html | 81 + .../doc/openssl/html/man3/BN_set_word.html | 1 + .../share/doc/openssl/html/man3/BN_sqr.html | 1 + .../share/doc/openssl/html/man3/BN_sub.html | 1 + .../doc/openssl/html/man3/BN_sub_word.html | 1 + .../share/doc/openssl/html/man3/BN_swap.html | 51 + .../html/man3/BN_to_ASN1_ENUMERATED.html | 1 + .../openssl/html/man3/BN_to_ASN1_INTEGER.html | 1 + .../openssl/html/man3/BN_to_montgomery.html | 1 + .../share/doc/openssl/html/man3/BN_ucmp.html | 1 + .../doc/openssl/html/man3/BN_value_one.html | 1 + .../doc/openssl/html/man3/BN_with_flags.html | 1 + .../share/doc/openssl/html/man3/BN_zero.html | 82 + .../doc/openssl/html/man3/BUF_MEM_free.html | 1 + .../doc/openssl/html/man3/BUF_MEM_grow.html | 1 + .../openssl/html/man3/BUF_MEM_grow_clean.html | 1 + .../doc/openssl/html/man3/BUF_MEM_new.html | 86 + .../doc/openssl/html/man3/BUF_MEM_new_ex.html | 1 + .../doc/openssl/html/man3/BUF_reverse.html | 1 + .../html/man3/CERTIFICATEPOLICIES_free.html | 1 + .../html/man3/CERTIFICATEPOLICIES_new.html | 1 + .../html/man3/CMS_ContentInfo_free.html | 1 + .../html/man3/CMS_ContentInfo_new.html | 1 + .../html/man3/CMS_ContentInfo_print_ctx.html | 1 + .../html/man3/CMS_ReceiptRequest_create0.html | 1 + .../html/man3/CMS_ReceiptRequest_free.html | 1 + .../man3/CMS_ReceiptRequest_get0_values.html | 1 + .../html/man3/CMS_ReceiptRequest_new.html | 1 + .../html/man3/CMS_RecipientInfo_decrypt.html | 1 + .../html/man3/CMS_RecipientInfo_encrypt.html | 1 + .../man3/CMS_RecipientInfo_kekri_get0_id.html | 1 + .../man3/CMS_RecipientInfo_kekri_id_cmp.html | 1 + .../man3/CMS_RecipientInfo_ktri_cert_cmp.html | 1 + ...CMS_RecipientInfo_ktri_get0_signer_id.html | 1 + .../html/man3/CMS_RecipientInfo_set0_key.html | 1 + .../man3/CMS_RecipientInfo_set0_pkey.html | 1 + .../html/man3/CMS_RecipientInfo_type.html | 1 + .../html/man3/CMS_SignerInfo_cert_cmp.html | 1 + .../man3/CMS_SignerInfo_get0_signature.html | 1 + .../man3/CMS_SignerInfo_get0_signer_id.html | 1 + .../man3/CMS_SignerInfo_set1_signer_cert.html | 1 + .../html/man3/CMS_SignerInfo_sign.html | 1 + .../doc/openssl/html/man3/CMS_add0_cert.html | 79 + .../doc/openssl/html/man3/CMS_add0_crl.html | 1 + .../html/man3/CMS_add0_recipient_key.html | 1 + .../html/man3/CMS_add1_ReceiptRequest.html | 1 + .../doc/openssl/html/man3/CMS_add1_cert.html | 1 + .../doc/openssl/html/man3/CMS_add1_crl.html | 1 + .../html/man3/CMS_add1_recipient_cert.html | 77 + .../openssl/html/man3/CMS_add1_signer.html | 89 + .../doc/openssl/html/man3/CMS_compress.html | 85 + .../doc/openssl/html/man3/CMS_decrypt.html | 79 + .../doc/openssl/html/man3/CMS_encrypt.html | 98 + .../doc/openssl/html/man3/CMS_final.html | 61 + .../html/man3/CMS_get0_RecipientInfos.html | 110 + .../html/man3/CMS_get0_SignerInfos.html | 89 + .../openssl/html/man3/CMS_get0_content.html | 1 + .../html/man3/CMS_get0_eContentType.html | 1 + .../openssl/html/man3/CMS_get0_signers.html | 1 + .../doc/openssl/html/man3/CMS_get0_type.html | 87 + .../html/man3/CMS_get1_ReceiptRequest.html | 82 + .../doc/openssl/html/man3/CMS_get1_certs.html | 1 + .../doc/openssl/html/man3/CMS_get1_crls.html | 1 + .../html/man3/CMS_set1_eContentType.html | 1 + .../share/doc/openssl/html/man3/CMS_sign.html | 104 + .../openssl/html/man3/CMS_sign_receipt.html | 65 + .../doc/openssl/html/man3/CMS_uncompress.html | 74 + .../doc/openssl/html/man3/CMS_verify.html | 114 + .../openssl/html/man3/CMS_verify_receipt.html | 67 + .../html/man3/CONF_modules_finish.html | 1 + .../openssl/html/man3/CONF_modules_free.html | 72 + .../openssl/html/man3/CONF_modules_load.html | 1 + .../html/man3/CONF_modules_load_file.html | 137 + .../html/man3/CONF_modules_unload.html | 1 + .../html/man3/CRL_DIST_POINTS_free.html | 1 + .../html/man3/CRL_DIST_POINTS_new.html | 1 + .../doc/openssl/html/man3/CRYPTO_EX_dup.html | 1 + .../doc/openssl/html/man3/CRYPTO_EX_free.html | 1 + .../doc/openssl/html/man3/CRYPTO_EX_new.html | 1 + .../html/man3/CRYPTO_THREAD_lock_free.html | 1 + .../html/man3/CRYPTO_THREAD_lock_new.html | 1 + .../html/man3/CRYPTO_THREAD_read_lock.html | 1 + .../html/man3/CRYPTO_THREAD_run_once.html | 159 + .../html/man3/CRYPTO_THREAD_unlock.html | 1 + .../html/man3/CRYPTO_THREAD_write_lock.html | 1 + .../openssl/html/man3/CRYPTO_atomic_add.html | 1 + .../openssl/html/man3/CRYPTO_clear_free.html | 1 + .../html/man3/CRYPTO_clear_realloc.html | 1 + .../doc/openssl/html/man3/CRYPTO_free.html | 1 + .../html/man3/CRYPTO_free_ex_data.html | 1 + .../html/man3/CRYPTO_free_ex_index.html | 1 + .../html/man3/CRYPTO_get_alloc_counts.html | 1 + .../openssl/html/man3/CRYPTO_get_ex_data.html | 1 + .../html/man3/CRYPTO_get_ex_new_index.html | 129 + .../html/man3/CRYPTO_get_mem_functions.html | 1 + .../doc/openssl/html/man3/CRYPTO_malloc.html | 1 + .../openssl/html/man3/CRYPTO_mem_ctrl.html | 1 + .../html/man3/CRYPTO_mem_debug_pop.html | 1 + .../html/man3/CRYPTO_mem_debug_push.html | 1 + .../openssl/html/man3/CRYPTO_mem_leaks.html | 1 + .../html/man3/CRYPTO_mem_leaks_cb.html | 1 + .../html/man3/CRYPTO_mem_leaks_fp.html | 1 + .../doc/openssl/html/man3/CRYPTO_memcmp.html | 56 + .../openssl/html/man3/CRYPTO_new_ex_data.html | 1 + .../doc/openssl/html/man3/CRYPTO_realloc.html | 1 + .../html/man3/CRYPTO_secure_allocated.html | 1 + .../html/man3/CRYPTO_secure_clear_free.html | 1 + .../openssl/html/man3/CRYPTO_secure_free.html | 1 + .../html/man3/CRYPTO_secure_malloc.html | 1 + .../html/man3/CRYPTO_secure_malloc_done.html | 1 + .../html/man3/CRYPTO_secure_malloc_init.html | 1 + .../CRYPTO_secure_malloc_initialized.html | 1 + .../openssl/html/man3/CRYPTO_secure_used.html | 1 + .../html/man3/CRYPTO_secure_zalloc.html | 1 + .../openssl/html/man3/CRYPTO_set_ex_data.html | 1 + .../html/man3/CRYPTO_set_mem_debug.html | 1 + .../html/man3/CRYPTO_set_mem_functions.html | 1 + .../doc/openssl/html/man3/CRYPTO_strdup.html | 1 + .../doc/openssl/html/man3/CRYPTO_strndup.html | 1 + .../doc/openssl/html/man3/CRYPTO_zalloc.html | 1 + .../openssl/html/man3/CTLOG_STORE_free.html | 1 + .../html/man3/CTLOG_STORE_get0_log_by_id.html | 65 + .../man3/CTLOG_STORE_load_default_file.html | 1 + .../html/man3/CTLOG_STORE_load_file.html | 1 + .../openssl/html/man3/CTLOG_STORE_new.html | 86 + .../doc/openssl/html/man3/CTLOG_free.html | 1 + .../openssl/html/man3/CTLOG_get0_log_id.html | 1 + .../openssl/html/man3/CTLOG_get0_name.html | 1 + .../html/man3/CTLOG_get0_public_key.html | 1 + .../doc/openssl/html/man3/CTLOG_new.html | 80 + .../html/man3/CTLOG_new_from_base64.html | 1 + .../html/man3/CT_POLICY_EVAL_CTX_free.html | 1 + .../man3/CT_POLICY_EVAL_CTX_get0_cert.html | 1 + .../man3/CT_POLICY_EVAL_CTX_get0_issuer.html | 1 + .../CT_POLICY_EVAL_CTX_get0_log_store.html | 1 + .../man3/CT_POLICY_EVAL_CTX_get_time.html | 1 + .../html/man3/CT_POLICY_EVAL_CTX_new.html | 126 + .../man3/CT_POLICY_EVAL_CTX_set1_cert.html | 1 + .../man3/CT_POLICY_EVAL_CTX_set1_issuer.html | 1 + ...OLICY_EVAL_CTX_set_shared_CTLOG_STORE.html | 1 + .../man3/CT_POLICY_EVAL_CTX_set_time.html | 1 + .../html/man3/DECLARE_ASN1_FUNCTIONS.html | 1 + .../openssl/html/man3/DECLARE_LHASH_OF.html | 1 + .../doc/openssl/html/man3/DECLARE_PEM_rw.html | 1 + .../html/man3/DEFINE_SPECIAL_STACK_OF.html | 1 + .../man3/DEFINE_SPECIAL_STACK_OF_CONST.html | 1 + .../openssl/html/man3/DEFINE_STACK_OF.html | 197 + .../html/man3/DEFINE_STACK_OF_CONST.html | 1 + .../doc/openssl/html/man3/DES_cbc_cksum.html | 1 + .../openssl/html/man3/DES_cfb64_encrypt.html | 1 + .../openssl/html/man3/DES_cfb_encrypt.html | 1 + .../doc/openssl/html/man3/DES_crypt.html | 1 + .../openssl/html/man3/DES_ecb2_encrypt.html | 1 + .../openssl/html/man3/DES_ecb3_encrypt.html | 1 + .../openssl/html/man3/DES_ecb_encrypt.html | 1 + .../html/man3/DES_ede2_cbc_encrypt.html | 1 + .../html/man3/DES_ede2_cfb64_encrypt.html | 1 + .../html/man3/DES_ede2_ofb64_encrypt.html | 1 + .../html/man3/DES_ede3_cbc_encrypt.html | 1 + .../html/man3/DES_ede3_cfb64_encrypt.html | 1 + .../html/man3/DES_ede3_ofb64_encrypt.html | 1 + .../doc/openssl/html/man3/DES_fcrypt.html | 1 + .../openssl/html/man3/DES_is_weak_key.html | 1 + .../doc/openssl/html/man3/DES_key_sched.html | 1 + .../openssl/html/man3/DES_ncbc_encrypt.html | 1 + .../openssl/html/man3/DES_ofb64_encrypt.html | 1 + .../openssl/html/man3/DES_ofb_encrypt.html | 1 + .../openssl/html/man3/DES_pcbc_encrypt.html | 1 + .../doc/openssl/html/man3/DES_quad_cksum.html | 1 + .../doc/openssl/html/man3/DES_random_key.html | 217 + .../doc/openssl/html/man3/DES_set_key.html | 1 + .../html/man3/DES_set_key_checked.html | 1 + .../html/man3/DES_set_key_unchecked.html | 1 + .../openssl/html/man3/DES_set_odd_parity.html | 1 + .../html/man3/DES_string_to_2keys.html | 1 + .../openssl/html/man3/DES_string_to_key.html | 1 + .../openssl/html/man3/DES_xcbc_encrypt.html | 1 + .../doc/openssl/html/man3/DH_OpenSSL.html | 1 + .../share/doc/openssl/html/man3/DH_bits.html | 1 + .../share/doc/openssl/html/man3/DH_check.html | 1 + .../doc/openssl/html/man3/DH_check_ex.html | 1 + .../openssl/html/man3/DH_check_params.html | 1 + .../openssl/html/man3/DH_check_params_ex.html | 1 + .../html/man3/DH_check_pub_key_ex.html | 1 + .../doc/openssl/html/man3/DH_clear_flags.html | 1 + .../doc/openssl/html/man3/DH_compute_key.html | 1 + .../html/man3/DH_compute_key_padded.html | 1 + .../share/doc/openssl/html/man3/DH_free.html | 1 + .../openssl/html/man3/DH_generate_key.html | 77 + .../html/man3/DH_generate_parameters.html | 155 + .../html/man3/DH_generate_parameters_ex.html | 1 + .../doc/openssl/html/man3/DH_get0_engine.html | 1 + .../doc/openssl/html/man3/DH_get0_g.html | 1 + .../doc/openssl/html/man3/DH_get0_key.html | 1 + .../doc/openssl/html/man3/DH_get0_p.html | 1 + .../doc/openssl/html/man3/DH_get0_pqg.html | 106 + .../openssl/html/man3/DH_get0_priv_key.html | 1 + .../openssl/html/man3/DH_get0_pub_key.html | 1 + .../doc/openssl/html/man3/DH_get0_q.html | 1 + .../openssl/html/man3/DH_get_1024_160.html | 71 + .../openssl/html/man3/DH_get_2048_224.html | 1 + .../openssl/html/man3/DH_get_2048_256.html | 1 + .../html/man3/DH_get_default_method.html | 1 + .../doc/openssl/html/man3/DH_get_ex_data.html | 1 + .../html/man3/DH_get_ex_new_index.html | 1 + .../doc/openssl/html/man3/DH_get_length.html | 1 + .../doc/openssl/html/man3/DH_get_nid.html | 1 + .../doc/openssl/html/man3/DH_meth_dup.html | 1 + .../doc/openssl/html/man3/DH_meth_free.html | 1 + .../html/man3/DH_meth_get0_app_data.html | 1 + .../openssl/html/man3/DH_meth_get0_name.html | 1 + .../html/man3/DH_meth_get_bn_mod_exp.html | 1 + .../html/man3/DH_meth_get_compute_key.html | 1 + .../openssl/html/man3/DH_meth_get_finish.html | 1 + .../openssl/html/man3/DH_meth_get_flags.html | 1 + .../html/man3/DH_meth_get_generate_key.html | 1 + .../man3/DH_meth_get_generate_params.html | 1 + .../openssl/html/man3/DH_meth_get_init.html | 1 + .../doc/openssl/html/man3/DH_meth_new.html | 135 + .../html/man3/DH_meth_set0_app_data.html | 1 + .../openssl/html/man3/DH_meth_set1_name.html | 1 + .../html/man3/DH_meth_set_bn_mod_exp.html | 1 + .../html/man3/DH_meth_set_compute_key.html | 1 + .../openssl/html/man3/DH_meth_set_finish.html | 1 + .../openssl/html/man3/DH_meth_set_flags.html | 1 + .../html/man3/DH_meth_set_generate_key.html | 1 + .../man3/DH_meth_set_generate_params.html | 1 + .../openssl/html/man3/DH_meth_set_init.html | 1 + .../share/doc/openssl/html/man3/DH_new.html | 62 + .../doc/openssl/html/man3/DH_new_by_nid.html | 55 + .../doc/openssl/html/man3/DH_new_method.html | 1 + .../openssl/html/man3/DH_security_bits.html | 1 + .../doc/openssl/html/man3/DH_set0_key.html | 1 + .../doc/openssl/html/man3/DH_set0_pqg.html | 1 + .../html/man3/DH_set_default_method.html | 1 + .../doc/openssl/html/man3/DH_set_ex_data.html | 1 + .../doc/openssl/html/man3/DH_set_flags.html | 1 + .../doc/openssl/html/man3/DH_set_length.html | 1 + .../doc/openssl/html/man3/DH_set_method.html | 82 + .../share/doc/openssl/html/man3/DH_size.html | 75 + .../doc/openssl/html/man3/DH_test_flags.html | 1 + .../doc/openssl/html/man3/DHparams_print.html | 1 + .../openssl/html/man3/DHparams_print_fp.html | 1 + .../html/man3/DIRECTORYSTRING_free.html | 1 + .../html/man3/DIRECTORYSTRING_new.html | 1 + .../openssl/html/man3/DISPLAYTEXT_free.html | 1 + .../openssl/html/man3/DISPLAYTEXT_new.html | 1 + .../html/man3/DIST_POINT_NAME_free.html | 1 + .../html/man3/DIST_POINT_NAME_new.html | 1 + .../openssl/html/man3/DIST_POINT_free.html | 1 + .../doc/openssl/html/man3/DIST_POINT_new.html | 1 + .../doc/openssl/html/man3/DSA_OpenSSL.html | 1 + .../doc/openssl/html/man3/DSA_SIG_free.html | 1 + .../doc/openssl/html/man3/DSA_SIG_get0.html | 1 + .../doc/openssl/html/man3/DSA_SIG_new.html | 69 + .../doc/openssl/html/man3/DSA_SIG_set0.html | 1 + .../share/doc/openssl/html/man3/DSA_bits.html | 1 + .../openssl/html/man3/DSA_clear_flags.html | 1 + .../doc/openssl/html/man3/DSA_do_sign.html | 63 + .../doc/openssl/html/man3/DSA_do_verify.html | 1 + .../doc/openssl/html/man3/DSA_dup_DH.html | 61 + .../share/doc/openssl/html/man3/DSA_free.html | 1 + .../openssl/html/man3/DSA_generate_key.html | 58 + .../html/man3/DSA_generate_parameters.html | 114 + .../html/man3/DSA_generate_parameters_ex.html | 1 + .../openssl/html/man3/DSA_get0_engine.html | 1 + .../doc/openssl/html/man3/DSA_get0_g.html | 1 + .../doc/openssl/html/man3/DSA_get0_key.html | 1 + .../doc/openssl/html/man3/DSA_get0_p.html | 1 + .../doc/openssl/html/man3/DSA_get0_pqg.html | 98 + .../openssl/html/man3/DSA_get0_priv_key.html | 1 + .../openssl/html/man3/DSA_get0_pub_key.html | 1 + .../doc/openssl/html/man3/DSA_get0_q.html | 1 + .../html/man3/DSA_get_default_method.html | 1 + .../openssl/html/man3/DSA_get_ex_data.html | 1 + .../html/man3/DSA_get_ex_new_index.html | 1 + .../doc/openssl/html/man3/DSA_meth_dup.html | 1 + .../doc/openssl/html/man3/DSA_meth_free.html | 1 + .../html/man3/DSA_meth_get0_app_data.html | 1 + .../openssl/html/man3/DSA_meth_get0_name.html | 1 + .../html/man3/DSA_meth_get_bn_mod_exp.html | 1 + .../html/man3/DSA_meth_get_finish.html | 1 + .../openssl/html/man3/DSA_meth_get_flags.html | 1 + .../openssl/html/man3/DSA_meth_get_init.html | 1 + .../html/man3/DSA_meth_get_keygen.html | 1 + .../html/man3/DSA_meth_get_mod_exp.html | 1 + .../html/man3/DSA_meth_get_paramgen.html | 1 + .../openssl/html/man3/DSA_meth_get_sign.html | 1 + .../html/man3/DSA_meth_get_sign_setup.html | 1 + .../html/man3/DSA_meth_get_verify.html | 1 + .../doc/openssl/html/man3/DSA_meth_new.html | 171 + .../html/man3/DSA_meth_set0_app_data.html | 1 + .../openssl/html/man3/DSA_meth_set1_name.html | 1 + .../html/man3/DSA_meth_set_bn_mod_exp.html | 1 + .../html/man3/DSA_meth_set_finish.html | 1 + .../openssl/html/man3/DSA_meth_set_flags.html | 1 + .../openssl/html/man3/DSA_meth_set_init.html | 1 + .../html/man3/DSA_meth_set_keygen.html | 1 + .../html/man3/DSA_meth_set_mod_exp.html | 1 + .../html/man3/DSA_meth_set_paramgen.html | 1 + .../openssl/html/man3/DSA_meth_set_sign.html | 1 + .../html/man3/DSA_meth_set_sign_setup.html | 1 + .../html/man3/DSA_meth_set_verify.html | 1 + .../share/doc/openssl/html/man3/DSA_new.html | 62 + .../doc/openssl/html/man3/DSA_new_method.html | 1 + .../doc/openssl/html/man3/DSA_print.html | 1 + .../doc/openssl/html/man3/DSA_print_fp.html | 1 + .../openssl/html/man3/DSA_security_bits.html | 1 + .../doc/openssl/html/man3/DSA_set0_key.html | 1 + .../doc/openssl/html/man3/DSA_set0_pqg.html | 1 + .../html/man3/DSA_set_default_method.html | 1 + .../openssl/html/man3/DSA_set_ex_data.html | 1 + .../doc/openssl/html/man3/DSA_set_flags.html | 1 + .../doc/openssl/html/man3/DSA_set_method.html | 80 + .../share/doc/openssl/html/man3/DSA_sign.html | 75 + .../doc/openssl/html/man3/DSA_sign_setup.html | 1 + .../share/doc/openssl/html/man3/DSA_size.html | 66 + .../doc/openssl/html/man3/DSA_test_flags.html | 1 + .../doc/openssl/html/man3/DSA_verify.html | 1 + .../doc/openssl/html/man3/DSAparams_dup.html | 1 + .../openssl/html/man3/DSAparams_print.html | 1 + .../openssl/html/man3/DSAparams_print_fp.html | 1 + .../openssl/html/man3/DTLS_client_method.html | 1 + .../openssl/html/man3/DTLS_get_data_mtu.html | 56 + .../doc/openssl/html/man3/DTLS_method.html | 1 + .../openssl/html/man3/DTLS_server_method.html | 1 + .../openssl/html/man3/DTLS_set_timer_cb.html | 58 + .../doc/openssl/html/man3/DTLS_timer_cb.html | 1 + .../html/man3/DTLSv1_2_client_method.html | 1 + .../openssl/html/man3/DTLSv1_2_method.html | 1 + .../html/man3/DTLSv1_2_server_method.html | 1 + .../html/man3/DTLSv1_client_method.html | 1 + .../doc/openssl/html/man3/DTLSv1_listen.html | 95 + .../doc/openssl/html/man3/DTLSv1_method.html | 1 + .../html/man3/DTLSv1_server_method.html | 1 + .../openssl/html/man3/ECDH_get_ex_data.html | 1 + .../html/man3/ECDH_get_ex_new_index.html | 1 + .../openssl/html/man3/ECDH_set_ex_data.html | 1 + .../doc/openssl/html/man3/ECDSA_SIG_free.html | 1 + .../doc/openssl/html/man3/ECDSA_SIG_get0.html | 1 + .../openssl/html/man3/ECDSA_SIG_get0_r.html | 1 + .../openssl/html/man3/ECDSA_SIG_get0_s.html | 1 + .../doc/openssl/html/man3/ECDSA_SIG_new.html | 180 + .../doc/openssl/html/man3/ECDSA_SIG_set0.html | 1 + .../doc/openssl/html/man3/ECDSA_do_sign.html | 1 + .../openssl/html/man3/ECDSA_do_sign_ex.html | 1 + .../openssl/html/man3/ECDSA_do_verify.html | 1 + .../doc/openssl/html/man3/ECDSA_sign.html | 1 + .../doc/openssl/html/man3/ECDSA_sign_ex.html | 1 + .../openssl/html/man3/ECDSA_sign_setup.html | 1 + .../doc/openssl/html/man3/ECDSA_size.html | 1 + .../doc/openssl/html/man3/ECDSA_verify.html | 1 + .../openssl/html/man3/ECPARAMETERS_free.html | 1 + .../openssl/html/man3/ECPARAMETERS_new.html | 1 + .../html/man3/ECPKPARAMETERS_free.html | 1 + .../openssl/html/man3/ECPKPARAMETERS_new.html | 1 + .../html/man3/ECPKParameters_print.html | 59 + .../html/man3/ECPKParameters_print_fp.html | 1 + .../html/man3/EC_GF2m_simple_method.html | 1 + .../openssl/html/man3/EC_GFp_mont_method.html | 1 + .../openssl/html/man3/EC_GFp_nist_method.html | 1 + .../html/man3/EC_GFp_nistp224_method.html | 1 + .../html/man3/EC_GFp_nistp256_method.html | 1 + .../html/man3/EC_GFp_nistp521_method.html | 1 + .../html/man3/EC_GFp_simple_method.html | 75 + .../doc/openssl/html/man3/EC_GROUP_check.html | 1 + .../man3/EC_GROUP_check_discriminant.html | 1 + .../html/man3/EC_GROUP_clear_free.html | 1 + .../doc/openssl/html/man3/EC_GROUP_cmp.html | 1 + .../doc/openssl/html/man3/EC_GROUP_copy.html | 180 + .../doc/openssl/html/man3/EC_GROUP_dup.html | 1 + .../doc/openssl/html/man3/EC_GROUP_free.html | 1 + .../html/man3/EC_GROUP_get0_cofactor.html | 1 + .../html/man3/EC_GROUP_get0_generator.html | 1 + .../html/man3/EC_GROUP_get0_order.html | 1 + .../openssl/html/man3/EC_GROUP_get0_seed.html | 1 + .../html/man3/EC_GROUP_get_asn1_flag.html | 1 + .../html/man3/EC_GROUP_get_basis_type.html | 1 + .../html/man3/EC_GROUP_get_cofactor.html | 1 + .../openssl/html/man3/EC_GROUP_get_curve.html | 1 + .../html/man3/EC_GROUP_get_curve_GF2m.html | 1 + .../html/man3/EC_GROUP_get_curve_GFp.html | 1 + .../html/man3/EC_GROUP_get_curve_name.html | 1 + .../html/man3/EC_GROUP_get_degree.html | 1 + .../html/man3/EC_GROUP_get_ecparameters.html | 1 + .../man3/EC_GROUP_get_ecpkparameters.html | 1 + .../openssl/html/man3/EC_GROUP_get_order.html | 1 + .../man3/EC_GROUP_get_pentanomial_basis.html | 1 + .../EC_GROUP_get_point_conversion_form.html | 1 + .../html/man3/EC_GROUP_get_seed_len.html | 1 + .../man3/EC_GROUP_get_trinomial_basis.html | 1 + .../man3/EC_GROUP_have_precompute_mult.html | 1 + .../openssl/html/man3/EC_GROUP_method_of.html | 1 + .../doc/openssl/html/man3/EC_GROUP_new.html | 123 + .../html/man3/EC_GROUP_new_by_curve_name.html | 1 + .../html/man3/EC_GROUP_new_curve_GF2m.html | 1 + .../html/man3/EC_GROUP_new_curve_GFp.html | 1 + .../man3/EC_GROUP_new_from_ecparameters.html | 1 + .../EC_GROUP_new_from_ecpkparameters.html | 1 + .../html/man3/EC_GROUP_order_bits.html | 1 + .../html/man3/EC_GROUP_precompute_mult.html | 1 + .../html/man3/EC_GROUP_set_asn1_flag.html | 1 + .../openssl/html/man3/EC_GROUP_set_curve.html | 1 + .../html/man3/EC_GROUP_set_curve_GF2m.html | 1 + .../html/man3/EC_GROUP_set_curve_GFp.html | 1 + .../html/man3/EC_GROUP_set_curve_name.html | 1 + .../html/man3/EC_GROUP_set_generator.html | 1 + .../EC_GROUP_set_point_conversion_form.html | 1 + .../openssl/html/man3/EC_GROUP_set_seed.html | 1 + .../openssl/html/man3/EC_KEY_check_key.html | 1 + .../openssl/html/man3/EC_KEY_clear_flags.html | 1 + .../doc/openssl/html/man3/EC_KEY_copy.html | 1 + .../EC_KEY_decoded_from_explicit_params.html | 1 + .../doc/openssl/html/man3/EC_KEY_dup.html | 1 + .../doc/openssl/html/man3/EC_KEY_free.html | 1 + .../html/man3/EC_KEY_generate_key.html | 1 + .../openssl/html/man3/EC_KEY_get0_engine.html | 1 + .../openssl/html/man3/EC_KEY_get0_group.html | 1 + .../html/man3/EC_KEY_get0_private_key.html | 1 + .../html/man3/EC_KEY_get0_public_key.html | 1 + .../html/man3/EC_KEY_get_conv_form.html | 1 + .../html/man3/EC_KEY_get_enc_flags.html | 61 + .../openssl/html/man3/EC_KEY_get_ex_data.html | 1 + .../html/man3/EC_KEY_get_ex_new_index.html | 1 + .../openssl/html/man3/EC_KEY_get_flags.html | 1 + .../openssl/html/man3/EC_KEY_get_method.html | 1 + .../doc/openssl/html/man3/EC_KEY_key2buf.html | 1 + .../doc/openssl/html/man3/EC_KEY_new.html | 146 + .../html/man3/EC_KEY_new_by_curve_name.html | 1 + .../doc/openssl/html/man3/EC_KEY_oct2key.html | 1 + .../openssl/html/man3/EC_KEY_oct2priv.html | 1 + .../html/man3/EC_KEY_precompute_mult.html | 1 + .../openssl/html/man3/EC_KEY_priv2buf.html | 1 + .../openssl/html/man3/EC_KEY_priv2oct.html | 1 + .../html/man3/EC_KEY_set_asn1_flag.html | 1 + .../html/man3/EC_KEY_set_conv_form.html | 1 + .../html/man3/EC_KEY_set_enc_flags.html | 1 + .../openssl/html/man3/EC_KEY_set_ex_data.html | 1 + .../openssl/html/man3/EC_KEY_set_flags.html | 1 + .../openssl/html/man3/EC_KEY_set_group.html | 1 + .../openssl/html/man3/EC_KEY_set_method.html | 1 + .../html/man3/EC_KEY_set_private_key.html | 1 + .../html/man3/EC_KEY_set_public_key.html | 1 + ...KEY_set_public_key_affine_coordinates.html | 1 + .../doc/openssl/html/man3/EC_KEY_up_ref.html | 1 + .../html/man3/EC_METHOD_get_field_type.html | 1 + .../doc/openssl/html/man3/EC_POINT_add.html | 95 + .../openssl/html/man3/EC_POINT_bn2point.html | 1 + .../html/man3/EC_POINT_clear_free.html | 1 + .../doc/openssl/html/man3/EC_POINT_cmp.html | 1 + .../doc/openssl/html/man3/EC_POINT_copy.html | 1 + .../doc/openssl/html/man3/EC_POINT_dbl.html | 1 + .../doc/openssl/html/man3/EC_POINT_dup.html | 1 + .../doc/openssl/html/man3/EC_POINT_free.html | 1 + ...POINT_get_Jprojective_coordinates_GFp.html | 1 + .../man3/EC_POINT_get_affine_coordinates.html | 1 + .../EC_POINT_get_affine_coordinates_GF2m.html | 1 + .../EC_POINT_get_affine_coordinates_GFp.html | 1 + .../openssl/html/man3/EC_POINT_hex2point.html | 1 + .../openssl/html/man3/EC_POINT_invert.html | 1 + .../html/man3/EC_POINT_is_at_infinity.html | 1 + .../html/man3/EC_POINT_is_on_curve.html | 1 + .../html/man3/EC_POINT_make_affine.html | 1 + .../openssl/html/man3/EC_POINT_method_of.html | 1 + .../doc/openssl/html/man3/EC_POINT_mul.html | 1 + .../doc/openssl/html/man3/EC_POINT_new.html | 169 + .../openssl/html/man3/EC_POINT_oct2point.html | 1 + .../openssl/html/man3/EC_POINT_point2bn.html | 1 + .../openssl/html/man3/EC_POINT_point2buf.html | 1 + .../openssl/html/man3/EC_POINT_point2hex.html | 1 + .../openssl/html/man3/EC_POINT_point2oct.html | 1 + ...POINT_set_Jprojective_coordinates_GFp.html | 1 + .../man3/EC_POINT_set_affine_coordinates.html | 1 + .../EC_POINT_set_affine_coordinates_GF2m.html | 1 + .../EC_POINT_set_affine_coordinates_GFp.html | 1 + .../EC_POINT_set_compressed_coordinates.html | 1 + ...POINT_set_compressed_coordinates_GF2m.html | 1 + ..._POINT_set_compressed_coordinates_GFp.html | 1 + .../html/man3/EC_POINT_set_to_infinity.html | 1 + .../html/man3/EC_POINTs_make_affine.html | 1 + .../doc/openssl/html/man3/EC_POINTs_mul.html | 1 + .../html/man3/EC_get_builtin_curves.html | 1 + .../openssl/html/man3/EDIPARTYNAME_free.html | 1 + .../openssl/html/man3/EDIPARTYNAME_new.html | 1 + .../doc/openssl/html/man3/ENGINE_add.html | 422 ++ .../html/man3/ENGINE_add_conf_module.html | 1 + .../doc/openssl/html/man3/ENGINE_by_id.html | 1 + .../doc/openssl/html/man3/ENGINE_cleanup.html | 1 + .../html/man3/ENGINE_cmd_is_executable.html | 1 + .../doc/openssl/html/man3/ENGINE_ctrl.html | 1 + .../openssl/html/man3/ENGINE_ctrl_cmd.html | 1 + .../html/man3/ENGINE_ctrl_cmd_string.html | 1 + .../doc/openssl/html/man3/ENGINE_finish.html | 1 + .../doc/openssl/html/man3/ENGINE_free.html | 1 + .../doc/openssl/html/man3/ENGINE_get_DH.html | 1 + .../doc/openssl/html/man3/ENGINE_get_DSA.html | 1 + .../openssl/html/man3/ENGINE_get_RAND.html | 1 + .../doc/openssl/html/man3/ENGINE_get_RSA.html | 1 + .../openssl/html/man3/ENGINE_get_cipher.html | 1 + .../html/man3/ENGINE_get_cipher_engine.html | 1 + .../openssl/html/man3/ENGINE_get_ciphers.html | 1 + .../html/man3/ENGINE_get_cmd_defns.html | 1 + .../html/man3/ENGINE_get_ctrl_function.html | 1 + .../html/man3/ENGINE_get_default_DH.html | 1 + .../html/man3/ENGINE_get_default_DSA.html | 1 + .../html/man3/ENGINE_get_default_RAND.html | 1 + .../html/man3/ENGINE_get_default_RSA.html | 1 + .../man3/ENGINE_get_destroy_function.html | 1 + .../openssl/html/man3/ENGINE_get_digest.html | 1 + .../html/man3/ENGINE_get_digest_engine.html | 1 + .../openssl/html/man3/ENGINE_get_digests.html | 1 + .../openssl/html/man3/ENGINE_get_ex_data.html | 1 + .../html/man3/ENGINE_get_ex_new_index.html | 1 + .../html/man3/ENGINE_get_finish_function.html | 1 + .../openssl/html/man3/ENGINE_get_first.html | 1 + .../openssl/html/man3/ENGINE_get_flags.html | 1 + .../doc/openssl/html/man3/ENGINE_get_id.html | 1 + .../html/man3/ENGINE_get_init_function.html | 1 + .../openssl/html/man3/ENGINE_get_last.html | 1 + .../ENGINE_get_load_privkey_function.html | 1 + .../man3/ENGINE_get_load_pubkey_function.html | 1 + .../openssl/html/man3/ENGINE_get_name.html | 1 + .../openssl/html/man3/ENGINE_get_next.html | 1 + .../openssl/html/man3/ENGINE_get_prev.html | 1 + .../html/man3/ENGINE_get_table_flags.html | 1 + .../doc/openssl/html/man3/ENGINE_init.html | 1 + .../man3/ENGINE_load_builtin_engines.html | 1 + .../html/man3/ENGINE_load_private_key.html | 1 + .../html/man3/ENGINE_load_public_key.html | 1 + .../doc/openssl/html/man3/ENGINE_new.html | 1 + .../openssl/html/man3/ENGINE_register_DH.html | 1 + .../html/man3/ENGINE_register_DSA.html | 1 + .../html/man3/ENGINE_register_RAND.html | 1 + .../html/man3/ENGINE_register_RSA.html | 1 + .../html/man3/ENGINE_register_all_DH.html | 1 + .../html/man3/ENGINE_register_all_DSA.html | 1 + .../html/man3/ENGINE_register_all_RAND.html | 1 + .../html/man3/ENGINE_register_all_RSA.html | 1 + .../man3/ENGINE_register_all_ciphers.html | 1 + .../man3/ENGINE_register_all_complete.html | 1 + .../man3/ENGINE_register_all_digests.html | 1 + .../html/man3/ENGINE_register_ciphers.html | 1 + .../html/man3/ENGINE_register_complete.html | 1 + .../html/man3/ENGINE_register_digests.html | 1 + .../doc/openssl/html/man3/ENGINE_remove.html | 1 + .../doc/openssl/html/man3/ENGINE_set_DH.html | 1 + .../doc/openssl/html/man3/ENGINE_set_DSA.html | 1 + .../openssl/html/man3/ENGINE_set_RAND.html | 1 + .../doc/openssl/html/man3/ENGINE_set_RSA.html | 1 + .../openssl/html/man3/ENGINE_set_ciphers.html | 1 + .../html/man3/ENGINE_set_cmd_defns.html | 1 + .../html/man3/ENGINE_set_ctrl_function.html | 1 + .../openssl/html/man3/ENGINE_set_default.html | 1 + .../html/man3/ENGINE_set_default_DH.html | 1 + .../html/man3/ENGINE_set_default_DSA.html | 1 + .../html/man3/ENGINE_set_default_RAND.html | 1 + .../html/man3/ENGINE_set_default_RSA.html | 1 + .../html/man3/ENGINE_set_default_ciphers.html | 1 + .../html/man3/ENGINE_set_default_digests.html | 1 + .../html/man3/ENGINE_set_default_string.html | 1 + .../man3/ENGINE_set_destroy_function.html | 1 + .../openssl/html/man3/ENGINE_set_digests.html | 1 + .../openssl/html/man3/ENGINE_set_ex_data.html | 1 + .../html/man3/ENGINE_set_finish_function.html | 1 + .../openssl/html/man3/ENGINE_set_flags.html | 1 + .../doc/openssl/html/man3/ENGINE_set_id.html | 1 + .../html/man3/ENGINE_set_init_function.html | 1 + .../ENGINE_set_load_privkey_function.html | 1 + .../man3/ENGINE_set_load_pubkey_function.html | 1 + .../openssl/html/man3/ENGINE_set_name.html | 1 + .../html/man3/ENGINE_set_table_flags.html | 1 + .../html/man3/ENGINE_unregister_DH.html | 1 + .../html/man3/ENGINE_unregister_DSA.html | 1 + .../html/man3/ENGINE_unregister_RAND.html | 1 + .../html/man3/ENGINE_unregister_RSA.html | 1 + .../html/man3/ENGINE_unregister_ciphers.html | 1 + .../html/man3/ENGINE_unregister_digests.html | 1 + .../doc/openssl/html/man3/ENGINE_up_ref.html | 1 + .../openssl/html/man3/ERR_FATAL_ERROR.html | 1 + .../doc/openssl/html/man3/ERR_GET_FUNC.html | 1 + .../doc/openssl/html/man3/ERR_GET_LIB.html | 77 + .../doc/openssl/html/man3/ERR_GET_REASON.html | 1 + .../share/doc/openssl/html/man3/ERR_PACK.html | 1 + .../openssl/html/man3/ERR_add_error_data.html | 1 + .../html/man3/ERR_add_error_vdata.html | 1 + .../openssl/html/man3/ERR_clear_error.html | 56 + .../openssl/html/man3/ERR_error_string.html | 77 + .../openssl/html/man3/ERR_error_string_n.html | 1 + .../openssl/html/man3/ERR_free_strings.html | 1 + .../html/man3/ERR_func_error_string.html | 1 + .../doc/openssl/html/man3/ERR_get_error.html | 81 + .../openssl/html/man3/ERR_get_error_line.html | 1 + .../html/man3/ERR_get_error_line_data.html | 1 + .../html/man3/ERR_get_next_error_library.html | 1 + .../html/man3/ERR_lib_error_string.html | 1 + .../html/man3/ERR_load_crypto_strings.html | 74 + .../openssl/html/man3/ERR_load_strings.html | 74 + .../doc/openssl/html/man3/ERR_peek_error.html | 1 + .../html/man3/ERR_peek_error_line.html | 1 + .../html/man3/ERR_peek_error_line_data.html | 1 + .../html/man3/ERR_peek_last_error.html | 1 + .../html/man3/ERR_peek_last_error_line.html | 1 + .../man3/ERR_peek_last_error_line_data.html | 1 + .../openssl/html/man3/ERR_pop_to_mark.html | 1 + .../openssl/html/man3/ERR_print_errors.html | 70 + .../html/man3/ERR_print_errors_cb.html | 1 + .../html/man3/ERR_print_errors_fp.html | 1 + .../doc/openssl/html/man3/ERR_put_error.html | 79 + .../html/man3/ERR_reason_error_string.html | 1 + .../openssl/html/man3/ERR_remove_state.html | 67 + .../html/man3/ERR_remove_thread_state.html | 1 + .../doc/openssl/html/man3/ERR_set_mark.html | 57 + .../openssl/html/man3/ESS_CERT_ID_dup.html | 1 + .../openssl/html/man3/ESS_CERT_ID_free.html | 1 + .../openssl/html/man3/ESS_CERT_ID_new.html | 1 + .../html/man3/ESS_ISSUER_SERIAL_dup.html | 1 + .../html/man3/ESS_ISSUER_SERIAL_free.html | 1 + .../html/man3/ESS_ISSUER_SERIAL_new.html | 1 + .../html/man3/ESS_SIGNING_CERT_dup.html | 1 + .../html/man3/ESS_SIGNING_CERT_free.html | 1 + .../html/man3/ESS_SIGNING_CERT_new.html | 1 + .../doc/openssl/html/man3/EVP_BytesToKey.html | 81 + .../html/man3/EVP_CIPHER_CTX_block_size.html | 1 + .../html/man3/EVP_CIPHER_CTX_cipher.html | 1 + .../html/man3/EVP_CIPHER_CTX_ctrl.html | 1 + .../html/man3/EVP_CIPHER_CTX_flags.html | 1 + .../html/man3/EVP_CIPHER_CTX_free.html | 1 + .../man3/EVP_CIPHER_CTX_get_app_data.html | 1 + .../man3/EVP_CIPHER_CTX_get_cipher_data.html | 61 + .../html/man3/EVP_CIPHER_CTX_iv_length.html | 1 + .../html/man3/EVP_CIPHER_CTX_key_length.html | 1 + .../html/man3/EVP_CIPHER_CTX_mode.html | 1 + .../openssl/html/man3/EVP_CIPHER_CTX_new.html | 1 + .../openssl/html/man3/EVP_CIPHER_CTX_nid.html | 1 + .../html/man3/EVP_CIPHER_CTX_reset.html | 1 + .../man3/EVP_CIPHER_CTX_set_app_data.html | 1 + .../man3/EVP_CIPHER_CTX_set_cipher_data.html | 1 + .../man3/EVP_CIPHER_CTX_set_key_length.html | 1 + .../html/man3/EVP_CIPHER_CTX_set_padding.html | 1 + .../html/man3/EVP_CIPHER_CTX_type.html | 1 + .../html/man3/EVP_CIPHER_asn1_to_param.html | 1 + .../html/man3/EVP_CIPHER_block_size.html | 1 + .../openssl/html/man3/EVP_CIPHER_flags.html | 1 + .../html/man3/EVP_CIPHER_iv_length.html | 1 + .../html/man3/EVP_CIPHER_key_length.html | 1 + .../html/man3/EVP_CIPHER_meth_dup.html | 1 + .../html/man3/EVP_CIPHER_meth_free.html | 1 + .../man3/EVP_CIPHER_meth_get_cleanup.html | 1 + .../html/man3/EVP_CIPHER_meth_get_ctrl.html | 1 + .../man3/EVP_CIPHER_meth_get_do_cipher.html | 1 + .../EVP_CIPHER_meth_get_get_asn1_params.html | 1 + .../html/man3/EVP_CIPHER_meth_get_init.html | 1 + .../EVP_CIPHER_meth_get_set_asn1_params.html | 1 + .../html/man3/EVP_CIPHER_meth_new.html | 217 + .../man3/EVP_CIPHER_meth_set_cleanup.html | 1 + .../html/man3/EVP_CIPHER_meth_set_ctrl.html | 1 + .../man3/EVP_CIPHER_meth_set_do_cipher.html | 1 + .../html/man3/EVP_CIPHER_meth_set_flags.html | 1 + .../EVP_CIPHER_meth_set_get_asn1_params.html | 1 + .../EVP_CIPHER_meth_set_impl_ctx_size.html | 1 + .../html/man3/EVP_CIPHER_meth_set_init.html | 1 + .../man3/EVP_CIPHER_meth_set_iv_length.html | 1 + .../EVP_CIPHER_meth_set_set_asn1_params.html | 1 + .../openssl/html/man3/EVP_CIPHER_mode.html | 1 + .../doc/openssl/html/man3/EVP_CIPHER_nid.html | 1 + .../html/man3/EVP_CIPHER_param_to_asn1.html | 1 + .../openssl/html/man3/EVP_CIPHER_type.html | 1 + .../openssl/html/man3/EVP_CipherFinal.html | 1 + .../openssl/html/man3/EVP_CipherFinal_ex.html | 1 + .../doc/openssl/html/man3/EVP_CipherInit.html | 1 + .../openssl/html/man3/EVP_CipherInit_ex.html | 1 + .../openssl/html/man3/EVP_CipherUpdate.html | 1 + .../openssl/html/man3/EVP_DecodeBlock.html | 1 + .../openssl/html/man3/EVP_DecodeFinal.html | 1 + .../doc/openssl/html/man3/EVP_DecodeInit.html | 1 + .../openssl/html/man3/EVP_DecodeUpdate.html | 1 + .../openssl/html/man3/EVP_DecryptFinal.html | 1 + .../html/man3/EVP_DecryptFinal_ex.html | 1 + .../openssl/html/man3/EVP_DecryptInit.html | 1 + .../openssl/html/man3/EVP_DecryptInit_ex.html | 1 + .../openssl/html/man3/EVP_DecryptUpdate.html | 1 + .../doc/openssl/html/man3/EVP_Digest.html | 1 + .../openssl/html/man3/EVP_DigestFinal.html | 1 + .../openssl/html/man3/EVP_DigestFinalXOF.html | 1 + .../openssl/html/man3/EVP_DigestFinal_ex.html | 1 + .../doc/openssl/html/man3/EVP_DigestInit.html | 442 ++ .../openssl/html/man3/EVP_DigestInit_ex.html | 1 + .../doc/openssl/html/man3/EVP_DigestSign.html | 1 + .../html/man3/EVP_DigestSignFinal.html | 1 + .../openssl/html/man3/EVP_DigestSignInit.html | 157 + .../html/man3/EVP_DigestSignUpdate.html | 1 + .../openssl/html/man3/EVP_DigestUpdate.html | 1 + .../openssl/html/man3/EVP_DigestVerify.html | 1 + .../html/man3/EVP_DigestVerifyFinal.html | 1 + .../html/man3/EVP_DigestVerifyInit.html | 96 + .../html/man3/EVP_DigestVerifyUpdate.html | 1 + .../html/man3/EVP_ENCODE_CTX_copy.html | 1 + .../html/man3/EVP_ENCODE_CTX_free.html | 1 + .../openssl/html/man3/EVP_ENCODE_CTX_new.html | 1 + .../openssl/html/man3/EVP_ENCODE_CTX_num.html | 1 + .../openssl/html/man3/EVP_EncodeBlock.html | 1 + .../openssl/html/man3/EVP_EncodeFinal.html | 1 + .../doc/openssl/html/man3/EVP_EncodeInit.html | 108 + .../openssl/html/man3/EVP_EncodeUpdate.html | 1 + .../openssl/html/man3/EVP_EncryptFinal.html | 1 + .../html/man3/EVP_EncryptFinal_ex.html | 1 + .../openssl/html/man3/EVP_EncryptInit.html | 467 ++ .../openssl/html/man3/EVP_EncryptInit_ex.html | 1 + .../openssl/html/man3/EVP_EncryptUpdate.html | 1 + .../html/man3/EVP_MD_CTX_block_size.html | 1 + .../html/man3/EVP_MD_CTX_clear_flags.html | 1 + .../openssl/html/man3/EVP_MD_CTX_copy.html | 1 + .../openssl/html/man3/EVP_MD_CTX_copy_ex.html | 1 + .../openssl/html/man3/EVP_MD_CTX_ctrl.html | 1 + .../openssl/html/man3/EVP_MD_CTX_free.html | 1 + .../doc/openssl/html/man3/EVP_MD_CTX_md.html | 1 + .../openssl/html/man3/EVP_MD_CTX_md_data.html | 1 + .../doc/openssl/html/man3/EVP_MD_CTX_new.html | 1 + .../html/man3/EVP_MD_CTX_pkey_ctx.html | 1 + .../openssl/html/man3/EVP_MD_CTX_reset.html | 1 + .../html/man3/EVP_MD_CTX_set_flags.html | 1 + .../html/man3/EVP_MD_CTX_set_pkey_ctx.html | 1 + .../html/man3/EVP_MD_CTX_set_update_fn.html | 1 + .../openssl/html/man3/EVP_MD_CTX_size.html | 1 + .../html/man3/EVP_MD_CTX_test_flags.html | 1 + .../openssl/html/man3/EVP_MD_CTX_type.html | 1 + .../html/man3/EVP_MD_CTX_update_fn.html | 1 + .../openssl/html/man3/EVP_MD_block_size.html | 1 + .../doc/openssl/html/man3/EVP_MD_flags.html | 1 + .../openssl/html/man3/EVP_MD_meth_dup.html | 1 + .../openssl/html/man3/EVP_MD_meth_free.html | 1 + .../man3/EVP_MD_meth_get_app_datasize.html | 1 + .../html/man3/EVP_MD_meth_get_cleanup.html | 1 + .../html/man3/EVP_MD_meth_get_copy.html | 1 + .../html/man3/EVP_MD_meth_get_ctrl.html | 1 + .../html/man3/EVP_MD_meth_get_final.html | 1 + .../html/man3/EVP_MD_meth_get_flags.html | 1 + .../html/man3/EVP_MD_meth_get_init.html | 1 + .../man3/EVP_MD_meth_get_input_blocksize.html | 1 + .../man3/EVP_MD_meth_get_result_size.html | 1 + .../html/man3/EVP_MD_meth_get_update.html | 1 + .../openssl/html/man3/EVP_MD_meth_new.html | 163 + .../man3/EVP_MD_meth_set_app_datasize.html | 1 + .../html/man3/EVP_MD_meth_set_cleanup.html | 1 + .../html/man3/EVP_MD_meth_set_copy.html | 1 + .../html/man3/EVP_MD_meth_set_ctrl.html | 1 + .../html/man3/EVP_MD_meth_set_final.html | 1 + .../html/man3/EVP_MD_meth_set_flags.html | 1 + .../html/man3/EVP_MD_meth_set_init.html | 1 + .../man3/EVP_MD_meth_set_input_blocksize.html | 1 + .../man3/EVP_MD_meth_set_result_size.html | 1 + .../html/man3/EVP_MD_meth_set_update.html | 1 + .../openssl/html/man3/EVP_MD_pkey_type.html | 1 + .../doc/openssl/html/man3/EVP_MD_size.html | 1 + .../doc/openssl/html/man3/EVP_MD_type.html | 1 + .../doc/openssl/html/man3/EVP_OpenFinal.html | 1 + .../doc/openssl/html/man3/EVP_OpenInit.html | 75 + .../doc/openssl/html/man3/EVP_OpenUpdate.html | 1 + .../html/man3/EVP_PKEY_ASN1_METHOD.html | 341 ++ .../man3/EVP_PKEY_CTX_add1_hkdf_info.html | 1 + .../man3/EVP_PKEY_CTX_add1_tls1_prf_seed.html | 1 + .../openssl/html/man3/EVP_PKEY_CTX_ctrl.html | 278 + .../html/man3/EVP_PKEY_CTX_ctrl_str.html | 1 + .../html/man3/EVP_PKEY_CTX_ctrl_uint64.html | 1 + .../openssl/html/man3/EVP_PKEY_CTX_dup.html | 1 + .../openssl/html/man3/EVP_PKEY_CTX_free.html | 1 + .../man3/EVP_PKEY_CTX_get0_dh_kdf_oid.html | 1 + .../man3/EVP_PKEY_CTX_get0_dh_kdf_ukm.html | 1 + .../man3/EVP_PKEY_CTX_get0_ecdh_kdf_ukm.html | 1 + .../EVP_PKEY_CTX_get0_rsa_oaep_label.html | 1 + .../html/man3/EVP_PKEY_CTX_get1_id.html | 1 + .../html/man3/EVP_PKEY_CTX_get1_id_len.html | 1 + .../html/man3/EVP_PKEY_CTX_get_app_data.html | 1 + .../html/man3/EVP_PKEY_CTX_get_cb.html | 1 + .../html/man3/EVP_PKEY_CTX_get_dh_kdf_md.html | 1 + .../man3/EVP_PKEY_CTX_get_dh_kdf_outlen.html | 1 + .../man3/EVP_PKEY_CTX_get_dh_kdf_type.html | 1 + .../EVP_PKEY_CTX_get_ecdh_cofactor_mode.html | 1 + .../man3/EVP_PKEY_CTX_get_ecdh_kdf_md.html | 1 + .../EVP_PKEY_CTX_get_ecdh_kdf_outlen.html | 1 + .../man3/EVP_PKEY_CTX_get_ecdh_kdf_type.html | 1 + .../man3/EVP_PKEY_CTX_get_keygen_info.html | 1 + .../man3/EVP_PKEY_CTX_get_rsa_mgf1_md.html | 1 + .../man3/EVP_PKEY_CTX_get_rsa_oaep_md.html | 1 + .../man3/EVP_PKEY_CTX_get_rsa_padding.html | 1 + .../EVP_PKEY_CTX_get_rsa_pss_saltlen.html | 1 + .../man3/EVP_PKEY_CTX_get_signature_md.html | 1 + .../html/man3/EVP_PKEY_CTX_hkdf_mode.html | 1 + .../openssl/html/man3/EVP_PKEY_CTX_md.html | 1 + .../openssl/html/man3/EVP_PKEY_CTX_new.html | 77 + .../html/man3/EVP_PKEY_CTX_new_id.html | 1 + .../man3/EVP_PKEY_CTX_set0_dh_kdf_oid.html | 1 + .../man3/EVP_PKEY_CTX_set0_dh_kdf_ukm.html | 1 + .../man3/EVP_PKEY_CTX_set0_ecdh_kdf_ukm.html | 1 + .../EVP_PKEY_CTX_set0_rsa_oaep_label.html | 1 + .../html/man3/EVP_PKEY_CTX_set1_hkdf_key.html | 1 + .../man3/EVP_PKEY_CTX_set1_hkdf_salt.html | 1 + .../html/man3/EVP_PKEY_CTX_set1_id.html | 1 + .../html/man3/EVP_PKEY_CTX_set1_pbe_pass.html | 69 + .../man3/EVP_PKEY_CTX_set1_scrypt_salt.html | 1 + .../EVP_PKEY_CTX_set1_tls1_prf_secret.html | 1 + .../html/man3/EVP_PKEY_CTX_set_app_data.html | 1 + .../html/man3/EVP_PKEY_CTX_set_cb.html | 1 + .../html/man3/EVP_PKEY_CTX_set_dh_kdf_md.html | 1 + .../man3/EVP_PKEY_CTX_set_dh_kdf_outlen.html | 1 + .../man3/EVP_PKEY_CTX_set_dh_kdf_type.html | 1 + .../html/man3/EVP_PKEY_CTX_set_dh_nid.html | 1 + .../html/man3/EVP_PKEY_CTX_set_dh_pad.html | 1 + ...VP_PKEY_CTX_set_dh_paramgen_generator.html | 1 + ...VP_PKEY_CTX_set_dh_paramgen_prime_len.html | 1 + ...PKEY_CTX_set_dh_paramgen_subprime_len.html | 1 + .../EVP_PKEY_CTX_set_dh_paramgen_type.html | 1 + .../man3/EVP_PKEY_CTX_set_dh_rfc5114.html | 1 + .../man3/EVP_PKEY_CTX_set_dhx_rfc5114.html | 1 + .../EVP_PKEY_CTX_set_dsa_paramgen_bits.html | 1 + .../EVP_PKEY_CTX_set_dsa_paramgen_md.html | 1 + .../EVP_PKEY_CTX_set_dsa_paramgen_q_bits.html | 1 + .../man3/EVP_PKEY_CTX_set_ec_param_enc.html | 1 + ...VP_PKEY_CTX_set_ec_paramgen_curve_nid.html | 1 + .../EVP_PKEY_CTX_set_ecdh_cofactor_mode.html | 1 + .../man3/EVP_PKEY_CTX_set_ecdh_kdf_md.html | 1 + .../EVP_PKEY_CTX_set_ecdh_kdf_outlen.html | 1 + .../man3/EVP_PKEY_CTX_set_ecdh_kdf_type.html | 1 + .../html/man3/EVP_PKEY_CTX_set_hkdf_md.html | 153 + .../html/man3/EVP_PKEY_CTX_set_mac_key.html | 1 + .../EVP_PKEY_CTX_set_rsa_keygen_bits.html | 1 + .../EVP_PKEY_CTX_set_rsa_keygen_primes.html | 1 + .../EVP_PKEY_CTX_set_rsa_keygen_pubexp.html | 1 + .../man3/EVP_PKEY_CTX_set_rsa_mgf1_md.html | 1 + .../man3/EVP_PKEY_CTX_set_rsa_oaep_md.html | 1 + .../man3/EVP_PKEY_CTX_set_rsa_padding.html | 1 + .../EVP_PKEY_CTX_set_rsa_pss_keygen_md.html | 93 + ...P_PKEY_CTX_set_rsa_pss_keygen_mgf1_md.html | 1 + ...P_PKEY_CTX_set_rsa_pss_keygen_saltlen.html | 1 + .../EVP_PKEY_CTX_set_rsa_pss_saltlen.html | 1 + .../html/man3/EVP_PKEY_CTX_set_scrypt_N.html | 84 + .../EVP_PKEY_CTX_set_scrypt_maxmem_bytes.html | 1 + .../html/man3/EVP_PKEY_CTX_set_scrypt_p.html | 1 + .../html/man3/EVP_PKEY_CTX_set_scrypt_r.html | 1 + .../man3/EVP_PKEY_CTX_set_signature_md.html | 1 + .../man3/EVP_PKEY_CTX_set_tls1_prf_md.html | 109 + .../openssl/html/man3/EVP_PKEY_METHOD.html | 1 + .../openssl/html/man3/EVP_PKEY_asn1_add0.html | 1 + .../html/man3/EVP_PKEY_asn1_add_alias.html | 1 + .../openssl/html/man3/EVP_PKEY_asn1_copy.html | 1 + .../openssl/html/man3/EVP_PKEY_asn1_find.html | 1 + .../html/man3/EVP_PKEY_asn1_find_str.html | 1 + .../openssl/html/man3/EVP_PKEY_asn1_free.html | 1 + .../openssl/html/man3/EVP_PKEY_asn1_get0.html | 1 + .../html/man3/EVP_PKEY_asn1_get0_info.html | 1 + .../html/man3/EVP_PKEY_asn1_get_count.html | 78 + .../openssl/html/man3/EVP_PKEY_asn1_new.html | 1 + .../html/man3/EVP_PKEY_asn1_set_check.html | 1 + .../html/man3/EVP_PKEY_asn1_set_ctrl.html | 1 + .../html/man3/EVP_PKEY_asn1_set_free.html | 1 + .../man3/EVP_PKEY_asn1_set_get_priv_key.html | 1 + .../man3/EVP_PKEY_asn1_set_get_pub_key.html | 1 + .../html/man3/EVP_PKEY_asn1_set_item.html | 1 + .../html/man3/EVP_PKEY_asn1_set_param.html | 1 + .../man3/EVP_PKEY_asn1_set_param_check.html | 1 + .../html/man3/EVP_PKEY_asn1_set_private.html | 1 + .../html/man3/EVP_PKEY_asn1_set_public.html | 1 + .../man3/EVP_PKEY_asn1_set_public_check.html | 1 + .../man3/EVP_PKEY_asn1_set_security_bits.html | 1 + .../man3/EVP_PKEY_asn1_set_set_priv_key.html | 1 + .../man3/EVP_PKEY_asn1_set_set_pub_key.html | 1 + .../html/man3/EVP_PKEY_asn1_set_siginf.html | 1 + .../openssl/html/man3/EVP_PKEY_assign_DH.html | 1 + .../html/man3/EVP_PKEY_assign_DSA.html | 1 + .../html/man3/EVP_PKEY_assign_EC_KEY.html | 1 + .../html/man3/EVP_PKEY_assign_POLY1305.html | 1 + .../html/man3/EVP_PKEY_assign_RSA.html | 1 + .../html/man3/EVP_PKEY_assign_SIPHASH.html | 1 + .../openssl/html/man3/EVP_PKEY_base_id.html | 1 + .../doc/openssl/html/man3/EVP_PKEY_bits.html | 1 + .../doc/openssl/html/man3/EVP_PKEY_check.html | 1 + .../doc/openssl/html/man3/EVP_PKEY_cmp.html | 77 + .../html/man3/EVP_PKEY_cmp_parameters.html | 1 + .../html/man3/EVP_PKEY_copy_parameters.html | 1 + .../openssl/html/man3/EVP_PKEY_decrypt.html | 113 + .../html/man3/EVP_PKEY_decrypt_init.html | 1 + .../openssl/html/man3/EVP_PKEY_derive.html | 111 + .../html/man3/EVP_PKEY_derive_init.html | 1 + .../html/man3/EVP_PKEY_derive_set_peer.html | 1 + .../openssl/html/man3/EVP_PKEY_encrypt.html | 114 + .../html/man3/EVP_PKEY_encrypt_init.html | 1 + .../doc/openssl/html/man3/EVP_PKEY_free.html | 1 + .../openssl/html/man3/EVP_PKEY_gen_cb.html | 1 + .../openssl/html/man3/EVP_PKEY_get0_DH.html | 1 + .../openssl/html/man3/EVP_PKEY_get0_DSA.html | 1 + .../html/man3/EVP_PKEY_get0_EC_KEY.html | 1 + .../openssl/html/man3/EVP_PKEY_get0_RSA.html | 1 + .../openssl/html/man3/EVP_PKEY_get0_asn1.html | 1 + .../html/man3/EVP_PKEY_get0_engine.html | 1 + .../openssl/html/man3/EVP_PKEY_get0_hmac.html | 1 + .../html/man3/EVP_PKEY_get0_poly1305.html | 1 + .../html/man3/EVP_PKEY_get0_siphash.html | 1 + .../openssl/html/man3/EVP_PKEY_get1_DH.html | 1 + .../openssl/html/man3/EVP_PKEY_get1_DSA.html | 1 + .../html/man3/EVP_PKEY_get1_EC_KEY.html | 1 + .../openssl/html/man3/EVP_PKEY_get1_RSA.html | 1 + .../man3/EVP_PKEY_get_default_digest_nid.html | 65 + .../man3/EVP_PKEY_get_raw_private_key.html | 1 + .../man3/EVP_PKEY_get_raw_public_key.html | 1 + .../doc/openssl/html/man3/EVP_PKEY_id.html | 1 + .../openssl/html/man3/EVP_PKEY_keygen.html | 181 + .../html/man3/EVP_PKEY_keygen_init.html | 1 + .../openssl/html/man3/EVP_PKEY_meth_add0.html | 1 + .../openssl/html/man3/EVP_PKEY_meth_copy.html | 1 + .../openssl/html/man3/EVP_PKEY_meth_find.html | 1 + .../openssl/html/man3/EVP_PKEY_meth_free.html | 1 + .../openssl/html/man3/EVP_PKEY_meth_get0.html | 1 + .../html/man3/EVP_PKEY_meth_get0_info.html | 1 + .../html/man3/EVP_PKEY_meth_get_check.html | 1 + .../html/man3/EVP_PKEY_meth_get_cleanup.html | 1 + .../html/man3/EVP_PKEY_meth_get_copy.html | 1 + .../html/man3/EVP_PKEY_meth_get_count.html | 67 + .../html/man3/EVP_PKEY_meth_get_ctrl.html | 1 + .../html/man3/EVP_PKEY_meth_get_decrypt.html | 1 + .../html/man3/EVP_PKEY_meth_get_derive.html | 1 + .../man3/EVP_PKEY_meth_get_digest_custom.html | 1 + .../man3/EVP_PKEY_meth_get_digestsign.html | 1 + .../man3/EVP_PKEY_meth_get_digestverify.html | 1 + .../html/man3/EVP_PKEY_meth_get_encrypt.html | 1 + .../html/man3/EVP_PKEY_meth_get_init.html | 1 + .../html/man3/EVP_PKEY_meth_get_keygen.html | 1 + .../man3/EVP_PKEY_meth_get_param_check.html | 1 + .../html/man3/EVP_PKEY_meth_get_paramgen.html | 1 + .../man3/EVP_PKEY_meth_get_public_check.html | 1 + .../html/man3/EVP_PKEY_meth_get_sign.html | 1 + .../html/man3/EVP_PKEY_meth_get_signctx.html | 1 + .../html/man3/EVP_PKEY_meth_get_verify.html | 1 + .../EVP_PKEY_meth_get_verify_recover.html | 1 + .../man3/EVP_PKEY_meth_get_verifyctx.html | 1 + .../openssl/html/man3/EVP_PKEY_meth_new.html | 394 ++ .../html/man3/EVP_PKEY_meth_remove.html | 1 + .../html/man3/EVP_PKEY_meth_set_check.html | 1 + .../html/man3/EVP_PKEY_meth_set_cleanup.html | 1 + .../html/man3/EVP_PKEY_meth_set_copy.html | 1 + .../html/man3/EVP_PKEY_meth_set_ctrl.html | 1 + .../html/man3/EVP_PKEY_meth_set_decrypt.html | 1 + .../html/man3/EVP_PKEY_meth_set_derive.html | 1 + .../man3/EVP_PKEY_meth_set_digest_custom.html | 1 + .../man3/EVP_PKEY_meth_set_digestsign.html | 1 + .../man3/EVP_PKEY_meth_set_digestverify.html | 1 + .../html/man3/EVP_PKEY_meth_set_encrypt.html | 1 + .../html/man3/EVP_PKEY_meth_set_init.html | 1 + .../html/man3/EVP_PKEY_meth_set_keygen.html | 1 + .../man3/EVP_PKEY_meth_set_param_check.html | 1 + .../html/man3/EVP_PKEY_meth_set_paramgen.html | 1 + .../man3/EVP_PKEY_meth_set_public_check.html | 1 + .../html/man3/EVP_PKEY_meth_set_sign.html | 1 + .../html/man3/EVP_PKEY_meth_set_signctx.html | 1 + .../html/man3/EVP_PKEY_meth_set_verify.html | 1 + .../EVP_PKEY_meth_set_verify_recover.html | 1 + .../man3/EVP_PKEY_meth_set_verifyctx.html | 1 + .../man3/EVP_PKEY_missing_parameters.html | 1 + .../doc/openssl/html/man3/EVP_PKEY_new.html | 106 + .../html/man3/EVP_PKEY_new_CMAC_key.html | 1 + .../html/man3/EVP_PKEY_new_mac_key.html | 1 + .../man3/EVP_PKEY_new_raw_private_key.html | 1 + .../man3/EVP_PKEY_new_raw_public_key.html | 1 + .../html/man3/EVP_PKEY_param_check.html | 1 + .../openssl/html/man3/EVP_PKEY_paramgen.html | 1 + .../html/man3/EVP_PKEY_paramgen_init.html | 1 + .../html/man3/EVP_PKEY_print_params.html | 1 + .../html/man3/EVP_PKEY_print_private.html | 75 + .../html/man3/EVP_PKEY_print_public.html | 1 + .../html/man3/EVP_PKEY_public_check.html | 1 + .../html/man3/EVP_PKEY_security_bits.html | 1 + .../openssl/html/man3/EVP_PKEY_set1_DH.html | 1 + .../openssl/html/man3/EVP_PKEY_set1_DSA.html | 1 + .../html/man3/EVP_PKEY_set1_EC_KEY.html | 1 + .../openssl/html/man3/EVP_PKEY_set1_RSA.html | 135 + .../html/man3/EVP_PKEY_set1_engine.html | 1 + .../html/man3/EVP_PKEY_set_alias_type.html | 1 + .../doc/openssl/html/man3/EVP_PKEY_sign.html | 118 + .../openssl/html/man3/EVP_PKEY_sign_init.html | 1 + .../doc/openssl/html/man3/EVP_PKEY_size.html | 71 + .../doc/openssl/html/man3/EVP_PKEY_type.html | 1 + .../openssl/html/man3/EVP_PKEY_up_ref.html | 1 + .../openssl/html/man3/EVP_PKEY_verify.html | 110 + .../html/man3/EVP_PKEY_verify_init.html | 1 + .../html/man3/EVP_PKEY_verify_recover.html | 118 + .../man3/EVP_PKEY_verify_recover_init.html | 1 + .../doc/openssl/html/man3/EVP_SealFinal.html | 1 + .../doc/openssl/html/man3/EVP_SealInit.html | 82 + .../doc/openssl/html/man3/EVP_SealUpdate.html | 1 + .../doc/openssl/html/man3/EVP_SignFinal.html | 1 + .../doc/openssl/html/man3/EVP_SignInit.html | 92 + .../openssl/html/man3/EVP_SignInit_ex.html | 1 + .../doc/openssl/html/man3/EVP_SignUpdate.html | 1 + .../openssl/html/man3/EVP_VerifyFinal.html | 1 + .../doc/openssl/html/man3/EVP_VerifyInit.html | 93 + .../openssl/html/man3/EVP_VerifyInit_ex.html | 1 + .../openssl/html/man3/EVP_VerifyUpdate.html | 1 + .../share/doc/openssl/html/man3/EVP_aes.html | 108 + .../openssl/html/man3/EVP_aes_128_cbc.html | 1 + .../html/man3/EVP_aes_128_cbc_hmac_sha1.html | 1 + .../man3/EVP_aes_128_cbc_hmac_sha256.html | 1 + .../openssl/html/man3/EVP_aes_128_ccm.html | 1 + .../openssl/html/man3/EVP_aes_128_cfb.html | 1 + .../openssl/html/man3/EVP_aes_128_cfb1.html | 1 + .../openssl/html/man3/EVP_aes_128_cfb128.html | 1 + .../openssl/html/man3/EVP_aes_128_cfb8.html | 1 + .../openssl/html/man3/EVP_aes_128_ctr.html | 1 + .../openssl/html/man3/EVP_aes_128_ecb.html | 1 + .../openssl/html/man3/EVP_aes_128_gcm.html | 1 + .../openssl/html/man3/EVP_aes_128_ocb.html | 1 + .../openssl/html/man3/EVP_aes_128_ofb.html | 1 + .../openssl/html/man3/EVP_aes_128_wrap.html | 1 + .../html/man3/EVP_aes_128_wrap_pad.html | 1 + .../openssl/html/man3/EVP_aes_128_xts.html | 1 + .../openssl/html/man3/EVP_aes_192_cbc.html | 1 + .../openssl/html/man3/EVP_aes_192_ccm.html | 1 + .../openssl/html/man3/EVP_aes_192_cfb.html | 1 + .../openssl/html/man3/EVP_aes_192_cfb1.html | 1 + .../openssl/html/man3/EVP_aes_192_cfb128.html | 1 + .../openssl/html/man3/EVP_aes_192_cfb8.html | 1 + .../openssl/html/man3/EVP_aes_192_ctr.html | 1 + .../openssl/html/man3/EVP_aes_192_ecb.html | 1 + .../openssl/html/man3/EVP_aes_192_gcm.html | 1 + .../openssl/html/man3/EVP_aes_192_ocb.html | 1 + .../openssl/html/man3/EVP_aes_192_ofb.html | 1 + .../openssl/html/man3/EVP_aes_192_wrap.html | 1 + .../html/man3/EVP_aes_192_wrap_pad.html | 1 + .../openssl/html/man3/EVP_aes_256_cbc.html | 1 + .../html/man3/EVP_aes_256_cbc_hmac_sha1.html | 1 + .../man3/EVP_aes_256_cbc_hmac_sha256.html | 1 + .../openssl/html/man3/EVP_aes_256_ccm.html | 1 + .../openssl/html/man3/EVP_aes_256_cfb.html | 1 + .../openssl/html/man3/EVP_aes_256_cfb1.html | 1 + .../openssl/html/man3/EVP_aes_256_cfb128.html | 1 + .../openssl/html/man3/EVP_aes_256_cfb8.html | 1 + .../openssl/html/man3/EVP_aes_256_ctr.html | 1 + .../openssl/html/man3/EVP_aes_256_ecb.html | 1 + .../openssl/html/man3/EVP_aes_256_gcm.html | 1 + .../openssl/html/man3/EVP_aes_256_ocb.html | 1 + .../openssl/html/man3/EVP_aes_256_ofb.html | 1 + .../openssl/html/man3/EVP_aes_256_wrap.html | 1 + .../html/man3/EVP_aes_256_wrap_pad.html | 1 + .../openssl/html/man3/EVP_aes_256_xts.html | 1 + .../share/doc/openssl/html/man3/EVP_aria.html | 74 + .../openssl/html/man3/EVP_aria_128_cbc.html | 1 + .../openssl/html/man3/EVP_aria_128_ccm.html | 1 + .../openssl/html/man3/EVP_aria_128_cfb.html | 1 + .../openssl/html/man3/EVP_aria_128_cfb1.html | 1 + .../html/man3/EVP_aria_128_cfb128.html | 1 + .../openssl/html/man3/EVP_aria_128_cfb8.html | 1 + .../openssl/html/man3/EVP_aria_128_ctr.html | 1 + .../openssl/html/man3/EVP_aria_128_ecb.html | 1 + .../openssl/html/man3/EVP_aria_128_gcm.html | 1 + .../openssl/html/man3/EVP_aria_128_ofb.html | 1 + .../openssl/html/man3/EVP_aria_192_cbc.html | 1 + .../openssl/html/man3/EVP_aria_192_ccm.html | 1 + .../openssl/html/man3/EVP_aria_192_cfb.html | 1 + .../openssl/html/man3/EVP_aria_192_cfb1.html | 1 + .../html/man3/EVP_aria_192_cfb128.html | 1 + .../openssl/html/man3/EVP_aria_192_cfb8.html | 1 + .../openssl/html/man3/EVP_aria_192_ctr.html | 1 + .../openssl/html/man3/EVP_aria_192_ecb.html | 1 + .../openssl/html/man3/EVP_aria_192_gcm.html | 1 + .../openssl/html/man3/EVP_aria_192_ofb.html | 1 + .../openssl/html/man3/EVP_aria_256_cbc.html | 1 + .../openssl/html/man3/EVP_aria_256_ccm.html | 1 + .../openssl/html/man3/EVP_aria_256_cfb.html | 1 + .../openssl/html/man3/EVP_aria_256_cfb1.html | 1 + .../html/man3/EVP_aria_256_cfb128.html | 1 + .../openssl/html/man3/EVP_aria_256_cfb8.html | 1 + .../openssl/html/man3/EVP_aria_256_ctr.html | 1 + .../openssl/html/man3/EVP_aria_256_ecb.html | 1 + .../openssl/html/man3/EVP_aria_256_gcm.html | 1 + .../openssl/html/man3/EVP_aria_256_ofb.html | 1 + .../doc/openssl/html/man3/EVP_bf_cbc.html | 72 + .../doc/openssl/html/man3/EVP_bf_cfb.html | 1 + .../doc/openssl/html/man3/EVP_bf_cfb64.html | 1 + .../doc/openssl/html/man3/EVP_bf_ecb.html | 1 + .../doc/openssl/html/man3/EVP_bf_ofb.html | 1 + .../doc/openssl/html/man3/EVP_blake2b512.html | 83 + .../doc/openssl/html/man3/EVP_blake2s256.html | 1 + .../doc/openssl/html/man3/EVP_camellia.html | 68 + .../html/man3/EVP_camellia_128_cbc.html | 1 + .../html/man3/EVP_camellia_128_cfb.html | 1 + .../html/man3/EVP_camellia_128_cfb1.html | 1 + .../html/man3/EVP_camellia_128_cfb128.html | 1 + .../html/man3/EVP_camellia_128_cfb8.html | 1 + .../html/man3/EVP_camellia_128_ctr.html | 1 + .../html/man3/EVP_camellia_128_ecb.html | 1 + .../html/man3/EVP_camellia_128_ofb.html | 1 + .../html/man3/EVP_camellia_192_cbc.html | 1 + .../html/man3/EVP_camellia_192_cfb.html | 1 + .../html/man3/EVP_camellia_192_cfb1.html | 1 + .../html/man3/EVP_camellia_192_cfb128.html | 1 + .../html/man3/EVP_camellia_192_cfb8.html | 1 + .../html/man3/EVP_camellia_192_ctr.html | 1 + .../html/man3/EVP_camellia_192_ecb.html | 1 + .../html/man3/EVP_camellia_192_ofb.html | 1 + .../html/man3/EVP_camellia_256_cbc.html | 1 + .../html/man3/EVP_camellia_256_cfb.html | 1 + .../html/man3/EVP_camellia_256_cfb1.html | 1 + .../html/man3/EVP_camellia_256_cfb128.html | 1 + .../html/man3/EVP_camellia_256_cfb8.html | 1 + .../html/man3/EVP_camellia_256_ctr.html | 1 + .../html/man3/EVP_camellia_256_ecb.html | 1 + .../html/man3/EVP_camellia_256_ofb.html | 1 + .../doc/openssl/html/man3/EVP_cast5_cbc.html | 72 + .../doc/openssl/html/man3/EVP_cast5_cfb.html | 1 + .../openssl/html/man3/EVP_cast5_cfb64.html | 1 + .../doc/openssl/html/man3/EVP_cast5_ecb.html | 1 + .../doc/openssl/html/man3/EVP_cast5_ofb.html | 1 + .../doc/openssl/html/man3/EVP_chacha20.html | 79 + .../html/man3/EVP_chacha20_poly1305.html | 1 + .../doc/openssl/html/man3/EVP_cleanup.html | 1 + .../share/doc/openssl/html/man3/EVP_des.html | 86 + .../doc/openssl/html/man3/EVP_des_cbc.html | 1 + .../doc/openssl/html/man3/EVP_des_cfb.html | 1 + .../doc/openssl/html/man3/EVP_des_cfb1.html | 1 + .../doc/openssl/html/man3/EVP_des_cfb64.html | 1 + .../doc/openssl/html/man3/EVP_des_cfb8.html | 1 + .../doc/openssl/html/man3/EVP_des_ecb.html | 1 + .../doc/openssl/html/man3/EVP_des_ede.html | 1 + .../doc/openssl/html/man3/EVP_des_ede3.html | 1 + .../openssl/html/man3/EVP_des_ede3_cbc.html | 1 + .../openssl/html/man3/EVP_des_ede3_cfb.html | 1 + .../openssl/html/man3/EVP_des_ede3_cfb1.html | 1 + .../openssl/html/man3/EVP_des_ede3_cfb64.html | 1 + .../openssl/html/man3/EVP_des_ede3_cfb8.html | 1 + .../openssl/html/man3/EVP_des_ede3_ecb.html | 1 + .../openssl/html/man3/EVP_des_ede3_ofb.html | 1 + .../openssl/html/man3/EVP_des_ede3_wrap.html | 1 + .../openssl/html/man3/EVP_des_ede_cbc.html | 1 + .../openssl/html/man3/EVP_des_ede_cfb.html | 1 + .../openssl/html/man3/EVP_des_ede_cfb64.html | 1 + .../openssl/html/man3/EVP_des_ede_ecb.html | 1 + .../openssl/html/man3/EVP_des_ede_ofb.html | 1 + .../doc/openssl/html/man3/EVP_des_ofb.html | 1 + .../doc/openssl/html/man3/EVP_desx_cbc.html | 68 + .../doc/openssl/html/man3/EVP_enc_null.html | 1 + .../html/man3/EVP_get_cipherbyname.html | 1 + .../html/man3/EVP_get_cipherbynid.html | 1 + .../html/man3/EVP_get_cipherbyobj.html | 1 + .../html/man3/EVP_get_digestbyname.html | 1 + .../html/man3/EVP_get_digestbynid.html | 1 + .../html/man3/EVP_get_digestbyobj.html | 1 + .../doc/openssl/html/man3/EVP_idea_cbc.html | 70 + .../doc/openssl/html/man3/EVP_idea_cfb.html | 1 + .../doc/openssl/html/man3/EVP_idea_cfb64.html | 1 + .../doc/openssl/html/man3/EVP_idea_ecb.html | 1 + .../doc/openssl/html/man3/EVP_idea_ofb.html | 1 + .../share/doc/openssl/html/man3/EVP_md2.html | 71 + .../share/doc/openssl/html/man3/EVP_md4.html | 71 + .../share/doc/openssl/html/man3/EVP_md5.html | 82 + .../doc/openssl/html/man3/EVP_md5_sha1.html | 1 + .../doc/openssl/html/man3/EVP_md_null.html | 1 + .../share/doc/openssl/html/man3/EVP_mdc2.html | 71 + .../doc/openssl/html/man3/EVP_rc2_40_cbc.html | 1 + .../doc/openssl/html/man3/EVP_rc2_64_cbc.html | 1 + .../doc/openssl/html/man3/EVP_rc2_cbc.html | 80 + .../doc/openssl/html/man3/EVP_rc2_cfb.html | 1 + .../doc/openssl/html/man3/EVP_rc2_cfb64.html | 1 + .../doc/openssl/html/man3/EVP_rc2_ecb.html | 1 + .../doc/openssl/html/man3/EVP_rc2_ofb.html | 1 + .../share/doc/openssl/html/man3/EVP_rc4.html | 84 + .../doc/openssl/html/man3/EVP_rc4_40.html | 1 + .../openssl/html/man3/EVP_rc4_hmac_md5.html | 1 + .../html/man3/EVP_rc5_32_12_16_cbc.html | 88 + .../html/man3/EVP_rc5_32_12_16_cfb.html | 1 + .../html/man3/EVP_rc5_32_12_16_cfb64.html | 1 + .../html/man3/EVP_rc5_32_12_16_ecb.html | 1 + .../html/man3/EVP_rc5_32_12_16_ofb.html | 1 + .../doc/openssl/html/man3/EVP_ripemd160.html | 71 + .../doc/openssl/html/man3/EVP_seed_cbc.html | 72 + .../doc/openssl/html/man3/EVP_seed_cfb.html | 1 + .../openssl/html/man3/EVP_seed_cfb128.html | 1 + .../doc/openssl/html/man3/EVP_seed_ecb.html | 1 + .../doc/openssl/html/man3/EVP_seed_ofb.html | 1 + .../share/doc/openssl/html/man3/EVP_sha1.html | 71 + .../doc/openssl/html/man3/EVP_sha224.html | 78 + .../doc/openssl/html/man3/EVP_sha256.html | 1 + .../doc/openssl/html/man3/EVP_sha384.html | 1 + .../doc/openssl/html/man3/EVP_sha3_224.html | 85 + .../doc/openssl/html/man3/EVP_sha3_256.html | 1 + .../doc/openssl/html/man3/EVP_sha3_384.html | 1 + .../doc/openssl/html/man3/EVP_sha3_512.html | 1 + .../doc/openssl/html/man3/EVP_sha512.html | 1 + .../doc/openssl/html/man3/EVP_sha512_224.html | 1 + .../doc/openssl/html/man3/EVP_sha512_256.html | 1 + .../doc/openssl/html/man3/EVP_shake128.html | 1 + .../doc/openssl/html/man3/EVP_shake256.html | 1 + .../share/doc/openssl/html/man3/EVP_sm3.html | 71 + .../doc/openssl/html/man3/EVP_sm4_cbc.html | 73 + .../doc/openssl/html/man3/EVP_sm4_cfb.html | 1 + .../doc/openssl/html/man3/EVP_sm4_cfb128.html | 1 + .../doc/openssl/html/man3/EVP_sm4_ctr.html | 1 + .../doc/openssl/html/man3/EVP_sm4_ecb.html | 1 + .../doc/openssl/html/man3/EVP_sm4_ofb.html | 1 + .../doc/openssl/html/man3/EVP_whirlpool.html | 71 + .../html/man3/EXTENDED_KEY_USAGE_free.html | 1 + .../html/man3/EXTENDED_KEY_USAGE_new.html | 1 + .../openssl/html/man3/GENERAL_NAMES_free.html | 1 + .../openssl/html/man3/GENERAL_NAMES_new.html | 1 + .../openssl/html/man3/GENERAL_NAME_dup.html | 1 + .../openssl/html/man3/GENERAL_NAME_free.html | 1 + .../openssl/html/man3/GENERAL_NAME_new.html | 1 + .../html/man3/GENERAL_SUBTREE_free.html | 1 + .../html/man3/GENERAL_SUBTREE_new.html | 1 + .../doc/openssl/html/man3/GEN_SESSION_CB.html | 1 + .../share/doc/openssl/html/man3/HMAC.html | 137 + .../doc/openssl/html/man3/HMAC_CTX_copy.html | 1 + .../doc/openssl/html/man3/HMAC_CTX_free.html | 1 + .../openssl/html/man3/HMAC_CTX_get_md.html | 1 + .../doc/openssl/html/man3/HMAC_CTX_new.html | 1 + .../doc/openssl/html/man3/HMAC_CTX_reset.html | 1 + .../openssl/html/man3/HMAC_CTX_set_flags.html | 1 + .../doc/openssl/html/man3/HMAC_Final.html | 1 + .../doc/openssl/html/man3/HMAC_Init.html | 1 + .../doc/openssl/html/man3/HMAC_Init_ex.html | 1 + .../doc/openssl/html/man3/HMAC_Update.html | 1 + .../doc/openssl/html/man3/HMAC_size.html | 1 + .../html/man3/IMPLEMENT_ASN1_FUNCTIONS.html | 1 + .../html/man3/IMPLEMENT_LHASH_COMP_FN.html | 1 + .../html/man3/IMPLEMENT_LHASH_HASH_FN.html | 1 + .../html/man3/IPAddressChoice_free.html | 1 + .../html/man3/IPAddressChoice_new.html | 1 + .../html/man3/IPAddressFamily_free.html | 1 + .../html/man3/IPAddressFamily_new.html | 1 + .../html/man3/IPAddressOrRange_free.html | 1 + .../html/man3/IPAddressOrRange_new.html | 1 + .../html/man3/IPAddressRange_free.html | 1 + .../openssl/html/man3/IPAddressRange_new.html | 1 + .../html/man3/ISSUING_DIST_POINT_free.html | 1 + .../html/man3/ISSUING_DIST_POINT_new.html | 1 + .../share/doc/openssl/html/man3/LHASH.html | 1 + .../html/man3/LHASH_DOALL_ARG_FN_TYPE.html | 1 + .../share/doc/openssl/html/man3/MD2.html | 1 + .../doc/openssl/html/man3/MD2_Final.html | 1 + .../share/doc/openssl/html/man3/MD2_Init.html | 1 + .../doc/openssl/html/man3/MD2_Update.html | 1 + .../share/doc/openssl/html/man3/MD4.html | 1 + .../doc/openssl/html/man3/MD4_Final.html | 1 + .../share/doc/openssl/html/man3/MD4_Init.html | 1 + .../doc/openssl/html/man3/MD4_Update.html | 1 + .../share/doc/openssl/html/man3/MD5.html | 104 + .../doc/openssl/html/man3/MD5_Final.html | 1 + .../share/doc/openssl/html/man3/MD5_Init.html | 1 + .../doc/openssl/html/man3/MD5_Update.html | 1 + .../share/doc/openssl/html/man3/MDC2.html | 1 + .../doc/openssl/html/man3/MDC2_Final.html | 1 + .../doc/openssl/html/man3/MDC2_Init.html | 81 + .../doc/openssl/html/man3/MDC2_Update.html | 1 + .../html/man3/NAME_CONSTRAINTS_free.html | 1 + .../html/man3/NAME_CONSTRAINTS_new.html | 1 + .../openssl/html/man3/NAMING_AUTHORITY.html | 1 + .../html/man3/NAMING_AUTHORITY_free.html | 1 + .../NAMING_AUTHORITY_get0_authorityId.html | 1 + .../NAMING_AUTHORITY_get0_authorityText.html | 1 + .../NAMING_AUTHORITY_get0_authorityURL.html | 1 + .../html/man3/NAMING_AUTHORITY_new.html | 1 + .../NAMING_AUTHORITY_set0_authorityId.html | 1 + .../NAMING_AUTHORITY_set0_authorityText.html | 1 + .../NAMING_AUTHORITY_set0_authorityURL.html | 1 + .../man3/NETSCAPE_CERT_SEQUENCE_free.html | 1 + .../html/man3/NETSCAPE_CERT_SEQUENCE_new.html | 1 + .../html/man3/NETSCAPE_SPKAC_free.html | 1 + .../openssl/html/man3/NETSCAPE_SPKAC_new.html | 1 + .../openssl/html/man3/NETSCAPE_SPKI_free.html | 1 + .../openssl/html/man3/NETSCAPE_SPKI_new.html | 1 + .../doc/openssl/html/man3/NOTICEREF_free.html | 1 + .../doc/openssl/html/man3/NOTICEREF_new.html | 1 + .../doc/openssl/html/man3/OBJ_cleanup.html | 1 + .../share/doc/openssl/html/man3/OBJ_cmp.html | 1 + .../doc/openssl/html/man3/OBJ_create.html | 1 + .../share/doc/openssl/html/man3/OBJ_dup.html | 1 + .../doc/openssl/html/man3/OBJ_get0_data.html | 1 + .../doc/openssl/html/man3/OBJ_length.html | 1 + .../doc/openssl/html/man3/OBJ_ln2nid.html | 1 + .../doc/openssl/html/man3/OBJ_nid2ln.html | 1 + .../doc/openssl/html/man3/OBJ_nid2obj.html | 165 + .../doc/openssl/html/man3/OBJ_nid2sn.html | 1 + .../doc/openssl/html/man3/OBJ_obj2nid.html | 1 + .../doc/openssl/html/man3/OBJ_obj2txt.html | 1 + .../doc/openssl/html/man3/OBJ_sn2nid.html | 1 + .../doc/openssl/html/man3/OBJ_txt2nid.html | 1 + .../doc/openssl/html/man3/OBJ_txt2obj.html | 1 + .../html/man3/OCSP_BASICRESP_free.html | 1 + .../openssl/html/man3/OCSP_BASICRESP_new.html | 1 + .../openssl/html/man3/OCSP_CERTID_dup.html | 1 + .../openssl/html/man3/OCSP_CERTID_free.html | 1 + .../openssl/html/man3/OCSP_CERTID_new.html | 1 + .../html/man3/OCSP_CERTSTATUS_free.html | 1 + .../html/man3/OCSP_CERTSTATUS_new.html | 1 + .../openssl/html/man3/OCSP_CRLID_free.html | 1 + .../doc/openssl/html/man3/OCSP_CRLID_new.html | 1 + .../openssl/html/man3/OCSP_ONEREQ_free.html | 1 + .../openssl/html/man3/OCSP_ONEREQ_new.html | 1 + .../openssl/html/man3/OCSP_REQINFO_free.html | 1 + .../openssl/html/man3/OCSP_REQINFO_new.html | 1 + .../openssl/html/man3/OCSP_REQUEST_free.html | 1 + .../openssl/html/man3/OCSP_REQUEST_new.html | 117 + .../html/man3/OCSP_REQ_CTX_add1_header.html | 1 + .../openssl/html/man3/OCSP_REQ_CTX_free.html | 1 + .../openssl/html/man3/OCSP_REQ_CTX_i2d.html | 1 + .../html/man3/OCSP_REQ_CTX_set1_req.html | 1 + .../html/man3/OCSP_RESPBYTES_free.html | 1 + .../openssl/html/man3/OCSP_RESPBYTES_new.html | 1 + .../openssl/html/man3/OCSP_RESPDATA_free.html | 1 + .../openssl/html/man3/OCSP_RESPDATA_new.html | 1 + .../openssl/html/man3/OCSP_RESPID_free.html | 1 + .../openssl/html/man3/OCSP_RESPID_match.html | 1 + .../openssl/html/man3/OCSP_RESPID_new.html | 1 + .../html/man3/OCSP_RESPID_set_by_key.html | 1 + .../html/man3/OCSP_RESPID_set_by_name.html | 1 + .../openssl/html/man3/OCSP_RESPONSE_free.html | 1 + .../openssl/html/man3/OCSP_RESPONSE_new.html | 1 + .../html/man3/OCSP_REVOKEDINFO_free.html | 1 + .../html/man3/OCSP_REVOKEDINFO_new.html | 1 + .../html/man3/OCSP_SERVICELOC_free.html | 1 + .../html/man3/OCSP_SERVICELOC_new.html | 1 + .../html/man3/OCSP_SIGNATURE_free.html | 1 + .../openssl/html/man3/OCSP_SIGNATURE_new.html | 1 + .../html/man3/OCSP_SINGLERESP_free.html | 1 + .../html/man3/OCSP_SINGLERESP_new.html | 1 + .../html/man3/OCSP_basic_add1_nonce.html | 1 + .../openssl/html/man3/OCSP_basic_sign.html | 1 + .../html/man3/OCSP_basic_sign_ctx.html | 1 + .../openssl/html/man3/OCSP_basic_verify.html | 1 + .../openssl/html/man3/OCSP_cert_id_new.html | 1 + .../openssl/html/man3/OCSP_cert_to_id.html | 94 + .../openssl/html/man3/OCSP_check_nonce.html | 1 + .../html/man3/OCSP_check_validity.html | 1 + .../openssl/html/man3/OCSP_copy_nonce.html | 1 + .../doc/openssl/html/man3/OCSP_id_cmp.html | 1 + .../openssl/html/man3/OCSP_id_get0_info.html | 1 + .../openssl/html/man3/OCSP_id_issuer_cmp.html | 1 + .../html/man3/OCSP_request_add0_id.html | 1 + .../html/man3/OCSP_request_add1_cert.html | 1 + .../html/man3/OCSP_request_add1_nonce.html | 82 + .../html/man3/OCSP_request_onereq_count.html | 1 + .../html/man3/OCSP_request_onereq_get0.html | 1 + .../openssl/html/man3/OCSP_request_sign.html | 1 + .../openssl/html/man3/OCSP_resp_count.html | 1 + .../doc/openssl/html/man3/OCSP_resp_find.html | 1 + .../html/man3/OCSP_resp_find_status.html | 140 + .../doc/openssl/html/man3/OCSP_resp_get0.html | 1 + .../html/man3/OCSP_resp_get0_certs.html | 1 + .../openssl/html/man3/OCSP_resp_get0_id.html | 1 + .../html/man3/OCSP_resp_get0_produced_at.html | 1 + .../html/man3/OCSP_resp_get0_respdata.html | 1 + .../html/man3/OCSP_resp_get0_signature.html | 1 + .../html/man3/OCSP_resp_get0_signer.html | 1 + .../html/man3/OCSP_resp_get0_tbs_sigalg.html | 1 + .../openssl/html/man3/OCSP_resp_get1_id.html | 1 + .../html/man3/OCSP_response_create.html | 1 + .../html/man3/OCSP_response_get1_basic.html | 1 + .../html/man3/OCSP_response_status.html | 107 + .../openssl/html/man3/OCSP_sendreq_bio.html | 1 + .../openssl/html/man3/OCSP_sendreq_nbio.html | 1 + .../openssl/html/man3/OCSP_sendreq_new.html | 115 + .../man3/OCSP_set_max_response_length.html | 1 + .../html/man3/OCSP_single_get0_status.html | 1 + .../openssl/html/man3/OPENSSL_Applink.html | 49 + .../openssl/html/man3/OPENSSL_INIT_free.html | 1 + .../openssl/html/man3/OPENSSL_INIT_new.html | 1 + .../man3/OPENSSL_INIT_set_config_appname.html | 1 + .../OPENSSL_INIT_set_config_file_flags.html | 1 + .../OPENSSL_INIT_set_config_filename.html | 1 + .../html/man3/OPENSSL_LH_COMPFUNC.html | 176 + .../html/man3/OPENSSL_LH_DOALL_FUNC.html | 1 + .../html/man3/OPENSSL_LH_HASHFUNC.html | 1 + .../html/man3/OPENSSL_LH_node_stats.html | 1 + .../html/man3/OPENSSL_LH_node_stats_bio.html | 1 + .../man3/OPENSSL_LH_node_usage_stats.html | 1 + .../man3/OPENSSL_LH_node_usage_stats_bio.html | 1 + .../openssl/html/man3/OPENSSL_LH_stats.html | 75 + .../html/man3/OPENSSL_LH_stats_bio.html | 1 + .../html/man3/OPENSSL_MALLOC_FAILURES.html | 1 + .../openssl/html/man3/OPENSSL_MALLOC_FD.html | 1 + .../html/man3/OPENSSL_VERSION_NUMBER.html | 132 + .../html/man3/OPENSSL_VERSION_TEXT.html | 1 + .../doc/openssl/html/man3/OPENSSL_atexit.html | 1 + .../openssl/html/man3/OPENSSL_buf2hexstr.html | 1 + .../html/man3/OPENSSL_cipher_name.html | 1 + .../openssl/html/man3/OPENSSL_cleanse.html | 1 + .../openssl/html/man3/OPENSSL_cleanup.html | 1 + .../openssl/html/man3/OPENSSL_clear_free.html | 1 + .../html/man3/OPENSSL_clear_realloc.html | 1 + .../doc/openssl/html/man3/OPENSSL_config.html | 88 + .../openssl/html/man3/OPENSSL_fork_child.html | 1 + .../html/man3/OPENSSL_fork_parent.html | 1 + .../html/man3/OPENSSL_fork_prepare.html | 67 + .../doc/openssl/html/man3/OPENSSL_free.html | 1 + .../html/man3/OPENSSL_hexchar2int.html | 1 + .../openssl/html/man3/OPENSSL_hexstr2buf.html | 1 + .../openssl/html/man3/OPENSSL_ia32cap.html | 206 + .../html/man3/OPENSSL_init_crypto.html | 221 + .../openssl/html/man3/OPENSSL_init_ssl.html | 87 + .../html/man3/OPENSSL_instrument_bus.html | 58 + .../html/man3/OPENSSL_instrument_bus2.html | 1 + .../man3/OPENSSL_load_builtin_modules.html | 71 + .../doc/openssl/html/man3/OPENSSL_malloc.html | 164 + .../html/man3/OPENSSL_malloc_init.html | 1 + .../html/man3/OPENSSL_mem_debug_pop.html | 1 + .../html/man3/OPENSSL_mem_debug_push.html | 1 + .../doc/openssl/html/man3/OPENSSL_memdup.html | 1 + .../openssl/html/man3/OPENSSL_no_config.html | 1 + .../openssl/html/man3/OPENSSL_realloc.html | 1 + .../html/man3/OPENSSL_secure_actual_size.html | 1 + .../html/man3/OPENSSL_secure_clear_free.html | 1 + .../html/man3/OPENSSL_secure_free.html | 1 + .../html/man3/OPENSSL_secure_malloc.html | 114 + .../html/man3/OPENSSL_secure_zalloc.html | 1 + .../doc/openssl/html/man3/OPENSSL_strdup.html | 1 + .../openssl/html/man3/OPENSSL_strlcat.html | 1 + .../openssl/html/man3/OPENSSL_strlcpy.html | 1 + .../openssl/html/man3/OPENSSL_strndup.html | 1 + .../html/man3/OPENSSL_thread_stop.html | 1 + .../doc/openssl/html/man3/OPENSSL_zalloc.html | 1 + .../doc/openssl/html/man3/OSSL_STORE_CTX.html | 1 + .../openssl/html/man3/OSSL_STORE_INFO.html | 163 + .../html/man3/OSSL_STORE_INFO_free.html | 1 + .../html/man3/OSSL_STORE_INFO_get0_CERT.html | 1 + .../html/man3/OSSL_STORE_INFO_get0_CRL.html | 1 + .../html/man3/OSSL_STORE_INFO_get0_NAME.html | 1 + ...OSSL_STORE_INFO_get0_NAME_description.html | 1 + .../man3/OSSL_STORE_INFO_get0_PARAMS.html | 1 + .../html/man3/OSSL_STORE_INFO_get0_PKEY.html | 1 + .../html/man3/OSSL_STORE_INFO_get1_CERT.html | 1 + .../html/man3/OSSL_STORE_INFO_get1_CRL.html | 1 + .../html/man3/OSSL_STORE_INFO_get1_NAME.html | 1 + ...OSSL_STORE_INFO_get1_NAME_description.html | 1 + .../man3/OSSL_STORE_INFO_get1_PARAMS.html | 1 + .../html/man3/OSSL_STORE_INFO_get1_PKEY.html | 1 + .../html/man3/OSSL_STORE_INFO_get_type.html | 1 + .../html/man3/OSSL_STORE_INFO_new_CERT.html | 1 + .../html/man3/OSSL_STORE_INFO_new_CRL.html | 1 + .../html/man3/OSSL_STORE_INFO_new_NAME.html | 1 + .../html/man3/OSSL_STORE_INFO_new_PARAMS.html | 1 + .../html/man3/OSSL_STORE_INFO_new_PKEY.html | 1 + ...OSSL_STORE_INFO_set0_NAME_description.html | 1 + .../man3/OSSL_STORE_INFO_type_string.html | 1 + .../openssl/html/man3/OSSL_STORE_LOADER.html | 219 + .../html/man3/OSSL_STORE_LOADER_CTX.html | 1 + .../html/man3/OSSL_STORE_LOADER_free.html | 1 + .../man3/OSSL_STORE_LOADER_get0_engine.html | 1 + .../man3/OSSL_STORE_LOADER_get0_scheme.html | 1 + .../html/man3/OSSL_STORE_LOADER_new.html | 1 + .../man3/OSSL_STORE_LOADER_set_close.html | 1 + .../html/man3/OSSL_STORE_LOADER_set_ctrl.html | 1 + .../html/man3/OSSL_STORE_LOADER_set_eof.html | 1 + .../man3/OSSL_STORE_LOADER_set_error.html | 1 + .../man3/OSSL_STORE_LOADER_set_expect.html | 1 + .../html/man3/OSSL_STORE_LOADER_set_find.html | 1 + .../html/man3/OSSL_STORE_LOADER_set_load.html | 1 + .../html/man3/OSSL_STORE_LOADER_set_open.html | 1 + .../openssl/html/man3/OSSL_STORE_SEARCH.html | 151 + .../html/man3/OSSL_STORE_SEARCH_by_alias.html | 1 + .../OSSL_STORE_SEARCH_by_issuer_serial.html | 1 + .../OSSL_STORE_SEARCH_by_key_fingerprint.html | 1 + .../html/man3/OSSL_STORE_SEARCH_by_name.html | 1 + .../html/man3/OSSL_STORE_SEARCH_free.html | 1 + .../man3/OSSL_STORE_SEARCH_get0_bytes.html | 1 + .../man3/OSSL_STORE_SEARCH_get0_digest.html | 1 + .../man3/OSSL_STORE_SEARCH_get0_name.html | 1 + .../man3/OSSL_STORE_SEARCH_get0_serial.html | 1 + .../man3/OSSL_STORE_SEARCH_get0_string.html | 1 + .../html/man3/OSSL_STORE_SEARCH_get_type.html | 1 + .../openssl/html/man3/OSSL_STORE_close.html | 1 + .../html/man3/OSSL_STORE_close_fn.html | 1 + .../openssl/html/man3/OSSL_STORE_ctrl.html | 1 + .../openssl/html/man3/OSSL_STORE_ctrl_fn.html | 1 + .../doc/openssl/html/man3/OSSL_STORE_eof.html | 1 + .../openssl/html/man3/OSSL_STORE_eof_fn.html | 1 + .../openssl/html/man3/OSSL_STORE_error.html | 1 + .../html/man3/OSSL_STORE_error_fn.html | 1 + .../openssl/html/man3/OSSL_STORE_expect.html | 82 + .../html/man3/OSSL_STORE_expect_fn.html | 1 + .../openssl/html/man3/OSSL_STORE_find.html | 1 + .../openssl/html/man3/OSSL_STORE_find_fn.html | 1 + .../openssl/html/man3/OSSL_STORE_load.html | 1 + .../openssl/html/man3/OSSL_STORE_load_fn.html | 1 + .../openssl/html/man3/OSSL_STORE_open.html | 135 + .../openssl/html/man3/OSSL_STORE_open_fn.html | 1 + .../man3/OSSL_STORE_post_process_info_fn.html | 1 + .../html/man3/OSSL_STORE_register_loader.html | 1 + .../html/man3/OSSL_STORE_supports_search.html | 1 + .../man3/OSSL_STORE_unregister_loader.html | 1 + .../doc/openssl/html/man3/OTHERNAME_free.html | 1 + .../doc/openssl/html/man3/OTHERNAME_new.html | 1 + .../html/man3/OpenSSL_add_all_algorithms.html | 77 + .../html/man3/OpenSSL_add_all_ciphers.html | 1 + .../html/man3/OpenSSL_add_all_digests.html | 1 + .../html/man3/OpenSSL_add_ssl_algorithms.html | 1 + .../openssl/html/man3/OpenSSL_version.html | 1 + .../html/man3/OpenSSL_version_num.html | 1 + .../doc/openssl/html/man3/PBE2PARAM_free.html | 1 + .../doc/openssl/html/man3/PBE2PARAM_new.html | 1 + .../doc/openssl/html/man3/PBEPARAM_free.html | 1 + .../doc/openssl/html/man3/PBEPARAM_new.html | 1 + .../openssl/html/man3/PBKDF2PARAM_free.html | 1 + .../openssl/html/man3/PBKDF2PARAM_new.html | 1 + .../html/man3/PEM_FLAG_EAY_COMPATIBLE.html | 1 + .../openssl/html/man3/PEM_FLAG_ONLY_B64.html | 1 + .../openssl/html/man3/PEM_FLAG_SECURE.html | 1 + .../openssl/html/man3/PEM_bytes_read_bio.html | 81 + .../html/man3/PEM_bytes_read_bio_secmem.html | 1 + .../doc/openssl/html/man3/PEM_do_header.html | 1 + .../html/man3/PEM_get_EVP_CIPHER_INFO.html | 1 + .../share/doc/openssl/html/man3/PEM_read.html | 98 + .../doc/openssl/html/man3/PEM_read_CMS.html | 78 + .../openssl/html/man3/PEM_read_DHparams.html | 1 + .../html/man3/PEM_read_DSAPrivateKey.html | 1 + .../html/man3/PEM_read_DSA_PUBKEY.html | 1 + .../openssl/html/man3/PEM_read_DSAparams.html | 1 + .../html/man3/PEM_read_ECPKParameters.html | 1 + .../html/man3/PEM_read_ECPrivateKey.html | 1 + .../openssl/html/man3/PEM_read_EC_PUBKEY.html | 1 + .../man3/PEM_read_NETSCAPE_CERT_SEQUENCE.html | 1 + .../doc/openssl/html/man3/PEM_read_PKCS7.html | 1 + .../doc/openssl/html/man3/PEM_read_PKCS8.html | 1 + .../man3/PEM_read_PKCS8_PRIV_KEY_INFO.html | 1 + .../openssl/html/man3/PEM_read_PUBKEY.html | 1 + .../html/man3/PEM_read_PrivateKey.html | 1 + .../html/man3/PEM_read_RSAPrivateKey.html | 1 + .../html/man3/PEM_read_RSAPublicKey.html | 1 + .../html/man3/PEM_read_RSA_PUBKEY.html | 1 + .../html/man3/PEM_read_SSL_SESSION.html | 1 + .../doc/openssl/html/man3/PEM_read_X509.html | 1 + .../openssl/html/man3/PEM_read_X509_AUX.html | 1 + .../openssl/html/man3/PEM_read_X509_CRL.html | 1 + .../openssl/html/man3/PEM_read_X509_REQ.html | 1 + .../doc/openssl/html/man3/PEM_read_bio.html | 1 + .../openssl/html/man3/PEM_read_bio_CMS.html | 1 + .../html/man3/PEM_read_bio_DHparams.html | 1 + .../html/man3/PEM_read_bio_DSAPrivateKey.html | 1 + .../html/man3/PEM_read_bio_DSA_PUBKEY.html | 1 + .../html/man3/PEM_read_bio_DSAparams.html | 1 + .../man3/PEM_read_bio_ECPKParameters.html | 1 + .../html/man3/PEM_read_bio_EC_PUBKEY.html | 1 + .../PEM_read_bio_NETSCAPE_CERT_SEQUENCE.html | 1 + .../openssl/html/man3/PEM_read_bio_PKCS7.html | 1 + .../openssl/html/man3/PEM_read_bio_PKCS8.html | 1 + .../PEM_read_bio_PKCS8_PRIV_KEY_INFO.html | 1 + .../html/man3/PEM_read_bio_PUBKEY.html | 1 + .../html/man3/PEM_read_bio_Parameters.html | 1 + .../html/man3/PEM_read_bio_PrivateKey.html | 381 ++ .../html/man3/PEM_read_bio_RSAPrivateKey.html | 1 + .../html/man3/PEM_read_bio_RSAPublicKey.html | 1 + .../html/man3/PEM_read_bio_RSA_PUBKEY.html | 1 + .../html/man3/PEM_read_bio_SSL_SESSION.html | 1 + .../openssl/html/man3/PEM_read_bio_X509.html | 1 + .../html/man3/PEM_read_bio_X509_AUX.html | 1 + .../html/man3/PEM_read_bio_X509_CRL.html | 1 + .../html/man3/PEM_read_bio_X509_REQ.html | 1 + .../openssl/html/man3/PEM_read_bio_ex.html | 80 + .../doc/openssl/html/man3/PEM_write.html | 1 + .../doc/openssl/html/man3/PEM_write_CMS.html | 1 + .../openssl/html/man3/PEM_write_DHparams.html | 1 + .../html/man3/PEM_write_DHxparams.html | 1 + .../html/man3/PEM_write_DSAPrivateKey.html | 1 + .../html/man3/PEM_write_DSA_PUBKEY.html | 1 + .../html/man3/PEM_write_DSAparams.html | 1 + .../html/man3/PEM_write_ECPKParameters.html | 1 + .../html/man3/PEM_write_ECPrivateKey.html | 1 + .../html/man3/PEM_write_EC_PUBKEY.html | 1 + .../PEM_write_NETSCAPE_CERT_SEQUENCE.html | 1 + .../openssl/html/man3/PEM_write_PKCS7.html | 1 + .../openssl/html/man3/PEM_write_PKCS8.html | 1 + .../html/man3/PEM_write_PKCS8PrivateKey.html | 1 + .../man3/PEM_write_PKCS8PrivateKey_nid.html | 1 + .../man3/PEM_write_PKCS8_PRIV_KEY_INFO.html | 1 + .../openssl/html/man3/PEM_write_PUBKEY.html | 1 + .../html/man3/PEM_write_PrivateKey.html | 1 + .../html/man3/PEM_write_RSAPrivateKey.html | 1 + .../html/man3/PEM_write_RSAPublicKey.html | 1 + .../html/man3/PEM_write_RSA_PUBKEY.html | 1 + .../html/man3/PEM_write_SSL_SESSION.html | 1 + .../doc/openssl/html/man3/PEM_write_X509.html | 1 + .../openssl/html/man3/PEM_write_X509_AUX.html | 1 + .../openssl/html/man3/PEM_write_X509_CRL.html | 1 + .../openssl/html/man3/PEM_write_X509_REQ.html | 1 + .../html/man3/PEM_write_X509_REQ_NEW.html | 1 + .../doc/openssl/html/man3/PEM_write_bio.html | 1 + .../openssl/html/man3/PEM_write_bio_CMS.html | 1 + .../html/man3/PEM_write_bio_CMS_stream.html | 68 + .../html/man3/PEM_write_bio_DHparams.html | 1 + .../html/man3/PEM_write_bio_DHxparams.html | 1 + .../man3/PEM_write_bio_DSAPrivateKey.html | 1 + .../html/man3/PEM_write_bio_DSA_PUBKEY.html | 1 + .../html/man3/PEM_write_bio_DSAparams.html | 1 + .../man3/PEM_write_bio_ECPKParameters.html | 1 + .../html/man3/PEM_write_bio_ECPrivateKey.html | 1 + .../html/man3/PEM_write_bio_EC_PUBKEY.html | 1 + .../PEM_write_bio_NETSCAPE_CERT_SEQUENCE.html | 1 + .../html/man3/PEM_write_bio_PKCS7.html | 1 + .../html/man3/PEM_write_bio_PKCS7_stream.html | 68 + .../html/man3/PEM_write_bio_PKCS8.html | 1 + .../man3/PEM_write_bio_PKCS8PrivateKey.html | 1 + .../PEM_write_bio_PKCS8PrivateKey_nid.html | 1 + .../PEM_write_bio_PKCS8_PRIV_KEY_INFO.html | 1 + .../html/man3/PEM_write_bio_PUBKEY.html | 1 + .../html/man3/PEM_write_bio_Parameters.html | 1 + .../html/man3/PEM_write_bio_PrivateKey.html | 1 + .../PEM_write_bio_PrivateKey_traditional.html | 1 + .../man3/PEM_write_bio_RSAPrivateKey.html | 1 + .../html/man3/PEM_write_bio_RSAPublicKey.html | 1 + .../html/man3/PEM_write_bio_RSA_PUBKEY.html | 1 + .../html/man3/PEM_write_bio_SSL_SESSION.html | 1 + .../openssl/html/man3/PEM_write_bio_X509.html | 1 + .../html/man3/PEM_write_bio_X509_AUX.html | 1 + .../html/man3/PEM_write_bio_X509_CRL.html | 1 + .../html/man3/PEM_write_bio_X509_REQ.html | 1 + .../html/man3/PEM_write_bio_X509_REQ_NEW.html | 1 + .../openssl/html/man3/PKCS12_BAGS_free.html | 1 + .../openssl/html/man3/PKCS12_BAGS_new.html | 1 + .../html/man3/PKCS12_MAC_DATA_free.html | 1 + .../html/man3/PKCS12_MAC_DATA_new.html | 1 + .../html/man3/PKCS12_SAFEBAG_free.html | 1 + .../openssl/html/man3/PKCS12_SAFEBAG_new.html | 1 + .../doc/openssl/html/man3/PKCS12_create.html | 83 + .../doc/openssl/html/man3/PKCS12_free.html | 1 + .../doc/openssl/html/man3/PKCS12_new.html | 1 + .../doc/openssl/html/man3/PKCS12_newpass.html | 125 + .../doc/openssl/html/man3/PKCS12_parse.html | 81 + .../openssl/html/man3/PKCS5_PBKDF2_HMAC.html | 82 + .../html/man3/PKCS5_PBKDF2_HMAC_SHA1.html | 1 + .../openssl/html/man3/PKCS7_DIGEST_free.html | 1 + .../openssl/html/man3/PKCS7_DIGEST_new.html | 1 + .../openssl/html/man3/PKCS7_ENCRYPT_free.html | 1 + .../openssl/html/man3/PKCS7_ENCRYPT_new.html | 1 + .../html/man3/PKCS7_ENC_CONTENT_free.html | 1 + .../html/man3/PKCS7_ENC_CONTENT_new.html | 1 + .../html/man3/PKCS7_ENVELOPE_free.html | 1 + .../openssl/html/man3/PKCS7_ENVELOPE_new.html | 1 + .../man3/PKCS7_ISSUER_AND_SERIAL_digest.html | 1 + .../man3/PKCS7_ISSUER_AND_SERIAL_free.html | 1 + .../man3/PKCS7_ISSUER_AND_SERIAL_new.html | 1 + .../html/man3/PKCS7_RECIP_INFO_free.html | 1 + .../html/man3/PKCS7_RECIP_INFO_new.html | 1 + .../openssl/html/man3/PKCS7_SIGNED_free.html | 1 + .../openssl/html/man3/PKCS7_SIGNED_new.html | 1 + .../html/man3/PKCS7_SIGNER_INFO_free.html | 1 + .../html/man3/PKCS7_SIGNER_INFO_new.html | 1 + .../html/man3/PKCS7_SIGN_ENVELOPE_free.html | 1 + .../html/man3/PKCS7_SIGN_ENVELOPE_new.html | 1 + .../doc/openssl/html/man3/PKCS7_decrypt.html | 72 + .../doc/openssl/html/man3/PKCS7_dup.html | 1 + .../doc/openssl/html/man3/PKCS7_encrypt.html | 90 + .../doc/openssl/html/man3/PKCS7_free.html | 1 + .../openssl/html/man3/PKCS7_get0_signers.html | 1 + .../doc/openssl/html/man3/PKCS7_new.html | 1 + .../openssl/html/man3/PKCS7_print_ctx.html | 1 + .../doc/openssl/html/man3/PKCS7_sign.html | 109 + .../html/man3/PKCS7_sign_add_signer.html | 87 + .../doc/openssl/html/man3/PKCS7_verify.html | 110 + .../html/man3/PKCS8_PRIV_KEY_INFO_free.html | 1 + .../html/man3/PKCS8_PRIV_KEY_INFO_new.html | 1 + .../html/man3/PKEY_USAGE_PERIOD_free.html | 1 + .../html/man3/PKEY_USAGE_PERIOD_new.html | 1 + .../openssl/html/man3/POLICYINFO_free.html | 1 + .../doc/openssl/html/man3/POLICYINFO_new.html | 1 + .../html/man3/POLICYQUALINFO_free.html | 1 + .../openssl/html/man3/POLICYQUALINFO_new.html | 1 + .../html/man3/POLICY_CONSTRAINTS_free.html | 1 + .../html/man3/POLICY_CONSTRAINTS_new.html | 1 + .../html/man3/POLICY_MAPPING_free.html | 1 + .../openssl/html/man3/POLICY_MAPPING_new.html | 1 + .../openssl/html/man3/PROFESSION_INFO.html | 1 + .../openssl/html/man3/PROFESSION_INFOS.html | 1 + .../html/man3/PROFESSION_INFOS_free.html | 1 + .../html/man3/PROFESSION_INFOS_new.html | 1 + .../html/man3/PROFESSION_INFO_free.html | 1 + ...ROFESSION_INFO_get0_addProfessionInfo.html | 1 + .../PROFESSION_INFO_get0_namingAuthority.html | 1 + .../PROFESSION_INFO_get0_professionItems.html | 1 + .../PROFESSION_INFO_get0_professionOIDs.html | 1 + ...OFESSION_INFO_get0_registrationNumber.html | 1 + .../html/man3/PROFESSION_INFO_new.html | 1 + ...ROFESSION_INFO_set0_addProfessionInfo.html | 1 + .../PROFESSION_INFO_set0_namingAuthority.html | 1 + .../PROFESSION_INFO_set0_professionItems.html | 1 + .../PROFESSION_INFO_set0_professionOIDs.html | 1 + ...OFESSION_INFO_set0_registrationNumber.html | 1 + .../man3/PROXY_CERT_INFO_EXTENSION_free.html | 1 + .../man3/PROXY_CERT_INFO_EXTENSION_new.html | 1 + .../openssl/html/man3/PROXY_POLICY_free.html | 1 + .../openssl/html/man3/PROXY_POLICY_new.html | 1 + .../openssl/html/man3/RAND_DRBG_bytes.html | 1 + .../man3/RAND_DRBG_cleanup_entropy_fn.html | 1 + .../html/man3/RAND_DRBG_cleanup_nonce_fn.html | 1 + .../doc/openssl/html/man3/RAND_DRBG_free.html | 1 + .../openssl/html/man3/RAND_DRBG_generate.html | 80 + .../html/man3/RAND_DRBG_get0_master.html | 80 + .../html/man3/RAND_DRBG_get0_private.html | 1 + .../html/man3/RAND_DRBG_get0_public.html | 1 + .../html/man3/RAND_DRBG_get_entropy_fn.html | 1 + .../html/man3/RAND_DRBG_get_ex_data.html | 1 + .../html/man3/RAND_DRBG_get_ex_new_index.html | 1 + .../html/man3/RAND_DRBG_get_nonce_fn.html | 1 + .../html/man3/RAND_DRBG_instantiate.html | 1 + .../doc/openssl/html/man3/RAND_DRBG_new.html | 105 + .../openssl/html/man3/RAND_DRBG_reseed.html | 91 + .../html/man3/RAND_DRBG_secure_new.html | 1 + .../doc/openssl/html/man3/RAND_DRBG_set.html | 1 + .../html/man3/RAND_DRBG_set_callbacks.html | 120 + .../html/man3/RAND_DRBG_set_defaults.html | 1 + .../html/man3/RAND_DRBG_set_ex_data.html | 74 + .../man3/RAND_DRBG_set_reseed_defaults.html | 1 + .../man3/RAND_DRBG_set_reseed_interval.html | 1 + .../RAND_DRBG_set_reseed_time_interval.html | 1 + .../html/man3/RAND_DRBG_uninstantiate.html | 1 + .../doc/openssl/html/man3/RAND_OpenSSL.html | 1 + .../share/doc/openssl/html/man3/RAND_add.html | 92 + .../doc/openssl/html/man3/RAND_bytes.html | 87 + .../doc/openssl/html/man3/RAND_cleanup.html | 63 + .../share/doc/openssl/html/man3/RAND_egd.html | 67 + .../doc/openssl/html/man3/RAND_egd_bytes.html | 1 + .../doc/openssl/html/man3/RAND_event.html | 1 + .../doc/openssl/html/man3/RAND_file_name.html | 1 + .../html/man3/RAND_get_rand_method.html | 1 + .../man3/RAND_keep_random_devices_open.html | 1 + .../doc/openssl/html/man3/RAND_load_file.html | 94 + .../doc/openssl/html/man3/RAND_poll.html | 1 + .../openssl/html/man3/RAND_priv_bytes.html | 1 + .../openssl/html/man3/RAND_pseudo_bytes.html | 1 + .../html/man3/RAND_query_egd_bytes.html | 1 + .../doc/openssl/html/man3/RAND_screen.html | 1 + .../doc/openssl/html/man3/RAND_seed.html | 1 + .../html/man3/RAND_set_rand_method.html | 82 + .../doc/openssl/html/man3/RAND_status.html | 1 + .../openssl/html/man3/RAND_write_file.html | 1 + .../share/doc/openssl/html/man3/RC4.html | 1 + .../doc/openssl/html/man3/RC4_set_key.html | 76 + .../doc/openssl/html/man3/RIPEMD160.html | 1 + .../openssl/html/man3/RIPEMD160_Final.html | 1 + .../doc/openssl/html/man3/RIPEMD160_Init.html | 83 + .../openssl/html/man3/RIPEMD160_Update.html | 1 + .../openssl/html/man3/RSAPrivateKey_dup.html | 1 + .../openssl/html/man3/RSAPublicKey_dup.html | 1 + .../html/man3/RSA_OAEP_PARAMS_free.html | 1 + .../html/man3/RSA_OAEP_PARAMS_new.html | 1 + .../openssl/html/man3/RSA_PKCS1_OpenSSL.html | 1 + .../html/man3/RSA_PSS_PARAMS_free.html | 1 + .../openssl/html/man3/RSA_PSS_PARAMS_new.html | 1 + .../share/doc/openssl/html/man3/RSA_bits.html | 1 + .../openssl/html/man3/RSA_blinding_off.html | 1 + .../openssl/html/man3/RSA_blinding_on.html | 59 + .../doc/openssl/html/man3/RSA_check_key.html | 81 + .../openssl/html/man3/RSA_check_key_ex.html | 1 + .../openssl/html/man3/RSA_clear_flags.html | 1 + .../doc/openssl/html/man3/RSA_flags.html | 1 + .../share/doc/openssl/html/man3/RSA_free.html | 1 + .../openssl/html/man3/RSA_generate_key.html | 105 + .../html/man3/RSA_generate_key_ex.html | 1 + .../man3/RSA_generate_multi_prime_key.html | 1 + .../html/man3/RSA_get0_crt_params.html | 1 + .../doc/openssl/html/man3/RSA_get0_d.html | 1 + .../doc/openssl/html/man3/RSA_get0_dmp1.html | 1 + .../doc/openssl/html/man3/RSA_get0_dmq1.html | 1 + .../doc/openssl/html/man3/RSA_get0_e.html | 1 + .../openssl/html/man3/RSA_get0_engine.html | 1 + .../openssl/html/man3/RSA_get0_factors.html | 1 + .../doc/openssl/html/man3/RSA_get0_iqmp.html | 1 + .../doc/openssl/html/man3/RSA_get0_key.html | 136 + .../man3/RSA_get0_multi_prime_crt_params.html | 1 + .../man3/RSA_get0_multi_prime_factors.html | 1 + .../doc/openssl/html/man3/RSA_get0_n.html | 1 + .../doc/openssl/html/man3/RSA_get0_p.html | 1 + .../html/man3/RSA_get0_pss_params.html | 1 + .../doc/openssl/html/man3/RSA_get0_q.html | 1 + .../html/man3/RSA_get_default_method.html | 1 + .../openssl/html/man3/RSA_get_ex_data.html | 1 + .../html/man3/RSA_get_ex_new_index.html | 1 + .../doc/openssl/html/man3/RSA_get_method.html | 1 + .../man3/RSA_get_multi_prime_extra_count.html | 1 + .../openssl/html/man3/RSA_get_version.html | 1 + .../doc/openssl/html/man3/RSA_meth_dup.html | 1 + .../doc/openssl/html/man3/RSA_meth_free.html | 1 + .../html/man3/RSA_meth_get0_app_data.html | 1 + .../openssl/html/man3/RSA_meth_get0_name.html | 1 + .../html/man3/RSA_meth_get_bn_mod_exp.html | 1 + .../html/man3/RSA_meth_get_finish.html | 1 + .../openssl/html/man3/RSA_meth_get_flags.html | 1 + .../openssl/html/man3/RSA_meth_get_init.html | 1 + .../html/man3/RSA_meth_get_keygen.html | 1 + .../html/man3/RSA_meth_get_mod_exp.html | 1 + .../man3/RSA_meth_get_multi_prime_keygen.html | 1 + .../html/man3/RSA_meth_get_priv_dec.html | 1 + .../html/man3/RSA_meth_get_priv_enc.html | 1 + .../html/man3/RSA_meth_get_pub_dec.html | 1 + .../html/man3/RSA_meth_get_pub_enc.html | 1 + .../openssl/html/man3/RSA_meth_get_sign.html | 1 + .../html/man3/RSA_meth_get_verify.html | 1 + .../doc/openssl/html/man3/RSA_meth_new.html | 202 + .../html/man3/RSA_meth_set0_app_data.html | 1 + .../openssl/html/man3/RSA_meth_set1_name.html | 1 + .../html/man3/RSA_meth_set_bn_mod_exp.html | 1 + .../html/man3/RSA_meth_set_finish.html | 1 + .../openssl/html/man3/RSA_meth_set_flags.html | 1 + .../openssl/html/man3/RSA_meth_set_init.html | 1 + .../html/man3/RSA_meth_set_keygen.html | 1 + .../html/man3/RSA_meth_set_mod_exp.html | 1 + .../man3/RSA_meth_set_multi_prime_keygen.html | 1 + .../html/man3/RSA_meth_set_priv_dec.html | 1 + .../html/man3/RSA_meth_set_priv_enc.html | 1 + .../html/man3/RSA_meth_set_pub_dec.html | 1 + .../html/man3/RSA_meth_set_pub_enc.html | 1 + .../openssl/html/man3/RSA_meth_set_sign.html | 1 + .../html/man3/RSA_meth_set_verify.html | 1 + .../share/doc/openssl/html/man3/RSA_new.html | 62 + .../doc/openssl/html/man3/RSA_new_method.html | 1 + .../html/man3/RSA_padding_add_PKCS1_OAEP.html | 1 + .../man3/RSA_padding_add_PKCS1_OAEP_mgf1.html | 1 + .../man3/RSA_padding_add_PKCS1_type_1.html | 149 + .../man3/RSA_padding_add_PKCS1_type_2.html | 1 + .../html/man3/RSA_padding_add_SSLv23.html | 1 + .../html/man3/RSA_padding_add_none.html | 1 + .../man3/RSA_padding_check_PKCS1_OAEP.html | 1 + .../RSA_padding_check_PKCS1_OAEP_mgf1.html | 1 + .../man3/RSA_padding_check_PKCS1_type_1.html | 1 + .../man3/RSA_padding_check_PKCS1_type_2.html | 1 + .../html/man3/RSA_padding_check_SSLv23.html | 1 + .../html/man3/RSA_padding_check_none.html | 1 + .../doc/openssl/html/man3/RSA_print.html | 71 + .../doc/openssl/html/man3/RSA_print_fp.html | 1 + .../html/man3/RSA_private_decrypt.html | 1 + .../html/man3/RSA_private_encrypt.html | 84 + .../openssl/html/man3/RSA_public_decrypt.html | 1 + .../openssl/html/man3/RSA_public_encrypt.html | 106 + .../openssl/html/man3/RSA_security_bits.html | 1 + .../html/man3/RSA_set0_crt_params.html | 1 + .../openssl/html/man3/RSA_set0_factors.html | 1 + .../doc/openssl/html/man3/RSA_set0_key.html | 1 + .../man3/RSA_set0_multi_prime_params.html | 1 + .../html/man3/RSA_set_default_method.html | 1 + .../openssl/html/man3/RSA_set_ex_data.html | 1 + .../doc/openssl/html/man3/RSA_set_flags.html | 1 + .../doc/openssl/html/man3/RSA_set_method.html | 161 + .../share/doc/openssl/html/man3/RSA_sign.html | 71 + .../html/man3/RSA_sign_ASN1_OCTET_STRING.html | 75 + .../share/doc/openssl/html/man3/RSA_size.html | 75 + .../doc/openssl/html/man3/RSA_test_flags.html | 1 + .../doc/openssl/html/man3/RSA_verify.html | 1 + .../man3/RSA_verify_ASN1_OCTET_STRING.html | 1 + .../openssl/html/man3/SCRYPT_PARAMS_free.html | 1 + .../openssl/html/man3/SCRYPT_PARAMS_new.html | 1 + .../doc/openssl/html/man3/SCT_LIST_free.html | 1 + .../doc/openssl/html/man3/SCT_LIST_print.html | 1 + .../openssl/html/man3/SCT_LIST_validate.html | 1 + .../share/doc/openssl/html/man3/SCT_free.html | 1 + .../html/man3/SCT_get0_extensions.html | 1 + .../openssl/html/man3/SCT_get0_log_id.html | 1 + .../openssl/html/man3/SCT_get0_signature.html | 1 + .../html/man3/SCT_get_log_entry_type.html | 1 + .../html/man3/SCT_get_signature_nid.html | 1 + .../doc/openssl/html/man3/SCT_get_source.html | 1 + .../openssl/html/man3/SCT_get_timestamp.html | 1 + .../html/man3/SCT_get_validation_status.html | 1 + .../openssl/html/man3/SCT_get_version.html | 1 + .../share/doc/openssl/html/man3/SCT_new.html | 199 + .../html/man3/SCT_new_from_base64.html | 1 + .../doc/openssl/html/man3/SCT_print.html | 68 + .../html/man3/SCT_set0_extensions.html | 1 + .../openssl/html/man3/SCT_set0_log_id.html | 1 + .../openssl/html/man3/SCT_set0_signature.html | 1 + .../html/man3/SCT_set1_extensions.html | 1 + .../openssl/html/man3/SCT_set1_log_id.html | 1 + .../openssl/html/man3/SCT_set1_signature.html | 1 + .../html/man3/SCT_set_log_entry_type.html | 1 + .../html/man3/SCT_set_signature_nid.html | 1 + .../doc/openssl/html/man3/SCT_set_source.html | 1 + .../openssl/html/man3/SCT_set_timestamp.html | 1 + .../openssl/html/man3/SCT_set_version.html | 1 + .../doc/openssl/html/man3/SCT_validate.html | 108 + .../man3/SCT_validation_status_string.html | 1 + .../share/doc/openssl/html/man3/SHA1.html | 1 + .../doc/openssl/html/man3/SHA1_Final.html | 1 + .../doc/openssl/html/man3/SHA1_Init.html | 1 + .../doc/openssl/html/man3/SHA1_Update.html | 1 + .../share/doc/openssl/html/man3/SHA224.html | 1 + .../doc/openssl/html/man3/SHA224_Final.html | 1 + .../doc/openssl/html/man3/SHA224_Init.html | 1 + .../doc/openssl/html/man3/SHA224_Update.html | 1 + .../share/doc/openssl/html/man3/SHA256.html | 1 + .../doc/openssl/html/man3/SHA256_Final.html | 1 + .../doc/openssl/html/man3/SHA256_Init.html | 105 + .../doc/openssl/html/man3/SHA256_Update.html | 1 + .../share/doc/openssl/html/man3/SHA384.html | 1 + .../doc/openssl/html/man3/SHA384_Final.html | 1 + .../doc/openssl/html/man3/SHA384_Init.html | 1 + .../doc/openssl/html/man3/SHA384_Update.html | 1 + .../share/doc/openssl/html/man3/SHA512.html | 1 + .../doc/openssl/html/man3/SHA512_Final.html | 1 + .../doc/openssl/html/man3/SHA512_Init.html | 1 + .../doc/openssl/html/man3/SHA512_Update.html | 1 + .../doc/openssl/html/man3/SMIME_read_CMS.html | 85 + .../openssl/html/man3/SMIME_read_PKCS7.html | 85 + .../openssl/html/man3/SMIME_write_CMS.html | 78 + .../openssl/html/man3/SMIME_write_PKCS7.html | 78 + .../html/man3/SSL_CIPHER_description.html | 1 + .../openssl/html/man3/SSL_CIPHER_find.html | 1 + .../html/man3/SSL_CIPHER_get_auth_nid.html | 1 + .../html/man3/SSL_CIPHER_get_bits.html | 1 + .../html/man3/SSL_CIPHER_get_cipher_nid.html | 1 + .../html/man3/SSL_CIPHER_get_digest_nid.html | 1 + .../man3/SSL_CIPHER_get_handshake_digest.html | 1 + .../openssl/html/man3/SSL_CIPHER_get_id.html | 1 + .../html/man3/SSL_CIPHER_get_kx_nid.html | 1 + .../html/man3/SSL_CIPHER_get_name.html | 181 + .../html/man3/SSL_CIPHER_get_protocol_id.html | 1 + .../html/man3/SSL_CIPHER_get_version.html | 1 + .../openssl/html/man3/SSL_CIPHER_is_aead.html | 1 + .../html/man3/SSL_CIPHER_standard_name.html | 1 + .../man3/SSL_COMP_add_compression_method.html | 111 + .../SSL_COMP_free_compression_methods.html | 1 + .../openssl/html/man3/SSL_COMP_get0_name.html | 1 + .../SSL_COMP_get_compression_methods.html | 1 + .../openssl/html/man3/SSL_COMP_get_id.html | 1 + .../html/man3/SSL_CONF_CTX_clear_flags.html | 1 + .../openssl/html/man3/SSL_CONF_CTX_free.html | 1 + .../openssl/html/man3/SSL_CONF_CTX_new.html | 66 + .../html/man3/SSL_CONF_CTX_set1_prefix.html | 70 + .../html/man3/SSL_CONF_CTX_set_flags.html | 105 + .../html/man3/SSL_CONF_CTX_set_ssl.html | 1 + .../html/man3/SSL_CONF_CTX_set_ssl_ctx.html | 69 + .../doc/openssl/html/man3/SSL_CONF_cmd.html | 556 ++ .../openssl/html/man3/SSL_CONF_cmd_argv.html | 65 + .../html/man3/SSL_CONF_cmd_value_type.html | 1 + .../html/man3/SSL_CTX_add0_chain_cert.html | 1 + .../html/man3/SSL_CTX_add1_chain_cert.html | 122 + .../html/man3/SSL_CTX_add1_to_CA_list.html | 1 + .../html/man3/SSL_CTX_add_client_CA.html | 1 + .../man3/SSL_CTX_add_client_custom_ext.html | 1 + .../html/man3/SSL_CTX_add_custom_ext.html | 1 + .../man3/SSL_CTX_add_extra_chain_cert.html | 75 + .../man3/SSL_CTX_add_server_custom_ext.html | 1 + .../html/man3/SSL_CTX_add_session.html | 83 + .../html/man3/SSL_CTX_build_cert_chain.html | 1 + .../html/man3/SSL_CTX_callback_ctrl.html | 1 + .../html/man3/SSL_CTX_check_private_key.html | 1 + .../html/man3/SSL_CTX_clear_chain_certs.html | 1 + .../man3/SSL_CTX_clear_extra_chain_certs.html | 1 + .../openssl/html/man3/SSL_CTX_clear_mode.html | 1 + .../html/man3/SSL_CTX_clear_options.html | 1 + .../doc/openssl/html/man3/SSL_CTX_config.html | 105 + .../html/man3/SSL_CTX_ct_is_enabled.html | 1 + .../doc/openssl/html/man3/SSL_CTX_ctrl.html | 60 + .../html/man3/SSL_CTX_dane_clear_flags.html | 1 + .../html/man3/SSL_CTX_dane_enable.html | 252 + .../html/man3/SSL_CTX_dane_mtype_set.html | 1 + .../html/man3/SSL_CTX_dane_set_flags.html | 1 + .../SSL_CTX_decrypt_session_ticket_fn.html | 1 + .../openssl/html/man3/SSL_CTX_disable_ct.html | 1 + .../openssl/html/man3/SSL_CTX_enable_ct.html | 1 + .../html/man3/SSL_CTX_flush_sessions.html | 65 + .../doc/openssl/html/man3/SSL_CTX_free.html | 65 + .../SSL_CTX_generate_session_ticket_fn.html | 1 + .../html/man3/SSL_CTX_get0_CA_list.html | 1 + .../html/man3/SSL_CTX_get0_chain_certs.html | 1 + .../openssl/html/man3/SSL_CTX_get0_param.html | 81 + .../man3/SSL_CTX_get0_security_ex_data.html | 1 + .../html/man3/SSL_CTX_get_cert_store.html | 1 + .../html/man3/SSL_CTX_get_ciphers.html | 1 + .../html/man3/SSL_CTX_get_client_CA_list.html | 1 + .../html/man3/SSL_CTX_get_client_cert_cb.html | 1 + .../man3/SSL_CTX_get_default_passwd_cb.html | 1 + ...SL_CTX_get_default_passwd_cb_userdata.html | 1 + .../man3/SSL_CTX_get_default_read_ahead.html | 1 + .../html/man3/SSL_CTX_get_ex_data.html | 1 + .../html/man3/SSL_CTX_get_info_callback.html | 1 + .../man3/SSL_CTX_get_keylog_callback.html | 1 + .../html/man3/SSL_CTX_get_max_cert_list.html | 1 + .../html/man3/SSL_CTX_get_max_early_data.html | 1 + .../man3/SSL_CTX_get_max_proto_version.html | 1 + .../man3/SSL_CTX_get_min_proto_version.html | 1 + .../openssl/html/man3/SSL_CTX_get_mode.html | 1 + .../html/man3/SSL_CTX_get_num_tickets.html | 1 + .../html/man3/SSL_CTX_get_options.html | 1 + .../html/man3/SSL_CTX_get_quiet_shutdown.html | 1 + .../html/man3/SSL_CTX_get_read_ahead.html | 1 + ...L_CTX_get_record_padding_callback_arg.html | 1 + .../man3/SSL_CTX_get_recv_max_early_data.html | 1 + .../man3/SSL_CTX_get_security_callback.html | 1 + .../html/man3/SSL_CTX_get_security_level.html | 1 + .../man3/SSL_CTX_get_session_cache_mode.html | 1 + .../html/man3/SSL_CTX_get_timeout.html | 1 + .../man3/SSL_CTX_get_tlsext_status_arg.html | 1 + .../man3/SSL_CTX_get_tlsext_status_cb.html | 1 + .../man3/SSL_CTX_get_tlsext_status_type.html | 1 + .../man3/SSL_CTX_get_verify_callback.html | 1 + .../html/man3/SSL_CTX_get_verify_depth.html | 1 + .../html/man3/SSL_CTX_get_verify_mode.html | 71 + .../man3/SSL_CTX_has_client_custom_ext.html | 56 + .../html/man3/SSL_CTX_keylog_cb_func.html | 1 + .../man3/SSL_CTX_load_verify_locations.html | 131 + .../doc/openssl/html/man3/SSL_CTX_new.html | 205 + .../html/man3/SSL_CTX_remove_session.html | 1 + .../man3/SSL_CTX_select_current_cert.html | 1 + .../html/man3/SSL_CTX_sess_accept.html | 1 + .../html/man3/SSL_CTX_sess_accept_good.html | 1 + .../man3/SSL_CTX_sess_accept_renegotiate.html | 1 + .../html/man3/SSL_CTX_sess_cache_full.html | 1 + .../html/man3/SSL_CTX_sess_cb_hits.html | 1 + .../html/man3/SSL_CTX_sess_connect.html | 1 + .../html/man3/SSL_CTX_sess_connect_good.html | 1 + .../SSL_CTX_sess_connect_renegotiate.html | 1 + .../man3/SSL_CTX_sess_get_cache_size.html | 1 + .../html/man3/SSL_CTX_sess_get_get_cb.html | 1 + .../html/man3/SSL_CTX_sess_get_new_cb.html | 1 + .../html/man3/SSL_CTX_sess_get_remove_cb.html | 1 + .../openssl/html/man3/SSL_CTX_sess_hits.html | 1 + .../html/man3/SSL_CTX_sess_misses.html | 1 + .../html/man3/SSL_CTX_sess_number.html | 89 + .../man3/SSL_CTX_sess_set_cache_size.html | 70 + .../html/man3/SSL_CTX_sess_set_get_cb.html | 93 + .../html/man3/SSL_CTX_sess_set_new_cb.html | 1 + .../html/man3/SSL_CTX_sess_set_remove_cb.html | 1 + .../html/man3/SSL_CTX_sess_timeouts.html | 1 + .../openssl/html/man3/SSL_CTX_sessions.html | 61 + .../html/man3/SSL_CTX_set0_CA_list.html | 130 + .../openssl/html/man3/SSL_CTX_set0_chain.html | 1 + .../man3/SSL_CTX_set0_chain_cert_store.html | 1 + .../man3/SSL_CTX_set0_security_ex_data.html | 1 + .../man3/SSL_CTX_set0_verify_cert_store.html | 1 + .../html/man3/SSL_CTX_set1_cert_store.html | 1 + .../openssl/html/man3/SSL_CTX_set1_chain.html | 1 + .../man3/SSL_CTX_set1_chain_cert_store.html | 1 + .../man3/SSL_CTX_set1_client_sigalgs.html | 1 + .../SSL_CTX_set1_client_sigalgs_list.html | 1 + .../html/man3/SSL_CTX_set1_curves.html | 102 + .../html/man3/SSL_CTX_set1_curves_list.html | 1 + .../html/man3/SSL_CTX_set1_groups.html | 1 + .../html/man3/SSL_CTX_set1_groups_list.html | 1 + .../openssl/html/man3/SSL_CTX_set1_param.html | 1 + .../html/man3/SSL_CTX_set1_sigalgs.html | 106 + .../html/man3/SSL_CTX_set1_sigalgs_list.html | 1 + .../man3/SSL_CTX_set1_verify_cert_store.html | 90 + .../man3/SSL_CTX_set_allow_early_data_cb.html | 1 + .../html/man3/SSL_CTX_set_alpn_protos.html | 1 + .../html/man3/SSL_CTX_set_alpn_select_cb.html | 167 + .../html/man3/SSL_CTX_set_block_padding.html | 1 + .../html/man3/SSL_CTX_set_cert_cb.html | 77 + .../html/man3/SSL_CTX_set_cert_store.html | 84 + .../SSL_CTX_set_cert_verify_callback.html | 81 + .../html/man3/SSL_CTX_set_cipher_list.html | 109 + .../html/man3/SSL_CTX_set_ciphersuites.html | 1 + .../html/man3/SSL_CTX_set_client_CA_list.html | 1 + .../html/man3/SSL_CTX_set_client_cert_cb.html | 83 + .../man3/SSL_CTX_set_client_hello_cb.html | 97 + .../man3/SSL_CTX_set_cookie_generate_cb.html | 1 + .../man3/SSL_CTX_set_cookie_verify_cb.html | 1 + .../SSL_CTX_set_ct_validation_callback.html | 101 + .../man3/SSL_CTX_set_ctlog_list_file.html | 66 + .../html/man3/SSL_CTX_set_current_cert.html | 1 + .../SSL_CTX_set_default_ctlog_list_file.html | 1 + .../man3/SSL_CTX_set_default_passwd_cb.html | 100 + ...SL_CTX_set_default_passwd_cb_userdata.html | 1 + .../SSL_CTX_set_default_read_buffer_len.html | 1 + .../man3/SSL_CTX_set_default_verify_dir.html | 1 + .../man3/SSL_CTX_set_default_verify_file.html | 1 + .../SSL_CTX_set_default_verify_paths.html | 1 + .../html/man3/SSL_CTX_set_ex_data.html | 64 + .../man3/SSL_CTX_set_generate_session_id.html | 116 + .../html/man3/SSL_CTX_set_info_callback.html | 186 + .../man3/SSL_CTX_set_keylog_callback.html | 63 + .../html/man3/SSL_CTX_set_max_cert_list.html | 81 + .../html/man3/SSL_CTX_set_max_early_data.html | 1 + .../html/man3/SSL_CTX_set_max_pipelines.html | 1 + .../man3/SSL_CTX_set_max_proto_version.html | 1 + .../man3/SSL_CTX_set_max_send_fragment.html | 1 + .../man3/SSL_CTX_set_min_proto_version.html | 80 + .../openssl/html/man3/SSL_CTX_set_mode.html | 136 + .../html/man3/SSL_CTX_set_msg_callback.html | 142 + .../man3/SSL_CTX_set_msg_callback_arg.html | 1 + .../SSL_CTX_set_next_proto_select_cb.html | 1 + ...SSL_CTX_set_next_protos_advertised_cb.html | 1 + .../html/man3/SSL_CTX_set_num_tickets.html | 67 + .../html/man3/SSL_CTX_set_options.html | 350 ++ .../man3/SSL_CTX_set_post_handshake_auth.html | 1 + .../man3/SSL_CTX_set_psk_client_callback.html | 143 + ...SSL_CTX_set_psk_find_session_callback.html | 1 + .../man3/SSL_CTX_set_psk_server_callback.html | 1 + .../SSL_CTX_set_psk_use_session_callback.html | 1 + .../html/man3/SSL_CTX_set_quiet_shutdown.html | 77 + .../html/man3/SSL_CTX_set_read_ahead.html | 72 + .../SSL_CTX_set_record_padding_callback.html | 94 + ...L_CTX_set_record_padding_callback_arg.html | 1 + .../man3/SSL_CTX_set_recv_max_early_data.html | 1 + .../man3/SSL_CTX_set_security_callback.html | 1 + .../html/man3/SSL_CTX_set_security_level.html | 165 + .../man3/SSL_CTX_set_session_cache_mode.html | 128 + .../man3/SSL_CTX_set_session_id_context.html | 95 + .../man3/SSL_CTX_set_session_ticket_cb.html | 169 + .../man3/SSL_CTX_set_split_send_fragment.html | 150 + .../html/man3/SSL_CTX_set_ssl_version.html | 85 + ..._CTX_set_stateless_cookie_generate_cb.html | 89 + ...SL_CTX_set_stateless_cookie_verify_cb.html | 1 + .../html/man3/SSL_CTX_set_timeout.html | 74 + ...SL_CTX_set_tlsext_max_fragment_length.html | 1 + .../SSL_CTX_set_tlsext_servername_arg.html | 1 + ...SL_CTX_set_tlsext_servername_callback.html | 167 + .../man3/SSL_CTX_set_tlsext_status_arg.html | 1 + .../man3/SSL_CTX_set_tlsext_status_cb.html | 87 + .../man3/SSL_CTX_set_tlsext_status_type.html | 1 + .../SSL_CTX_set_tlsext_ticket_key_cb.html | 178 + .../man3/SSL_CTX_set_tlsext_use_srtp.html | 106 + .../openssl/html/man3/SSL_CTX_set_tmp_dh.html | 1 + .../man3/SSL_CTX_set_tmp_dh_callback.html | 119 + .../openssl/html/man3/SSL_CTX_set_verify.html | 264 + .../html/man3/SSL_CTX_set_verify_depth.html | 1 + .../doc/openssl/html/man3/SSL_CTX_up_ref.html | 1 + .../html/man3/SSL_CTX_use_PrivateKey.html | 1 + .../man3/SSL_CTX_use_PrivateKey_ASN1.html | 1 + .../man3/SSL_CTX_use_PrivateKey_file.html | 1 + .../html/man3/SSL_CTX_use_RSAPrivateKey.html | 1 + .../man3/SSL_CTX_use_RSAPrivateKey_ASN1.html | 1 + .../man3/SSL_CTX_use_RSAPrivateKey_file.html | 1 + .../html/man3/SSL_CTX_use_cert_and_key.html | 1 + .../html/man3/SSL_CTX_use_certificate.html | 121 + .../man3/SSL_CTX_use_certificate_ASN1.html | 1 + .../SSL_CTX_use_certificate_chain_file.html | 1 + .../man3/SSL_CTX_use_certificate_file.html | 1 + .../man3/SSL_CTX_use_psk_identity_hint.html | 126 + .../html/man3/SSL_CTX_use_serverinfo.html | 73 + .../html/man3/SSL_CTX_use_serverinfo_ex.html | 1 + .../man3/SSL_CTX_use_serverinfo_file.html | 1 + .../openssl/html/man3/SSL_SESSION_dup.html | 1 + .../openssl/html/man3/SSL_SESSION_free.html | 79 + .../man3/SSL_SESSION_get0_alpn_selected.html | 1 + .../html/man3/SSL_SESSION_get0_cipher.html | 68 + .../html/man3/SSL_SESSION_get0_hostname.html | 80 + .../man3/SSL_SESSION_get0_id_context.html | 70 + .../html/man3/SSL_SESSION_get0_peer.html | 56 + .../html/man3/SSL_SESSION_get0_ticket.html | 1 + .../man3/SSL_SESSION_get0_ticket_appdata.html | 1 + .../man3/SSL_SESSION_get_compress_id.html | 56 + .../html/man3/SSL_SESSION_get_ex_data.html | 61 + .../openssl/html/man3/SSL_SESSION_get_id.html | 1 + .../html/man3/SSL_SESSION_get_master_key.html | 1 + .../man3/SSL_SESSION_get_max_early_data.html | 1 + .../SSL_SESSION_get_max_fragment_length.html | 1 + .../SSL_SESSION_get_protocol_version.html | 68 + .../SSL_SESSION_get_ticket_lifetime_hint.html | 1 + .../html/man3/SSL_SESSION_get_time.html | 81 + .../html/man3/SSL_SESSION_get_timeout.html | 1 + .../html/man3/SSL_SESSION_has_ticket.html | 70 + .../html/man3/SSL_SESSION_is_resumable.html | 61 + .../openssl/html/man3/SSL_SESSION_new.html | 1 + .../openssl/html/man3/SSL_SESSION_print.html | 62 + .../html/man3/SSL_SESSION_print_fp.html | 1 + .../html/man3/SSL_SESSION_print_keylog.html | 1 + .../man3/SSL_SESSION_set1_alpn_selected.html | 1 + .../html/man3/SSL_SESSION_set1_hostname.html | 1 + .../html/man3/SSL_SESSION_set1_id.html | 66 + .../man3/SSL_SESSION_set1_id_context.html | 1 + .../man3/SSL_SESSION_set1_master_key.html | 1 + .../man3/SSL_SESSION_set1_ticket_appdata.html | 1 + .../html/man3/SSL_SESSION_set_cipher.html | 1 + .../html/man3/SSL_SESSION_set_ex_data.html | 1 + .../man3/SSL_SESSION_set_max_early_data.html | 1 + .../SSL_SESSION_set_protocol_version.html | 1 + .../html/man3/SSL_SESSION_set_time.html | 1 + .../html/man3/SSL_SESSION_set_timeout.html | 1 + .../openssl/html/man3/SSL_SESSION_up_ref.html | 1 + .../doc/openssl/html/man3/SSL_accept.html | 87 + .../html/man3/SSL_add0_chain_cert.html | 1 + .../html/man3/SSL_add1_chain_cert.html | 1 + .../doc/openssl/html/man3/SSL_add1_host.html | 1 + .../html/man3/SSL_add1_to_CA_list.html | 1 + .../openssl/html/man3/SSL_add_client_CA.html | 1 + .../SSL_add_dir_cert_subjects_to_stack.html | 1 + .../SSL_add_file_cert_subjects_to_stack.html | 1 + .../html/man3/SSL_alert_desc_string.html | 1 + .../html/man3/SSL_alert_desc_string_long.html | 1 + .../html/man3/SSL_alert_type_string.html | 255 + .../html/man3/SSL_alert_type_string_long.html | 1 + .../openssl/html/man3/SSL_alloc_buffers.html | 77 + .../html/man3/SSL_allow_early_data_cb_fn.html | 1 + .../html/man3/SSL_build_cert_chain.html | 1 + .../html/man3/SSL_bytes_to_cipher_list.html | 1 + .../openssl/html/man3/SSL_callback_ctrl.html | 1 + .../openssl/html/man3/SSL_check_chain.html | 89 + .../html/man3/SSL_check_private_key.html | 1 + .../doc/openssl/html/man3/SSL_clear.html | 81 + .../html/man3/SSL_clear_chain_certs.html | 1 + .../doc/openssl/html/man3/SSL_clear_mode.html | 1 + .../openssl/html/man3/SSL_clear_options.html | 1 + .../html/man3/SSL_client_hello_cb_fn.html | 1 + .../man3/SSL_client_hello_get0_ciphers.html | 1 + ...client_hello_get0_compression_methods.html | 1 + .../html/man3/SSL_client_hello_get0_ext.html | 1 + .../SSL_client_hello_get0_legacy_version.html | 1 + .../man3/SSL_client_hello_get0_random.html | 1 + .../SSL_client_hello_get0_session_id.html | 1 + ..._client_hello_get1_extensions_present.html | 1 + .../html/man3/SSL_client_hello_isv2.html | 1 + .../openssl/html/man3/SSL_client_version.html | 1 + .../doc/openssl/html/man3/SSL_config.html | 1 + .../doc/openssl/html/man3/SSL_connect.html | 91 + .../openssl/html/man3/SSL_ct_is_enabled.html | 1 + .../share/doc/openssl/html/man3/SSL_ctrl.html | 1 + .../html/man3/SSL_dane_clear_flags.html | 1 + .../openssl/html/man3/SSL_dane_enable.html | 1 + .../openssl/html/man3/SSL_dane_set_flags.html | 1 + .../openssl/html/man3/SSL_dane_tlsa_add.html | 1 + .../doc/openssl/html/man3/SSL_disable_ct.html | 1 + .../openssl/html/man3/SSL_do_handshake.html | 87 + .../share/doc/openssl/html/man3/SSL_dup.html | 1 + .../doc/openssl/html/man3/SSL_enable_ct.html | 1 + .../html/man3/SSL_export_keying_material.html | 78 + .../SSL_export_keying_material_early.html | 1 + .../html/man3/SSL_extension_supported.html | 261 + .../share/doc/openssl/html/man3/SSL_free.html | 60 + .../openssl/html/man3/SSL_free_buffers.html | 1 + .../openssl/html/man3/SSL_get0_CA_list.html | 1 + .../html/man3/SSL_get0_alpn_selected.html | 1 + .../html/man3/SSL_get0_chain_certs.html | 1 + .../html/man3/SSL_get0_dane_authority.html | 1 + .../openssl/html/man3/SSL_get0_dane_tlsa.html | 1 + .../man3/SSL_get0_next_proto_negotiated.html | 1 + .../doc/openssl/html/man3/SSL_get0_param.html | 1 + .../html/man3/SSL_get0_peer_CA_list.html | 1 + .../openssl/html/man3/SSL_get0_peer_scts.html | 61 + .../openssl/html/man3/SSL_get0_peername.html | 1 + .../html/man3/SSL_get0_security_ex_data.html | 1 + .../openssl/html/man3/SSL_get0_session.html | 1 + .../html/man3/SSL_get0_verified_chain.html | 1 + .../openssl/html/man3/SSL_get1_curves.html | 1 + .../openssl/html/man3/SSL_get1_groups.html | 1 + .../openssl/html/man3/SSL_get1_session.html | 1 + .../html/man3/SSL_get1_supported_ciphers.html | 1 + .../openssl/html/man3/SSL_get_SSL_CTX.html | 56 + .../html/man3/SSL_get_all_async_fds.html | 76 + .../html/man3/SSL_get_changed_async_fds.html | 1 + .../doc/openssl/html/man3/SSL_get_cipher.html | 1 + .../html/man3/SSL_get_cipher_bits.html | 1 + .../html/man3/SSL_get_cipher_list.html | 1 + .../html/man3/SSL_get_cipher_name.html | 1 + .../html/man3/SSL_get_cipher_version.html | 1 + .../openssl/html/man3/SSL_get_ciphers.html | 89 + .../html/man3/SSL_get_client_CA_list.html | 1 + .../html/man3/SSL_get_client_ciphers.html | 1 + .../html/man3/SSL_get_client_random.html | 84 + .../html/man3/SSL_get_current_cipher.html | 73 + .../html/man3/SSL_get_default_passwd_cb.html | 1 + .../SSL_get_default_passwd_cb_userdata.html | 1 + .../html/man3/SSL_get_default_timeout.html | 63 + .../html/man3/SSL_get_early_data_status.html | 1 + .../doc/openssl/html/man3/SSL_get_error.html | 150 + .../openssl/html/man3/SSL_get_ex_data.html | 1 + .../SSL_get_ex_data_X509_STORE_CTX_idx.html | 1 + .../html/man3/SSL_get_extms_support.html | 58 + .../doc/openssl/html/man3/SSL_get_fd.html | 74 + .../html/man3/SSL_get_info_callback.html | 1 + .../html/man3/SSL_get_key_update_type.html | 1 + .../html/man3/SSL_get_max_cert_list.html | 1 + .../html/man3/SSL_get_max_early_data.html | 1 + .../html/man3/SSL_get_max_proto_version.html | 1 + .../html/man3/SSL_get_min_proto_version.html | 1 + .../doc/openssl/html/man3/SSL_get_mode.html | 1 + .../html/man3/SSL_get_num_tickets.html | 1 + .../openssl/html/man3/SSL_get_options.html | 1 + .../html/man3/SSL_get_peer_cert_chain.html | 84 + .../html/man3/SSL_get_peer_certificate.html | 81 + .../html/man3/SSL_get_peer_signature_nid.html | 63 + .../man3/SSL_get_peer_signature_type_nid.html | 1 + .../html/man3/SSL_get_peer_tmp_key.html | 67 + .../html/man3/SSL_get_pending_cipher.html | 1 + .../html/man3/SSL_get_psk_identity.html | 54 + .../html/man3/SSL_get_psk_identity_hint.html | 1 + .../html/man3/SSL_get_quiet_shutdown.html | 1 + .../doc/openssl/html/man3/SSL_get_rbio.html | 73 + .../openssl/html/man3/SSL_get_read_ahead.html | 1 + .../SSL_get_record_padding_callback_arg.html | 1 + .../man3/SSL_get_recv_max_early_data.html | 1 + .../doc/openssl/html/man3/SSL_get_rfd.html | 1 + .../SSL_get_secure_renegotiation_support.html | 1 + .../html/man3/SSL_get_security_callback.html | 1 + .../html/man3/SSL_get_security_level.html | 1 + .../man3/SSL_get_selected_srtp_profile.html | 1 + .../html/man3/SSL_get_server_random.html | 1 + .../html/man3/SSL_get_server_tmp_key.html | 1 + .../openssl/html/man3/SSL_get_servername.html | 1 + .../html/man3/SSL_get_servername_type.html | 1 + .../openssl/html/man3/SSL_get_session.html | 97 + .../html/man3/SSL_get_shared_ciphers.html | 1 + .../html/man3/SSL_get_shared_curve.html | 1 + .../html/man3/SSL_get_shared_group.html | 1 + .../html/man3/SSL_get_shared_sigalgs.html | 83 + .../openssl/html/man3/SSL_get_shutdown.html | 1 + .../openssl/html/man3/SSL_get_sigalgs.html | 1 + .../html/man3/SSL_get_signature_nid.html | 1 + .../html/man3/SSL_get_signature_type_nid.html | 1 + .../html/man3/SSL_get_srtp_profiles.html | 1 + .../openssl/html/man3/SSL_get_ssl_method.html | 1 + .../doc/openssl/html/man3/SSL_get_state.html | 1 + .../doc/openssl/html/man3/SSL_get_time.html | 1 + .../openssl/html/man3/SSL_get_timeout.html | 1 + .../man3/SSL_get_tlsext_status_ocsp_resp.html | 1 + .../html/man3/SSL_get_tlsext_status_type.html | 1 + .../openssl/html/man3/SSL_get_tmp_key.html | 1 + .../html/man3/SSL_get_verify_callback.html | 1 + .../html/man3/SSL_get_verify_depth.html | 1 + .../html/man3/SSL_get_verify_mode.html | 1 + .../html/man3/SSL_get_verify_result.html | 84 + .../openssl/html/man3/SSL_get_version.html | 145 + .../doc/openssl/html/man3/SSL_get_wbio.html | 1 + .../doc/openssl/html/man3/SSL_get_wfd.html | 1 + .../man3/SSL_has_matching_session_id.html | 1 + .../openssl/html/man3/SSL_has_pending.html | 1 + .../openssl/html/man3/SSL_in_accept_init.html | 1 + .../doc/openssl/html/man3/SSL_in_before.html | 1 + .../html/man3/SSL_in_connect_init.html | 1 + .../doc/openssl/html/man3/SSL_in_init.html | 117 + .../doc/openssl/html/man3/SSL_is_dtls.html | 1 + .../html/man3/SSL_is_init_finished.html | 1 + .../doc/openssl/html/man3/SSL_is_server.html | 1 + .../doc/openssl/html/man3/SSL_key_update.html | 86 + .../openssl/html/man3/SSL_library_init.html | 75 + .../html/man3/SSL_load_client_CA_file.html | 102 + .../html/man3/SSL_load_error_strings.html | 1 + .../share/doc/openssl/html/man3/SSL_new.html | 180 + .../share/doc/openssl/html/man3/SSL_peek.html | 1 + .../doc/openssl/html/man3/SSL_peek_ex.html | 1 + .../doc/openssl/html/man3/SSL_pending.html | 68 + .../html/man3/SSL_psk_client_cb_func.html | 1 + .../man3/SSL_psk_find_session_cb_func.html | 1 + .../html/man3/SSL_psk_server_cb_func.html | 1 + .../man3/SSL_psk_use_session_cb_func.html | 1 + .../share/doc/openssl/html/man3/SSL_read.html | 106 + .../html/man3/SSL_read_early_data.html | 184 + .../doc/openssl/html/man3/SSL_read_ex.html | 1 + .../openssl/html/man3/SSL_renegotiate.html | 1 + .../man3/SSL_renegotiate_abbreviated.html | 1 + .../html/man3/SSL_renegotiate_pending.html | 1 + .../openssl/html/man3/SSL_rstate_string.html | 94 + .../html/man3/SSL_rstate_string_long.html | 1 + .../html/man3/SSL_select_current_cert.html | 1 + .../html/man3/SSL_select_next_proto.html | 1 + .../openssl/html/man3/SSL_session_reused.html | 77 + .../openssl/html/man3/SSL_set0_CA_list.html | 1 + .../doc/openssl/html/man3/SSL_set0_chain.html | 1 + .../html/man3/SSL_set0_chain_cert_store.html | 1 + .../doc/openssl/html/man3/SSL_set0_rbio.html | 1 + .../html/man3/SSL_set0_security_ex_data.html | 1 + .../html/man3/SSL_set0_verify_cert_store.html | 1 + .../doc/openssl/html/man3/SSL_set0_wbio.html | 1 + .../doc/openssl/html/man3/SSL_set1_chain.html | 1 + .../html/man3/SSL_set1_chain_cert_store.html | 1 + .../html/man3/SSL_set1_client_sigalgs.html | 1 + .../man3/SSL_set1_client_sigalgs_list.html | 1 + .../openssl/html/man3/SSL_set1_curves.html | 1 + .../html/man3/SSL_set1_curves_list.html | 1 + .../openssl/html/man3/SSL_set1_groups.html | 1 + .../html/man3/SSL_set1_groups_list.html | 1 + .../doc/openssl/html/man3/SSL_set1_host.html | 96 + .../doc/openssl/html/man3/SSL_set1_param.html | 1 + .../openssl/html/man3/SSL_set1_sigalgs.html | 1 + .../html/man3/SSL_set1_sigalgs_list.html | 1 + .../html/man3/SSL_set1_verify_cert_store.html | 1 + .../html/man3/SSL_set_accept_state.html | 1 + .../man3/SSL_set_allow_early_data_cb.html | 1 + .../html/man3/SSL_set_alpn_protos.html | 1 + .../doc/openssl/html/man3/SSL_set_bio.html | 94 + .../html/man3/SSL_set_block_padding.html | 1 + .../openssl/html/man3/SSL_set_cert_cb.html | 1 + .../html/man3/SSL_set_cipher_list.html | 1 + .../html/man3/SSL_set_ciphersuites.html | 1 + .../html/man3/SSL_set_client_CA_list.html | 1 + .../html/man3/SSL_set_connect_state.html | 77 + .../man3/SSL_set_ct_validation_callback.html | 1 + .../html/man3/SSL_set_current_cert.html | 1 + .../html/man3/SSL_set_default_passwd_cb.html | 1 + .../SSL_set_default_passwd_cb_userdata.html | 1 + .../man3/SSL_set_default_read_buffer_len.html | 1 + .../openssl/html/man3/SSL_set_ex_data.html | 1 + .../doc/openssl/html/man3/SSL_set_fd.html | 80 + .../man3/SSL_set_generate_session_id.html | 1 + .../openssl/html/man3/SSL_set_hostflags.html | 1 + .../html/man3/SSL_set_info_callback.html | 1 + .../html/man3/SSL_set_max_cert_list.html | 1 + .../html/man3/SSL_set_max_early_data.html | 1 + .../html/man3/SSL_set_max_pipelines.html | 1 + .../html/man3/SSL_set_max_proto_version.html | 1 + .../html/man3/SSL_set_max_send_fragment.html | 1 + .../html/man3/SSL_set_min_proto_version.html | 1 + .../doc/openssl/html/man3/SSL_set_mode.html | 1 + .../html/man3/SSL_set_msg_callback.html | 1 + .../html/man3/SSL_set_msg_callback_arg.html | 1 + .../html/man3/SSL_set_num_tickets.html | 1 + .../openssl/html/man3/SSL_set_options.html | 1 + .../man3/SSL_set_post_handshake_auth.html | 1 + .../man3/SSL_set_psk_client_callback.html | 1 + .../SSL_set_psk_find_session_callback.html | 1 + .../man3/SSL_set_psk_server_callback.html | 1 + .../SSL_set_psk_use_session_callback.html | 1 + .../html/man3/SSL_set_quiet_shutdown.html | 1 + .../openssl/html/man3/SSL_set_read_ahead.html | 1 + .../man3/SSL_set_record_padding_callback.html | 1 + .../SSL_set_record_padding_callback_arg.html | 1 + .../man3/SSL_set_recv_max_early_data.html | 1 + .../doc/openssl/html/man3/SSL_set_rfd.html | 1 + .../html/man3/SSL_set_security_callback.html | 1 + .../html/man3/SSL_set_security_level.html | 1 + .../openssl/html/man3/SSL_set_session.html | 79 + .../html/man3/SSL_set_session_id_context.html | 1 + .../openssl/html/man3/SSL_set_shutdown.html | 95 + .../man3/SSL_set_split_send_fragment.html | 1 + .../openssl/html/man3/SSL_set_ssl_method.html | 1 + .../doc/openssl/html/man3/SSL_set_time.html | 1 + .../openssl/html/man3/SSL_set_timeout.html | 1 + .../html/man3/SSL_set_tlsext_host_name.html | 1 + .../SSL_set_tlsext_max_fragment_length.html | 1 + .../man3/SSL_set_tlsext_status_ocsp_resp.html | 1 + .../html/man3/SSL_set_tlsext_status_type.html | 1 + .../html/man3/SSL_set_tlsext_use_srtp.html | 1 + .../doc/openssl/html/man3/SSL_set_tmp_dh.html | 1 + .../html/man3/SSL_set_tmp_dh_callback.html | 1 + .../doc/openssl/html/man3/SSL_set_verify.html | 1 + .../html/man3/SSL_set_verify_depth.html | 1 + .../html/man3/SSL_set_verify_result.html | 63 + .../doc/openssl/html/man3/SSL_set_wfd.html | 1 + .../doc/openssl/html/man3/SSL_shutdown.html | 133 + .../openssl/html/man3/SSL_state_string.html | 68 + .../html/man3/SSL_state_string_long.html | 1 + .../doc/openssl/html/man3/SSL_stateless.html | 1 + .../doc/openssl/html/man3/SSL_up_ref.html | 1 + .../openssl/html/man3/SSL_use_PrivateKey.html | 1 + .../html/man3/SSL_use_PrivateKey_ASN1.html | 1 + .../html/man3/SSL_use_PrivateKey_file.html | 1 + .../html/man3/SSL_use_RSAPrivateKey.html | 1 + .../html/man3/SSL_use_RSAPrivateKey_ASN1.html | 1 + .../html/man3/SSL_use_RSAPrivateKey_file.html | 1 + .../html/man3/SSL_use_cert_and_key.html | 1 + .../html/man3/SSL_use_certificate.html | 1 + .../html/man3/SSL_use_certificate_ASN1.html | 1 + .../man3/SSL_use_certificate_chain_file.html | 1 + .../html/man3/SSL_use_certificate_file.html | 1 + .../html/man3/SSL_use_psk_identity_hint.html | 1 + .../doc/openssl/html/man3/SSL_verify_cb.html | 1 + .../SSL_verify_client_post_handshake.html | 1 + .../doc/openssl/html/man3/SSL_version.html | 1 + .../html/man3/SSL_waiting_for_async.html | 1 + .../share/doc/openssl/html/man3/SSL_want.html | 125 + .../doc/openssl/html/man3/SSL_want_async.html | 1 + .../openssl/html/man3/SSL_want_async_job.html | 1 + .../html/man3/SSL_want_client_hello_cb.html | 1 + .../openssl/html/man3/SSL_want_nothing.html | 1 + .../doc/openssl/html/man3/SSL_want_read.html | 1 + .../doc/openssl/html/man3/SSL_want_write.html | 1 + .../html/man3/SSL_want_x509_lookup.html | 1 + .../doc/openssl/html/man3/SSL_write.html | 104 + .../html/man3/SSL_write_early_data.html | 1 + .../doc/openssl/html/man3/SSL_write_ex.html | 1 + .../html/man3/SSLv23_client_method.html | 1 + .../doc/openssl/html/man3/SSLv23_method.html | 1 + .../html/man3/SSLv23_server_method.html | 1 + .../html/man3/SSLv3_client_method.html | 1 + .../doc/openssl/html/man3/SSLv3_method.html | 1 + .../html/man3/SSLv3_server_method.html | 1 + .../doc/openssl/html/man3/SXNETID_free.html | 1 + .../doc/openssl/html/man3/SXNETID_new.html | 1 + .../doc/openssl/html/man3/SXNET_free.html | 1 + .../doc/openssl/html/man3/SXNET_new.html | 1 + .../openssl/html/man3/TLS_FEATURE_free.html | 1 + .../openssl/html/man3/TLS_FEATURE_new.html | 1 + .../openssl/html/man3/TLS_client_method.html | 1 + .../doc/openssl/html/man3/TLS_method.html | 1 + .../openssl/html/man3/TLS_server_method.html | 1 + .../html/man3/TLSv1_1_client_method.html | 1 + .../doc/openssl/html/man3/TLSv1_1_method.html | 1 + .../html/man3/TLSv1_1_server_method.html | 1 + .../html/man3/TLSv1_2_client_method.html | 1 + .../doc/openssl/html/man3/TLSv1_2_method.html | 1 + .../html/man3/TLSv1_2_server_method.html | 1 + .../html/man3/TLSv1_client_method.html | 1 + .../doc/openssl/html/man3/TLSv1_method.html | 1 + .../html/man3/TLSv1_server_method.html | 1 + .../openssl/html/man3/TS_ACCURACY_dup.html | 1 + .../openssl/html/man3/TS_ACCURACY_free.html | 1 + .../openssl/html/man3/TS_ACCURACY_new.html | 1 + .../openssl/html/man3/TS_MSG_IMPRINT_dup.html | 1 + .../html/man3/TS_MSG_IMPRINT_free.html | 1 + .../openssl/html/man3/TS_MSG_IMPRINT_new.html | 1 + .../doc/openssl/html/man3/TS_REQ_dup.html | 1 + .../doc/openssl/html/man3/TS_REQ_free.html | 1 + .../doc/openssl/html/man3/TS_REQ_new.html | 1 + .../doc/openssl/html/man3/TS_RESP_dup.html | 1 + .../doc/openssl/html/man3/TS_RESP_free.html | 1 + .../doc/openssl/html/man3/TS_RESP_new.html | 1 + .../openssl/html/man3/TS_STATUS_INFO_dup.html | 1 + .../html/man3/TS_STATUS_INFO_free.html | 1 + .../openssl/html/man3/TS_STATUS_INFO_new.html | 1 + .../openssl/html/man3/TS_TST_INFO_dup.html | 1 + .../openssl/html/man3/TS_TST_INFO_free.html | 1 + .../openssl/html/man3/TS_TST_INFO_new.html | 1 + .../share/doc/openssl/html/man3/UI.html | 1 + .../doc/openssl/html/man3/UI_METHOD.html | 1 + .../doc/openssl/html/man3/UI_OpenSSL.html | 1 + .../doc/openssl/html/man3/UI_STRING.html | 113 + .../openssl/html/man3/UI_UTIL_read_pw.html | 73 + .../html/man3/UI_UTIL_read_pw_string.html | 1 + .../man3/UI_UTIL_wrap_read_pem_callback.html | 1 + .../html/man3/UI_add_error_string.html | 1 + .../openssl/html/man3/UI_add_info_string.html | 1 + .../html/man3/UI_add_input_boolean.html | 1 + .../html/man3/UI_add_input_string.html | 1 + .../openssl/html/man3/UI_add_user_data.html | 1 + .../html/man3/UI_add_verify_string.html | 1 + .../html/man3/UI_construct_prompt.html | 1 + .../openssl/html/man3/UI_create_method.html | 178 + .../share/doc/openssl/html/man3/UI_ctrl.html | 1 + .../openssl/html/man3/UI_destroy_method.html | 1 + .../html/man3/UI_dup_error_string.html | 1 + .../openssl/html/man3/UI_dup_info_string.html | 1 + .../html/man3/UI_dup_input_boolean.html | 1 + .../html/man3/UI_dup_input_string.html | 1 + .../openssl/html/man3/UI_dup_user_data.html | 1 + .../html/man3/UI_dup_verify_string.html | 1 + .../share/doc/openssl/html/man3/UI_free.html | 1 + .../html/man3/UI_get0_action_string.html | 1 + .../html/man3/UI_get0_output_string.html | 1 + .../doc/openssl/html/man3/UI_get0_result.html | 1 + .../html/man3/UI_get0_result_string.html | 1 + .../html/man3/UI_get0_test_string.html | 1 + .../openssl/html/man3/UI_get0_user_data.html | 1 + .../html/man3/UI_get_default_method.html | 1 + .../doc/openssl/html/man3/UI_get_ex_data.html | 1 + .../html/man3/UI_get_ex_new_index.html | 1 + .../openssl/html/man3/UI_get_input_flags.html | 1 + .../doc/openssl/html/man3/UI_get_method.html | 1 + .../html/man3/UI_get_result_length.html | 1 + .../html/man3/UI_get_result_maxsize.html | 1 + .../html/man3/UI_get_result_minsize.html | 1 + .../man3/UI_get_result_string_length.html | 1 + .../openssl/html/man3/UI_get_string_type.html | 1 + .../html/man3/UI_method_get_closer.html | 1 + .../man3/UI_method_get_data_destructor.html | 1 + .../man3/UI_method_get_data_duplicator.html | 1 + .../html/man3/UI_method_get_ex_data.html | 1 + .../html/man3/UI_method_get_flusher.html | 1 + .../html/man3/UI_method_get_opener.html | 1 + .../UI_method_get_prompt_constructor.html | 1 + .../html/man3/UI_method_get_reader.html | 1 + .../html/man3/UI_method_get_writer.html | 1 + .../html/man3/UI_method_set_closer.html | 1 + .../man3/UI_method_set_data_duplicator.html | 1 + .../html/man3/UI_method_set_ex_data.html | 1 + .../html/man3/UI_method_set_flusher.html | 1 + .../html/man3/UI_method_set_opener.html | 1 + .../UI_method_set_prompt_constructor.html | 1 + .../html/man3/UI_method_set_reader.html | 1 + .../html/man3/UI_method_set_writer.html | 1 + .../share/doc/openssl/html/man3/UI_new.html | 178 + .../doc/openssl/html/man3/UI_new_method.html | 1 + .../share/doc/openssl/html/man3/UI_null.html | 1 + .../doc/openssl/html/man3/UI_process.html | 1 + .../html/man3/UI_set_default_method.html | 1 + .../doc/openssl/html/man3/UI_set_ex_data.html | 1 + .../doc/openssl/html/man3/UI_set_method.html | 1 + .../doc/openssl/html/man3/UI_set_result.html | 1 + .../openssl/html/man3/UI_set_result_ex.html | 1 + .../openssl/html/man3/UI_string_types.html | 1 + .../openssl/html/man3/USERNOTICE_free.html | 1 + .../doc/openssl/html/man3/USERNOTICE_new.html | 1 + .../doc/openssl/html/man3/X509V3_EXT_d2i.html | 1 + .../doc/openssl/html/man3/X509V3_EXT_i2d.html | 1 + .../openssl/html/man3/X509V3_add1_i2d.html | 1 + .../doc/openssl/html/man3/X509V3_get_d2i.html | 214 + .../doc/openssl/html/man3/X509_ALGOR_cmp.html | 1 + .../openssl/html/man3/X509_ALGOR_copy.html | 1 + .../doc/openssl/html/man3/X509_ALGOR_dup.html | 78 + .../openssl/html/man3/X509_ALGOR_free.html | 1 + .../openssl/html/man3/X509_ALGOR_get0.html | 1 + .../doc/openssl/html/man3/X509_ALGOR_new.html | 1 + .../openssl/html/man3/X509_ALGOR_set0.html | 1 + .../openssl/html/man3/X509_ALGOR_set_md.html | 1 + .../openssl/html/man3/X509_ATTRIBUTE_dup.html | 1 + .../html/man3/X509_ATTRIBUTE_free.html | 1 + .../openssl/html/man3/X509_ATTRIBUTE_new.html | 1 + .../openssl/html/man3/X509_CERT_AUX_free.html | 1 + .../openssl/html/man3/X509_CERT_AUX_new.html | 1 + .../doc/openssl/html/man3/X509_CINF_free.html | 1 + .../doc/openssl/html/man3/X509_CINF_new.html | 1 + .../openssl/html/man3/X509_CRL_INFO_free.html | 1 + .../openssl/html/man3/X509_CRL_INFO_new.html | 1 + .../html/man3/X509_CRL_add0_revoked.html | 1 + .../html/man3/X509_CRL_add1_ext_i2d.html | 1 + .../openssl/html/man3/X509_CRL_add_ext.html | 1 + .../doc/openssl/html/man3/X509_CRL_cmp.html | 1 + .../html/man3/X509_CRL_delete_ext.html | 1 + .../openssl/html/man3/X509_CRL_digest.html | 1 + .../doc/openssl/html/man3/X509_CRL_dup.html | 1 + .../doc/openssl/html/man3/X509_CRL_free.html | 1 + .../html/man3/X509_CRL_get0_by_cert.html | 1 + .../html/man3/X509_CRL_get0_by_serial.html | 99 + .../html/man3/X509_CRL_get0_extensions.html | 1 + .../html/man3/X509_CRL_get0_lastUpdate.html | 1 + .../html/man3/X509_CRL_get0_nextUpdate.html | 1 + .../html/man3/X509_CRL_get0_signature.html | 1 + .../html/man3/X509_CRL_get_REVOKED.html | 1 + .../openssl/html/man3/X509_CRL_get_ext.html | 1 + .../html/man3/X509_CRL_get_ext_by_NID.html | 1 + .../html/man3/X509_CRL_get_ext_by_OBJ.html | 1 + .../man3/X509_CRL_get_ext_by_critical.html | 1 + .../html/man3/X509_CRL_get_ext_count.html | 1 + .../html/man3/X509_CRL_get_ext_d2i.html | 1 + .../html/man3/X509_CRL_get_issuer.html | 1 + .../html/man3/X509_CRL_get_signature_nid.html | 1 + .../html/man3/X509_CRL_get_version.html | 1 + .../doc/openssl/html/man3/X509_CRL_match.html | 1 + .../doc/openssl/html/man3/X509_CRL_new.html | 1 + .../html/man3/X509_CRL_set1_lastUpdate.html | 1 + .../html/man3/X509_CRL_set1_nextUpdate.html | 1 + .../html/man3/X509_CRL_set_issuer_name.html | 1 + .../html/man3/X509_CRL_set_version.html | 1 + .../doc/openssl/html/man3/X509_CRL_sign.html | 1 + .../openssl/html/man3/X509_CRL_sign_ctx.html | 1 + .../doc/openssl/html/man3/X509_CRL_sort.html | 1 + .../openssl/html/man3/X509_CRL_verify.html | 1 + .../man3/X509_EXTENSION_create_by_NID.html | 1 + .../man3/X509_EXTENSION_create_by_OBJ.html | 1 + .../openssl/html/man3/X509_EXTENSION_dup.html | 1 + .../html/man3/X509_EXTENSION_free.html | 1 + .../man3/X509_EXTENSION_get_critical.html | 1 + .../html/man3/X509_EXTENSION_get_data.html | 1 + .../html/man3/X509_EXTENSION_get_object.html | 1 + .../openssl/html/man3/X509_EXTENSION_new.html | 1 + .../man3/X509_EXTENSION_set_critical.html | 1 + .../html/man3/X509_EXTENSION_set_data.html | 1 + .../html/man3/X509_EXTENSION_set_object.html | 96 + .../doc/openssl/html/man3/X509_LOOKUP.html | 177 + .../openssl/html/man3/X509_LOOKUP_METHOD.html | 1 + .../openssl/html/man3/X509_LOOKUP_TYPE.html | 1 + .../html/man3/X509_LOOKUP_add_dir.html | 1 + .../html/man3/X509_LOOKUP_by_alias.html | 1 + .../html/man3/X509_LOOKUP_by_fingerprint.html | 1 + .../man3/X509_LOOKUP_by_issuer_serial.html | 1 + .../html/man3/X509_LOOKUP_by_subject.html | 1 + .../openssl/html/man3/X509_LOOKUP_ctrl.html | 1 + .../html/man3/X509_LOOKUP_ctrl_fn.html | 1 + .../openssl/html/man3/X509_LOOKUP_file.html | 1 + .../openssl/html/man3/X509_LOOKUP_free.html | 1 + .../man3/X509_LOOKUP_get_by_alias_fn.html | 1 + .../X509_LOOKUP_get_by_fingerprint_fn.html | 1 + .../X509_LOOKUP_get_by_issuer_serial_fn.html | 1 + .../man3/X509_LOOKUP_get_by_subject_fn.html | 1 + .../man3/X509_LOOKUP_get_method_data.html | 1 + .../html/man3/X509_LOOKUP_get_store.html | 1 + .../html/man3/X509_LOOKUP_hash_dir.html | 106 + .../openssl/html/man3/X509_LOOKUP_init.html | 1 + .../html/man3/X509_LOOKUP_load_file.html | 1 + .../html/man3/X509_LOOKUP_meth_free.html | 1 + .../html/man3/X509_LOOKUP_meth_get_ctrl.html | 1 + .../html/man3/X509_LOOKUP_meth_get_free.html | 1 + .../X509_LOOKUP_meth_get_get_by_alias.html | 1 + ...09_LOOKUP_meth_get_get_by_fingerprint.html | 1 + ..._LOOKUP_meth_get_get_by_issuer_serial.html | 1 + .../X509_LOOKUP_meth_get_get_by_subject.html | 1 + .../html/man3/X509_LOOKUP_meth_get_init.html | 1 + .../man3/X509_LOOKUP_meth_get_new_item.html | 1 + .../man3/X509_LOOKUP_meth_get_shutdown.html | 1 + .../html/man3/X509_LOOKUP_meth_new.html | 158 + .../html/man3/X509_LOOKUP_meth_set_ctrl.html | 1 + .../html/man3/X509_LOOKUP_meth_set_free.html | 1 + .../X509_LOOKUP_meth_set_get_by_alias.html | 1 + ...09_LOOKUP_meth_set_get_by_fingerprint.html | 1 + ..._LOOKUP_meth_set_get_by_issuer_serial.html | 1 + .../X509_LOOKUP_meth_set_get_by_subject.html | 1 + .../html/man3/X509_LOOKUP_meth_set_init.html | 1 + .../man3/X509_LOOKUP_meth_set_new_item.html | 1 + .../man3/X509_LOOKUP_meth_set_shutdown.html | 1 + .../openssl/html/man3/X509_LOOKUP_new.html | 1 + .../man3/X509_LOOKUP_set_method_data.html | 1 + .../html/man3/X509_LOOKUP_shutdown.html | 1 + .../man3/X509_NAME_ENTRY_create_by_NID.html | 1 + .../man3/X509_NAME_ENTRY_create_by_OBJ.html | 1 + .../man3/X509_NAME_ENTRY_create_by_txt.html | 1 + .../html/man3/X509_NAME_ENTRY_dup.html | 1 + .../html/man3/X509_NAME_ENTRY_free.html | 1 + .../html/man3/X509_NAME_ENTRY_get_data.html | 1 + .../html/man3/X509_NAME_ENTRY_get_object.html | 94 + .../html/man3/X509_NAME_ENTRY_new.html | 1 + .../html/man3/X509_NAME_ENTRY_set_data.html | 1 + .../html/man3/X509_NAME_ENTRY_set_object.html | 1 + .../html/man3/X509_NAME_add_entry.html | 1 + .../html/man3/X509_NAME_add_entry_by_NID.html | 1 + .../html/man3/X509_NAME_add_entry_by_OBJ.html | 1 + .../html/man3/X509_NAME_add_entry_by_txt.html | 119 + .../doc/openssl/html/man3/X509_NAME_cmp.html | 1 + .../html/man3/X509_NAME_delete_entry.html | 1 + .../openssl/html/man3/X509_NAME_digest.html | 1 + .../doc/openssl/html/man3/X509_NAME_dup.html | 1 + .../html/man3/X509_NAME_entry_count.html | 1 + .../doc/openssl/html/man3/X509_NAME_free.html | 1 + .../openssl/html/man3/X509_NAME_get0_der.html | 57 + .../html/man3/X509_NAME_get_entry.html | 1 + .../html/man3/X509_NAME_get_index_by_NID.html | 112 + .../html/man3/X509_NAME_get_index_by_OBJ.html | 1 + .../html/man3/X509_NAME_get_text_by_NID.html | 1 + .../html/man3/X509_NAME_get_text_by_OBJ.html | 1 + .../doc/openssl/html/man3/X509_NAME_new.html | 1 + .../openssl/html/man3/X509_NAME_oneline.html | 1 + .../openssl/html/man3/X509_NAME_print.html | 1 + .../openssl/html/man3/X509_NAME_print_ex.html | 106 + .../html/man3/X509_NAME_print_ex_fp.html | 1 + .../html/man3/X509_OBJECT_set1_X509.html | 1 + .../html/man3/X509_OBJECT_set1_X509_CRL.html | 1 + .../openssl/html/man3/X509_PUBKEY_free.html | 1 + .../openssl/html/man3/X509_PUBKEY_get.html | 1 + .../openssl/html/man3/X509_PUBKEY_get0.html | 1 + .../html/man3/X509_PUBKEY_get0_param.html | 1 + .../openssl/html/man3/X509_PUBKEY_new.html | 110 + .../openssl/html/man3/X509_PUBKEY_set.html | 1 + .../html/man3/X509_PUBKEY_set0_param.html | 1 + .../openssl/html/man3/X509_REQ_INFO_free.html | 1 + .../openssl/html/man3/X509_REQ_INFO_new.html | 1 + .../html/man3/X509_REQ_check_private_key.html | 1 + .../openssl/html/man3/X509_REQ_digest.html | 1 + .../doc/openssl/html/man3/X509_REQ_dup.html | 1 + .../doc/openssl/html/man3/X509_REQ_free.html | 1 + .../html/man3/X509_REQ_get0_pubkey.html | 1 + .../html/man3/X509_REQ_get0_signature.html | 1 + .../html/man3/X509_REQ_get_X509_PUBKEY.html | 1 + .../html/man3/X509_REQ_get_pubkey.html | 1 + .../html/man3/X509_REQ_get_signature_nid.html | 1 + .../html/man3/X509_REQ_get_subject_name.html | 1 + .../html/man3/X509_REQ_get_version.html | 1 + .../doc/openssl/html/man3/X509_REQ_new.html | 1 + .../html/man3/X509_REQ_set0_signature.html | 1 + .../man3/X509_REQ_set1_signature_algo.html | 1 + .../html/man3/X509_REQ_set_pubkey.html | 1 + .../html/man3/X509_REQ_set_subject_name.html | 1 + .../html/man3/X509_REQ_set_version.html | 1 + .../doc/openssl/html/man3/X509_REQ_sign.html | 1 + .../openssl/html/man3/X509_REQ_sign_ctx.html | 1 + .../openssl/html/man3/X509_REQ_verify.html | 1 + .../html/man3/X509_REVOKED_add1_ext_i2d.html | 1 + .../html/man3/X509_REVOKED_add_ext.html | 1 + .../html/man3/X509_REVOKED_delete_ext.html | 1 + .../openssl/html/man3/X509_REVOKED_dup.html | 1 + .../openssl/html/man3/X509_REVOKED_free.html | 1 + .../man3/X509_REVOKED_get0_extensions.html | 1 + .../X509_REVOKED_get0_revocationDate.html | 1 + .../man3/X509_REVOKED_get0_serialNumber.html | 1 + .../html/man3/X509_REVOKED_get_ext.html | 1 + .../man3/X509_REVOKED_get_ext_by_NID.html | 1 + .../man3/X509_REVOKED_get_ext_by_OBJ.html | 1 + .../X509_REVOKED_get_ext_by_critical.html | 1 + .../html/man3/X509_REVOKED_get_ext_count.html | 1 + .../html/man3/X509_REVOKED_get_ext_d2i.html | 1 + .../openssl/html/man3/X509_REVOKED_new.html | 1 + .../man3/X509_REVOKED_set_revocationDate.html | 1 + .../man3/X509_REVOKED_set_serialNumber.html | 1 + .../openssl/html/man3/X509_SIG_INFO_get.html | 1 + .../openssl/html/man3/X509_SIG_INFO_set.html | 1 + .../doc/openssl/html/man3/X509_SIG_free.html | 1 + .../doc/openssl/html/man3/X509_SIG_get0.html | 59 + .../doc/openssl/html/man3/X509_SIG_getm.html | 1 + .../doc/openssl/html/man3/X509_SIG_new.html | 1 + .../doc/openssl/html/man3/X509_STORE.html | 1 + .../html/man3/X509_STORE_CTX_cert_crl_fn.html | 1 + .../man3/X509_STORE_CTX_check_crl_fn.html | 1 + .../man3/X509_STORE_CTX_check_issued_fn.html | 1 + .../man3/X509_STORE_CTX_check_policy_fn.html | 1 + .../X509_STORE_CTX_check_revocation_fn.html | 1 + .../html/man3/X509_STORE_CTX_cleanup.html | 1 + .../html/man3/X509_STORE_CTX_cleanup_fn.html | 1 + .../html/man3/X509_STORE_CTX_free.html | 1 + .../html/man3/X509_STORE_CTX_get0_cert.html | 1 + .../html/man3/X509_STORE_CTX_get0_chain.html | 1 + .../html/man3/X509_STORE_CTX_get0_param.html | 1 + .../man3/X509_STORE_CTX_get0_untrusted.html | 1 + .../html/man3/X509_STORE_CTX_get1_chain.html | 1 + .../man3/X509_STORE_CTX_get_cert_crl.html | 1 + .../man3/X509_STORE_CTX_get_check_crl.html | 1 + .../man3/X509_STORE_CTX_get_check_issued.html | 1 + .../man3/X509_STORE_CTX_get_check_policy.html | 1 + .../X509_STORE_CTX_get_check_revocation.html | 1 + .../html/man3/X509_STORE_CTX_get_cleanup.html | 1 + .../html/man3/X509_STORE_CTX_get_crl_fn.html | 1 + .../man3/X509_STORE_CTX_get_current_cert.html | 1 + .../html/man3/X509_STORE_CTX_get_error.html | 374 ++ .../man3/X509_STORE_CTX_get_error_depth.html | 1 + .../html/man3/X509_STORE_CTX_get_ex_data.html | 1 + .../man3/X509_STORE_CTX_get_ex_new_index.html | 1 + .../html/man3/X509_STORE_CTX_get_get_crl.html | 1 + .../man3/X509_STORE_CTX_get_get_issuer.html | 1 + .../man3/X509_STORE_CTX_get_issuer_fn.html | 1 + .../man3/X509_STORE_CTX_get_lookup_certs.html | 1 + .../man3/X509_STORE_CTX_get_lookup_crls.html | 1 + .../X509_STORE_CTX_get_num_untrusted.html | 1 + .../html/man3/X509_STORE_CTX_get_verify.html | 1 + .../man3/X509_STORE_CTX_get_verify_cb.html | 1 + .../html/man3/X509_STORE_CTX_init.html | 1 + .../man3/X509_STORE_CTX_lookup_certs_fn.html | 1 + .../man3/X509_STORE_CTX_lookup_crls_fn.html | 1 + .../openssl/html/man3/X509_STORE_CTX_new.html | 141 + .../html/man3/X509_STORE_CTX_set0_crls.html | 1 + .../html/man3/X509_STORE_CTX_set0_param.html | 1 + .../X509_STORE_CTX_set0_trusted_stack.html | 1 + .../man3/X509_STORE_CTX_set0_untrusted.html | 1 + .../X509_STORE_CTX_set0_verified_chain.html | 1 + .../html/man3/X509_STORE_CTX_set_cert.html | 1 + .../man3/X509_STORE_CTX_set_current_cert.html | 1 + .../html/man3/X509_STORE_CTX_set_default.html | 1 + .../html/man3/X509_STORE_CTX_set_error.html | 1 + .../man3/X509_STORE_CTX_set_error_depth.html | 1 + .../html/man3/X509_STORE_CTX_set_ex_data.html | 1 + .../html/man3/X509_STORE_CTX_set_verify.html | 1 + .../man3/X509_STORE_CTX_set_verify_cb.html | 184 + .../html/man3/X509_STORE_CTX_verify_cb.html | 1 + .../html/man3/X509_STORE_CTX_verify_fn.html | 1 + .../html/man3/X509_STORE_add_cert.html | 86 + .../openssl/html/man3/X509_STORE_add_crl.html | 1 + .../html/man3/X509_STORE_add_lookup.html | 1 + .../openssl/html/man3/X509_STORE_free.html | 1 + .../html/man3/X509_STORE_get0_objects.html | 1 + .../html/man3/X509_STORE_get0_param.html | 71 + .../html/man3/X509_STORE_get_cert_crl.html | 1 + .../html/man3/X509_STORE_get_check_crl.html | 1 + .../man3/X509_STORE_get_check_issued.html | 1 + .../man3/X509_STORE_get_check_policy.html | 1 + .../man3/X509_STORE_get_check_revocation.html | 1 + .../html/man3/X509_STORE_get_cleanup.html | 1 + .../html/man3/X509_STORE_get_ex_data.html | 1 + .../man3/X509_STORE_get_ex_new_index.html | 1 + .../html/man3/X509_STORE_get_get_crl.html | 1 + .../html/man3/X509_STORE_get_get_issuer.html | 1 + .../man3/X509_STORE_get_lookup_certs.html | 1 + .../html/man3/X509_STORE_get_lookup_crls.html | 1 + .../html/man3/X509_STORE_get_verify_cb.html | 1 + .../html/man3/X509_STORE_load_locations.html | 1 + .../openssl/html/man3/X509_STORE_lock.html | 1 + .../doc/openssl/html/man3/X509_STORE_new.html | 75 + .../html/man3/X509_STORE_set1_param.html | 1 + .../html/man3/X509_STORE_set_cert_crl.html | 1 + .../html/man3/X509_STORE_set_check_crl.html | 1 + .../man3/X509_STORE_set_check_issued.html | 1 + .../man3/X509_STORE_set_check_policy.html | 1 + .../man3/X509_STORE_set_check_revocation.html | 1 + .../html/man3/X509_STORE_set_cleanup.html | 1 + .../man3/X509_STORE_set_default_paths.html | 1 + .../html/man3/X509_STORE_set_depth.html | 1 + .../html/man3/X509_STORE_set_ex_data.html | 1 + .../html/man3/X509_STORE_set_flags.html | 1 + .../html/man3/X509_STORE_set_get_crl.html | 1 + .../html/man3/X509_STORE_set_get_issuer.html | 1 + .../man3/X509_STORE_set_lookup_certs.html | 1 + .../html/man3/X509_STORE_set_lookup_crls.html | 1 + .../man3/X509_STORE_set_lookup_crls_cb.html | 1 + .../html/man3/X509_STORE_set_purpose.html | 1 + .../html/man3/X509_STORE_set_trust.html | 1 + .../html/man3/X509_STORE_set_verify.html | 1 + .../html/man3/X509_STORE_set_verify_cb.html | 1 + .../man3/X509_STORE_set_verify_cb_func.html | 169 + .../html/man3/X509_STORE_set_verify_func.html | 1 + .../openssl/html/man3/X509_STORE_unlock.html | 1 + .../openssl/html/man3/X509_STORE_up_ref.html | 1 + .../doc/openssl/html/man3/X509_VAL_free.html | 1 + .../doc/openssl/html/man3/X509_VAL_new.html | 1 + .../man3/X509_VERIFY_PARAM_add0_policy.html | 1 + .../man3/X509_VERIFY_PARAM_add1_host.html | 1 + .../man3/X509_VERIFY_PARAM_clear_flags.html | 1 + .../man3/X509_VERIFY_PARAM_get0_peername.html | 1 + .../X509_VERIFY_PARAM_get_auth_level.html | 1 + .../man3/X509_VERIFY_PARAM_get_depth.html | 1 + .../man3/X509_VERIFY_PARAM_get_flags.html | 1 + .../man3/X509_VERIFY_PARAM_get_hostflags.html | 1 + .../man3/X509_VERIFY_PARAM_get_inh_flags.html | 1 + .../html/man3/X509_VERIFY_PARAM_get_time.html | 1 + .../man3/X509_VERIFY_PARAM_set1_email.html | 1 + .../man3/X509_VERIFY_PARAM_set1_host.html | 1 + .../html/man3/X509_VERIFY_PARAM_set1_ip.html | 1 + .../man3/X509_VERIFY_PARAM_set1_ip_asc.html | 1 + .../man3/X509_VERIFY_PARAM_set1_policies.html | 1 + .../X509_VERIFY_PARAM_set_auth_level.html | 1 + .../man3/X509_VERIFY_PARAM_set_depth.html | 1 + .../man3/X509_VERIFY_PARAM_set_flags.html | 231 + .../man3/X509_VERIFY_PARAM_set_hostflags.html | 1 + .../man3/X509_VERIFY_PARAM_set_inh_flags.html | 1 + .../man3/X509_VERIFY_PARAM_set_purpose.html | 1 + .../html/man3/X509_VERIFY_PARAM_set_time.html | 1 + .../man3/X509_VERIFY_PARAM_set_trust.html | 1 + .../openssl/html/man3/X509_add1_ext_i2d.html | 1 + .../doc/openssl/html/man3/X509_add_ext.html | 1 + .../openssl/html/man3/X509_chain_up_ref.html | 1 + .../doc/openssl/html/man3/X509_check_ca.html | 58 + .../openssl/html/man3/X509_check_email.html | 1 + .../openssl/html/man3/X509_check_host.html | 128 + .../doc/openssl/html/man3/X509_check_ip.html | 1 + .../openssl/html/man3/X509_check_ip_asc.html | 1 + .../openssl/html/man3/X509_check_issued.html | 56 + .../html/man3/X509_check_private_key.html | 67 + .../openssl/html/man3/X509_check_purpose.html | 111 + .../share/doc/openssl/html/man3/X509_cmp.html | 81 + .../html/man3/X509_cmp_current_time.html | 1 + .../doc/openssl/html/man3/X509_cmp_time.html | 68 + .../openssl/html/man3/X509_delete_ext.html | 1 + .../doc/openssl/html/man3/X509_digest.html | 77 + .../share/doc/openssl/html/man3/X509_dup.html | 76 + .../doc/openssl/html/man3/X509_free.html | 1 + .../html/man3/X509_get0_authority_issuer.html | 1 + .../html/man3/X509_get0_authority_key_id.html | 1 + .../html/man3/X509_get0_authority_serial.html | 1 + .../html/man3/X509_get0_extensions.html | 1 + .../openssl/html/man3/X509_get0_notAfter.html | 1 + .../html/man3/X509_get0_notBefore.html | 88 + .../openssl/html/man3/X509_get0_pubkey.html | 1 + .../html/man3/X509_get0_serialNumber.html | 1 + .../html/man3/X509_get0_signature.html | 114 + .../html/man3/X509_get0_subject_key_id.html | 1 + .../html/man3/X509_get0_tbs_sigalg.html | 1 + .../doc/openssl/html/man3/X509_get0_uids.html | 62 + .../html/man3/X509_get_X509_PUBKEY.html | 1 + .../openssl/html/man3/X509_get_ex_data.html | 1 + .../html/man3/X509_get_ex_new_index.html | 1 + .../doc/openssl/html/man3/X509_get_ext.html | 1 + .../html/man3/X509_get_ext_by_NID.html | 1 + .../html/man3/X509_get_ext_by_OBJ.html | 1 + .../html/man3/X509_get_ext_by_critical.html | 1 + .../openssl/html/man3/X509_get_ext_count.html | 1 + .../openssl/html/man3/X509_get_ext_d2i.html | 1 + .../man3/X509_get_extended_key_usage.html | 1 + .../html/man3/X509_get_extension_flags.html | 190 + .../html/man3/X509_get_issuer_name.html | 1 + .../openssl/html/man3/X509_get_key_usage.html | 1 + .../openssl/html/man3/X509_get_pathlen.html | 1 + .../html/man3/X509_get_proxy_pathlen.html | 1 + .../openssl/html/man3/X509_get_pubkey.html | 77 + .../html/man3/X509_get_serialNumber.html | 69 + .../html/man3/X509_get_signature_info.html | 1 + .../html/man3/X509_get_signature_nid.html | 1 + .../html/man3/X509_get_subject_name.html | 81 + .../openssl/html/man3/X509_get_version.html | 79 + .../openssl/html/man3/X509_getm_notAfter.html | 1 + .../html/man3/X509_getm_notBefore.html | 1 + .../html/man3/X509_issuer_and_serial_cmp.html | 1 + .../html/man3/X509_issuer_name_cmp.html | 1 + .../html/man3/X509_load_cert_crl_file.html | 1 + .../html/man3/X509_load_cert_file.html | 1 + .../openssl/html/man3/X509_load_crl_file.html | 1 + .../share/doc/openssl/html/man3/X509_new.html | 78 + .../openssl/html/man3/X509_pubkey_digest.html | 1 + .../openssl/html/man3/X509_set1_notAfter.html | 1 + .../html/man3/X509_set1_notBefore.html | 1 + .../openssl/html/man3/X509_set_ex_data.html | 1 + .../html/man3/X509_set_issuer_name.html | 1 + .../html/man3/X509_set_proxy_flag.html | 1 + .../html/man3/X509_set_proxy_pathlen.html | 1 + .../openssl/html/man3/X509_set_pubkey.html | 1 + .../html/man3/X509_set_serialNumber.html | 1 + .../html/man3/X509_set_subject_name.html | 1 + .../openssl/html/man3/X509_set_version.html | 1 + .../doc/openssl/html/man3/X509_sign.html | 86 + .../doc/openssl/html/man3/X509_sign_ctx.html | 1 + .../html/man3/X509_subject_name_cmp.html | 1 + .../doc/openssl/html/man3/X509_time_adj.html | 1 + .../openssl/html/man3/X509_time_adj_ex.html | 1 + .../doc/openssl/html/man3/X509_up_ref.html | 1 + .../doc/openssl/html/man3/X509_verify.html | 1 + .../openssl/html/man3/X509_verify_cert.html | 70 + .../man3/X509_verify_cert_error_string.html | 1 + .../doc/openssl/html/man3/X509v3_add_ext.html | 1 + .../openssl/html/man3/X509v3_delete_ext.html | 1 + .../doc/openssl/html/man3/X509v3_get_ext.html | 1 + .../html/man3/X509v3_get_ext_by_NID.html | 123 + .../html/man3/X509v3_get_ext_by_OBJ.html | 1 + .../html/man3/X509v3_get_ext_by_critical.html | 1 + .../html/man3/X509v3_get_ext_count.html | 1 + .../openssl/html/man3/custom_ext_add_cb.html | 1 + .../openssl/html/man3/custom_ext_free_cb.html | 1 + .../html/man3/custom_ext_parse_cb.html | 1 + .../html/man3/d2i_ACCESS_DESCRIPTION.html | 1 + .../doc/openssl/html/man3/d2i_ADMISSIONS.html | 1 + .../html/man3/d2i_ADMISSION_SYNTAX.html | 1 + .../openssl/html/man3/d2i_ASIdOrRange.html | 1 + .../html/man3/d2i_ASIdentifierChoice.html | 1 + .../openssl/html/man3/d2i_ASIdentifiers.html | 1 + .../html/man3/d2i_ASN1_BIT_STRING.html | 1 + .../openssl/html/man3/d2i_ASN1_BMPSTRING.html | 1 + .../html/man3/d2i_ASN1_ENUMERATED.html | 1 + .../html/man3/d2i_ASN1_GENERALIZEDTIME.html | 1 + .../html/man3/d2i_ASN1_GENERALSTRING.html | 1 + .../openssl/html/man3/d2i_ASN1_IA5STRING.html | 1 + .../openssl/html/man3/d2i_ASN1_INTEGER.html | 1 + .../doc/openssl/html/man3/d2i_ASN1_NULL.html | 1 + .../openssl/html/man3/d2i_ASN1_OBJECT.html | 1 + .../html/man3/d2i_ASN1_OCTET_STRING.html | 1 + .../openssl/html/man3/d2i_ASN1_PRINTABLE.html | 1 + .../html/man3/d2i_ASN1_PRINTABLESTRING.html | 1 + .../html/man3/d2i_ASN1_SEQUENCE_ANY.html | 1 + .../openssl/html/man3/d2i_ASN1_SET_ANY.html | 1 + .../openssl/html/man3/d2i_ASN1_T61STRING.html | 1 + .../doc/openssl/html/man3/d2i_ASN1_TIME.html | 1 + .../doc/openssl/html/man3/d2i_ASN1_TYPE.html | 1 + .../openssl/html/man3/d2i_ASN1_UINTEGER.html | 1 + .../html/man3/d2i_ASN1_UNIVERSALSTRING.html | 1 + .../openssl/html/man3/d2i_ASN1_UTCTIME.html | 1 + .../html/man3/d2i_ASN1_UTF8STRING.html | 1 + .../html/man3/d2i_ASN1_VISIBLESTRING.html | 1 + .../doc/openssl/html/man3/d2i_ASRange.html | 1 + .../html/man3/d2i_AUTHORITY_INFO_ACCESS.html | 1 + .../html/man3/d2i_AUTHORITY_KEYID.html | 1 + .../openssl/html/man3/d2i_AutoPrivateKey.html | 1 + .../html/man3/d2i_BASIC_CONSTRAINTS.html | 1 + .../html/man3/d2i_CERTIFICATEPOLICIES.html | 1 + .../html/man3/d2i_CMS_ContentInfo.html | 1 + .../html/man3/d2i_CMS_ReceiptRequest.html | 1 + .../doc/openssl/html/man3/d2i_CMS_bio.html | 1 + .../html/man3/d2i_CRL_DIST_POINTS.html | 1 + .../doc/openssl/html/man3/d2i_DHparams.html | 61 + .../doc/openssl/html/man3/d2i_DHxparams.html | 1 + .../html/man3/d2i_DIRECTORYSTRING.html | 1 + .../openssl/html/man3/d2i_DISPLAYTEXT.html | 1 + .../doc/openssl/html/man3/d2i_DIST_POINT.html | 1 + .../html/man3/d2i_DIST_POINT_NAME.html | 1 + .../openssl/html/man3/d2i_DSAPrivateKey.html | 1 + .../html/man3/d2i_DSAPrivateKey_bio.html | 1 + .../html/man3/d2i_DSAPrivateKey_fp.html | 1 + .../openssl/html/man3/d2i_DSAPublicKey.html | 1 + .../doc/openssl/html/man3/d2i_DSA_PUBKEY.html | 1 + .../openssl/html/man3/d2i_DSA_PUBKEY_bio.html | 1 + .../openssl/html/man3/d2i_DSA_PUBKEY_fp.html | 1 + .../doc/openssl/html/man3/d2i_DSA_SIG.html | 1 + .../doc/openssl/html/man3/d2i_DSAparams.html | 1 + .../doc/openssl/html/man3/d2i_ECDSA_SIG.html | 1 + .../openssl/html/man3/d2i_ECPKParameters.html | 1 + .../openssl/html/man3/d2i_ECParameters.html | 1 + .../openssl/html/man3/d2i_ECPrivateKey.html | 1 + .../html/man3/d2i_ECPrivateKey_bio.html | 1 + .../html/man3/d2i_ECPrivateKey_fp.html | 1 + .../doc/openssl/html/man3/d2i_EC_PUBKEY.html | 1 + .../openssl/html/man3/d2i_EC_PUBKEY_bio.html | 1 + .../openssl/html/man3/d2i_EC_PUBKEY_fp.html | 1 + .../openssl/html/man3/d2i_EDIPARTYNAME.html | 1 + .../openssl/html/man3/d2i_ESS_CERT_ID.html | 1 + .../html/man3/d2i_ESS_ISSUER_SERIAL.html | 1 + .../html/man3/d2i_ESS_SIGNING_CERT.html | 1 + .../html/man3/d2i_EXTENDED_KEY_USAGE.html | 1 + .../openssl/html/man3/d2i_GENERAL_NAME.html | 1 + .../openssl/html/man3/d2i_GENERAL_NAMES.html | 1 + .../html/man3/d2i_IPAddressChoice.html | 1 + .../html/man3/d2i_IPAddressFamily.html | 1 + .../html/man3/d2i_IPAddressOrRange.html | 1 + .../openssl/html/man3/d2i_IPAddressRange.html | 1 + .../html/man3/d2i_ISSUING_DIST_POINT.html | 1 + .../html/man3/d2i_NAMING_AUTHORITY.html | 1 + .../html/man3/d2i_NETSCAPE_CERT_SEQUENCE.html | 1 + .../openssl/html/man3/d2i_NETSCAPE_SPKAC.html | 1 + .../openssl/html/man3/d2i_NETSCAPE_SPKI.html | 1 + .../doc/openssl/html/man3/d2i_NOTICEREF.html | 1 + .../openssl/html/man3/d2i_OCSP_BASICRESP.html | 1 + .../openssl/html/man3/d2i_OCSP_CERTID.html | 1 + .../html/man3/d2i_OCSP_CERTSTATUS.html | 1 + .../doc/openssl/html/man3/d2i_OCSP_CRLID.html | 1 + .../openssl/html/man3/d2i_OCSP_ONEREQ.html | 1 + .../openssl/html/man3/d2i_OCSP_REQINFO.html | 1 + .../openssl/html/man3/d2i_OCSP_REQUEST.html | 1 + .../openssl/html/man3/d2i_OCSP_RESPBYTES.html | 1 + .../openssl/html/man3/d2i_OCSP_RESPDATA.html | 1 + .../openssl/html/man3/d2i_OCSP_RESPID.html | 1 + .../openssl/html/man3/d2i_OCSP_RESPONSE.html | 1 + .../html/man3/d2i_OCSP_REVOKEDINFO.html | 1 + .../html/man3/d2i_OCSP_SERVICELOC.html | 1 + .../openssl/html/man3/d2i_OCSP_SIGNATURE.html | 1 + .../html/man3/d2i_OCSP_SINGLERESP.html | 1 + .../doc/openssl/html/man3/d2i_OTHERNAME.html | 1 + .../doc/openssl/html/man3/d2i_PBE2PARAM.html | 1 + .../doc/openssl/html/man3/d2i_PBEPARAM.html | 1 + .../openssl/html/man3/d2i_PBKDF2PARAM.html | 1 + .../doc/openssl/html/man3/d2i_PKCS12.html | 1 + .../openssl/html/man3/d2i_PKCS12_BAGS.html | 1 + .../html/man3/d2i_PKCS12_MAC_DATA.html | 1 + .../openssl/html/man3/d2i_PKCS12_SAFEBAG.html | 1 + .../doc/openssl/html/man3/d2i_PKCS12_bio.html | 1 + .../doc/openssl/html/man3/d2i_PKCS12_fp.html | 1 + .../doc/openssl/html/man3/d2i_PKCS7.html | 1 + .../openssl/html/man3/d2i_PKCS7_DIGEST.html | 1 + .../openssl/html/man3/d2i_PKCS7_ENCRYPT.html | 1 + .../html/man3/d2i_PKCS7_ENC_CONTENT.html | 1 + .../openssl/html/man3/d2i_PKCS7_ENVELOPE.html | 1 + .../man3/d2i_PKCS7_ISSUER_AND_SERIAL.html | 1 + .../html/man3/d2i_PKCS7_RECIP_INFO.html | 1 + .../openssl/html/man3/d2i_PKCS7_SIGNED.html | 1 + .../html/man3/d2i_PKCS7_SIGNER_INFO.html | 1 + .../html/man3/d2i_PKCS7_SIGN_ENVELOPE.html | 1 + .../doc/openssl/html/man3/d2i_PKCS7_bio.html | 1 + .../doc/openssl/html/man3/d2i_PKCS7_fp.html | 1 + .../html/man3/d2i_PKCS8PrivateKey_bio.html | 86 + .../html/man3/d2i_PKCS8PrivateKey_fp.html | 1 + .../html/man3/d2i_PKCS8_PRIV_KEY_INFO.html | 1 + .../man3/d2i_PKCS8_PRIV_KEY_INFO_bio.html | 1 + .../html/man3/d2i_PKCS8_PRIV_KEY_INFO_fp.html | 1 + .../doc/openssl/html/man3/d2i_PKCS8_bio.html | 1 + .../doc/openssl/html/man3/d2i_PKCS8_fp.html | 1 + .../html/man3/d2i_PKEY_USAGE_PERIOD.html | 1 + .../doc/openssl/html/man3/d2i_POLICYINFO.html | 1 + .../openssl/html/man3/d2i_POLICYQUALINFO.html | 1 + .../html/man3/d2i_PROFESSION_INFO.html | 1 + .../man3/d2i_PROXY_CERT_INFO_EXTENSION.html | 1 + .../openssl/html/man3/d2i_PROXY_POLICY.html | 1 + .../doc/openssl/html/man3/d2i_PUBKEY.html | 1 + .../doc/openssl/html/man3/d2i_PUBKEY_bio.html | 1 + .../doc/openssl/html/man3/d2i_PUBKEY_fp.html | 1 + .../doc/openssl/html/man3/d2i_PrivateKey.html | 83 + .../openssl/html/man3/d2i_PrivateKey_bio.html | 1 + .../openssl/html/man3/d2i_PrivateKey_fp.html | 1 + .../doc/openssl/html/man3/d2i_PublicKey.html | 1 + .../openssl/html/man3/d2i_RSAPrivateKey.html | 1 + .../html/man3/d2i_RSAPrivateKey_bio.html | 1 + .../html/man3/d2i_RSAPrivateKey_fp.html | 1 + .../openssl/html/man3/d2i_RSAPublicKey.html | 1 + .../html/man3/d2i_RSAPublicKey_bio.html | 1 + .../html/man3/d2i_RSAPublicKey_fp.html | 1 + .../html/man3/d2i_RSA_OAEP_PARAMS.html | 1 + .../openssl/html/man3/d2i_RSA_PSS_PARAMS.html | 1 + .../doc/openssl/html/man3/d2i_RSA_PUBKEY.html | 1 + .../openssl/html/man3/d2i_RSA_PUBKEY_bio.html | 1 + .../openssl/html/man3/d2i_RSA_PUBKEY_fp.html | 1 + .../openssl/html/man3/d2i_SCRYPT_PARAMS.html | 1 + .../doc/openssl/html/man3/d2i_SCT_LIST.html | 1 + .../openssl/html/man3/d2i_SSL_SESSION.html | 62 + .../doc/openssl/html/man3/d2i_SXNET.html | 1 + .../doc/openssl/html/man3/d2i_SXNETID.html | 1 + .../openssl/html/man3/d2i_TS_ACCURACY.html | 1 + .../openssl/html/man3/d2i_TS_MSG_IMPRINT.html | 1 + .../html/man3/d2i_TS_MSG_IMPRINT_bio.html | 1 + .../html/man3/d2i_TS_MSG_IMPRINT_fp.html | 1 + .../doc/openssl/html/man3/d2i_TS_REQ.html | 1 + .../doc/openssl/html/man3/d2i_TS_REQ_bio.html | 1 + .../doc/openssl/html/man3/d2i_TS_REQ_fp.html | 1 + .../doc/openssl/html/man3/d2i_TS_RESP.html | 1 + .../openssl/html/man3/d2i_TS_RESP_bio.html | 1 + .../doc/openssl/html/man3/d2i_TS_RESP_fp.html | 1 + .../openssl/html/man3/d2i_TS_STATUS_INFO.html | 1 + .../openssl/html/man3/d2i_TS_TST_INFO.html | 1 + .../html/man3/d2i_TS_TST_INFO_bio.html | 1 + .../openssl/html/man3/d2i_TS_TST_INFO_fp.html | 1 + .../doc/openssl/html/man3/d2i_USERNOTICE.html | 1 + .../share/doc/openssl/html/man3/d2i_X509.html | 241 + .../doc/openssl/html/man3/d2i_X509_ALGOR.html | 1 + .../openssl/html/man3/d2i_X509_ALGORS.html | 1 + .../openssl/html/man3/d2i_X509_ATTRIBUTE.html | 1 + .../doc/openssl/html/man3/d2i_X509_AUX.html | 1 + .../openssl/html/man3/d2i_X509_CERT_AUX.html | 1 + .../doc/openssl/html/man3/d2i_X509_CINF.html | 1 + .../doc/openssl/html/man3/d2i_X509_CRL.html | 1 + .../openssl/html/man3/d2i_X509_CRL_INFO.html | 1 + .../openssl/html/man3/d2i_X509_CRL_bio.html | 1 + .../openssl/html/man3/d2i_X509_CRL_fp.html | 1 + .../openssl/html/man3/d2i_X509_EXTENSION.html | 1 + .../html/man3/d2i_X509_EXTENSIONS.html | 1 + .../doc/openssl/html/man3/d2i_X509_NAME.html | 1 + .../html/man3/d2i_X509_NAME_ENTRY.html | 1 + .../openssl/html/man3/d2i_X509_PUBKEY.html | 1 + .../doc/openssl/html/man3/d2i_X509_REQ.html | 1 + .../openssl/html/man3/d2i_X509_REQ_INFO.html | 1 + .../openssl/html/man3/d2i_X509_REQ_bio.html | 1 + .../openssl/html/man3/d2i_X509_REQ_fp.html | 1 + .../openssl/html/man3/d2i_X509_REVOKED.html | 1 + .../doc/openssl/html/man3/d2i_X509_SIG.html | 1 + .../doc/openssl/html/man3/d2i_X509_VAL.html | 1 + .../html/man3/i2d_ACCESS_DESCRIPTION.html | 1 + .../doc/openssl/html/man3/i2d_ADMISSIONS.html | 1 + .../html/man3/i2d_ADMISSION_SYNTAX.html | 1 + .../openssl/html/man3/i2d_ASIdOrRange.html | 1 + .../html/man3/i2d_ASIdentifierChoice.html | 1 + .../openssl/html/man3/i2d_ASIdentifiers.html | 1 + .../html/man3/i2d_ASN1_BIT_STRING.html | 1 + .../openssl/html/man3/i2d_ASN1_BMPSTRING.html | 1 + .../html/man3/i2d_ASN1_ENUMERATED.html | 1 + .../html/man3/i2d_ASN1_GENERALIZEDTIME.html | 1 + .../html/man3/i2d_ASN1_GENERALSTRING.html | 1 + .../openssl/html/man3/i2d_ASN1_IA5STRING.html | 1 + .../openssl/html/man3/i2d_ASN1_INTEGER.html | 1 + .../doc/openssl/html/man3/i2d_ASN1_NULL.html | 1 + .../openssl/html/man3/i2d_ASN1_OBJECT.html | 1 + .../html/man3/i2d_ASN1_OCTET_STRING.html | 1 + .../openssl/html/man3/i2d_ASN1_PRINTABLE.html | 1 + .../html/man3/i2d_ASN1_PRINTABLESTRING.html | 1 + .../html/man3/i2d_ASN1_SEQUENCE_ANY.html | 1 + .../openssl/html/man3/i2d_ASN1_SET_ANY.html | 1 + .../openssl/html/man3/i2d_ASN1_T61STRING.html | 1 + .../doc/openssl/html/man3/i2d_ASN1_TIME.html | 1 + .../doc/openssl/html/man3/i2d_ASN1_TYPE.html | 1 + .../html/man3/i2d_ASN1_UNIVERSALSTRING.html | 1 + .../openssl/html/man3/i2d_ASN1_UTCTIME.html | 1 + .../html/man3/i2d_ASN1_UTF8STRING.html | 1 + .../html/man3/i2d_ASN1_VISIBLESTRING.html | 1 + .../html/man3/i2d_ASN1_bio_stream.html | 1 + .../doc/openssl/html/man3/i2d_ASRange.html | 1 + .../html/man3/i2d_AUTHORITY_INFO_ACCESS.html | 1 + .../html/man3/i2d_AUTHORITY_KEYID.html | 1 + .../html/man3/i2d_BASIC_CONSTRAINTS.html | 1 + .../html/man3/i2d_CERTIFICATEPOLICIES.html | 1 + .../html/man3/i2d_CMS_ContentInfo.html | 1 + .../html/man3/i2d_CMS_ReceiptRequest.html | 1 + .../doc/openssl/html/man3/i2d_CMS_bio.html | 1 + .../openssl/html/man3/i2d_CMS_bio_stream.html | 73 + .../html/man3/i2d_CRL_DIST_POINTS.html | 1 + .../doc/openssl/html/man3/i2d_DHparams.html | 1 + .../doc/openssl/html/man3/i2d_DHxparams.html | 1 + .../html/man3/i2d_DIRECTORYSTRING.html | 1 + .../openssl/html/man3/i2d_DISPLAYTEXT.html | 1 + .../doc/openssl/html/man3/i2d_DIST_POINT.html | 1 + .../html/man3/i2d_DIST_POINT_NAME.html | 1 + .../openssl/html/man3/i2d_DSAPrivateKey.html | 1 + .../html/man3/i2d_DSAPrivateKey_bio.html | 1 + .../html/man3/i2d_DSAPrivateKey_fp.html | 1 + .../openssl/html/man3/i2d_DSAPublicKey.html | 1 + .../doc/openssl/html/man3/i2d_DSA_PUBKEY.html | 1 + .../openssl/html/man3/i2d_DSA_PUBKEY_bio.html | 1 + .../openssl/html/man3/i2d_DSA_PUBKEY_fp.html | 1 + .../doc/openssl/html/man3/i2d_DSA_SIG.html | 1 + .../doc/openssl/html/man3/i2d_DSAparams.html | 1 + .../doc/openssl/html/man3/i2d_ECDSA_SIG.html | 1 + .../openssl/html/man3/i2d_ECPKParameters.html | 1 + .../openssl/html/man3/i2d_ECParameters.html | 1 + .../openssl/html/man3/i2d_ECPrivateKey.html | 1 + .../html/man3/i2d_ECPrivateKey_bio.html | 1 + .../html/man3/i2d_ECPrivateKey_fp.html | 1 + .../doc/openssl/html/man3/i2d_EC_PUBKEY.html | 1 + .../openssl/html/man3/i2d_EC_PUBKEY_bio.html | 1 + .../openssl/html/man3/i2d_EC_PUBKEY_fp.html | 1 + .../openssl/html/man3/i2d_EDIPARTYNAME.html | 1 + .../openssl/html/man3/i2d_ESS_CERT_ID.html | 1 + .../html/man3/i2d_ESS_ISSUER_SERIAL.html | 1 + .../html/man3/i2d_ESS_SIGNING_CERT.html | 1 + .../html/man3/i2d_EXTENDED_KEY_USAGE.html | 1 + .../openssl/html/man3/i2d_GENERAL_NAME.html | 1 + .../openssl/html/man3/i2d_GENERAL_NAMES.html | 1 + .../html/man3/i2d_IPAddressChoice.html | 1 + .../html/man3/i2d_IPAddressFamily.html | 1 + .../html/man3/i2d_IPAddressOrRange.html | 1 + .../openssl/html/man3/i2d_IPAddressRange.html | 1 + .../html/man3/i2d_ISSUING_DIST_POINT.html | 1 + .../html/man3/i2d_NAMING_AUTHORITY.html | 1 + .../html/man3/i2d_NETSCAPE_CERT_SEQUENCE.html | 1 + .../openssl/html/man3/i2d_NETSCAPE_SPKAC.html | 1 + .../openssl/html/man3/i2d_NETSCAPE_SPKI.html | 1 + .../doc/openssl/html/man3/i2d_NOTICEREF.html | 1 + .../openssl/html/man3/i2d_OCSP_BASICRESP.html | 1 + .../openssl/html/man3/i2d_OCSP_CERTID.html | 1 + .../html/man3/i2d_OCSP_CERTSTATUS.html | 1 + .../doc/openssl/html/man3/i2d_OCSP_CRLID.html | 1 + .../openssl/html/man3/i2d_OCSP_ONEREQ.html | 1 + .../openssl/html/man3/i2d_OCSP_REQINFO.html | 1 + .../openssl/html/man3/i2d_OCSP_REQUEST.html | 1 + .../openssl/html/man3/i2d_OCSP_RESPBYTES.html | 1 + .../openssl/html/man3/i2d_OCSP_RESPDATA.html | 1 + .../openssl/html/man3/i2d_OCSP_RESPID.html | 1 + .../openssl/html/man3/i2d_OCSP_RESPONSE.html | 1 + .../html/man3/i2d_OCSP_REVOKEDINFO.html | 1 + .../html/man3/i2d_OCSP_SERVICELOC.html | 1 + .../openssl/html/man3/i2d_OCSP_SIGNATURE.html | 1 + .../html/man3/i2d_OCSP_SINGLERESP.html | 1 + .../doc/openssl/html/man3/i2d_OTHERNAME.html | 1 + .../doc/openssl/html/man3/i2d_PBE2PARAM.html | 1 + .../doc/openssl/html/man3/i2d_PBEPARAM.html | 1 + .../openssl/html/man3/i2d_PBKDF2PARAM.html | 1 + .../doc/openssl/html/man3/i2d_PKCS12.html | 1 + .../openssl/html/man3/i2d_PKCS12_BAGS.html | 1 + .../html/man3/i2d_PKCS12_MAC_DATA.html | 1 + .../openssl/html/man3/i2d_PKCS12_SAFEBAG.html | 1 + .../doc/openssl/html/man3/i2d_PKCS12_bio.html | 1 + .../doc/openssl/html/man3/i2d_PKCS12_fp.html | 1 + .../doc/openssl/html/man3/i2d_PKCS7.html | 1 + .../openssl/html/man3/i2d_PKCS7_DIGEST.html | 1 + .../openssl/html/man3/i2d_PKCS7_ENCRYPT.html | 1 + .../html/man3/i2d_PKCS7_ENC_CONTENT.html | 1 + .../openssl/html/man3/i2d_PKCS7_ENVELOPE.html | 1 + .../man3/i2d_PKCS7_ISSUER_AND_SERIAL.html | 1 + .../doc/openssl/html/man3/i2d_PKCS7_NDEF.html | 1 + .../html/man3/i2d_PKCS7_RECIP_INFO.html | 1 + .../openssl/html/man3/i2d_PKCS7_SIGNED.html | 1 + .../html/man3/i2d_PKCS7_SIGNER_INFO.html | 1 + .../html/man3/i2d_PKCS7_SIGN_ENVELOPE.html | 1 + .../doc/openssl/html/man3/i2d_PKCS7_bio.html | 1 + .../html/man3/i2d_PKCS7_bio_stream.html | 73 + .../doc/openssl/html/man3/i2d_PKCS7_fp.html | 1 + .../man3/i2d_PKCS8PrivateKeyInfo_bio.html | 1 + .../html/man3/i2d_PKCS8PrivateKeyInfo_fp.html | 1 + .../html/man3/i2d_PKCS8PrivateKey_bio.html | 1 + .../html/man3/i2d_PKCS8PrivateKey_fp.html | 1 + .../man3/i2d_PKCS8PrivateKey_nid_bio.html | 1 + .../html/man3/i2d_PKCS8PrivateKey_nid_fp.html | 1 + .../html/man3/i2d_PKCS8_PRIV_KEY_INFO.html | 1 + .../man3/i2d_PKCS8_PRIV_KEY_INFO_bio.html | 1 + .../html/man3/i2d_PKCS8_PRIV_KEY_INFO_fp.html | 1 + .../doc/openssl/html/man3/i2d_PKCS8_bio.html | 1 + .../doc/openssl/html/man3/i2d_PKCS8_fp.html | 1 + .../html/man3/i2d_PKEY_USAGE_PERIOD.html | 1 + .../doc/openssl/html/man3/i2d_POLICYINFO.html | 1 + .../openssl/html/man3/i2d_POLICYQUALINFO.html | 1 + .../html/man3/i2d_PROFESSION_INFO.html | 1 + .../man3/i2d_PROXY_CERT_INFO_EXTENSION.html | 1 + .../openssl/html/man3/i2d_PROXY_POLICY.html | 1 + .../doc/openssl/html/man3/i2d_PUBKEY.html | 1 + .../doc/openssl/html/man3/i2d_PUBKEY_bio.html | 1 + .../doc/openssl/html/man3/i2d_PUBKEY_fp.html | 1 + .../doc/openssl/html/man3/i2d_PrivateKey.html | 1 + .../doc/openssl/html/man3/i2d_PublicKey.html | 1 + .../openssl/html/man3/i2d_RSAPrivateKey.html | 1 + .../html/man3/i2d_RSAPrivateKey_bio.html | 1 + .../html/man3/i2d_RSAPrivateKey_fp.html | 1 + .../openssl/html/man3/i2d_RSAPublicKey.html | 1 + .../html/man3/i2d_RSAPublicKey_bio.html | 1 + .../html/man3/i2d_RSAPublicKey_fp.html | 1 + .../html/man3/i2d_RSA_OAEP_PARAMS.html | 1 + .../openssl/html/man3/i2d_RSA_PSS_PARAMS.html | 1 + .../doc/openssl/html/man3/i2d_RSA_PUBKEY.html | 1 + .../openssl/html/man3/i2d_RSA_PUBKEY_bio.html | 1 + .../openssl/html/man3/i2d_RSA_PUBKEY_fp.html | 1 + .../openssl/html/man3/i2d_SCRYPT_PARAMS.html | 1 + .../doc/openssl/html/man3/i2d_SCT_LIST.html | 1 + .../openssl/html/man3/i2d_SSL_SESSION.html | 1 + .../doc/openssl/html/man3/i2d_SXNET.html | 1 + .../doc/openssl/html/man3/i2d_SXNETID.html | 1 + .../openssl/html/man3/i2d_TS_ACCURACY.html | 1 + .../openssl/html/man3/i2d_TS_MSG_IMPRINT.html | 1 + .../html/man3/i2d_TS_MSG_IMPRINT_bio.html | 1 + .../html/man3/i2d_TS_MSG_IMPRINT_fp.html | 1 + .../doc/openssl/html/man3/i2d_TS_REQ.html | 1 + .../doc/openssl/html/man3/i2d_TS_REQ_bio.html | 1 + .../doc/openssl/html/man3/i2d_TS_REQ_fp.html | 1 + .../doc/openssl/html/man3/i2d_TS_RESP.html | 1 + .../openssl/html/man3/i2d_TS_RESP_bio.html | 1 + .../doc/openssl/html/man3/i2d_TS_RESP_fp.html | 1 + .../openssl/html/man3/i2d_TS_STATUS_INFO.html | 1 + .../openssl/html/man3/i2d_TS_TST_INFO.html | 1 + .../html/man3/i2d_TS_TST_INFO_bio.html | 1 + .../openssl/html/man3/i2d_TS_TST_INFO_fp.html | 1 + .../doc/openssl/html/man3/i2d_USERNOTICE.html | 1 + .../share/doc/openssl/html/man3/i2d_X509.html | 1 + .../doc/openssl/html/man3/i2d_X509_ALGOR.html | 1 + .../openssl/html/man3/i2d_X509_ALGORS.html | 1 + .../openssl/html/man3/i2d_X509_ATTRIBUTE.html | 1 + .../doc/openssl/html/man3/i2d_X509_AUX.html | 1 + .../openssl/html/man3/i2d_X509_CERT_AUX.html | 1 + .../doc/openssl/html/man3/i2d_X509_CINF.html | 1 + .../doc/openssl/html/man3/i2d_X509_CRL.html | 1 + .../openssl/html/man3/i2d_X509_CRL_INFO.html | 1 + .../openssl/html/man3/i2d_X509_CRL_bio.html | 1 + .../openssl/html/man3/i2d_X509_CRL_fp.html | 1 + .../openssl/html/man3/i2d_X509_EXTENSION.html | 1 + .../html/man3/i2d_X509_EXTENSIONS.html | 1 + .../doc/openssl/html/man3/i2d_X509_NAME.html | 1 + .../html/man3/i2d_X509_NAME_ENTRY.html | 1 + .../openssl/html/man3/i2d_X509_PUBKEY.html | 1 + .../doc/openssl/html/man3/i2d_X509_REQ.html | 1 + .../openssl/html/man3/i2d_X509_REQ_INFO.html | 1 + .../openssl/html/man3/i2d_X509_REQ_bio.html | 1 + .../openssl/html/man3/i2d_X509_REQ_fp.html | 1 + .../openssl/html/man3/i2d_X509_REVOKED.html | 1 + .../doc/openssl/html/man3/i2d_X509_SIG.html | 1 + .../doc/openssl/html/man3/i2d_X509_VAL.html | 1 + .../html/man3/i2d_re_X509_CRL_tbs.html | 1 + .../html/man3/i2d_re_X509_REQ_tbs.html | 1 + .../openssl/html/man3/i2d_re_X509_tbs.html | 74 + .../share/doc/openssl/html/man3/i2o_SCT.html | 1 + .../doc/openssl/html/man3/i2o_SCT_LIST.html | 1 + .../openssl/html/man3/i2t_ASN1_OBJECT.html | 1 + .../doc/openssl/html/man3/lh_TYPE_delete.html | 1 + .../doc/openssl/html/man3/lh_TYPE_doall.html | 1 + .../openssl/html/man3/lh_TYPE_doall_arg.html | 1 + .../doc/openssl/html/man3/lh_TYPE_error.html | 1 + .../doc/openssl/html/man3/lh_TYPE_free.html | 1 + .../doc/openssl/html/man3/lh_TYPE_insert.html | 1 + .../doc/openssl/html/man3/lh_TYPE_new.html | 1 + .../openssl/html/man3/lh_TYPE_retrieve.html | 1 + .../share/doc/openssl/html/man3/o2i_SCT.html | 1 + .../doc/openssl/html/man3/o2i_SCT_LIST.html | 65 + .../openssl/html/man3/pem_password_cb.html | 1 + .../openssl/html/man3/sk_TYPE_deep_copy.html | 1 + .../doc/openssl/html/man3/sk_TYPE_delete.html | 1 + .../openssl/html/man3/sk_TYPE_delete_ptr.html | 1 + .../doc/openssl/html/man3/sk_TYPE_dup.html | 1 + .../doc/openssl/html/man3/sk_TYPE_find.html | 1 + .../openssl/html/man3/sk_TYPE_find_ex.html | 1 + .../doc/openssl/html/man3/sk_TYPE_free.html | 1 + .../doc/openssl/html/man3/sk_TYPE_insert.html | 1 + .../openssl/html/man3/sk_TYPE_is_sorted.html | 1 + .../doc/openssl/html/man3/sk_TYPE_new.html | 1 + .../openssl/html/man3/sk_TYPE_new_null.html | 1 + .../html/man3/sk_TYPE_new_reserve.html | 1 + .../doc/openssl/html/man3/sk_TYPE_num.html | 1 + .../doc/openssl/html/man3/sk_TYPE_pop.html | 1 + .../openssl/html/man3/sk_TYPE_pop_free.html | 1 + .../doc/openssl/html/man3/sk_TYPE_push.html | 1 + .../openssl/html/man3/sk_TYPE_reserve.html | 1 + .../doc/openssl/html/man3/sk_TYPE_set.html | 1 + .../html/man3/sk_TYPE_set_cmp_func.html | 1 + .../doc/openssl/html/man3/sk_TYPE_shift.html | 1 + .../doc/openssl/html/man3/sk_TYPE_sort.html | 1 + .../openssl/html/man3/sk_TYPE_unshift.html | 1 + .../doc/openssl/html/man3/sk_TYPE_value.html | 1 + .../doc/openssl/html/man3/sk_TYPE_zero.html | 1 + .../html/man3/ssl_ct_validation_cb.html | 1 + .../share/doc/openssl/html/man5/config.html | 364 ++ .../doc/openssl/html/man5/x509v3_config.html | 464 ++ .../share/doc/openssl/html/man7/Ed25519.html | 84 + .../share/doc/openssl/html/man7/Ed448.html | 1 + .../share/doc/openssl/html/man7/RAND.html | 64 + .../doc/openssl/html/man7/RAND_DRBG.html | 224 + .../share/doc/openssl/html/man7/RSA-PSS.html | 73 + .../share/doc/openssl/html/man7/SM2.html | 84 + .../share/doc/openssl/html/man7/X25519.html | 80 + .../share/doc/openssl/html/man7/X448.html | 1 + .../share/doc/openssl/html/man7/bio.html | 72 + .../share/doc/openssl/html/man7/crypto.html | 70 + .../share/doc/openssl/html/man7/ct.html | 58 + .../doc/openssl/html/man7/des_modes.html | 214 + .../share/doc/openssl/html/man7/evp.html | 83 + .../openssl/html/man7/ossl_store-file.html | 60 + .../doc/openssl/html/man7/ossl_store.html | 105 + .../html/man7/passphrase-encoding.html | 124 + .../openssl/html/man7/proxy-certificates.html | 345 ++ .../share/doc/openssl/html/man7/scrypt.html | 112 + .../share/doc/openssl/html/man7/ssl.html | 1248 ++++ .../share/doc/openssl/html/man7/x509.html | 67 + rambus_sec_lib/share/man/man1/CA.pl.1 | 337 ++ rambus_sec_lib/share/man/man1/asn1parse.1 | 335 ++ rambus_sec_lib/share/man/man1/c_rehash.1 | 1 + rambus_sec_lib/share/man/man1/ca.1 | 819 +++ rambus_sec_lib/share/man/man1/ciphers.1 | 864 +++ rambus_sec_lib/share/man/man1/cms.1 | 816 +++ rambus_sec_lib/share/man/man1/crl.1 | 253 + rambus_sec_lib/share/man/man1/crl2pkcs7.1 | 223 + rambus_sec_lib/share/man/man1/dgst.1 | 342 ++ rambus_sec_lib/share/man/man1/dhparam.1 | 272 + rambus_sec_lib/share/man/man1/dsa.1 | 302 + rambus_sec_lib/share/man/man1/dsaparam.1 | 241 + rambus_sec_lib/share/man/man1/ec.1 | 322 + rambus_sec_lib/share/man/man1/ecparam.1 | 308 + rambus_sec_lib/share/man/man1/enc.1 | 539 ++ rambus_sec_lib/share/man/man1/engine.1 | 236 + rambus_sec_lib/share/man/man1/errstr.1 | 177 + rambus_sec_lib/share/man/man1/gendsa.1 | 215 + rambus_sec_lib/share/man/man1/genpkey.1 | 430 ++ rambus_sec_lib/share/man/man1/genrsa.1 | 239 + rambus_sec_lib/share/man/man1/list.1 | 207 + rambus_sec_lib/share/man/man1/nseq.1 | 207 + rambus_sec_lib/share/man/man1/ocsp.1 | 580 ++ .../share/man/man1/openssl-asn1parse.1 | 1 + .../share/man/man1/openssl-c_rehash.1 | 1 + rambus_sec_lib/share/man/man1/openssl-ca.1 | 1 + .../share/man/man1/openssl-ciphers.1 | 1 + rambus_sec_lib/share/man/man1/openssl-cms.1 | 1 + rambus_sec_lib/share/man/man1/openssl-crl.1 | 1 + .../share/man/man1/openssl-crl2pkcs7.1 | 1 + rambus_sec_lib/share/man/man1/openssl-dgst.1 | 1 + .../share/man/man1/openssl-dhparam.1 | 1 + rambus_sec_lib/share/man/man1/openssl-dsa.1 | 1 + .../share/man/man1/openssl-dsaparam.1 | 1 + rambus_sec_lib/share/man/man1/openssl-ec.1 | 1 + .../share/man/man1/openssl-ecparam.1 | 1 + rambus_sec_lib/share/man/man1/openssl-enc.1 | 1 + .../share/man/man1/openssl-engine.1 | 1 + .../share/man/man1/openssl-errstr.1 | 1 + .../share/man/man1/openssl-gendsa.1 | 1 + .../share/man/man1/openssl-genpkey.1 | 1 + .../share/man/man1/openssl-genrsa.1 | 1 + rambus_sec_lib/share/man/man1/openssl-list.1 | 1 + rambus_sec_lib/share/man/man1/openssl-nseq.1 | 1 + rambus_sec_lib/share/man/man1/openssl-ocsp.1 | 1 + .../share/man/man1/openssl-passwd.1 | 1 + .../share/man/man1/openssl-pkcs12.1 | 1 + rambus_sec_lib/share/man/man1/openssl-pkcs7.1 | 1 + rambus_sec_lib/share/man/man1/openssl-pkcs8.1 | 1 + rambus_sec_lib/share/man/man1/openssl-pkey.1 | 1 + .../share/man/man1/openssl-pkeyparam.1 | 1 + .../share/man/man1/openssl-pkeyutl.1 | 1 + rambus_sec_lib/share/man/man1/openssl-prime.1 | 1 + rambus_sec_lib/share/man/man1/openssl-rand.1 | 1 + .../share/man/man1/openssl-rehash.1 | 1 + rambus_sec_lib/share/man/man1/openssl-req.1 | 1 + rambus_sec_lib/share/man/man1/openssl-rsa.1 | 1 + .../share/man/man1/openssl-rsautl.1 | 1 + .../share/man/man1/openssl-s_client.1 | 1 + .../share/man/man1/openssl-s_server.1 | 1 + .../share/man/man1/openssl-s_time.1 | 1 + .../share/man/man1/openssl-sess_id.1 | 1 + rambus_sec_lib/share/man/man1/openssl-smime.1 | 1 + rambus_sec_lib/share/man/man1/openssl-speed.1 | 1 + rambus_sec_lib/share/man/man1/openssl-spkac.1 | 1 + rambus_sec_lib/share/man/man1/openssl-srp.1 | 1 + .../share/man/man1/openssl-storeutl.1 | 1 + rambus_sec_lib/share/man/man1/openssl-ts.1 | 1 + rambus_sec_lib/share/man/man1/openssl-tsget.1 | 1 + .../share/man/man1/openssl-verify.1 | 1 + .../share/man/man1/openssl-version.1 | 1 + rambus_sec_lib/share/man/man1/openssl-x509.1 | 1 + rambus_sec_lib/share/man/man1/openssl.1 | 579 ++ rambus_sec_lib/share/man/man1/passwd.1 | 244 + rambus_sec_lib/share/man/man1/pkcs12.1 | 471 ++ rambus_sec_lib/share/man/man1/pkcs7.1 | 238 + rambus_sec_lib/share/man/man1/pkcs8.1 | 430 ++ rambus_sec_lib/share/man/man1/pkey.1 | 284 + rambus_sec_lib/share/man/man1/pkeyparam.1 | 203 + rambus_sec_lib/share/man/man1/pkeyutl.1 | 424 ++ rambus_sec_lib/share/man/man1/prime.1 | 185 + rambus_sec_lib/share/man/man1/rand.1 | 210 + rambus_sec_lib/share/man/man1/rehash.1 | 255 + rambus_sec_lib/share/man/man1/req.1 | 793 +++ rambus_sec_lib/share/man/man1/rsa.1 | 326 ++ rambus_sec_lib/share/man/man1/rsautl.1 | 341 ++ rambus_sec_lib/share/man/man1/s_client.1 | 859 +++ rambus_sec_lib/share/man/man1/s_server.1 | 864 +++ rambus_sec_lib/share/man/man1/s_time.1 | 316 + rambus_sec_lib/share/man/man1/sess_id.1 | 268 + rambus_sec_lib/share/man/man1/smime.1 | 613 ++ rambus_sec_lib/share/man/man1/speed.1 | 216 + rambus_sec_lib/share/man/man1/spkac.1 | 270 + rambus_sec_lib/share/man/man1/srp.1 | 194 + rambus_sec_lib/share/man/man1/storeutl.1 | 245 + rambus_sec_lib/share/man/man1/ts.1 | 723 +++ rambus_sec_lib/share/man/man1/tsget.1 | 321 + rambus_sec_lib/share/man/man1/verify.1 | 783 +++ rambus_sec_lib/share/man/man1/version.1 | 194 + rambus_sec_lib/share/man/man1/x509.1 | 951 +++ .../share/man/man3/ACCESS_DESCRIPTION_free.3 | 1 + .../share/man/man3/ACCESS_DESCRIPTION_new.3 | 1 + rambus_sec_lib/share/man/man3/ADMISSIONS.3 | 276 + .../share/man/man3/ADMISSIONS_free.3 | 1 + .../man3/ADMISSIONS_get0_admissionAuthority.3 | 1 + .../man3/ADMISSIONS_get0_namingAuthority.3 | 1 + .../man3/ADMISSIONS_get0_professionInfos.3 | 1 + .../share/man/man3/ADMISSIONS_new.3 | 1 + .../man3/ADMISSIONS_set0_admissionAuthority.3 | 1 + .../man3/ADMISSIONS_set0_namingAuthority.3 | 1 + .../man3/ADMISSIONS_set0_professionInfos.3 | 1 + .../share/man/man3/ADMISSION_SYNTAX.3 | 1 + .../share/man/man3/ADMISSION_SYNTAX_free.3 | 1 + ...ADMISSION_SYNTAX_get0_admissionAuthority.3 | 1 + ...MISSION_SYNTAX_get0_contentsOfAdmissions.3 | 1 + .../share/man/man3/ADMISSION_SYNTAX_new.3 | 1 + ...ADMISSION_SYNTAX_set0_admissionAuthority.3 | 1 + ...MISSION_SYNTAX_set0_contentsOfAdmissions.3 | 1 + .../share/man/man3/ASIdOrRange_free.3 | 1 + .../share/man/man3/ASIdOrRange_new.3 | 1 + .../share/man/man3/ASIdentifierChoice_free.3 | 1 + .../share/man/man3/ASIdentifierChoice_new.3 | 1 + .../share/man/man3/ASIdentifiers_free.3 | 1 + .../share/man/man3/ASIdentifiers_new.3 | 1 + .../share/man/man3/ASN1_ENUMERATED_get.3 | 1 + .../man/man3/ASN1_ENUMERATED_get_int64.3 | 1 + .../share/man/man3/ASN1_ENUMERATED_set.3 | 1 + .../man/man3/ASN1_ENUMERATED_set_int64.3 | 1 + .../share/man/man3/ASN1_ENUMERATED_to_BN.3 | 1 + .../share/man/man3/ASN1_GENERALIZEDTIME_adj.3 | 1 + .../man/man3/ASN1_GENERALIZEDTIME_check.3 | 1 + .../man/man3/ASN1_GENERALIZEDTIME_print.3 | 1 + .../share/man/man3/ASN1_GENERALIZEDTIME_set.3 | 1 + .../man3/ASN1_GENERALIZEDTIME_set_string.3 | 1 + .../share/man/man3/ASN1_INTEGER_get.3 | 1 + .../share/man/man3/ASN1_INTEGER_get_int64.3 | 256 + .../share/man/man3/ASN1_INTEGER_get_uint64.3 | 1 + .../share/man/man3/ASN1_INTEGER_set.3 | 1 + .../share/man/man3/ASN1_INTEGER_set_int64.3 | 1 + .../share/man/man3/ASN1_INTEGER_set_uint64.3 | 1 + .../share/man/man3/ASN1_INTEGER_to_BN.3 | 1 + rambus_sec_lib/share/man/man3/ASN1_ITEM.3 | 1 + rambus_sec_lib/share/man/man3/ASN1_ITEM_get.3 | 1 + .../share/man/man3/ASN1_ITEM_lookup.3 | 167 + .../share/man/man3/ASN1_OBJECT_free.3 | 1 + .../share/man/man3/ASN1_OBJECT_new.3 | 178 + .../share/man/man3/ASN1_STRING_TABLE.3 | 1 + .../share/man/man3/ASN1_STRING_TABLE_add.3 | 191 + .../man/man3/ASN1_STRING_TABLE_cleanup.3 | 1 + .../share/man/man3/ASN1_STRING_TABLE_get.3 | 1 + .../share/man/man3/ASN1_STRING_cmp.3 | 1 + .../share/man/man3/ASN1_STRING_data.3 | 1 + .../share/man/man3/ASN1_STRING_dup.3 | 1 + .../share/man/man3/ASN1_STRING_free.3 | 1 + .../share/man/man3/ASN1_STRING_get0_data.3 | 1 + .../share/man/man3/ASN1_STRING_length.3 | 238 + .../share/man/man3/ASN1_STRING_new.3 | 178 + .../share/man/man3/ASN1_STRING_print.3 | 1 + .../share/man/man3/ASN1_STRING_print_ex.3 | 241 + .../share/man/man3/ASN1_STRING_print_ex_fp.3 | 1 + .../share/man/man3/ASN1_STRING_set.3 | 1 + .../share/man/man3/ASN1_STRING_to_UTF8.3 | 1 + .../share/man/man3/ASN1_STRING_type.3 | 1 + .../share/man/man3/ASN1_STRING_type_new.3 | 1 + rambus_sec_lib/share/man/man3/ASN1_TIME_adj.3 | 1 + .../share/man/man3/ASN1_TIME_check.3 | 1 + .../share/man/man3/ASN1_TIME_cmp_time_t.3 | 1 + .../share/man/man3/ASN1_TIME_compare.3 | 1 + .../share/man/man3/ASN1_TIME_diff.3 | 1 + .../share/man/man3/ASN1_TIME_normalize.3 | 1 + .../share/man/man3/ASN1_TIME_print.3 | 1 + rambus_sec_lib/share/man/man3/ASN1_TIME_set.3 | 376 ++ .../share/man/man3/ASN1_TIME_set_string.3 | 1 + .../man/man3/ASN1_TIME_set_string_X509.3 | 1 + .../man/man3/ASN1_TIME_to_generalizedtime.3 | 1 + .../share/man/man3/ASN1_TIME_to_tm.3 | 1 + rambus_sec_lib/share/man/man3/ASN1_TYPE_cmp.3 | 1 + rambus_sec_lib/share/man/man3/ASN1_TYPE_get.3 | 227 + .../share/man/man3/ASN1_TYPE_pack_sequence.3 | 1 + rambus_sec_lib/share/man/man3/ASN1_TYPE_set.3 | 1 + .../share/man/man3/ASN1_TYPE_set1.3 | 1 + .../man/man3/ASN1_TYPE_unpack_sequence.3 | 1 + .../share/man/man3/ASN1_UTCTIME_adj.3 | 1 + .../share/man/man3/ASN1_UTCTIME_check.3 | 1 + .../share/man/man3/ASN1_UTCTIME_cmp_time_t.3 | 1 + .../share/man/man3/ASN1_UTCTIME_print.3 | 1 + .../share/man/man3/ASN1_UTCTIME_set.3 | 1 + .../share/man/man3/ASN1_UTCTIME_set_string.3 | 1 + .../share/man/man3/ASN1_add_oid_module.3 | 1 + .../share/man/man3/ASN1_generate_nconf.3 | 377 ++ .../share/man/man3/ASN1_generate_v3.3 | 1 + rambus_sec_lib/share/man/man3/ASN1_tag2str.3 | 1 + rambus_sec_lib/share/man/man3/ASRange_free.3 | 1 + rambus_sec_lib/share/man/man3/ASRange_new.3 | 1 + .../share/man/man3/ASYNC_WAIT_CTX_clear_fd.3 | 1 + .../share/man/man3/ASYNC_WAIT_CTX_free.3 | 1 + .../man/man3/ASYNC_WAIT_CTX_get_all_fds.3 | 1 + .../man/man3/ASYNC_WAIT_CTX_get_changed_fds.3 | 1 + .../share/man/man3/ASYNC_WAIT_CTX_get_fd.3 | 1 + .../share/man/man3/ASYNC_WAIT_CTX_new.3 | 266 + .../man/man3/ASYNC_WAIT_CTX_set_wait_fd.3 | 1 + .../share/man/man3/ASYNC_block_pause.3 | 1 + .../share/man/man3/ASYNC_cleanup_thread.3 | 1 + .../share/man/man3/ASYNC_get_current_job.3 | 1 + .../share/man/man3/ASYNC_get_wait_ctx.3 | 1 + .../share/man/man3/ASYNC_init_thread.3 | 1 + .../share/man/man3/ASYNC_is_capable.3 | 1 + .../share/man/man3/ASYNC_pause_job.3 | 1 + .../share/man/man3/ASYNC_start_job.3 | 449 ++ .../share/man/man3/ASYNC_unblock_pause.3 | 1 + .../man/man3/AUTHORITY_INFO_ACCESS_free.3 | 1 + .../man/man3/AUTHORITY_INFO_ACCESS_new.3 | 1 + .../share/man/man3/AUTHORITY_KEYID_free.3 | 1 + .../share/man/man3/AUTHORITY_KEYID_new.3 | 1 + .../share/man/man3/BASIC_CONSTRAINTS_free.3 | 1 + .../share/man/man3/BASIC_CONSTRAINTS_new.3 | 1 + .../share/man/man3/BF_cbc_encrypt.3 | 1 + .../share/man/man3/BF_cfb64_encrypt.3 | 1 + rambus_sec_lib/share/man/man3/BF_decrypt.3 | 1 + .../share/man/man3/BF_ecb_encrypt.3 | 1 + rambus_sec_lib/share/man/man3/BF_encrypt.3 | 245 + .../share/man/man3/BF_ofb64_encrypt.3 | 1 + rambus_sec_lib/share/man/man3/BF_options.3 | 1 + rambus_sec_lib/share/man/man3/BF_set_key.3 | 1 + rambus_sec_lib/share/man/man3/BIO_ADDR.3 | 249 + rambus_sec_lib/share/man/man3/BIO_ADDRINFO.3 | 235 + .../share/man/man3/BIO_ADDRINFO_address.3 | 1 + .../share/man/man3/BIO_ADDRINFO_family.3 | 1 + .../share/man/man3/BIO_ADDRINFO_free.3 | 1 + .../share/man/man3/BIO_ADDRINFO_next.3 | 1 + .../share/man/man3/BIO_ADDRINFO_protocol.3 | 1 + .../share/man/man3/BIO_ADDRINFO_socktype.3 | 1 + .../share/man/man3/BIO_ADDR_clear.3 | 1 + .../share/man/man3/BIO_ADDR_family.3 | 1 + rambus_sec_lib/share/man/man3/BIO_ADDR_free.3 | 1 + .../share/man/man3/BIO_ADDR_hostname_string.3 | 1 + rambus_sec_lib/share/man/man3/BIO_ADDR_new.3 | 1 + .../share/man/man3/BIO_ADDR_path_string.3 | 1 + .../share/man/man3/BIO_ADDR_rawaddress.3 | 1 + .../share/man/man3/BIO_ADDR_rawmake.3 | 1 + .../share/man/man3/BIO_ADDR_rawport.3 | 1 + .../share/man/man3/BIO_ADDR_service_string.3 | 1 + rambus_sec_lib/share/man/man3/BIO_accept_ex.3 | 1 + .../share/man/man3/BIO_append_filename.3 | 1 + rambus_sec_lib/share/man/man3/BIO_bind.3 | 1 + .../share/man/man3/BIO_callback_ctrl.3 | 1 + .../share/man/man3/BIO_callback_fn.3 | 1 + .../share/man/man3/BIO_callback_fn_ex.3 | 1 + .../share/man/man3/BIO_closesocket.3 | 1 + rambus_sec_lib/share/man/man3/BIO_connect.3 | 236 + rambus_sec_lib/share/man/man3/BIO_ctrl.3 | 259 + .../man/man3/BIO_ctrl_get_read_request.3 | 1 + .../man/man3/BIO_ctrl_get_write_guarantee.3 | 1 + .../share/man/man3/BIO_ctrl_pending.3 | 1 + .../man/man3/BIO_ctrl_reset_read_request.3 | 1 + .../share/man/man3/BIO_ctrl_wpending.3 | 1 + .../share/man/man3/BIO_debug_callback.3 | 1 + .../share/man/man3/BIO_destroy_bio_pair.3 | 1 + rambus_sec_lib/share/man/man3/BIO_do_accept.3 | 1 + .../share/man/man3/BIO_do_connect.3 | 1 + .../share/man/man3/BIO_do_handshake.3 | 1 + rambus_sec_lib/share/man/man3/BIO_eof.3 | 1 + rambus_sec_lib/share/man/man3/BIO_f_base64.3 | 219 + rambus_sec_lib/share/man/man3/BIO_f_buffer.3 | 223 + rambus_sec_lib/share/man/man3/BIO_f_cipher.3 | 207 + rambus_sec_lib/share/man/man3/BIO_f_md.3 | 291 + rambus_sec_lib/share/man/man3/BIO_f_null.3 | 167 + rambus_sec_lib/share/man/man3/BIO_f_ssl.3 | 431 ++ rambus_sec_lib/share/man/man3/BIO_find_type.3 | 199 + rambus_sec_lib/share/man/man3/BIO_flush.3 | 1 + rambus_sec_lib/share/man/man3/BIO_free.3 | 1 + rambus_sec_lib/share/man/man3/BIO_free_all.3 | 1 + .../share/man/man3/BIO_get_accept_ip_family.3 | 1 + .../share/man/man3/BIO_get_accept_name.3 | 1 + .../share/man/man3/BIO_get_accept_port.3 | 1 + .../share/man/man3/BIO_get_bind_mode.3 | 1 + .../share/man/man3/BIO_get_buffer_num_lines.3 | 1 + .../share/man/man3/BIO_get_callback.3 | 1 + .../share/man/man3/BIO_get_callback_arg.3 | 1 + .../share/man/man3/BIO_get_callback_ex.3 | 1 + .../share/man/man3/BIO_get_cipher_ctx.3 | 1 + .../share/man/man3/BIO_get_cipher_status.3 | 1 + rambus_sec_lib/share/man/man3/BIO_get_close.3 | 1 + .../share/man/man3/BIO_get_conn_address.3 | 1 + .../share/man/man3/BIO_get_conn_hostname.3 | 1 + .../share/man/man3/BIO_get_conn_ip_family.3 | 1 + .../share/man/man3/BIO_get_conn_port.3 | 1 + rambus_sec_lib/share/man/man3/BIO_get_data.3 | 191 + .../share/man/man3/BIO_get_ex_data.3 | 1 + .../share/man/man3/BIO_get_ex_new_index.3 | 187 + rambus_sec_lib/share/man/man3/BIO_get_fd.3 | 1 + rambus_sec_lib/share/man/man3/BIO_get_fp.3 | 1 + .../share/man/man3/BIO_get_info_callback.3 | 1 + rambus_sec_lib/share/man/man3/BIO_get_init.3 | 1 + rambus_sec_lib/share/man/man3/BIO_get_md.3 | 1 + .../share/man/man3/BIO_get_md_ctx.3 | 1 + .../share/man/man3/BIO_get_mem_data.3 | 1 + .../share/man/man3/BIO_get_mem_ptr.3 | 1 + .../share/man/man3/BIO_get_new_index.3 | 1 + .../share/man/man3/BIO_get_num_renegotiates.3 | 1 + .../share/man/man3/BIO_get_peer_name.3 | 1 + .../share/man/man3/BIO_get_peer_port.3 | 1 + .../share/man/man3/BIO_get_read_request.3 | 1 + .../share/man/man3/BIO_get_retry_BIO.3 | 1 + .../share/man/man3/BIO_get_retry_reason.3 | 1 + .../share/man/man3/BIO_get_shutdown.3 | 1 + rambus_sec_lib/share/man/man3/BIO_get_ssl.3 | 1 + .../share/man/man3/BIO_get_write_buf_size.3 | 1 + .../share/man/man3/BIO_get_write_guarantee.3 | 1 + rambus_sec_lib/share/man/man3/BIO_gets.3 | 1 + .../share/man/man3/BIO_hostserv_priorities.3 | 1 + rambus_sec_lib/share/man/man3/BIO_info_cb.3 | 1 + rambus_sec_lib/share/man/man3/BIO_int_ctrl.3 | 1 + rambus_sec_lib/share/man/man3/BIO_listen.3 | 1 + rambus_sec_lib/share/man/man3/BIO_lookup.3 | 1 + rambus_sec_lib/share/man/man3/BIO_lookup_ex.3 | 1 + .../share/man/man3/BIO_lookup_type.3 | 1 + .../share/man/man3/BIO_make_bio_pair.3 | 1 + rambus_sec_lib/share/man/man3/BIO_meth_free.3 | 1 + .../man/man3/BIO_meth_get_callback_ctrl.3 | 1 + .../share/man/man3/BIO_meth_get_create.3 | 1 + .../share/man/man3/BIO_meth_get_ctrl.3 | 1 + .../share/man/man3/BIO_meth_get_destroy.3 | 1 + .../share/man/man3/BIO_meth_get_gets.3 | 1 + .../share/man/man3/BIO_meth_get_puts.3 | 1 + .../share/man/man3/BIO_meth_get_read.3 | 1 + .../share/man/man3/BIO_meth_get_read_ex.3 | 1 + .../share/man/man3/BIO_meth_get_write.3 | 1 + .../share/man/man3/BIO_meth_get_write_ex.3 | 1 + rambus_sec_lib/share/man/man3/BIO_meth_new.3 | 284 + .../man/man3/BIO_meth_set_callback_ctrl.3 | 1 + .../share/man/man3/BIO_meth_set_create.3 | 1 + .../share/man/man3/BIO_meth_set_ctrl.3 | 1 + .../share/man/man3/BIO_meth_set_destroy.3 | 1 + .../share/man/man3/BIO_meth_set_gets.3 | 1 + .../share/man/man3/BIO_meth_set_puts.3 | 1 + .../share/man/man3/BIO_meth_set_read.3 | 1 + .../share/man/man3/BIO_meth_set_read_ex.3 | 1 + .../share/man/man3/BIO_meth_set_write.3 | 1 + .../share/man/man3/BIO_meth_set_write_ex.3 | 1 + .../share/man/man3/BIO_method_type.3 | 1 + rambus_sec_lib/share/man/man3/BIO_new.3 | 198 + rambus_sec_lib/share/man/man3/BIO_new_CMS.3 | 200 + .../share/man/man3/BIO_new_accept.3 | 1 + .../share/man/man3/BIO_new_bio_pair.3 | 1 + .../man/man3/BIO_new_buffer_ssl_connect.3 | 1 + .../share/man/man3/BIO_new_connect.3 | 1 + rambus_sec_lib/share/man/man3/BIO_new_fd.3 | 1 + rambus_sec_lib/share/man/man3/BIO_new_file.3 | 1 + rambus_sec_lib/share/man/man3/BIO_new_fp.3 | 1 + .../share/man/man3/BIO_new_mem_buf.3 | 1 + .../share/man/man3/BIO_new_socket.3 | 1 + rambus_sec_lib/share/man/man3/BIO_new_ssl.3 | 1 + .../share/man/man3/BIO_new_ssl_connect.3 | 1 + rambus_sec_lib/share/man/man3/BIO_next.3 | 1 + .../share/man/man3/BIO_parse_hostserv.3 | 208 + rambus_sec_lib/share/man/man3/BIO_pending.3 | 1 + rambus_sec_lib/share/man/man3/BIO_pop.3 | 1 + rambus_sec_lib/share/man/man3/BIO_printf.3 | 178 + rambus_sec_lib/share/man/man3/BIO_ptr_ctrl.3 | 1 + rambus_sec_lib/share/man/man3/BIO_push.3 | 220 + rambus_sec_lib/share/man/man3/BIO_puts.3 | 1 + rambus_sec_lib/share/man/man3/BIO_read.3 | 222 + rambus_sec_lib/share/man/man3/BIO_read_ex.3 | 1 + .../share/man/man3/BIO_read_filename.3 | 1 + rambus_sec_lib/share/man/man3/BIO_reset.3 | 1 + .../share/man/man3/BIO_retry_type.3 | 1 + .../share/man/man3/BIO_rw_filename.3 | 1 + rambus_sec_lib/share/man/man3/BIO_s_accept.3 | 361 ++ rambus_sec_lib/share/man/man3/BIO_s_bio.3 | 325 ++ rambus_sec_lib/share/man/man3/BIO_s_connect.3 | 334 ++ rambus_sec_lib/share/man/man3/BIO_s_fd.3 | 226 + rambus_sec_lib/share/man/man3/BIO_s_file.3 | 299 + rambus_sec_lib/share/man/man3/BIO_s_mem.3 | 293 + rambus_sec_lib/share/man/man3/BIO_s_null.3 | 172 + rambus_sec_lib/share/man/man3/BIO_s_secmem.3 | 1 + rambus_sec_lib/share/man/man3/BIO_s_socket.3 | 182 + rambus_sec_lib/share/man/man3/BIO_seek.3 | 1 + .../share/man/man3/BIO_set_accept_bios.3 | 1 + .../share/man/man3/BIO_set_accept_ip_family.3 | 1 + .../share/man/man3/BIO_set_accept_name.3 | 1 + .../share/man/man3/BIO_set_accept_port.3 | 1 + .../share/man/man3/BIO_set_bind_mode.3 | 1 + .../share/man/man3/BIO_set_buffer_read_data.3 | 1 + .../share/man/man3/BIO_set_buffer_size.3 | 1 + .../share/man/man3/BIO_set_callback.3 | 388 ++ .../share/man/man3/BIO_set_callback_arg.3 | 1 + .../share/man/man3/BIO_set_callback_ex.3 | 1 + .../share/man/man3/BIO_set_cipher.3 | 1 + rambus_sec_lib/share/man/man3/BIO_set_close.3 | 1 + .../share/man/man3/BIO_set_conn_address.3 | 1 + .../share/man/man3/BIO_set_conn_hostname.3 | 1 + .../share/man/man3/BIO_set_conn_ip_family.3 | 1 + .../share/man/man3/BIO_set_conn_port.3 | 1 + rambus_sec_lib/share/man/man3/BIO_set_data.3 | 1 + .../share/man/man3/BIO_set_ex_data.3 | 1 + rambus_sec_lib/share/man/man3/BIO_set_fd.3 | 1 + rambus_sec_lib/share/man/man3/BIO_set_fp.3 | 1 + .../share/man/man3/BIO_set_info_callback.3 | 1 + rambus_sec_lib/share/man/man3/BIO_set_init.3 | 1 + rambus_sec_lib/share/man/man3/BIO_set_md.3 | 1 + .../share/man/man3/BIO_set_mem_buf.3 | 1 + .../share/man/man3/BIO_set_mem_eof_return.3 | 1 + rambus_sec_lib/share/man/man3/BIO_set_nbio.3 | 1 + .../share/man/man3/BIO_set_nbio_accept.3 | 1 + rambus_sec_lib/share/man/man3/BIO_set_next.3 | 1 + .../share/man/man3/BIO_set_read_buffer_size.3 | 1 + .../share/man/man3/BIO_set_retry_reason.3 | 1 + .../share/man/man3/BIO_set_shutdown.3 | 1 + rambus_sec_lib/share/man/man3/BIO_set_ssl.3 | 1 + .../share/man/man3/BIO_set_ssl_mode.3 | 1 + .../man/man3/BIO_set_ssl_renegotiate_bytes.3 | 1 + .../man3/BIO_set_ssl_renegotiate_timeout.3 | 1 + .../share/man/man3/BIO_set_write_buf_size.3 | 1 + .../man/man3/BIO_set_write_buffer_size.3 | 1 + .../share/man/man3/BIO_should_io_special.3 | 1 + .../share/man/man3/BIO_should_read.3 | 1 + .../share/man/man3/BIO_should_retry.3 | 269 + .../share/man/man3/BIO_should_write.3 | 1 + .../share/man/man3/BIO_shutdown_wr.3 | 1 + rambus_sec_lib/share/man/man3/BIO_snprintf.3 | 1 + rambus_sec_lib/share/man/man3/BIO_socket.3 | 1 + .../share/man/man3/BIO_ssl_copy_session_id.3 | 1 + .../share/man/man3/BIO_ssl_shutdown.3 | 1 + rambus_sec_lib/share/man/man3/BIO_tell.3 | 1 + rambus_sec_lib/share/man/man3/BIO_up_ref.3 | 1 + rambus_sec_lib/share/man/man3/BIO_vfree.3 | 1 + rambus_sec_lib/share/man/man3/BIO_vprintf.3 | 1 + rambus_sec_lib/share/man/man3/BIO_vsnprintf.3 | 1 + rambus_sec_lib/share/man/man3/BIO_wpending.3 | 1 + rambus_sec_lib/share/man/man3/BIO_write.3 | 1 + rambus_sec_lib/share/man/man3/BIO_write_ex.3 | 1 + .../share/man/man3/BIO_write_filename.3 | 1 + .../share/man/man3/BN_BLINDING_convert.3 | 1 + .../share/man/man3/BN_BLINDING_convert_ex.3 | 1 + .../share/man/man3/BN_BLINDING_create_param.3 | 1 + .../share/man/man3/BN_BLINDING_free.3 | 1 + .../share/man/man3/BN_BLINDING_get_flags.3 | 1 + .../share/man/man3/BN_BLINDING_invert.3 | 1 + .../share/man/man3/BN_BLINDING_invert_ex.3 | 1 + .../man/man3/BN_BLINDING_is_current_thread.3 | 1 + .../share/man/man3/BN_BLINDING_lock.3 | 1 + .../share/man/man3/BN_BLINDING_new.3 | 250 + .../man/man3/BN_BLINDING_set_current_thread.3 | 1 + .../share/man/man3/BN_BLINDING_set_flags.3 | 1 + .../share/man/man3/BN_BLINDING_unlock.3 | 1 + .../share/man/man3/BN_BLINDING_update.3 | 1 + rambus_sec_lib/share/man/man3/BN_CTX_end.3 | 1 + rambus_sec_lib/share/man/man3/BN_CTX_free.3 | 1 + rambus_sec_lib/share/man/man3/BN_CTX_get.3 | 1 + rambus_sec_lib/share/man/man3/BN_CTX_new.3 | 209 + .../share/man/man3/BN_CTX_secure_new.3 | 1 + rambus_sec_lib/share/man/man3/BN_CTX_start.3 | 185 + rambus_sec_lib/share/man/man3/BN_GENCB_call.3 | 1 + rambus_sec_lib/share/man/man3/BN_GENCB_free.3 | 1 + .../share/man/man3/BN_GENCB_get_arg.3 | 1 + rambus_sec_lib/share/man/man3/BN_GENCB_new.3 | 1 + rambus_sec_lib/share/man/man3/BN_GENCB_set.3 | 1 + .../share/man/man3/BN_GENCB_set_old.3 | 1 + .../share/man/man3/BN_MONT_CTX_copy.3 | 1 + .../share/man/man3/BN_MONT_CTX_free.3 | 1 + .../share/man/man3/BN_MONT_CTX_new.3 | 1 + .../share/man/man3/BN_MONT_CTX_set.3 | 1 + .../share/man/man3/BN_RECP_CTX_free.3 | 1 + .../share/man/man3/BN_RECP_CTX_new.3 | 1 + .../share/man/man3/BN_RECP_CTX_set.3 | 1 + rambus_sec_lib/share/man/man3/BN_add.3 | 255 + rambus_sec_lib/share/man/man3/BN_add_word.3 | 188 + rambus_sec_lib/share/man/man3/BN_bin2bn.3 | 1 + rambus_sec_lib/share/man/man3/BN_bn2bin.3 | 241 + rambus_sec_lib/share/man/man3/BN_bn2binpad.3 | 1 + rambus_sec_lib/share/man/man3/BN_bn2dec.3 | 1 + rambus_sec_lib/share/man/man3/BN_bn2hex.3 | 1 + .../share/man/man3/BN_bn2lebinpad.3 | 1 + rambus_sec_lib/share/man/man3/BN_bn2mpi.3 | 1 + rambus_sec_lib/share/man/man3/BN_clear.3 | 1 + rambus_sec_lib/share/man/man3/BN_clear_bit.3 | 1 + rambus_sec_lib/share/man/man3/BN_clear_free.3 | 1 + rambus_sec_lib/share/man/man3/BN_cmp.3 | 176 + rambus_sec_lib/share/man/man3/BN_copy.3 | 187 + rambus_sec_lib/share/man/man3/BN_dec2bn.3 | 1 + rambus_sec_lib/share/man/man3/BN_div.3 | 1 + rambus_sec_lib/share/man/man3/BN_div_recp.3 | 1 + rambus_sec_lib/share/man/man3/BN_div_word.3 | 1 + rambus_sec_lib/share/man/man3/BN_dup.3 | 1 + rambus_sec_lib/share/man/man3/BN_exp.3 | 1 + rambus_sec_lib/share/man/man3/BN_free.3 | 1 + .../share/man/man3/BN_from_montgomery.3 | 1 + rambus_sec_lib/share/man/man3/BN_gcd.3 | 1 + .../share/man/man3/BN_generate_prime.3 | 337 ++ .../share/man/man3/BN_generate_prime_ex.3 | 1 + .../share/man/man3/BN_get0_nist_prime_192.3 | 1 + .../share/man/man3/BN_get0_nist_prime_224.3 | 1 + .../share/man/man3/BN_get0_nist_prime_256.3 | 1 + .../share/man/man3/BN_get0_nist_prime_384.3 | 1 + .../share/man/man3/BN_get0_nist_prime_521.3 | 1 + .../man/man3/BN_get_rfc2409_prime_1024.3 | 1 + .../share/man/man3/BN_get_rfc2409_prime_768.3 | 1 + .../man/man3/BN_get_rfc3526_prime_1536.3 | 1 + .../man/man3/BN_get_rfc3526_prime_2048.3 | 1 + .../man/man3/BN_get_rfc3526_prime_3072.3 | 1 + .../man/man3/BN_get_rfc3526_prime_4096.3 | 1 + .../man/man3/BN_get_rfc3526_prime_6144.3 | 1 + .../man/man3/BN_get_rfc3526_prime_8192.3 | 1 + rambus_sec_lib/share/man/man3/BN_get_word.3 | 1 + rambus_sec_lib/share/man/man3/BN_hex2bn.3 | 1 + rambus_sec_lib/share/man/man3/BN_is_bit_set.3 | 1 + rambus_sec_lib/share/man/man3/BN_is_odd.3 | 1 + rambus_sec_lib/share/man/man3/BN_is_one.3 | 1 + rambus_sec_lib/share/man/man3/BN_is_prime.3 | 1 + .../share/man/man3/BN_is_prime_ex.3 | 1 + .../share/man/man3/BN_is_prime_fasttest.3 | 1 + .../share/man/man3/BN_is_prime_fasttest_ex.3 | 1 + rambus_sec_lib/share/man/man3/BN_is_word.3 | 1 + rambus_sec_lib/share/man/man3/BN_is_zero.3 | 1 + rambus_sec_lib/share/man/man3/BN_lebin2bn.3 | 1 + rambus_sec_lib/share/man/man3/BN_lshift.3 | 1 + rambus_sec_lib/share/man/man3/BN_lshift1.3 | 1 + rambus_sec_lib/share/man/man3/BN_mask_bits.3 | 1 + rambus_sec_lib/share/man/man3/BN_mod.3 | 1 + rambus_sec_lib/share/man/man3/BN_mod_add.3 | 1 + rambus_sec_lib/share/man/man3/BN_mod_exp.3 | 1 + .../share/man/man3/BN_mod_inverse.3 | 169 + rambus_sec_lib/share/man/man3/BN_mod_mul.3 | 1 + .../share/man/man3/BN_mod_mul_montgomery.3 | 214 + .../share/man/man3/BN_mod_mul_reciprocal.3 | 201 + rambus_sec_lib/share/man/man3/BN_mod_sqr.3 | 1 + rambus_sec_lib/share/man/man3/BN_mod_sub.3 | 1 + rambus_sec_lib/share/man/man3/BN_mod_word.3 | 1 + rambus_sec_lib/share/man/man3/BN_mpi2bn.3 | 1 + rambus_sec_lib/share/man/man3/BN_mul.3 | 1 + rambus_sec_lib/share/man/man3/BN_mul_word.3 | 1 + rambus_sec_lib/share/man/man3/BN_new.3 | 191 + rambus_sec_lib/share/man/man3/BN_nnmod.3 | 1 + rambus_sec_lib/share/man/man3/BN_num_bits.3 | 1 + .../share/man/man3/BN_num_bits_word.3 | 1 + rambus_sec_lib/share/man/man3/BN_num_bytes.3 | 188 + rambus_sec_lib/share/man/man3/BN_one.3 | 1 + rambus_sec_lib/share/man/man3/BN_print.3 | 1 + rambus_sec_lib/share/man/man3/BN_print_fp.3 | 1 + rambus_sec_lib/share/man/man3/BN_priv_rand.3 | 1 + .../share/man/man3/BN_priv_rand_range.3 | 1 + .../share/man/man3/BN_pseudo_rand.3 | 1 + .../share/man/man3/BN_pseudo_rand_range.3 | 1 + rambus_sec_lib/share/man/man3/BN_rand.3 | 216 + rambus_sec_lib/share/man/man3/BN_rand_range.3 | 1 + rambus_sec_lib/share/man/man3/BN_rshift.3 | 1 + rambus_sec_lib/share/man/man3/BN_rshift1.3 | 1 + rambus_sec_lib/share/man/man3/BN_secure_new.3 | 1 + .../share/man/man3/BN_security_bits.3 | 177 + rambus_sec_lib/share/man/man3/BN_set_bit.3 | 196 + rambus_sec_lib/share/man/man3/BN_set_word.3 | 1 + rambus_sec_lib/share/man/man3/BN_sqr.3 | 1 + rambus_sec_lib/share/man/man3/BN_sub.3 | 1 + rambus_sec_lib/share/man/man3/BN_sub_word.3 | 1 + rambus_sec_lib/share/man/man3/BN_swap.3 | 159 + .../share/man/man3/BN_to_ASN1_ENUMERATED.3 | 1 + .../share/man/man3/BN_to_ASN1_INTEGER.3 | 1 + .../share/man/man3/BN_to_montgomery.3 | 1 + rambus_sec_lib/share/man/man3/BN_ucmp.3 | 1 + rambus_sec_lib/share/man/man3/BN_value_one.3 | 1 + rambus_sec_lib/share/man/man3/BN_with_flags.3 | 1 + rambus_sec_lib/share/man/man3/BN_zero.3 | 193 + rambus_sec_lib/share/man/man3/BUF_MEM_free.3 | 1 + rambus_sec_lib/share/man/man3/BUF_MEM_grow.3 | 1 + .../share/man/man3/BUF_MEM_grow_clean.3 | 1 + rambus_sec_lib/share/man/man3/BUF_MEM_new.3 | 200 + .../share/man/man3/BUF_MEM_new_ex.3 | 1 + rambus_sec_lib/share/man/man3/BUF_reverse.3 | 1 + .../share/man/man3/CERTIFICATEPOLICIES_free.3 | 1 + .../share/man/man3/CERTIFICATEPOLICIES_new.3 | 1 + .../share/man/man3/CMS_ContentInfo_free.3 | 1 + .../share/man/man3/CMS_ContentInfo_new.3 | 1 + .../man/man3/CMS_ContentInfo_print_ctx.3 | 1 + .../man/man3/CMS_ReceiptRequest_create0.3 | 1 + .../share/man/man3/CMS_ReceiptRequest_free.3 | 1 + .../man/man3/CMS_ReceiptRequest_get0_values.3 | 1 + .../share/man/man3/CMS_ReceiptRequest_new.3 | 1 + .../man/man3/CMS_RecipientInfo_decrypt.3 | 1 + .../man/man3/CMS_RecipientInfo_encrypt.3 | 1 + .../man3/CMS_RecipientInfo_kekri_get0_id.3 | 1 + .../man/man3/CMS_RecipientInfo_kekri_id_cmp.3 | 1 + .../man3/CMS_RecipientInfo_ktri_cert_cmp.3 | 1 + .../CMS_RecipientInfo_ktri_get0_signer_id.3 | 1 + .../man/man3/CMS_RecipientInfo_set0_key.3 | 1 + .../man/man3/CMS_RecipientInfo_set0_pkey.3 | 1 + .../share/man/man3/CMS_RecipientInfo_type.3 | 1 + .../share/man/man3/CMS_SignerInfo_cert_cmp.3 | 1 + .../man/man3/CMS_SignerInfo_get0_signature.3 | 1 + .../man/man3/CMS_SignerInfo_get0_signer_id.3 | 1 + .../man3/CMS_SignerInfo_set1_signer_cert.3 | 1 + .../share/man/man3/CMS_SignerInfo_sign.3 | 1 + rambus_sec_lib/share/man/man3/CMS_add0_cert.3 | 196 + rambus_sec_lib/share/man/man3/CMS_add0_crl.3 | 1 + .../share/man/man3/CMS_add0_recipient_key.3 | 1 + .../share/man/man3/CMS_add1_ReceiptRequest.3 | 1 + rambus_sec_lib/share/man/man3/CMS_add1_cert.3 | 1 + rambus_sec_lib/share/man/man3/CMS_add1_crl.3 | 1 + .../share/man/man3/CMS_add1_recipient_cert.3 | 199 + .../share/man/man3/CMS_add1_signer.3 | 234 + rambus_sec_lib/share/man/man3/CMS_compress.3 | 206 + rambus_sec_lib/share/man/man3/CMS_decrypt.3 | 208 + rambus_sec_lib/share/man/man3/CMS_encrypt.3 | 229 + rambus_sec_lib/share/man/man3/CMS_final.3 | 173 + .../share/man/man3/CMS_get0_RecipientInfos.3 | 261 + .../share/man/man3/CMS_get0_SignerInfos.3 | 214 + .../share/man/man3/CMS_get0_content.3 | 1 + .../share/man/man3/CMS_get0_eContentType.3 | 1 + .../share/man/man3/CMS_get0_signers.3 | 1 + rambus_sec_lib/share/man/man3/CMS_get0_type.3 | 213 + .../share/man/man3/CMS_get1_ReceiptRequest.3 | 205 + .../share/man/man3/CMS_get1_certs.3 | 1 + rambus_sec_lib/share/man/man3/CMS_get1_crls.3 | 1 + .../share/man/man3/CMS_set1_eContentType.3 | 1 + rambus_sec_lib/share/man/man3/CMS_sign.3 | 254 + .../share/man/man3/CMS_sign_receipt.3 | 179 + .../share/man/man3/CMS_uncompress.3 | 185 + rambus_sec_lib/share/man/man3/CMS_verify.3 | 257 + .../share/man/man3/CMS_verify_receipt.3 | 181 + .../share/man/man3/CONF_modules_finish.3 | 1 + .../share/man/man3/CONF_modules_free.3 | 186 + .../share/man/man3/CONF_modules_load.3 | 1 + .../share/man/man3/CONF_modules_load_file.3 | 278 + .../share/man/man3/CONF_modules_unload.3 | 1 + .../share/man/man3/CRL_DIST_POINTS_free.3 | 1 + .../share/man/man3/CRL_DIST_POINTS_new.3 | 1 + rambus_sec_lib/share/man/man3/CRYPTO_EX_dup.3 | 1 + .../share/man/man3/CRYPTO_EX_free.3 | 1 + rambus_sec_lib/share/man/man3/CRYPTO_EX_new.3 | 1 + .../share/man/man3/CRYPTO_THREAD_lock_free.3 | 1 + .../share/man/man3/CRYPTO_THREAD_lock_new.3 | 1 + .../share/man/man3/CRYPTO_THREAD_read_lock.3 | 1 + .../share/man/man3/CRYPTO_THREAD_run_once.3 | 279 + .../share/man/man3/CRYPTO_THREAD_unlock.3 | 1 + .../share/man/man3/CRYPTO_THREAD_write_lock.3 | 1 + .../share/man/man3/CRYPTO_atomic_add.3 | 1 + .../share/man/man3/CRYPTO_clear_free.3 | 1 + .../share/man/man3/CRYPTO_clear_realloc.3 | 1 + rambus_sec_lib/share/man/man3/CRYPTO_free.3 | 1 + .../share/man/man3/CRYPTO_free_ex_data.3 | 1 + .../share/man/man3/CRYPTO_free_ex_index.3 | 1 + .../share/man/man3/CRYPTO_get_alloc_counts.3 | 1 + .../share/man/man3/CRYPTO_get_ex_data.3 | 1 + .../share/man/man3/CRYPTO_get_ex_new_index.3 | 294 + .../share/man/man3/CRYPTO_get_mem_functions.3 | 1 + rambus_sec_lib/share/man/man3/CRYPTO_malloc.3 | 1 + .../share/man/man3/CRYPTO_mem_ctrl.3 | 1 + .../share/man/man3/CRYPTO_mem_debug_pop.3 | 1 + .../share/man/man3/CRYPTO_mem_debug_push.3 | 1 + .../share/man/man3/CRYPTO_mem_leaks.3 | 1 + .../share/man/man3/CRYPTO_mem_leaks_cb.3 | 1 + .../share/man/man3/CRYPTO_mem_leaks_fp.3 | 1 + rambus_sec_lib/share/man/man3/CRYPTO_memcmp.3 | 167 + .../share/man/man3/CRYPTO_new_ex_data.3 | 1 + .../share/man/man3/CRYPTO_realloc.3 | 1 + .../share/man/man3/CRYPTO_secure_allocated.3 | 1 + .../share/man/man3/CRYPTO_secure_clear_free.3 | 1 + .../share/man/man3/CRYPTO_secure_free.3 | 1 + .../share/man/man3/CRYPTO_secure_malloc.3 | 1 + .../man/man3/CRYPTO_secure_malloc_done.3 | 1 + .../man/man3/CRYPTO_secure_malloc_init.3 | 1 + .../man3/CRYPTO_secure_malloc_initialized.3 | 1 + .../share/man/man3/CRYPTO_secure_used.3 | 1 + .../share/man/man3/CRYPTO_secure_zalloc.3 | 1 + .../share/man/man3/CRYPTO_set_ex_data.3 | 1 + .../share/man/man3/CRYPTO_set_mem_debug.3 | 1 + .../share/man/man3/CRYPTO_set_mem_functions.3 | 1 + rambus_sec_lib/share/man/man3/CRYPTO_strdup.3 | 1 + .../share/man/man3/CRYPTO_strndup.3 | 1 + rambus_sec_lib/share/man/man3/CRYPTO_zalloc.3 | 1 + .../share/man/man3/CTLOG_STORE_free.3 | 1 + .../man/man3/CTLOG_STORE_get0_log_by_id.3 | 175 + .../man/man3/CTLOG_STORE_load_default_file.3 | 1 + .../share/man/man3/CTLOG_STORE_load_file.3 | 1 + .../share/man/man3/CTLOG_STORE_new.3 | 205 + rambus_sec_lib/share/man/man3/CTLOG_free.3 | 1 + .../share/man/man3/CTLOG_get0_log_id.3 | 1 + .../share/man/man3/CTLOG_get0_name.3 | 1 + .../share/man/man3/CTLOG_get0_public_key.3 | 1 + rambus_sec_lib/share/man/man3/CTLOG_new.3 | 197 + .../share/man/man3/CTLOG_new_from_base64.3 | 1 + .../share/man/man3/CT_POLICY_EVAL_CTX_free.3 | 1 + .../man/man3/CT_POLICY_EVAL_CTX_get0_cert.3 | 1 + .../man/man3/CT_POLICY_EVAL_CTX_get0_issuer.3 | 1 + .../man3/CT_POLICY_EVAL_CTX_get0_log_store.3 | 1 + .../man/man3/CT_POLICY_EVAL_CTX_get_time.3 | 1 + .../share/man/man3/CT_POLICY_EVAL_CTX_new.3 | 225 + .../man/man3/CT_POLICY_EVAL_CTX_set1_cert.3 | 1 + .../man/man3/CT_POLICY_EVAL_CTX_set1_issuer.3 | 1 + ...T_POLICY_EVAL_CTX_set_shared_CTLOG_STORE.3 | 1 + .../man/man3/CT_POLICY_EVAL_CTX_set_time.3 | 1 + .../share/man/man3/DECLARE_ASN1_FUNCTIONS.3 | 1 + .../share/man/man3/DECLARE_LHASH_OF.3 | 1 + .../share/man/man3/DECLARE_PEM_rw.3 | 1 + .../share/man/man3/DEFINE_SPECIAL_STACK_OF.3 | 1 + .../man/man3/DEFINE_SPECIAL_STACK_OF_CONST.3 | 1 + .../share/man/man3/DEFINE_STACK_OF.3 | 400 ++ .../share/man/man3/DEFINE_STACK_OF_CONST.3 | 1 + rambus_sec_lib/share/man/man3/DES_cbc_cksum.3 | 1 + .../share/man/man3/DES_cfb64_encrypt.3 | 1 + .../share/man/man3/DES_cfb_encrypt.3 | 1 + rambus_sec_lib/share/man/man3/DES_crypt.3 | 1 + .../share/man/man3/DES_ecb2_encrypt.3 | 1 + .../share/man/man3/DES_ecb3_encrypt.3 | 1 + .../share/man/man3/DES_ecb_encrypt.3 | 1 + .../share/man/man3/DES_ede2_cbc_encrypt.3 | 1 + .../share/man/man3/DES_ede2_cfb64_encrypt.3 | 1 + .../share/man/man3/DES_ede2_ofb64_encrypt.3 | 1 + .../share/man/man3/DES_ede3_cbc_encrypt.3 | 1 + .../share/man/man3/DES_ede3_cfb64_encrypt.3 | 1 + .../share/man/man3/DES_ede3_ofb64_encrypt.3 | 1 + rambus_sec_lib/share/man/man3/DES_fcrypt.3 | 1 + .../share/man/man3/DES_is_weak_key.3 | 1 + rambus_sec_lib/share/man/man3/DES_key_sched.3 | 1 + .../share/man/man3/DES_ncbc_encrypt.3 | 1 + .../share/man/man3/DES_ofb64_encrypt.3 | 1 + .../share/man/man3/DES_ofb_encrypt.3 | 1 + .../share/man/man3/DES_pcbc_encrypt.3 | 1 + .../share/man/man3/DES_quad_cksum.3 | 1 + .../share/man/man3/DES_random_key.3 | 440 ++ rambus_sec_lib/share/man/man3/DES_set_key.3 | 1 + .../share/man/man3/DES_set_key_checked.3 | 1 + .../share/man/man3/DES_set_key_unchecked.3 | 1 + .../share/man/man3/DES_set_odd_parity.3 | 1 + .../share/man/man3/DES_string_to_2keys.3 | 1 + .../share/man/man3/DES_string_to_key.3 | 1 + .../share/man/man3/DES_xcbc_encrypt.3 | 1 + rambus_sec_lib/share/man/man3/DH_OpenSSL.3 | 1 + rambus_sec_lib/share/man/man3/DH_bits.3 | 1 + rambus_sec_lib/share/man/man3/DH_check.3 | 1 + rambus_sec_lib/share/man/man3/DH_check_ex.3 | 1 + .../share/man/man3/DH_check_params.3 | 1 + .../share/man/man3/DH_check_params_ex.3 | 1 + .../share/man/man3/DH_check_pub_key_ex.3 | 1 + .../share/man/man3/DH_clear_flags.3 | 1 + .../share/man/man3/DH_compute_key.3 | 1 + .../share/man/man3/DH_compute_key_padded.3 | 1 + rambus_sec_lib/share/man/man3/DH_free.3 | 1 + .../share/man/man3/DH_generate_key.3 | 197 + .../share/man/man3/DH_generate_parameters.3 | 259 + .../man/man3/DH_generate_parameters_ex.3 | 1 + .../share/man/man3/DH_get0_engine.3 | 1 + rambus_sec_lib/share/man/man3/DH_get0_g.3 | 1 + rambus_sec_lib/share/man/man3/DH_get0_key.3 | 1 + rambus_sec_lib/share/man/man3/DH_get0_p.3 | 1 + rambus_sec_lib/share/man/man3/DH_get0_pqg.3 | 250 + .../share/man/man3/DH_get0_priv_key.3 | 1 + .../share/man/man3/DH_get0_pub_key.3 | 1 + rambus_sec_lib/share/man/man3/DH_get0_q.3 | 1 + .../share/man/man3/DH_get_1024_160.3 | 187 + .../share/man/man3/DH_get_2048_224.3 | 1 + .../share/man/man3/DH_get_2048_256.3 | 1 + .../share/man/man3/DH_get_default_method.3 | 1 + .../share/man/man3/DH_get_ex_data.3 | 1 + .../share/man/man3/DH_get_ex_new_index.3 | 1 + rambus_sec_lib/share/man/man3/DH_get_length.3 | 1 + rambus_sec_lib/share/man/man3/DH_get_nid.3 | 1 + rambus_sec_lib/share/man/man3/DH_meth_dup.3 | 1 + rambus_sec_lib/share/man/man3/DH_meth_free.3 | 1 + .../share/man/man3/DH_meth_get0_app_data.3 | 1 + .../share/man/man3/DH_meth_get0_name.3 | 1 + .../share/man/man3/DH_meth_get_bn_mod_exp.3 | 1 + .../share/man/man3/DH_meth_get_compute_key.3 | 1 + .../share/man/man3/DH_meth_get_finish.3 | 1 + .../share/man/man3/DH_meth_get_flags.3 | 1 + .../share/man/man3/DH_meth_get_generate_key.3 | 1 + .../man/man3/DH_meth_get_generate_params.3 | 1 + .../share/man/man3/DH_meth_get_init.3 | 1 + rambus_sec_lib/share/man/man3/DH_meth_new.3 | 290 + .../share/man/man3/DH_meth_set0_app_data.3 | 1 + .../share/man/man3/DH_meth_set1_name.3 | 1 + .../share/man/man3/DH_meth_set_bn_mod_exp.3 | 1 + .../share/man/man3/DH_meth_set_compute_key.3 | 1 + .../share/man/man3/DH_meth_set_finish.3 | 1 + .../share/man/man3/DH_meth_set_flags.3 | 1 + .../share/man/man3/DH_meth_set_generate_key.3 | 1 + .../man/man3/DH_meth_set_generate_params.3 | 1 + .../share/man/man3/DH_meth_set_init.3 | 1 + rambus_sec_lib/share/man/man3/DH_new.3 | 174 + rambus_sec_lib/share/man/man3/DH_new_by_nid.3 | 168 + rambus_sec_lib/share/man/man3/DH_new_method.3 | 1 + .../share/man/man3/DH_security_bits.3 | 1 + rambus_sec_lib/share/man/man3/DH_set0_key.3 | 1 + rambus_sec_lib/share/man/man3/DH_set0_pqg.3 | 1 + .../share/man/man3/DH_set_default_method.3 | 1 + .../share/man/man3/DH_set_ex_data.3 | 1 + rambus_sec_lib/share/man/man3/DH_set_flags.3 | 1 + rambus_sec_lib/share/man/man3/DH_set_length.3 | 1 + rambus_sec_lib/share/man/man3/DH_set_method.3 | 215 + rambus_sec_lib/share/man/man3/DH_size.3 | 183 + rambus_sec_lib/share/man/man3/DH_test_flags.3 | 1 + .../share/man/man3/DHparams_print.3 | 1 + .../share/man/man3/DHparams_print_fp.3 | 1 + .../share/man/man3/DIRECTORYSTRING_free.3 | 1 + .../share/man/man3/DIRECTORYSTRING_new.3 | 1 + .../share/man/man3/DISPLAYTEXT_free.3 | 1 + .../share/man/man3/DISPLAYTEXT_new.3 | 1 + .../share/man/man3/DIST_POINT_NAME_free.3 | 1 + .../share/man/man3/DIST_POINT_NAME_new.3 | 1 + .../share/man/man3/DIST_POINT_free.3 | 1 + .../share/man/man3/DIST_POINT_new.3 | 1 + rambus_sec_lib/share/man/man3/DSA_OpenSSL.3 | 1 + rambus_sec_lib/share/man/man3/DSA_SIG_free.3 | 1 + rambus_sec_lib/share/man/man3/DSA_SIG_get0.3 | 1 + rambus_sec_lib/share/man/man3/DSA_SIG_new.3 | 185 + rambus_sec_lib/share/man/man3/DSA_SIG_set0.3 | 1 + rambus_sec_lib/share/man/man3/DSA_bits.3 | 1 + .../share/man/man3/DSA_clear_flags.3 | 1 + rambus_sec_lib/share/man/man3/DSA_do_sign.3 | 180 + rambus_sec_lib/share/man/man3/DSA_do_verify.3 | 1 + rambus_sec_lib/share/man/man3/DSA_dup_DH.3 | 168 + rambus_sec_lib/share/man/man3/DSA_free.3 | 1 + .../share/man/man3/DSA_generate_key.3 | 169 + .../share/man/man3/DSA_generate_parameters.3 | 236 + .../man/man3/DSA_generate_parameters_ex.3 | 1 + .../share/man/man3/DSA_get0_engine.3 | 1 + rambus_sec_lib/share/man/man3/DSA_get0_g.3 | 1 + rambus_sec_lib/share/man/man3/DSA_get0_key.3 | 1 + rambus_sec_lib/share/man/man3/DSA_get0_p.3 | 1 + rambus_sec_lib/share/man/man3/DSA_get0_pqg.3 | 235 + .../share/man/man3/DSA_get0_priv_key.3 | 1 + .../share/man/man3/DSA_get0_pub_key.3 | 1 + rambus_sec_lib/share/man/man3/DSA_get0_q.3 | 1 + .../share/man/man3/DSA_get_default_method.3 | 1 + .../share/man/man3/DSA_get_ex_data.3 | 1 + .../share/man/man3/DSA_get_ex_new_index.3 | 1 + rambus_sec_lib/share/man/man3/DSA_meth_dup.3 | 1 + rambus_sec_lib/share/man/man3/DSA_meth_free.3 | 1 + .../share/man/man3/DSA_meth_get0_app_data.3 | 1 + .../share/man/man3/DSA_meth_get0_name.3 | 1 + .../share/man/man3/DSA_meth_get_bn_mod_exp.3 | 1 + .../share/man/man3/DSA_meth_get_finish.3 | 1 + .../share/man/man3/DSA_meth_get_flags.3 | 1 + .../share/man/man3/DSA_meth_get_init.3 | 1 + .../share/man/man3/DSA_meth_get_keygen.3 | 1 + .../share/man/man3/DSA_meth_get_mod_exp.3 | 1 + .../share/man/man3/DSA_meth_get_paramgen.3 | 1 + .../share/man/man3/DSA_meth_get_sign.3 | 1 + .../share/man/man3/DSA_meth_get_sign_setup.3 | 1 + .../share/man/man3/DSA_meth_get_verify.3 | 1 + rambus_sec_lib/share/man/man3/DSA_meth_new.3 | 338 ++ .../share/man/man3/DSA_meth_set0_app_data.3 | 1 + .../share/man/man3/DSA_meth_set1_name.3 | 1 + .../share/man/man3/DSA_meth_set_bn_mod_exp.3 | 1 + .../share/man/man3/DSA_meth_set_finish.3 | 1 + .../share/man/man3/DSA_meth_set_flags.3 | 1 + .../share/man/man3/DSA_meth_set_init.3 | 1 + .../share/man/man3/DSA_meth_set_keygen.3 | 1 + .../share/man/man3/DSA_meth_set_mod_exp.3 | 1 + .../share/man/man3/DSA_meth_set_paramgen.3 | 1 + .../share/man/man3/DSA_meth_set_sign.3 | 1 + .../share/man/man3/DSA_meth_set_sign_setup.3 | 1 + .../share/man/man3/DSA_meth_set_verify.3 | 1 + rambus_sec_lib/share/man/man3/DSA_new.3 | 176 + .../share/man/man3/DSA_new_method.3 | 1 + rambus_sec_lib/share/man/man3/DSA_print.3 | 1 + rambus_sec_lib/share/man/man3/DSA_print_fp.3 | 1 + .../share/man/man3/DSA_security_bits.3 | 1 + rambus_sec_lib/share/man/man3/DSA_set0_key.3 | 1 + rambus_sec_lib/share/man/man3/DSA_set0_pqg.3 | 1 + .../share/man/man3/DSA_set_default_method.3 | 1 + .../share/man/man3/DSA_set_ex_data.3 | 1 + rambus_sec_lib/share/man/man3/DSA_set_flags.3 | 1 + .../share/man/man3/DSA_set_method.3 | 215 + rambus_sec_lib/share/man/man3/DSA_sign.3 | 198 + .../share/man/man3/DSA_sign_setup.3 | 1 + rambus_sec_lib/share/man/man3/DSA_size.3 | 176 + .../share/man/man3/DSA_test_flags.3 | 1 + rambus_sec_lib/share/man/man3/DSA_verify.3 | 1 + rambus_sec_lib/share/man/man3/DSAparams_dup.3 | 1 + .../share/man/man3/DSAparams_print.3 | 1 + .../share/man/man3/DSAparams_print_fp.3 | 1 + .../share/man/man3/DTLS_client_method.3 | 1 + .../share/man/man3/DTLS_get_data_mtu.3 | 164 + rambus_sec_lib/share/man/man3/DTLS_method.3 | 1 + .../share/man/man3/DTLS_server_method.3 | 1 + .../share/man/man3/DTLS_set_timer_cb.3 | 166 + rambus_sec_lib/share/man/man3/DTLS_timer_cb.3 | 1 + .../share/man/man3/DTLSv1_2_client_method.3 | 1 + .../share/man/man3/DTLSv1_2_method.3 | 1 + .../share/man/man3/DTLSv1_2_server_method.3 | 1 + .../share/man/man3/DTLSv1_client_method.3 | 1 + rambus_sec_lib/share/man/man3/DTLSv1_listen.3 | 260 + rambus_sec_lib/share/man/man3/DTLSv1_method.3 | 1 + .../share/man/man3/DTLSv1_server_method.3 | 1 + .../share/man/man3/ECDH_get_ex_data.3 | 1 + .../share/man/man3/ECDH_get_ex_new_index.3 | 1 + .../share/man/man3/ECDH_set_ex_data.3 | 1 + .../share/man/man3/ECDSA_SIG_free.3 | 1 + .../share/man/man3/ECDSA_SIG_get0.3 | 1 + .../share/man/man3/ECDSA_SIG_get0_r.3 | 1 + .../share/man/man3/ECDSA_SIG_get0_s.3 | 1 + rambus_sec_lib/share/man/man3/ECDSA_SIG_new.3 | 343 ++ .../share/man/man3/ECDSA_SIG_set0.3 | 1 + rambus_sec_lib/share/man/man3/ECDSA_do_sign.3 | 1 + .../share/man/man3/ECDSA_do_sign_ex.3 | 1 + .../share/man/man3/ECDSA_do_verify.3 | 1 + rambus_sec_lib/share/man/man3/ECDSA_sign.3 | 1 + rambus_sec_lib/share/man/man3/ECDSA_sign_ex.3 | 1 + .../share/man/man3/ECDSA_sign_setup.3 | 1 + rambus_sec_lib/share/man/man3/ECDSA_size.3 | 1 + rambus_sec_lib/share/man/man3/ECDSA_verify.3 | 1 + .../share/man/man3/ECPARAMETERS_free.3 | 1 + .../share/man/man3/ECPARAMETERS_new.3 | 1 + .../share/man/man3/ECPKPARAMETERS_free.3 | 1 + .../share/man/man3/ECPKPARAMETERS_new.3 | 1 + .../share/man/man3/ECPKParameters_print.3 | 171 + .../share/man/man3/ECPKParameters_print_fp.3 | 1 + .../share/man/man3/EC_GF2m_simple_method.3 | 1 + .../share/man/man3/EC_GFp_mont_method.3 | 1 + .../share/man/man3/EC_GFp_nist_method.3 | 1 + .../share/man/man3/EC_GFp_nistp224_method.3 | 1 + .../share/man/man3/EC_GFp_nistp256_method.3 | 1 + .../share/man/man3/EC_GFp_nistp521_method.3 | 1 + .../share/man/man3/EC_GFp_simple_method.3 | 197 + .../share/man/man3/EC_GROUP_check.3 | 1 + .../man/man3/EC_GROUP_check_discriminant.3 | 1 + .../share/man/man3/EC_GROUP_clear_free.3 | 1 + rambus_sec_lib/share/man/man3/EC_GROUP_cmp.3 | 1 + rambus_sec_lib/share/man/man3/EC_GROUP_copy.3 | 341 ++ rambus_sec_lib/share/man/man3/EC_GROUP_dup.3 | 1 + rambus_sec_lib/share/man/man3/EC_GROUP_free.3 | 1 + .../share/man/man3/EC_GROUP_get0_cofactor.3 | 1 + .../share/man/man3/EC_GROUP_get0_generator.3 | 1 + .../share/man/man3/EC_GROUP_get0_order.3 | 1 + .../share/man/man3/EC_GROUP_get0_seed.3 | 1 + .../share/man/man3/EC_GROUP_get_asn1_flag.3 | 1 + .../share/man/man3/EC_GROUP_get_basis_type.3 | 1 + .../share/man/man3/EC_GROUP_get_cofactor.3 | 1 + .../share/man/man3/EC_GROUP_get_curve.3 | 1 + .../share/man/man3/EC_GROUP_get_curve_GF2m.3 | 1 + .../share/man/man3/EC_GROUP_get_curve_GFp.3 | 1 + .../share/man/man3/EC_GROUP_get_curve_name.3 | 1 + .../share/man/man3/EC_GROUP_get_degree.3 | 1 + .../man/man3/EC_GROUP_get_ecparameters.3 | 1 + .../man/man3/EC_GROUP_get_ecpkparameters.3 | 1 + .../share/man/man3/EC_GROUP_get_order.3 | 1 + .../man/man3/EC_GROUP_get_pentanomial_basis.3 | 1 + .../man3/EC_GROUP_get_point_conversion_form.3 | 1 + .../share/man/man3/EC_GROUP_get_seed_len.3 | 1 + .../man/man3/EC_GROUP_get_trinomial_basis.3 | 1 + .../man/man3/EC_GROUP_have_precompute_mult.3 | 1 + .../share/man/man3/EC_GROUP_method_of.3 | 1 + rambus_sec_lib/share/man/man3/EC_GROUP_new.3 | 275 + .../man/man3/EC_GROUP_new_by_curve_name.3 | 1 + .../share/man/man3/EC_GROUP_new_curve_GF2m.3 | 1 + .../share/man/man3/EC_GROUP_new_curve_GFp.3 | 1 + .../man/man3/EC_GROUP_new_from_ecparameters.3 | 1 + .../man3/EC_GROUP_new_from_ecpkparameters.3 | 1 + .../share/man/man3/EC_GROUP_order_bits.3 | 1 + .../share/man/man3/EC_GROUP_precompute_mult.3 | 1 + .../share/man/man3/EC_GROUP_set_asn1_flag.3 | 1 + .../share/man/man3/EC_GROUP_set_curve.3 | 1 + .../share/man/man3/EC_GROUP_set_curve_GF2m.3 | 1 + .../share/man/man3/EC_GROUP_set_curve_GFp.3 | 1 + .../share/man/man3/EC_GROUP_set_curve_name.3 | 1 + .../share/man/man3/EC_GROUP_set_generator.3 | 1 + .../man3/EC_GROUP_set_point_conversion_form.3 | 1 + .../share/man/man3/EC_GROUP_set_seed.3 | 1 + .../share/man/man3/EC_KEY_check_key.3 | 1 + .../share/man/man3/EC_KEY_clear_flags.3 | 1 + rambus_sec_lib/share/man/man3/EC_KEY_copy.3 | 1 + .../EC_KEY_decoded_from_explicit_params.3 | 1 + rambus_sec_lib/share/man/man3/EC_KEY_dup.3 | 1 + rambus_sec_lib/share/man/man3/EC_KEY_free.3 | 1 + .../share/man/man3/EC_KEY_generate_key.3 | 1 + .../share/man/man3/EC_KEY_get0_engine.3 | 1 + .../share/man/man3/EC_KEY_get0_group.3 | 1 + .../share/man/man3/EC_KEY_get0_private_key.3 | 1 + .../share/man/man3/EC_KEY_get0_public_key.3 | 1 + .../share/man/man3/EC_KEY_get_conv_form.3 | 1 + .../share/man/man3/EC_KEY_get_enc_flags.3 | 186 + .../share/man/man3/EC_KEY_get_ex_data.3 | 1 + .../share/man/man3/EC_KEY_get_ex_new_index.3 | 1 + .../share/man/man3/EC_KEY_get_flags.3 | 1 + .../share/man/man3/EC_KEY_get_method.3 | 1 + .../share/man/man3/EC_KEY_key2buf.3 | 1 + rambus_sec_lib/share/man/man3/EC_KEY_new.3 | 310 + .../share/man/man3/EC_KEY_new_by_curve_name.3 | 1 + .../share/man/man3/EC_KEY_oct2key.3 | 1 + .../share/man/man3/EC_KEY_oct2priv.3 | 1 + .../share/man/man3/EC_KEY_precompute_mult.3 | 1 + .../share/man/man3/EC_KEY_priv2buf.3 | 1 + .../share/man/man3/EC_KEY_priv2oct.3 | 1 + .../share/man/man3/EC_KEY_set_asn1_flag.3 | 1 + .../share/man/man3/EC_KEY_set_conv_form.3 | 1 + .../share/man/man3/EC_KEY_set_enc_flags.3 | 1 + .../share/man/man3/EC_KEY_set_ex_data.3 | 1 + .../share/man/man3/EC_KEY_set_flags.3 | 1 + .../share/man/man3/EC_KEY_set_group.3 | 1 + .../share/man/man3/EC_KEY_set_method.3 | 1 + .../share/man/man3/EC_KEY_set_private_key.3 | 1 + .../share/man/man3/EC_KEY_set_public_key.3 | 1 + ...EC_KEY_set_public_key_affine_coordinates.3 | 1 + rambus_sec_lib/share/man/man3/EC_KEY_up_ref.3 | 1 + .../share/man/man3/EC_METHOD_get_field_type.3 | 1 + rambus_sec_lib/share/man/man3/EC_POINT_add.3 | 212 + .../share/man/man3/EC_POINT_bn2point.3 | 1 + .../share/man/man3/EC_POINT_clear_free.3 | 1 + rambus_sec_lib/share/man/man3/EC_POINT_cmp.3 | 1 + rambus_sec_lib/share/man/man3/EC_POINT_copy.3 | 1 + rambus_sec_lib/share/man/man3/EC_POINT_dbl.3 | 1 + rambus_sec_lib/share/man/man3/EC_POINT_dup.3 | 1 + rambus_sec_lib/share/man/man3/EC_POINT_free.3 | 1 + ...EC_POINT_get_Jprojective_coordinates_GFp.3 | 1 + .../man3/EC_POINT_get_affine_coordinates.3 | 1 + .../EC_POINT_get_affine_coordinates_GF2m.3 | 1 + .../EC_POINT_get_affine_coordinates_GFp.3 | 1 + .../share/man/man3/EC_POINT_hex2point.3 | 1 + .../share/man/man3/EC_POINT_invert.3 | 1 + .../share/man/man3/EC_POINT_is_at_infinity.3 | 1 + .../share/man/man3/EC_POINT_is_on_curve.3 | 1 + .../share/man/man3/EC_POINT_make_affine.3 | 1 + .../share/man/man3/EC_POINT_method_of.3 | 1 + rambus_sec_lib/share/man/man3/EC_POINT_mul.3 | 1 + rambus_sec_lib/share/man/man3/EC_POINT_new.3 | 355 ++ .../share/man/man3/EC_POINT_oct2point.3 | 1 + .../share/man/man3/EC_POINT_point2bn.3 | 1 + .../share/man/man3/EC_POINT_point2buf.3 | 1 + .../share/man/man3/EC_POINT_point2hex.3 | 1 + .../share/man/man3/EC_POINT_point2oct.3 | 1 + ...EC_POINT_set_Jprojective_coordinates_GFp.3 | 1 + .../man3/EC_POINT_set_affine_coordinates.3 | 1 + .../EC_POINT_set_affine_coordinates_GF2m.3 | 1 + .../EC_POINT_set_affine_coordinates_GFp.3 | 1 + .../EC_POINT_set_compressed_coordinates.3 | 1 + ...EC_POINT_set_compressed_coordinates_GF2m.3 | 1 + .../EC_POINT_set_compressed_coordinates_GFp.3 | 1 + .../share/man/man3/EC_POINT_set_to_infinity.3 | 1 + .../share/man/man3/EC_POINTs_make_affine.3 | 1 + rambus_sec_lib/share/man/man3/EC_POINTs_mul.3 | 1 + .../share/man/man3/EC_get_builtin_curves.3 | 1 + .../share/man/man3/EDIPARTYNAME_free.3 | 1 + .../share/man/man3/EDIPARTYNAME_new.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_add.3 | 763 +++ .../share/man/man3/ENGINE_add_conf_module.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_by_id.3 | 1 + .../share/man/man3/ENGINE_cleanup.3 | 1 + .../share/man/man3/ENGINE_cmd_is_executable.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_ctrl.3 | 1 + .../share/man/man3/ENGINE_ctrl_cmd.3 | 1 + .../share/man/man3/ENGINE_ctrl_cmd_string.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_finish.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_free.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_get_DH.3 | 1 + .../share/man/man3/ENGINE_get_DSA.3 | 1 + .../share/man/man3/ENGINE_get_RAND.3 | 1 + .../share/man/man3/ENGINE_get_RSA.3 | 1 + .../share/man/man3/ENGINE_get_cipher.3 | 1 + .../share/man/man3/ENGINE_get_cipher_engine.3 | 1 + .../share/man/man3/ENGINE_get_ciphers.3 | 1 + .../share/man/man3/ENGINE_get_cmd_defns.3 | 1 + .../share/man/man3/ENGINE_get_ctrl_function.3 | 1 + .../share/man/man3/ENGINE_get_default_DH.3 | 1 + .../share/man/man3/ENGINE_get_default_DSA.3 | 1 + .../share/man/man3/ENGINE_get_default_RAND.3 | 1 + .../share/man/man3/ENGINE_get_default_RSA.3 | 1 + .../man/man3/ENGINE_get_destroy_function.3 | 1 + .../share/man/man3/ENGINE_get_digest.3 | 1 + .../share/man/man3/ENGINE_get_digest_engine.3 | 1 + .../share/man/man3/ENGINE_get_digests.3 | 1 + .../share/man/man3/ENGINE_get_ex_data.3 | 1 + .../share/man/man3/ENGINE_get_ex_new_index.3 | 1 + .../man/man3/ENGINE_get_finish_function.3 | 1 + .../share/man/man3/ENGINE_get_first.3 | 1 + .../share/man/man3/ENGINE_get_flags.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_get_id.3 | 1 + .../share/man/man3/ENGINE_get_init_function.3 | 1 + .../share/man/man3/ENGINE_get_last.3 | 1 + .../man3/ENGINE_get_load_privkey_function.3 | 1 + .../man3/ENGINE_get_load_pubkey_function.3 | 1 + .../share/man/man3/ENGINE_get_name.3 | 1 + .../share/man/man3/ENGINE_get_next.3 | 1 + .../share/man/man3/ENGINE_get_prev.3 | 1 + .../share/man/man3/ENGINE_get_table_flags.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_init.3 | 1 + .../man/man3/ENGINE_load_builtin_engines.3 | 1 + .../share/man/man3/ENGINE_load_private_key.3 | 1 + .../share/man/man3/ENGINE_load_public_key.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_new.3 | 1 + .../share/man/man3/ENGINE_register_DH.3 | 1 + .../share/man/man3/ENGINE_register_DSA.3 | 1 + .../share/man/man3/ENGINE_register_RAND.3 | 1 + .../share/man/man3/ENGINE_register_RSA.3 | 1 + .../share/man/man3/ENGINE_register_all_DH.3 | 1 + .../share/man/man3/ENGINE_register_all_DSA.3 | 1 + .../share/man/man3/ENGINE_register_all_RAND.3 | 1 + .../share/man/man3/ENGINE_register_all_RSA.3 | 1 + .../man/man3/ENGINE_register_all_ciphers.3 | 1 + .../man/man3/ENGINE_register_all_complete.3 | 1 + .../man/man3/ENGINE_register_all_digests.3 | 1 + .../share/man/man3/ENGINE_register_ciphers.3 | 1 + .../share/man/man3/ENGINE_register_complete.3 | 1 + .../share/man/man3/ENGINE_register_digests.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_remove.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_set_DH.3 | 1 + .../share/man/man3/ENGINE_set_DSA.3 | 1 + .../share/man/man3/ENGINE_set_RAND.3 | 1 + .../share/man/man3/ENGINE_set_RSA.3 | 1 + .../share/man/man3/ENGINE_set_ciphers.3 | 1 + .../share/man/man3/ENGINE_set_cmd_defns.3 | 1 + .../share/man/man3/ENGINE_set_ctrl_function.3 | 1 + .../share/man/man3/ENGINE_set_default.3 | 1 + .../share/man/man3/ENGINE_set_default_DH.3 | 1 + .../share/man/man3/ENGINE_set_default_DSA.3 | 1 + .../share/man/man3/ENGINE_set_default_RAND.3 | 1 + .../share/man/man3/ENGINE_set_default_RSA.3 | 1 + .../man/man3/ENGINE_set_default_ciphers.3 | 1 + .../man/man3/ENGINE_set_default_digests.3 | 1 + .../man/man3/ENGINE_set_default_string.3 | 1 + .../man/man3/ENGINE_set_destroy_function.3 | 1 + .../share/man/man3/ENGINE_set_digests.3 | 1 + .../share/man/man3/ENGINE_set_ex_data.3 | 1 + .../man/man3/ENGINE_set_finish_function.3 | 1 + .../share/man/man3/ENGINE_set_flags.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_set_id.3 | 1 + .../share/man/man3/ENGINE_set_init_function.3 | 1 + .../man3/ENGINE_set_load_privkey_function.3 | 1 + .../man3/ENGINE_set_load_pubkey_function.3 | 1 + .../share/man/man3/ENGINE_set_name.3 | 1 + .../share/man/man3/ENGINE_set_table_flags.3 | 1 + .../share/man/man3/ENGINE_unregister_DH.3 | 1 + .../share/man/man3/ENGINE_unregister_DSA.3 | 1 + .../share/man/man3/ENGINE_unregister_RAND.3 | 1 + .../share/man/man3/ENGINE_unregister_RSA.3 | 1 + .../man/man3/ENGINE_unregister_ciphers.3 | 1 + .../man/man3/ENGINE_unregister_digests.3 | 1 + rambus_sec_lib/share/man/man3/ENGINE_up_ref.3 | 1 + .../share/man/man3/ERR_FATAL_ERROR.3 | 1 + rambus_sec_lib/share/man/man3/ERR_GET_FUNC.3 | 1 + rambus_sec_lib/share/man/man3/ERR_GET_LIB.3 | 192 + .../share/man/man3/ERR_GET_REASON.3 | 1 + rambus_sec_lib/share/man/man3/ERR_PACK.3 | 1 + .../share/man/man3/ERR_add_error_data.3 | 1 + .../share/man/man3/ERR_add_error_vdata.3 | 1 + .../share/man/man3/ERR_clear_error.3 | 162 + .../share/man/man3/ERR_error_string.3 | 202 + .../share/man/man3/ERR_error_string_n.3 | 1 + .../share/man/man3/ERR_free_strings.3 | 1 + .../share/man/man3/ERR_func_error_string.3 | 1 + rambus_sec_lib/share/man/man3/ERR_get_error.3 | 204 + .../share/man/man3/ERR_get_error_line.3 | 1 + .../share/man/man3/ERR_get_error_line_data.3 | 1 + .../man/man3/ERR_get_next_error_library.3 | 1 + .../share/man/man3/ERR_lib_error_string.3 | 1 + .../share/man/man3/ERR_load_crypto_strings.3 | 184 + .../share/man/man3/ERR_load_strings.3 | 187 + .../share/man/man3/ERR_peek_error.3 | 1 + .../share/man/man3/ERR_peek_error_line.3 | 1 + .../share/man/man3/ERR_peek_error_line_data.3 | 1 + .../share/man/man3/ERR_peek_last_error.3 | 1 + .../share/man/man3/ERR_peek_last_error_line.3 | 1 + .../man/man3/ERR_peek_last_error_line_data.3 | 1 + .../share/man/man3/ERR_pop_to_mark.3 | 1 + .../share/man/man3/ERR_print_errors.3 | 187 + .../share/man/man3/ERR_print_errors_cb.3 | 1 + .../share/man/man3/ERR_print_errors_fp.3 | 1 + rambus_sec_lib/share/man/man3/ERR_put_error.3 | 203 + .../share/man/man3/ERR_reason_error_string.3 | 1 + .../share/man/man3/ERR_remove_state.3 | 176 + .../share/man/man3/ERR_remove_thread_state.3 | 1 + rambus_sec_lib/share/man/man3/ERR_set_mark.3 | 168 + .../share/man/man3/ESS_CERT_ID_dup.3 | 1 + .../share/man/man3/ESS_CERT_ID_free.3 | 1 + .../share/man/man3/ESS_CERT_ID_new.3 | 1 + .../share/man/man3/ESS_ISSUER_SERIAL_dup.3 | 1 + .../share/man/man3/ESS_ISSUER_SERIAL_free.3 | 1 + .../share/man/man3/ESS_ISSUER_SERIAL_new.3 | 1 + .../share/man/man3/ESS_SIGNING_CERT_dup.3 | 1 + .../share/man/man3/ESS_SIGNING_CERT_free.3 | 1 + .../share/man/man3/ESS_SIGNING_CERT_new.3 | 1 + .../share/man/man3/EVP_BytesToKey.3 | 206 + .../man/man3/EVP_CIPHER_CTX_block_size.3 | 1 + .../share/man/man3/EVP_CIPHER_CTX_cipher.3 | 1 + .../share/man/man3/EVP_CIPHER_CTX_ctrl.3 | 1 + .../share/man/man3/EVP_CIPHER_CTX_flags.3 | 1 + .../share/man/man3/EVP_CIPHER_CTX_free.3 | 1 + .../man/man3/EVP_CIPHER_CTX_get_app_data.3 | 1 + .../man/man3/EVP_CIPHER_CTX_get_cipher_data.3 | 178 + .../share/man/man3/EVP_CIPHER_CTX_iv_length.3 | 1 + .../man/man3/EVP_CIPHER_CTX_key_length.3 | 1 + .../share/man/man3/EVP_CIPHER_CTX_mode.3 | 1 + .../share/man/man3/EVP_CIPHER_CTX_new.3 | 1 + .../share/man/man3/EVP_CIPHER_CTX_nid.3 | 1 + .../share/man/man3/EVP_CIPHER_CTX_reset.3 | 1 + .../man/man3/EVP_CIPHER_CTX_set_app_data.3 | 1 + .../man/man3/EVP_CIPHER_CTX_set_cipher_data.3 | 1 + .../man/man3/EVP_CIPHER_CTX_set_key_length.3 | 1 + .../man/man3/EVP_CIPHER_CTX_set_padding.3 | 1 + .../share/man/man3/EVP_CIPHER_CTX_type.3 | 1 + .../share/man/man3/EVP_CIPHER_asn1_to_param.3 | 1 + .../share/man/man3/EVP_CIPHER_block_size.3 | 1 + .../share/man/man3/EVP_CIPHER_flags.3 | 1 + .../share/man/man3/EVP_CIPHER_iv_length.3 | 1 + .../share/man/man3/EVP_CIPHER_key_length.3 | 1 + .../share/man/man3/EVP_CIPHER_meth_dup.3 | 1 + .../share/man/man3/EVP_CIPHER_meth_free.3 | 1 + .../man/man3/EVP_CIPHER_meth_get_cleanup.3 | 1 + .../share/man/man3/EVP_CIPHER_meth_get_ctrl.3 | 1 + .../man/man3/EVP_CIPHER_meth_get_do_cipher.3 | 1 + .../EVP_CIPHER_meth_get_get_asn1_params.3 | 1 + .../share/man/man3/EVP_CIPHER_meth_get_init.3 | 1 + .../EVP_CIPHER_meth_get_set_asn1_params.3 | 1 + .../share/man/man3/EVP_CIPHER_meth_new.3 | 339 ++ .../man/man3/EVP_CIPHER_meth_set_cleanup.3 | 1 + .../share/man/man3/EVP_CIPHER_meth_set_ctrl.3 | 1 + .../man/man3/EVP_CIPHER_meth_set_do_cipher.3 | 1 + .../man/man3/EVP_CIPHER_meth_set_flags.3 | 1 + .../EVP_CIPHER_meth_set_get_asn1_params.3 | 1 + .../man3/EVP_CIPHER_meth_set_impl_ctx_size.3 | 1 + .../share/man/man3/EVP_CIPHER_meth_set_init.3 | 1 + .../man/man3/EVP_CIPHER_meth_set_iv_length.3 | 1 + .../EVP_CIPHER_meth_set_set_asn1_params.3 | 1 + .../share/man/man3/EVP_CIPHER_mode.3 | 1 + .../share/man/man3/EVP_CIPHER_nid.3 | 1 + .../share/man/man3/EVP_CIPHER_param_to_asn1.3 | 1 + .../share/man/man3/EVP_CIPHER_type.3 | 1 + .../share/man/man3/EVP_CipherFinal.3 | 1 + .../share/man/man3/EVP_CipherFinal_ex.3 | 1 + .../share/man/man3/EVP_CipherInit.3 | 1 + .../share/man/man3/EVP_CipherInit_ex.3 | 1 + .../share/man/man3/EVP_CipherUpdate.3 | 1 + .../share/man/man3/EVP_DecodeBlock.3 | 1 + .../share/man/man3/EVP_DecodeFinal.3 | 1 + .../share/man/man3/EVP_DecodeInit.3 | 1 + .../share/man/man3/EVP_DecodeUpdate.3 | 1 + .../share/man/man3/EVP_DecryptFinal.3 | 1 + .../share/man/man3/EVP_DecryptFinal_ex.3 | 1 + .../share/man/man3/EVP_DecryptInit.3 | 1 + .../share/man/man3/EVP_DecryptInit_ex.3 | 1 + .../share/man/man3/EVP_DecryptUpdate.3 | 1 + rambus_sec_lib/share/man/man3/EVP_Digest.3 | 1 + .../share/man/man3/EVP_DigestFinal.3 | 1 + .../share/man/man3/EVP_DigestFinalXOF.3 | 1 + .../share/man/man3/EVP_DigestFinal_ex.3 | 1 + .../share/man/man3/EVP_DigestInit.3 | 493 ++ .../share/man/man3/EVP_DigestInit_ex.3 | 1 + .../share/man/man3/EVP_DigestSign.3 | 1 + .../share/man/man3/EVP_DigestSignFinal.3 | 1 + .../share/man/man3/EVP_DigestSignInit.3 | 279 + .../share/man/man3/EVP_DigestSignUpdate.3 | 1 + .../share/man/man3/EVP_DigestUpdate.3 | 1 + .../share/man/man3/EVP_DigestVerify.3 | 1 + .../share/man/man3/EVP_DigestVerifyFinal.3 | 1 + .../share/man/man3/EVP_DigestVerifyInit.3 | 239 + .../share/man/man3/EVP_DigestVerifyUpdate.3 | 1 + .../share/man/man3/EVP_ENCODE_CTX_copy.3 | 1 + .../share/man/man3/EVP_ENCODE_CTX_free.3 | 1 + .../share/man/man3/EVP_ENCODE_CTX_new.3 | 1 + .../share/man/man3/EVP_ENCODE_CTX_num.3 | 1 + .../share/man/man3/EVP_EncodeBlock.3 | 1 + .../share/man/man3/EVP_EncodeFinal.3 | 1 + .../share/man/man3/EVP_EncodeInit.3 | 286 + .../share/man/man3/EVP_EncodeUpdate.3 | 1 + .../share/man/man3/EVP_EncryptFinal.3 | 1 + .../share/man/man3/EVP_EncryptFinal_ex.3 | 1 + .../share/man/man3/EVP_EncryptInit.3 | 721 +++ .../share/man/man3/EVP_EncryptInit_ex.3 | 1 + .../share/man/man3/EVP_EncryptUpdate.3 | 1 + .../share/man/man3/EVP_MD_CTX_block_size.3 | 1 + .../share/man/man3/EVP_MD_CTX_clear_flags.3 | 1 + .../share/man/man3/EVP_MD_CTX_copy.3 | 1 + .../share/man/man3/EVP_MD_CTX_copy_ex.3 | 1 + .../share/man/man3/EVP_MD_CTX_ctrl.3 | 1 + .../share/man/man3/EVP_MD_CTX_free.3 | 1 + rambus_sec_lib/share/man/man3/EVP_MD_CTX_md.3 | 1 + .../share/man/man3/EVP_MD_CTX_md_data.3 | 1 + .../share/man/man3/EVP_MD_CTX_new.3 | 1 + .../share/man/man3/EVP_MD_CTX_pkey_ctx.3 | 1 + .../share/man/man3/EVP_MD_CTX_reset.3 | 1 + .../share/man/man3/EVP_MD_CTX_set_flags.3 | 1 + .../share/man/man3/EVP_MD_CTX_set_pkey_ctx.3 | 1 + .../share/man/man3/EVP_MD_CTX_set_update_fn.3 | 1 + .../share/man/man3/EVP_MD_CTX_size.3 | 1 + .../share/man/man3/EVP_MD_CTX_test_flags.3 | 1 + .../share/man/man3/EVP_MD_CTX_type.3 | 1 + .../share/man/man3/EVP_MD_CTX_update_fn.3 | 1 + .../share/man/man3/EVP_MD_block_size.3 | 1 + rambus_sec_lib/share/man/man3/EVP_MD_flags.3 | 1 + .../share/man/man3/EVP_MD_meth_dup.3 | 1 + .../share/man/man3/EVP_MD_meth_free.3 | 1 + .../man/man3/EVP_MD_meth_get_app_datasize.3 | 1 + .../share/man/man3/EVP_MD_meth_get_cleanup.3 | 1 + .../share/man/man3/EVP_MD_meth_get_copy.3 | 1 + .../share/man/man3/EVP_MD_meth_get_ctrl.3 | 1 + .../share/man/man3/EVP_MD_meth_get_final.3 | 1 + .../share/man/man3/EVP_MD_meth_get_flags.3 | 1 + .../share/man/man3/EVP_MD_meth_get_init.3 | 1 + .../man3/EVP_MD_meth_get_input_blocksize.3 | 1 + .../man/man3/EVP_MD_meth_get_result_size.3 | 1 + .../share/man/man3/EVP_MD_meth_get_update.3 | 1 + .../share/man/man3/EVP_MD_meth_new.3 | 297 + .../man/man3/EVP_MD_meth_set_app_datasize.3 | 1 + .../share/man/man3/EVP_MD_meth_set_cleanup.3 | 1 + .../share/man/man3/EVP_MD_meth_set_copy.3 | 1 + .../share/man/man3/EVP_MD_meth_set_ctrl.3 | 1 + .../share/man/man3/EVP_MD_meth_set_final.3 | 1 + .../share/man/man3/EVP_MD_meth_set_flags.3 | 1 + .../share/man/man3/EVP_MD_meth_set_init.3 | 1 + .../man3/EVP_MD_meth_set_input_blocksize.3 | 1 + .../man/man3/EVP_MD_meth_set_result_size.3 | 1 + .../share/man/man3/EVP_MD_meth_set_update.3 | 1 + .../share/man/man3/EVP_MD_pkey_type.3 | 1 + rambus_sec_lib/share/man/man3/EVP_MD_size.3 | 1 + rambus_sec_lib/share/man/man3/EVP_MD_type.3 | 1 + rambus_sec_lib/share/man/man3/EVP_OpenFinal.3 | 1 + rambus_sec_lib/share/man/man3/EVP_OpenInit.3 | 196 + .../share/man/man3/EVP_OpenUpdate.3 | 1 + .../share/man/man3/EVP_PKEY_ASN1_METHOD.3 | 549 ++ .../man/man3/EVP_PKEY_CTX_add1_hkdf_info.3 | 1 + .../man3/EVP_PKEY_CTX_add1_tls1_prf_seed.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_ctrl.3 | 534 ++ .../share/man/man3/EVP_PKEY_CTX_ctrl_str.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_ctrl_uint64.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_dup.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_free.3 | 1 + .../man/man3/EVP_PKEY_CTX_get0_dh_kdf_oid.3 | 1 + .../man/man3/EVP_PKEY_CTX_get0_dh_kdf_ukm.3 | 1 + .../man/man3/EVP_PKEY_CTX_get0_ecdh_kdf_ukm.3 | 1 + .../man3/EVP_PKEY_CTX_get0_rsa_oaep_label.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_get1_id.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_get1_id_len.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_app_data.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_get_cb.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_dh_kdf_md.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_dh_kdf_outlen.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_dh_kdf_type.3 | 1 + .../EVP_PKEY_CTX_get_ecdh_cofactor_mode.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_ecdh_kdf_md.3 | 1 + .../man3/EVP_PKEY_CTX_get_ecdh_kdf_outlen.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_ecdh_kdf_type.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_keygen_info.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_rsa_mgf1_md.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_rsa_oaep_md.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_rsa_padding.3 | 1 + .../man3/EVP_PKEY_CTX_get_rsa_pss_saltlen.3 | 1 + .../man/man3/EVP_PKEY_CTX_get_signature_md.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_hkdf_mode.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_md.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_new.3 | 188 + .../share/man/man3/EVP_PKEY_CTX_new_id.3 | 1 + .../man/man3/EVP_PKEY_CTX_set0_dh_kdf_oid.3 | 1 + .../man/man3/EVP_PKEY_CTX_set0_dh_kdf_ukm.3 | 1 + .../man/man3/EVP_PKEY_CTX_set0_ecdh_kdf_ukm.3 | 1 + .../man3/EVP_PKEY_CTX_set0_rsa_oaep_label.3 | 1 + .../man/man3/EVP_PKEY_CTX_set1_hkdf_key.3 | 1 + .../man/man3/EVP_PKEY_CTX_set1_hkdf_salt.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_set1_id.3 | 1 + .../man/man3/EVP_PKEY_CTX_set1_pbe_pass.3 | 179 + .../man/man3/EVP_PKEY_CTX_set1_scrypt_salt.3 | 1 + .../man3/EVP_PKEY_CTX_set1_tls1_prf_secret.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_app_data.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_set_cb.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_dh_kdf_md.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_dh_kdf_outlen.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_dh_kdf_type.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_set_dh_nid.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_set_dh_pad.3 | 1 + .../EVP_PKEY_CTX_set_dh_paramgen_generator.3 | 1 + .../EVP_PKEY_CTX_set_dh_paramgen_prime_len.3 | 1 + ...VP_PKEY_CTX_set_dh_paramgen_subprime_len.3 | 1 + .../man3/EVP_PKEY_CTX_set_dh_paramgen_type.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_dh_rfc5114.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_dhx_rfc5114.3 | 1 + .../man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3 | 1 + .../man3/EVP_PKEY_CTX_set_dsa_paramgen_md.3 | 1 + .../EVP_PKEY_CTX_set_dsa_paramgen_q_bits.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_ec_param_enc.3 | 1 + .../EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3 | 1 + .../EVP_PKEY_CTX_set_ecdh_cofactor_mode.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_ecdh_kdf_md.3 | 1 + .../man3/EVP_PKEY_CTX_set_ecdh_kdf_outlen.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_ecdh_kdf_type.3 | 1 + .../share/man/man3/EVP_PKEY_CTX_set_hkdf_md.3 | 284 + .../share/man/man3/EVP_PKEY_CTX_set_mac_key.3 | 1 + .../man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3 | 1 + .../man3/EVP_PKEY_CTX_set_rsa_keygen_primes.3 | 1 + .../man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_rsa_mgf1_md.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_rsa_oaep_md.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_rsa_padding.3 | 1 + .../man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.3 | 218 + .../EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md.3 | 1 + .../EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen.3 | 1 + .../man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_scrypt_N.3 | 207 + .../EVP_PKEY_CTX_set_scrypt_maxmem_bytes.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_scrypt_p.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_scrypt_r.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_signature_md.3 | 1 + .../man/man3/EVP_PKEY_CTX_set_tls1_prf_md.3 | 236 + .../share/man/man3/EVP_PKEY_METHOD.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_add0.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_add_alias.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_copy.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_find.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_find_str.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_free.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_get0.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_get0_info.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_get_count.3 | 203 + .../share/man/man3/EVP_PKEY_asn1_new.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_set_check.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_set_ctrl.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_set_free.3 | 1 + .../man/man3/EVP_PKEY_asn1_set_get_priv_key.3 | 1 + .../man/man3/EVP_PKEY_asn1_set_get_pub_key.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_set_item.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_set_param.3 | 1 + .../man/man3/EVP_PKEY_asn1_set_param_check.3 | 1 + .../man/man3/EVP_PKEY_asn1_set_private.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_set_public.3 | 1 + .../man/man3/EVP_PKEY_asn1_set_public_check.3 | 1 + .../man3/EVP_PKEY_asn1_set_security_bits.3 | 1 + .../man/man3/EVP_PKEY_asn1_set_set_priv_key.3 | 1 + .../man/man3/EVP_PKEY_asn1_set_set_pub_key.3 | 1 + .../share/man/man3/EVP_PKEY_asn1_set_siginf.3 | 1 + .../share/man/man3/EVP_PKEY_assign_DH.3 | 1 + .../share/man/man3/EVP_PKEY_assign_DSA.3 | 1 + .../share/man/man3/EVP_PKEY_assign_EC_KEY.3 | 1 + .../share/man/man3/EVP_PKEY_assign_POLY1305.3 | 1 + .../share/man/man3/EVP_PKEY_assign_RSA.3 | 1 + .../share/man/man3/EVP_PKEY_assign_SIPHASH.3 | 1 + .../share/man/man3/EVP_PKEY_base_id.3 | 1 + rambus_sec_lib/share/man/man3/EVP_PKEY_bits.3 | 1 + .../share/man/man3/EVP_PKEY_check.3 | 1 + rambus_sec_lib/share/man/man3/EVP_PKEY_cmp.3 | 199 + .../share/man/man3/EVP_PKEY_cmp_parameters.3 | 1 + .../share/man/man3/EVP_PKEY_copy_parameters.3 | 1 + .../share/man/man3/EVP_PKEY_decrypt.3 | 232 + .../share/man/man3/EVP_PKEY_decrypt_init.3 | 1 + .../share/man/man3/EVP_PKEY_derive.3 | 230 + .../share/man/man3/EVP_PKEY_derive_init.3 | 1 + .../share/man/man3/EVP_PKEY_derive_set_peer.3 | 1 + .../share/man/man3/EVP_PKEY_encrypt.3 | 237 + .../share/man/man3/EVP_PKEY_encrypt_init.3 | 1 + rambus_sec_lib/share/man/man3/EVP_PKEY_free.3 | 1 + .../share/man/man3/EVP_PKEY_gen_cb.3 | 1 + .../share/man/man3/EVP_PKEY_get0_DH.3 | 1 + .../share/man/man3/EVP_PKEY_get0_DSA.3 | 1 + .../share/man/man3/EVP_PKEY_get0_EC_KEY.3 | 1 + .../share/man/man3/EVP_PKEY_get0_RSA.3 | 1 + .../share/man/man3/EVP_PKEY_get0_asn1.3 | 1 + .../share/man/man3/EVP_PKEY_get0_engine.3 | 1 + .../share/man/man3/EVP_PKEY_get0_hmac.3 | 1 + .../share/man/man3/EVP_PKEY_get0_poly1305.3 | 1 + .../share/man/man3/EVP_PKEY_get0_siphash.3 | 1 + .../share/man/man3/EVP_PKEY_get1_DH.3 | 1 + .../share/man/man3/EVP_PKEY_get1_DSA.3 | 1 + .../share/man/man3/EVP_PKEY_get1_EC_KEY.3 | 1 + .../share/man/man3/EVP_PKEY_get1_RSA.3 | 1 + .../man3/EVP_PKEY_get_default_digest_nid.3 | 177 + .../man/man3/EVP_PKEY_get_raw_private_key.3 | 1 + .../man/man3/EVP_PKEY_get_raw_public_key.3 | 1 + rambus_sec_lib/share/man/man3/EVP_PKEY_id.3 | 1 + .../share/man/man3/EVP_PKEY_keygen.3 | 331 ++ .../share/man/man3/EVP_PKEY_keygen_init.3 | 1 + .../share/man/man3/EVP_PKEY_meth_add0.3 | 1 + .../share/man/man3/EVP_PKEY_meth_copy.3 | 1 + .../share/man/man3/EVP_PKEY_meth_find.3 | 1 + .../share/man/man3/EVP_PKEY_meth_free.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get0.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get0_info.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get_check.3 | 1 + .../man/man3/EVP_PKEY_meth_get_cleanup.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get_copy.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get_count.3 | 178 + .../share/man/man3/EVP_PKEY_meth_get_ctrl.3 | 1 + .../man/man3/EVP_PKEY_meth_get_decrypt.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get_derive.3 | 1 + .../man3/EVP_PKEY_meth_get_digest_custom.3 | 1 + .../man/man3/EVP_PKEY_meth_get_digestsign.3 | 1 + .../man/man3/EVP_PKEY_meth_get_digestverify.3 | 1 + .../man/man3/EVP_PKEY_meth_get_encrypt.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get_init.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get_keygen.3 | 1 + .../man/man3/EVP_PKEY_meth_get_param_check.3 | 1 + .../man/man3/EVP_PKEY_meth_get_paramgen.3 | 1 + .../man/man3/EVP_PKEY_meth_get_public_check.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get_sign.3 | 1 + .../man/man3/EVP_PKEY_meth_get_signctx.3 | 1 + .../share/man/man3/EVP_PKEY_meth_get_verify.3 | 1 + .../man3/EVP_PKEY_meth_get_verify_recover.3 | 1 + .../man/man3/EVP_PKEY_meth_get_verifyctx.3 | 1 + .../share/man/man3/EVP_PKEY_meth_new.3 | 590 ++ .../share/man/man3/EVP_PKEY_meth_remove.3 | 1 + .../share/man/man3/EVP_PKEY_meth_set_check.3 | 1 + .../man/man3/EVP_PKEY_meth_set_cleanup.3 | 1 + .../share/man/man3/EVP_PKEY_meth_set_copy.3 | 1 + .../share/man/man3/EVP_PKEY_meth_set_ctrl.3 | 1 + .../man/man3/EVP_PKEY_meth_set_decrypt.3 | 1 + .../share/man/man3/EVP_PKEY_meth_set_derive.3 | 1 + .../man3/EVP_PKEY_meth_set_digest_custom.3 | 1 + .../man/man3/EVP_PKEY_meth_set_digestsign.3 | 1 + .../man/man3/EVP_PKEY_meth_set_digestverify.3 | 1 + .../man/man3/EVP_PKEY_meth_set_encrypt.3 | 1 + .../share/man/man3/EVP_PKEY_meth_set_init.3 | 1 + .../share/man/man3/EVP_PKEY_meth_set_keygen.3 | 1 + .../man/man3/EVP_PKEY_meth_set_param_check.3 | 1 + .../man/man3/EVP_PKEY_meth_set_paramgen.3 | 1 + .../man/man3/EVP_PKEY_meth_set_public_check.3 | 1 + .../share/man/man3/EVP_PKEY_meth_set_sign.3 | 1 + .../man/man3/EVP_PKEY_meth_set_signctx.3 | 1 + .../share/man/man3/EVP_PKEY_meth_set_verify.3 | 1 + .../man3/EVP_PKEY_meth_set_verify_recover.3 | 1 + .../man/man3/EVP_PKEY_meth_set_verifyctx.3 | 1 + .../man/man3/EVP_PKEY_missing_parameters.3 | 1 + rambus_sec_lib/share/man/man3/EVP_PKEY_new.3 | 257 + .../share/man/man3/EVP_PKEY_new_CMAC_key.3 | 1 + .../share/man/man3/EVP_PKEY_new_mac_key.3 | 1 + .../man/man3/EVP_PKEY_new_raw_private_key.3 | 1 + .../man/man3/EVP_PKEY_new_raw_public_key.3 | 1 + .../share/man/man3/EVP_PKEY_param_check.3 | 1 + .../share/man/man3/EVP_PKEY_paramgen.3 | 1 + .../share/man/man3/EVP_PKEY_paramgen_init.3 | 1 + .../share/man/man3/EVP_PKEY_print_params.3 | 1 + .../share/man/man3/EVP_PKEY_print_private.3 | 187 + .../share/man/man3/EVP_PKEY_print_public.3 | 1 + .../share/man/man3/EVP_PKEY_public_check.3 | 1 + .../share/man/man3/EVP_PKEY_security_bits.3 | 1 + .../share/man/man3/EVP_PKEY_set1_DH.3 | 1 + .../share/man/man3/EVP_PKEY_set1_DSA.3 | 1 + .../share/man/man3/EVP_PKEY_set1_EC_KEY.3 | 1 + .../share/man/man3/EVP_PKEY_set1_RSA.3 | 278 + .../share/man/man3/EVP_PKEY_set1_engine.3 | 1 + .../share/man/man3/EVP_PKEY_set_alias_type.3 | 1 + rambus_sec_lib/share/man/man3/EVP_PKEY_sign.3 | 241 + .../share/man/man3/EVP_PKEY_sign_init.3 | 1 + rambus_sec_lib/share/man/man3/EVP_PKEY_size.3 | 206 + rambus_sec_lib/share/man/man3/EVP_PKEY_type.3 | 1 + .../share/man/man3/EVP_PKEY_up_ref.3 | 1 + .../share/man/man3/EVP_PKEY_verify.3 | 230 + .../share/man/man3/EVP_PKEY_verify_init.3 | 1 + .../share/man/man3/EVP_PKEY_verify_recover.3 | 241 + .../man/man3/EVP_PKEY_verify_recover_init.3 | 1 + rambus_sec_lib/share/man/man3/EVP_SealFinal.3 | 1 + rambus_sec_lib/share/man/man3/EVP_SealInit.3 | 219 + .../share/man/man3/EVP_SealUpdate.3 | 1 + rambus_sec_lib/share/man/man3/EVP_SignFinal.3 | 1 + rambus_sec_lib/share/man/man3/EVP_SignInit.3 | 224 + .../share/man/man3/EVP_SignInit_ex.3 | 1 + .../share/man/man3/EVP_SignUpdate.3 | 1 + .../share/man/man3/EVP_VerifyFinal.3 | 1 + .../share/man/man3/EVP_VerifyInit.3 | 219 + .../share/man/man3/EVP_VerifyInit_ex.3 | 1 + .../share/man/man3/EVP_VerifyUpdate.3 | 1 + rambus_sec_lib/share/man/man3/EVP_aes.3 | 219 + .../share/man/man3/EVP_aes_128_cbc.3 | 1 + .../man/man3/EVP_aes_128_cbc_hmac_sha1.3 | 1 + .../man/man3/EVP_aes_128_cbc_hmac_sha256.3 | 1 + .../share/man/man3/EVP_aes_128_ccm.3 | 1 + .../share/man/man3/EVP_aes_128_cfb.3 | 1 + .../share/man/man3/EVP_aes_128_cfb1.3 | 1 + .../share/man/man3/EVP_aes_128_cfb128.3 | 1 + .../share/man/man3/EVP_aes_128_cfb8.3 | 1 + .../share/man/man3/EVP_aes_128_ctr.3 | 1 + .../share/man/man3/EVP_aes_128_ecb.3 | 1 + .../share/man/man3/EVP_aes_128_gcm.3 | 1 + .../share/man/man3/EVP_aes_128_ocb.3 | 1 + .../share/man/man3/EVP_aes_128_ofb.3 | 1 + .../share/man/man3/EVP_aes_128_wrap.3 | 1 + .../share/man/man3/EVP_aes_128_wrap_pad.3 | 1 + .../share/man/man3/EVP_aes_128_xts.3 | 1 + .../share/man/man3/EVP_aes_192_cbc.3 | 1 + .../share/man/man3/EVP_aes_192_ccm.3 | 1 + .../share/man/man3/EVP_aes_192_cfb.3 | 1 + .../share/man/man3/EVP_aes_192_cfb1.3 | 1 + .../share/man/man3/EVP_aes_192_cfb128.3 | 1 + .../share/man/man3/EVP_aes_192_cfb8.3 | 1 + .../share/man/man3/EVP_aes_192_ctr.3 | 1 + .../share/man/man3/EVP_aes_192_ecb.3 | 1 + .../share/man/man3/EVP_aes_192_gcm.3 | 1 + .../share/man/man3/EVP_aes_192_ocb.3 | 1 + .../share/man/man3/EVP_aes_192_ofb.3 | 1 + .../share/man/man3/EVP_aes_192_wrap.3 | 1 + .../share/man/man3/EVP_aes_192_wrap_pad.3 | 1 + .../share/man/man3/EVP_aes_256_cbc.3 | 1 + .../man/man3/EVP_aes_256_cbc_hmac_sha1.3 | 1 + .../man/man3/EVP_aes_256_cbc_hmac_sha256.3 | 1 + .../share/man/man3/EVP_aes_256_ccm.3 | 1 + .../share/man/man3/EVP_aes_256_cfb.3 | 1 + .../share/man/man3/EVP_aes_256_cfb1.3 | 1 + .../share/man/man3/EVP_aes_256_cfb128.3 | 1 + .../share/man/man3/EVP_aes_256_cfb8.3 | 1 + .../share/man/man3/EVP_aes_256_ctr.3 | 1 + .../share/man/man3/EVP_aes_256_ecb.3 | 1 + .../share/man/man3/EVP_aes_256_gcm.3 | 1 + .../share/man/man3/EVP_aes_256_ocb.3 | 1 + .../share/man/man3/EVP_aes_256_ofb.3 | 1 + .../share/man/man3/EVP_aes_256_wrap.3 | 1 + .../share/man/man3/EVP_aes_256_wrap_pad.3 | 1 + .../share/man/man3/EVP_aes_256_xts.3 | 1 + rambus_sec_lib/share/man/man3/EVP_aria.3 | 178 + .../share/man/man3/EVP_aria_128_cbc.3 | 1 + .../share/man/man3/EVP_aria_128_ccm.3 | 1 + .../share/man/man3/EVP_aria_128_cfb.3 | 1 + .../share/man/man3/EVP_aria_128_cfb1.3 | 1 + .../share/man/man3/EVP_aria_128_cfb128.3 | 1 + .../share/man/man3/EVP_aria_128_cfb8.3 | 1 + .../share/man/man3/EVP_aria_128_ctr.3 | 1 + .../share/man/man3/EVP_aria_128_ecb.3 | 1 + .../share/man/man3/EVP_aria_128_gcm.3 | 1 + .../share/man/man3/EVP_aria_128_ofb.3 | 1 + .../share/man/man3/EVP_aria_192_cbc.3 | 1 + .../share/man/man3/EVP_aria_192_ccm.3 | 1 + .../share/man/man3/EVP_aria_192_cfb.3 | 1 + .../share/man/man3/EVP_aria_192_cfb1.3 | 1 + .../share/man/man3/EVP_aria_192_cfb128.3 | 1 + .../share/man/man3/EVP_aria_192_cfb8.3 | 1 + .../share/man/man3/EVP_aria_192_ctr.3 | 1 + .../share/man/man3/EVP_aria_192_ecb.3 | 1 + .../share/man/man3/EVP_aria_192_gcm.3 | 1 + .../share/man/man3/EVP_aria_192_ofb.3 | 1 + .../share/man/man3/EVP_aria_256_cbc.3 | 1 + .../share/man/man3/EVP_aria_256_ccm.3 | 1 + .../share/man/man3/EVP_aria_256_cfb.3 | 1 + .../share/man/man3/EVP_aria_256_cfb1.3 | 1 + .../share/man/man3/EVP_aria_256_cfb128.3 | 1 + .../share/man/man3/EVP_aria_256_cfb8.3 | 1 + .../share/man/man3/EVP_aria_256_ctr.3 | 1 + .../share/man/man3/EVP_aria_256_ecb.3 | 1 + .../share/man/man3/EVP_aria_256_gcm.3 | 1 + .../share/man/man3/EVP_aria_256_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_bf_cbc.3 | 175 + rambus_sec_lib/share/man/man3/EVP_bf_cfb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_bf_cfb64.3 | 1 + rambus_sec_lib/share/man/man3/EVP_bf_ecb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_bf_ofb.3 | 1 + .../share/man/man3/EVP_blake2b512.3 | 182 + .../share/man/man3/EVP_blake2s256.3 | 1 + rambus_sec_lib/share/man/man3/EVP_camellia.3 | 173 + .../share/man/man3/EVP_camellia_128_cbc.3 | 1 + .../share/man/man3/EVP_camellia_128_cfb.3 | 1 + .../share/man/man3/EVP_camellia_128_cfb1.3 | 1 + .../share/man/man3/EVP_camellia_128_cfb128.3 | 1 + .../share/man/man3/EVP_camellia_128_cfb8.3 | 1 + .../share/man/man3/EVP_camellia_128_ctr.3 | 1 + .../share/man/man3/EVP_camellia_128_ecb.3 | 1 + .../share/man/man3/EVP_camellia_128_ofb.3 | 1 + .../share/man/man3/EVP_camellia_192_cbc.3 | 1 + .../share/man/man3/EVP_camellia_192_cfb.3 | 1 + .../share/man/man3/EVP_camellia_192_cfb1.3 | 1 + .../share/man/man3/EVP_camellia_192_cfb128.3 | 1 + .../share/man/man3/EVP_camellia_192_cfb8.3 | 1 + .../share/man/man3/EVP_camellia_192_ctr.3 | 1 + .../share/man/man3/EVP_camellia_192_ecb.3 | 1 + .../share/man/man3/EVP_camellia_192_ofb.3 | 1 + .../share/man/man3/EVP_camellia_256_cbc.3 | 1 + .../share/man/man3/EVP_camellia_256_cfb.3 | 1 + .../share/man/man3/EVP_camellia_256_cfb1.3 | 1 + .../share/man/man3/EVP_camellia_256_cfb128.3 | 1 + .../share/man/man3/EVP_camellia_256_cfb8.3 | 1 + .../share/man/man3/EVP_camellia_256_ctr.3 | 1 + .../share/man/man3/EVP_camellia_256_ecb.3 | 1 + .../share/man/man3/EVP_camellia_256_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_cast5_cbc.3 | 175 + rambus_sec_lib/share/man/man3/EVP_cast5_cfb.3 | 1 + .../share/man/man3/EVP_cast5_cfb64.3 | 1 + rambus_sec_lib/share/man/man3/EVP_cast5_ecb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_cast5_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_chacha20.3 | 184 + .../share/man/man3/EVP_chacha20_poly1305.3 | 1 + rambus_sec_lib/share/man/man3/EVP_cleanup.3 | 1 + rambus_sec_lib/share/man/man3/EVP_des.3 | 183 + rambus_sec_lib/share/man/man3/EVP_des_cbc.3 | 1 + rambus_sec_lib/share/man/man3/EVP_des_cfb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_des_cfb1.3 | 1 + rambus_sec_lib/share/man/man3/EVP_des_cfb64.3 | 1 + rambus_sec_lib/share/man/man3/EVP_des_cfb8.3 | 1 + rambus_sec_lib/share/man/man3/EVP_des_ecb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_des_ede.3 | 1 + rambus_sec_lib/share/man/man3/EVP_des_ede3.3 | 1 + .../share/man/man3/EVP_des_ede3_cbc.3 | 1 + .../share/man/man3/EVP_des_ede3_cfb.3 | 1 + .../share/man/man3/EVP_des_ede3_cfb1.3 | 1 + .../share/man/man3/EVP_des_ede3_cfb64.3 | 1 + .../share/man/man3/EVP_des_ede3_cfb8.3 | 1 + .../share/man/man3/EVP_des_ede3_ecb.3 | 1 + .../share/man/man3/EVP_des_ede3_ofb.3 | 1 + .../share/man/man3/EVP_des_ede3_wrap.3 | 1 + .../share/man/man3/EVP_des_ede_cbc.3 | 1 + .../share/man/man3/EVP_des_ede_cfb.3 | 1 + .../share/man/man3/EVP_des_ede_cfb64.3 | 1 + .../share/man/man3/EVP_des_ede_ecb.3 | 1 + .../share/man/man3/EVP_des_ede_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_des_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_desx_cbc.3 | 171 + rambus_sec_lib/share/man/man3/EVP_enc_null.3 | 1 + .../share/man/man3/EVP_get_cipherbyname.3 | 1 + .../share/man/man3/EVP_get_cipherbynid.3 | 1 + .../share/man/man3/EVP_get_cipherbyobj.3 | 1 + .../share/man/man3/EVP_get_digestbyname.3 | 1 + .../share/man/man3/EVP_get_digestbynid.3 | 1 + .../share/man/man3/EVP_get_digestbyobj.3 | 1 + rambus_sec_lib/share/man/man3/EVP_idea_cbc.3 | 173 + rambus_sec_lib/share/man/man3/EVP_idea_cfb.3 | 1 + .../share/man/man3/EVP_idea_cfb64.3 | 1 + rambus_sec_lib/share/man/man3/EVP_idea_ecb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_idea_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_md2.3 | 172 + rambus_sec_lib/share/man/man3/EVP_md4.3 | 172 + rambus_sec_lib/share/man/man3/EVP_md5.3 | 182 + rambus_sec_lib/share/man/man3/EVP_md5_sha1.3 | 1 + rambus_sec_lib/share/man/man3/EVP_md_null.3 | 1 + rambus_sec_lib/share/man/man3/EVP_mdc2.3 | 173 + .../share/man/man3/EVP_rc2_40_cbc.3 | 1 + .../share/man/man3/EVP_rc2_64_cbc.3 | 1 + rambus_sec_lib/share/man/man3/EVP_rc2_cbc.3 | 185 + rambus_sec_lib/share/man/man3/EVP_rc2_cfb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_rc2_cfb64.3 | 1 + rambus_sec_lib/share/man/man3/EVP_rc2_ecb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_rc2_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_rc4.3 | 185 + rambus_sec_lib/share/man/man3/EVP_rc4_40.3 | 1 + .../share/man/man3/EVP_rc4_hmac_md5.3 | 1 + .../share/man/man3/EVP_rc5_32_12_16_cbc.3 | 192 + .../share/man/man3/EVP_rc5_32_12_16_cfb.3 | 1 + .../share/man/man3/EVP_rc5_32_12_16_cfb64.3 | 1 + .../share/man/man3/EVP_rc5_32_12_16_ecb.3 | 1 + .../share/man/man3/EVP_rc5_32_12_16_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_ripemd160.3 | 172 + rambus_sec_lib/share/man/man3/EVP_seed_cbc.3 | 175 + rambus_sec_lib/share/man/man3/EVP_seed_cfb.3 | 1 + .../share/man/man3/EVP_seed_cfb128.3 | 1 + rambus_sec_lib/share/man/man3/EVP_seed_ecb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_seed_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sha1.3 | 173 + rambus_sec_lib/share/man/man3/EVP_sha224.3 | 183 + rambus_sec_lib/share/man/man3/EVP_sha256.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sha384.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sha3_224.3 | 188 + rambus_sec_lib/share/man/man3/EVP_sha3_256.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sha3_384.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sha3_512.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sha512.3 | 1 + .../share/man/man3/EVP_sha512_224.3 | 1 + .../share/man/man3/EVP_sha512_256.3 | 1 + rambus_sec_lib/share/man/man3/EVP_shake128.3 | 1 + rambus_sec_lib/share/man/man3/EVP_shake256.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sm3.3 | 173 + rambus_sec_lib/share/man/man3/EVP_sm4_cbc.3 | 178 + rambus_sec_lib/share/man/man3/EVP_sm4_cfb.3 | 1 + .../share/man/man3/EVP_sm4_cfb128.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sm4_ctr.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sm4_ecb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_sm4_ofb.3 | 1 + rambus_sec_lib/share/man/man3/EVP_whirlpool.3 | 173 + .../share/man/man3/EXTENDED_KEY_USAGE_free.3 | 1 + .../share/man/man3/EXTENDED_KEY_USAGE_new.3 | 1 + .../share/man/man3/GENERAL_NAMES_free.3 | 1 + .../share/man/man3/GENERAL_NAMES_new.3 | 1 + .../share/man/man3/GENERAL_NAME_dup.3 | 1 + .../share/man/man3/GENERAL_NAME_free.3 | 1 + .../share/man/man3/GENERAL_NAME_new.3 | 1 + .../share/man/man3/GENERAL_SUBTREE_free.3 | 1 + .../share/man/man3/GENERAL_SUBTREE_new.3 | 1 + .../share/man/man3/GEN_SESSION_CB.3 | 1 + rambus_sec_lib/share/man/man3/HMAC.3 | 275 + rambus_sec_lib/share/man/man3/HMAC_CTX_copy.3 | 1 + rambus_sec_lib/share/man/man3/HMAC_CTX_free.3 | 1 + .../share/man/man3/HMAC_CTX_get_md.3 | 1 + rambus_sec_lib/share/man/man3/HMAC_CTX_new.3 | 1 + .../share/man/man3/HMAC_CTX_reset.3 | 1 + .../share/man/man3/HMAC_CTX_set_flags.3 | 1 + rambus_sec_lib/share/man/man3/HMAC_Final.3 | 1 + rambus_sec_lib/share/man/man3/HMAC_Init.3 | 1 + rambus_sec_lib/share/man/man3/HMAC_Init_ex.3 | 1 + rambus_sec_lib/share/man/man3/HMAC_Update.3 | 1 + rambus_sec_lib/share/man/man3/HMAC_size.3 | 1 + .../share/man/man3/IMPLEMENT_ASN1_FUNCTIONS.3 | 1 + .../share/man/man3/IMPLEMENT_LHASH_COMP_FN.3 | 1 + .../share/man/man3/IMPLEMENT_LHASH_HASH_FN.3 | 1 + .../share/man/man3/IPAddressChoice_free.3 | 1 + .../share/man/man3/IPAddressChoice_new.3 | 1 + .../share/man/man3/IPAddressFamily_free.3 | 1 + .../share/man/man3/IPAddressFamily_new.3 | 1 + .../share/man/man3/IPAddressOrRange_free.3 | 1 + .../share/man/man3/IPAddressOrRange_new.3 | 1 + .../share/man/man3/IPAddressRange_free.3 | 1 + .../share/man/man3/IPAddressRange_new.3 | 1 + .../share/man/man3/ISSUING_DIST_POINT_free.3 | 1 + .../share/man/man3/ISSUING_DIST_POINT_new.3 | 1 + rambus_sec_lib/share/man/man3/LHASH.3 | 1 + .../share/man/man3/LHASH_DOALL_ARG_FN_TYPE.3 | 1 + rambus_sec_lib/share/man/man3/MD2.3 | 1 + rambus_sec_lib/share/man/man3/MD2_Final.3 | 1 + rambus_sec_lib/share/man/man3/MD2_Init.3 | 1 + rambus_sec_lib/share/man/man3/MD2_Update.3 | 1 + rambus_sec_lib/share/man/man3/MD4.3 | 1 + rambus_sec_lib/share/man/man3/MD4_Final.3 | 1 + rambus_sec_lib/share/man/man3/MD4_Init.3 | 1 + rambus_sec_lib/share/man/man3/MD4_Update.3 | 1 + rambus_sec_lib/share/man/man3/MD5.3 | 220 + rambus_sec_lib/share/man/man3/MD5_Final.3 | 1 + rambus_sec_lib/share/man/man3/MD5_Init.3 | 1 + rambus_sec_lib/share/man/man3/MD5_Update.3 | 1 + rambus_sec_lib/share/man/man3/MDC2.3 | 1 + rambus_sec_lib/share/man/man3/MDC2_Final.3 | 1 + rambus_sec_lib/share/man/man3/MDC2_Init.3 | 195 + rambus_sec_lib/share/man/man3/MDC2_Update.3 | 1 + .../share/man/man3/NAME_CONSTRAINTS_free.3 | 1 + .../share/man/man3/NAME_CONSTRAINTS_new.3 | 1 + .../share/man/man3/NAMING_AUTHORITY.3 | 1 + .../share/man/man3/NAMING_AUTHORITY_free.3 | 1 + .../man3/NAMING_AUTHORITY_get0_authorityId.3 | 1 + .../NAMING_AUTHORITY_get0_authorityText.3 | 1 + .../man3/NAMING_AUTHORITY_get0_authorityURL.3 | 1 + .../share/man/man3/NAMING_AUTHORITY_new.3 | 1 + .../man3/NAMING_AUTHORITY_set0_authorityId.3 | 1 + .../NAMING_AUTHORITY_set0_authorityText.3 | 1 + .../man3/NAMING_AUTHORITY_set0_authorityURL.3 | 1 + .../man/man3/NETSCAPE_CERT_SEQUENCE_free.3 | 1 + .../man/man3/NETSCAPE_CERT_SEQUENCE_new.3 | 1 + .../share/man/man3/NETSCAPE_SPKAC_free.3 | 1 + .../share/man/man3/NETSCAPE_SPKAC_new.3 | 1 + .../share/man/man3/NETSCAPE_SPKI_free.3 | 1 + .../share/man/man3/NETSCAPE_SPKI_new.3 | 1 + .../share/man/man3/NOTICEREF_free.3 | 1 + rambus_sec_lib/share/man/man3/NOTICEREF_new.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_cleanup.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_cmp.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_create.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_dup.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_get0_data.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_length.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_ln2nid.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_nid2ln.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_nid2obj.3 | 323 + rambus_sec_lib/share/man/man3/OBJ_nid2sn.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_obj2nid.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_obj2txt.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_sn2nid.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_txt2nid.3 | 1 + rambus_sec_lib/share/man/man3/OBJ_txt2obj.3 | 1 + .../share/man/man3/OCSP_BASICRESP_free.3 | 1 + .../share/man/man3/OCSP_BASICRESP_new.3 | 1 + .../share/man/man3/OCSP_CERTID_dup.3 | 1 + .../share/man/man3/OCSP_CERTID_free.3 | 1 + .../share/man/man3/OCSP_CERTID_new.3 | 1 + .../share/man/man3/OCSP_CERTSTATUS_free.3 | 1 + .../share/man/man3/OCSP_CERTSTATUS_new.3 | 1 + .../share/man/man3/OCSP_CRLID_free.3 | 1 + .../share/man/man3/OCSP_CRLID_new.3 | 1 + .../share/man/man3/OCSP_ONEREQ_free.3 | 1 + .../share/man/man3/OCSP_ONEREQ_new.3 | 1 + .../share/man/man3/OCSP_REQINFO_free.3 | 1 + .../share/man/man3/OCSP_REQINFO_new.3 | 1 + .../share/man/man3/OCSP_REQUEST_free.3 | 1 + .../share/man/man3/OCSP_REQUEST_new.3 | 244 + .../share/man/man3/OCSP_REQ_CTX_add1_header.3 | 1 + .../share/man/man3/OCSP_REQ_CTX_free.3 | 1 + .../share/man/man3/OCSP_REQ_CTX_i2d.3 | 1 + .../share/man/man3/OCSP_REQ_CTX_set1_req.3 | 1 + .../share/man/man3/OCSP_RESPBYTES_free.3 | 1 + .../share/man/man3/OCSP_RESPBYTES_new.3 | 1 + .../share/man/man3/OCSP_RESPDATA_free.3 | 1 + .../share/man/man3/OCSP_RESPDATA_new.3 | 1 + .../share/man/man3/OCSP_RESPID_free.3 | 1 + .../share/man/man3/OCSP_RESPID_match.3 | 1 + .../share/man/man3/OCSP_RESPID_new.3 | 1 + .../share/man/man3/OCSP_RESPID_set_by_key.3 | 1 + .../share/man/man3/OCSP_RESPID_set_by_name.3 | 1 + .../share/man/man3/OCSP_RESPONSE_free.3 | 1 + .../share/man/man3/OCSP_RESPONSE_new.3 | 1 + .../share/man/man3/OCSP_REVOKEDINFO_free.3 | 1 + .../share/man/man3/OCSP_REVOKEDINFO_new.3 | 1 + .../share/man/man3/OCSP_SERVICELOC_free.3 | 1 + .../share/man/man3/OCSP_SERVICELOC_new.3 | 1 + .../share/man/man3/OCSP_SIGNATURE_free.3 | 1 + .../share/man/man3/OCSP_SIGNATURE_new.3 | 1 + .../share/man/man3/OCSP_SINGLERESP_free.3 | 1 + .../share/man/man3/OCSP_SINGLERESP_new.3 | 1 + .../share/man/man3/OCSP_basic_add1_nonce.3 | 1 + .../share/man/man3/OCSP_basic_sign.3 | 1 + .../share/man/man3/OCSP_basic_sign_ctx.3 | 1 + .../share/man/man3/OCSP_basic_verify.3 | 1 + .../share/man/man3/OCSP_cert_id_new.3 | 1 + .../share/man/man3/OCSP_cert_to_id.3 | 214 + .../share/man/man3/OCSP_check_nonce.3 | 1 + .../share/man/man3/OCSP_check_validity.3 | 1 + .../share/man/man3/OCSP_copy_nonce.3 | 1 + rambus_sec_lib/share/man/man3/OCSP_id_cmp.3 | 1 + .../share/man/man3/OCSP_id_get0_info.3 | 1 + .../share/man/man3/OCSP_id_issuer_cmp.3 | 1 + .../share/man/man3/OCSP_request_add0_id.3 | 1 + .../share/man/man3/OCSP_request_add1_cert.3 | 1 + .../share/man/man3/OCSP_request_add1_nonce.3 | 211 + .../man/man3/OCSP_request_onereq_count.3 | 1 + .../share/man/man3/OCSP_request_onereq_get0.3 | 1 + .../share/man/man3/OCSP_request_sign.3 | 1 + .../share/man/man3/OCSP_resp_count.3 | 1 + .../share/man/man3/OCSP_resp_find.3 | 1 + .../share/man/man3/OCSP_resp_find_status.3 | 315 + .../share/man/man3/OCSP_resp_get0.3 | 1 + .../share/man/man3/OCSP_resp_get0_certs.3 | 1 + .../share/man/man3/OCSP_resp_get0_id.3 | 1 + .../man/man3/OCSP_resp_get0_produced_at.3 | 1 + .../share/man/man3/OCSP_resp_get0_respdata.3 | 1 + .../share/man/man3/OCSP_resp_get0_signature.3 | 1 + .../share/man/man3/OCSP_resp_get0_signer.3 | 1 + .../man/man3/OCSP_resp_get0_tbs_sigalg.3 | 1 + .../share/man/man3/OCSP_resp_get1_id.3 | 1 + .../share/man/man3/OCSP_response_create.3 | 1 + .../share/man/man3/OCSP_response_get1_basic.3 | 1 + .../share/man/man3/OCSP_response_status.3 | 240 + .../share/man/man3/OCSP_sendreq_bio.3 | 1 + .../share/man/man3/OCSP_sendreq_nbio.3 | 1 + .../share/man/man3/OCSP_sendreq_new.3 | 262 + .../man/man3/OCSP_set_max_response_length.3 | 1 + .../share/man/man3/OCSP_single_get0_status.3 | 1 + .../share/man/man3/OPENSSL_Applink.3 | 164 + .../share/man/man3/OPENSSL_INIT_free.3 | 1 + .../share/man/man3/OPENSSL_INIT_new.3 | 1 + .../man3/OPENSSL_INIT_set_config_appname.3 | 1 + .../man3/OPENSSL_INIT_set_config_file_flags.3 | 1 + .../man3/OPENSSL_INIT_set_config_filename.3 | 1 + .../share/man/man3/OPENSSL_LH_COMPFUNC.3 | 365 ++ .../share/man/man3/OPENSSL_LH_DOALL_FUNC.3 | 1 + .../share/man/man3/OPENSSL_LH_HASHFUNC.3 | 1 + .../share/man/man3/OPENSSL_LH_node_stats.3 | 1 + .../man/man3/OPENSSL_LH_node_stats_bio.3 | 1 + .../man/man3/OPENSSL_LH_node_usage_stats.3 | 1 + .../man3/OPENSSL_LH_node_usage_stats_bio.3 | 1 + .../share/man/man3/OPENSSL_LH_stats.3 | 193 + .../share/man/man3/OPENSSL_LH_stats_bio.3 | 1 + .../share/man/man3/OPENSSL_MALLOC_FAILURES.3 | 1 + .../share/man/man3/OPENSSL_MALLOC_FD.3 | 1 + .../share/man/man3/OPENSSL_VERSION_NUMBER.3 | 238 + .../share/man/man3/OPENSSL_VERSION_TEXT.3 | 1 + .../share/man/man3/OPENSSL_atexit.3 | 1 + .../share/man/man3/OPENSSL_buf2hexstr.3 | 1 + .../share/man/man3/OPENSSL_cipher_name.3 | 1 + .../share/man/man3/OPENSSL_cleanse.3 | 1 + .../share/man/man3/OPENSSL_cleanup.3 | 1 + .../share/man/man3/OPENSSL_clear_free.3 | 1 + .../share/man/man3/OPENSSL_clear_realloc.3 | 1 + .../share/man/man3/OPENSSL_config.3 | 206 + .../share/man/man3/OPENSSL_fork_child.3 | 1 + .../share/man/man3/OPENSSL_fork_parent.3 | 1 + .../share/man/man3/OPENSSL_fork_prepare.3 | 187 + rambus_sec_lib/share/man/man3/OPENSSL_free.3 | 1 + .../share/man/man3/OPENSSL_hexchar2int.3 | 1 + .../share/man/man3/OPENSSL_hexstr2buf.3 | 1 + .../share/man/man3/OPENSSL_ia32cap.3 | 291 + .../share/man/man3/OPENSSL_init_crypto.3 | 375 ++ .../share/man/man3/OPENSSL_init_ssl.3 | 205 + .../share/man/man3/OPENSSL_instrument_bus.3 | 182 + .../share/man/man3/OPENSSL_instrument_bus2.3 | 1 + .../man/man3/OPENSSL_load_builtin_modules.3 | 183 + .../share/man/man3/OPENSSL_malloc.3 | 367 ++ .../share/man/man3/OPENSSL_malloc_init.3 | 1 + .../share/man/man3/OPENSSL_mem_debug_pop.3 | 1 + .../share/man/man3/OPENSSL_mem_debug_push.3 | 1 + .../share/man/man3/OPENSSL_memdup.3 | 1 + .../share/man/man3/OPENSSL_no_config.3 | 1 + .../share/man/man3/OPENSSL_realloc.3 | 1 + .../man/man3/OPENSSL_secure_actual_size.3 | 1 + .../man/man3/OPENSSL_secure_clear_free.3 | 1 + .../share/man/man3/OPENSSL_secure_free.3 | 1 + .../share/man/man3/OPENSSL_secure_malloc.3 | 259 + .../share/man/man3/OPENSSL_secure_zalloc.3 | 1 + .../share/man/man3/OPENSSL_strdup.3 | 1 + .../share/man/man3/OPENSSL_strlcat.3 | 1 + .../share/man/man3/OPENSSL_strlcpy.3 | 1 + .../share/man/man3/OPENSSL_strndup.3 | 1 + .../share/man/man3/OPENSSL_thread_stop.3 | 1 + .../share/man/man3/OPENSSL_zalloc.3 | 1 + .../share/man/man3/OSSL_STORE_CTX.3 | 1 + .../share/man/man3/OSSL_STORE_INFO.3 | 310 + .../share/man/man3/OSSL_STORE_INFO_free.3 | 1 + .../man/man3/OSSL_STORE_INFO_get0_CERT.3 | 1 + .../share/man/man3/OSSL_STORE_INFO_get0_CRL.3 | 1 + .../man/man3/OSSL_STORE_INFO_get0_NAME.3 | 1 + .../OSSL_STORE_INFO_get0_NAME_description.3 | 1 + .../man/man3/OSSL_STORE_INFO_get0_PARAMS.3 | 1 + .../man/man3/OSSL_STORE_INFO_get0_PKEY.3 | 1 + .../man/man3/OSSL_STORE_INFO_get1_CERT.3 | 1 + .../share/man/man3/OSSL_STORE_INFO_get1_CRL.3 | 1 + .../man/man3/OSSL_STORE_INFO_get1_NAME.3 | 1 + .../OSSL_STORE_INFO_get1_NAME_description.3 | 1 + .../man/man3/OSSL_STORE_INFO_get1_PARAMS.3 | 1 + .../man/man3/OSSL_STORE_INFO_get1_PKEY.3 | 1 + .../share/man/man3/OSSL_STORE_INFO_get_type.3 | 1 + .../share/man/man3/OSSL_STORE_INFO_new_CERT.3 | 1 + .../share/man/man3/OSSL_STORE_INFO_new_CRL.3 | 1 + .../share/man/man3/OSSL_STORE_INFO_new_NAME.3 | 1 + .../man/man3/OSSL_STORE_INFO_new_PARAMS.3 | 1 + .../share/man/man3/OSSL_STORE_INFO_new_PKEY.3 | 1 + .../OSSL_STORE_INFO_set0_NAME_description.3 | 1 + .../man/man3/OSSL_STORE_INFO_type_string.3 | 1 + .../share/man/man3/OSSL_STORE_LOADER.3 | 358 ++ .../share/man/man3/OSSL_STORE_LOADER_CTX.3 | 1 + .../share/man/man3/OSSL_STORE_LOADER_free.3 | 1 + .../man/man3/OSSL_STORE_LOADER_get0_engine.3 | 1 + .../man/man3/OSSL_STORE_LOADER_get0_scheme.3 | 1 + .../share/man/man3/OSSL_STORE_LOADER_new.3 | 1 + .../man/man3/OSSL_STORE_LOADER_set_close.3 | 1 + .../man/man3/OSSL_STORE_LOADER_set_ctrl.3 | 1 + .../man/man3/OSSL_STORE_LOADER_set_eof.3 | 1 + .../man/man3/OSSL_STORE_LOADER_set_error.3 | 1 + .../man/man3/OSSL_STORE_LOADER_set_expect.3 | 1 + .../man/man3/OSSL_STORE_LOADER_set_find.3 | 1 + .../man/man3/OSSL_STORE_LOADER_set_load.3 | 1 + .../man/man3/OSSL_STORE_LOADER_set_open.3 | 1 + .../share/man/man3/OSSL_STORE_SEARCH.3 | 296 + .../man/man3/OSSL_STORE_SEARCH_by_alias.3 | 1 + .../man3/OSSL_STORE_SEARCH_by_issuer_serial.3 | 1 + .../OSSL_STORE_SEARCH_by_key_fingerprint.3 | 1 + .../man/man3/OSSL_STORE_SEARCH_by_name.3 | 1 + .../share/man/man3/OSSL_STORE_SEARCH_free.3 | 1 + .../man/man3/OSSL_STORE_SEARCH_get0_bytes.3 | 1 + .../man/man3/OSSL_STORE_SEARCH_get0_digest.3 | 1 + .../man/man3/OSSL_STORE_SEARCH_get0_name.3 | 1 + .../man/man3/OSSL_STORE_SEARCH_get0_serial.3 | 1 + .../man/man3/OSSL_STORE_SEARCH_get0_string.3 | 1 + .../man/man3/OSSL_STORE_SEARCH_get_type.3 | 1 + .../share/man/man3/OSSL_STORE_close.3 | 1 + .../share/man/man3/OSSL_STORE_close_fn.3 | 1 + .../share/man/man3/OSSL_STORE_ctrl.3 | 1 + .../share/man/man3/OSSL_STORE_ctrl_fn.3 | 1 + .../share/man/man3/OSSL_STORE_eof.3 | 1 + .../share/man/man3/OSSL_STORE_eof_fn.3 | 1 + .../share/man/man3/OSSL_STORE_error.3 | 1 + .../share/man/man3/OSSL_STORE_error_fn.3 | 1 + .../share/man/man3/OSSL_STORE_expect.3 | 202 + .../share/man/man3/OSSL_STORE_expect_fn.3 | 1 + .../share/man/man3/OSSL_STORE_find.3 | 1 + .../share/man/man3/OSSL_STORE_find_fn.3 | 1 + .../share/man/man3/OSSL_STORE_load.3 | 1 + .../share/man/man3/OSSL_STORE_load_fn.3 | 1 + .../share/man/man3/OSSL_STORE_open.3 | 282 + .../share/man/man3/OSSL_STORE_open_fn.3 | 1 + .../man3/OSSL_STORE_post_process_info_fn.3 | 1 + .../man/man3/OSSL_STORE_register_loader.3 | 1 + .../man/man3/OSSL_STORE_supports_search.3 | 1 + .../man/man3/OSSL_STORE_unregister_loader.3 | 1 + .../share/man/man3/OTHERNAME_free.3 | 1 + rambus_sec_lib/share/man/man3/OTHERNAME_new.3 | 1 + .../man/man3/OpenSSL_add_all_algorithms.3 | 191 + .../share/man/man3/OpenSSL_add_all_ciphers.3 | 1 + .../share/man/man3/OpenSSL_add_all_digests.3 | 1 + .../man/man3/OpenSSL_add_ssl_algorithms.3 | 1 + .../share/man/man3/OpenSSL_version.3 | 1 + .../share/man/man3/OpenSSL_version_num.3 | 1 + .../share/man/man3/PBE2PARAM_free.3 | 1 + rambus_sec_lib/share/man/man3/PBE2PARAM_new.3 | 1 + rambus_sec_lib/share/man/man3/PBEPARAM_free.3 | 1 + rambus_sec_lib/share/man/man3/PBEPARAM_new.3 | 1 + .../share/man/man3/PBKDF2PARAM_free.3 | 1 + .../share/man/man3/PBKDF2PARAM_new.3 | 1 + .../share/man/man3/PEM_FLAG_EAY_COMPATIBLE.3 | 1 + .../share/man/man3/PEM_FLAG_ONLY_B64.3 | 1 + .../share/man/man3/PEM_FLAG_SECURE.3 | 1 + .../share/man/man3/PEM_bytes_read_bio.3 | 212 + .../man/man3/PEM_bytes_read_bio_secmem.3 | 1 + rambus_sec_lib/share/man/man3/PEM_do_header.3 | 1 + .../share/man/man3/PEM_get_EVP_CIPHER_INFO.3 | 1 + rambus_sec_lib/share/man/man3/PEM_read.3 | 259 + rambus_sec_lib/share/man/man3/PEM_read_CMS.3 | 195 + .../share/man/man3/PEM_read_DHparams.3 | 1 + .../share/man/man3/PEM_read_DSAPrivateKey.3 | 1 + .../share/man/man3/PEM_read_DSA_PUBKEY.3 | 1 + .../share/man/man3/PEM_read_DSAparams.3 | 1 + .../share/man/man3/PEM_read_ECPKParameters.3 | 1 + .../share/man/man3/PEM_read_ECPrivateKey.3 | 1 + .../share/man/man3/PEM_read_EC_PUBKEY.3 | 1 + .../man3/PEM_read_NETSCAPE_CERT_SEQUENCE.3 | 1 + .../share/man/man3/PEM_read_PKCS7.3 | 1 + .../share/man/man3/PEM_read_PKCS8.3 | 1 + .../man/man3/PEM_read_PKCS8_PRIV_KEY_INFO.3 | 1 + .../share/man/man3/PEM_read_PUBKEY.3 | 1 + .../share/man/man3/PEM_read_PrivateKey.3 | 1 + .../share/man/man3/PEM_read_RSAPrivateKey.3 | 1 + .../share/man/man3/PEM_read_RSAPublicKey.3 | 1 + .../share/man/man3/PEM_read_RSA_PUBKEY.3 | 1 + .../share/man/man3/PEM_read_SSL_SESSION.3 | 1 + rambus_sec_lib/share/man/man3/PEM_read_X509.3 | 1 + .../share/man/man3/PEM_read_X509_AUX.3 | 1 + .../share/man/man3/PEM_read_X509_CRL.3 | 1 + .../share/man/man3/PEM_read_X509_REQ.3 | 1 + rambus_sec_lib/share/man/man3/PEM_read_bio.3 | 1 + .../share/man/man3/PEM_read_bio_CMS.3 | 1 + .../share/man/man3/PEM_read_bio_DHparams.3 | 1 + .../man/man3/PEM_read_bio_DSAPrivateKey.3 | 1 + .../share/man/man3/PEM_read_bio_DSA_PUBKEY.3 | 1 + .../share/man/man3/PEM_read_bio_DSAparams.3 | 1 + .../man/man3/PEM_read_bio_ECPKParameters.3 | 1 + .../share/man/man3/PEM_read_bio_EC_PUBKEY.3 | 1 + .../PEM_read_bio_NETSCAPE_CERT_SEQUENCE.3 | 1 + .../share/man/man3/PEM_read_bio_PKCS7.3 | 1 + .../share/man/man3/PEM_read_bio_PKCS8.3 | 1 + .../man3/PEM_read_bio_PKCS8_PRIV_KEY_INFO.3 | 1 + .../share/man/man3/PEM_read_bio_PUBKEY.3 | 1 + .../share/man/man3/PEM_read_bio_Parameters.3 | 1 + .../share/man/man3/PEM_read_bio_PrivateKey.3 | 618 ++ .../man/man3/PEM_read_bio_RSAPrivateKey.3 | 1 + .../man/man3/PEM_read_bio_RSAPublicKey.3 | 1 + .../share/man/man3/PEM_read_bio_RSA_PUBKEY.3 | 1 + .../share/man/man3/PEM_read_bio_SSL_SESSION.3 | 1 + .../share/man/man3/PEM_read_bio_X509.3 | 1 + .../share/man/man3/PEM_read_bio_X509_AUX.3 | 1 + .../share/man/man3/PEM_read_bio_X509_CRL.3 | 1 + .../share/man/man3/PEM_read_bio_X509_REQ.3 | 1 + .../share/man/man3/PEM_read_bio_ex.3 | 195 + rambus_sec_lib/share/man/man3/PEM_write.3 | 1 + rambus_sec_lib/share/man/man3/PEM_write_CMS.3 | 1 + .../share/man/man3/PEM_write_DHparams.3 | 1 + .../share/man/man3/PEM_write_DHxparams.3 | 1 + .../share/man/man3/PEM_write_DSAPrivateKey.3 | 1 + .../share/man/man3/PEM_write_DSA_PUBKEY.3 | 1 + .../share/man/man3/PEM_write_DSAparams.3 | 1 + .../share/man/man3/PEM_write_ECPKParameters.3 | 1 + .../share/man/man3/PEM_write_ECPrivateKey.3 | 1 + .../share/man/man3/PEM_write_EC_PUBKEY.3 | 1 + .../man3/PEM_write_NETSCAPE_CERT_SEQUENCE.3 | 1 + .../share/man/man3/PEM_write_PKCS7.3 | 1 + .../share/man/man3/PEM_write_PKCS8.3 | 1 + .../man/man3/PEM_write_PKCS8PrivateKey.3 | 1 + .../man/man3/PEM_write_PKCS8PrivateKey_nid.3 | 1 + .../man/man3/PEM_write_PKCS8_PRIV_KEY_INFO.3 | 1 + .../share/man/man3/PEM_write_PUBKEY.3 | 1 + .../share/man/man3/PEM_write_PrivateKey.3 | 1 + .../share/man/man3/PEM_write_RSAPrivateKey.3 | 1 + .../share/man/man3/PEM_write_RSAPublicKey.3 | 1 + .../share/man/man3/PEM_write_RSA_PUBKEY.3 | 1 + .../share/man/man3/PEM_write_SSL_SESSION.3 | 1 + .../share/man/man3/PEM_write_X509.3 | 1 + .../share/man/man3/PEM_write_X509_AUX.3 | 1 + .../share/man/man3/PEM_write_X509_CRL.3 | 1 + .../share/man/man3/PEM_write_X509_REQ.3 | 1 + .../share/man/man3/PEM_write_X509_REQ_NEW.3 | 1 + rambus_sec_lib/share/man/man3/PEM_write_bio.3 | 1 + .../share/man/man3/PEM_write_bio_CMS.3 | 1 + .../share/man/man3/PEM_write_bio_CMS_stream.3 | 176 + .../share/man/man3/PEM_write_bio_DHparams.3 | 1 + .../share/man/man3/PEM_write_bio_DHxparams.3 | 1 + .../man/man3/PEM_write_bio_DSAPrivateKey.3 | 1 + .../share/man/man3/PEM_write_bio_DSA_PUBKEY.3 | 1 + .../share/man/man3/PEM_write_bio_DSAparams.3 | 1 + .../man/man3/PEM_write_bio_ECPKParameters.3 | 1 + .../man/man3/PEM_write_bio_ECPrivateKey.3 | 1 + .../share/man/man3/PEM_write_bio_EC_PUBKEY.3 | 1 + .../PEM_write_bio_NETSCAPE_CERT_SEQUENCE.3 | 1 + .../share/man/man3/PEM_write_bio_PKCS7.3 | 1 + .../man/man3/PEM_write_bio_PKCS7_stream.3 | 175 + .../share/man/man3/PEM_write_bio_PKCS8.3 | 1 + .../man/man3/PEM_write_bio_PKCS8PrivateKey.3 | 1 + .../man3/PEM_write_bio_PKCS8PrivateKey_nid.3 | 1 + .../man3/PEM_write_bio_PKCS8_PRIV_KEY_INFO.3 | 1 + .../share/man/man3/PEM_write_bio_PUBKEY.3 | 1 + .../share/man/man3/PEM_write_bio_Parameters.3 | 1 + .../share/man/man3/PEM_write_bio_PrivateKey.3 | 1 + .../PEM_write_bio_PrivateKey_traditional.3 | 1 + .../man/man3/PEM_write_bio_RSAPrivateKey.3 | 1 + .../man/man3/PEM_write_bio_RSAPublicKey.3 | 1 + .../share/man/man3/PEM_write_bio_RSA_PUBKEY.3 | 1 + .../man/man3/PEM_write_bio_SSL_SESSION.3 | 1 + .../share/man/man3/PEM_write_bio_X509.3 | 1 + .../share/man/man3/PEM_write_bio_X509_AUX.3 | 1 + .../share/man/man3/PEM_write_bio_X509_CRL.3 | 1 + .../share/man/man3/PEM_write_bio_X509_REQ.3 | 1 + .../man/man3/PEM_write_bio_X509_REQ_NEW.3 | 1 + .../share/man/man3/PKCS12_BAGS_free.3 | 1 + .../share/man/man3/PKCS12_BAGS_new.3 | 1 + .../share/man/man3/PKCS12_MAC_DATA_free.3 | 1 + .../share/man/man3/PKCS12_MAC_DATA_new.3 | 1 + .../share/man/man3/PKCS12_SAFEBAG_free.3 | 1 + .../share/man/man3/PKCS12_SAFEBAG_new.3 | 1 + rambus_sec_lib/share/man/man3/PKCS12_create.3 | 213 + rambus_sec_lib/share/man/man3/PKCS12_free.3 | 1 + rambus_sec_lib/share/man/man3/PKCS12_new.3 | 1 + .../share/man/man3/PKCS12_newpass.3 | 242 + rambus_sec_lib/share/man/man3/PKCS12_parse.3 | 199 + .../share/man/man3/PKCS5_PBKDF2_HMAC.3 | 204 + .../share/man/man3/PKCS5_PBKDF2_HMAC_SHA1.3 | 1 + .../share/man/man3/PKCS7_DIGEST_free.3 | 1 + .../share/man/man3/PKCS7_DIGEST_new.3 | 1 + .../share/man/man3/PKCS7_ENCRYPT_free.3 | 1 + .../share/man/man3/PKCS7_ENCRYPT_new.3 | 1 + .../share/man/man3/PKCS7_ENC_CONTENT_free.3 | 1 + .../share/man/man3/PKCS7_ENC_CONTENT_new.3 | 1 + .../share/man/man3/PKCS7_ENVELOPE_free.3 | 1 + .../share/man/man3/PKCS7_ENVELOPE_new.3 | 1 + .../man/man3/PKCS7_ISSUER_AND_SERIAL_digest.3 | 1 + .../man/man3/PKCS7_ISSUER_AND_SERIAL_free.3 | 1 + .../man/man3/PKCS7_ISSUER_AND_SERIAL_new.3 | 1 + .../share/man/man3/PKCS7_RECIP_INFO_free.3 | 1 + .../share/man/man3/PKCS7_RECIP_INFO_new.3 | 1 + .../share/man/man3/PKCS7_SIGNED_free.3 | 1 + .../share/man/man3/PKCS7_SIGNED_new.3 | 1 + .../share/man/man3/PKCS7_SIGNER_INFO_free.3 | 1 + .../share/man/man3/PKCS7_SIGNER_INFO_new.3 | 1 + .../share/man/man3/PKCS7_SIGN_ENVELOPE_free.3 | 1 + .../share/man/man3/PKCS7_SIGN_ENVELOPE_new.3 | 1 + rambus_sec_lib/share/man/man3/PKCS7_decrypt.3 | 183 + rambus_sec_lib/share/man/man3/PKCS7_dup.3 | 1 + rambus_sec_lib/share/man/man3/PKCS7_encrypt.3 | 214 + rambus_sec_lib/share/man/man3/PKCS7_free.3 | 1 + .../share/man/man3/PKCS7_get0_signers.3 | 1 + rambus_sec_lib/share/man/man3/PKCS7_new.3 | 1 + .../share/man/man3/PKCS7_print_ctx.3 | 1 + rambus_sec_lib/share/man/man3/PKCS7_sign.3 | 248 + .../share/man/man3/PKCS7_sign_add_signer.3 | 220 + rambus_sec_lib/share/man/man3/PKCS7_verify.3 | 254 + .../share/man/man3/PKCS8_PRIV_KEY_INFO_free.3 | 1 + .../share/man/man3/PKCS8_PRIV_KEY_INFO_new.3 | 1 + .../share/man/man3/PKEY_USAGE_PERIOD_free.3 | 1 + .../share/man/man3/PKEY_USAGE_PERIOD_new.3 | 1 + .../share/man/man3/POLICYINFO_free.3 | 1 + .../share/man/man3/POLICYINFO_new.3 | 1 + .../share/man/man3/POLICYQUALINFO_free.3 | 1 + .../share/man/man3/POLICYQUALINFO_new.3 | 1 + .../share/man/man3/POLICY_CONSTRAINTS_free.3 | 1 + .../share/man/man3/POLICY_CONSTRAINTS_new.3 | 1 + .../share/man/man3/POLICY_MAPPING_free.3 | 1 + .../share/man/man3/POLICY_MAPPING_new.3 | 1 + .../share/man/man3/PROFESSION_INFO.3 | 1 + .../share/man/man3/PROFESSION_INFOS.3 | 1 + .../share/man/man3/PROFESSION_INFOS_free.3 | 1 + .../share/man/man3/PROFESSION_INFOS_new.3 | 1 + .../share/man/man3/PROFESSION_INFO_free.3 | 1 + .../PROFESSION_INFO_get0_addProfessionInfo.3 | 1 + .../PROFESSION_INFO_get0_namingAuthority.3 | 1 + .../PROFESSION_INFO_get0_professionItems.3 | 1 + .../PROFESSION_INFO_get0_professionOIDs.3 | 1 + .../PROFESSION_INFO_get0_registrationNumber.3 | 1 + .../share/man/man3/PROFESSION_INFO_new.3 | 1 + .../PROFESSION_INFO_set0_addProfessionInfo.3 | 1 + .../PROFESSION_INFO_set0_namingAuthority.3 | 1 + .../PROFESSION_INFO_set0_professionItems.3 | 1 + .../PROFESSION_INFO_set0_professionOIDs.3 | 1 + .../PROFESSION_INFO_set0_registrationNumber.3 | 1 + .../man/man3/PROXY_CERT_INFO_EXTENSION_free.3 | 1 + .../man/man3/PROXY_CERT_INFO_EXTENSION_new.3 | 1 + .../share/man/man3/PROXY_POLICY_free.3 | 1 + .../share/man/man3/PROXY_POLICY_new.3 | 1 + .../share/man/man3/RAND_DRBG_bytes.3 | 1 + .../man/man3/RAND_DRBG_cleanup_entropy_fn.3 | 1 + .../man/man3/RAND_DRBG_cleanup_nonce_fn.3 | 1 + .../share/man/man3/RAND_DRBG_free.3 | 1 + .../share/man/man3/RAND_DRBG_generate.3 | 210 + .../share/man/man3/RAND_DRBG_get0_master.3 | 200 + .../share/man/man3/RAND_DRBG_get0_private.3 | 1 + .../share/man/man3/RAND_DRBG_get0_public.3 | 1 + .../share/man/man3/RAND_DRBG_get_entropy_fn.3 | 1 + .../share/man/man3/RAND_DRBG_get_ex_data.3 | 1 + .../man/man3/RAND_DRBG_get_ex_new_index.3 | 1 + .../share/man/man3/RAND_DRBG_get_nonce_fn.3 | 1 + .../share/man/man3/RAND_DRBG_instantiate.3 | 1 + rambus_sec_lib/share/man/man3/RAND_DRBG_new.3 | 243 + .../share/man/man3/RAND_DRBG_reseed.3 | 235 + .../share/man/man3/RAND_DRBG_secure_new.3 | 1 + rambus_sec_lib/share/man/man3/RAND_DRBG_set.3 | 1 + .../share/man/man3/RAND_DRBG_set_callbacks.3 | 264 + .../share/man/man3/RAND_DRBG_set_defaults.3 | 1 + .../share/man/man3/RAND_DRBG_set_ex_data.3 | 189 + .../man/man3/RAND_DRBG_set_reseed_defaults.3 | 1 + .../man/man3/RAND_DRBG_set_reseed_interval.3 | 1 + .../man3/RAND_DRBG_set_reseed_time_interval.3 | 1 + .../share/man/man3/RAND_DRBG_uninstantiate.3 | 1 + rambus_sec_lib/share/man/man3/RAND_OpenSSL.3 | 1 + rambus_sec_lib/share/man/man3/RAND_add.3 | 231 + rambus_sec_lib/share/man/man3/RAND_bytes.3 | 211 + rambus_sec_lib/share/man/man3/RAND_cleanup.3 | 171 + rambus_sec_lib/share/man/man3/RAND_egd.3 | 189 + .../share/man/man3/RAND_egd_bytes.3 | 1 + rambus_sec_lib/share/man/man3/RAND_event.3 | 1 + .../share/man/man3/RAND_file_name.3 | 1 + .../share/man/man3/RAND_get_rand_method.3 | 1 + .../man/man3/RAND_keep_random_devices_open.3 | 1 + .../share/man/man3/RAND_load_file.3 | 214 + rambus_sec_lib/share/man/man3/RAND_poll.3 | 1 + .../share/man/man3/RAND_priv_bytes.3 | 1 + .../share/man/man3/RAND_pseudo_bytes.3 | 1 + .../share/man/man3/RAND_query_egd_bytes.3 | 1 + rambus_sec_lib/share/man/man3/RAND_screen.3 | 1 + rambus_sec_lib/share/man/man3/RAND_seed.3 | 1 + .../share/man/man3/RAND_set_rand_method.3 | 199 + rambus_sec_lib/share/man/man3/RAND_status.3 | 1 + .../share/man/man3/RAND_write_file.3 | 1 + rambus_sec_lib/share/man/man3/RC4.3 | 1 + rambus_sec_lib/share/man/man3/RC4_set_key.3 | 193 + rambus_sec_lib/share/man/man3/RIPEMD160.3 | 1 + .../share/man/man3/RIPEMD160_Final.3 | 1 + .../share/man/man3/RIPEMD160_Init.3 | 196 + .../share/man/man3/RIPEMD160_Update.3 | 1 + .../share/man/man3/RSAPrivateKey_dup.3 | 1 + .../share/man/man3/RSAPublicKey_dup.3 | 1 + .../share/man/man3/RSA_OAEP_PARAMS_free.3 | 1 + .../share/man/man3/RSA_OAEP_PARAMS_new.3 | 1 + .../share/man/man3/RSA_PKCS1_OpenSSL.3 | 1 + .../share/man/man3/RSA_PSS_PARAMS_free.3 | 1 + .../share/man/man3/RSA_PSS_PARAMS_new.3 | 1 + rambus_sec_lib/share/man/man3/RSA_bits.3 | 1 + .../share/man/man3/RSA_blinding_off.3 | 1 + .../share/man/man3/RSA_blinding_on.3 | 172 + rambus_sec_lib/share/man/man3/RSA_check_key.3 | 209 + .../share/man/man3/RSA_check_key_ex.3 | 1 + .../share/man/man3/RSA_clear_flags.3 | 1 + rambus_sec_lib/share/man/man3/RSA_flags.3 | 1 + rambus_sec_lib/share/man/man3/RSA_free.3 | 1 + .../share/man/man3/RSA_generate_key.3 | 229 + .../share/man/man3/RSA_generate_key_ex.3 | 1 + .../man/man3/RSA_generate_multi_prime_key.3 | 1 + .../share/man/man3/RSA_get0_crt_params.3 | 1 + rambus_sec_lib/share/man/man3/RSA_get0_d.3 | 1 + rambus_sec_lib/share/man/man3/RSA_get0_dmp1.3 | 1 + rambus_sec_lib/share/man/man3/RSA_get0_dmq1.3 | 1 + rambus_sec_lib/share/man/man3/RSA_get0_e.3 | 1 + .../share/man/man3/RSA_get0_engine.3 | 1 + .../share/man/man3/RSA_get0_factors.3 | 1 + rambus_sec_lib/share/man/man3/RSA_get0_iqmp.3 | 1 + rambus_sec_lib/share/man/man3/RSA_get0_key.3 | 299 + .../man3/RSA_get0_multi_prime_crt_params.3 | 1 + .../man/man3/RSA_get0_multi_prime_factors.3 | 1 + rambus_sec_lib/share/man/man3/RSA_get0_n.3 | 1 + rambus_sec_lib/share/man/man3/RSA_get0_p.3 | 1 + .../share/man/man3/RSA_get0_pss_params.3 | 1 + rambus_sec_lib/share/man/man3/RSA_get0_q.3 | 1 + .../share/man/man3/RSA_get_default_method.3 | 1 + .../share/man/man3/RSA_get_ex_data.3 | 1 + .../share/man/man3/RSA_get_ex_new_index.3 | 1 + .../share/man/man3/RSA_get_method.3 | 1 + .../man3/RSA_get_multi_prime_extra_count.3 | 1 + .../share/man/man3/RSA_get_version.3 | 1 + rambus_sec_lib/share/man/man3/RSA_meth_dup.3 | 1 + rambus_sec_lib/share/man/man3/RSA_meth_free.3 | 1 + .../share/man/man3/RSA_meth_get0_app_data.3 | 1 + .../share/man/man3/RSA_meth_get0_name.3 | 1 + .../share/man/man3/RSA_meth_get_bn_mod_exp.3 | 1 + .../share/man/man3/RSA_meth_get_finish.3 | 1 + .../share/man/man3/RSA_meth_get_flags.3 | 1 + .../share/man/man3/RSA_meth_get_init.3 | 1 + .../share/man/man3/RSA_meth_get_keygen.3 | 1 + .../share/man/man3/RSA_meth_get_mod_exp.3 | 1 + .../man3/RSA_meth_get_multi_prime_keygen.3 | 1 + .../share/man/man3/RSA_meth_get_priv_dec.3 | 1 + .../share/man/man3/RSA_meth_get_priv_enc.3 | 1 + .../share/man/man3/RSA_meth_get_pub_dec.3 | 1 + .../share/man/man3/RSA_meth_get_pub_enc.3 | 1 + .../share/man/man3/RSA_meth_get_sign.3 | 1 + .../share/man/man3/RSA_meth_get_verify.3 | 1 + rambus_sec_lib/share/man/man3/RSA_meth_new.3 | 378 ++ .../share/man/man3/RSA_meth_set0_app_data.3 | 1 + .../share/man/man3/RSA_meth_set1_name.3 | 1 + .../share/man/man3/RSA_meth_set_bn_mod_exp.3 | 1 + .../share/man/man3/RSA_meth_set_finish.3 | 1 + .../share/man/man3/RSA_meth_set_flags.3 | 1 + .../share/man/man3/RSA_meth_set_init.3 | 1 + .../share/man/man3/RSA_meth_set_keygen.3 | 1 + .../share/man/man3/RSA_meth_set_mod_exp.3 | 1 + .../man3/RSA_meth_set_multi_prime_keygen.3 | 1 + .../share/man/man3/RSA_meth_set_priv_dec.3 | 1 + .../share/man/man3/RSA_meth_set_priv_enc.3 | 1 + .../share/man/man3/RSA_meth_set_pub_dec.3 | 1 + .../share/man/man3/RSA_meth_set_pub_enc.3 | 1 + .../share/man/man3/RSA_meth_set_sign.3 | 1 + .../share/man/man3/RSA_meth_set_verify.3 | 1 + rambus_sec_lib/share/man/man3/RSA_new.3 | 175 + .../share/man/man3/RSA_new_method.3 | 1 + .../man/man3/RSA_padding_add_PKCS1_OAEP.3 | 1 + .../man3/RSA_padding_add_PKCS1_OAEP_mgf1.3 | 1 + .../man/man3/RSA_padding_add_PKCS1_type_1.3 | 272 + .../man/man3/RSA_padding_add_PKCS1_type_2.3 | 1 + .../share/man/man3/RSA_padding_add_SSLv23.3 | 1 + .../share/man/man3/RSA_padding_add_none.3 | 1 + .../man/man3/RSA_padding_check_PKCS1_OAEP.3 | 1 + .../man3/RSA_padding_check_PKCS1_OAEP_mgf1.3 | 1 + .../man/man3/RSA_padding_check_PKCS1_type_1.3 | 1 + .../man/man3/RSA_padding_check_PKCS1_type_2.3 | 1 + .../share/man/man3/RSA_padding_check_SSLv23.3 | 1 + .../share/man/man3/RSA_padding_check_none.3 | 1 + rambus_sec_lib/share/man/man3/RSA_print.3 | 178 + rambus_sec_lib/share/man/man3/RSA_print_fp.3 | 1 + .../share/man/man3/RSA_private_decrypt.3 | 1 + .../share/man/man3/RSA_private_encrypt.3 | 196 + .../share/man/man3/RSA_public_decrypt.3 | 1 + .../share/man/man3/RSA_public_encrypt.3 | 227 + .../share/man/man3/RSA_security_bits.3 | 1 + .../share/man/man3/RSA_set0_crt_params.3 | 1 + .../share/man/man3/RSA_set0_factors.3 | 1 + rambus_sec_lib/share/man/man3/RSA_set0_key.3 | 1 + .../man/man3/RSA_set0_multi_prime_params.3 | 1 + .../share/man/man3/RSA_set_default_method.3 | 1 + .../share/man/man3/RSA_set_ex_data.3 | 1 + rambus_sec_lib/share/man/man3/RSA_set_flags.3 | 1 + .../share/man/man3/RSA_set_method.3 | 311 + rambus_sec_lib/share/man/man3/RSA_sign.3 | 192 + .../man/man3/RSA_sign_ASN1_OCTET_STRING.3 | 194 + rambus_sec_lib/share/man/man3/RSA_size.3 | 182 + .../share/man/man3/RSA_test_flags.3 | 1 + rambus_sec_lib/share/man/man3/RSA_verify.3 | 1 + .../man/man3/RSA_verify_ASN1_OCTET_STRING.3 | 1 + .../share/man/man3/SCRYPT_PARAMS_free.3 | 1 + .../share/man/man3/SCRYPT_PARAMS_new.3 | 1 + rambus_sec_lib/share/man/man3/SCT_LIST_free.3 | 1 + .../share/man/man3/SCT_LIST_print.3 | 1 + .../share/man/man3/SCT_LIST_validate.3 | 1 + rambus_sec_lib/share/man/man3/SCT_free.3 | 1 + .../share/man/man3/SCT_get0_extensions.3 | 1 + .../share/man/man3/SCT_get0_log_id.3 | 1 + .../share/man/man3/SCT_get0_signature.3 | 1 + .../share/man/man3/SCT_get_log_entry_type.3 | 1 + .../share/man/man3/SCT_get_signature_nid.3 | 1 + .../share/man/man3/SCT_get_source.3 | 1 + .../share/man/man3/SCT_get_timestamp.3 | 1 + .../man/man3/SCT_get_validation_status.3 | 1 + .../share/man/man3/SCT_get_version.3 | 1 + rambus_sec_lib/share/man/man3/SCT_new.3 | 302 + .../share/man/man3/SCT_new_from_base64.3 | 1 + rambus_sec_lib/share/man/man3/SCT_print.3 | 183 + .../share/man/man3/SCT_set0_extensions.3 | 1 + .../share/man/man3/SCT_set0_log_id.3 | 1 + .../share/man/man3/SCT_set0_signature.3 | 1 + .../share/man/man3/SCT_set1_extensions.3 | 1 + .../share/man/man3/SCT_set1_log_id.3 | 1 + .../share/man/man3/SCT_set1_signature.3 | 1 + .../share/man/man3/SCT_set_log_entry_type.3 | 1 + .../share/man/man3/SCT_set_signature_nid.3 | 1 + .../share/man/man3/SCT_set_source.3 | 1 + .../share/man/man3/SCT_set_timestamp.3 | 1 + .../share/man/man3/SCT_set_version.3 | 1 + rambus_sec_lib/share/man/man3/SCT_validate.3 | 219 + .../man/man3/SCT_validation_status_string.3 | 1 + rambus_sec_lib/share/man/man3/SHA1.3 | 1 + rambus_sec_lib/share/man/man3/SHA1_Final.3 | 1 + rambus_sec_lib/share/man/man3/SHA1_Init.3 | 1 + rambus_sec_lib/share/man/man3/SHA1_Update.3 | 1 + rambus_sec_lib/share/man/man3/SHA224.3 | 1 + rambus_sec_lib/share/man/man3/SHA224_Final.3 | 1 + rambus_sec_lib/share/man/man3/SHA224_Init.3 | 1 + rambus_sec_lib/share/man/man3/SHA224_Update.3 | 1 + rambus_sec_lib/share/man/man3/SHA256.3 | 1 + rambus_sec_lib/share/man/man3/SHA256_Final.3 | 1 + rambus_sec_lib/share/man/man3/SHA256_Init.3 | 229 + rambus_sec_lib/share/man/man3/SHA256_Update.3 | 1 + rambus_sec_lib/share/man/man3/SHA384.3 | 1 + rambus_sec_lib/share/man/man3/SHA384_Final.3 | 1 + rambus_sec_lib/share/man/man3/SHA384_Init.3 | 1 + rambus_sec_lib/share/man/man3/SHA384_Update.3 | 1 + rambus_sec_lib/share/man/man3/SHA512.3 | 1 + rambus_sec_lib/share/man/man3/SHA512_Final.3 | 1 + rambus_sec_lib/share/man/man3/SHA512_Init.3 | 1 + rambus_sec_lib/share/man/man3/SHA512_Update.3 | 1 + .../share/man/man3/SMIME_read_CMS.3 | 203 + .../share/man/man3/SMIME_read_PKCS7.3 | 206 + .../share/man/man3/SMIME_write_CMS.3 | 195 + .../share/man/man3/SMIME_write_PKCS7.3 | 196 + .../share/man/man3/SSL_CIPHER_description.3 | 1 + .../share/man/man3/SSL_CIPHER_find.3 | 1 + .../share/man/man3/SSL_CIPHER_get_auth_nid.3 | 1 + .../share/man/man3/SSL_CIPHER_get_bits.3 | 1 + .../man/man3/SSL_CIPHER_get_cipher_nid.3 | 1 + .../man/man3/SSL_CIPHER_get_digest_nid.3 | 1 + .../man3/SSL_CIPHER_get_handshake_digest.3 | 1 + .../share/man/man3/SSL_CIPHER_get_id.3 | 1 + .../share/man/man3/SSL_CIPHER_get_kx_nid.3 | 1 + .../share/man/man3/SSL_CIPHER_get_name.3 | 321 + .../man/man3/SSL_CIPHER_get_protocol_id.3 | 1 + .../share/man/man3/SSL_CIPHER_get_version.3 | 1 + .../share/man/man3/SSL_CIPHER_is_aead.3 | 1 + .../share/man/man3/SSL_CIPHER_standard_name.3 | 1 + .../man3/SSL_COMP_add_compression_method.3 | 225 + .../man3/SSL_COMP_free_compression_methods.3 | 1 + .../share/man/man3/SSL_COMP_get0_name.3 | 1 + .../man3/SSL_COMP_get_compression_methods.3 | 1 + .../share/man/man3/SSL_COMP_get_id.3 | 1 + .../share/man/man3/SSL_CONF_CTX_clear_flags.3 | 1 + .../share/man/man3/SSL_CONF_CTX_free.3 | 1 + .../share/man/man3/SSL_CONF_CTX_new.3 | 177 + .../share/man/man3/SSL_CONF_CTX_set1_prefix.3 | 184 + .../share/man/man3/SSL_CONF_CTX_set_flags.3 | 201 + .../share/man/man3/SSL_CONF_CTX_set_ssl.3 | 1 + .../share/man/man3/SSL_CONF_CTX_set_ssl_ctx.3 | 182 + rambus_sec_lib/share/man/man3/SSL_CONF_cmd.3 | 784 +++ .../share/man/man3/SSL_CONF_cmd_argv.3 | 178 + .../share/man/man3/SSL_CONF_cmd_value_type.3 | 1 + .../share/man/man3/SSL_CTX_add0_chain_cert.3 | 1 + .../share/man/man3/SSL_CTX_add1_chain_cert.3 | 278 + .../share/man/man3/SSL_CTX_add1_to_CA_list.3 | 1 + .../share/man/man3/SSL_CTX_add_client_CA.3 | 1 + .../man/man3/SSL_CTX_add_client_custom_ext.3 | 1 + .../share/man/man3/SSL_CTX_add_custom_ext.3 | 1 + .../man/man3/SSL_CTX_add_extra_chain_cert.3 | 205 + .../man/man3/SSL_CTX_add_server_custom_ext.3 | 1 + .../share/man/man3/SSL_CTX_add_session.3 | 196 + .../share/man/man3/SSL_CTX_build_cert_chain.3 | 1 + .../share/man/man3/SSL_CTX_callback_ctrl.3 | 1 + .../man/man3/SSL_CTX_check_private_key.3 | 1 + .../man/man3/SSL_CTX_clear_chain_certs.3 | 1 + .../man3/SSL_CTX_clear_extra_chain_certs.3 | 1 + .../share/man/man3/SSL_CTX_clear_mode.3 | 1 + .../share/man/man3/SSL_CTX_clear_options.3 | 1 + .../share/man/man3/SSL_CTX_config.3 | 220 + .../share/man/man3/SSL_CTX_ct_is_enabled.3 | 1 + rambus_sec_lib/share/man/man3/SSL_CTX_ctrl.3 | 171 + .../share/man/man3/SSL_CTX_dane_clear_flags.3 | 1 + .../share/man/man3/SSL_CTX_dane_enable.3 | 504 ++ .../share/man/man3/SSL_CTX_dane_mtype_set.3 | 1 + .../share/man/man3/SSL_CTX_dane_set_flags.3 | 1 + .../man3/SSL_CTX_decrypt_session_ticket_fn.3 | 1 + .../share/man/man3/SSL_CTX_disable_ct.3 | 1 + .../share/man/man3/SSL_CTX_enable_ct.3 | 1 + .../share/man/man3/SSL_CTX_flush_sessions.3 | 184 + rambus_sec_lib/share/man/man3/SSL_CTX_free.3 | 178 + .../man3/SSL_CTX_generate_session_ticket_fn.3 | 1 + .../share/man/man3/SSL_CTX_get0_CA_list.3 | 1 + .../share/man/man3/SSL_CTX_get0_chain_certs.3 | 1 + .../share/man/man3/SSL_CTX_get0_param.3 | 190 + .../man/man3/SSL_CTX_get0_security_ex_data.3 | 1 + .../share/man/man3/SSL_CTX_get_cert_store.3 | 1 + .../share/man/man3/SSL_CTX_get_ciphers.3 | 1 + .../man/man3/SSL_CTX_get_client_CA_list.3 | 1 + .../man/man3/SSL_CTX_get_client_cert_cb.3 | 1 + .../man/man3/SSL_CTX_get_default_passwd_cb.3 | 1 + .../SSL_CTX_get_default_passwd_cb_userdata.3 | 1 + .../man/man3/SSL_CTX_get_default_read_ahead.3 | 1 + .../share/man/man3/SSL_CTX_get_ex_data.3 | 1 + .../man/man3/SSL_CTX_get_info_callback.3 | 1 + .../man/man3/SSL_CTX_get_keylog_callback.3 | 1 + .../man/man3/SSL_CTX_get_max_cert_list.3 | 1 + .../man/man3/SSL_CTX_get_max_early_data.3 | 1 + .../man/man3/SSL_CTX_get_max_proto_version.3 | 1 + .../man/man3/SSL_CTX_get_min_proto_version.3 | 1 + .../share/man/man3/SSL_CTX_get_mode.3 | 1 + .../share/man/man3/SSL_CTX_get_num_tickets.3 | 1 + .../share/man/man3/SSL_CTX_get_options.3 | 1 + .../man/man3/SSL_CTX_get_quiet_shutdown.3 | 1 + .../share/man/man3/SSL_CTX_get_read_ahead.3 | 1 + .../SSL_CTX_get_record_padding_callback_arg.3 | 1 + .../man3/SSL_CTX_get_recv_max_early_data.3 | 1 + .../man/man3/SSL_CTX_get_security_callback.3 | 1 + .../man/man3/SSL_CTX_get_security_level.3 | 1 + .../man/man3/SSL_CTX_get_session_cache_mode.3 | 1 + .../share/man/man3/SSL_CTX_get_timeout.3 | 1 + .../man/man3/SSL_CTX_get_tlsext_status_arg.3 | 1 + .../man/man3/SSL_CTX_get_tlsext_status_cb.3 | 1 + .../man/man3/SSL_CTX_get_tlsext_status_type.3 | 1 + .../man/man3/SSL_CTX_get_verify_callback.3 | 1 + .../share/man/man3/SSL_CTX_get_verify_depth.3 | 1 + .../share/man/man3/SSL_CTX_get_verify_mode.3 | 187 + .../man/man3/SSL_CTX_has_client_custom_ext.3 | 164 + .../share/man/man3/SSL_CTX_keylog_cb_func.3 | 1 + .../man/man3/SSL_CTX_load_verify_locations.3 | 283 + rambus_sec_lib/share/man/man3/SSL_CTX_new.3 | 322 + .../share/man/man3/SSL_CTX_remove_session.3 | 1 + .../man/man3/SSL_CTX_select_current_cert.3 | 1 + .../share/man/man3/SSL_CTX_sess_accept.3 | 1 + .../share/man/man3/SSL_CTX_sess_accept_good.3 | 1 + .../man3/SSL_CTX_sess_accept_renegotiate.3 | 1 + .../share/man/man3/SSL_CTX_sess_cache_full.3 | 1 + .../share/man/man3/SSL_CTX_sess_cb_hits.3 | 1 + .../share/man/man3/SSL_CTX_sess_connect.3 | 1 + .../man/man3/SSL_CTX_sess_connect_good.3 | 1 + .../man3/SSL_CTX_sess_connect_renegotiate.3 | 1 + .../man/man3/SSL_CTX_sess_get_cache_size.3 | 1 + .../share/man/man3/SSL_CTX_sess_get_get_cb.3 | 1 + .../share/man/man3/SSL_CTX_sess_get_new_cb.3 | 1 + .../man/man3/SSL_CTX_sess_get_remove_cb.3 | 1 + .../share/man/man3/SSL_CTX_sess_hits.3 | 1 + .../share/man/man3/SSL_CTX_sess_misses.3 | 1 + .../share/man/man3/SSL_CTX_sess_number.3 | 213 + .../man/man3/SSL_CTX_sess_set_cache_size.3 | 189 + .../share/man/man3/SSL_CTX_sess_set_get_cb.3 | 250 + .../share/man/man3/SSL_CTX_sess_set_new_cb.3 | 1 + .../man/man3/SSL_CTX_sess_set_remove_cb.3 | 1 + .../share/man/man3/SSL_CTX_sess_timeouts.3 | 1 + .../share/man/man3/SSL_CTX_sessions.3 | 174 + .../share/man/man3/SSL_CTX_set0_CA_list.3 | 303 + .../share/man/man3/SSL_CTX_set0_chain.3 | 1 + .../man/man3/SSL_CTX_set0_chain_cert_store.3 | 1 + .../man/man3/SSL_CTX_set0_security_ex_data.3 | 1 + .../man/man3/SSL_CTX_set0_verify_cert_store.3 | 1 + .../share/man/man3/SSL_CTX_set1_cert_store.3 | 1 + .../share/man/man3/SSL_CTX_set1_chain.3 | 1 + .../man/man3/SSL_CTX_set1_chain_cert_store.3 | 1 + .../man/man3/SSL_CTX_set1_client_sigalgs.3 | 1 + .../man3/SSL_CTX_set1_client_sigalgs_list.3 | 1 + .../share/man/man3/SSL_CTX_set1_curves.3 | 234 + .../share/man/man3/SSL_CTX_set1_curves_list.3 | 1 + .../share/man/man3/SSL_CTX_set1_groups.3 | 1 + .../share/man/man3/SSL_CTX_set1_groups_list.3 | 1 + .../share/man/man3/SSL_CTX_set1_param.3 | 1 + .../share/man/man3/SSL_CTX_set1_sigalgs.3 | 245 + .../man/man3/SSL_CTX_set1_sigalgs_list.3 | 1 + .../man/man3/SSL_CTX_set1_verify_cert_store.3 | 222 + .../man3/SSL_CTX_set_allow_early_data_cb.3 | 1 + .../share/man/man3/SSL_CTX_set_alpn_protos.3 | 1 + .../man/man3/SSL_CTX_set_alpn_select_cb.3 | 310 + .../man/man3/SSL_CTX_set_block_padding.3 | 1 + .../share/man/man3/SSL_CTX_set_cert_cb.3 | 209 + .../share/man/man3/SSL_CTX_set_cert_store.3 | 215 + .../man3/SSL_CTX_set_cert_verify_callback.3 | 205 + .../share/man/man3/SSL_CTX_set_cipher_list.3 | 233 + .../share/man/man3/SSL_CTX_set_ciphersuites.3 | 1 + .../man/man3/SSL_CTX_set_client_CA_list.3 | 1 + .../man/man3/SSL_CTX_set_client_cert_cb.3 | 237 + .../man/man3/SSL_CTX_set_client_hello_cb.3 | 258 + .../man/man3/SSL_CTX_set_cookie_generate_cb.3 | 1 + .../man/man3/SSL_CTX_set_cookie_verify_cb.3 | 1 + .../man3/SSL_CTX_set_ct_validation_callback.3 | 267 + .../man/man3/SSL_CTX_set_ctlog_list_file.3 | 179 + .../share/man/man3/SSL_CTX_set_current_cert.3 | 1 + .../SSL_CTX_set_default_ctlog_list_file.3 | 1 + .../man/man3/SSL_CTX_set_default_passwd_cb.3 | 236 + .../SSL_CTX_set_default_passwd_cb_userdata.3 | 1 + .../SSL_CTX_set_default_read_buffer_len.3 | 1 + .../man/man3/SSL_CTX_set_default_verify_dir.3 | 1 + .../man3/SSL_CTX_set_default_verify_file.3 | 1 + .../man3/SSL_CTX_set_default_verify_paths.3 | 1 + .../share/man/man3/SSL_CTX_set_ex_data.3 | 178 + .../man3/SSL_CTX_set_generate_session_id.3 | 263 + .../man/man3/SSL_CTX_set_info_callback.3 | 281 + .../man/man3/SSL_CTX_set_keylog_callback.3 | 179 + .../man/man3/SSL_CTX_set_max_cert_list.3 | 209 + .../man/man3/SSL_CTX_set_max_early_data.3 | 1 + .../man/man3/SSL_CTX_set_max_pipelines.3 | 1 + .../man/man3/SSL_CTX_set_max_proto_version.3 | 1 + .../man/man3/SSL_CTX_set_max_send_fragment.3 | 1 + .../man/man3/SSL_CTX_set_min_proto_version.3 | 195 + .../share/man/man3/SSL_CTX_set_mode.3 | 262 + .../share/man/man3/SSL_CTX_set_msg_callback.3 | 248 + .../man/man3/SSL_CTX_set_msg_callback_arg.3 | 1 + .../man3/SSL_CTX_set_next_proto_select_cb.3 | 1 + .../SSL_CTX_set_next_protos_advertised_cb.3 | 1 + .../share/man/man3/SSL_CTX_set_num_tickets.3 | 192 + .../share/man/man3/SSL_CTX_set_options.3 | 467 ++ .../man3/SSL_CTX_set_post_handshake_auth.3 | 1 + .../man3/SSL_CTX_set_psk_client_callback.3 | 290 + .../SSL_CTX_set_psk_find_session_callback.3 | 1 + .../man3/SSL_CTX_set_psk_server_callback.3 | 1 + .../SSL_CTX_set_psk_use_session_callback.3 | 1 + .../man/man3/SSL_CTX_set_quiet_shutdown.3 | 199 + .../share/man/man3/SSL_CTX_set_read_ahead.3 | 198 + .../SSL_CTX_set_record_padding_callback.3 | 215 + .../SSL_CTX_set_record_padding_callback_arg.3 | 1 + .../man3/SSL_CTX_set_recv_max_early_data.3 | 1 + .../man/man3/SSL_CTX_set_security_callback.3 | 1 + .../man/man3/SSL_CTX_set_security_level.3 | 299 + .../man/man3/SSL_CTX_set_session_cache_mode.3 | 254 + .../man/man3/SSL_CTX_set_session_id_context.3 | 211 + .../man/man3/SSL_CTX_set_session_ticket_cb.3 | 297 + .../man3/SSL_CTX_set_split_send_fragment.3 | 299 + .../share/man/man3/SSL_CTX_set_ssl_version.3 | 189 + ...SSL_CTX_set_stateless_cookie_generate_cb.3 | 218 + .../SSL_CTX_set_stateless_cookie_verify_cb.3 | 1 + .../share/man/man3/SSL_CTX_set_timeout.3 | 195 + .../SSL_CTX_set_tlsext_max_fragment_length.3 | 1 + .../man3/SSL_CTX_set_tlsext_servername_arg.3 | 1 + .../SSL_CTX_set_tlsext_servername_callback.3 | 281 + .../man/man3/SSL_CTX_set_tlsext_status_arg.3 | 1 + .../man/man3/SSL_CTX_set_tlsext_status_cb.3 | 241 + .../man/man3/SSL_CTX_set_tlsext_status_type.3 | 1 + .../man3/SSL_CTX_set_tlsext_ticket_key_cb.3 | 322 + .../man/man3/SSL_CTX_set_tlsext_use_srtp.3 | 227 + .../share/man/man3/SSL_CTX_set_tmp_dh.3 | 1 + .../man/man3/SSL_CTX_set_tmp_dh_callback.3 | 265 + .../share/man/man3/SSL_CTX_set_verify.3 | 468 ++ .../share/man/man3/SSL_CTX_set_verify_depth.3 | 1 + .../share/man/man3/SSL_CTX_up_ref.3 | 1 + .../share/man/man3/SSL_CTX_use_PrivateKey.3 | 1 + .../man/man3/SSL_CTX_use_PrivateKey_ASN1.3 | 1 + .../man/man3/SSL_CTX_use_PrivateKey_file.3 | 1 + .../man/man3/SSL_CTX_use_RSAPrivateKey.3 | 1 + .../man/man3/SSL_CTX_use_RSAPrivateKey_ASN1.3 | 1 + .../man/man3/SSL_CTX_use_RSAPrivateKey_file.3 | 1 + .../share/man/man3/SSL_CTX_use_cert_and_key.3 | 1 + .../share/man/man3/SSL_CTX_use_certificate.3 | 320 + .../man/man3/SSL_CTX_use_certificate_ASN1.3 | 1 + .../man3/SSL_CTX_use_certificate_chain_file.3 | 1 + .../man/man3/SSL_CTX_use_certificate_file.3 | 1 + .../man/man3/SSL_CTX_use_psk_identity_hint.3 | 267 + .../share/man/man3/SSL_CTX_use_serverinfo.3 | 211 + .../man/man3/SSL_CTX_use_serverinfo_ex.3 | 1 + .../man/man3/SSL_CTX_use_serverinfo_file.3 | 1 + .../share/man/man3/SSL_SESSION_dup.3 | 1 + .../share/man/man3/SSL_SESSION_free.3 | 210 + .../man/man3/SSL_SESSION_get0_alpn_selected.3 | 1 + .../share/man/man3/SSL_SESSION_get0_cipher.3 | 183 + .../man/man3/SSL_SESSION_get0_hostname.3 | 200 + .../man/man3/SSL_SESSION_get0_id_context.3 | 181 + .../share/man/man3/SSL_SESSION_get0_peer.3 | 165 + .../share/man/man3/SSL_SESSION_get0_ticket.3 | 1 + .../man3/SSL_SESSION_get0_ticket_appdata.3 | 1 + .../man/man3/SSL_SESSION_get_compress_id.3 | 166 + .../share/man/man3/SSL_SESSION_get_ex_data.3 | 173 + .../share/man/man3/SSL_SESSION_get_id.3 | 1 + .../man/man3/SSL_SESSION_get_master_key.3 | 1 + .../man/man3/SSL_SESSION_get_max_early_data.3 | 1 + .../SSL_SESSION_get_max_fragment_length.3 | 1 + .../man3/SSL_SESSION_get_protocol_version.3 | 181 + .../SSL_SESSION_get_ticket_lifetime_hint.3 | 1 + .../share/man/man3/SSL_SESSION_get_time.3 | 200 + .../share/man/man3/SSL_SESSION_get_timeout.3 | 1 + .../share/man/man3/SSL_SESSION_has_ticket.3 | 184 + .../share/man/man3/SSL_SESSION_is_resumable.3 | 170 + .../share/man/man3/SSL_SESSION_new.3 | 1 + .../share/man/man3/SSL_SESSION_print.3 | 172 + .../share/man/man3/SSL_SESSION_print_fp.3 | 1 + .../share/man/man3/SSL_SESSION_print_keylog.3 | 1 + .../man/man3/SSL_SESSION_set1_alpn_selected.3 | 1 + .../man/man3/SSL_SESSION_set1_hostname.3 | 1 + .../share/man/man3/SSL_SESSION_set1_id.3 | 175 + .../man/man3/SSL_SESSION_set1_id_context.3 | 1 + .../man/man3/SSL_SESSION_set1_master_key.3 | 1 + .../man3/SSL_SESSION_set1_ticket_appdata.3 | 1 + .../share/man/man3/SSL_SESSION_set_cipher.3 | 1 + .../share/man/man3/SSL_SESSION_set_ex_data.3 | 1 + .../man/man3/SSL_SESSION_set_max_early_data.3 | 1 + .../man3/SSL_SESSION_set_protocol_version.3 | 1 + .../share/man/man3/SSL_SESSION_set_time.3 | 1 + .../share/man/man3/SSL_SESSION_set_timeout.3 | 1 + .../share/man/man3/SSL_SESSION_up_ref.3 | 1 + rambus_sec_lib/share/man/man3/SSL_accept.3 | 201 + .../share/man/man3/SSL_add0_chain_cert.3 | 1 + .../share/man/man3/SSL_add1_chain_cert.3 | 1 + rambus_sec_lib/share/man/man3/SSL_add1_host.3 | 1 + .../share/man/man3/SSL_add1_to_CA_list.3 | 1 + .../share/man/man3/SSL_add_client_CA.3 | 1 + .../man3/SSL_add_dir_cert_subjects_to_stack.3 | 1 + .../SSL_add_file_cert_subjects_to_stack.3 | 1 + .../share/man/man3/SSL_alert_desc_string.3 | 1 + .../man/man3/SSL_alert_desc_string_long.3 | 1 + .../share/man/man3/SSL_alert_type_string.3 | 365 ++ .../man/man3/SSL_alert_type_string_long.3 | 1 + .../share/man/man3/SSL_alloc_buffers.3 | 189 + .../man/man3/SSL_allow_early_data_cb_fn.3 | 1 + .../share/man/man3/SSL_build_cert_chain.3 | 1 + .../share/man/man3/SSL_bytes_to_cipher_list.3 | 1 + .../share/man/man3/SSL_callback_ctrl.3 | 1 + .../share/man/man3/SSL_check_chain.3 | 221 + .../share/man/man3/SSL_check_private_key.3 | 1 + rambus_sec_lib/share/man/man3/SSL_clear.3 | 204 + .../share/man/man3/SSL_clear_chain_certs.3 | 1 + .../share/man/man3/SSL_clear_mode.3 | 1 + .../share/man/man3/SSL_clear_options.3 | 1 + .../share/man/man3/SSL_client_hello_cb_fn.3 | 1 + .../man/man3/SSL_client_hello_get0_ciphers.3 | 1 + ...SL_client_hello_get0_compression_methods.3 | 1 + .../man/man3/SSL_client_hello_get0_ext.3 | 1 + .../SSL_client_hello_get0_legacy_version.3 | 1 + .../man/man3/SSL_client_hello_get0_random.3 | 1 + .../man3/SSL_client_hello_get0_session_id.3 | 1 + ...SSL_client_hello_get1_extensions_present.3 | 1 + .../share/man/man3/SSL_client_hello_isv2.3 | 1 + .../share/man/man3/SSL_client_version.3 | 1 + rambus_sec_lib/share/man/man3/SSL_config.3 | 1 + rambus_sec_lib/share/man/man3/SSL_connect.3 | 216 + .../share/man/man3/SSL_ct_is_enabled.3 | 1 + rambus_sec_lib/share/man/man3/SSL_ctrl.3 | 1 + .../share/man/man3/SSL_dane_clear_flags.3 | 1 + .../share/man/man3/SSL_dane_enable.3 | 1 + .../share/man/man3/SSL_dane_set_flags.3 | 1 + .../share/man/man3/SSL_dane_tlsa_add.3 | 1 + .../share/man/man3/SSL_disable_ct.3 | 1 + .../share/man/man3/SSL_do_handshake.3 | 200 + rambus_sec_lib/share/man/man3/SSL_dup.3 | 1 + rambus_sec_lib/share/man/man3/SSL_enable_ct.3 | 1 + .../man/man3/SSL_export_keying_material.3 | 213 + .../man3/SSL_export_keying_material_early.3 | 1 + .../share/man/man3/SSL_extension_supported.3 | 395 ++ rambus_sec_lib/share/man/man3/SSL_free.3 | 182 + .../share/man/man3/SSL_free_buffers.3 | 1 + .../share/man/man3/SSL_get0_CA_list.3 | 1 + .../share/man/man3/SSL_get0_alpn_selected.3 | 1 + .../share/man/man3/SSL_get0_chain_certs.3 | 1 + .../share/man/man3/SSL_get0_dane_authority.3 | 1 + .../share/man/man3/SSL_get0_dane_tlsa.3 | 1 + .../man/man3/SSL_get0_next_proto_negotiated.3 | 1 + .../share/man/man3/SSL_get0_param.3 | 1 + .../share/man/man3/SSL_get0_peer_CA_list.3 | 1 + .../share/man/man3/SSL_get0_peer_scts.3 | 172 + .../share/man/man3/SSL_get0_peername.3 | 1 + .../man/man3/SSL_get0_security_ex_data.3 | 1 + .../share/man/man3/SSL_get0_session.3 | 1 + .../share/man/man3/SSL_get0_verified_chain.3 | 1 + .../share/man/man3/SSL_get1_curves.3 | 1 + .../share/man/man3/SSL_get1_groups.3 | 1 + .../share/man/man3/SSL_get1_session.3 | 1 + .../man/man3/SSL_get1_supported_ciphers.3 | 1 + .../share/man/man3/SSL_get_SSL_CTX.3 | 163 + .../share/man/man3/SSL_get_all_async_fds.3 | 209 + .../man/man3/SSL_get_changed_async_fds.3 | 1 + .../share/man/man3/SSL_get_cipher.3 | 1 + .../share/man/man3/SSL_get_cipher_bits.3 | 1 + .../share/man/man3/SSL_get_cipher_list.3 | 1 + .../share/man/man3/SSL_get_cipher_name.3 | 1 + .../share/man/man3/SSL_get_cipher_version.3 | 1 + .../share/man/man3/SSL_get_ciphers.3 | 237 + .../share/man/man3/SSL_get_client_CA_list.3 | 1 + .../share/man/man3/SSL_get_client_ciphers.3 | 1 + .../share/man/man3/SSL_get_client_random.3 | 225 + .../share/man/man3/SSL_get_current_cipher.3 | 196 + .../man/man3/SSL_get_default_passwd_cb.3 | 1 + .../man3/SSL_get_default_passwd_cb_userdata.3 | 1 + .../share/man/man3/SSL_get_default_timeout.3 | 177 + .../man/man3/SSL_get_early_data_status.3 | 1 + rambus_sec_lib/share/man/man3/SSL_get_error.3 | 300 + .../share/man/man3/SSL_get_ex_data.3 | 1 + .../man3/SSL_get_ex_data_X509_STORE_CTX_idx.3 | 1 + .../share/man/man3/SSL_get_extms_support.3 | 168 + rambus_sec_lib/share/man/man3/SSL_get_fd.3 | 175 + .../share/man/man3/SSL_get_info_callback.3 | 1 + .../share/man/man3/SSL_get_key_update_type.3 | 1 + .../share/man/man3/SSL_get_max_cert_list.3 | 1 + .../share/man/man3/SSL_get_max_early_data.3 | 1 + .../man/man3/SSL_get_max_proto_version.3 | 1 + .../man/man3/SSL_get_min_proto_version.3 | 1 + rambus_sec_lib/share/man/man3/SSL_get_mode.3 | 1 + .../share/man/man3/SSL_get_num_tickets.3 | 1 + .../share/man/man3/SSL_get_options.3 | 1 + .../share/man/man3/SSL_get_peer_cert_chain.3 | 197 + .../share/man/man3/SSL_get_peer_certificate.3 | 185 + .../man/man3/SSL_get_peer_signature_nid.3 | 179 + .../man3/SSL_get_peer_signature_type_nid.3 | 1 + .../share/man/man3/SSL_get_peer_tmp_key.3 | 179 + .../share/man/man3/SSL_get_pending_cipher.3 | 1 + .../share/man/man3/SSL_get_psk_identity.3 | 169 + .../man/man3/SSL_get_psk_identity_hint.3 | 1 + .../share/man/man3/SSL_get_quiet_shutdown.3 | 1 + rambus_sec_lib/share/man/man3/SSL_get_rbio.3 | 171 + .../share/man/man3/SSL_get_read_ahead.3 | 1 + .../SSL_get_record_padding_callback_arg.3 | 1 + .../man/man3/SSL_get_recv_max_early_data.3 | 1 + rambus_sec_lib/share/man/man3/SSL_get_rfd.3 | 1 + .../SSL_get_secure_renegotiation_support.3 | 1 + .../man/man3/SSL_get_security_callback.3 | 1 + .../share/man/man3/SSL_get_security_level.3 | 1 + .../man/man3/SSL_get_selected_srtp_profile.3 | 1 + .../share/man/man3/SSL_get_server_random.3 | 1 + .../share/man/man3/SSL_get_server_tmp_key.3 | 1 + .../share/man/man3/SSL_get_servername.3 | 1 + .../share/man/man3/SSL_get_servername_type.3 | 1 + .../share/man/man3/SSL_get_session.3 | 231 + .../share/man/man3/SSL_get_shared_ciphers.3 | 1 + .../share/man/man3/SSL_get_shared_curve.3 | 1 + .../share/man/man3/SSL_get_shared_group.3 | 1 + .../share/man/man3/SSL_get_shared_sigalgs.3 | 215 + .../share/man/man3/SSL_get_shutdown.3 | 1 + .../share/man/man3/SSL_get_sigalgs.3 | 1 + .../share/man/man3/SSL_get_signature_nid.3 | 1 + .../man/man3/SSL_get_signature_type_nid.3 | 1 + .../share/man/man3/SSL_get_srtp_profiles.3 | 1 + .../share/man/man3/SSL_get_ssl_method.3 | 1 + rambus_sec_lib/share/man/man3/SSL_get_state.3 | 1 + rambus_sec_lib/share/man/man3/SSL_get_time.3 | 1 + .../share/man/man3/SSL_get_timeout.3 | 1 + .../man3/SSL_get_tlsext_status_ocsp_resp.3 | 1 + .../man/man3/SSL_get_tlsext_status_type.3 | 1 + .../share/man/man3/SSL_get_tmp_key.3 | 1 + .../share/man/man3/SSL_get_verify_callback.3 | 1 + .../share/man/man3/SSL_get_verify_depth.3 | 1 + .../share/man/man3/SSL_get_verify_mode.3 | 1 + .../share/man/man3/SSL_get_verify_result.3 | 186 + .../share/man/man3/SSL_get_version.3 | 217 + rambus_sec_lib/share/man/man3/SSL_get_wbio.3 | 1 + rambus_sec_lib/share/man/man3/SSL_get_wfd.3 | 1 + .../man/man3/SSL_has_matching_session_id.3 | 1 + .../share/man/man3/SSL_has_pending.3 | 1 + .../share/man/man3/SSL_in_accept_init.3 | 1 + rambus_sec_lib/share/man/man3/SSL_in_before.3 | 1 + .../share/man/man3/SSL_in_connect_init.3 | 1 + rambus_sec_lib/share/man/man3/SSL_in_init.3 | 223 + rambus_sec_lib/share/man/man3/SSL_is_dtls.3 | 1 + .../share/man/man3/SSL_is_init_finished.3 | 1 + rambus_sec_lib/share/man/man3/SSL_is_server.3 | 1 + .../share/man/man3/SSL_key_update.3 | 232 + .../share/man/man3/SSL_library_init.3 | 181 + .../share/man/man3/SSL_load_client_CA_file.3 | 205 + .../share/man/man3/SSL_load_error_strings.3 | 1 + rambus_sec_lib/share/man/man3/SSL_new.3 | 248 + rambus_sec_lib/share/man/man3/SSL_peek.3 | 1 + rambus_sec_lib/share/man/man3/SSL_peek_ex.3 | 1 + rambus_sec_lib/share/man/man3/SSL_pending.3 | 195 + .../share/man/man3/SSL_psk_client_cb_func.3 | 1 + .../man/man3/SSL_psk_find_session_cb_func.3 | 1 + .../share/man/man3/SSL_psk_server_cb_func.3 | 1 + .../man/man3/SSL_psk_use_session_cb_func.3 | 1 + rambus_sec_lib/share/man/man3/SSL_read.3 | 271 + .../share/man/man3/SSL_read_early_data.3 | 477 ++ rambus_sec_lib/share/man/man3/SSL_read_ex.3 | 1 + .../share/man/man3/SSL_renegotiate.3 | 1 + .../man/man3/SSL_renegotiate_abbreviated.3 | 1 + .../share/man/man3/SSL_renegotiate_pending.3 | 1 + .../share/man/man3/SSL_rstate_string.3 | 191 + .../share/man/man3/SSL_rstate_string_long.3 | 1 + .../share/man/man3/SSL_select_current_cert.3 | 1 + .../share/man/man3/SSL_select_next_proto.3 | 1 + .../share/man/man3/SSL_session_reused.3 | 174 + .../share/man/man3/SSL_set0_CA_list.3 | 1 + .../share/man/man3/SSL_set0_chain.3 | 1 + .../man/man3/SSL_set0_chain_cert_store.3 | 1 + rambus_sec_lib/share/man/man3/SSL_set0_rbio.3 | 1 + .../man/man3/SSL_set0_security_ex_data.3 | 1 + .../man/man3/SSL_set0_verify_cert_store.3 | 1 + rambus_sec_lib/share/man/man3/SSL_set0_wbio.3 | 1 + .../share/man/man3/SSL_set1_chain.3 | 1 + .../man/man3/SSL_set1_chain_cert_store.3 | 1 + .../share/man/man3/SSL_set1_client_sigalgs.3 | 1 + .../man/man3/SSL_set1_client_sigalgs_list.3 | 1 + .../share/man/man3/SSL_set1_curves.3 | 1 + .../share/man/man3/SSL_set1_curves_list.3 | 1 + .../share/man/man3/SSL_set1_groups.3 | 1 + .../share/man/man3/SSL_set1_groups_list.3 | 1 + rambus_sec_lib/share/man/man3/SSL_set1_host.3 | 245 + .../share/man/man3/SSL_set1_param.3 | 1 + .../share/man/man3/SSL_set1_sigalgs.3 | 1 + .../share/man/man3/SSL_set1_sigalgs_list.3 | 1 + .../man/man3/SSL_set1_verify_cert_store.3 | 1 + .../share/man/man3/SSL_set_accept_state.3 | 1 + .../man/man3/SSL_set_allow_early_data_cb.3 | 1 + .../share/man/man3/SSL_set_alpn_protos.3 | 1 + rambus_sec_lib/share/man/man3/SSL_set_bio.3 | 223 + .../share/man/man3/SSL_set_block_padding.3 | 1 + .../share/man/man3/SSL_set_cert_cb.3 | 1 + .../share/man/man3/SSL_set_cipher_list.3 | 1 + .../share/man/man3/SSL_set_ciphersuites.3 | 1 + .../share/man/man3/SSL_set_client_CA_list.3 | 1 + .../share/man/man3/SSL_set_connect_state.3 | 203 + .../man/man3/SSL_set_ct_validation_callback.3 | 1 + .../share/man/man3/SSL_set_current_cert.3 | 1 + .../man/man3/SSL_set_default_passwd_cb.3 | 1 + .../man3/SSL_set_default_passwd_cb_userdata.3 | 1 + .../man3/SSL_set_default_read_buffer_len.3 | 1 + .../share/man/man3/SSL_set_ex_data.3 | 1 + rambus_sec_lib/share/man/man3/SSL_set_fd.3 | 184 + .../man/man3/SSL_set_generate_session_id.3 | 1 + .../share/man/man3/SSL_set_hostflags.3 | 1 + .../share/man/man3/SSL_set_info_callback.3 | 1 + .../share/man/man3/SSL_set_max_cert_list.3 | 1 + .../share/man/man3/SSL_set_max_early_data.3 | 1 + .../share/man/man3/SSL_set_max_pipelines.3 | 1 + .../man/man3/SSL_set_max_proto_version.3 | 1 + .../man/man3/SSL_set_max_send_fragment.3 | 1 + .../man/man3/SSL_set_min_proto_version.3 | 1 + rambus_sec_lib/share/man/man3/SSL_set_mode.3 | 1 + .../share/man/man3/SSL_set_msg_callback.3 | 1 + .../share/man/man3/SSL_set_msg_callback_arg.3 | 1 + .../share/man/man3/SSL_set_num_tickets.3 | 1 + .../share/man/man3/SSL_set_options.3 | 1 + .../man/man3/SSL_set_post_handshake_auth.3 | 1 + .../man/man3/SSL_set_psk_client_callback.3 | 1 + .../man3/SSL_set_psk_find_session_callback.3 | 1 + .../man/man3/SSL_set_psk_server_callback.3 | 1 + .../man3/SSL_set_psk_use_session_callback.3 | 1 + .../share/man/man3/SSL_set_quiet_shutdown.3 | 1 + .../share/man/man3/SSL_set_read_ahead.3 | 1 + .../man3/SSL_set_record_padding_callback.3 | 1 + .../SSL_set_record_padding_callback_arg.3 | 1 + .../man/man3/SSL_set_recv_max_early_data.3 | 1 + rambus_sec_lib/share/man/man3/SSL_set_rfd.3 | 1 + .../man/man3/SSL_set_security_callback.3 | 1 + .../share/man/man3/SSL_set_security_level.3 | 1 + .../share/man/man3/SSL_set_session.3 | 190 + .../man/man3/SSL_set_session_id_context.3 | 1 + .../share/man/man3/SSL_set_shutdown.3 | 200 + .../man/man3/SSL_set_split_send_fragment.3 | 1 + .../share/man/man3/SSL_set_ssl_method.3 | 1 + rambus_sec_lib/share/man/man3/SSL_set_time.3 | 1 + .../share/man/man3/SSL_set_timeout.3 | 1 + .../share/man/man3/SSL_set_tlsext_host_name.3 | 1 + .../man3/SSL_set_tlsext_max_fragment_length.3 | 1 + .../man3/SSL_set_tlsext_status_ocsp_resp.3 | 1 + .../man/man3/SSL_set_tlsext_status_type.3 | 1 + .../share/man/man3/SSL_set_tlsext_use_srtp.3 | 1 + .../share/man/man3/SSL_set_tmp_dh.3 | 1 + .../share/man/man3/SSL_set_tmp_dh_callback.3 | 1 + .../share/man/man3/SSL_set_verify.3 | 1 + .../share/man/man3/SSL_set_verify_depth.3 | 1 + .../share/man/man3/SSL_set_verify_result.3 | 174 + rambus_sec_lib/share/man/man3/SSL_set_wfd.3 | 1 + rambus_sec_lib/share/man/man3/SSL_shutdown.3 | 295 + .../share/man/man3/SSL_state_string.3 | 181 + .../share/man/man3/SSL_state_string_long.3 | 1 + rambus_sec_lib/share/man/man3/SSL_stateless.3 | 1 + rambus_sec_lib/share/man/man3/SSL_up_ref.3 | 1 + .../share/man/man3/SSL_use_PrivateKey.3 | 1 + .../share/man/man3/SSL_use_PrivateKey_ASN1.3 | 1 + .../share/man/man3/SSL_use_PrivateKey_file.3 | 1 + .../share/man/man3/SSL_use_RSAPrivateKey.3 | 1 + .../man/man3/SSL_use_RSAPrivateKey_ASN1.3 | 1 + .../man/man3/SSL_use_RSAPrivateKey_file.3 | 1 + .../share/man/man3/SSL_use_cert_and_key.3 | 1 + .../share/man/man3/SSL_use_certificate.3 | 1 + .../share/man/man3/SSL_use_certificate_ASN1.3 | 1 + .../man/man3/SSL_use_certificate_chain_file.3 | 1 + .../share/man/man3/SSL_use_certificate_file.3 | 1 + .../man/man3/SSL_use_psk_identity_hint.3 | 1 + rambus_sec_lib/share/man/man3/SSL_verify_cb.3 | 1 + .../man3/SSL_verify_client_post_handshake.3 | 1 + rambus_sec_lib/share/man/man3/SSL_version.3 | 1 + .../share/man/man3/SSL_waiting_for_async.3 | 1 + rambus_sec_lib/share/man/man3/SSL_want.3 | 229 + .../share/man/man3/SSL_want_async.3 | 1 + .../share/man/man3/SSL_want_async_job.3 | 1 + .../share/man/man3/SSL_want_client_hello_cb.3 | 1 + .../share/man/man3/SSL_want_nothing.3 | 1 + rambus_sec_lib/share/man/man3/SSL_want_read.3 | 1 + .../share/man/man3/SSL_want_write.3 | 1 + .../share/man/man3/SSL_want_x509_lookup.3 | 1 + rambus_sec_lib/share/man/man3/SSL_write.3 | 247 + .../share/man/man3/SSL_write_early_data.3 | 1 + rambus_sec_lib/share/man/man3/SSL_write_ex.3 | 1 + .../share/man/man3/SSLv23_client_method.3 | 1 + rambus_sec_lib/share/man/man3/SSLv23_method.3 | 1 + .../share/man/man3/SSLv23_server_method.3 | 1 + .../share/man/man3/SSLv3_client_method.3 | 1 + rambus_sec_lib/share/man/man3/SSLv3_method.3 | 1 + .../share/man/man3/SSLv3_server_method.3 | 1 + rambus_sec_lib/share/man/man3/SXNETID_free.3 | 1 + rambus_sec_lib/share/man/man3/SXNETID_new.3 | 1 + rambus_sec_lib/share/man/man3/SXNET_free.3 | 1 + rambus_sec_lib/share/man/man3/SXNET_new.3 | 1 + .../share/man/man3/TLS_FEATURE_free.3 | 1 + .../share/man/man3/TLS_FEATURE_new.3 | 1 + .../share/man/man3/TLS_client_method.3 | 1 + rambus_sec_lib/share/man/man3/TLS_method.3 | 1 + .../share/man/man3/TLS_server_method.3 | 1 + .../share/man/man3/TLSv1_1_client_method.3 | 1 + .../share/man/man3/TLSv1_1_method.3 | 1 + .../share/man/man3/TLSv1_1_server_method.3 | 1 + .../share/man/man3/TLSv1_2_client_method.3 | 1 + .../share/man/man3/TLSv1_2_method.3 | 1 + .../share/man/man3/TLSv1_2_server_method.3 | 1 + .../share/man/man3/TLSv1_client_method.3 | 1 + rambus_sec_lib/share/man/man3/TLSv1_method.3 | 1 + .../share/man/man3/TLSv1_server_method.3 | 1 + .../share/man/man3/TS_ACCURACY_dup.3 | 1 + .../share/man/man3/TS_ACCURACY_free.3 | 1 + .../share/man/man3/TS_ACCURACY_new.3 | 1 + .../share/man/man3/TS_MSG_IMPRINT_dup.3 | 1 + .../share/man/man3/TS_MSG_IMPRINT_free.3 | 1 + .../share/man/man3/TS_MSG_IMPRINT_new.3 | 1 + rambus_sec_lib/share/man/man3/TS_REQ_dup.3 | 1 + rambus_sec_lib/share/man/man3/TS_REQ_free.3 | 1 + rambus_sec_lib/share/man/man3/TS_REQ_new.3 | 1 + rambus_sec_lib/share/man/man3/TS_RESP_dup.3 | 1 + rambus_sec_lib/share/man/man3/TS_RESP_free.3 | 1 + rambus_sec_lib/share/man/man3/TS_RESP_new.3 | 1 + .../share/man/man3/TS_STATUS_INFO_dup.3 | 1 + .../share/man/man3/TS_STATUS_INFO_free.3 | 1 + .../share/man/man3/TS_STATUS_INFO_new.3 | 1 + .../share/man/man3/TS_TST_INFO_dup.3 | 1 + .../share/man/man3/TS_TST_INFO_free.3 | 1 + .../share/man/man3/TS_TST_INFO_new.3 | 1 + rambus_sec_lib/share/man/man3/UI.3 | 1 + rambus_sec_lib/share/man/man3/UI_METHOD.3 | 1 + rambus_sec_lib/share/man/man3/UI_OpenSSL.3 | 1 + rambus_sec_lib/share/man/man3/UI_STRING.3 | 270 + .../share/man/man3/UI_UTIL_read_pw.3 | 198 + .../share/man/man3/UI_UTIL_read_pw_string.3 | 1 + .../man/man3/UI_UTIL_wrap_read_pem_callback.3 | 1 + .../share/man/man3/UI_add_error_string.3 | 1 + .../share/man/man3/UI_add_info_string.3 | 1 + .../share/man/man3/UI_add_input_boolean.3 | 1 + .../share/man/man3/UI_add_input_string.3 | 1 + .../share/man/man3/UI_add_user_data.3 | 1 + .../share/man/man3/UI_add_verify_string.3 | 1 + .../share/man/man3/UI_construct_prompt.3 | 1 + .../share/man/man3/UI_create_method.3 | 315 + rambus_sec_lib/share/man/man3/UI_ctrl.3 | 1 + .../share/man/man3/UI_destroy_method.3 | 1 + .../share/man/man3/UI_dup_error_string.3 | 1 + .../share/man/man3/UI_dup_info_string.3 | 1 + .../share/man/man3/UI_dup_input_boolean.3 | 1 + .../share/man/man3/UI_dup_input_string.3 | 1 + .../share/man/man3/UI_dup_user_data.3 | 1 + .../share/man/man3/UI_dup_verify_string.3 | 1 + rambus_sec_lib/share/man/man3/UI_free.3 | 1 + .../share/man/man3/UI_get0_action_string.3 | 1 + .../share/man/man3/UI_get0_output_string.3 | 1 + .../share/man/man3/UI_get0_result.3 | 1 + .../share/man/man3/UI_get0_result_string.3 | 1 + .../share/man/man3/UI_get0_test_string.3 | 1 + .../share/man/man3/UI_get0_user_data.3 | 1 + .../share/man/man3/UI_get_default_method.3 | 1 + .../share/man/man3/UI_get_ex_data.3 | 1 + .../share/man/man3/UI_get_ex_new_index.3 | 1 + .../share/man/man3/UI_get_input_flags.3 | 1 + rambus_sec_lib/share/man/man3/UI_get_method.3 | 1 + .../share/man/man3/UI_get_result_length.3 | 1 + .../share/man/man3/UI_get_result_maxsize.3 | 1 + .../share/man/man3/UI_get_result_minsize.3 | 1 + .../man/man3/UI_get_result_string_length.3 | 1 + .../share/man/man3/UI_get_string_type.3 | 1 + .../share/man/man3/UI_method_get_closer.3 | 1 + .../man/man3/UI_method_get_data_destructor.3 | 1 + .../man/man3/UI_method_get_data_duplicator.3 | 1 + .../share/man/man3/UI_method_get_ex_data.3 | 1 + .../share/man/man3/UI_method_get_flusher.3 | 1 + .../share/man/man3/UI_method_get_opener.3 | 1 + .../man3/UI_method_get_prompt_constructor.3 | 1 + .../share/man/man3/UI_method_get_reader.3 | 1 + .../share/man/man3/UI_method_get_writer.3 | 1 + .../share/man/man3/UI_method_set_closer.3 | 1 + .../man/man3/UI_method_set_data_duplicator.3 | 1 + .../share/man/man3/UI_method_set_ex_data.3 | 1 + .../share/man/man3/UI_method_set_flusher.3 | 1 + .../share/man/man3/UI_method_set_opener.3 | 1 + .../man3/UI_method_set_prompt_constructor.3 | 1 + .../share/man/man3/UI_method_set_reader.3 | 1 + .../share/man/man3/UI_method_set_writer.3 | 1 + rambus_sec_lib/share/man/man3/UI_new.3 | 372 ++ rambus_sec_lib/share/man/man3/UI_new_method.3 | 1 + rambus_sec_lib/share/man/man3/UI_null.3 | 1 + rambus_sec_lib/share/man/man3/UI_process.3 | 1 + .../share/man/man3/UI_set_default_method.3 | 1 + .../share/man/man3/UI_set_ex_data.3 | 1 + rambus_sec_lib/share/man/man3/UI_set_method.3 | 1 + rambus_sec_lib/share/man/man3/UI_set_result.3 | 1 + .../share/man/man3/UI_set_result_ex.3 | 1 + .../share/man/man3/UI_string_types.3 | 1 + .../share/man/man3/USERNOTICE_free.3 | 1 + .../share/man/man3/USERNOTICE_new.3 | 1 + .../share/man/man3/X509V3_EXT_d2i.3 | 1 + .../share/man/man3/X509V3_EXT_i2d.3 | 1 + .../share/man/man3/X509V3_add1_i2d.3 | 1 + .../share/man/man3/X509V3_get_d2i.3 | 371 ++ .../share/man/man3/X509_ALGOR_cmp.3 | 1 + .../share/man/man3/X509_ALGOR_copy.3 | 1 + .../share/man/man3/X509_ALGOR_dup.3 | 196 + .../share/man/man3/X509_ALGOR_free.3 | 1 + .../share/man/man3/X509_ALGOR_get0.3 | 1 + .../share/man/man3/X509_ALGOR_new.3 | 1 + .../share/man/man3/X509_ALGOR_set0.3 | 1 + .../share/man/man3/X509_ALGOR_set_md.3 | 1 + .../share/man/man3/X509_ATTRIBUTE_dup.3 | 1 + .../share/man/man3/X509_ATTRIBUTE_free.3 | 1 + .../share/man/man3/X509_ATTRIBUTE_new.3 | 1 + .../share/man/man3/X509_CERT_AUX_free.3 | 1 + .../share/man/man3/X509_CERT_AUX_new.3 | 1 + .../share/man/man3/X509_CINF_free.3 | 1 + rambus_sec_lib/share/man/man3/X509_CINF_new.3 | 1 + .../share/man/man3/X509_CRL_INFO_free.3 | 1 + .../share/man/man3/X509_CRL_INFO_new.3 | 1 + .../share/man/man3/X509_CRL_add0_revoked.3 | 1 + .../share/man/man3/X509_CRL_add1_ext_i2d.3 | 1 + .../share/man/man3/X509_CRL_add_ext.3 | 1 + rambus_sec_lib/share/man/man3/X509_CRL_cmp.3 | 1 + .../share/man/man3/X509_CRL_delete_ext.3 | 1 + .../share/man/man3/X509_CRL_digest.3 | 1 + rambus_sec_lib/share/man/man3/X509_CRL_dup.3 | 1 + rambus_sec_lib/share/man/man3/X509_CRL_free.3 | 1 + .../share/man/man3/X509_CRL_get0_by_cert.3 | 1 + .../share/man/man3/X509_CRL_get0_by_serial.3 | 238 + .../share/man/man3/X509_CRL_get0_extensions.3 | 1 + .../share/man/man3/X509_CRL_get0_lastUpdate.3 | 1 + .../share/man/man3/X509_CRL_get0_nextUpdate.3 | 1 + .../share/man/man3/X509_CRL_get0_signature.3 | 1 + .../share/man/man3/X509_CRL_get_REVOKED.3 | 1 + .../share/man/man3/X509_CRL_get_ext.3 | 1 + .../share/man/man3/X509_CRL_get_ext_by_NID.3 | 1 + .../share/man/man3/X509_CRL_get_ext_by_OBJ.3 | 1 + .../man/man3/X509_CRL_get_ext_by_critical.3 | 1 + .../share/man/man3/X509_CRL_get_ext_count.3 | 1 + .../share/man/man3/X509_CRL_get_ext_d2i.3 | 1 + .../share/man/man3/X509_CRL_get_issuer.3 | 1 + .../man/man3/X509_CRL_get_signature_nid.3 | 1 + .../share/man/man3/X509_CRL_get_version.3 | 1 + .../share/man/man3/X509_CRL_match.3 | 1 + rambus_sec_lib/share/man/man3/X509_CRL_new.3 | 1 + .../share/man/man3/X509_CRL_set1_lastUpdate.3 | 1 + .../share/man/man3/X509_CRL_set1_nextUpdate.3 | 1 + .../share/man/man3/X509_CRL_set_issuer_name.3 | 1 + .../share/man/man3/X509_CRL_set_version.3 | 1 + rambus_sec_lib/share/man/man3/X509_CRL_sign.3 | 1 + .../share/man/man3/X509_CRL_sign_ctx.3 | 1 + rambus_sec_lib/share/man/man3/X509_CRL_sort.3 | 1 + .../share/man/man3/X509_CRL_verify.3 | 1 + .../man/man3/X509_EXTENSION_create_by_NID.3 | 1 + .../man/man3/X509_EXTENSION_create_by_OBJ.3 | 1 + .../share/man/man3/X509_EXTENSION_dup.3 | 1 + .../share/man/man3/X509_EXTENSION_free.3 | 1 + .../man/man3/X509_EXTENSION_get_critical.3 | 1 + .../share/man/man3/X509_EXTENSION_get_data.3 | 1 + .../man/man3/X509_EXTENSION_get_object.3 | 1 + .../share/man/man3/X509_EXTENSION_new.3 | 1 + .../man/man3/X509_EXTENSION_set_critical.3 | 1 + .../share/man/man3/X509_EXTENSION_set_data.3 | 1 + .../man/man3/X509_EXTENSION_set_object.3 | 219 + rambus_sec_lib/share/man/man3/X509_LOOKUP.3 | 306 + .../share/man/man3/X509_LOOKUP_METHOD.3 | 1 + .../share/man/man3/X509_LOOKUP_TYPE.3 | 1 + .../share/man/man3/X509_LOOKUP_add_dir.3 | 1 + .../share/man/man3/X509_LOOKUP_by_alias.3 | 1 + .../man/man3/X509_LOOKUP_by_fingerprint.3 | 1 + .../man/man3/X509_LOOKUP_by_issuer_serial.3 | 1 + .../share/man/man3/X509_LOOKUP_by_subject.3 | 1 + .../share/man/man3/X509_LOOKUP_ctrl.3 | 1 + .../share/man/man3/X509_LOOKUP_ctrl_fn.3 | 1 + .../share/man/man3/X509_LOOKUP_file.3 | 1 + .../share/man/man3/X509_LOOKUP_free.3 | 1 + .../man/man3/X509_LOOKUP_get_by_alias_fn.3 | 1 + .../man3/X509_LOOKUP_get_by_fingerprint_fn.3 | 1 + .../X509_LOOKUP_get_by_issuer_serial_fn.3 | 1 + .../man/man3/X509_LOOKUP_get_by_subject_fn.3 | 1 + .../man/man3/X509_LOOKUP_get_method_data.3 | 1 + .../share/man/man3/X509_LOOKUP_get_store.3 | 1 + .../share/man/man3/X509_LOOKUP_hash_dir.3 | 260 + .../share/man/man3/X509_LOOKUP_init.3 | 1 + .../share/man/man3/X509_LOOKUP_load_file.3 | 1 + .../share/man/man3/X509_LOOKUP_meth_free.3 | 1 + .../man/man3/X509_LOOKUP_meth_get_ctrl.3 | 1 + .../man/man3/X509_LOOKUP_meth_get_free.3 | 1 + .../man3/X509_LOOKUP_meth_get_get_by_alias.3 | 1 + .../X509_LOOKUP_meth_get_get_by_fingerprint.3 | 1 + ...509_LOOKUP_meth_get_get_by_issuer_serial.3 | 1 + .../X509_LOOKUP_meth_get_get_by_subject.3 | 1 + .../man/man3/X509_LOOKUP_meth_get_init.3 | 1 + .../man/man3/X509_LOOKUP_meth_get_new_item.3 | 1 + .../man/man3/X509_LOOKUP_meth_get_shutdown.3 | 1 + .../share/man/man3/X509_LOOKUP_meth_new.3 | 306 + .../man/man3/X509_LOOKUP_meth_set_ctrl.3 | 1 + .../man/man3/X509_LOOKUP_meth_set_free.3 | 1 + .../man3/X509_LOOKUP_meth_set_get_by_alias.3 | 1 + .../X509_LOOKUP_meth_set_get_by_fingerprint.3 | 1 + ...509_LOOKUP_meth_set_get_by_issuer_serial.3 | 1 + .../X509_LOOKUP_meth_set_get_by_subject.3 | 1 + .../man/man3/X509_LOOKUP_meth_set_init.3 | 1 + .../man/man3/X509_LOOKUP_meth_set_new_item.3 | 1 + .../man/man3/X509_LOOKUP_meth_set_shutdown.3 | 1 + .../share/man/man3/X509_LOOKUP_new.3 | 1 + .../man/man3/X509_LOOKUP_set_method_data.3 | 1 + .../share/man/man3/X509_LOOKUP_shutdown.3 | 1 + .../man/man3/X509_NAME_ENTRY_create_by_NID.3 | 1 + .../man/man3/X509_NAME_ENTRY_create_by_OBJ.3 | 1 + .../man/man3/X509_NAME_ENTRY_create_by_txt.3 | 1 + .../share/man/man3/X509_NAME_ENTRY_dup.3 | 1 + .../share/man/man3/X509_NAME_ENTRY_free.3 | 1 + .../share/man/man3/X509_NAME_ENTRY_get_data.3 | 1 + .../man/man3/X509_NAME_ENTRY_get_object.3 | 220 + .../share/man/man3/X509_NAME_ENTRY_new.3 | 1 + .../share/man/man3/X509_NAME_ENTRY_set_data.3 | 1 + .../man/man3/X509_NAME_ENTRY_set_object.3 | 1 + .../share/man/man3/X509_NAME_add_entry.3 | 1 + .../man/man3/X509_NAME_add_entry_by_NID.3 | 1 + .../man/man3/X509_NAME_add_entry_by_OBJ.3 | 1 + .../man/man3/X509_NAME_add_entry_by_txt.3 | 253 + rambus_sec_lib/share/man/man3/X509_NAME_cmp.3 | 1 + .../share/man/man3/X509_NAME_delete_entry.3 | 1 + .../share/man/man3/X509_NAME_digest.3 | 1 + rambus_sec_lib/share/man/man3/X509_NAME_dup.3 | 1 + .../share/man/man3/X509_NAME_entry_count.3 | 1 + .../share/man/man3/X509_NAME_free.3 | 1 + .../share/man/man3/X509_NAME_get0_der.3 | 167 + .../share/man/man3/X509_NAME_get_entry.3 | 1 + .../man/man3/X509_NAME_get_index_by_NID.3 | 250 + .../man/man3/X509_NAME_get_index_by_OBJ.3 | 1 + .../man/man3/X509_NAME_get_text_by_NID.3 | 1 + .../man/man3/X509_NAME_get_text_by_OBJ.3 | 1 + rambus_sec_lib/share/man/man3/X509_NAME_new.3 | 1 + .../share/man/man3/X509_NAME_oneline.3 | 1 + .../share/man/man3/X509_NAME_print.3 | 1 + .../share/man/man3/X509_NAME_print_ex.3 | 248 + .../share/man/man3/X509_NAME_print_ex_fp.3 | 1 + .../share/man/man3/X509_OBJECT_set1_X509.3 | 1 + .../man/man3/X509_OBJECT_set1_X509_CRL.3 | 1 + .../share/man/man3/X509_PUBKEY_free.3 | 1 + .../share/man/man3/X509_PUBKEY_get.3 | 1 + .../share/man/man3/X509_PUBKEY_get0.3 | 1 + .../share/man/man3/X509_PUBKEY_get0_param.3 | 1 + .../share/man/man3/X509_PUBKEY_new.3 | 244 + .../share/man/man3/X509_PUBKEY_set.3 | 1 + .../share/man/man3/X509_PUBKEY_set0_param.3 | 1 + .../share/man/man3/X509_REQ_INFO_free.3 | 1 + .../share/man/man3/X509_REQ_INFO_new.3 | 1 + .../man/man3/X509_REQ_check_private_key.3 | 1 + .../share/man/man3/X509_REQ_digest.3 | 1 + rambus_sec_lib/share/man/man3/X509_REQ_dup.3 | 1 + rambus_sec_lib/share/man/man3/X509_REQ_free.3 | 1 + .../share/man/man3/X509_REQ_get0_pubkey.3 | 1 + .../share/man/man3/X509_REQ_get0_signature.3 | 1 + .../share/man/man3/X509_REQ_get_X509_PUBKEY.3 | 1 + .../share/man/man3/X509_REQ_get_pubkey.3 | 1 + .../man/man3/X509_REQ_get_signature_nid.3 | 1 + .../man/man3/X509_REQ_get_subject_name.3 | 1 + .../share/man/man3/X509_REQ_get_version.3 | 1 + rambus_sec_lib/share/man/man3/X509_REQ_new.3 | 1 + .../share/man/man3/X509_REQ_set0_signature.3 | 1 + .../man/man3/X509_REQ_set1_signature_algo.3 | 1 + .../share/man/man3/X509_REQ_set_pubkey.3 | 1 + .../man/man3/X509_REQ_set_subject_name.3 | 1 + .../share/man/man3/X509_REQ_set_version.3 | 1 + rambus_sec_lib/share/man/man3/X509_REQ_sign.3 | 1 + .../share/man/man3/X509_REQ_sign_ctx.3 | 1 + .../share/man/man3/X509_REQ_verify.3 | 1 + .../man/man3/X509_REVOKED_add1_ext_i2d.3 | 1 + .../share/man/man3/X509_REVOKED_add_ext.3 | 1 + .../share/man/man3/X509_REVOKED_delete_ext.3 | 1 + .../share/man/man3/X509_REVOKED_dup.3 | 1 + .../share/man/man3/X509_REVOKED_free.3 | 1 + .../man/man3/X509_REVOKED_get0_extensions.3 | 1 + .../man3/X509_REVOKED_get0_revocationDate.3 | 1 + .../man/man3/X509_REVOKED_get0_serialNumber.3 | 1 + .../share/man/man3/X509_REVOKED_get_ext.3 | 1 + .../man/man3/X509_REVOKED_get_ext_by_NID.3 | 1 + .../man/man3/X509_REVOKED_get_ext_by_OBJ.3 | 1 + .../man3/X509_REVOKED_get_ext_by_critical.3 | 1 + .../man/man3/X509_REVOKED_get_ext_count.3 | 1 + .../share/man/man3/X509_REVOKED_get_ext_d2i.3 | 1 + .../share/man/man3/X509_REVOKED_new.3 | 1 + .../man3/X509_REVOKED_set_revocationDate.3 | 1 + .../man/man3/X509_REVOKED_set_serialNumber.3 | 1 + .../share/man/man3/X509_SIG_INFO_get.3 | 1 + .../share/man/man3/X509_SIG_INFO_set.3 | 1 + rambus_sec_lib/share/man/man3/X509_SIG_free.3 | 1 + rambus_sec_lib/share/man/man3/X509_SIG_get0.3 | 168 + rambus_sec_lib/share/man/man3/X509_SIG_getm.3 | 1 + rambus_sec_lib/share/man/man3/X509_SIG_new.3 | 1 + rambus_sec_lib/share/man/man3/X509_STORE.3 | 1 + .../man/man3/X509_STORE_CTX_cert_crl_fn.3 | 1 + .../man/man3/X509_STORE_CTX_check_crl_fn.3 | 1 + .../man/man3/X509_STORE_CTX_check_issued_fn.3 | 1 + .../man/man3/X509_STORE_CTX_check_policy_fn.3 | 1 + .../man3/X509_STORE_CTX_check_revocation_fn.3 | 1 + .../share/man/man3/X509_STORE_CTX_cleanup.3 | 1 + .../man/man3/X509_STORE_CTX_cleanup_fn.3 | 1 + .../share/man/man3/X509_STORE_CTX_free.3 | 1 + .../share/man/man3/X509_STORE_CTX_get0_cert.3 | 1 + .../man/man3/X509_STORE_CTX_get0_chain.3 | 1 + .../man/man3/X509_STORE_CTX_get0_param.3 | 1 + .../man/man3/X509_STORE_CTX_get0_untrusted.3 | 1 + .../man/man3/X509_STORE_CTX_get1_chain.3 | 1 + .../man/man3/X509_STORE_CTX_get_cert_crl.3 | 1 + .../man/man3/X509_STORE_CTX_get_check_crl.3 | 1 + .../man3/X509_STORE_CTX_get_check_issued.3 | 1 + .../man3/X509_STORE_CTX_get_check_policy.3 | 1 + .../X509_STORE_CTX_get_check_revocation.3 | 1 + .../man/man3/X509_STORE_CTX_get_cleanup.3 | 1 + .../man/man3/X509_STORE_CTX_get_crl_fn.3 | 1 + .../man3/X509_STORE_CTX_get_current_cert.3 | 1 + .../share/man/man3/X509_STORE_CTX_get_error.3 | 412 ++ .../man/man3/X509_STORE_CTX_get_error_depth.3 | 1 + .../man/man3/X509_STORE_CTX_get_ex_data.3 | 1 + .../man3/X509_STORE_CTX_get_ex_new_index.3 | 1 + .../man/man3/X509_STORE_CTX_get_get_crl.3 | 1 + .../man/man3/X509_STORE_CTX_get_get_issuer.3 | 1 + .../man/man3/X509_STORE_CTX_get_issuer_fn.3 | 1 + .../man3/X509_STORE_CTX_get_lookup_certs.3 | 1 + .../man/man3/X509_STORE_CTX_get_lookup_crls.3 | 1 + .../man3/X509_STORE_CTX_get_num_untrusted.3 | 1 + .../man/man3/X509_STORE_CTX_get_verify.3 | 1 + .../man/man3/X509_STORE_CTX_get_verify_cb.3 | 1 + .../share/man/man3/X509_STORE_CTX_init.3 | 1 + .../man/man3/X509_STORE_CTX_lookup_certs_fn.3 | 1 + .../man/man3/X509_STORE_CTX_lookup_crls_fn.3 | 1 + .../share/man/man3/X509_STORE_CTX_new.3 | 291 + .../share/man/man3/X509_STORE_CTX_set0_crls.3 | 1 + .../man/man3/X509_STORE_CTX_set0_param.3 | 1 + .../man3/X509_STORE_CTX_set0_trusted_stack.3 | 1 + .../man/man3/X509_STORE_CTX_set0_untrusted.3 | 1 + .../man3/X509_STORE_CTX_set0_verified_chain.3 | 1 + .../share/man/man3/X509_STORE_CTX_set_cert.3 | 1 + .../man3/X509_STORE_CTX_set_current_cert.3 | 1 + .../man/man3/X509_STORE_CTX_set_default.3 | 1 + .../share/man/man3/X509_STORE_CTX_set_error.3 | 1 + .../man/man3/X509_STORE_CTX_set_error_depth.3 | 1 + .../man/man3/X509_STORE_CTX_set_ex_data.3 | 1 + .../man/man3/X509_STORE_CTX_set_verify.3 | 1 + .../man/man3/X509_STORE_CTX_set_verify_cb.3 | 330 ++ .../share/man/man3/X509_STORE_CTX_verify_cb.3 | 1 + .../share/man/man3/X509_STORE_CTX_verify_fn.3 | 1 + .../share/man/man3/X509_STORE_add_cert.3 | 239 + .../share/man/man3/X509_STORE_add_crl.3 | 1 + .../share/man/man3/X509_STORE_add_lookup.3 | 1 + .../share/man/man3/X509_STORE_free.3 | 1 + .../share/man/man3/X509_STORE_get0_objects.3 | 1 + .../share/man/man3/X509_STORE_get0_param.3 | 182 + .../share/man/man3/X509_STORE_get_cert_crl.3 | 1 + .../share/man/man3/X509_STORE_get_check_crl.3 | 1 + .../man/man3/X509_STORE_get_check_issued.3 | 1 + .../man/man3/X509_STORE_get_check_policy.3 | 1 + .../man3/X509_STORE_get_check_revocation.3 | 1 + .../share/man/man3/X509_STORE_get_cleanup.3 | 1 + .../share/man/man3/X509_STORE_get_ex_data.3 | 1 + .../man/man3/X509_STORE_get_ex_new_index.3 | 1 + .../share/man/man3/X509_STORE_get_get_crl.3 | 1 + .../man/man3/X509_STORE_get_get_issuer.3 | 1 + .../man/man3/X509_STORE_get_lookup_certs.3 | 1 + .../man/man3/X509_STORE_get_lookup_crls.3 | 1 + .../share/man/man3/X509_STORE_get_verify_cb.3 | 1 + .../man/man3/X509_STORE_load_locations.3 | 1 + .../share/man/man3/X509_STORE_lock.3 | 1 + .../share/man/man3/X509_STORE_new.3 | 184 + .../share/man/man3/X509_STORE_set1_param.3 | 1 + .../share/man/man3/X509_STORE_set_cert_crl.3 | 1 + .../share/man/man3/X509_STORE_set_check_crl.3 | 1 + .../man/man3/X509_STORE_set_check_issued.3 | 1 + .../man/man3/X509_STORE_set_check_policy.3 | 1 + .../man3/X509_STORE_set_check_revocation.3 | 1 + .../share/man/man3/X509_STORE_set_cleanup.3 | 1 + .../man/man3/X509_STORE_set_default_paths.3 | 1 + .../share/man/man3/X509_STORE_set_depth.3 | 1 + .../share/man/man3/X509_STORE_set_ex_data.3 | 1 + .../share/man/man3/X509_STORE_set_flags.3 | 1 + .../share/man/man3/X509_STORE_set_get_crl.3 | 1 + .../man/man3/X509_STORE_set_get_issuer.3 | 1 + .../man/man3/X509_STORE_set_lookup_certs.3 | 1 + .../man/man3/X509_STORE_set_lookup_crls.3 | 1 + .../man/man3/X509_STORE_set_lookup_crls_cb.3 | 1 + .../share/man/man3/X509_STORE_set_purpose.3 | 1 + .../share/man/man3/X509_STORE_set_trust.3 | 1 + .../share/man/man3/X509_STORE_set_verify.3 | 1 + .../share/man/man3/X509_STORE_set_verify_cb.3 | 1 + .../man/man3/X509_STORE_set_verify_cb_func.3 | 360 ++ .../man/man3/X509_STORE_set_verify_func.3 | 1 + .../share/man/man3/X509_STORE_unlock.3 | 1 + .../share/man/man3/X509_STORE_up_ref.3 | 1 + rambus_sec_lib/share/man/man3/X509_VAL_free.3 | 1 + rambus_sec_lib/share/man/man3/X509_VAL_new.3 | 1 + .../man/man3/X509_VERIFY_PARAM_add0_policy.3 | 1 + .../man/man3/X509_VERIFY_PARAM_add1_host.3 | 1 + .../man/man3/X509_VERIFY_PARAM_clear_flags.3 | 1 + .../man3/X509_VERIFY_PARAM_get0_peername.3 | 1 + .../man3/X509_VERIFY_PARAM_get_auth_level.3 | 1 + .../man/man3/X509_VERIFY_PARAM_get_depth.3 | 1 + .../man/man3/X509_VERIFY_PARAM_get_flags.3 | 1 + .../man3/X509_VERIFY_PARAM_get_hostflags.3 | 1 + .../man3/X509_VERIFY_PARAM_get_inh_flags.3 | 1 + .../man/man3/X509_VERIFY_PARAM_get_time.3 | 1 + .../man/man3/X509_VERIFY_PARAM_set1_email.3 | 1 + .../man/man3/X509_VERIFY_PARAM_set1_host.3 | 1 + .../man/man3/X509_VERIFY_PARAM_set1_ip.3 | 1 + .../man/man3/X509_VERIFY_PARAM_set1_ip_asc.3 | 1 + .../man3/X509_VERIFY_PARAM_set1_policies.3 | 1 + .../man3/X509_VERIFY_PARAM_set_auth_level.3 | 1 + .../man/man3/X509_VERIFY_PARAM_set_depth.3 | 1 + .../man/man3/X509_VERIFY_PARAM_set_flags.3 | 499 ++ .../man3/X509_VERIFY_PARAM_set_hostflags.3 | 1 + .../man3/X509_VERIFY_PARAM_set_inh_flags.3 | 1 + .../man/man3/X509_VERIFY_PARAM_set_purpose.3 | 1 + .../man/man3/X509_VERIFY_PARAM_set_time.3 | 1 + .../man/man3/X509_VERIFY_PARAM_set_trust.3 | 1 + .../share/man/man3/X509_add1_ext_i2d.3 | 1 + rambus_sec_lib/share/man/man3/X509_add_ext.3 | 1 + .../share/man/man3/X509_chain_up_ref.3 | 1 + rambus_sec_lib/share/man/man3/X509_check_ca.3 | 173 + .../share/man/man3/X509_check_email.3 | 1 + .../share/man/man3/X509_check_host.3 | 284 + rambus_sec_lib/share/man/man3/X509_check_ip.3 | 1 + .../share/man/man3/X509_check_ip_asc.3 | 1 + .../share/man/man3/X509_check_issued.3 | 172 + .../share/man/man3/X509_check_private_key.3 | 179 + .../share/man/man3/X509_check_purpose.3 | 200 + rambus_sec_lib/share/man/man3/X509_cmp.3 | 205 + .../share/man/man3/X509_cmp_current_time.3 | 1 + rambus_sec_lib/share/man/man3/X509_cmp_time.3 | 188 + .../share/man/man3/X509_delete_ext.3 | 1 + rambus_sec_lib/share/man/man3/X509_digest.3 | 190 + rambus_sec_lib/share/man/man3/X509_dup.3 | 198 + rambus_sec_lib/share/man/man3/X509_free.3 | 1 + .../man/man3/X509_get0_authority_issuer.3 | 1 + .../man/man3/X509_get0_authority_key_id.3 | 1 + .../man/man3/X509_get0_authority_serial.3 | 1 + .../share/man/man3/X509_get0_extensions.3 | 1 + .../share/man/man3/X509_get0_notAfter.3 | 1 + .../share/man/man3/X509_get0_notBefore.3 | 227 + .../share/man/man3/X509_get0_pubkey.3 | 1 + .../share/man/man3/X509_get0_serialNumber.3 | 1 + .../share/man/man3/X509_get0_signature.3 | 265 + .../share/man/man3/X509_get0_subject_key_id.3 | 1 + .../share/man/man3/X509_get0_tbs_sigalg.3 | 1 + .../share/man/man3/X509_get0_uids.3 | 184 + .../share/man/man3/X509_get_X509_PUBKEY.3 | 1 + .../share/man/man3/X509_get_ex_data.3 | 1 + .../share/man/man3/X509_get_ex_new_index.3 | 1 + rambus_sec_lib/share/man/man3/X509_get_ext.3 | 1 + .../share/man/man3/X509_get_ext_by_NID.3 | 1 + .../share/man/man3/X509_get_ext_by_OBJ.3 | 1 + .../share/man/man3/X509_get_ext_by_critical.3 | 1 + .../share/man/man3/X509_get_ext_count.3 | 1 + .../share/man/man3/X509_get_ext_d2i.3 | 1 + .../man/man3/X509_get_extended_key_usage.3 | 1 + .../share/man/man3/X509_get_extension_flags.3 | 308 + .../share/man/man3/X509_get_issuer_name.3 | 1 + .../share/man/man3/X509_get_key_usage.3 | 1 + .../share/man/man3/X509_get_pathlen.3 | 1 + .../share/man/man3/X509_get_proxy_pathlen.3 | 1 + .../share/man/man3/X509_get_pubkey.3 | 211 + .../share/man/man3/X509_get_serialNumber.3 | 196 + .../share/man/man3/X509_get_signature_info.3 | 1 + .../share/man/man3/X509_get_signature_nid.3 | 1 + .../share/man/man3/X509_get_subject_name.3 | 210 + .../share/man/man3/X509_get_version.3 | 207 + .../share/man/man3/X509_getm_notAfter.3 | 1 + .../share/man/man3/X509_getm_notBefore.3 | 1 + .../man/man3/X509_issuer_and_serial_cmp.3 | 1 + .../share/man/man3/X509_issuer_name_cmp.3 | 1 + .../share/man/man3/X509_load_cert_crl_file.3 | 1 + .../share/man/man3/X509_load_cert_file.3 | 1 + .../share/man/man3/X509_load_crl_file.3 | 1 + rambus_sec_lib/share/man/man3/X509_new.3 | 209 + .../share/man/man3/X509_pubkey_digest.3 | 1 + .../share/man/man3/X509_set1_notAfter.3 | 1 + .../share/man/man3/X509_set1_notBefore.3 | 1 + .../share/man/man3/X509_set_ex_data.3 | 1 + .../share/man/man3/X509_set_issuer_name.3 | 1 + .../share/man/man3/X509_set_proxy_flag.3 | 1 + .../share/man/man3/X509_set_proxy_pathlen.3 | 1 + .../share/man/man3/X509_set_pubkey.3 | 1 + .../share/man/man3/X509_set_serialNumber.3 | 1 + .../share/man/man3/X509_set_subject_name.3 | 1 + .../share/man/man3/X509_set_version.3 | 1 + rambus_sec_lib/share/man/man3/X509_sign.3 | 223 + rambus_sec_lib/share/man/man3/X509_sign_ctx.3 | 1 + .../share/man/man3/X509_subject_name_cmp.3 | 1 + rambus_sec_lib/share/man/man3/X509_time_adj.3 | 1 + .../share/man/man3/X509_time_adj_ex.3 | 1 + rambus_sec_lib/share/man/man3/X509_up_ref.3 | 1 + rambus_sec_lib/share/man/man3/X509_verify.3 | 1 + .../share/man/man3/X509_verify_cert.3 | 186 + .../man/man3/X509_verify_cert_error_string.3 | 1 + .../share/man/man3/X509v3_add_ext.3 | 1 + .../share/man/man3/X509v3_delete_ext.3 | 1 + .../share/man/man3/X509v3_get_ext.3 | 1 + .../share/man/man3/X509v3_get_ext_by_NID.3 | 260 + .../share/man/man3/X509v3_get_ext_by_OBJ.3 | 1 + .../man/man3/X509v3_get_ext_by_critical.3 | 1 + .../share/man/man3/X509v3_get_ext_count.3 | 1 + .../share/man/man3/custom_ext_add_cb.3 | 1 + .../share/man/man3/custom_ext_free_cb.3 | 1 + .../share/man/man3/custom_ext_parse_cb.3 | 1 + .../share/man/man3/d2i_ACCESS_DESCRIPTION.3 | 1 + .../share/man/man3/d2i_ADMISSIONS.3 | 1 + .../share/man/man3/d2i_ADMISSION_SYNTAX.3 | 1 + .../share/man/man3/d2i_ASIdOrRange.3 | 1 + .../share/man/man3/d2i_ASIdentifierChoice.3 | 1 + .../share/man/man3/d2i_ASIdentifiers.3 | 1 + .../share/man/man3/d2i_ASN1_BIT_STRING.3 | 1 + .../share/man/man3/d2i_ASN1_BMPSTRING.3 | 1 + .../share/man/man3/d2i_ASN1_ENUMERATED.3 | 1 + .../share/man/man3/d2i_ASN1_GENERALIZEDTIME.3 | 1 + .../share/man/man3/d2i_ASN1_GENERALSTRING.3 | 1 + .../share/man/man3/d2i_ASN1_IA5STRING.3 | 1 + .../share/man/man3/d2i_ASN1_INTEGER.3 | 1 + rambus_sec_lib/share/man/man3/d2i_ASN1_NULL.3 | 1 + .../share/man/man3/d2i_ASN1_OBJECT.3 | 1 + .../share/man/man3/d2i_ASN1_OCTET_STRING.3 | 1 + .../share/man/man3/d2i_ASN1_PRINTABLE.3 | 1 + .../share/man/man3/d2i_ASN1_PRINTABLESTRING.3 | 1 + .../share/man/man3/d2i_ASN1_SEQUENCE_ANY.3 | 1 + .../share/man/man3/d2i_ASN1_SET_ANY.3 | 1 + .../share/man/man3/d2i_ASN1_T61STRING.3 | 1 + rambus_sec_lib/share/man/man3/d2i_ASN1_TIME.3 | 1 + rambus_sec_lib/share/man/man3/d2i_ASN1_TYPE.3 | 1 + .../share/man/man3/d2i_ASN1_UINTEGER.3 | 1 + .../share/man/man3/d2i_ASN1_UNIVERSALSTRING.3 | 1 + .../share/man/man3/d2i_ASN1_UTCTIME.3 | 1 + .../share/man/man3/d2i_ASN1_UTF8STRING.3 | 1 + .../share/man/man3/d2i_ASN1_VISIBLESTRING.3 | 1 + rambus_sec_lib/share/man/man3/d2i_ASRange.3 | 1 + .../man/man3/d2i_AUTHORITY_INFO_ACCESS.3 | 1 + .../share/man/man3/d2i_AUTHORITY_KEYID.3 | 1 + .../share/man/man3/d2i_AutoPrivateKey.3 | 1 + .../share/man/man3/d2i_BASIC_CONSTRAINTS.3 | 1 + .../share/man/man3/d2i_CERTIFICATEPOLICIES.3 | 1 + .../share/man/man3/d2i_CMS_ContentInfo.3 | 1 + .../share/man/man3/d2i_CMS_ReceiptRequest.3 | 1 + rambus_sec_lib/share/man/man3/d2i_CMS_bio.3 | 1 + .../share/man/man3/d2i_CRL_DIST_POINTS.3 | 1 + rambus_sec_lib/share/man/man3/d2i_DHparams.3 | 170 + rambus_sec_lib/share/man/man3/d2i_DHxparams.3 | 1 + .../share/man/man3/d2i_DIRECTORYSTRING.3 | 1 + .../share/man/man3/d2i_DISPLAYTEXT.3 | 1 + .../share/man/man3/d2i_DIST_POINT.3 | 1 + .../share/man/man3/d2i_DIST_POINT_NAME.3 | 1 + .../share/man/man3/d2i_DSAPrivateKey.3 | 1 + .../share/man/man3/d2i_DSAPrivateKey_bio.3 | 1 + .../share/man/man3/d2i_DSAPrivateKey_fp.3 | 1 + .../share/man/man3/d2i_DSAPublicKey.3 | 1 + .../share/man/man3/d2i_DSA_PUBKEY.3 | 1 + .../share/man/man3/d2i_DSA_PUBKEY_bio.3 | 1 + .../share/man/man3/d2i_DSA_PUBKEY_fp.3 | 1 + rambus_sec_lib/share/man/man3/d2i_DSA_SIG.3 | 1 + rambus_sec_lib/share/man/man3/d2i_DSAparams.3 | 1 + rambus_sec_lib/share/man/man3/d2i_ECDSA_SIG.3 | 1 + .../share/man/man3/d2i_ECPKParameters.3 | 1 + .../share/man/man3/d2i_ECParameters.3 | 1 + .../share/man/man3/d2i_ECPrivateKey.3 | 1 + .../share/man/man3/d2i_ECPrivateKey_bio.3 | 1 + .../share/man/man3/d2i_ECPrivateKey_fp.3 | 1 + rambus_sec_lib/share/man/man3/d2i_EC_PUBKEY.3 | 1 + .../share/man/man3/d2i_EC_PUBKEY_bio.3 | 1 + .../share/man/man3/d2i_EC_PUBKEY_fp.3 | 1 + .../share/man/man3/d2i_EDIPARTYNAME.3 | 1 + .../share/man/man3/d2i_ESS_CERT_ID.3 | 1 + .../share/man/man3/d2i_ESS_ISSUER_SERIAL.3 | 1 + .../share/man/man3/d2i_ESS_SIGNING_CERT.3 | 1 + .../share/man/man3/d2i_EXTENDED_KEY_USAGE.3 | 1 + .../share/man/man3/d2i_GENERAL_NAME.3 | 1 + .../share/man/man3/d2i_GENERAL_NAMES.3 | 1 + .../share/man/man3/d2i_IPAddressChoice.3 | 1 + .../share/man/man3/d2i_IPAddressFamily.3 | 1 + .../share/man/man3/d2i_IPAddressOrRange.3 | 1 + .../share/man/man3/d2i_IPAddressRange.3 | 1 + .../share/man/man3/d2i_ISSUING_DIST_POINT.3 | 1 + .../share/man/man3/d2i_NAMING_AUTHORITY.3 | 1 + .../man/man3/d2i_NETSCAPE_CERT_SEQUENCE.3 | 1 + .../share/man/man3/d2i_NETSCAPE_SPKAC.3 | 1 + .../share/man/man3/d2i_NETSCAPE_SPKI.3 | 1 + rambus_sec_lib/share/man/man3/d2i_NOTICEREF.3 | 1 + .../share/man/man3/d2i_OCSP_BASICRESP.3 | 1 + .../share/man/man3/d2i_OCSP_CERTID.3 | 1 + .../share/man/man3/d2i_OCSP_CERTSTATUS.3 | 1 + .../share/man/man3/d2i_OCSP_CRLID.3 | 1 + .../share/man/man3/d2i_OCSP_ONEREQ.3 | 1 + .../share/man/man3/d2i_OCSP_REQINFO.3 | 1 + .../share/man/man3/d2i_OCSP_REQUEST.3 | 1 + .../share/man/man3/d2i_OCSP_RESPBYTES.3 | 1 + .../share/man/man3/d2i_OCSP_RESPDATA.3 | 1 + .../share/man/man3/d2i_OCSP_RESPID.3 | 1 + .../share/man/man3/d2i_OCSP_RESPONSE.3 | 1 + .../share/man/man3/d2i_OCSP_REVOKEDINFO.3 | 1 + .../share/man/man3/d2i_OCSP_SERVICELOC.3 | 1 + .../share/man/man3/d2i_OCSP_SIGNATURE.3 | 1 + .../share/man/man3/d2i_OCSP_SINGLERESP.3 | 1 + rambus_sec_lib/share/man/man3/d2i_OTHERNAME.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PBE2PARAM.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PBEPARAM.3 | 1 + .../share/man/man3/d2i_PBKDF2PARAM.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PKCS12.3 | 1 + .../share/man/man3/d2i_PKCS12_BAGS.3 | 1 + .../share/man/man3/d2i_PKCS12_MAC_DATA.3 | 1 + .../share/man/man3/d2i_PKCS12_SAFEBAG.3 | 1 + .../share/man/man3/d2i_PKCS12_bio.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PKCS12_fp.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PKCS7.3 | 1 + .../share/man/man3/d2i_PKCS7_DIGEST.3 | 1 + .../share/man/man3/d2i_PKCS7_ENCRYPT.3 | 1 + .../share/man/man3/d2i_PKCS7_ENC_CONTENT.3 | 1 + .../share/man/man3/d2i_PKCS7_ENVELOPE.3 | 1 + .../man/man3/d2i_PKCS7_ISSUER_AND_SERIAL.3 | 1 + .../share/man/man3/d2i_PKCS7_RECIP_INFO.3 | 1 + .../share/man/man3/d2i_PKCS7_SIGNED.3 | 1 + .../share/man/man3/d2i_PKCS7_SIGNER_INFO.3 | 1 + .../share/man/man3/d2i_PKCS7_SIGN_ENVELOPE.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PKCS7_bio.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PKCS7_fp.3 | 1 + .../share/man/man3/d2i_PKCS8PrivateKey_bio.3 | 199 + .../share/man/man3/d2i_PKCS8PrivateKey_fp.3 | 1 + .../share/man/man3/d2i_PKCS8_PRIV_KEY_INFO.3 | 1 + .../man/man3/d2i_PKCS8_PRIV_KEY_INFO_bio.3 | 1 + .../man/man3/d2i_PKCS8_PRIV_KEY_INFO_fp.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PKCS8_bio.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PKCS8_fp.3 | 1 + .../share/man/man3/d2i_PKEY_USAGE_PERIOD.3 | 1 + .../share/man/man3/d2i_POLICYINFO.3 | 1 + .../share/man/man3/d2i_POLICYQUALINFO.3 | 1 + .../share/man/man3/d2i_PROFESSION_INFO.3 | 1 + .../man/man3/d2i_PROXY_CERT_INFO_EXTENSION.3 | 1 + .../share/man/man3/d2i_PROXY_POLICY.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PUBKEY.3 | 1 + .../share/man/man3/d2i_PUBKEY_bio.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PUBKEY_fp.3 | 1 + .../share/man/man3/d2i_PrivateKey.3 | 205 + .../share/man/man3/d2i_PrivateKey_bio.3 | 1 + .../share/man/man3/d2i_PrivateKey_fp.3 | 1 + rambus_sec_lib/share/man/man3/d2i_PublicKey.3 | 1 + .../share/man/man3/d2i_RSAPrivateKey.3 | 1 + .../share/man/man3/d2i_RSAPrivateKey_bio.3 | 1 + .../share/man/man3/d2i_RSAPrivateKey_fp.3 | 1 + .../share/man/man3/d2i_RSAPublicKey.3 | 1 + .../share/man/man3/d2i_RSAPublicKey_bio.3 | 1 + .../share/man/man3/d2i_RSAPublicKey_fp.3 | 1 + .../share/man/man3/d2i_RSA_OAEP_PARAMS.3 | 1 + .../share/man/man3/d2i_RSA_PSS_PARAMS.3 | 1 + .../share/man/man3/d2i_RSA_PUBKEY.3 | 1 + .../share/man/man3/d2i_RSA_PUBKEY_bio.3 | 1 + .../share/man/man3/d2i_RSA_PUBKEY_fp.3 | 1 + .../share/man/man3/d2i_SCRYPT_PARAMS.3 | 1 + rambus_sec_lib/share/man/man3/d2i_SCT_LIST.3 | 1 + .../share/man/man3/d2i_SSL_SESSION.3 | 178 + rambus_sec_lib/share/man/man3/d2i_SXNET.3 | 1 + rambus_sec_lib/share/man/man3/d2i_SXNETID.3 | 1 + .../share/man/man3/d2i_TS_ACCURACY.3 | 1 + .../share/man/man3/d2i_TS_MSG_IMPRINT.3 | 1 + .../share/man/man3/d2i_TS_MSG_IMPRINT_bio.3 | 1 + .../share/man/man3/d2i_TS_MSG_IMPRINT_fp.3 | 1 + rambus_sec_lib/share/man/man3/d2i_TS_REQ.3 | 1 + .../share/man/man3/d2i_TS_REQ_bio.3 | 1 + rambus_sec_lib/share/man/man3/d2i_TS_REQ_fp.3 | 1 + rambus_sec_lib/share/man/man3/d2i_TS_RESP.3 | 1 + .../share/man/man3/d2i_TS_RESP_bio.3 | 1 + .../share/man/man3/d2i_TS_RESP_fp.3 | 1 + .../share/man/man3/d2i_TS_STATUS_INFO.3 | 1 + .../share/man/man3/d2i_TS_TST_INFO.3 | 1 + .../share/man/man3/d2i_TS_TST_INFO_bio.3 | 1 + .../share/man/man3/d2i_TS_TST_INFO_fp.3 | 1 + .../share/man/man3/d2i_USERNOTICE.3 | 1 + rambus_sec_lib/share/man/man3/d2i_X509.3 | 383 ++ .../share/man/man3/d2i_X509_ALGOR.3 | 1 + .../share/man/man3/d2i_X509_ALGORS.3 | 1 + .../share/man/man3/d2i_X509_ATTRIBUTE.3 | 1 + rambus_sec_lib/share/man/man3/d2i_X509_AUX.3 | 1 + .../share/man/man3/d2i_X509_CERT_AUX.3 | 1 + rambus_sec_lib/share/man/man3/d2i_X509_CINF.3 | 1 + rambus_sec_lib/share/man/man3/d2i_X509_CRL.3 | 1 + .../share/man/man3/d2i_X509_CRL_INFO.3 | 1 + .../share/man/man3/d2i_X509_CRL_bio.3 | 1 + .../share/man/man3/d2i_X509_CRL_fp.3 | 1 + .../share/man/man3/d2i_X509_EXTENSION.3 | 1 + .../share/man/man3/d2i_X509_EXTENSIONS.3 | 1 + rambus_sec_lib/share/man/man3/d2i_X509_NAME.3 | 1 + .../share/man/man3/d2i_X509_NAME_ENTRY.3 | 1 + .../share/man/man3/d2i_X509_PUBKEY.3 | 1 + rambus_sec_lib/share/man/man3/d2i_X509_REQ.3 | 1 + .../share/man/man3/d2i_X509_REQ_INFO.3 | 1 + .../share/man/man3/d2i_X509_REQ_bio.3 | 1 + .../share/man/man3/d2i_X509_REQ_fp.3 | 1 + .../share/man/man3/d2i_X509_REVOKED.3 | 1 + rambus_sec_lib/share/man/man3/d2i_X509_SIG.3 | 1 + rambus_sec_lib/share/man/man3/d2i_X509_VAL.3 | 1 + .../share/man/man3/i2d_ACCESS_DESCRIPTION.3 | 1 + .../share/man/man3/i2d_ADMISSIONS.3 | 1 + .../share/man/man3/i2d_ADMISSION_SYNTAX.3 | 1 + .../share/man/man3/i2d_ASIdOrRange.3 | 1 + .../share/man/man3/i2d_ASIdentifierChoice.3 | 1 + .../share/man/man3/i2d_ASIdentifiers.3 | 1 + .../share/man/man3/i2d_ASN1_BIT_STRING.3 | 1 + .../share/man/man3/i2d_ASN1_BMPSTRING.3 | 1 + .../share/man/man3/i2d_ASN1_ENUMERATED.3 | 1 + .../share/man/man3/i2d_ASN1_GENERALIZEDTIME.3 | 1 + .../share/man/man3/i2d_ASN1_GENERALSTRING.3 | 1 + .../share/man/man3/i2d_ASN1_IA5STRING.3 | 1 + .../share/man/man3/i2d_ASN1_INTEGER.3 | 1 + rambus_sec_lib/share/man/man3/i2d_ASN1_NULL.3 | 1 + .../share/man/man3/i2d_ASN1_OBJECT.3 | 1 + .../share/man/man3/i2d_ASN1_OCTET_STRING.3 | 1 + .../share/man/man3/i2d_ASN1_PRINTABLE.3 | 1 + .../share/man/man3/i2d_ASN1_PRINTABLESTRING.3 | 1 + .../share/man/man3/i2d_ASN1_SEQUENCE_ANY.3 | 1 + .../share/man/man3/i2d_ASN1_SET_ANY.3 | 1 + .../share/man/man3/i2d_ASN1_T61STRING.3 | 1 + rambus_sec_lib/share/man/man3/i2d_ASN1_TIME.3 | 1 + rambus_sec_lib/share/man/man3/i2d_ASN1_TYPE.3 | 1 + .../share/man/man3/i2d_ASN1_UNIVERSALSTRING.3 | 1 + .../share/man/man3/i2d_ASN1_UTCTIME.3 | 1 + .../share/man/man3/i2d_ASN1_UTF8STRING.3 | 1 + .../share/man/man3/i2d_ASN1_VISIBLESTRING.3 | 1 + .../share/man/man3/i2d_ASN1_bio_stream.3 | 1 + rambus_sec_lib/share/man/man3/i2d_ASRange.3 | 1 + .../man/man3/i2d_AUTHORITY_INFO_ACCESS.3 | 1 + .../share/man/man3/i2d_AUTHORITY_KEYID.3 | 1 + .../share/man/man3/i2d_BASIC_CONSTRAINTS.3 | 1 + .../share/man/man3/i2d_CERTIFICATEPOLICIES.3 | 1 + .../share/man/man3/i2d_CMS_ContentInfo.3 | 1 + .../share/man/man3/i2d_CMS_ReceiptRequest.3 | 1 + rambus_sec_lib/share/man/man3/i2d_CMS_bio.3 | 1 + .../share/man/man3/i2d_CMS_bio_stream.3 | 178 + .../share/man/man3/i2d_CRL_DIST_POINTS.3 | 1 + rambus_sec_lib/share/man/man3/i2d_DHparams.3 | 1 + rambus_sec_lib/share/man/man3/i2d_DHxparams.3 | 1 + .../share/man/man3/i2d_DIRECTORYSTRING.3 | 1 + .../share/man/man3/i2d_DISPLAYTEXT.3 | 1 + .../share/man/man3/i2d_DIST_POINT.3 | 1 + .../share/man/man3/i2d_DIST_POINT_NAME.3 | 1 + .../share/man/man3/i2d_DSAPrivateKey.3 | 1 + .../share/man/man3/i2d_DSAPrivateKey_bio.3 | 1 + .../share/man/man3/i2d_DSAPrivateKey_fp.3 | 1 + .../share/man/man3/i2d_DSAPublicKey.3 | 1 + .../share/man/man3/i2d_DSA_PUBKEY.3 | 1 + .../share/man/man3/i2d_DSA_PUBKEY_bio.3 | 1 + .../share/man/man3/i2d_DSA_PUBKEY_fp.3 | 1 + rambus_sec_lib/share/man/man3/i2d_DSA_SIG.3 | 1 + rambus_sec_lib/share/man/man3/i2d_DSAparams.3 | 1 + rambus_sec_lib/share/man/man3/i2d_ECDSA_SIG.3 | 1 + .../share/man/man3/i2d_ECPKParameters.3 | 1 + .../share/man/man3/i2d_ECParameters.3 | 1 + .../share/man/man3/i2d_ECPrivateKey.3 | 1 + .../share/man/man3/i2d_ECPrivateKey_bio.3 | 1 + .../share/man/man3/i2d_ECPrivateKey_fp.3 | 1 + rambus_sec_lib/share/man/man3/i2d_EC_PUBKEY.3 | 1 + .../share/man/man3/i2d_EC_PUBKEY_bio.3 | 1 + .../share/man/man3/i2d_EC_PUBKEY_fp.3 | 1 + .../share/man/man3/i2d_EDIPARTYNAME.3 | 1 + .../share/man/man3/i2d_ESS_CERT_ID.3 | 1 + .../share/man/man3/i2d_ESS_ISSUER_SERIAL.3 | 1 + .../share/man/man3/i2d_ESS_SIGNING_CERT.3 | 1 + .../share/man/man3/i2d_EXTENDED_KEY_USAGE.3 | 1 + .../share/man/man3/i2d_GENERAL_NAME.3 | 1 + .../share/man/man3/i2d_GENERAL_NAMES.3 | 1 + .../share/man/man3/i2d_IPAddressChoice.3 | 1 + .../share/man/man3/i2d_IPAddressFamily.3 | 1 + .../share/man/man3/i2d_IPAddressOrRange.3 | 1 + .../share/man/man3/i2d_IPAddressRange.3 | 1 + .../share/man/man3/i2d_ISSUING_DIST_POINT.3 | 1 + .../share/man/man3/i2d_NAMING_AUTHORITY.3 | 1 + .../man/man3/i2d_NETSCAPE_CERT_SEQUENCE.3 | 1 + .../share/man/man3/i2d_NETSCAPE_SPKAC.3 | 1 + .../share/man/man3/i2d_NETSCAPE_SPKI.3 | 1 + rambus_sec_lib/share/man/man3/i2d_NOTICEREF.3 | 1 + .../share/man/man3/i2d_OCSP_BASICRESP.3 | 1 + .../share/man/man3/i2d_OCSP_CERTID.3 | 1 + .../share/man/man3/i2d_OCSP_CERTSTATUS.3 | 1 + .../share/man/man3/i2d_OCSP_CRLID.3 | 1 + .../share/man/man3/i2d_OCSP_ONEREQ.3 | 1 + .../share/man/man3/i2d_OCSP_REQINFO.3 | 1 + .../share/man/man3/i2d_OCSP_REQUEST.3 | 1 + .../share/man/man3/i2d_OCSP_RESPBYTES.3 | 1 + .../share/man/man3/i2d_OCSP_RESPDATA.3 | 1 + .../share/man/man3/i2d_OCSP_RESPID.3 | 1 + .../share/man/man3/i2d_OCSP_RESPONSE.3 | 1 + .../share/man/man3/i2d_OCSP_REVOKEDINFO.3 | 1 + .../share/man/man3/i2d_OCSP_SERVICELOC.3 | 1 + .../share/man/man3/i2d_OCSP_SIGNATURE.3 | 1 + .../share/man/man3/i2d_OCSP_SINGLERESP.3 | 1 + rambus_sec_lib/share/man/man3/i2d_OTHERNAME.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PBE2PARAM.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PBEPARAM.3 | 1 + .../share/man/man3/i2d_PBKDF2PARAM.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PKCS12.3 | 1 + .../share/man/man3/i2d_PKCS12_BAGS.3 | 1 + .../share/man/man3/i2d_PKCS12_MAC_DATA.3 | 1 + .../share/man/man3/i2d_PKCS12_SAFEBAG.3 | 1 + .../share/man/man3/i2d_PKCS12_bio.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PKCS12_fp.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PKCS7.3 | 1 + .../share/man/man3/i2d_PKCS7_DIGEST.3 | 1 + .../share/man/man3/i2d_PKCS7_ENCRYPT.3 | 1 + .../share/man/man3/i2d_PKCS7_ENC_CONTENT.3 | 1 + .../share/man/man3/i2d_PKCS7_ENVELOPE.3 | 1 + .../man/man3/i2d_PKCS7_ISSUER_AND_SERIAL.3 | 1 + .../share/man/man3/i2d_PKCS7_NDEF.3 | 1 + .../share/man/man3/i2d_PKCS7_RECIP_INFO.3 | 1 + .../share/man/man3/i2d_PKCS7_SIGNED.3 | 1 + .../share/man/man3/i2d_PKCS7_SIGNER_INFO.3 | 1 + .../share/man/man3/i2d_PKCS7_SIGN_ENVELOPE.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PKCS7_bio.3 | 1 + .../share/man/man3/i2d_PKCS7_bio_stream.3 | 178 + rambus_sec_lib/share/man/man3/i2d_PKCS7_fp.3 | 1 + .../man/man3/i2d_PKCS8PrivateKeyInfo_bio.3 | 1 + .../man/man3/i2d_PKCS8PrivateKeyInfo_fp.3 | 1 + .../share/man/man3/i2d_PKCS8PrivateKey_bio.3 | 1 + .../share/man/man3/i2d_PKCS8PrivateKey_fp.3 | 1 + .../man/man3/i2d_PKCS8PrivateKey_nid_bio.3 | 1 + .../man/man3/i2d_PKCS8PrivateKey_nid_fp.3 | 1 + .../share/man/man3/i2d_PKCS8_PRIV_KEY_INFO.3 | 1 + .../man/man3/i2d_PKCS8_PRIV_KEY_INFO_bio.3 | 1 + .../man/man3/i2d_PKCS8_PRIV_KEY_INFO_fp.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PKCS8_bio.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PKCS8_fp.3 | 1 + .../share/man/man3/i2d_PKEY_USAGE_PERIOD.3 | 1 + .../share/man/man3/i2d_POLICYINFO.3 | 1 + .../share/man/man3/i2d_POLICYQUALINFO.3 | 1 + .../share/man/man3/i2d_PROFESSION_INFO.3 | 1 + .../man/man3/i2d_PROXY_CERT_INFO_EXTENSION.3 | 1 + .../share/man/man3/i2d_PROXY_POLICY.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PUBKEY.3 | 1 + .../share/man/man3/i2d_PUBKEY_bio.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PUBKEY_fp.3 | 1 + .../share/man/man3/i2d_PrivateKey.3 | 1 + rambus_sec_lib/share/man/man3/i2d_PublicKey.3 | 1 + .../share/man/man3/i2d_RSAPrivateKey.3 | 1 + .../share/man/man3/i2d_RSAPrivateKey_bio.3 | 1 + .../share/man/man3/i2d_RSAPrivateKey_fp.3 | 1 + .../share/man/man3/i2d_RSAPublicKey.3 | 1 + .../share/man/man3/i2d_RSAPublicKey_bio.3 | 1 + .../share/man/man3/i2d_RSAPublicKey_fp.3 | 1 + .../share/man/man3/i2d_RSA_OAEP_PARAMS.3 | 1 + .../share/man/man3/i2d_RSA_PSS_PARAMS.3 | 1 + .../share/man/man3/i2d_RSA_PUBKEY.3 | 1 + .../share/man/man3/i2d_RSA_PUBKEY_bio.3 | 1 + .../share/man/man3/i2d_RSA_PUBKEY_fp.3 | 1 + .../share/man/man3/i2d_SCRYPT_PARAMS.3 | 1 + rambus_sec_lib/share/man/man3/i2d_SCT_LIST.3 | 1 + .../share/man/man3/i2d_SSL_SESSION.3 | 1 + rambus_sec_lib/share/man/man3/i2d_SXNET.3 | 1 + rambus_sec_lib/share/man/man3/i2d_SXNETID.3 | 1 + .../share/man/man3/i2d_TS_ACCURACY.3 | 1 + .../share/man/man3/i2d_TS_MSG_IMPRINT.3 | 1 + .../share/man/man3/i2d_TS_MSG_IMPRINT_bio.3 | 1 + .../share/man/man3/i2d_TS_MSG_IMPRINT_fp.3 | 1 + rambus_sec_lib/share/man/man3/i2d_TS_REQ.3 | 1 + .../share/man/man3/i2d_TS_REQ_bio.3 | 1 + rambus_sec_lib/share/man/man3/i2d_TS_REQ_fp.3 | 1 + rambus_sec_lib/share/man/man3/i2d_TS_RESP.3 | 1 + .../share/man/man3/i2d_TS_RESP_bio.3 | 1 + .../share/man/man3/i2d_TS_RESP_fp.3 | 1 + .../share/man/man3/i2d_TS_STATUS_INFO.3 | 1 + .../share/man/man3/i2d_TS_TST_INFO.3 | 1 + .../share/man/man3/i2d_TS_TST_INFO_bio.3 | 1 + .../share/man/man3/i2d_TS_TST_INFO_fp.3 | 1 + .../share/man/man3/i2d_USERNOTICE.3 | 1 + rambus_sec_lib/share/man/man3/i2d_X509.3 | 1 + .../share/man/man3/i2d_X509_ALGOR.3 | 1 + .../share/man/man3/i2d_X509_ALGORS.3 | 1 + .../share/man/man3/i2d_X509_ATTRIBUTE.3 | 1 + rambus_sec_lib/share/man/man3/i2d_X509_AUX.3 | 1 + .../share/man/man3/i2d_X509_CERT_AUX.3 | 1 + rambus_sec_lib/share/man/man3/i2d_X509_CINF.3 | 1 + rambus_sec_lib/share/man/man3/i2d_X509_CRL.3 | 1 + .../share/man/man3/i2d_X509_CRL_INFO.3 | 1 + .../share/man/man3/i2d_X509_CRL_bio.3 | 1 + .../share/man/man3/i2d_X509_CRL_fp.3 | 1 + .../share/man/man3/i2d_X509_EXTENSION.3 | 1 + .../share/man/man3/i2d_X509_EXTENSIONS.3 | 1 + rambus_sec_lib/share/man/man3/i2d_X509_NAME.3 | 1 + .../share/man/man3/i2d_X509_NAME_ENTRY.3 | 1 + .../share/man/man3/i2d_X509_PUBKEY.3 | 1 + rambus_sec_lib/share/man/man3/i2d_X509_REQ.3 | 1 + .../share/man/man3/i2d_X509_REQ_INFO.3 | 1 + .../share/man/man3/i2d_X509_REQ_bio.3 | 1 + .../share/man/man3/i2d_X509_REQ_fp.3 | 1 + .../share/man/man3/i2d_X509_REVOKED.3 | 1 + rambus_sec_lib/share/man/man3/i2d_X509_SIG.3 | 1 + rambus_sec_lib/share/man/man3/i2d_X509_VAL.3 | 1 + .../share/man/man3/i2d_re_X509_CRL_tbs.3 | 1 + .../share/man/man3/i2d_re_X509_REQ_tbs.3 | 1 + .../share/man/man3/i2d_re_X509_tbs.3 | 214 + rambus_sec_lib/share/man/man3/i2o_SCT.3 | 1 + rambus_sec_lib/share/man/man3/i2o_SCT_LIST.3 | 1 + .../share/man/man3/i2t_ASN1_OBJECT.3 | 1 + .../share/man/man3/lh_TYPE_delete.3 | 1 + rambus_sec_lib/share/man/man3/lh_TYPE_doall.3 | 1 + .../share/man/man3/lh_TYPE_doall_arg.3 | 1 + rambus_sec_lib/share/man/man3/lh_TYPE_error.3 | 1 + rambus_sec_lib/share/man/man3/lh_TYPE_free.3 | 1 + .../share/man/man3/lh_TYPE_insert.3 | 1 + rambus_sec_lib/share/man/man3/lh_TYPE_new.3 | 1 + .../share/man/man3/lh_TYPE_retrieve.3 | 1 + rambus_sec_lib/share/man/man3/o2i_SCT.3 | 1 + rambus_sec_lib/share/man/man3/o2i_SCT_LIST.3 | 175 + .../share/man/man3/pem_password_cb.3 | 1 + .../share/man/man3/sk_TYPE_deep_copy.3 | 1 + .../share/man/man3/sk_TYPE_delete.3 | 1 + .../share/man/man3/sk_TYPE_delete_ptr.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_dup.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_find.3 | 1 + .../share/man/man3/sk_TYPE_find_ex.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_free.3 | 1 + .../share/man/man3/sk_TYPE_insert.3 | 1 + .../share/man/man3/sk_TYPE_is_sorted.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_new.3 | 1 + .../share/man/man3/sk_TYPE_new_null.3 | 1 + .../share/man/man3/sk_TYPE_new_reserve.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_num.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_pop.3 | 1 + .../share/man/man3/sk_TYPE_pop_free.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_push.3 | 1 + .../share/man/man3/sk_TYPE_reserve.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_set.3 | 1 + .../share/man/man3/sk_TYPE_set_cmp_func.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_shift.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_sort.3 | 1 + .../share/man/man3/sk_TYPE_unshift.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_value.3 | 1 + rambus_sec_lib/share/man/man3/sk_TYPE_zero.3 | 1 + .../share/man/man3/ssl_ct_validation_cb.3 | 1 + rambus_sec_lib/share/man/man5/config.5 | 600 ++ rambus_sec_lib/share/man/man5/x509v3_config.5 | 700 +++ rambus_sec_lib/share/man/man7/Ed25519.7 | 217 + rambus_sec_lib/share/man/man7/Ed448.7 | 1 + rambus_sec_lib/share/man/man7/RAND.7 | 206 + rambus_sec_lib/share/man/man7/RAND_DRBG.7 | 392 ++ rambus_sec_lib/share/man/man7/RSA-PSS.7 | 185 + rambus_sec_lib/share/man/man7/SM2.7 | 213 + rambus_sec_lib/share/man/man7/X25519.7 | 204 + rambus_sec_lib/share/man/man7/X448.7 | 1 + rambus_sec_lib/share/man/man7/bio.7 | 213 + rambus_sec_lib/share/man/man7/crypto.7 | 187 + rambus_sec_lib/share/man/man7/ct.7 | 181 + rambus_sec_lib/share/man/man7/des_modes.7 | 291 + rambus_sec_lib/share/man/man7/evp.7 | 232 + .../share/man/man7/ossl_store-file.7 | 187 + rambus_sec_lib/share/man/man7/ossl_store.7 | 211 + .../share/man/man7/passphrase-encoding.7 | 283 + .../share/man/man7/proxy-certificates.7 | 474 ++ rambus_sec_lib/share/man/man7/scrypt.7 | 244 + rambus_sec_lib/share/man/man7/ssl.7 | 910 +++ rambus_sec_lib/share/man/man7/x509.7 | 202 + rambus_sec_lib/ssl/ct_log_list.cnf | 9 + rambus_sec_lib/ssl/ct_log_list.cnf.dist | 9 + rambus_sec_lib/ssl/misc/CA.pl | 215 + rambus_sec_lib/ssl/misc/tsget | 1 + rambus_sec_lib/ssl/misc/tsget.pl | 200 + rambus_sec_lib/ssl/openssl.cnf | 350 ++ rambus_sec_lib/ssl/openssl.cnf.dist | 350 ++ 8142 files changed, 259305 insertions(+) create mode 100644 ISO7816/Makefile create mode 100644 ISO7816/dsmart_card_interface.h create mode 100644 ISO7816/ioctl.h create mode 100755 ISO7816/iso7816 create mode 100644 ISO7816/iso7816_test.c create mode 100644 ISO7816/tags create mode 100644 README.txt create mode 100644 efuse-hal-lib/Makefile create mode 100644 efuse-hal-lib/README.txt create mode 100644 efuse-hal-lib/lib/src/Makefile create mode 100644 efuse-hal-lib/lib/src/efuse-api.h create mode 100644 efuse-hal-lib/lib/src/light-efuse-hal.c create mode 100644 efuse-hal-lib/lib/src/light-efuse-hal.o create mode 100644 efuse-hal-lib/test/efuse_demo/Makefile create mode 100644 efuse-hal-lib/test/efuse_demo/efuse-api.h create mode 100644 efuse-hal-lib/test/efuse_demo/light-efuse-test.c create mode 100644 efuse-hal-lib/test/efuse_demo/light-efuse-test.o create mode 100755 efuse-hal-lib/test/output/efuse_demo create mode 100644 emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/hmac_sha2.c create mode 100644 emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/hmac_sha2.h create mode 100644 emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/sha2.c create mode 100644 emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/sha2.h create mode 100644 emmc_hal_lib/mmc-utils/Android.mk create mode 100644 emmc_hal_lib/mmc-utils/Makefile create mode 100644 emmc_hal_lib/mmc-utils/csi_rpmb.c create mode 100644 emmc_hal_lib/mmc-utils/csi_rpmb.h create mode 100644 emmc_hal_lib/mmc-utils/csi_test.c create mode 100644 emmc_hal_lib/mmc-utils/lsmmc.c create mode 100644 emmc_hal_lib/mmc-utils/man/Makefile create mode 100644 emmc_hal_lib/mmc-utils/man/mmc.1 create mode 100644 emmc_hal_lib/mmc-utils/mmc.c create mode 100644 emmc_hal_lib/mmc-utils/mmc.h create mode 100644 emmc_hal_lib/mmc-utils/mmc_cmds.c create mode 100644 emmc_hal_lib/mmc-utils/mmc_cmds.h create mode 100644 emmc_hal_lib/mmc-utils/rpmb_test.png create mode 100644 iopmp_hal_lib/Makefile create mode 100644 iopmp_hal_lib/light-iopmp-hal.c create mode 100644 iopmp_hal_lib/light-iopmp.h create mode 100755 iopmp_hal_lib/output/libiopmp.so create mode 100644 iopmp_hal_lib/output/light-iopmp.h create mode 100755 light_fm_aon/light_aon_fpga.bin create mode 100755 light_fm_aon/light_aon_fpga.elf create mode 100644 rambus_sec_lib/bin/EIP120_scripts/aad.txt create mode 100644 rambus_sec_lib/bin/EIP120_scripts/ciphertest.sh create mode 100644 rambus_sec_lib/bin/EIP120_scripts/ckey.txt create mode 100644 rambus_sec_lib/bin/EIP120_scripts/hkey.txt create mode 100755 rambus_sec_lib/bin/EIP120_scripts/htest.sh create mode 100644 rambus_sec_lib/bin/EIP120_scripts/iv.txt create mode 100644 rambus_sec_lib/bin/EIP120_scripts/key.txt create mode 100644 rambus_sec_lib/bin/EIP120_scripts/lorum.txt create mode 100644 rambus_sec_lib/bin/EIP120_scripts/message.txt create mode 100644 rambus_sec_lib/bin/EIP120_scripts/tag.txt create mode 100644 rambus_sec_lib/bin/EIP120_scripts/testdatain.txt create mode 100755 rambus_sec_lib/bin/EIP28_scripts/dh-key-agreement.sh create mode 100755 rambus_sec_lib/bin/EIP28_scripts/ecdh-key-agreement.sh create mode 100755 rambus_sec_lib/bin/EIP28_scripts/edcsa-sign-and-verify.sh create mode 100755 rambus_sec_lib/bin/EIP28_scripts/rsa-encrypt-decrypt-sign-verify.sh create mode 100755 rambus_sec_lib/bin/EIP28_scripts/sm2-encrypt-and-decrypt.sh create mode 100755 rambus_sec_lib/bin/EIP28_scripts/sm2-sign-and-verify.sh create mode 100755 rambus_sec_lib/bin/EIP28_scripts/test-all.sh create mode 100755 rambus_sec_lib/bin/EIP28_scripts/x25519-key-agreement.sh create mode 100755 rambus_sec_lib/bin/Makefile create mode 100755 rambus_sec_lib/bin/c_rehash create mode 100755 rambus_sec_lib/bin/cipher create mode 100755 rambus_sec_lib/bin/digest create mode 100755 rambus_sec_lib/bin/openssl create mode 100755 rambus_sec_lib/bin/sm2decrypt create mode 100755 rambus_sec_lib/bin/sm2encrypt create mode 100755 rambus_sec_lib/bin/sm2sign create mode 100755 rambus_sec_lib/bin/sm2verify create mode 100644 rambus_sec_lib/include/openssl/aes.h create mode 100644 rambus_sec_lib/include/openssl/asn1.h create mode 100644 rambus_sec_lib/include/openssl/asn1_mac.h create mode 100644 rambus_sec_lib/include/openssl/asn1err.h create mode 100644 rambus_sec_lib/include/openssl/asn1t.h create mode 100644 rambus_sec_lib/include/openssl/async.h create mode 100644 rambus_sec_lib/include/openssl/asyncerr.h create mode 100644 rambus_sec_lib/include/openssl/bio.h create mode 100644 rambus_sec_lib/include/openssl/bioerr.h create mode 100644 rambus_sec_lib/include/openssl/blowfish.h create mode 100644 rambus_sec_lib/include/openssl/bn.h create mode 100644 rambus_sec_lib/include/openssl/bnerr.h create mode 100644 rambus_sec_lib/include/openssl/buffer.h create mode 100644 rambus_sec_lib/include/openssl/buffererr.h create mode 100644 rambus_sec_lib/include/openssl/camellia.h create mode 100644 rambus_sec_lib/include/openssl/cast.h create mode 100644 rambus_sec_lib/include/openssl/cmac.h create mode 100644 rambus_sec_lib/include/openssl/cms.h create mode 100644 rambus_sec_lib/include/openssl/cmserr.h create mode 100644 rambus_sec_lib/include/openssl/comp.h create mode 100644 rambus_sec_lib/include/openssl/comperr.h create mode 100644 rambus_sec_lib/include/openssl/conf.h create mode 100644 rambus_sec_lib/include/openssl/conf_api.h create mode 100644 rambus_sec_lib/include/openssl/conferr.h create mode 100644 rambus_sec_lib/include/openssl/crypto.h create mode 100644 rambus_sec_lib/include/openssl/cryptoerr.h create mode 100644 rambus_sec_lib/include/openssl/ct.h create mode 100644 rambus_sec_lib/include/openssl/cterr.h create mode 100644 rambus_sec_lib/include/openssl/des.h create mode 100644 rambus_sec_lib/include/openssl/dh.h create mode 100644 rambus_sec_lib/include/openssl/dherr.h create mode 100644 rambus_sec_lib/include/openssl/dsa.h create mode 100644 rambus_sec_lib/include/openssl/dsaerr.h create mode 100644 rambus_sec_lib/include/openssl/dtls1.h create mode 100644 rambus_sec_lib/include/openssl/e_os2.h create mode 100644 rambus_sec_lib/include/openssl/ebcdic.h create mode 100644 rambus_sec_lib/include/openssl/ec.h create mode 100644 rambus_sec_lib/include/openssl/ecdh.h create mode 100644 rambus_sec_lib/include/openssl/ecdsa.h create mode 100644 rambus_sec_lib/include/openssl/ecerr.h create mode 100644 rambus_sec_lib/include/openssl/engine.h create mode 100644 rambus_sec_lib/include/openssl/engineerr.h create mode 100644 rambus_sec_lib/include/openssl/err.h create mode 100644 rambus_sec_lib/include/openssl/evp.h create mode 100644 rambus_sec_lib/include/openssl/evperr.h create mode 100644 rambus_sec_lib/include/openssl/hmac.h create mode 100644 rambus_sec_lib/include/openssl/idea.h create mode 100644 rambus_sec_lib/include/openssl/kdf.h create mode 100644 rambus_sec_lib/include/openssl/kdferr.h create mode 100644 rambus_sec_lib/include/openssl/lhash.h create mode 100644 rambus_sec_lib/include/openssl/md2.h create mode 100644 rambus_sec_lib/include/openssl/md4.h create mode 100644 rambus_sec_lib/include/openssl/md5.h create mode 100644 rambus_sec_lib/include/openssl/mdc2.h create mode 100644 rambus_sec_lib/include/openssl/modes.h create mode 100644 rambus_sec_lib/include/openssl/obj_mac.h create mode 100644 rambus_sec_lib/include/openssl/objects.h create mode 100644 rambus_sec_lib/include/openssl/objectserr.h create mode 100644 rambus_sec_lib/include/openssl/ocsp.h create mode 100644 rambus_sec_lib/include/openssl/ocsperr.h create mode 100644 rambus_sec_lib/include/openssl/opensslconf.h create mode 100644 rambus_sec_lib/include/openssl/opensslv.h create mode 100644 rambus_sec_lib/include/openssl/ossl_typ.h create mode 100644 rambus_sec_lib/include/openssl/pem.h create mode 100644 rambus_sec_lib/include/openssl/pem2.h create mode 100644 rambus_sec_lib/include/openssl/pemerr.h create mode 100644 rambus_sec_lib/include/openssl/pkcs12.h create mode 100644 rambus_sec_lib/include/openssl/pkcs12err.h create mode 100644 rambus_sec_lib/include/openssl/pkcs7.h create mode 100644 rambus_sec_lib/include/openssl/pkcs7err.h create mode 100644 rambus_sec_lib/include/openssl/rand.h create mode 100644 rambus_sec_lib/include/openssl/rand_drbg.h create mode 100644 rambus_sec_lib/include/openssl/randerr.h create mode 100644 rambus_sec_lib/include/openssl/rc2.h create mode 100644 rambus_sec_lib/include/openssl/rc4.h create mode 100644 rambus_sec_lib/include/openssl/rc5.h create mode 100644 rambus_sec_lib/include/openssl/ripemd.h create mode 100644 rambus_sec_lib/include/openssl/rsa.h create mode 100644 rambus_sec_lib/include/openssl/rsaerr.h create mode 100644 rambus_sec_lib/include/openssl/safestack.h create mode 100644 rambus_sec_lib/include/openssl/seed.h create mode 100644 rambus_sec_lib/include/openssl/sha.h create mode 100644 rambus_sec_lib/include/openssl/srp.h create mode 100644 rambus_sec_lib/include/openssl/srtp.h create mode 100644 rambus_sec_lib/include/openssl/ssl.h create mode 100644 rambus_sec_lib/include/openssl/ssl2.h create mode 100644 rambus_sec_lib/include/openssl/ssl3.h create mode 100644 rambus_sec_lib/include/openssl/sslerr.h create mode 100644 rambus_sec_lib/include/openssl/stack.h create mode 100644 rambus_sec_lib/include/openssl/store.h create mode 100644 rambus_sec_lib/include/openssl/storeerr.h create mode 100644 rambus_sec_lib/include/openssl/symhacks.h create mode 100644 rambus_sec_lib/include/openssl/tls1.h create mode 100644 rambus_sec_lib/include/openssl/ts.h create mode 100644 rambus_sec_lib/include/openssl/tserr.h create mode 100644 rambus_sec_lib/include/openssl/txt_db.h create mode 100644 rambus_sec_lib/include/openssl/ui.h create mode 100644 rambus_sec_lib/include/openssl/uierr.h create mode 100644 rambus_sec_lib/include/openssl/whrlpool.h create mode 100644 rambus_sec_lib/include/openssl/x509.h create mode 100644 rambus_sec_lib/include/openssl/x509_vfy.h create mode 100644 rambus_sec_lib/include/openssl/x509err.h create mode 100644 rambus_sec_lib/include/openssl/x509v3.h create mode 100644 rambus_sec_lib/include/openssl/x509v3err.h create mode 100755 rambus_sec_lib/lib/eip120.so create mode 100755 rambus_sec_lib/lib/eip28pka.so create mode 100755 rambus_sec_lib/lib/eip76rng.so create mode 100755 rambus_sec_lib/lib/engines-1.1/capi.so create mode 100755 rambus_sec_lib/lib/engines-1.1/padlock.so create mode 100644 rambus_sec_lib/lib/firmware/firmware_eip28.bin create mode 100644 rambus_sec_lib/lib/libcrypto.a create mode 120000 rambus_sec_lib/lib/libcrypto.so create mode 100755 rambus_sec_lib/lib/libcrypto.so.1.1 create mode 100644 rambus_sec_lib/lib/libdriver_120_u.a create mode 100644 rambus_sec_lib/lib/libssl.a create mode 120000 rambus_sec_lib/lib/libssl.so create mode 100755 rambus_sec_lib/lib/libssl.so.1.1 create mode 100644 rambus_sec_lib/lib/modules/extra/driver_120_k.ko create mode 100644 rambus_sec_lib/lib/modules/extra/lcik_main.ko create mode 100644 rambus_sec_lib/lib/modules/extra/tcrypt.ko create mode 100644 rambus_sec_lib/lib/modules/extra/testmgr_rambus.ko create mode 100644 rambus_sec_lib/lib/modules/extra/umdevxs_k.ko create mode 100644 rambus_sec_lib/lib/pkgconfig/libcrypto.pc create mode 100644 rambus_sec_lib/lib/pkgconfig/libssl.pc create mode 100644 rambus_sec_lib/lib/pkgconfig/openssl.pc create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/CA.pl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/asn1parse.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/c_rehash.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/ca.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/ciphers.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/cms.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/crl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/crl2pkcs7.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/dgst.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/dhparam.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/dsa.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/dsaparam.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/ec.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/ecparam.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/enc.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/engine.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/errstr.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/gendsa.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/genpkey.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/genrsa.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/list.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/nseq.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/ocsp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-asn1parse.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-c_rehash.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-ca.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-cms.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-crl2pkcs7.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-dgst.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-dhparam.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-dsa.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-dsaparam.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-ec.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-ecparam.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-enc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-errstr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-gendsa.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-genpkey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-genrsa.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-nseq.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-ocsp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-passwd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-pkcs12.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-pkcs7.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-pkcs8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-pkey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-pkeyparam.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-pkeyutl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-prime.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-rand.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-rehash.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-req.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-rsa.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-rsautl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-s_client.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-s_server.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-s_time.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-sess_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-smime.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-speed.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-spkac.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-srp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-storeutl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-ts.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-tsget.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man1/openssl-x509.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/openssl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/passwd.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/pkcs12.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/pkcs7.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/pkcs8.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/pkey.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/pkeyparam.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/pkeyutl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/prime.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/rand.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/rehash.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/req.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/rsa.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/rsautl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/s_client.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/s_server.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/s_time.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/sess_id.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/smime.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/speed.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/spkac.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/srp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/storeutl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/ts.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/tsget.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/verify.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/version.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man1/x509.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ACCESS_DESCRIPTION_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ACCESS_DESCRIPTION_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSIONS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSIONS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSIONS_get0_admissionAuthority.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSIONS_get0_namingAuthority.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSIONS_get0_professionInfos.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSIONS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSIONS_set0_admissionAuthority.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSIONS_set0_namingAuthority.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSIONS_set0_professionInfos.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSION_SYNTAX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSION_SYNTAX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSION_SYNTAX_get0_admissionAuthority.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSION_SYNTAX_get0_contentsOfAdmissions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSION_SYNTAX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSION_SYNTAX_set0_admissionAuthority.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ADMISSION_SYNTAX_set0_contentsOfAdmissions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASIdOrRange_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASIdOrRange_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASIdentifierChoice_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASIdentifierChoice_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASIdentifiers_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASIdentifiers_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_ENUMERATED_get.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_ENUMERATED_get_int64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_ENUMERATED_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_ENUMERATED_set_int64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_ENUMERATED_to_BN.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_GENERALIZEDTIME_adj.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_GENERALIZEDTIME_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_GENERALIZEDTIME_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_GENERALIZEDTIME_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_GENERALIZEDTIME_set_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_INTEGER_get.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_INTEGER_get_int64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_INTEGER_get_uint64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_INTEGER_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_INTEGER_set_int64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_INTEGER_set_uint64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_INTEGER_to_BN.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_ITEM.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_ITEM_get.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_ITEM_lookup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_OBJECT_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_OBJECT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_TABLE.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_TABLE_add.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_TABLE_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_TABLE_get.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_get0_data.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_length.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_print.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_print_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_print_ex_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_to_UTF8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_STRING_type_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_adj.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_cmp_time_t.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_compare.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_diff.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_normalize.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_print.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_set_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_set_string_X509.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_to_generalizedtime.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TIME_to_tm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TYPE_cmp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TYPE_get.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TYPE_pack_sequence.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TYPE_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TYPE_set1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_TYPE_unpack_sequence.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_UTCTIME_adj.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_UTCTIME_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_UTCTIME_cmp_time_t.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_UTCTIME_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_UTCTIME_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_UTCTIME_set_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_add_oid_module.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_generate_nconf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_generate_v3.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASN1_tag2str.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASRange_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASRange_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_WAIT_CTX_clear_fd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_WAIT_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_WAIT_CTX_get_all_fds.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_WAIT_CTX_get_changed_fds.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_WAIT_CTX_get_fd.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_WAIT_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_WAIT_CTX_set_wait_fd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_block_pause.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_cleanup_thread.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_get_current_job.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_get_wait_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_init_thread.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_is_capable.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_pause_job.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_start_job.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ASYNC_unblock_pause.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/AUTHORITY_INFO_ACCESS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/AUTHORITY_INFO_ACCESS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/AUTHORITY_KEYID_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/AUTHORITY_KEYID_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BASIC_CONSTRAINTS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BASIC_CONSTRAINTS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BF_cbc_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BF_cfb64_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BF_decrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BF_ecb_encrypt.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BF_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BF_ofb64_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BF_options.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BF_set_key.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDRINFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDRINFO_address.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDRINFO_family.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDRINFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDRINFO_next.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDRINFO_protocol.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDRINFO_socktype.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_clear.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_family.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_hostname_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_path_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_rawaddress.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_rawmake.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_rawport.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ADDR_service_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_accept_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_append_filename.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_bind.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_callback_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_callback_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_callback_fn_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_closesocket.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_connect.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ctrl_get_read_request.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ctrl_get_write_guarantee.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ctrl_pending.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ctrl_reset_read_request.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ctrl_wpending.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_debug_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_destroy_bio_pair.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_do_accept.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_do_connect.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_do_handshake.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_eof.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_f_base64.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_f_buffer.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_f_cipher.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_f_md.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_f_null.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_f_ssl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_find_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_flush.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_free_all.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_accept_ip_family.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_accept_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_accept_port.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_bind_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_buffer_num_lines.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_callback_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_callback_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_cipher_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_cipher_status.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_close.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_conn_address.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_conn_hostname.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_conn_ip_family.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_conn_port.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_ex_data.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_fd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_info_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_md_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_mem_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_mem_ptr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_num_renegotiates.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_peer_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_peer_port.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_read_request.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_retry_BIO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_retry_reason.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_shutdown.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_ssl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_write_buf_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_get_write_guarantee.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_gets.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_hostserv_priorities.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_info_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_int_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_listen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_lookup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_lookup_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_lookup_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_make_bio_pair.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_callback_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_create.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_destroy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_gets.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_puts.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_read.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_read_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_write.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_get_write_ex.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_callback_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_create.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_destroy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_gets.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_puts.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_read.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_read_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_write.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_meth_set_write_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_method_type.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_CMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_accept.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_bio_pair.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_buffer_ssl_connect.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_connect.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_fd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_mem_buf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_socket.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_ssl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_new_ssl_connect.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_next.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_parse_hostserv.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_pending.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_pop.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_printf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ptr_ctrl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_push.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_puts.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_read.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_read_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_read_filename.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_reset.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_retry_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_rw_filename.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_s_accept.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_s_bio.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_s_connect.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_s_fd.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_s_file.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_s_mem.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_s_null.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_s_secmem.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_s_socket.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_seek.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_accept_bios.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_accept_ip_family.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_accept_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_accept_port.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_bind_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_buffer_read_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_buffer_size.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_callback_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_callback_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_cipher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_close.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_conn_address.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_conn_hostname.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_conn_ip_family.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_conn_port.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_fd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_info_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_mem_buf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_mem_eof_return.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_nbio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_nbio_accept.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_next.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_read_buffer_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_retry_reason.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_shutdown.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_ssl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_ssl_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_ssl_renegotiate_bytes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_ssl_renegotiate_timeout.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_write_buf_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_set_write_buffer_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_should_io_special.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_should_read.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BIO_should_retry.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_should_write.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_shutdown_wr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_snprintf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_socket.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ssl_copy_session_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_ssl_shutdown.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_tell.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_up_ref.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_vfree.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_vprintf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_vsnprintf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_wpending.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_write.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_write_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BIO_write_filename.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_convert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_convert_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_create_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_get_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_invert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_invert_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_is_current_thread.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_lock.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_set_current_thread.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_unlock.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_BLINDING_update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_CTX_end.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_CTX_get.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_CTX_secure_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_CTX_start.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_GENCB_call.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_GENCB_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_GENCB_get_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_GENCB_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_GENCB_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_GENCB_set_old.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_MONT_CTX_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_MONT_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_MONT_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_MONT_CTX_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_RECP_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_RECP_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_RECP_CTX_set.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_add.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_add_word.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_bin2bn.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_bn2bin.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_bn2binpad.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_bn2dec.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_bn2hex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_bn2lebinpad.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_bn2mpi.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_clear.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_clear_bit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_clear_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_cmp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_dec2bn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_div.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_div_recp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_div_word.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_from_montgomery.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_gcd.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_generate_prime.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_generate_prime_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get0_nist_prime_192.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get0_nist_prime_224.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get0_nist_prime_256.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get0_nist_prime_384.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get0_nist_prime_521.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get_rfc2409_prime_1024.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get_rfc2409_prime_768.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get_rfc3526_prime_1536.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get_rfc3526_prime_2048.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get_rfc3526_prime_3072.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get_rfc3526_prime_4096.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get_rfc3526_prime_6144.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get_rfc3526_prime_8192.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_get_word.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_hex2bn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_is_bit_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_is_odd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_is_one.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_is_prime.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_is_prime_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_is_prime_fasttest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_is_prime_fasttest_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_is_word.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_is_zero.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_lebin2bn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_lshift.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_lshift1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mask_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod_add.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod_exp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod_inverse.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod_mul.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod_mul_montgomery.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod_mul_reciprocal.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod_sqr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod_sub.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mod_word.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mpi2bn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mul.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_mul_word.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_nnmod.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_num_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_num_bits_word.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_num_bytes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_one.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_print_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_priv_rand.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_priv_rand_range.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_pseudo_rand.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_pseudo_rand_range.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_rand.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_rand_range.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_rshift.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_rshift1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_secure_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_security_bits.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_set_bit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_set_word.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_sqr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_sub.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_sub_word.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_swap.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_to_ASN1_ENUMERATED.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_to_ASN1_INTEGER.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_to_montgomery.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_ucmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_value_one.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BN_with_flags.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BN_zero.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BUF_MEM_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BUF_MEM_grow.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BUF_MEM_grow_clean.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/BUF_MEM_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BUF_MEM_new_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/BUF_reverse.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CERTIFICATEPOLICIES_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CERTIFICATEPOLICIES_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_ContentInfo_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_ContentInfo_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_ContentInfo_print_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_ReceiptRequest_create0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_ReceiptRequest_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_ReceiptRequest_get0_values.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_ReceiptRequest_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_RecipientInfo_decrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_RecipientInfo_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_RecipientInfo_kekri_get0_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_RecipientInfo_kekri_id_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_RecipientInfo_ktri_cert_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_RecipientInfo_ktri_get0_signer_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_RecipientInfo_set0_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_RecipientInfo_set0_pkey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_RecipientInfo_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_SignerInfo_cert_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_SignerInfo_get0_signature.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_SignerInfo_get0_signer_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_SignerInfo_set1_signer_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_SignerInfo_sign.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_add0_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_add0_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_add0_recipient_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_add1_ReceiptRequest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_add1_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_add1_crl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_add1_recipient_cert.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_add1_signer.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_compress.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_decrypt.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_encrypt.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_final.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_get0_RecipientInfos.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_get0_SignerInfos.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_get0_content.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_get0_eContentType.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_get0_signers.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_get0_type.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_get1_ReceiptRequest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_get1_certs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_get1_crls.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CMS_set1_eContentType.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_sign.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_sign_receipt.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_uncompress.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_verify.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CMS_verify_receipt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CONF_modules_finish.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CONF_modules_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CONF_modules_load.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CONF_modules_load_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CONF_modules_unload.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRL_DIST_POINTS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRL_DIST_POINTS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_EX_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_EX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_EX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_THREAD_lock_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_THREAD_lock_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_THREAD_read_lock.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_THREAD_run_once.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_THREAD_unlock.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_THREAD_write_lock.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_atomic_add.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_clear_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_clear_realloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_free_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_free_ex_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_get_alloc_counts.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_get_ex_data.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_get_mem_functions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_malloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_mem_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_mem_debug_pop.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_mem_debug_push.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_mem_leaks.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_mem_leaks_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_mem_leaks_fp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_memcmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_new_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_realloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_secure_allocated.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_secure_clear_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_secure_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_secure_malloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_secure_malloc_done.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_secure_malloc_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_secure_malloc_initialized.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_secure_used.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_secure_zalloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_set_mem_debug.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_set_mem_functions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_strdup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_strndup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CRYPTO_zalloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_STORE_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_STORE_get0_log_by_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_STORE_load_default_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_STORE_load_file.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_STORE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_get0_log_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_get0_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_get0_public_key.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CTLOG_new_from_base64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_get0_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_get0_issuer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_get0_log_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_get_time.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_set1_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_set1_issuer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/CT_POLICY_EVAL_CTX_set_time.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DECLARE_ASN1_FUNCTIONS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DECLARE_LHASH_OF.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DECLARE_PEM_rw.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DEFINE_SPECIAL_STACK_OF.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DEFINE_SPECIAL_STACK_OF_CONST.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DEFINE_STACK_OF.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DEFINE_STACK_OF_CONST.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_cbc_cksum.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_cfb64_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_cfb_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_crypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ecb2_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ecb3_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ecb_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ede2_cbc_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ede2_cfb64_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ede2_ofb64_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ede3_cbc_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ede3_cfb64_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ede3_ofb64_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_fcrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_is_weak_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_key_sched.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ncbc_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ofb64_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_ofb_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_pcbc_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_quad_cksum.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DES_random_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_set_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_set_key_checked.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_set_key_unchecked.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_set_odd_parity.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_string_to_2keys.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_string_to_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DES_xcbc_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_OpenSSL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_check_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_check_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_check_params_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_check_pub_key_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_clear_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_compute_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_compute_key_padded.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DH_generate_key.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DH_generate_parameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_generate_parameters_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get0_engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get0_g.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get0_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get0_p.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DH_get0_pqg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get0_priv_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get0_pub_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get0_q.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DH_get_1024_160.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get_2048_224.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get_2048_256.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get_default_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_get_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_get0_app_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_get0_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_get_bn_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_get_compute_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_get_finish.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_get_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_get_generate_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_get_generate_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_get_init.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_set0_app_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_set1_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_set_bn_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_set_compute_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_set_finish.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_set_generate_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_set_generate_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_meth_set_init.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DH_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DH_new_by_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_new_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_security_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_set0_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_set0_pqg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_set_default_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_set_length.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DH_set_method.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DH_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DH_test_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DHparams_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DHparams_print_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DIRECTORYSTRING_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DIRECTORYSTRING_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DISPLAYTEXT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DISPLAYTEXT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DIST_POINT_NAME_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DIST_POINT_NAME_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DIST_POINT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DIST_POINT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_OpenSSL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_SIG_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_SIG_get0.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_SIG_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_SIG_set0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_clear_flags.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_do_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_do_verify.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_dup_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_generate_key.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_generate_parameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_generate_parameters_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get0_engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get0_g.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get0_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get0_p.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get0_pqg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get0_priv_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get0_pub_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get0_q.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get_default_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get0_app_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get0_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_bn_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_finish.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_keygen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_paramgen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_sign_setup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_get_verify.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set0_app_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set1_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_bn_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_finish.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_keygen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_paramgen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_sign_setup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_meth_set_verify.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_new_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_print_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_security_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_set0_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_set0_pqg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_set_default_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_set_flags.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_set_method.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_sign_setup.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DSA_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_test_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSA_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSAparams_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSAparams_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DSAparams_print_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLS_client_method.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DTLS_get_data_mtu.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLS_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLS_server_method.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DTLS_set_timer_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLS_timer_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLSv1_2_client_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLSv1_2_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLSv1_2_server_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLSv1_client_method.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/DTLSv1_listen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLSv1_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/DTLSv1_server_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDH_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDH_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDH_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_SIG_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_SIG_get0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_SIG_get0_r.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_SIG_get0_s.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_SIG_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_SIG_set0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_do_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_do_sign_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_do_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_sign_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_sign_setup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECDSA_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECPARAMETERS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECPARAMETERS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECPKPARAMETERS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECPKPARAMETERS_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ECPKParameters_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ECPKParameters_print_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GF2m_simple_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GFp_mont_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GFp_nist_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GFp_nistp224_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GFp_nistp256_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GFp_nistp521_method.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EC_GFp_simple_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_check_discriminant.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_clear_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_cmp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get0_cofactor.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get0_generator.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get0_order.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get0_seed.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_asn1_flag.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_basis_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_cofactor.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_curve.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_curve_GF2m.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_curve_GFp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_curve_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_degree.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_ecparameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_ecpkparameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_order.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_pentanomial_basis.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_point_conversion_form.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_seed_len.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_get_trinomial_basis.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_have_precompute_mult.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_method_of.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_new_by_curve_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_new_curve_GF2m.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_new_curve_GFp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_new_from_ecparameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_new_from_ecpkparameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_order_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_precompute_mult.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_set_asn1_flag.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_set_curve.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_set_curve_GF2m.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_set_curve_GFp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_set_curve_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_set_generator.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_set_point_conversion_form.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_GROUP_set_seed.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_check_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_clear_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_decoded_from_explicit_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_generate_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get0_engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get0_group.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get0_private_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get0_public_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get_conv_form.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get_enc_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_get_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_key2buf.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_new_by_curve_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_oct2key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_oct2priv.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_precompute_mult.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_priv2buf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_priv2oct.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_asn1_flag.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_conv_form.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_enc_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_group.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_private_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_public_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_set_public_key_affine_coordinates.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_KEY_up_ref.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_METHOD_get_field_type.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_add.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_bn2point.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_clear_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_dbl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_get_Jprojective_coordinates_GFp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_get_affine_coordinates.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_get_affine_coordinates_GF2m.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_get_affine_coordinates_GFp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_hex2point.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_invert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_is_at_infinity.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_is_on_curve.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_make_affine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_method_of.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_mul.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_oct2point.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_point2bn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_point2buf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_point2hex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_point2oct.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_set_Jprojective_coordinates_GFp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_set_affine_coordinates.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_set_affine_coordinates_GF2m.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_set_affine_coordinates_GFp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_set_compressed_coordinates.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_set_compressed_coordinates_GF2m.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_set_compressed_coordinates_GFp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINT_set_to_infinity.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINTs_make_affine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_POINTs_mul.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EC_get_builtin_curves.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EDIPARTYNAME_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EDIPARTYNAME_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_add.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_add_conf_module.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_by_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_cmd_is_executable.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_ctrl_cmd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_ctrl_cmd_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_finish.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_RAND.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_cipher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_cipher_engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_cmd_defns.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_ctrl_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_default_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_default_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_default_RAND.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_default_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_destroy_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_digest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_digest_engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_digests.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_finish_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_first.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_init_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_last.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_load_privkey_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_load_pubkey_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_next.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_prev.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_get_table_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_load_builtin_engines.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_load_private_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_load_public_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_RAND.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_all_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_all_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_all_RAND.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_all_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_all_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_all_complete.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_all_digests.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_complete.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_register_digests.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_remove.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_RAND.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_cmd_defns.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_ctrl_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_default.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_default_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_default_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_default_RAND.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_default_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_default_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_default_digests.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_default_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_destroy_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_digests.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_finish_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_init_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_load_privkey_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_load_pubkey_function.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_set_table_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_unregister_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_unregister_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_unregister_RAND.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_unregister_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_unregister_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_unregister_digests.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ENGINE_up_ref.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_FATAL_ERROR.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_GET_FUNC.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_GET_LIB.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_GET_REASON.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_PACK.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_add_error_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_add_error_vdata.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_clear_error.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_error_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_error_string_n.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_free_strings.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_func_error_string.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_get_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_get_error_line.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_get_error_line_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_get_next_error_library.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_lib_error_string.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_load_crypto_strings.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_load_strings.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_peek_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_peek_error_line.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_peek_error_line_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_peek_last_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_peek_last_error_line.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_peek_last_error_line_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_pop_to_mark.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_print_errors.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_print_errors_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_print_errors_fp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_put_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_reason_error_string.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_remove_state.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ERR_remove_thread_state.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/ERR_set_mark.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ESS_CERT_ID_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ESS_CERT_ID_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ESS_CERT_ID_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ESS_ISSUER_SERIAL_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ESS_ISSUER_SERIAL_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ESS_ISSUER_SERIAL_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ESS_SIGNING_CERT_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ESS_SIGNING_CERT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ESS_SIGNING_CERT_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_BytesToKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_block_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_cipher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_get_app_data.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_get_cipher_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_iv_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_key_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_reset.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_set_app_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_set_cipher_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_set_key_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_set_padding.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_CTX_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_asn1_to_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_block_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_iv_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_key_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_get_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_get_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_get_do_cipher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_get_get_asn1_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_get_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_get_set_asn1_params.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_set_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_set_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_set_do_cipher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_set_get_asn1_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_set_impl_ctx_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_set_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_set_iv_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_meth_set_set_asn1_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_param_to_asn1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CIPHER_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CipherFinal.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CipherFinal_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CipherInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CipherInit_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_CipherUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DecodeBlock.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DecodeFinal.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DecodeInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DecodeUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DecryptFinal.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DecryptFinal_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DecryptInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DecryptInit_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DecryptUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_Digest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestFinal.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestFinalXOF.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestFinal_ex.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestInit_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestSign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestSignFinal.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestSignInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestSignUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestVerify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestVerifyFinal.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestVerifyInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_DigestVerifyUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_ENCODE_CTX_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_ENCODE_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_ENCODE_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_ENCODE_CTX_num.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_EncodeBlock.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_EncodeFinal.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_EncodeInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_EncodeUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_EncryptFinal.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_EncryptFinal_ex.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_EncryptInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_EncryptInit_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_EncryptUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_block_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_clear_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_copy_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_md_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_pkey_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_reset.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_set_pkey_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_set_update_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_test_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_CTX_update_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_block_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_app_datasize.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_input_blocksize.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_result_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_get_update.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_app_datasize.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_input_blocksize.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_result_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_meth_set_update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_pkey_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_MD_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_OpenFinal.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_OpenInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_OpenUpdate.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_ASN1_METHOD.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_add1_hkdf_info.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_add1_tls1_prf_seed.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_ctrl_str.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_ctrl_uint64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get0_dh_kdf_oid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get0_dh_kdf_ukm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get0_ecdh_kdf_ukm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get0_rsa_oaep_label.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get1_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get1_id_len.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_app_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_dh_kdf_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_dh_kdf_outlen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_dh_kdf_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_ecdh_cofactor_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_ecdh_kdf_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_ecdh_kdf_outlen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_ecdh_kdf_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_keygen_info.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_rsa_mgf1_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_rsa_oaep_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_rsa_padding.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_rsa_pss_saltlen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_get_signature_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_hkdf_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_md.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_new_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set0_dh_kdf_oid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set0_dh_kdf_ukm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set0_ecdh_kdf_ukm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set0_rsa_oaep_label.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set1_hkdf_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set1_hkdf_salt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set1_id.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set1_pbe_pass.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set1_scrypt_salt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set1_tls1_prf_secret.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_app_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_kdf_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_kdf_outlen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_kdf_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_pad.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_paramgen_subprime_len.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_paramgen_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dh_rfc5114.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dhx_rfc5114.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dsa_paramgen_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_dsa_paramgen_q_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_ec_param_enc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_ecdh_cofactor_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_ecdh_kdf_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_ecdh_kdf_outlen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_ecdh_kdf_type.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_hkdf_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_mac_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_keygen_primes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_mgf1_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_oaep_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_padding.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_scrypt_N.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_scrypt_maxmem_bytes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_scrypt_p.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_scrypt_r.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_signature_md.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_CTX_set_tls1_prf_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_METHOD.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_add0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_add_alias.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_find.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_find_str.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_get0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_get0_info.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_get_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_get_priv_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_get_pub_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_item.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_param_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_private.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_public.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_public_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_security_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_set_priv_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_set_pub_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_asn1_set_siginf.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_assign_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_assign_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_assign_EC_KEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_assign_POLY1305.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_assign_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_assign_SIPHASH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_base_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_check.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_cmp_parameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_copy_parameters.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_decrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_decrypt_init.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_derive.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_derive_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_derive_set_peer.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_encrypt_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_gen_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get0_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get0_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get0_EC_KEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get0_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get0_asn1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get0_engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get0_hmac.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get0_poly1305.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get0_siphash.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get1_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get1_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get1_EC_KEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get1_RSA.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get_default_digest_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get_raw_private_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_get_raw_public_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_id.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_keygen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_keygen_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_add0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_find.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get0_info.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_copy.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_decrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_derive.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_digest_custom.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_digestsign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_digestverify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_keygen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_param_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_paramgen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_public_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_signctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_verify_recover.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_get_verifyctx.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_remove.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_decrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_derive.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_digest_custom.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_digestsign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_digestverify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_keygen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_param_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_paramgen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_public_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_signctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_verify_recover.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_meth_set_verifyctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_missing_parameters.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_new_CMAC_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_new_mac_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_new_raw_private_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_new_raw_public_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_param_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_paramgen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_paramgen_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_print_params.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_print_private.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_print_public.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_public_check.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_security_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_set1_DH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_set1_DSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_set1_EC_KEY.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_set1_RSA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_set1_engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_set_alias_type.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_sign_init.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_up_ref.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_verify_init.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_verify_recover.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_PKEY_verify_recover_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_SealFinal.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_SealInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_SealUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_SignFinal.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_SignInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_SignInit_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_SignUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_VerifyFinal.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_VerifyInit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_VerifyInit_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_VerifyUpdate.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_cbc_hmac_sha1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_cbc_hmac_sha256.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_ccm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_gcm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_ocb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_ofb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_wrap.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_wrap_pad.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_128_xts.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_ccm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_gcm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_ocb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_ofb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_wrap.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_192_wrap_pad.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_cbc_hmac_sha1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_cbc_hmac_sha256.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_ccm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_gcm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_ocb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_ofb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_wrap.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_wrap_pad.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aes_256_xts.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_ccm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_gcm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_128_ofb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_ccm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_gcm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_192_ofb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_ccm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_gcm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_aria_256_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_bf_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_bf_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_bf_cfb64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_bf_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_bf_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_blake2b512.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_blake2s256.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_128_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_128_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_128_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_128_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_128_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_128_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_128_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_128_ofb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_192_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_192_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_192_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_192_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_192_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_192_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_192_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_192_ofb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_256_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_256_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_256_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_256_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_256_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_256_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_256_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_camellia_256_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_cast5_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_cast5_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_cast5_cfb64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_cast5_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_cast5_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_chacha20.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_chacha20_poly1305.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_cleanup.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_cfb64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede3.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede3_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede3_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede3_cfb1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede3_cfb64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede3_cfb8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede3_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede3_ofb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede3_wrap.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede_cfb64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ede_ofb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_des_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_desx_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_enc_null.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_get_cipherbyname.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_get_cipherbynid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_get_cipherbyobj.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_get_digestbyname.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_get_digestbynid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_get_digestbyobj.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_idea_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_idea_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_idea_cfb64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_idea_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_idea_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_md2.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_md4.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_md5.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_md5_sha1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_md_null.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_mdc2.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc2_40_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc2_64_cbc.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc2_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc2_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc2_cfb64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc2_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc2_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc4.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc4_40.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc4_hmac_md5.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc5_32_12_16_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc5_32_12_16_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc5_32_12_16_cfb64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc5_32_12_16_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_rc5_32_12_16_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_ripemd160.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_seed_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_seed_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_seed_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_seed_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_seed_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha1.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha224.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha256.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha384.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha3_224.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha3_256.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha3_384.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha3_512.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha512.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha512_224.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sha512_256.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_shake128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_shake256.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sm3.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sm4_cbc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sm4_cfb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sm4_cfb128.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sm4_ctr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sm4_ecb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EVP_sm4_ofb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/EVP_whirlpool.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EXTENDED_KEY_USAGE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/EXTENDED_KEY_USAGE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/GENERAL_NAMES_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/GENERAL_NAMES_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/GENERAL_NAME_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/GENERAL_NAME_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/GENERAL_NAME_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/GENERAL_SUBTREE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/GENERAL_SUBTREE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/GEN_SESSION_CB.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/HMAC.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_CTX_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_CTX_get_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_CTX_reset.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_CTX_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_Final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_Init_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_Update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/HMAC_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IMPLEMENT_ASN1_FUNCTIONS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IMPLEMENT_LHASH_COMP_FN.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IMPLEMENT_LHASH_HASH_FN.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IPAddressChoice_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IPAddressChoice_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IPAddressFamily_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IPAddressFamily_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IPAddressOrRange_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IPAddressOrRange_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IPAddressRange_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/IPAddressRange_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ISSUING_DIST_POINT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ISSUING_DIST_POINT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/LHASH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/LHASH_DOALL_ARG_FN_TYPE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD2.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD2_Final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD2_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD2_Update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD4.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD4_Final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD4_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD4_Update.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/MD5.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD5_Final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD5_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MD5_Update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MDC2.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MDC2_Final.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/MDC2_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/MDC2_Update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAME_CONSTRAINTS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAME_CONSTRAINTS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAMING_AUTHORITY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAMING_AUTHORITY_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAMING_AUTHORITY_get0_authorityId.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAMING_AUTHORITY_get0_authorityText.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAMING_AUTHORITY_get0_authorityURL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAMING_AUTHORITY_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAMING_AUTHORITY_set0_authorityId.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAMING_AUTHORITY_set0_authorityText.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NAMING_AUTHORITY_set0_authorityURL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NETSCAPE_CERT_SEQUENCE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NETSCAPE_CERT_SEQUENCE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NETSCAPE_SPKAC_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NETSCAPE_SPKAC_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NETSCAPE_SPKI_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NETSCAPE_SPKI_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NOTICEREF_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/NOTICEREF_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_create.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_get0_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_ln2nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_nid2ln.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_nid2obj.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_nid2sn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_obj2nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_obj2txt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_sn2nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_txt2nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OBJ_txt2obj.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_BASICRESP_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_BASICRESP_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_CERTID_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_CERTID_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_CERTID_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_CERTSTATUS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_CERTSTATUS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_CRLID_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_CRLID_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_ONEREQ_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_ONEREQ_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REQINFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REQINFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REQUEST_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REQUEST_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REQ_CTX_add1_header.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REQ_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REQ_CTX_i2d.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REQ_CTX_set1_req.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPBYTES_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPBYTES_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPDATA_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPDATA_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPID_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPID_match.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPID_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPID_set_by_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPID_set_by_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPONSE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_RESPONSE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REVOKEDINFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_REVOKEDINFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_SERVICELOC_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_SERVICELOC_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_SIGNATURE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_SIGNATURE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_SINGLERESP_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_SINGLERESP_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_basic_add1_nonce.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_basic_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_basic_sign_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_basic_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_cert_id_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_cert_to_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_check_nonce.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_check_validity.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_copy_nonce.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_id_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_id_get0_info.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_id_issuer_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_request_add0_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_request_add1_cert.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_request_add1_nonce.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_request_onereq_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_request_onereq_get0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_request_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_find.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_find_status.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_get0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_get0_certs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_get0_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_get0_produced_at.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_get0_respdata.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_get0_signature.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_get0_signer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_get0_tbs_sigalg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_resp_get1_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_response_create.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_response_get1_basic.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_response_status.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_sendreq_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_sendreq_nbio.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_sendreq_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_set_max_response_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OCSP_single_get0_status.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_Applink.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_INIT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_INIT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_INIT_set_config_appname.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_INIT_set_config_file_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_INIT_set_config_filename.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_LH_COMPFUNC.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_LH_DOALL_FUNC.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_LH_HASHFUNC.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_LH_node_stats.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_LH_node_stats_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_LH_node_usage_stats.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_LH_node_usage_stats_bio.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_LH_stats.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_LH_stats_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_MALLOC_FAILURES.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_MALLOC_FD.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_VERSION_NUMBER.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_VERSION_TEXT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_atexit.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_buf2hexstr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_cipher_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_cleanse.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_clear_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_clear_realloc.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_config.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_fork_child.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_fork_parent.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_fork_prepare.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_hexchar2int.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_hexstr2buf.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_ia32cap.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_init_crypto.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_init_ssl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_instrument_bus.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_instrument_bus2.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_load_builtin_modules.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_malloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_malloc_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_mem_debug_pop.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_mem_debug_push.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_memdup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_no_config.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_realloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_secure_actual_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_secure_clear_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_secure_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_secure_malloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_secure_zalloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_strdup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_strlcat.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_strlcpy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_strndup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_thread_stop.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OPENSSL_zalloc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_CTX.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get0_CERT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get0_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get0_NAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get0_NAME_description.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get0_PARAMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get0_PKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get1_CERT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get1_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get1_NAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get1_NAME_description.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get1_PARAMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get1_PKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_get_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_new_CERT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_new_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_new_NAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_new_PARAMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_new_PKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_set0_NAME_description.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_INFO_type_string.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_CTX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_get0_engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_get0_scheme.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_set_close.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_set_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_set_eof.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_set_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_set_expect.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_set_find.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_set_load.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_LOADER_set_open.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_by_alias.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_by_issuer_serial.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_by_key_fingerprint.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_by_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_get0_bytes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_get0_digest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_get0_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_get0_serial.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_get0_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_SEARCH_get_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_close.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_close_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_ctrl_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_eof.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_eof_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_error_fn.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_expect.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_expect_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_find.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_find_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_load.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_load_fn.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_open.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_open_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_post_process_info_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_register_loader.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_supports_search.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OSSL_STORE_unregister_loader.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OTHERNAME_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OTHERNAME_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/OpenSSL_add_all_algorithms.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OpenSSL_add_all_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OpenSSL_add_all_digests.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OpenSSL_add_ssl_algorithms.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OpenSSL_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/OpenSSL_version_num.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PBE2PARAM_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PBE2PARAM_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PBEPARAM_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PBEPARAM_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PBKDF2PARAM_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PBKDF2PARAM_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_FLAG_EAY_COMPATIBLE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_FLAG_ONLY_B64.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_FLAG_SECURE.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PEM_bytes_read_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_bytes_read_bio_secmem.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_do_header.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_get_EVP_CIPHER_INFO.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_CMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_DHparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_DSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_DSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_DSAparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_ECPKParameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_ECPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_EC_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_NETSCAPE_CERT_SEQUENCE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_PKCS7.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_PKCS8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_PKCS8_PRIV_KEY_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_RSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_RSAPublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_RSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_SSL_SESSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_X509.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_X509_AUX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_X509_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_X509_REQ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_CMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_DHparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_DSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_DSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_DSAparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_ECPKParameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_EC_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_NETSCAPE_CERT_SEQUENCE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_PKCS7.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_PKCS8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_PKCS8_PRIV_KEY_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_Parameters.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_RSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_RSAPublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_RSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_SSL_SESSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_X509.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_X509_AUX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_X509_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_X509_REQ.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PEM_read_bio_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_CMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_DHparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_DHxparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_DSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_DSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_DSAparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_ECPKParameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_ECPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_EC_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_NETSCAPE_CERT_SEQUENCE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_PKCS7.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_PKCS8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_PKCS8PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_PKCS8PrivateKey_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_PKCS8_PRIV_KEY_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_RSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_RSAPublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_RSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_SSL_SESSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_X509.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_X509_AUX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_X509_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_X509_REQ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_X509_REQ_NEW.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_CMS.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_CMS_stream.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_DHparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_DHxparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_DSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_DSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_DSAparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_ECPKParameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_ECPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_EC_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_NETSCAPE_CERT_SEQUENCE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_PKCS7.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_PKCS7_stream.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_PKCS8.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_PKCS8PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_PKCS8PrivateKey_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_PKCS8_PRIV_KEY_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_Parameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_PrivateKey_traditional.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_RSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_RSAPublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_RSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_SSL_SESSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_X509.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_X509_AUX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_X509_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_X509_REQ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PEM_write_bio_X509_REQ_NEW.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_BAGS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_BAGS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_MAC_DATA_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_MAC_DATA_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_SAFEBAG_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_SAFEBAG_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_create.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_newpass.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PKCS12_parse.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PKCS5_PBKDF2_HMAC.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS5_PBKDF2_HMAC_SHA1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_DIGEST_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_DIGEST_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_ENCRYPT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_ENCRYPT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_ENC_CONTENT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_ENC_CONTENT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_ENVELOPE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_ENVELOPE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_ISSUER_AND_SERIAL_digest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_ISSUER_AND_SERIAL_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_ISSUER_AND_SERIAL_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_RECIP_INFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_RECIP_INFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_SIGNED_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_SIGNED_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_SIGNER_INFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_SIGNER_INFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_SIGN_ENVELOPE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_SIGN_ENVELOPE_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_decrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_dup.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_get0_signers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_print_ctx.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_sign.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_sign_add_signer.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/PKCS7_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS8_PRIV_KEY_INFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKCS8_PRIV_KEY_INFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKEY_USAGE_PERIOD_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PKEY_USAGE_PERIOD_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/POLICYINFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/POLICYINFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/POLICYQUALINFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/POLICYQUALINFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/POLICY_CONSTRAINTS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/POLICY_CONSTRAINTS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/POLICY_MAPPING_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/POLICY_MAPPING_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFOS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFOS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFOS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_get0_addProfessionInfo.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_get0_namingAuthority.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_get0_professionItems.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_get0_professionOIDs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_get0_registrationNumber.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_set0_addProfessionInfo.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_set0_namingAuthority.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_set0_professionItems.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_set0_professionOIDs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROFESSION_INFO_set0_registrationNumber.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROXY_CERT_INFO_EXTENSION_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROXY_CERT_INFO_EXTENSION_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROXY_POLICY_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/PROXY_POLICY_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_bytes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_cleanup_entropy_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_cleanup_nonce_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_generate.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_get0_master.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_get0_private.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_get0_public.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_get_entropy_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_get_nonce_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_instantiate.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_reseed.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_secure_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_set.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_set_callbacks.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_set_defaults.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_set_reseed_defaults.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_set_reseed_interval.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_set_reseed_time_interval.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_DRBG_uninstantiate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_OpenSSL.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_add.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_bytes.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_cleanup.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_egd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_egd_bytes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_event.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_file_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_get_rand_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_keep_random_devices_open.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_load_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_poll.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_priv_bytes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_pseudo_bytes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_query_egd_bytes.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_screen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_seed.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RAND_set_rand_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_status.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RAND_write_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RC4.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RC4_set_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RIPEMD160.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RIPEMD160_Final.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RIPEMD160_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RIPEMD160_Update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSAPrivateKey_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSAPublicKey_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_OAEP_PARAMS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_OAEP_PARAMS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_PKCS1_OpenSSL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_PSS_PARAMS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_PSS_PARAMS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_blinding_off.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_blinding_on.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_check_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_check_key_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_clear_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_generate_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_generate_key_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_generate_multi_prime_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_crt_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_d.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_dmp1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_dmq1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_e.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_engine.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_factors.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_iqmp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_multi_prime_crt_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_multi_prime_factors.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_n.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_p.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_pss_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get0_q.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get_default_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get_multi_prime_extra_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_get_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get0_app_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get0_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_bn_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_finish.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_keygen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_multi_prime_keygen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_priv_dec.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_priv_enc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_pub_dec.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_pub_enc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_get_verify.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set0_app_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set1_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_bn_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_finish.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_keygen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_mod_exp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_multi_prime_keygen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_priv_dec.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_priv_enc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_pub_dec.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_pub_enc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_meth_set_verify.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_new_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_add_PKCS1_OAEP.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_add_PKCS1_OAEP_mgf1.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_add_PKCS1_type_1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_add_PKCS1_type_2.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_add_SSLv23.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_add_none.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_check_PKCS1_OAEP.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_check_PKCS1_OAEP_mgf1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_check_PKCS1_type_1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_check_PKCS1_type_2.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_check_SSLv23.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_padding_check_none.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_print_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_private_decrypt.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_private_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_public_decrypt.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_public_encrypt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_security_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_set0_crt_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_set0_factors.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_set0_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_set0_multi_prime_params.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_set_default_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_set_flags.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_set_method.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_sign.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_sign_ASN1_OCTET_STRING.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/RSA_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_test_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/RSA_verify_ASN1_OCTET_STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCRYPT_PARAMS_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCRYPT_PARAMS_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_LIST_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_LIST_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_LIST_validate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_get0_extensions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_get0_log_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_get0_signature.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_get_log_entry_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_get_signature_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_get_source.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_get_timestamp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_get_validation_status.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_get_version.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SCT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_new_from_base64.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SCT_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set0_extensions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set0_log_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set0_signature.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set1_extensions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set1_log_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set1_signature.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set_log_entry_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set_signature_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set_source.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set_timestamp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_set_version.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SCT_validate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SCT_validation_status_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA1_Final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA1_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA1_Update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA224.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA224_Final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA224_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA224_Update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA256.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA256_Final.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SHA256_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA256_Update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA384.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA384_Final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA384_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA384_Update.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA512.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA512_Final.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA512_Init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SHA512_Update.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SMIME_read_CMS.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SMIME_read_PKCS7.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SMIME_write_CMS.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SMIME_write_PKCS7.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_description.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_find.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_auth_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_cipher_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_digest_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_handshake_digest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_kx_nid.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_protocol_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_get_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_is_aead.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CIPHER_standard_name.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_COMP_add_compression_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_COMP_free_compression_methods.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_COMP_get0_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_COMP_get_compression_methods.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_COMP_get_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_CTX_clear_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_CTX_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_CTX_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_CTX_set1_prefix.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_CTX_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_CTX_set_ssl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_CTX_set_ssl_ctx.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_cmd.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_cmd_argv.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CONF_cmd_value_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_add0_chain_cert.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_add1_chain_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_add1_to_CA_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_add_client_CA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_add_client_custom_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_add_custom_ext.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_add_extra_chain_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_add_server_custom_ext.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_add_session.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_build_cert_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_callback_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_check_private_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_clear_chain_certs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_clear_extra_chain_certs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_clear_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_clear_options.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_config.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_ct_is_enabled.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_dane_clear_flags.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_dane_enable.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_dane_mtype_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_dane_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_decrypt_session_ticket_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_disable_ct.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_enable_ct.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_flush_sessions.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_generate_session_ticket_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get0_CA_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get0_chain_certs.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get0_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get0_security_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_client_CA_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_client_cert_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_default_passwd_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_default_passwd_cb_userdata.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_default_read_ahead.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_info_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_keylog_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_max_cert_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_max_proto_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_min_proto_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_num_tickets.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_options.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_quiet_shutdown.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_read_ahead.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_record_padding_callback_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_recv_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_security_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_security_level.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_session_cache_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_timeout.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_tlsext_status_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_tlsext_status_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_tlsext_status_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_verify_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_verify_depth.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_get_verify_mode.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_has_client_custom_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_keylog_cb_func.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_load_verify_locations.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_remove_session.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_select_current_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_accept.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_accept_good.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_accept_renegotiate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_cache_full.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_cb_hits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_connect.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_connect_good.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_connect_renegotiate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_get_cache_size.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_get_get_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_get_new_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_get_remove_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_hits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_misses.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_number.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_set_cache_size.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_set_get_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_set_new_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_set_remove_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sess_timeouts.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_sessions.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set0_CA_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set0_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set0_chain_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set0_security_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set0_verify_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_chain_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_client_sigalgs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_client_sigalgs_list.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_curves.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_curves_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_groups.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_groups_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_param.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_sigalgs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_sigalgs_list.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set1_verify_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_allow_early_data_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_alpn_protos.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_alpn_select_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_block_padding.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_cert_cb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_cert_store.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_cert_verify_callback.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_cipher_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_ciphersuites.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_client_CA_list.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_client_cert_cb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_client_hello_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_cookie_generate_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_cookie_verify_cb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_ct_validation_callback.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_ctlog_list_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_current_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_default_ctlog_list_file.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_default_passwd_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_default_passwd_cb_userdata.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_default_read_buffer_len.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_default_verify_dir.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_default_verify_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_default_verify_paths.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_ex_data.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_generate_session_id.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_info_callback.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_keylog_callback.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_max_cert_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_max_pipelines.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_max_proto_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_max_send_fragment.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_min_proto_version.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_mode.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_msg_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_msg_callback_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_next_proto_select_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_next_protos_advertised_cb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_num_tickets.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_options.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_post_handshake_auth.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_psk_client_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_psk_find_session_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_psk_server_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_psk_use_session_callback.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_quiet_shutdown.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_read_ahead.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_record_padding_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_record_padding_callback_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_recv_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_security_callback.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_security_level.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_session_cache_mode.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_session_id_context.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_session_ticket_cb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_split_send_fragment.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_ssl_version.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_stateless_cookie_generate_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_stateless_cookie_verify_cb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_timeout.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tlsext_max_fragment_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tlsext_servername_arg.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tlsext_servername_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tlsext_status_arg.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tlsext_status_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tlsext_status_type.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tlsext_ticket_key_cb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tlsext_use_srtp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tmp_dh.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_tmp_dh_callback.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_set_verify_depth.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_up_ref.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_PrivateKey_ASN1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_PrivateKey_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_RSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_RSAPrivateKey_ASN1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_RSAPrivateKey_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_cert_and_key.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_certificate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_certificate_ASN1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_certificate_chain_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_certificate_file.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_psk_identity_hint.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_serverinfo.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_serverinfo_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_CTX_use_serverinfo_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_dup.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get0_alpn_selected.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get0_cipher.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get0_hostname.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get0_id_context.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get0_peer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get0_ticket.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get0_ticket_appdata.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_compress_id.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_master_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_max_fragment_length.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_protocol_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_ticket_lifetime_hint.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_time.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_get_timeout.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_has_ticket.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_is_resumable.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_new.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_print.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_print_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_print_keylog.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set1_alpn_selected.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set1_hostname.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set1_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set1_id_context.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set1_master_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set1_ticket_appdata.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set_cipher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set_protocol_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set_time.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_set_timeout.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_SESSION_up_ref.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_accept.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_add0_chain_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_add1_chain_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_add1_host.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_add1_to_CA_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_add_client_CA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_add_dir_cert_subjects_to_stack.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_add_file_cert_subjects_to_stack.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_alert_desc_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_alert_desc_string_long.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_alert_type_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_alert_type_string_long.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_alloc_buffers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_allow_early_data_cb_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_build_cert_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_bytes_to_cipher_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_callback_ctrl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_check_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_check_private_key.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_clear.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_clear_chain_certs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_clear_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_clear_options.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_hello_cb_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_hello_get0_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_hello_get0_compression_methods.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_hello_get0_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_hello_get0_legacy_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_hello_get0_random.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_hello_get0_session_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_hello_get1_extensions_present.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_hello_isv2.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_client_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_config.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_connect.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_ct_is_enabled.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_dane_clear_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_dane_enable.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_dane_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_dane_tlsa_add.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_disable_ct.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_do_handshake.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_enable_ct.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_export_keying_material.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_export_keying_material_early.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_extension_supported.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_free_buffers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_CA_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_alpn_selected.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_chain_certs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_dane_authority.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_dane_tlsa.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_next_proto_negotiated.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_peer_CA_list.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_peer_scts.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_peername.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_security_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_session.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get0_verified_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get1_curves.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get1_groups.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get1_session.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get1_supported_ciphers.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_SSL_CTX.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_all_async_fds.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_changed_async_fds.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_cipher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_cipher_bits.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_cipher_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_cipher_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_cipher_version.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_client_CA_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_client_ciphers.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_client_random.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_current_cipher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_default_passwd_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_default_passwd_cb_userdata.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_default_timeout.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_early_data_status.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_ex_data_X509_STORE_CTX_idx.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_extms_support.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_fd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_info_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_key_update_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_max_cert_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_max_proto_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_min_proto_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_num_tickets.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_options.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_peer_cert_chain.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_peer_certificate.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_peer_signature_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_peer_signature_type_nid.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_peer_tmp_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_pending_cipher.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_psk_identity.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_psk_identity_hint.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_quiet_shutdown.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_rbio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_read_ahead.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_record_padding_callback_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_recv_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_rfd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_secure_renegotiation_support.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_security_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_security_level.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_selected_srtp_profile.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_server_random.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_server_tmp_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_servername.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_servername_type.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_session.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_shared_ciphers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_shared_curve.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_shared_group.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_shared_sigalgs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_shutdown.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_sigalgs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_signature_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_signature_type_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_srtp_profiles.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_ssl_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_state.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_time.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_timeout.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_tlsext_status_ocsp_resp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_tlsext_status_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_tmp_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_verify_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_verify_depth.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_verify_mode.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_verify_result.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_wbio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_get_wfd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_has_matching_session_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_has_pending.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_in_accept_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_in_before.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_in_connect_init.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_in_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_is_dtls.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_is_init_finished.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_is_server.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_key_update.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_library_init.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_load_client_CA_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_load_error_strings.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_peek.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_peek_ex.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_pending.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_psk_client_cb_func.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_psk_find_session_cb_func.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_psk_server_cb_func.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_psk_use_session_cb_func.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_read.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_read_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_read_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_renegotiate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_renegotiate_abbreviated.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_renegotiate_pending.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_rstate_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_rstate_string_long.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_select_current_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_select_next_proto.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_session_reused.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set0_CA_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set0_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set0_chain_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set0_rbio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set0_security_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set0_verify_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set0_wbio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_chain_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_client_sigalgs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_client_sigalgs_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_curves.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_curves_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_groups.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_groups_list.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_host.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_sigalgs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_sigalgs_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set1_verify_cert_store.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_accept_state.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_allow_early_data_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_alpn_protos.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_block_padding.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_cert_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_cipher_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_ciphersuites.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_client_CA_list.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_connect_state.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_ct_validation_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_current_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_default_passwd_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_default_passwd_cb_userdata.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_default_read_buffer_len.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_ex_data.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_fd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_generate_session_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_hostflags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_info_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_max_cert_list.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_max_pipelines.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_max_proto_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_max_send_fragment.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_min_proto_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_mode.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_msg_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_msg_callback_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_num_tickets.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_options.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_post_handshake_auth.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_psk_client_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_psk_find_session_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_psk_server_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_psk_use_session_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_quiet_shutdown.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_read_ahead.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_record_padding_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_record_padding_callback_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_recv_max_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_rfd.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_security_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_security_level.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_session.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_session_id_context.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_shutdown.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_split_send_fragment.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_ssl_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_time.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_timeout.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_tlsext_host_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_tlsext_max_fragment_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_tlsext_status_ocsp_resp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_tlsext_status_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_tlsext_use_srtp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_tmp_dh.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_tmp_dh_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_verify_depth.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_verify_result.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_set_wfd.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_shutdown.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_state_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_state_string_long.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_stateless.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_up_ref.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_PrivateKey_ASN1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_PrivateKey_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_RSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_RSAPrivateKey_ASN1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_RSAPrivateKey_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_cert_and_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_certificate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_certificate_ASN1.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_certificate_chain_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_certificate_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_use_psk_identity_hint.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_verify_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_verify_client_post_handshake.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_waiting_for_async.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_want.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_want_async.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_want_async_job.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_want_client_hello_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_want_nothing.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_want_read.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_want_write.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_want_x509_lookup.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/SSL_write.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_write_early_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSL_write_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSLv23_client_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSLv23_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSLv23_server_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSLv3_client_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSLv3_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SSLv3_server_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SXNETID_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SXNETID_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SXNET_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/SXNET_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLS_FEATURE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLS_FEATURE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLS_client_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLS_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLS_server_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLSv1_1_client_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLSv1_1_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLSv1_1_server_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLSv1_2_client_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLSv1_2_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLSv1_2_server_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLSv1_client_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLSv1_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TLSv1_server_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_ACCURACY_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_ACCURACY_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_ACCURACY_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_MSG_IMPRINT_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_MSG_IMPRINT_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_MSG_IMPRINT_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_REQ_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_REQ_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_REQ_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_RESP_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_RESP_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_RESP_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_STATUS_INFO_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_STATUS_INFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_STATUS_INFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_TST_INFO_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_TST_INFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/TS_TST_INFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_METHOD.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_OpenSSL.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/UI_STRING.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/UI_UTIL_read_pw.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_UTIL_read_pw_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_UTIL_wrap_read_pem_callback.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_add_error_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_add_info_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_add_input_boolean.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_add_input_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_add_user_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_add_verify_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_construct_prompt.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/UI_create_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_destroy_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_dup_error_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_dup_info_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_dup_input_boolean.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_dup_input_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_dup_user_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_dup_verify_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get0_action_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get0_output_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get0_result.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get0_result_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get0_test_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get0_user_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_default_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_input_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_result_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_result_maxsize.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_result_minsize.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_result_string_length.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_get_string_type.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_get_closer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_get_data_destructor.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_get_data_duplicator.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_get_flusher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_get_opener.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_get_prompt_constructor.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_get_reader.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_get_writer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_set_closer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_set_data_duplicator.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_set_flusher.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_set_opener.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_set_prompt_constructor.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_set_reader.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_method_set_writer.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/UI_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_new_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_null.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_process.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_set_default_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_set_method.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_set_result.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_set_result_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/UI_string_types.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/USERNOTICE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/USERNOTICE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509V3_EXT_d2i.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509V3_EXT_i2d.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509V3_add1_i2d.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509V3_get_d2i.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ALGOR_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ALGOR_copy.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_ALGOR_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ALGOR_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ALGOR_get0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ALGOR_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ALGOR_set0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ALGOR_set_md.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ATTRIBUTE_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ATTRIBUTE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_ATTRIBUTE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CERT_AUX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CERT_AUX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CINF_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CINF_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_INFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_INFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_add0_revoked.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_add1_ext_i2d.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_add_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_delete_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_digest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get0_by_cert.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get0_by_serial.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get0_extensions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get0_lastUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get0_nextUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get0_signature.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_REVOKED.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_ext_by_NID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_ext_by_OBJ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_ext_by_critical.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_ext_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_ext_d2i.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_issuer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_signature_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_get_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_match.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_set1_lastUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_set1_nextUpdate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_set_issuer_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_set_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_sign_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_sort.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_CRL_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_create_by_NID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_create_by_OBJ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_get_critical.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_get_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_get_object.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_set_critical.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_set_data.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_EXTENSION_set_object.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_METHOD.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_TYPE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_add_dir.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_by_alias.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_by_fingerprint.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_by_issuer_serial.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_by_subject.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_ctrl_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_get_by_alias_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_get_by_fingerprint_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_get_by_issuer_serial_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_get_by_subject_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_get_method_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_get_store.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_hash_dir.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_load_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_get_by_alias.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_get_by_fingerprint.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_get_by_issuer_serial.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_get_by_subject.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_new_item.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_get_shutdown.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_ctrl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_get_by_alias.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_get_by_fingerprint.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_get_by_issuer_serial.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_get_by_subject.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_new_item.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_meth_set_shutdown.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_set_method_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_LOOKUP_shutdown.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_create_by_NID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_create_by_OBJ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_create_by_txt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_get_data.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_get_object.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_set_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_ENTRY_set_object.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_add_entry.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_add_entry_by_NID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_add_entry_by_OBJ.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_add_entry_by_txt.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_delete_entry.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_digest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_entry_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_get0_der.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_get_entry.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_get_index_by_NID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_get_index_by_OBJ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_get_text_by_NID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_get_text_by_OBJ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_oneline.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_print.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_print_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_NAME_print_ex_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_OBJECT_set1_X509.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_OBJECT_set1_X509_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_PUBKEY_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_PUBKEY_get.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_PUBKEY_get0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_PUBKEY_get0_param.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_PUBKEY_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_PUBKEY_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_PUBKEY_set0_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_INFO_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_INFO_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_check_private_key.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_digest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_get0_pubkey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_get0_signature.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_get_X509_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_get_pubkey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_get_signature_nid.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_get_subject_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_get_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_set0_signature.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_set1_signature_algo.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_set_pubkey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_set_subject_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_set_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_sign_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REQ_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_add1_ext_i2d.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_add_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_delete_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_get0_extensions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_get0_revocationDate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_get0_serialNumber.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_get_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_get_ext_by_NID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_get_ext_by_OBJ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_get_ext_by_critical.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_get_ext_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_get_ext_d2i.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_set_revocationDate.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_REVOKED_set_serialNumber.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_SIG_INFO_get.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_SIG_INFO_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_SIG_free.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_SIG_get0.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_SIG_getm.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_SIG_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_cert_crl_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_check_crl_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_check_issued_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_check_policy_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_check_revocation_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_cleanup_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get0_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get0_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get0_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get0_untrusted.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get1_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_cert_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_check_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_check_issued.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_check_policy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_check_revocation.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_crl_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_current_cert.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_error_depth.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_get_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_get_issuer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_issuer_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_lookup_certs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_lookup_crls.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_num_untrusted.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_get_verify_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_init.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_lookup_certs_fn.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_lookup_crls_fn.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set0_crls.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set0_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set0_trusted_stack.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set0_untrusted.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set0_verified_chain.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set_current_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set_default.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set_error_depth.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set_verify.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_set_verify_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_verify_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_CTX_verify_fn.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_add_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_add_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_add_lookup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get0_objects.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get0_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_cert_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_check_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_check_issued.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_check_policy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_check_revocation.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_get_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_get_issuer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_lookup_certs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_lookup_crls.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_get_verify_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_load_locations.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_lock.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set1_param.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_cert_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_check_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_check_issued.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_check_policy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_check_revocation.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_cleanup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_default_paths.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_depth.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_get_crl.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_get_issuer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_lookup_certs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_lookup_crls.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_lookup_crls_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_purpose.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_trust.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_verify.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_verify_cb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_verify_cb_func.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_set_verify_func.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_unlock.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_STORE_up_ref.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VAL_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VAL_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_add0_policy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_add1_host.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_clear_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get0_peername.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_auth_level.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_depth.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_hostflags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_inh_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_get_time.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set1_email.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set1_host.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set1_ip.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set1_ip_asc.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set1_policies.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set_auth_level.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set_depth.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set_hostflags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set_inh_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set_purpose.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set_time.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_VERIFY_PARAM_set_trust.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_add1_ext_i2d.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_add_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_chain_up_ref.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_check_ca.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_check_email.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_check_host.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_check_ip.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_check_ip_asc.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_check_issued.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_check_private_key.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_check_purpose.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_cmp_current_time.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_cmp_time.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_delete_ext.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_digest.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_authority_issuer.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_authority_key_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_authority_serial.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_extensions.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_notAfter.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_notBefore.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_pubkey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_serialNumber.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_signature.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_subject_key_id.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_tbs_sigalg.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_get0_uids.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_X509_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_ex_new_index.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_ext_by_NID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_ext_by_OBJ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_ext_by_critical.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_ext_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_ext_d2i.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_extended_key_usage.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_extension_flags.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_issuer_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_key_usage.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_pathlen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_proxy_pathlen.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_pubkey.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_serialNumber.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_signature_info.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_signature_nid.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_subject_name.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_get_version.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_getm_notAfter.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_getm_notBefore.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_issuer_and_serial_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_issuer_name_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_load_cert_crl_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_load_cert_file.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_load_crl_file.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_pubkey_digest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set1_notAfter.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set1_notBefore.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set_ex_data.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set_issuer_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set_proxy_flag.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set_proxy_pathlen.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set_pubkey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set_serialNumber.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set_subject_name.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_set_version.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_sign.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_sign_ctx.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_subject_name_cmp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_time_adj.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_time_adj_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_up_ref.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_verify.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509_verify_cert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509_verify_cert_error_string.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509v3_add_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509v3_delete_ext.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509v3_get_ext.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/X509v3_get_ext_by_NID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509v3_get_ext_by_OBJ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509v3_get_ext_by_critical.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/X509v3_get_ext_count.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/custom_ext_add_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/custom_ext_free_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/custom_ext_parse_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ACCESS_DESCRIPTION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ADMISSIONS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ADMISSION_SYNTAX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASIdOrRange.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASIdentifierChoice.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASIdentifiers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_BIT_STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_BMPSTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_ENUMERATED.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_GENERALIZEDTIME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_GENERALSTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_IA5STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_INTEGER.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_NULL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_OBJECT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_OCTET_STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_PRINTABLE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_PRINTABLESTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_SEQUENCE_ANY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_SET_ANY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_T61STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_TIME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_TYPE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_UINTEGER.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_UNIVERSALSTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_UTCTIME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_UTF8STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASN1_VISIBLESTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ASRange.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_AUTHORITY_INFO_ACCESS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_AUTHORITY_KEYID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_AutoPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_BASIC_CONSTRAINTS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_CERTIFICATEPOLICIES.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_CMS_ContentInfo.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_CMS_ReceiptRequest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_CMS_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_CRL_DIST_POINTS.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DHparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DHxparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DIRECTORYSTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DISPLAYTEXT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DIST_POINT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DIST_POINT_NAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DSAPrivateKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DSAPrivateKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DSAPublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DSA_PUBKEY_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DSA_PUBKEY_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DSA_SIG.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_DSAparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ECDSA_SIG.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ECPKParameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ECParameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ECPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ECPrivateKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ECPrivateKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_EC_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_EC_PUBKEY_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_EC_PUBKEY_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_EDIPARTYNAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ESS_CERT_ID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ESS_ISSUER_SERIAL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ESS_SIGNING_CERT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_EXTENDED_KEY_USAGE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_GENERAL_NAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_GENERAL_NAMES.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_IPAddressChoice.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_IPAddressFamily.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_IPAddressOrRange.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_IPAddressRange.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_ISSUING_DIST_POINT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_NAMING_AUTHORITY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_NETSCAPE_CERT_SEQUENCE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_NETSCAPE_SPKAC.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_NETSCAPE_SPKI.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_NOTICEREF.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_BASICRESP.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_CERTID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_CERTSTATUS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_CRLID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_ONEREQ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_REQINFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_REQUEST.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_RESPBYTES.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_RESPDATA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_RESPID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_RESPONSE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_REVOKEDINFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_SERVICELOC.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_SIGNATURE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OCSP_SINGLERESP.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_OTHERNAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PBE2PARAM.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PBEPARAM.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PBKDF2PARAM.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS12.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS12_BAGS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS12_MAC_DATA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS12_SAFEBAG.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS12_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS12_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_DIGEST.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_ENCRYPT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_ENC_CONTENT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_ENVELOPE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_ISSUER_AND_SERIAL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_RECIP_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_SIGNED.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_SIGNER_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_SIGN_ENVELOPE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS7_fp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS8PrivateKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS8PrivateKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS8_PRIV_KEY_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS8_PRIV_KEY_INFO_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS8_PRIV_KEY_INFO_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS8_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKCS8_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PKEY_USAGE_PERIOD.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_POLICYINFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_POLICYQUALINFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PROFESSION_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PROXY_CERT_INFO_EXTENSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PROXY_POLICY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PUBKEY_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PUBKEY_fp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PrivateKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PrivateKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_PublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSAPrivateKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSAPrivateKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSAPublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSAPublicKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSAPublicKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSA_OAEP_PARAMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSA_PSS_PARAMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSA_PUBKEY_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_RSA_PUBKEY_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_SCRYPT_PARAMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_SCT_LIST.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/d2i_SSL_SESSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_SXNET.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_SXNETID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_ACCURACY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_MSG_IMPRINT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_MSG_IMPRINT_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_MSG_IMPRINT_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_REQ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_REQ_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_REQ_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_RESP.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_RESP_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_RESP_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_STATUS_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_TST_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_TST_INFO_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_TS_TST_INFO_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_USERNOTICE.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_ALGOR.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_ALGORS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_ATTRIBUTE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_AUX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_CERT_AUX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_CINF.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_CRL_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_CRL_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_CRL_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_EXTENSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_EXTENSIONS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_NAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_NAME_ENTRY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_REQ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_REQ_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_REQ_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_REQ_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_REVOKED.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_SIG.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/d2i_X509_VAL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ACCESS_DESCRIPTION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ADMISSIONS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ADMISSION_SYNTAX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASIdOrRange.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASIdentifierChoice.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASIdentifiers.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_BIT_STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_BMPSTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_ENUMERATED.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_GENERALIZEDTIME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_GENERALSTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_IA5STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_INTEGER.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_NULL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_OBJECT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_OCTET_STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_PRINTABLE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_PRINTABLESTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_SEQUENCE_ANY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_SET_ANY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_T61STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_TIME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_TYPE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_UNIVERSALSTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_UTCTIME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_UTF8STRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_VISIBLESTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASN1_bio_stream.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ASRange.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_AUTHORITY_INFO_ACCESS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_AUTHORITY_KEYID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_BASIC_CONSTRAINTS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_CERTIFICATEPOLICIES.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_CMS_ContentInfo.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_CMS_ReceiptRequest.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_CMS_bio.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/i2d_CMS_bio_stream.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_CRL_DIST_POINTS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DHparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DHxparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DIRECTORYSTRING.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DISPLAYTEXT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DIST_POINT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DIST_POINT_NAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DSAPrivateKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DSAPrivateKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DSAPublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DSA_PUBKEY_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DSA_PUBKEY_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DSA_SIG.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_DSAparams.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ECDSA_SIG.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ECPKParameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ECParameters.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ECPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ECPrivateKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ECPrivateKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_EC_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_EC_PUBKEY_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_EC_PUBKEY_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_EDIPARTYNAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ESS_CERT_ID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ESS_ISSUER_SERIAL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ESS_SIGNING_CERT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_EXTENDED_KEY_USAGE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_GENERAL_NAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_GENERAL_NAMES.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_IPAddressChoice.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_IPAddressFamily.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_IPAddressOrRange.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_IPAddressRange.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_ISSUING_DIST_POINT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_NAMING_AUTHORITY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_NETSCAPE_CERT_SEQUENCE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_NETSCAPE_SPKAC.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_NETSCAPE_SPKI.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_NOTICEREF.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_BASICRESP.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_CERTID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_CERTSTATUS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_CRLID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_ONEREQ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_REQINFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_REQUEST.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_RESPBYTES.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_RESPDATA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_RESPID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_RESPONSE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_REVOKEDINFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_SERVICELOC.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_SIGNATURE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OCSP_SINGLERESP.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_OTHERNAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PBE2PARAM.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PBEPARAM.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PBKDF2PARAM.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS12.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS12_BAGS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS12_MAC_DATA.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS12_SAFEBAG.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS12_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS12_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_DIGEST.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_ENCRYPT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_ENC_CONTENT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_ENVELOPE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_ISSUER_AND_SERIAL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_NDEF.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_RECIP_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_SIGNED.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_SIGNER_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_SIGN_ENVELOPE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_bio.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_bio_stream.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS7_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8PrivateKeyInfo_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8PrivateKeyInfo_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8PrivateKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8PrivateKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8PrivateKey_nid_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8PrivateKey_nid_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8_PRIV_KEY_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8_PRIV_KEY_INFO_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8_PRIV_KEY_INFO_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKCS8_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PKEY_USAGE_PERIOD.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_POLICYINFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_POLICYQUALINFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PROFESSION_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PROXY_CERT_INFO_EXTENSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PROXY_POLICY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PUBKEY_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PUBKEY_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_PublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSAPrivateKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSAPrivateKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSAPrivateKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSAPublicKey.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSAPublicKey_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSAPublicKey_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSA_OAEP_PARAMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSA_PSS_PARAMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSA_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSA_PUBKEY_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_RSA_PUBKEY_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_SCRYPT_PARAMS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_SCT_LIST.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_SSL_SESSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_SXNET.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_SXNETID.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_ACCURACY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_MSG_IMPRINT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_MSG_IMPRINT_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_MSG_IMPRINT_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_REQ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_REQ_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_REQ_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_RESP.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_RESP_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_RESP_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_STATUS_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_TST_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_TST_INFO_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_TS_TST_INFO_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_USERNOTICE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_ALGOR.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_ALGORS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_ATTRIBUTE.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_AUX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_CERT_AUX.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_CINF.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_CRL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_CRL_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_CRL_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_CRL_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_EXTENSION.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_EXTENSIONS.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_NAME.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_NAME_ENTRY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_PUBKEY.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_REQ.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_REQ_INFO.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_REQ_bio.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_REQ_fp.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_REVOKED.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_SIG.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_X509_VAL.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_re_X509_CRL_tbs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2d_re_X509_REQ_tbs.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/i2d_re_X509_tbs.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2o_SCT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2o_SCT_LIST.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/i2t_ASN1_OBJECT.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/lh_TYPE_delete.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/lh_TYPE_doall.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/lh_TYPE_doall_arg.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/lh_TYPE_error.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/lh_TYPE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/lh_TYPE_insert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/lh_TYPE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/lh_TYPE_retrieve.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/o2i_SCT.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man3/o2i_SCT_LIST.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/pem_password_cb.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_deep_copy.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_delete.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_delete_ptr.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_dup.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_find.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_find_ex.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_insert.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_is_sorted.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_new.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_new_null.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_new_reserve.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_num.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_pop.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_pop_free.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_push.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_reserve.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_set.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_set_cmp_func.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_shift.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_sort.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_unshift.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_value.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/sk_TYPE_zero.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man3/ssl_ct_validation_cb.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man5/config.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man5/x509v3_config.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/Ed25519.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man7/Ed448.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/RAND.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/RAND_DRBG.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/RSA-PSS.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/SM2.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/X25519.html create mode 120000 rambus_sec_lib/share/doc/openssl/html/man7/X448.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/bio.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/crypto.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/ct.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/des_modes.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/evp.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/ossl_store-file.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/ossl_store.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/passphrase-encoding.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/proxy-certificates.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/scrypt.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/ssl.html create mode 100644 rambus_sec_lib/share/doc/openssl/html/man7/x509.html create mode 100644 rambus_sec_lib/share/man/man1/CA.pl.1 create mode 100644 rambus_sec_lib/share/man/man1/asn1parse.1 create mode 120000 rambus_sec_lib/share/man/man1/c_rehash.1 create mode 100644 rambus_sec_lib/share/man/man1/ca.1 create mode 100644 rambus_sec_lib/share/man/man1/ciphers.1 create mode 100644 rambus_sec_lib/share/man/man1/cms.1 create mode 100644 rambus_sec_lib/share/man/man1/crl.1 create mode 100644 rambus_sec_lib/share/man/man1/crl2pkcs7.1 create mode 100644 rambus_sec_lib/share/man/man1/dgst.1 create mode 100644 rambus_sec_lib/share/man/man1/dhparam.1 create mode 100644 rambus_sec_lib/share/man/man1/dsa.1 create mode 100644 rambus_sec_lib/share/man/man1/dsaparam.1 create mode 100644 rambus_sec_lib/share/man/man1/ec.1 create mode 100644 rambus_sec_lib/share/man/man1/ecparam.1 create mode 100644 rambus_sec_lib/share/man/man1/enc.1 create mode 100644 rambus_sec_lib/share/man/man1/engine.1 create mode 100644 rambus_sec_lib/share/man/man1/errstr.1 create mode 100644 rambus_sec_lib/share/man/man1/gendsa.1 create mode 100644 rambus_sec_lib/share/man/man1/genpkey.1 create mode 100644 rambus_sec_lib/share/man/man1/genrsa.1 create mode 100644 rambus_sec_lib/share/man/man1/list.1 create mode 100644 rambus_sec_lib/share/man/man1/nseq.1 create mode 100644 rambus_sec_lib/share/man/man1/ocsp.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-asn1parse.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-c_rehash.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-ca.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-ciphers.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-cms.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-crl.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-crl2pkcs7.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-dgst.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-dhparam.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-dsa.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-dsaparam.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-ec.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-ecparam.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-enc.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-engine.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-errstr.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-gendsa.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-genpkey.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-genrsa.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-list.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-nseq.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-ocsp.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-passwd.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-pkcs12.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-pkcs7.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-pkcs8.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-pkey.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-pkeyparam.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-pkeyutl.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-prime.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-rand.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-rehash.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-req.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-rsa.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-rsautl.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-s_client.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-s_server.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-s_time.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-sess_id.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-smime.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-speed.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-spkac.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-srp.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-storeutl.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-ts.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-tsget.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-verify.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-version.1 create mode 120000 rambus_sec_lib/share/man/man1/openssl-x509.1 create mode 100644 rambus_sec_lib/share/man/man1/openssl.1 create mode 100644 rambus_sec_lib/share/man/man1/passwd.1 create mode 100644 rambus_sec_lib/share/man/man1/pkcs12.1 create mode 100644 rambus_sec_lib/share/man/man1/pkcs7.1 create mode 100644 rambus_sec_lib/share/man/man1/pkcs8.1 create mode 100644 rambus_sec_lib/share/man/man1/pkey.1 create mode 100644 rambus_sec_lib/share/man/man1/pkeyparam.1 create mode 100644 rambus_sec_lib/share/man/man1/pkeyutl.1 create mode 100644 rambus_sec_lib/share/man/man1/prime.1 create mode 100644 rambus_sec_lib/share/man/man1/rand.1 create mode 100644 rambus_sec_lib/share/man/man1/rehash.1 create mode 100644 rambus_sec_lib/share/man/man1/req.1 create mode 100644 rambus_sec_lib/share/man/man1/rsa.1 create mode 100644 rambus_sec_lib/share/man/man1/rsautl.1 create mode 100644 rambus_sec_lib/share/man/man1/s_client.1 create mode 100644 rambus_sec_lib/share/man/man1/s_server.1 create mode 100644 rambus_sec_lib/share/man/man1/s_time.1 create mode 100644 rambus_sec_lib/share/man/man1/sess_id.1 create mode 100644 rambus_sec_lib/share/man/man1/smime.1 create mode 100644 rambus_sec_lib/share/man/man1/speed.1 create mode 100644 rambus_sec_lib/share/man/man1/spkac.1 create mode 100644 rambus_sec_lib/share/man/man1/srp.1 create mode 100644 rambus_sec_lib/share/man/man1/storeutl.1 create mode 100644 rambus_sec_lib/share/man/man1/ts.1 create mode 100644 rambus_sec_lib/share/man/man1/tsget.1 create mode 100644 rambus_sec_lib/share/man/man1/verify.1 create mode 100644 rambus_sec_lib/share/man/man1/version.1 create mode 100644 rambus_sec_lib/share/man/man1/x509.1 create mode 120000 rambus_sec_lib/share/man/man3/ACCESS_DESCRIPTION_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ACCESS_DESCRIPTION_new.3 create mode 100644 rambus_sec_lib/share/man/man3/ADMISSIONS.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSIONS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSIONS_get0_admissionAuthority.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSIONS_get0_namingAuthority.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSIONS_get0_professionInfos.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSIONS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSIONS_set0_admissionAuthority.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSIONS_set0_namingAuthority.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSIONS_set0_professionInfos.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSION_SYNTAX.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSION_SYNTAX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSION_SYNTAX_get0_admissionAuthority.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSION_SYNTAX_get0_contentsOfAdmissions.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSION_SYNTAX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSION_SYNTAX_set0_admissionAuthority.3 create mode 120000 rambus_sec_lib/share/man/man3/ADMISSION_SYNTAX_set0_contentsOfAdmissions.3 create mode 120000 rambus_sec_lib/share/man/man3/ASIdOrRange_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ASIdOrRange_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ASIdentifierChoice_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ASIdentifierChoice_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ASIdentifiers_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ASIdentifiers_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_ENUMERATED_get.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_ENUMERATED_get_int64.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_ENUMERATED_set.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_ENUMERATED_set_int64.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_ENUMERATED_to_BN.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_GENERALIZEDTIME_adj.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_GENERALIZEDTIME_check.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_GENERALIZEDTIME_print.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_GENERALIZEDTIME_set.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_GENERALIZEDTIME_set_string.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_INTEGER_get.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_INTEGER_get_int64.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_INTEGER_get_uint64.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_INTEGER_set.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_INTEGER_set_int64.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_INTEGER_set_uint64.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_INTEGER_to_BN.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_ITEM.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_ITEM_get.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_ITEM_lookup.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_OBJECT_free.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_OBJECT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_TABLE.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_STRING_TABLE_add.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_TABLE_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_TABLE_get.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_data.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_get0_data.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_STRING_length.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_STRING_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_print.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_STRING_print_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_print_ex_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_set.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_to_UTF8.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_type.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_STRING_type_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_adj.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_check.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_cmp_time_t.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_compare.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_diff.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_normalize.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_print.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_TIME_set.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_set_string.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_set_string_X509.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_to_generalizedtime.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TIME_to_tm.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TYPE_cmp.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_TYPE_get.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TYPE_pack_sequence.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TYPE_set.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TYPE_set1.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_TYPE_unpack_sequence.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_UTCTIME_adj.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_UTCTIME_check.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_UTCTIME_cmp_time_t.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_UTCTIME_print.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_UTCTIME_set.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_UTCTIME_set_string.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_add_oid_module.3 create mode 100644 rambus_sec_lib/share/man/man3/ASN1_generate_nconf.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_generate_v3.3 create mode 120000 rambus_sec_lib/share/man/man3/ASN1_tag2str.3 create mode 120000 rambus_sec_lib/share/man/man3/ASRange_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ASRange_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_WAIT_CTX_clear_fd.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_WAIT_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_WAIT_CTX_get_all_fds.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_WAIT_CTX_get_changed_fds.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_WAIT_CTX_get_fd.3 create mode 100644 rambus_sec_lib/share/man/man3/ASYNC_WAIT_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_WAIT_CTX_set_wait_fd.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_block_pause.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_cleanup_thread.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_get_current_job.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_get_wait_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_init_thread.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_is_capable.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_pause_job.3 create mode 100644 rambus_sec_lib/share/man/man3/ASYNC_start_job.3 create mode 120000 rambus_sec_lib/share/man/man3/ASYNC_unblock_pause.3 create mode 120000 rambus_sec_lib/share/man/man3/AUTHORITY_INFO_ACCESS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/AUTHORITY_INFO_ACCESS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/AUTHORITY_KEYID_free.3 create mode 120000 rambus_sec_lib/share/man/man3/AUTHORITY_KEYID_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BASIC_CONSTRAINTS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BASIC_CONSTRAINTS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BF_cbc_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/BF_cfb64_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/BF_decrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/BF_ecb_encrypt.3 create mode 100644 rambus_sec_lib/share/man/man3/BF_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/BF_ofb64_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/BF_options.3 create mode 120000 rambus_sec_lib/share/man/man3/BF_set_key.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_ADDR.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_ADDRINFO.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDRINFO_address.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDRINFO_family.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDRINFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDRINFO_next.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDRINFO_protocol.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDRINFO_socktype.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_clear.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_family.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_hostname_string.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_path_string.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_rawaddress.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_rawmake.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_rawport.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ADDR_service_string.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_accept_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_append_filename.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_bind.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_callback_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_callback_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_callback_fn_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_closesocket.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_connect.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ctrl_get_read_request.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ctrl_get_write_guarantee.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ctrl_pending.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ctrl_reset_read_request.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ctrl_wpending.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_debug_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_destroy_bio_pair.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_do_accept.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_do_connect.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_do_handshake.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_eof.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_f_base64.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_f_buffer.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_f_cipher.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_f_md.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_f_null.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_f_ssl.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_find_type.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_flush.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_free_all.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_accept_ip_family.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_accept_name.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_accept_port.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_bind_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_buffer_num_lines.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_callback_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_callback_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_cipher_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_cipher_status.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_close.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_conn_address.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_conn_hostname.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_conn_ip_family.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_conn_port.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_get_data.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_ex_data.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_fd.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_info_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_init.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_md.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_md_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_mem_data.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_mem_ptr.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_num_renegotiates.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_peer_name.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_peer_port.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_read_request.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_retry_BIO.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_retry_reason.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_shutdown.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_ssl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_write_buf_size.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_get_write_guarantee.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_gets.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_hostserv_priorities.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_info_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_int_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_listen.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_lookup.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_lookup_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_lookup_type.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_make_bio_pair.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_callback_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_create.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_destroy.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_gets.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_puts.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_read.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_read_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_write.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_get_write_ex.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_meth_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_callback_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_create.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_destroy.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_gets.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_puts.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_read.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_read_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_write.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_meth_set_write_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_method_type.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_new.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_new_CMS.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_accept.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_bio_pair.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_buffer_ssl_connect.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_connect.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_fd.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_file.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_mem_buf.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_socket.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_ssl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_new_ssl_connect.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_next.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_parse_hostserv.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_pending.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_pop.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_printf.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ptr_ctrl.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_push.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_puts.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_read.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_read_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_read_filename.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_reset.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_retry_type.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_rw_filename.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_s_accept.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_s_bio.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_s_connect.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_s_fd.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_s_file.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_s_mem.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_s_null.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_s_secmem.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_s_socket.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_seek.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_accept_bios.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_accept_ip_family.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_accept_name.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_accept_port.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_bind_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_buffer_read_data.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_buffer_size.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_set_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_callback_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_callback_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_cipher.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_close.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_conn_address.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_conn_hostname.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_conn_ip_family.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_conn_port.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_data.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_fd.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_info_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_init.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_md.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_mem_buf.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_mem_eof_return.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_nbio.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_nbio_accept.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_next.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_read_buffer_size.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_retry_reason.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_shutdown.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_ssl.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_ssl_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_ssl_renegotiate_bytes.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_ssl_renegotiate_timeout.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_write_buf_size.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_set_write_buffer_size.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_should_io_special.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_should_read.3 create mode 100644 rambus_sec_lib/share/man/man3/BIO_should_retry.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_should_write.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_shutdown_wr.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_snprintf.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_socket.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ssl_copy_session_id.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_ssl_shutdown.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_tell.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_up_ref.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_vfree.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_vprintf.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_vsnprintf.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_wpending.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_write.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_write_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BIO_write_filename.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_convert.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_convert_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_create_param.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_get_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_invert.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_invert_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_is_current_thread.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_lock.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_BLINDING_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_set_current_thread.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_unlock.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_BLINDING_update.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_CTX_end.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_CTX_get.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_CTX_secure_new.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_CTX_start.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_GENCB_call.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_GENCB_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_GENCB_get_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_GENCB_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_GENCB_set.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_GENCB_set_old.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_MONT_CTX_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_MONT_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_MONT_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_MONT_CTX_set.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_RECP_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_RECP_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_RECP_CTX_set.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_add.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_add_word.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_bin2bn.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_bn2bin.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_bn2binpad.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_bn2dec.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_bn2hex.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_bn2lebinpad.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_bn2mpi.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_clear.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_clear_bit.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_clear_free.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_cmp.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_dec2bn.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_div.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_div_recp.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_div_word.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_from_montgomery.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_gcd.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_generate_prime.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_generate_prime_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get0_nist_prime_192.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get0_nist_prime_224.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get0_nist_prime_256.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get0_nist_prime_384.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get0_nist_prime_521.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get_rfc2409_prime_1024.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get_rfc2409_prime_768.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get_rfc3526_prime_1536.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get_rfc3526_prime_2048.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get_rfc3526_prime_3072.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get_rfc3526_prime_4096.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get_rfc3526_prime_6144.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get_rfc3526_prime_8192.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_get_word.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_hex2bn.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_is_bit_set.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_is_odd.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_is_one.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_is_prime.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_is_prime_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_is_prime_fasttest.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_is_prime_fasttest_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_is_word.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_is_zero.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_lebin2bn.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_lshift.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_lshift1.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mask_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mod.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mod_add.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mod_exp.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_mod_inverse.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mod_mul.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_mod_mul_montgomery.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_mod_mul_reciprocal.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mod_sqr.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mod_sub.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mod_word.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mpi2bn.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mul.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_mul_word.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_nnmod.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_num_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_num_bits_word.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_num_bytes.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_one.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_print.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_print_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_priv_rand.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_priv_rand_range.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_pseudo_rand.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_pseudo_rand_range.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_rand.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_rand_range.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_rshift.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_rshift1.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_secure_new.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_security_bits.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_set_bit.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_set_word.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_sqr.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_sub.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_sub_word.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_swap.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_to_ASN1_ENUMERATED.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_to_ASN1_INTEGER.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_to_montgomery.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_ucmp.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_value_one.3 create mode 120000 rambus_sec_lib/share/man/man3/BN_with_flags.3 create mode 100644 rambus_sec_lib/share/man/man3/BN_zero.3 create mode 120000 rambus_sec_lib/share/man/man3/BUF_MEM_free.3 create mode 120000 rambus_sec_lib/share/man/man3/BUF_MEM_grow.3 create mode 120000 rambus_sec_lib/share/man/man3/BUF_MEM_grow_clean.3 create mode 100644 rambus_sec_lib/share/man/man3/BUF_MEM_new.3 create mode 120000 rambus_sec_lib/share/man/man3/BUF_MEM_new_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/BUF_reverse.3 create mode 120000 rambus_sec_lib/share/man/man3/CERTIFICATEPOLICIES_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CERTIFICATEPOLICIES_new.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_ContentInfo_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_ContentInfo_new.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_ContentInfo_print_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_ReceiptRequest_create0.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_ReceiptRequest_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_ReceiptRequest_get0_values.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_ReceiptRequest_new.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_RecipientInfo_decrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_RecipientInfo_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_RecipientInfo_kekri_get0_id.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_RecipientInfo_kekri_id_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_RecipientInfo_ktri_cert_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_RecipientInfo_ktri_get0_signer_id.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_RecipientInfo_set0_key.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_RecipientInfo_set0_pkey.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_RecipientInfo_type.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_SignerInfo_cert_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_SignerInfo_get0_signature.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_SignerInfo_get0_signer_id.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_SignerInfo_set1_signer_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_SignerInfo_sign.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_add0_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_add0_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_add0_recipient_key.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_add1_ReceiptRequest.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_add1_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_add1_crl.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_add1_recipient_cert.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_add1_signer.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_compress.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_decrypt.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_encrypt.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_final.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_get0_RecipientInfos.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_get0_SignerInfos.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_get0_content.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_get0_eContentType.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_get0_signers.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_get0_type.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_get1_ReceiptRequest.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_get1_certs.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_get1_crls.3 create mode 120000 rambus_sec_lib/share/man/man3/CMS_set1_eContentType.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_sign.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_sign_receipt.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_uncompress.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_verify.3 create mode 100644 rambus_sec_lib/share/man/man3/CMS_verify_receipt.3 create mode 120000 rambus_sec_lib/share/man/man3/CONF_modules_finish.3 create mode 100644 rambus_sec_lib/share/man/man3/CONF_modules_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CONF_modules_load.3 create mode 100644 rambus_sec_lib/share/man/man3/CONF_modules_load_file.3 create mode 120000 rambus_sec_lib/share/man/man3/CONF_modules_unload.3 create mode 120000 rambus_sec_lib/share/man/man3/CRL_DIST_POINTS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CRL_DIST_POINTS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_EX_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_EX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_EX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_THREAD_lock_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_THREAD_lock_new.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_THREAD_read_lock.3 create mode 100644 rambus_sec_lib/share/man/man3/CRYPTO_THREAD_run_once.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_THREAD_unlock.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_THREAD_write_lock.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_atomic_add.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_clear_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_clear_realloc.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_free_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_free_ex_index.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_get_alloc_counts.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_get_ex_data.3 create mode 100644 rambus_sec_lib/share/man/man3/CRYPTO_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_get_mem_functions.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_malloc.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_mem_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_mem_debug_pop.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_mem_debug_push.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_mem_leaks.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_mem_leaks_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_mem_leaks_fp.3 create mode 100644 rambus_sec_lib/share/man/man3/CRYPTO_memcmp.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_new_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_realloc.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_secure_allocated.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_secure_clear_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_secure_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_secure_malloc.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_secure_malloc_done.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_secure_malloc_init.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_secure_malloc_initialized.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_secure_used.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_secure_zalloc.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_set_mem_debug.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_set_mem_functions.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_strdup.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_strndup.3 create mode 120000 rambus_sec_lib/share/man/man3/CRYPTO_zalloc.3 create mode 120000 rambus_sec_lib/share/man/man3/CTLOG_STORE_free.3 create mode 100644 rambus_sec_lib/share/man/man3/CTLOG_STORE_get0_log_by_id.3 create mode 120000 rambus_sec_lib/share/man/man3/CTLOG_STORE_load_default_file.3 create mode 120000 rambus_sec_lib/share/man/man3/CTLOG_STORE_load_file.3 create mode 100644 rambus_sec_lib/share/man/man3/CTLOG_STORE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/CTLOG_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CTLOG_get0_log_id.3 create mode 120000 rambus_sec_lib/share/man/man3/CTLOG_get0_name.3 create mode 120000 rambus_sec_lib/share/man/man3/CTLOG_get0_public_key.3 create mode 100644 rambus_sec_lib/share/man/man3/CTLOG_new.3 create mode 120000 rambus_sec_lib/share/man/man3/CTLOG_new_from_base64.3 create mode 120000 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_get0_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_get0_issuer.3 create mode 120000 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_get0_log_store.3 create mode 120000 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_get_time.3 create mode 100644 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_set1_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_set1_issuer.3 create mode 120000 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE.3 create mode 120000 rambus_sec_lib/share/man/man3/CT_POLICY_EVAL_CTX_set_time.3 create mode 120000 rambus_sec_lib/share/man/man3/DECLARE_ASN1_FUNCTIONS.3 create mode 120000 rambus_sec_lib/share/man/man3/DECLARE_LHASH_OF.3 create mode 120000 rambus_sec_lib/share/man/man3/DECLARE_PEM_rw.3 create mode 120000 rambus_sec_lib/share/man/man3/DEFINE_SPECIAL_STACK_OF.3 create mode 120000 rambus_sec_lib/share/man/man3/DEFINE_SPECIAL_STACK_OF_CONST.3 create mode 100644 rambus_sec_lib/share/man/man3/DEFINE_STACK_OF.3 create mode 120000 rambus_sec_lib/share/man/man3/DEFINE_STACK_OF_CONST.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_cbc_cksum.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_cfb64_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_cfb_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_crypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ecb2_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ecb3_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ecb_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ede2_cbc_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ede2_cfb64_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ede2_ofb64_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ede3_cbc_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ede3_cfb64_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ede3_ofb64_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_fcrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_is_weak_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_key_sched.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ncbc_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ofb64_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_ofb_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_pcbc_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_quad_cksum.3 create mode 100644 rambus_sec_lib/share/man/man3/DES_random_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_set_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_set_key_checked.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_set_key_unchecked.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_set_odd_parity.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_string_to_2keys.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_string_to_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DES_xcbc_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_OpenSSL.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_check.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_check_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_check_params.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_check_params_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_check_pub_key_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_clear_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_compute_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_compute_key_padded.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_free.3 create mode 100644 rambus_sec_lib/share/man/man3/DH_generate_key.3 create mode 100644 rambus_sec_lib/share/man/man3/DH_generate_parameters.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_generate_parameters_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get0_engine.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get0_g.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get0_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get0_p.3 create mode 100644 rambus_sec_lib/share/man/man3/DH_get0_pqg.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get0_priv_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get0_pub_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get0_q.3 create mode 100644 rambus_sec_lib/share/man/man3/DH_get_1024_160.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get_2048_224.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get_2048_256.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get_default_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get_length.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_get_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_free.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_get0_app_data.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_get0_name.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_get_bn_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_get_compute_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_get_finish.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_get_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_get_generate_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_get_generate_params.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_get_init.3 create mode 100644 rambus_sec_lib/share/man/man3/DH_meth_new.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_set0_app_data.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_set1_name.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_set_bn_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_set_compute_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_set_finish.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_set_generate_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_set_generate_params.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_meth_set_init.3 create mode 100644 rambus_sec_lib/share/man/man3/DH_new.3 create mode 100644 rambus_sec_lib/share/man/man3/DH_new_by_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_new_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_security_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_set0_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_set0_pqg.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_set_default_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_set_length.3 create mode 100644 rambus_sec_lib/share/man/man3/DH_set_method.3 create mode 100644 rambus_sec_lib/share/man/man3/DH_size.3 create mode 120000 rambus_sec_lib/share/man/man3/DH_test_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/DHparams_print.3 create mode 120000 rambus_sec_lib/share/man/man3/DHparams_print_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/DIRECTORYSTRING_free.3 create mode 120000 rambus_sec_lib/share/man/man3/DIRECTORYSTRING_new.3 create mode 120000 rambus_sec_lib/share/man/man3/DISPLAYTEXT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/DISPLAYTEXT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/DIST_POINT_NAME_free.3 create mode 120000 rambus_sec_lib/share/man/man3/DIST_POINT_NAME_new.3 create mode 120000 rambus_sec_lib/share/man/man3/DIST_POINT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/DIST_POINT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_OpenSSL.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_SIG_free.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_SIG_get0.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_SIG_new.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_SIG_set0.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_clear_flags.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_do_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_do_verify.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_dup_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_free.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_generate_key.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_generate_parameters.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_generate_parameters_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get0_engine.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get0_g.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get0_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get0_p.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_get0_pqg.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get0_priv_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get0_pub_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get0_q.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get_default_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_free.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get0_app_data.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get0_name.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_bn_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_finish.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_init.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_keygen.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_paramgen.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_sign_setup.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_get_verify.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_meth_new.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set0_app_data.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set1_name.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_bn_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_finish.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_init.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_keygen.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_paramgen.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_sign_setup.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_meth_set_verify.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_new.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_new_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_print.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_print_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_security_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_set0_key.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_set0_pqg.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_set_default_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_set_flags.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_set_method.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_sign_setup.3 create mode 100644 rambus_sec_lib/share/man/man3/DSA_size.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_test_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/DSA_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/DSAparams_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/DSAparams_print.3 create mode 120000 rambus_sec_lib/share/man/man3/DSAparams_print_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLS_client_method.3 create mode 100644 rambus_sec_lib/share/man/man3/DTLS_get_data_mtu.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLS_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLS_server_method.3 create mode 100644 rambus_sec_lib/share/man/man3/DTLS_set_timer_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLS_timer_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLSv1_2_client_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLSv1_2_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLSv1_2_server_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLSv1_client_method.3 create mode 100644 rambus_sec_lib/share/man/man3/DTLSv1_listen.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLSv1_method.3 create mode 120000 rambus_sec_lib/share/man/man3/DTLSv1_server_method.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDH_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDH_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDH_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_SIG_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_SIG_get0.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_SIG_get0_r.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_SIG_get0_s.3 create mode 100644 rambus_sec_lib/share/man/man3/ECDSA_SIG_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_SIG_set0.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_do_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_do_sign_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_do_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_sign_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_sign_setup.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_size.3 create mode 120000 rambus_sec_lib/share/man/man3/ECDSA_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/ECPARAMETERS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ECPARAMETERS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ECPKPARAMETERS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ECPKPARAMETERS_new.3 create mode 100644 rambus_sec_lib/share/man/man3/ECPKParameters_print.3 create mode 120000 rambus_sec_lib/share/man/man3/ECPKParameters_print_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GF2m_simple_method.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GFp_mont_method.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GFp_nist_method.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GFp_nistp224_method.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GFp_nistp256_method.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GFp_nistp521_method.3 create mode 100644 rambus_sec_lib/share/man/man3/EC_GFp_simple_method.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_check_discriminant.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_clear_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_cmp.3 create mode 100644 rambus_sec_lib/share/man/man3/EC_GROUP_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get0_cofactor.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get0_generator.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get0_order.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get0_seed.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_asn1_flag.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_basis_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_cofactor.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_curve.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_curve_GF2m.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_curve_GFp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_curve_name.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_degree.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_ecparameters.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_ecpkparameters.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_order.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_pentanomial_basis.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_point_conversion_form.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_seed_len.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_get_trinomial_basis.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_have_precompute_mult.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_method_of.3 create mode 100644 rambus_sec_lib/share/man/man3/EC_GROUP_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_new_by_curve_name.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_new_curve_GF2m.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_new_curve_GFp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_new_from_ecparameters.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_new_from_ecpkparameters.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_order_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_precompute_mult.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_set_asn1_flag.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_set_curve.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_set_curve_GF2m.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_set_curve_GFp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_set_curve_name.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_set_generator.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_set_point_conversion_form.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_GROUP_set_seed.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_check_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_clear_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_decoded_from_explicit_params.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_generate_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_get0_engine.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_get0_group.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_get0_private_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_get0_public_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_get_conv_form.3 create mode 100644 rambus_sec_lib/share/man/man3/EC_KEY_get_enc_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_get_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_get_method.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_key2buf.3 create mode 100644 rambus_sec_lib/share/man/man3/EC_KEY_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_new_by_curve_name.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_oct2key.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_oct2priv.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_precompute_mult.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_priv2buf.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_priv2oct.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_asn1_flag.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_conv_form.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_enc_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_group.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_method.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_private_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_public_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_set_public_key_affine_coordinates.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_KEY_up_ref.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_METHOD_get_field_type.3 create mode 100644 rambus_sec_lib/share/man/man3/EC_POINT_add.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_bn2point.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_clear_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_dbl.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_get_Jprojective_coordinates_GFp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_get_affine_coordinates.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_get_affine_coordinates_GF2m.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_get_affine_coordinates_GFp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_hex2point.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_invert.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_is_at_infinity.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_is_on_curve.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_make_affine.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_method_of.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_mul.3 create mode 100644 rambus_sec_lib/share/man/man3/EC_POINT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_oct2point.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_point2bn.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_point2buf.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_point2hex.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_point2oct.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_set_Jprojective_coordinates_GFp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_set_affine_coordinates.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_set_affine_coordinates_GF2m.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_set_affine_coordinates_GFp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_set_compressed_coordinates.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_set_compressed_coordinates_GF2m.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_set_compressed_coordinates_GFp.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINT_set_to_infinity.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINTs_make_affine.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_POINTs_mul.3 create mode 120000 rambus_sec_lib/share/man/man3/EC_get_builtin_curves.3 create mode 120000 rambus_sec_lib/share/man/man3/EDIPARTYNAME_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EDIPARTYNAME_new.3 create mode 100644 rambus_sec_lib/share/man/man3/ENGINE_add.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_add_conf_module.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_by_id.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_cmd_is_executable.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_ctrl_cmd.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_ctrl_cmd_string.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_finish.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_RAND.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_cipher.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_cipher_engine.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_cmd_defns.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_ctrl_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_default_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_default_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_default_RAND.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_default_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_destroy_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_digest.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_digest_engine.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_digests.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_finish_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_first.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_id.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_init_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_last.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_load_privkey_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_load_pubkey_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_name.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_next.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_prev.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_get_table_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_init.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_load_builtin_engines.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_load_private_key.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_load_public_key.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_RAND.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_all_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_all_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_all_RAND.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_all_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_all_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_all_complete.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_all_digests.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_complete.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_register_digests.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_remove.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_RAND.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_cmd_defns.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_ctrl_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_default.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_default_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_default_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_default_RAND.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_default_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_default_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_default_digests.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_default_string.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_destroy_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_digests.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_finish_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_id.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_init_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_load_privkey_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_load_pubkey_function.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_name.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_set_table_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_unregister_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_unregister_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_unregister_RAND.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_unregister_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_unregister_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_unregister_digests.3 create mode 120000 rambus_sec_lib/share/man/man3/ENGINE_up_ref.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_FATAL_ERROR.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_GET_FUNC.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_GET_LIB.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_GET_REASON.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_PACK.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_add_error_data.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_add_error_vdata.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_clear_error.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_error_string.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_error_string_n.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_free_strings.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_func_error_string.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_get_error.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_get_error_line.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_get_error_line_data.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_get_next_error_library.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_lib_error_string.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_load_crypto_strings.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_load_strings.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_peek_error.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_peek_error_line.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_peek_error_line_data.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_peek_last_error.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_peek_last_error_line.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_peek_last_error_line_data.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_pop_to_mark.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_print_errors.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_print_errors_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_print_errors_fp.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_put_error.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_reason_error_string.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_remove_state.3 create mode 120000 rambus_sec_lib/share/man/man3/ERR_remove_thread_state.3 create mode 100644 rambus_sec_lib/share/man/man3/ERR_set_mark.3 create mode 120000 rambus_sec_lib/share/man/man3/ESS_CERT_ID_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/ESS_CERT_ID_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ESS_CERT_ID_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ESS_ISSUER_SERIAL_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/ESS_ISSUER_SERIAL_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ESS_ISSUER_SERIAL_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ESS_SIGNING_CERT_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/ESS_SIGNING_CERT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ESS_SIGNING_CERT_new.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_BytesToKey.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_block_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_cipher.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_get_app_data.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_get_cipher_data.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_iv_length.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_key_length.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_reset.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_set_app_data.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_set_cipher_data.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_set_key_length.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_set_padding.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_CTX_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_asn1_to_param.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_block_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_iv_length.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_key_length.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_get_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_get_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_get_do_cipher.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_get_get_asn1_params.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_get_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_get_set_asn1_params.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_set_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_set_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_set_do_cipher.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_set_get_asn1_params.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_set_impl_ctx_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_set_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_set_iv_length.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_meth_set_set_asn1_params.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_param_to_asn1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CIPHER_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CipherFinal.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CipherFinal_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CipherInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CipherInit_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_CipherUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DecodeBlock.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DecodeFinal.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DecodeInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DecodeUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DecryptFinal.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DecryptFinal_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DecryptInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DecryptInit_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DecryptUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_Digest.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestFinal.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestFinalXOF.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestFinal_ex.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_DigestInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestInit_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestSign.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestSignFinal.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_DigestSignInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestSignUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestVerify.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestVerifyFinal.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_DigestVerifyInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_DigestVerifyUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_ENCODE_CTX_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_ENCODE_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_ENCODE_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_ENCODE_CTX_num.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_EncodeBlock.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_EncodeFinal.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_EncodeInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_EncodeUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_EncryptFinal.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_EncryptFinal_ex.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_EncryptInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_EncryptInit_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_EncryptUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_block_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_clear_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_copy_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_md_data.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_pkey_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_reset.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_set_pkey_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_set_update_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_test_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_CTX_update_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_block_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_app_datasize.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_final.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_input_blocksize.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_result_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_get_update.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_MD_meth_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_app_datasize.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_final.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_input_blocksize.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_result_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_meth_set_update.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_pkey_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_MD_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_OpenFinal.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_OpenInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_OpenUpdate.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_ASN1_METHOD.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_add1_hkdf_info.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_add1_tls1_prf_seed.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_ctrl_str.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_ctrl_uint64.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get0_dh_kdf_oid.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get0_dh_kdf_ukm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get0_ecdh_kdf_ukm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get0_rsa_oaep_label.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get1_id.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get1_id_len.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_app_data.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_dh_kdf_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_dh_kdf_outlen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_dh_kdf_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_ecdh_cofactor_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_ecdh_kdf_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_ecdh_kdf_outlen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_ecdh_kdf_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_keygen_info.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_rsa_mgf1_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_rsa_oaep_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_rsa_padding.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_rsa_pss_saltlen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_get_signature_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_hkdf_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_md.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_new_id.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set0_dh_kdf_oid.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set0_dh_kdf_ukm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set0_ecdh_kdf_ukm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set0_rsa_oaep_label.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set1_hkdf_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set1_hkdf_salt.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set1_id.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set1_pbe_pass.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set1_scrypt_salt.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set1_tls1_prf_secret.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_app_data.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_kdf_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_kdf_outlen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_kdf_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_pad.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_paramgen_generator.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_paramgen_prime_len.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_paramgen_subprime_len.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_paramgen_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dh_rfc5114.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dhx_rfc5114.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dsa_paramgen_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dsa_paramgen_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_dsa_paramgen_q_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_ec_param_enc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_ecdh_cofactor_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_ecdh_kdf_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_ecdh_kdf_outlen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_ecdh_kdf_type.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_hkdf_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_mac_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_keygen_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_keygen_primes.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_keygen_pubexp.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_mgf1_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_oaep_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_padding.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_rsa_pss_saltlen.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_scrypt_N.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_scrypt_maxmem_bytes.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_scrypt_p.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_scrypt_r.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_signature_md.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_CTX_set_tls1_prf_md.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_METHOD.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_add0.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_add_alias.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_find.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_find_str.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_get0.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_get0_info.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_get_count.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_get_priv_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_get_pub_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_item.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_param.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_param_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_private.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_public.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_public_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_security_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_set_priv_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_set_pub_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_asn1_set_siginf.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_assign_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_assign_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_assign_EC_KEY.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_assign_POLY1305.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_assign_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_assign_SIPHASH.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_base_id.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_check.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_cmp_parameters.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_copy_parameters.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_decrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_decrypt_init.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_derive.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_derive_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_derive_set_peer.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_encrypt_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_gen_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get0_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get0_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get0_EC_KEY.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get0_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get0_asn1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get0_engine.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get0_hmac.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get0_poly1305.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get0_siphash.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get1_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get1_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get1_EC_KEY.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get1_RSA.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_get_default_digest_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get_raw_private_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_get_raw_public_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_id.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_keygen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_keygen_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_add0.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_find.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get0.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get0_info.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_copy.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_count.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_decrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_derive.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_digest_custom.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_digestsign.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_digestverify.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_keygen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_param_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_paramgen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_public_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_signctx.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_verify_recover.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_get_verifyctx.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_remove.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_decrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_derive.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_digest_custom.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_digestsign.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_digestverify.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_keygen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_param_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_paramgen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_public_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_signctx.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_verify_recover.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_meth_set_verifyctx.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_missing_parameters.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_new.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_new_CMAC_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_new_mac_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_new_raw_private_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_new_raw_public_key.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_param_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_paramgen.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_paramgen_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_print_params.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_print_private.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_print_public.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_public_check.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_security_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_set1_DH.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_set1_DSA.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_set1_EC_KEY.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_set1_RSA.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_set1_engine.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_set_alias_type.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_sign_init.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_size.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_type.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_up_ref.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_verify_init.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_PKEY_verify_recover.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_PKEY_verify_recover_init.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_SealFinal.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_SealInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_SealUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_SignFinal.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_SignInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_SignInit_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_SignUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_VerifyFinal.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_VerifyInit.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_VerifyInit_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_VerifyUpdate.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_aes.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_cbc_hmac_sha1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_cbc_hmac_sha256.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_ccm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_gcm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_ocb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_ofb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_wrap.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_wrap_pad.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_128_xts.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_ccm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_gcm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_ocb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_ofb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_wrap.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_192_wrap_pad.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_cbc_hmac_sha1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_cbc_hmac_sha256.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_ccm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_gcm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_ocb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_ofb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_wrap.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_wrap_pad.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aes_256_xts.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_aria.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_ccm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_gcm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_128_ofb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_ccm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_gcm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_192_ofb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_ccm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_gcm.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_aria_256_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_bf_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_bf_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_bf_cfb64.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_bf_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_bf_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_blake2b512.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_blake2s256.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_camellia.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_128_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_128_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_128_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_128_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_128_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_128_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_128_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_128_ofb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_192_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_192_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_192_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_192_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_192_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_192_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_192_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_192_ofb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_256_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_256_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_256_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_256_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_256_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_256_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_256_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_camellia_256_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_cast5_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_cast5_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_cast5_cfb64.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_cast5_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_cast5_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_chacha20.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_chacha20_poly1305.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_cleanup.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_des.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_cfb64.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede3.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede3_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede3_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede3_cfb1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede3_cfb64.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede3_cfb8.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede3_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede3_ofb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede3_wrap.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede_cfb64.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ede_ofb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_des_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_desx_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_enc_null.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_get_cipherbyname.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_get_cipherbynid.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_get_cipherbyobj.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_get_digestbyname.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_get_digestbynid.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_get_digestbyobj.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_idea_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_idea_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_idea_cfb64.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_idea_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_idea_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_md2.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_md4.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_md5.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_md5_sha1.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_md_null.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_mdc2.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc2_40_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc2_64_cbc.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_rc2_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc2_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc2_cfb64.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc2_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc2_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_rc4.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc4_40.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc4_hmac_md5.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_rc5_32_12_16_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc5_32_12_16_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc5_32_12_16_cfb64.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc5_32_12_16_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_rc5_32_12_16_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_ripemd160.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_seed_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_seed_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_seed_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_seed_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_seed_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_sha1.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_sha224.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sha256.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sha384.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_sha3_224.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sha3_256.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sha3_384.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sha3_512.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sha512.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sha512_224.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sha512_256.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_shake128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_shake256.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_sm3.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_sm4_cbc.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sm4_cfb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sm4_cfb128.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sm4_ctr.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sm4_ecb.3 create mode 120000 rambus_sec_lib/share/man/man3/EVP_sm4_ofb.3 create mode 100644 rambus_sec_lib/share/man/man3/EVP_whirlpool.3 create mode 120000 rambus_sec_lib/share/man/man3/EXTENDED_KEY_USAGE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/EXTENDED_KEY_USAGE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/GENERAL_NAMES_free.3 create mode 120000 rambus_sec_lib/share/man/man3/GENERAL_NAMES_new.3 create mode 120000 rambus_sec_lib/share/man/man3/GENERAL_NAME_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/GENERAL_NAME_free.3 create mode 120000 rambus_sec_lib/share/man/man3/GENERAL_NAME_new.3 create mode 120000 rambus_sec_lib/share/man/man3/GENERAL_SUBTREE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/GENERAL_SUBTREE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/GEN_SESSION_CB.3 create mode 100644 rambus_sec_lib/share/man/man3/HMAC.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_CTX_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_CTX_get_md.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_CTX_reset.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_CTX_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_Final.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_Init_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_Update.3 create mode 120000 rambus_sec_lib/share/man/man3/HMAC_size.3 create mode 120000 rambus_sec_lib/share/man/man3/IMPLEMENT_ASN1_FUNCTIONS.3 create mode 120000 rambus_sec_lib/share/man/man3/IMPLEMENT_LHASH_COMP_FN.3 create mode 120000 rambus_sec_lib/share/man/man3/IMPLEMENT_LHASH_HASH_FN.3 create mode 120000 rambus_sec_lib/share/man/man3/IPAddressChoice_free.3 create mode 120000 rambus_sec_lib/share/man/man3/IPAddressChoice_new.3 create mode 120000 rambus_sec_lib/share/man/man3/IPAddressFamily_free.3 create mode 120000 rambus_sec_lib/share/man/man3/IPAddressFamily_new.3 create mode 120000 rambus_sec_lib/share/man/man3/IPAddressOrRange_free.3 create mode 120000 rambus_sec_lib/share/man/man3/IPAddressOrRange_new.3 create mode 120000 rambus_sec_lib/share/man/man3/IPAddressRange_free.3 create mode 120000 rambus_sec_lib/share/man/man3/IPAddressRange_new.3 create mode 120000 rambus_sec_lib/share/man/man3/ISSUING_DIST_POINT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/ISSUING_DIST_POINT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/LHASH.3 create mode 120000 rambus_sec_lib/share/man/man3/LHASH_DOALL_ARG_FN_TYPE.3 create mode 120000 rambus_sec_lib/share/man/man3/MD2.3 create mode 120000 rambus_sec_lib/share/man/man3/MD2_Final.3 create mode 120000 rambus_sec_lib/share/man/man3/MD2_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/MD2_Update.3 create mode 120000 rambus_sec_lib/share/man/man3/MD4.3 create mode 120000 rambus_sec_lib/share/man/man3/MD4_Final.3 create mode 120000 rambus_sec_lib/share/man/man3/MD4_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/MD4_Update.3 create mode 100644 rambus_sec_lib/share/man/man3/MD5.3 create mode 120000 rambus_sec_lib/share/man/man3/MD5_Final.3 create mode 120000 rambus_sec_lib/share/man/man3/MD5_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/MD5_Update.3 create mode 120000 rambus_sec_lib/share/man/man3/MDC2.3 create mode 120000 rambus_sec_lib/share/man/man3/MDC2_Final.3 create mode 100644 rambus_sec_lib/share/man/man3/MDC2_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/MDC2_Update.3 create mode 120000 rambus_sec_lib/share/man/man3/NAME_CONSTRAINTS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/NAME_CONSTRAINTS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/NAMING_AUTHORITY.3 create mode 120000 rambus_sec_lib/share/man/man3/NAMING_AUTHORITY_free.3 create mode 120000 rambus_sec_lib/share/man/man3/NAMING_AUTHORITY_get0_authorityId.3 create mode 120000 rambus_sec_lib/share/man/man3/NAMING_AUTHORITY_get0_authorityText.3 create mode 120000 rambus_sec_lib/share/man/man3/NAMING_AUTHORITY_get0_authorityURL.3 create mode 120000 rambus_sec_lib/share/man/man3/NAMING_AUTHORITY_new.3 create mode 120000 rambus_sec_lib/share/man/man3/NAMING_AUTHORITY_set0_authorityId.3 create mode 120000 rambus_sec_lib/share/man/man3/NAMING_AUTHORITY_set0_authorityText.3 create mode 120000 rambus_sec_lib/share/man/man3/NAMING_AUTHORITY_set0_authorityURL.3 create mode 120000 rambus_sec_lib/share/man/man3/NETSCAPE_CERT_SEQUENCE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/NETSCAPE_CERT_SEQUENCE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/NETSCAPE_SPKAC_free.3 create mode 120000 rambus_sec_lib/share/man/man3/NETSCAPE_SPKAC_new.3 create mode 120000 rambus_sec_lib/share/man/man3/NETSCAPE_SPKI_free.3 create mode 120000 rambus_sec_lib/share/man/man3/NETSCAPE_SPKI_new.3 create mode 120000 rambus_sec_lib/share/man/man3/NOTICEREF_free.3 create mode 120000 rambus_sec_lib/share/man/man3/NOTICEREF_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_create.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_get0_data.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_length.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_ln2nid.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_nid2ln.3 create mode 100644 rambus_sec_lib/share/man/man3/OBJ_nid2obj.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_nid2sn.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_obj2nid.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_obj2txt.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_sn2nid.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_txt2nid.3 create mode 120000 rambus_sec_lib/share/man/man3/OBJ_txt2obj.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_BASICRESP_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_BASICRESP_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_CERTID_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_CERTID_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_CERTID_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_CERTSTATUS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_CERTSTATUS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_CRLID_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_CRLID_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_ONEREQ_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_ONEREQ_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_REQINFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_REQINFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_REQUEST_free.3 create mode 100644 rambus_sec_lib/share/man/man3/OCSP_REQUEST_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_REQ_CTX_add1_header.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_REQ_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_REQ_CTX_i2d.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_REQ_CTX_set1_req.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPBYTES_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPBYTES_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPDATA_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPDATA_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPID_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPID_match.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPID_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPID_set_by_key.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPID_set_by_name.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPONSE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_RESPONSE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_REVOKEDINFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_REVOKEDINFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_SERVICELOC_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_SERVICELOC_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_SIGNATURE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_SIGNATURE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_SINGLERESP_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_SINGLERESP_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_basic_add1_nonce.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_basic_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_basic_sign_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_basic_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_cert_id_new.3 create mode 100644 rambus_sec_lib/share/man/man3/OCSP_cert_to_id.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_check_nonce.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_check_validity.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_copy_nonce.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_id_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_id_get0_info.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_id_issuer_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_request_add0_id.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_request_add1_cert.3 create mode 100644 rambus_sec_lib/share/man/man3/OCSP_request_add1_nonce.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_request_onereq_count.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_request_onereq_get0.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_request_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_count.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_find.3 create mode 100644 rambus_sec_lib/share/man/man3/OCSP_resp_find_status.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_get0.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_get0_certs.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_get0_id.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_get0_produced_at.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_get0_respdata.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_get0_signature.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_get0_signer.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_get0_tbs_sigalg.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_resp_get1_id.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_response_create.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_response_get1_basic.3 create mode 100644 rambus_sec_lib/share/man/man3/OCSP_response_status.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_sendreq_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_sendreq_nbio.3 create mode 100644 rambus_sec_lib/share/man/man3/OCSP_sendreq_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_set_max_response_length.3 create mode 120000 rambus_sec_lib/share/man/man3/OCSP_single_get0_status.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_Applink.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_INIT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_INIT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_INIT_set_config_appname.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_INIT_set_config_file_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_INIT_set_config_filename.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_LH_COMPFUNC.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_LH_DOALL_FUNC.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_LH_HASHFUNC.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_LH_node_stats.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_LH_node_stats_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_LH_node_usage_stats.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_LH_node_usage_stats_bio.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_LH_stats.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_LH_stats_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_MALLOC_FAILURES.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_MALLOC_FD.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_VERSION_NUMBER.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_VERSION_TEXT.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_atexit.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_buf2hexstr.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_cipher_name.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_cleanse.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_clear_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_clear_realloc.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_config.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_fork_child.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_fork_parent.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_fork_prepare.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_hexchar2int.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_hexstr2buf.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_ia32cap.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_init_crypto.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_init_ssl.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_instrument_bus.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_instrument_bus2.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_load_builtin_modules.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_malloc.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_malloc_init.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_mem_debug_pop.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_mem_debug_push.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_memdup.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_no_config.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_realloc.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_secure_actual_size.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_secure_clear_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_secure_free.3 create mode 100644 rambus_sec_lib/share/man/man3/OPENSSL_secure_malloc.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_secure_zalloc.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_strdup.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_strlcat.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_strlcpy.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_strndup.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_thread_stop.3 create mode 120000 rambus_sec_lib/share/man/man3/OPENSSL_zalloc.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_CTX.3 create mode 100644 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get0_CERT.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get0_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get0_NAME.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get0_NAME_description.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get0_PARAMS.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get0_PKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get1_CERT.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get1_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get1_NAME.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get1_NAME_description.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get1_PARAMS.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get1_PKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_get_type.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_new_CERT.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_new_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_new_NAME.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_new_PARAMS.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_new_PKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_set0_NAME_description.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_INFO_type_string.3 create mode 100644 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_CTX.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_get0_engine.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_get0_scheme.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_new.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_set_close.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_set_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_set_eof.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_set_error.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_set_expect.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_set_find.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_set_load.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_LOADER_set_open.3 create mode 100644 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_by_alias.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_by_issuer_serial.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_by_key_fingerprint.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_by_name.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_get0_bytes.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_get0_digest.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_get0_name.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_get0_serial.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_get0_string.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_SEARCH_get_type.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_close.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_close_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_ctrl_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_eof.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_eof_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_error.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_error_fn.3 create mode 100644 rambus_sec_lib/share/man/man3/OSSL_STORE_expect.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_expect_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_find.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_find_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_load.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_load_fn.3 create mode 100644 rambus_sec_lib/share/man/man3/OSSL_STORE_open.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_open_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_post_process_info_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_register_loader.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_supports_search.3 create mode 120000 rambus_sec_lib/share/man/man3/OSSL_STORE_unregister_loader.3 create mode 120000 rambus_sec_lib/share/man/man3/OTHERNAME_free.3 create mode 120000 rambus_sec_lib/share/man/man3/OTHERNAME_new.3 create mode 100644 rambus_sec_lib/share/man/man3/OpenSSL_add_all_algorithms.3 create mode 120000 rambus_sec_lib/share/man/man3/OpenSSL_add_all_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/OpenSSL_add_all_digests.3 create mode 120000 rambus_sec_lib/share/man/man3/OpenSSL_add_ssl_algorithms.3 create mode 120000 rambus_sec_lib/share/man/man3/OpenSSL_version.3 create mode 120000 rambus_sec_lib/share/man/man3/OpenSSL_version_num.3 create mode 120000 rambus_sec_lib/share/man/man3/PBE2PARAM_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PBE2PARAM_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PBEPARAM_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PBEPARAM_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PBKDF2PARAM_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PBKDF2PARAM_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_FLAG_EAY_COMPATIBLE.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_FLAG_ONLY_B64.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_FLAG_SECURE.3 create mode 100644 rambus_sec_lib/share/man/man3/PEM_bytes_read_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_bytes_read_bio_secmem.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_do_header.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_get_EVP_CIPHER_INFO.3 create mode 100644 rambus_sec_lib/share/man/man3/PEM_read.3 create mode 100644 rambus_sec_lib/share/man/man3/PEM_read_CMS.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_DHparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_DSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_DSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_DSAparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_ECPKParameters.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_ECPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_EC_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_NETSCAPE_CERT_SEQUENCE.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_PKCS7.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_PKCS8.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_PKCS8_PRIV_KEY_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_RSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_RSAPublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_RSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_SSL_SESSION.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_X509.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_X509_AUX.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_X509_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_X509_REQ.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_CMS.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_DHparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_DSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_DSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_DSAparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_ECPKParameters.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_EC_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_NETSCAPE_CERT_SEQUENCE.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_PKCS7.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_PKCS8.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_PKCS8_PRIV_KEY_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_Parameters.3 create mode 100644 rambus_sec_lib/share/man/man3/PEM_read_bio_PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_RSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_RSAPublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_RSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_SSL_SESSION.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_X509.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_X509_AUX.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_X509_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_read_bio_X509_REQ.3 create mode 100644 rambus_sec_lib/share/man/man3/PEM_read_bio_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_CMS.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_DHparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_DHxparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_DSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_DSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_DSAparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_ECPKParameters.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_ECPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_EC_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_NETSCAPE_CERT_SEQUENCE.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_PKCS7.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_PKCS8.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_PKCS8PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_PKCS8PrivateKey_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_PKCS8_PRIV_KEY_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_RSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_RSAPublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_RSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_SSL_SESSION.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_X509.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_X509_AUX.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_X509_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_X509_REQ.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_X509_REQ_NEW.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_CMS.3 create mode 100644 rambus_sec_lib/share/man/man3/PEM_write_bio_CMS_stream.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_DHparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_DHxparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_DSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_DSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_DSAparams.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_ECPKParameters.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_ECPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_EC_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_NETSCAPE_CERT_SEQUENCE.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_PKCS7.3 create mode 100644 rambus_sec_lib/share/man/man3/PEM_write_bio_PKCS7_stream.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_PKCS8.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_PKCS8PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_PKCS8PrivateKey_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_PKCS8_PRIV_KEY_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_Parameters.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_PrivateKey_traditional.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_RSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_RSAPublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_RSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_SSL_SESSION.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_X509.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_X509_AUX.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_X509_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_X509_REQ.3 create mode 120000 rambus_sec_lib/share/man/man3/PEM_write_bio_X509_REQ_NEW.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS12_BAGS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS12_BAGS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS12_MAC_DATA_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS12_MAC_DATA_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS12_SAFEBAG_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS12_SAFEBAG_new.3 create mode 100644 rambus_sec_lib/share/man/man3/PKCS12_create.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS12_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS12_new.3 create mode 100644 rambus_sec_lib/share/man/man3/PKCS12_newpass.3 create mode 100644 rambus_sec_lib/share/man/man3/PKCS12_parse.3 create mode 100644 rambus_sec_lib/share/man/man3/PKCS5_PBKDF2_HMAC.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS5_PBKDF2_HMAC_SHA1.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_DIGEST_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_DIGEST_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_ENCRYPT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_ENCRYPT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_ENC_CONTENT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_ENC_CONTENT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_ENVELOPE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_ENVELOPE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_ISSUER_AND_SERIAL_digest.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_ISSUER_AND_SERIAL_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_ISSUER_AND_SERIAL_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_RECIP_INFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_RECIP_INFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_SIGNED_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_SIGNED_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_SIGNER_INFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_SIGNER_INFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_SIGN_ENVELOPE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_SIGN_ENVELOPE_new.3 create mode 100644 rambus_sec_lib/share/man/man3/PKCS7_decrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_dup.3 create mode 100644 rambus_sec_lib/share/man/man3/PKCS7_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_get0_signers.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS7_print_ctx.3 create mode 100644 rambus_sec_lib/share/man/man3/PKCS7_sign.3 create mode 100644 rambus_sec_lib/share/man/man3/PKCS7_sign_add_signer.3 create mode 100644 rambus_sec_lib/share/man/man3/PKCS7_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS8_PRIV_KEY_INFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKCS8_PRIV_KEY_INFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PKEY_USAGE_PERIOD_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PKEY_USAGE_PERIOD_new.3 create mode 120000 rambus_sec_lib/share/man/man3/POLICYINFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/POLICYINFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/POLICYQUALINFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/POLICYQUALINFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/POLICY_CONSTRAINTS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/POLICY_CONSTRAINTS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/POLICY_MAPPING_free.3 create mode 120000 rambus_sec_lib/share/man/man3/POLICY_MAPPING_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFOS.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFOS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFOS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_get0_addProfessionInfo.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_get0_namingAuthority.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_get0_professionItems.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_get0_professionOIDs.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_get0_registrationNumber.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_set0_addProfessionInfo.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_set0_namingAuthority.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_set0_professionItems.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_set0_professionOIDs.3 create mode 120000 rambus_sec_lib/share/man/man3/PROFESSION_INFO_set0_registrationNumber.3 create mode 120000 rambus_sec_lib/share/man/man3/PROXY_CERT_INFO_EXTENSION_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PROXY_CERT_INFO_EXTENSION_new.3 create mode 120000 rambus_sec_lib/share/man/man3/PROXY_POLICY_free.3 create mode 120000 rambus_sec_lib/share/man/man3/PROXY_POLICY_new.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_bytes.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_cleanup_entropy_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_cleanup_nonce_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_free.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_DRBG_generate.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_DRBG_get0_master.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_get0_private.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_get0_public.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_get_entropy_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_get_nonce_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_instantiate.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_DRBG_new.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_DRBG_reseed.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_secure_new.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_set.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_DRBG_set_callbacks.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_set_defaults.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_DRBG_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_set_reseed_defaults.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_set_reseed_interval.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_set_reseed_time_interval.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_DRBG_uninstantiate.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_OpenSSL.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_add.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_bytes.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_cleanup.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_egd.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_egd_bytes.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_event.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_file_name.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_get_rand_method.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_keep_random_devices_open.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_load_file.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_poll.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_priv_bytes.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_pseudo_bytes.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_query_egd_bytes.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_screen.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_seed.3 create mode 100644 rambus_sec_lib/share/man/man3/RAND_set_rand_method.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_status.3 create mode 120000 rambus_sec_lib/share/man/man3/RAND_write_file.3 create mode 120000 rambus_sec_lib/share/man/man3/RC4.3 create mode 100644 rambus_sec_lib/share/man/man3/RC4_set_key.3 create mode 120000 rambus_sec_lib/share/man/man3/RIPEMD160.3 create mode 120000 rambus_sec_lib/share/man/man3/RIPEMD160_Final.3 create mode 100644 rambus_sec_lib/share/man/man3/RIPEMD160_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/RIPEMD160_Update.3 create mode 120000 rambus_sec_lib/share/man/man3/RSAPrivateKey_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/RSAPublicKey_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_OAEP_PARAMS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_OAEP_PARAMS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_PKCS1_OpenSSL.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_PSS_PARAMS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_PSS_PARAMS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_blinding_off.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_blinding_on.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_check_key.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_check_key_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_clear_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_free.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_generate_key.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_generate_key_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_generate_multi_prime_key.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_crt_params.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_d.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_dmp1.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_dmq1.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_e.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_engine.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_factors.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_iqmp.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_get0_key.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_multi_prime_crt_params.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_multi_prime_factors.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_n.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_p.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_pss_params.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get0_q.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get_default_method.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get_method.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get_multi_prime_extra_count.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_get_version.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_free.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get0_app_data.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get0_name.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_bn_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_finish.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_init.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_keygen.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_multi_prime_keygen.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_priv_dec.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_priv_enc.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_pub_dec.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_pub_enc.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_get_verify.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_meth_new.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set0_app_data.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set1_name.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_bn_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_finish.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_init.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_keygen.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_mod_exp.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_multi_prime_keygen.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_priv_dec.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_priv_enc.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_pub_dec.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_pub_enc.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_meth_set_verify.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_new.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_new_method.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_add_PKCS1_OAEP.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_add_PKCS1_OAEP_mgf1.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_padding_add_PKCS1_type_1.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_add_PKCS1_type_2.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_add_SSLv23.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_add_none.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_check_PKCS1_OAEP.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_check_PKCS1_OAEP_mgf1.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_check_PKCS1_type_1.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_check_PKCS1_type_2.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_check_SSLv23.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_padding_check_none.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_print.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_print_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_private_decrypt.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_private_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_public_decrypt.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_public_encrypt.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_security_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_set0_crt_params.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_set0_factors.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_set0_key.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_set0_multi_prime_params.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_set_default_method.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_set_flags.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_set_method.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_sign.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_sign_ASN1_OCTET_STRING.3 create mode 100644 rambus_sec_lib/share/man/man3/RSA_size.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_test_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/RSA_verify_ASN1_OCTET_STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/SCRYPT_PARAMS_free.3 create mode 120000 rambus_sec_lib/share/man/man3/SCRYPT_PARAMS_new.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_LIST_free.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_LIST_print.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_LIST_validate.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_get0_extensions.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_get0_log_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_get0_signature.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_get_log_entry_type.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_get_signature_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_get_source.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_get_timestamp.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_get_validation_status.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_get_version.3 create mode 100644 rambus_sec_lib/share/man/man3/SCT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_new_from_base64.3 create mode 100644 rambus_sec_lib/share/man/man3/SCT_print.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set0_extensions.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set0_log_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set0_signature.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set1_extensions.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set1_log_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set1_signature.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set_log_entry_type.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set_signature_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set_source.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set_timestamp.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_set_version.3 create mode 100644 rambus_sec_lib/share/man/man3/SCT_validate.3 create mode 120000 rambus_sec_lib/share/man/man3/SCT_validation_status_string.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA1.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA1_Final.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA1_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA1_Update.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA224.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA224_Final.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA224_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA224_Update.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA256.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA256_Final.3 create mode 100644 rambus_sec_lib/share/man/man3/SHA256_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA256_Update.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA384.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA384_Final.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA384_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA384_Update.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA512.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA512_Final.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA512_Init.3 create mode 120000 rambus_sec_lib/share/man/man3/SHA512_Update.3 create mode 100644 rambus_sec_lib/share/man/man3/SMIME_read_CMS.3 create mode 100644 rambus_sec_lib/share/man/man3/SMIME_read_PKCS7.3 create mode 100644 rambus_sec_lib/share/man/man3/SMIME_write_CMS.3 create mode 100644 rambus_sec_lib/share/man/man3/SMIME_write_PKCS7.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_description.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_find.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_auth_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_cipher_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_digest_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_handshake_digest.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_kx_nid.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_name.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_protocol_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_get_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_is_aead.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CIPHER_standard_name.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_COMP_add_compression_method.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_COMP_free_compression_methods.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_COMP_get0_name.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_COMP_get_compression_methods.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_COMP_get_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CONF_CTX_clear_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CONF_CTX_free.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CONF_CTX_new.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CONF_CTX_set1_prefix.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CONF_CTX_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CONF_CTX_set_ssl.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CONF_CTX_set_ssl_ctx.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CONF_cmd.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CONF_cmd_argv.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CONF_cmd_value_type.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_add0_chain_cert.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_add1_chain_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_add1_to_CA_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_add_client_CA.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_add_client_custom_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_add_custom_ext.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_add_extra_chain_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_add_server_custom_ext.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_add_session.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_build_cert_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_callback_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_check_private_key.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_clear_chain_certs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_clear_extra_chain_certs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_clear_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_clear_options.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_config.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_ct_is_enabled.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_dane_clear_flags.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_dane_enable.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_dane_mtype_set.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_dane_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_decrypt_session_ticket_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_disable_ct.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_enable_ct.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_flush_sessions.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_generate_session_ticket_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get0_CA_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get0_chain_certs.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_get0_param.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get0_security_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_client_CA_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_client_cert_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_default_passwd_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_default_passwd_cb_userdata.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_default_read_ahead.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_info_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_keylog_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_max_cert_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_max_proto_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_min_proto_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_num_tickets.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_options.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_quiet_shutdown.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_read_ahead.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_record_padding_callback_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_recv_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_security_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_security_level.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_session_cache_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_timeout.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_tlsext_status_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_tlsext_status_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_tlsext_status_type.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_verify_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_get_verify_depth.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_get_verify_mode.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_has_client_custom_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_keylog_cb_func.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_load_verify_locations.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_remove_session.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_select_current_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_accept.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_accept_good.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_accept_renegotiate.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_cache_full.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_cb_hits.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_connect.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_connect_good.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_connect_renegotiate.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_get_cache_size.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_get_get_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_get_new_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_get_remove_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_hits.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_misses.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_sess_number.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_sess_set_cache_size.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_sess_set_get_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_set_new_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_set_remove_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_sess_timeouts.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_sessions.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set0_CA_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set0_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set0_chain_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set0_security_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set0_verify_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_chain_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_client_sigalgs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_client_sigalgs_list.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set1_curves.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_curves_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_groups.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_groups_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_param.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set1_sigalgs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set1_sigalgs_list.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set1_verify_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_allow_early_data_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_alpn_protos.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_alpn_select_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_block_padding.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_cert_cb.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_cert_store.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_cert_verify_callback.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_cipher_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_ciphersuites.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_client_CA_list.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_client_cert_cb.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_client_hello_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_cookie_generate_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_cookie_verify_cb.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_ct_validation_callback.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_ctlog_list_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_current_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_default_ctlog_list_file.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_default_passwd_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_default_passwd_cb_userdata.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_default_read_buffer_len.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_default_verify_dir.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_default_verify_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_default_verify_paths.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_ex_data.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_generate_session_id.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_info_callback.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_keylog_callback.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_max_cert_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_max_pipelines.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_max_proto_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_max_send_fragment.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_min_proto_version.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_mode.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_msg_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_msg_callback_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_next_proto_select_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_next_protos_advertised_cb.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_num_tickets.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_options.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_post_handshake_auth.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_psk_client_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_psk_find_session_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_psk_server_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_psk_use_session_callback.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_quiet_shutdown.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_read_ahead.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_record_padding_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_record_padding_callback_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_recv_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_security_callback.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_security_level.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_session_cache_mode.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_session_id_context.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_session_ticket_cb.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_split_send_fragment.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_ssl_version.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_stateless_cookie_generate_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_stateless_cookie_verify_cb.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_timeout.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_tlsext_max_fragment_length.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_tlsext_servername_arg.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_tlsext_servername_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_tlsext_status_arg.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_tlsext_status_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_tlsext_status_type.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_tlsext_ticket_key_cb.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_tlsext_use_srtp.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_tmp_dh.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_tmp_dh_callback.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_set_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_set_verify_depth.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_up_ref.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_PrivateKey_ASN1.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_PrivateKey_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_RSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_RSAPrivateKey_ASN1.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_RSAPrivateKey_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_cert_and_key.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_use_certificate.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_certificate_ASN1.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_certificate_chain_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_certificate_file.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_use_psk_identity_hint.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_CTX_use_serverinfo.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_serverinfo_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_CTX_use_serverinfo_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_dup.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_free.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_get0_alpn_selected.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_get0_cipher.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_get0_hostname.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_get0_id_context.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_get0_peer.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_get0_ticket.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_get0_ticket_appdata.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_get_compress_id.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_get_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_get_master_key.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_get_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_get_max_fragment_length.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_get_protocol_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_get_ticket_lifetime_hint.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_get_time.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_get_timeout.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_has_ticket.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_is_resumable.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_new.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_print.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_print_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_print_keylog.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set1_alpn_selected.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set1_hostname.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_SESSION_set1_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set1_id_context.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set1_master_key.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set1_ticket_appdata.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set_cipher.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set_protocol_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set_time.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_set_timeout.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_SESSION_up_ref.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_accept.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_add0_chain_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_add1_chain_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_add1_host.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_add1_to_CA_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_add_client_CA.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_add_dir_cert_subjects_to_stack.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_add_file_cert_subjects_to_stack.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_alert_desc_string.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_alert_desc_string_long.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_alert_type_string.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_alert_type_string_long.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_alloc_buffers.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_allow_early_data_cb_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_build_cert_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_bytes_to_cipher_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_callback_ctrl.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_check_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_check_private_key.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_clear.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_clear_chain_certs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_clear_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_clear_options.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_hello_cb_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_hello_get0_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_hello_get0_compression_methods.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_hello_get0_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_hello_get0_legacy_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_hello_get0_random.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_hello_get0_session_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_hello_get1_extensions_present.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_hello_isv2.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_client_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_config.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_connect.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_ct_is_enabled.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_dane_clear_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_dane_enable.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_dane_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_dane_tlsa_add.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_disable_ct.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_do_handshake.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_enable_ct.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_export_keying_material.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_export_keying_material_early.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_extension_supported.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_free.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_free_buffers.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_CA_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_alpn_selected.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_chain_certs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_dane_authority.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_dane_tlsa.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_next_proto_negotiated.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_param.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_peer_CA_list.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get0_peer_scts.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_peername.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_security_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_session.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get0_verified_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get1_curves.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get1_groups.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get1_session.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get1_supported_ciphers.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_SSL_CTX.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_all_async_fds.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_changed_async_fds.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_cipher.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_cipher_bits.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_cipher_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_cipher_name.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_cipher_version.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_client_CA_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_client_ciphers.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_client_random.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_current_cipher.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_default_passwd_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_default_passwd_cb_userdata.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_default_timeout.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_early_data_status.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_error.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_ex_data_X509_STORE_CTX_idx.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_extms_support.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_fd.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_info_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_key_update_type.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_max_cert_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_max_proto_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_min_proto_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_num_tickets.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_options.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_peer_cert_chain.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_peer_certificate.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_peer_signature_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_peer_signature_type_nid.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_peer_tmp_key.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_pending_cipher.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_psk_identity.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_psk_identity_hint.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_quiet_shutdown.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_rbio.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_read_ahead.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_record_padding_callback_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_recv_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_rfd.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_secure_renegotiation_support.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_security_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_security_level.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_selected_srtp_profile.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_server_random.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_server_tmp_key.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_servername.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_servername_type.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_session.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_shared_ciphers.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_shared_curve.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_shared_group.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_shared_sigalgs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_shutdown.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_sigalgs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_signature_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_signature_type_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_srtp_profiles.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_ssl_method.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_state.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_time.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_timeout.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_tlsext_status_ocsp_resp.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_tlsext_status_type.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_tmp_key.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_verify_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_verify_depth.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_verify_mode.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_verify_result.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_get_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_wbio.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_get_wfd.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_has_matching_session_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_has_pending.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_in_accept_init.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_in_before.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_in_connect_init.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_in_init.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_is_dtls.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_is_init_finished.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_is_server.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_key_update.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_library_init.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_load_client_CA_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_load_error_strings.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_new.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_peek.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_peek_ex.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_pending.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_psk_client_cb_func.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_psk_find_session_cb_func.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_psk_server_cb_func.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_psk_use_session_cb_func.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_read.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_read_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_read_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_renegotiate.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_renegotiate_abbreviated.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_renegotiate_pending.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_rstate_string.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_rstate_string_long.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_select_current_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_select_next_proto.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_session_reused.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set0_CA_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set0_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set0_chain_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set0_rbio.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set0_security_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set0_verify_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set0_wbio.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_chain_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_client_sigalgs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_client_sigalgs_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_curves.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_curves_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_groups.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_groups_list.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_set1_host.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_param.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_sigalgs.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_sigalgs_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set1_verify_cert_store.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_accept_state.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_allow_early_data_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_alpn_protos.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_set_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_block_padding.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_cert_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_cipher_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_ciphersuites.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_client_CA_list.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_set_connect_state.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_ct_validation_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_current_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_default_passwd_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_default_passwd_cb_userdata.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_default_read_buffer_len.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_ex_data.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_set_fd.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_generate_session_id.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_hostflags.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_info_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_max_cert_list.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_max_pipelines.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_max_proto_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_max_send_fragment.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_min_proto_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_mode.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_msg_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_msg_callback_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_num_tickets.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_options.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_post_handshake_auth.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_psk_client_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_psk_find_session_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_psk_server_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_psk_use_session_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_quiet_shutdown.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_read_ahead.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_record_padding_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_record_padding_callback_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_recv_max_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_rfd.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_security_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_security_level.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_set_session.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_session_id_context.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_set_shutdown.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_split_send_fragment.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_ssl_method.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_time.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_timeout.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_tlsext_host_name.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_tlsext_max_fragment_length.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_tlsext_status_ocsp_resp.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_tlsext_status_type.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_tlsext_use_srtp.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_tmp_dh.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_tmp_dh_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_verify_depth.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_set_verify_result.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_set_wfd.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_shutdown.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_state_string.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_state_string_long.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_stateless.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_up_ref.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_PrivateKey_ASN1.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_PrivateKey_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_RSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_RSAPrivateKey_ASN1.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_RSAPrivateKey_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_cert_and_key.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_certificate.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_certificate_ASN1.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_certificate_chain_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_certificate_file.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_use_psk_identity_hint.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_verify_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_verify_client_post_handshake.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_version.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_waiting_for_async.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_want.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_want_async.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_want_async_job.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_want_client_hello_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_want_nothing.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_want_read.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_want_write.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_want_x509_lookup.3 create mode 100644 rambus_sec_lib/share/man/man3/SSL_write.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_write_early_data.3 create mode 120000 rambus_sec_lib/share/man/man3/SSL_write_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/SSLv23_client_method.3 create mode 120000 rambus_sec_lib/share/man/man3/SSLv23_method.3 create mode 120000 rambus_sec_lib/share/man/man3/SSLv23_server_method.3 create mode 120000 rambus_sec_lib/share/man/man3/SSLv3_client_method.3 create mode 120000 rambus_sec_lib/share/man/man3/SSLv3_method.3 create mode 120000 rambus_sec_lib/share/man/man3/SSLv3_server_method.3 create mode 120000 rambus_sec_lib/share/man/man3/SXNETID_free.3 create mode 120000 rambus_sec_lib/share/man/man3/SXNETID_new.3 create mode 120000 rambus_sec_lib/share/man/man3/SXNET_free.3 create mode 120000 rambus_sec_lib/share/man/man3/SXNET_new.3 create mode 120000 rambus_sec_lib/share/man/man3/TLS_FEATURE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/TLS_FEATURE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/TLS_client_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLS_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLS_server_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLSv1_1_client_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLSv1_1_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLSv1_1_server_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLSv1_2_client_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLSv1_2_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLSv1_2_server_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLSv1_client_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLSv1_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TLSv1_server_method.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_ACCURACY_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_ACCURACY_free.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_ACCURACY_new.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_MSG_IMPRINT_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_MSG_IMPRINT_free.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_MSG_IMPRINT_new.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_REQ_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_REQ_free.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_REQ_new.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_RESP_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_RESP_free.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_RESP_new.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_STATUS_INFO_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_STATUS_INFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_STATUS_INFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_TST_INFO_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_TST_INFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/TS_TST_INFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/UI.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_METHOD.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_OpenSSL.3 create mode 100644 rambus_sec_lib/share/man/man3/UI_STRING.3 create mode 100644 rambus_sec_lib/share/man/man3/UI_UTIL_read_pw.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_UTIL_read_pw_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_UTIL_wrap_read_pem_callback.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_add_error_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_add_info_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_add_input_boolean.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_add_input_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_add_user_data.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_add_verify_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_construct_prompt.3 create mode 100644 rambus_sec_lib/share/man/man3/UI_create_method.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_destroy_method.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_dup_error_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_dup_info_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_dup_input_boolean.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_dup_input_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_dup_user_data.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_dup_verify_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_free.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get0_action_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get0_output_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get0_result.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get0_result_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get0_test_string.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get0_user_data.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_default_method.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_input_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_method.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_result_length.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_result_maxsize.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_result_minsize.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_result_string_length.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_get_string_type.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_get_closer.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_get_data_destructor.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_get_data_duplicator.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_get_flusher.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_get_opener.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_get_prompt_constructor.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_get_reader.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_get_writer.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_set_closer.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_set_data_duplicator.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_set_flusher.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_set_opener.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_set_prompt_constructor.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_set_reader.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_method_set_writer.3 create mode 100644 rambus_sec_lib/share/man/man3/UI_new.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_new_method.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_null.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_process.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_set_default_method.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_set_method.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_set_result.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_set_result_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/UI_string_types.3 create mode 120000 rambus_sec_lib/share/man/man3/USERNOTICE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/USERNOTICE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509V3_EXT_d2i.3 create mode 120000 rambus_sec_lib/share/man/man3/X509V3_EXT_i2d.3 create mode 120000 rambus_sec_lib/share/man/man3/X509V3_add1_i2d.3 create mode 100644 rambus_sec_lib/share/man/man3/X509V3_get_d2i.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ALGOR_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ALGOR_copy.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_ALGOR_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ALGOR_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ALGOR_get0.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ALGOR_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ALGOR_set0.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ALGOR_set_md.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ATTRIBUTE_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ATTRIBUTE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_ATTRIBUTE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CERT_AUX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CERT_AUX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CINF_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CINF_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_INFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_INFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_add0_revoked.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_add1_ext_i2d.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_add_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_delete_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_digest.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get0_by_cert.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_CRL_get0_by_serial.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get0_extensions.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get0_lastUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get0_nextUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get0_signature.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_REVOKED.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_ext_by_NID.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_ext_by_OBJ.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_ext_by_critical.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_ext_count.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_ext_d2i.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_issuer.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_signature_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_get_version.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_match.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_set1_lastUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_set1_nextUpdate.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_set_issuer_name.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_set_version.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_sign_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_sort.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_CRL_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_create_by_NID.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_create_by_OBJ.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_get_critical.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_get_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_get_object.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_set_critical.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_EXTENSION_set_data.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_EXTENSION_set_object.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_LOOKUP.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_METHOD.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_TYPE.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_add_dir.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_by_alias.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_by_fingerprint.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_by_issuer_serial.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_by_subject.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_ctrl_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_file.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_get_by_alias_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_get_by_fingerprint_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_get_by_issuer_serial_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_get_by_subject_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_get_method_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_get_store.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_LOOKUP_hash_dir.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_init.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_load_file.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_get_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_get_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_get_get_by_alias.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_get_get_by_fingerprint.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_get_get_by_issuer_serial.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_get_get_by_subject.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_get_init.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_get_new_item.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_get_shutdown.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_set_ctrl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_set_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_set_get_by_alias.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_set_get_by_fingerprint.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_set_get_by_issuer_serial.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_set_get_by_subject.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_set_init.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_set_new_item.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_meth_set_shutdown.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_set_method_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_LOOKUP_shutdown.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_create_by_NID.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_create_by_OBJ.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_create_by_txt.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_get_data.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_get_object.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_set_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_ENTRY_set_object.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_add_entry.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_add_entry_by_NID.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_add_entry_by_OBJ.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_NAME_add_entry_by_txt.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_delete_entry.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_digest.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_entry_count.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_free.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_NAME_get0_der.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_get_entry.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_NAME_get_index_by_NID.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_get_index_by_OBJ.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_get_text_by_NID.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_get_text_by_OBJ.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_oneline.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_print.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_NAME_print_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_NAME_print_ex_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_OBJECT_set1_X509.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_OBJECT_set1_X509_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_PUBKEY_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_PUBKEY_get.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_PUBKEY_get0.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_PUBKEY_get0_param.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_PUBKEY_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_PUBKEY_set.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_PUBKEY_set0_param.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_INFO_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_INFO_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_check_private_key.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_digest.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_get0_pubkey.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_get0_signature.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_get_X509_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_get_pubkey.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_get_signature_nid.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_get_subject_name.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_get_version.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_set0_signature.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_set1_signature_algo.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_set_pubkey.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_set_subject_name.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_set_version.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_sign_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REQ_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_add1_ext_i2d.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_add_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_delete_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_get0_extensions.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_get0_revocationDate.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_get0_serialNumber.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_get_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_get_ext_by_NID.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_get_ext_by_OBJ.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_get_ext_by_critical.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_get_ext_count.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_get_ext_d2i.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_set_revocationDate.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_REVOKED_set_serialNumber.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_SIG_INFO_get.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_SIG_INFO_set.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_SIG_free.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_SIG_get0.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_SIG_getm.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_SIG_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_cert_crl_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_check_crl_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_check_issued_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_check_policy_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_check_revocation_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_cleanup_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get0_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get0_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get0_param.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get0_untrusted.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get1_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_cert_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_check_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_check_issued.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_check_policy.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_check_revocation.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_crl_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_current_cert.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_error.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_error_depth.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_get_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_get_issuer.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_issuer_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_lookup_certs.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_lookup_crls.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_num_untrusted.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_get_verify_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_init.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_lookup_certs_fn.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_lookup_crls_fn.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_STORE_CTX_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set0_crls.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set0_param.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set0_trusted_stack.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set0_untrusted.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set0_verified_chain.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set_current_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set_default.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set_error.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set_error_depth.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set_verify.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_STORE_CTX_set_verify_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_verify_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_CTX_verify_fn.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_STORE_add_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_add_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_add_lookup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get0_objects.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_STORE_get0_param.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_cert_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_check_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_check_issued.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_check_policy.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_check_revocation.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_get_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_get_issuer.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_lookup_certs.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_lookup_crls.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_get_verify_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_load_locations.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_lock.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_STORE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set1_param.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_cert_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_check_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_check_issued.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_check_policy.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_check_revocation.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_cleanup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_default_paths.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_depth.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_get_crl.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_get_issuer.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_lookup_certs.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_lookup_crls.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_lookup_crls_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_purpose.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_trust.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_verify.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_verify_cb.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_STORE_set_verify_cb_func.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_set_verify_func.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_unlock.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_STORE_up_ref.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VAL_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VAL_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_add0_policy.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_add1_host.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_clear_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_get0_peername.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_get_auth_level.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_get_depth.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_get_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_get_hostflags.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_get_inh_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_get_time.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set1_email.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set1_host.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set1_ip.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set1_ip_asc.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set1_policies.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set_auth_level.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set_depth.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set_hostflags.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set_inh_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set_purpose.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set_time.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_VERIFY_PARAM_set_trust.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_add1_ext_i2d.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_add_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_chain_up_ref.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_check_ca.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_check_email.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_check_host.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_check_ip.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_check_ip_asc.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_check_issued.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_check_private_key.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_check_purpose.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_cmp_current_time.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_cmp_time.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_delete_ext.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_digest.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_free.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get0_authority_issuer.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get0_authority_key_id.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get0_authority_serial.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get0_extensions.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get0_notAfter.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_get0_notBefore.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get0_pubkey.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get0_serialNumber.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_get0_signature.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get0_subject_key_id.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get0_tbs_sigalg.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_get0_uids.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_X509_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_ex_new_index.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_ext_by_NID.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_ext_by_OBJ.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_ext_by_critical.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_ext_count.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_ext_d2i.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_extended_key_usage.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_get_extension_flags.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_issuer_name.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_key_usage.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_pathlen.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_proxy_pathlen.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_get_pubkey.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_get_serialNumber.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_signature_info.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_get_signature_nid.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_get_subject_name.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_get_version.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_getm_notAfter.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_getm_notBefore.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_issuer_and_serial_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_issuer_name_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_load_cert_crl_file.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_load_cert_file.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_load_crl_file.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_new.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_pubkey_digest.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set1_notAfter.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set1_notBefore.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set_ex_data.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set_issuer_name.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set_proxy_flag.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set_proxy_pathlen.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set_pubkey.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set_serialNumber.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set_subject_name.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_set_version.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_sign.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_sign_ctx.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_subject_name_cmp.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_time_adj.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_time_adj_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_up_ref.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_verify.3 create mode 100644 rambus_sec_lib/share/man/man3/X509_verify_cert.3 create mode 120000 rambus_sec_lib/share/man/man3/X509_verify_cert_error_string.3 create mode 120000 rambus_sec_lib/share/man/man3/X509v3_add_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509v3_delete_ext.3 create mode 120000 rambus_sec_lib/share/man/man3/X509v3_get_ext.3 create mode 100644 rambus_sec_lib/share/man/man3/X509v3_get_ext_by_NID.3 create mode 120000 rambus_sec_lib/share/man/man3/X509v3_get_ext_by_OBJ.3 create mode 120000 rambus_sec_lib/share/man/man3/X509v3_get_ext_by_critical.3 create mode 120000 rambus_sec_lib/share/man/man3/X509v3_get_ext_count.3 create mode 120000 rambus_sec_lib/share/man/man3/custom_ext_add_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/custom_ext_free_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/custom_ext_parse_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ACCESS_DESCRIPTION.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ADMISSIONS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ADMISSION_SYNTAX.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASIdOrRange.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASIdentifierChoice.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASIdentifiers.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_BIT_STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_BMPSTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_ENUMERATED.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_GENERALIZEDTIME.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_GENERALSTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_IA5STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_INTEGER.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_NULL.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_OBJECT.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_OCTET_STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_PRINTABLE.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_PRINTABLESTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_SEQUENCE_ANY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_SET_ANY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_T61STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_TIME.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_TYPE.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_UINTEGER.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_UNIVERSALSTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_UTCTIME.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_UTF8STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASN1_VISIBLESTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ASRange.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_AUTHORITY_INFO_ACCESS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_AUTHORITY_KEYID.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_AutoPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_BASIC_CONSTRAINTS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_CERTIFICATEPOLICIES.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_CMS_ContentInfo.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_CMS_ReceiptRequest.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_CMS_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_CRL_DIST_POINTS.3 create mode 100644 rambus_sec_lib/share/man/man3/d2i_DHparams.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DHxparams.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DIRECTORYSTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DISPLAYTEXT.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DIST_POINT.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DIST_POINT_NAME.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DSAPrivateKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DSAPrivateKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DSAPublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DSA_PUBKEY_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DSA_PUBKEY_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DSA_SIG.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_DSAparams.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ECDSA_SIG.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ECPKParameters.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ECParameters.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ECPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ECPrivateKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ECPrivateKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_EC_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_EC_PUBKEY_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_EC_PUBKEY_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_EDIPARTYNAME.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ESS_CERT_ID.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ESS_ISSUER_SERIAL.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ESS_SIGNING_CERT.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_EXTENDED_KEY_USAGE.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_GENERAL_NAME.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_GENERAL_NAMES.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_IPAddressChoice.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_IPAddressFamily.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_IPAddressOrRange.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_IPAddressRange.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_ISSUING_DIST_POINT.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_NAMING_AUTHORITY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_NETSCAPE_CERT_SEQUENCE.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_NETSCAPE_SPKAC.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_NETSCAPE_SPKI.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_NOTICEREF.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_BASICRESP.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_CERTID.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_CERTSTATUS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_CRLID.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_ONEREQ.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_REQINFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_REQUEST.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_RESPBYTES.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_RESPDATA.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_RESPID.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_RESPONSE.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_REVOKEDINFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_SERVICELOC.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_SIGNATURE.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OCSP_SINGLERESP.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_OTHERNAME.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PBE2PARAM.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PBEPARAM.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PBKDF2PARAM.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS12.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS12_BAGS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS12_MAC_DATA.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS12_SAFEBAG.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS12_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS12_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_DIGEST.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_ENCRYPT.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_ENC_CONTENT.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_ENVELOPE.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_ISSUER_AND_SERIAL.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_RECIP_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_SIGNED.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_SIGNER_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_SIGN_ENVELOPE.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS7_fp.3 create mode 100644 rambus_sec_lib/share/man/man3/d2i_PKCS8PrivateKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS8PrivateKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS8_PRIV_KEY_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS8_PRIV_KEY_INFO_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS8_PRIV_KEY_INFO_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS8_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKCS8_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PKEY_USAGE_PERIOD.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_POLICYINFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_POLICYQUALINFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PROFESSION_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PROXY_CERT_INFO_EXTENSION.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PROXY_POLICY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PUBKEY_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PUBKEY_fp.3 create mode 100644 rambus_sec_lib/share/man/man3/d2i_PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PrivateKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PrivateKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_PublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSAPrivateKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSAPrivateKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSAPublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSAPublicKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSAPublicKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSA_OAEP_PARAMS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSA_PSS_PARAMS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSA_PUBKEY_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_RSA_PUBKEY_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_SCRYPT_PARAMS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_SCT_LIST.3 create mode 100644 rambus_sec_lib/share/man/man3/d2i_SSL_SESSION.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_SXNET.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_SXNETID.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_ACCURACY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_MSG_IMPRINT.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_MSG_IMPRINT_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_MSG_IMPRINT_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_REQ.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_REQ_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_REQ_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_RESP.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_RESP_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_RESP_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_STATUS_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_TST_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_TST_INFO_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_TS_TST_INFO_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_USERNOTICE.3 create mode 100644 rambus_sec_lib/share/man/man3/d2i_X509.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_ALGOR.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_ALGORS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_ATTRIBUTE.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_AUX.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_CERT_AUX.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_CINF.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_CRL_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_CRL_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_CRL_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_EXTENSION.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_EXTENSIONS.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_NAME.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_NAME_ENTRY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_REQ.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_REQ_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_REQ_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_REQ_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_REVOKED.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_SIG.3 create mode 120000 rambus_sec_lib/share/man/man3/d2i_X509_VAL.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ACCESS_DESCRIPTION.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ADMISSIONS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ADMISSION_SYNTAX.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASIdOrRange.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASIdentifierChoice.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASIdentifiers.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_BIT_STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_BMPSTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_ENUMERATED.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_GENERALIZEDTIME.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_GENERALSTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_IA5STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_INTEGER.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_NULL.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_OBJECT.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_OCTET_STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_PRINTABLE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_PRINTABLESTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_SEQUENCE_ANY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_SET_ANY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_T61STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_TIME.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_TYPE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_UNIVERSALSTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_UTCTIME.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_UTF8STRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_VISIBLESTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASN1_bio_stream.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ASRange.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_AUTHORITY_INFO_ACCESS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_AUTHORITY_KEYID.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_BASIC_CONSTRAINTS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_CERTIFICATEPOLICIES.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_CMS_ContentInfo.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_CMS_ReceiptRequest.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_CMS_bio.3 create mode 100644 rambus_sec_lib/share/man/man3/i2d_CMS_bio_stream.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_CRL_DIST_POINTS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DHparams.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DHxparams.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DIRECTORYSTRING.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DISPLAYTEXT.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DIST_POINT.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DIST_POINT_NAME.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DSAPrivateKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DSAPrivateKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DSAPublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DSA_PUBKEY_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DSA_PUBKEY_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DSA_SIG.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_DSAparams.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ECDSA_SIG.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ECPKParameters.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ECParameters.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ECPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ECPrivateKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ECPrivateKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_EC_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_EC_PUBKEY_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_EC_PUBKEY_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_EDIPARTYNAME.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ESS_CERT_ID.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ESS_ISSUER_SERIAL.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ESS_SIGNING_CERT.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_EXTENDED_KEY_USAGE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_GENERAL_NAME.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_GENERAL_NAMES.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_IPAddressChoice.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_IPAddressFamily.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_IPAddressOrRange.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_IPAddressRange.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_ISSUING_DIST_POINT.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_NAMING_AUTHORITY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_NETSCAPE_CERT_SEQUENCE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_NETSCAPE_SPKAC.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_NETSCAPE_SPKI.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_NOTICEREF.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_BASICRESP.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_CERTID.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_CERTSTATUS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_CRLID.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_ONEREQ.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_REQINFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_REQUEST.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_RESPBYTES.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_RESPDATA.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_RESPID.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_RESPONSE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_REVOKEDINFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_SERVICELOC.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_SIGNATURE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OCSP_SINGLERESP.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_OTHERNAME.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PBE2PARAM.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PBEPARAM.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PBKDF2PARAM.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS12.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS12_BAGS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS12_MAC_DATA.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS12_SAFEBAG.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS12_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS12_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_DIGEST.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_ENCRYPT.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_ENC_CONTENT.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_ENVELOPE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_ISSUER_AND_SERIAL.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_NDEF.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_RECIP_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_SIGNED.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_SIGNER_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_SIGN_ENVELOPE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_bio.3 create mode 100644 rambus_sec_lib/share/man/man3/i2d_PKCS7_bio_stream.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS7_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8PrivateKeyInfo_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8PrivateKeyInfo_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8PrivateKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8PrivateKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8PrivateKey_nid_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8PrivateKey_nid_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8_PRIV_KEY_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8_PRIV_KEY_INFO_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8_PRIV_KEY_INFO_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKCS8_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PKEY_USAGE_PERIOD.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_POLICYINFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_POLICYQUALINFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PROFESSION_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PROXY_CERT_INFO_EXTENSION.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PROXY_POLICY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PUBKEY_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PUBKEY_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_PublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSAPrivateKey.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSAPrivateKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSAPrivateKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSAPublicKey.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSAPublicKey_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSAPublicKey_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSA_OAEP_PARAMS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSA_PSS_PARAMS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSA_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSA_PUBKEY_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_RSA_PUBKEY_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_SCRYPT_PARAMS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_SCT_LIST.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_SSL_SESSION.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_SXNET.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_SXNETID.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_ACCURACY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_MSG_IMPRINT.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_MSG_IMPRINT_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_MSG_IMPRINT_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_REQ.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_REQ_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_REQ_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_RESP.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_RESP_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_RESP_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_STATUS_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_TST_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_TST_INFO_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_TS_TST_INFO_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_USERNOTICE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_ALGOR.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_ALGORS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_ATTRIBUTE.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_AUX.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_CERT_AUX.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_CINF.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_CRL.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_CRL_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_CRL_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_CRL_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_EXTENSION.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_EXTENSIONS.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_NAME.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_NAME_ENTRY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_PUBKEY.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_REQ.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_REQ_INFO.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_REQ_bio.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_REQ_fp.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_REVOKED.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_SIG.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_X509_VAL.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_re_X509_CRL_tbs.3 create mode 120000 rambus_sec_lib/share/man/man3/i2d_re_X509_REQ_tbs.3 create mode 100644 rambus_sec_lib/share/man/man3/i2d_re_X509_tbs.3 create mode 120000 rambus_sec_lib/share/man/man3/i2o_SCT.3 create mode 120000 rambus_sec_lib/share/man/man3/i2o_SCT_LIST.3 create mode 120000 rambus_sec_lib/share/man/man3/i2t_ASN1_OBJECT.3 create mode 120000 rambus_sec_lib/share/man/man3/lh_TYPE_delete.3 create mode 120000 rambus_sec_lib/share/man/man3/lh_TYPE_doall.3 create mode 120000 rambus_sec_lib/share/man/man3/lh_TYPE_doall_arg.3 create mode 120000 rambus_sec_lib/share/man/man3/lh_TYPE_error.3 create mode 120000 rambus_sec_lib/share/man/man3/lh_TYPE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/lh_TYPE_insert.3 create mode 120000 rambus_sec_lib/share/man/man3/lh_TYPE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/lh_TYPE_retrieve.3 create mode 120000 rambus_sec_lib/share/man/man3/o2i_SCT.3 create mode 100644 rambus_sec_lib/share/man/man3/o2i_SCT_LIST.3 create mode 120000 rambus_sec_lib/share/man/man3/pem_password_cb.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_deep_copy.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_delete.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_delete_ptr.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_dup.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_find.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_find_ex.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_free.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_insert.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_is_sorted.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_new.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_new_null.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_new_reserve.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_num.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_pop.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_pop_free.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_push.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_reserve.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_set.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_set_cmp_func.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_shift.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_sort.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_unshift.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_value.3 create mode 120000 rambus_sec_lib/share/man/man3/sk_TYPE_zero.3 create mode 120000 rambus_sec_lib/share/man/man3/ssl_ct_validation_cb.3 create mode 100644 rambus_sec_lib/share/man/man5/config.5 create mode 100644 rambus_sec_lib/share/man/man5/x509v3_config.5 create mode 100644 rambus_sec_lib/share/man/man7/Ed25519.7 create mode 120000 rambus_sec_lib/share/man/man7/Ed448.7 create mode 100644 rambus_sec_lib/share/man/man7/RAND.7 create mode 100644 rambus_sec_lib/share/man/man7/RAND_DRBG.7 create mode 100644 rambus_sec_lib/share/man/man7/RSA-PSS.7 create mode 100644 rambus_sec_lib/share/man/man7/SM2.7 create mode 100644 rambus_sec_lib/share/man/man7/X25519.7 create mode 120000 rambus_sec_lib/share/man/man7/X448.7 create mode 100644 rambus_sec_lib/share/man/man7/bio.7 create mode 100644 rambus_sec_lib/share/man/man7/crypto.7 create mode 100644 rambus_sec_lib/share/man/man7/ct.7 create mode 100644 rambus_sec_lib/share/man/man7/des_modes.7 create mode 100644 rambus_sec_lib/share/man/man7/evp.7 create mode 100644 rambus_sec_lib/share/man/man7/ossl_store-file.7 create mode 100644 rambus_sec_lib/share/man/man7/ossl_store.7 create mode 100644 rambus_sec_lib/share/man/man7/passphrase-encoding.7 create mode 100644 rambus_sec_lib/share/man/man7/proxy-certificates.7 create mode 100644 rambus_sec_lib/share/man/man7/scrypt.7 create mode 100644 rambus_sec_lib/share/man/man7/ssl.7 create mode 100644 rambus_sec_lib/share/man/man7/x509.7 create mode 100644 rambus_sec_lib/ssl/ct_log_list.cnf create mode 100644 rambus_sec_lib/ssl/ct_log_list.cnf.dist create mode 100755 rambus_sec_lib/ssl/misc/CA.pl create mode 120000 rambus_sec_lib/ssl/misc/tsget create mode 100755 rambus_sec_lib/ssl/misc/tsget.pl create mode 100644 rambus_sec_lib/ssl/openssl.cnf create mode 100644 rambus_sec_lib/ssl/openssl.cnf.dist diff --git a/ISO7816/Makefile b/ISO7816/Makefile new file mode 100644 index 0000000..08326bc --- /dev/null +++ b/ISO7816/Makefile @@ -0,0 +1,24 @@ +## + # Copyright (C) 2021 Alibaba Group Holding Limited +## + +CC=$(CROSS_COMPILE)gcc +SOURCE:=$(wildcard *.c) +OBJS:=$(patsubst %.c,%.o,$(SOURCE)) +OUTDIR=./output +TARGET_ELF:=iso7816 + + +all:$(OBJS) + echo $(OBJS) + mkdir -p $(OUTDIR) + $(CC) -o $(OUTDIR)/$(TARGET_ELF) $(OBJS) + +%.o:%.c + @echo Compiling $< ... + $(CC) -c $< -o $*.o + +.PHONY: clean + +clean: + rm -rf $(OUTDIR)/$(TARGET_ELF) *.o diff --git a/ISO7816/dsmart_card_interface.h b/ISO7816/dsmart_card_interface.h new file mode 100644 index 0000000..bff1b7f --- /dev/null +++ b/ISO7816/dsmart_card_interface.h @@ -0,0 +1,79 @@ +#ifndef _DSMART_CARD_INTERFACE_H +#define _DSMART_CARD_INTERFACE_H + +#define DSMART_CARD_OK 0 +#define DSMART_CARD_E_ACCESS 1 +#define DSMART_CARD_E_DATA_TIMEOUT 2 +#define DSMART_CARD_E_NOCARD 3 +#define DSMART_CARD_E_NOACT 4 +#define DSMART_CARD_E_REMOVED 5 +#define DSMART_CARD_E_NO_RX_EV 6 +#define DSMART_CARD_E_NO_TX_EV 7 +#define DSMART_CARD_E_NO_CRD_EV 8 +#define DSMART_CARD_E_ACT_TIMEOUT 9 +#define DSMART_CARD_E_DATA_RCV_FAILED 10 +#define DSMART_CARD_E_ACTIVATE_FAILED 11 +#define DSMART_CARD_E_TX_FULL 12 +#define DSMART_CARD_E_PAR_ERR 13 +#define DSMART_CARD_E_CRC_ERR 14 +#define DSMART_CARD_E_REP_ERR 15 +#define DSMART_CARD_E_CWT_TIM 16 +#define DSMART_CARD_E_RX_OVER 17 +#define DSMART_CARD_STATE_ERR_EVENT 18 + +#define CARD_PROTOCOL_T0 1 +#define CARD_PROTOCOL_T1 2 + +struct dsmart_card_atr { + unsigned char atr_buffer[64]; + unsigned int len; /* length of ATR received */ + int errval; +}; + +struct dsmart_card_rcv { + unsigned char rcv_buffer[256]; + int rcv_length; + int time_out; + int errval; +}; + +struct dsmart_card_xmt { + unsigned char xmt_buffer[256]; + int xmt_length; + int time_out; + int errval; +}; + +struct dsmart_card_timing { + unsigned int wwt; + unsigned int cwt; + unsigned int bwt; + unsigned int bgt; + unsigned int egt; +}; + +struct dsmart_card_baud { + unsigned char di; + unsigned char fi; +}; + +enum dsmart_protocol_type { + DSMART_CARD_PROTOCOL_T0 = 0, + DSMART_CARD_PROTOCOL_T1 = 1, +}; + +/* ioctl encodings */ +#define DSMART_CARD_BASE 0xc0 +#define DSMART_CARD_IOCTL_SET_PROTOCOL _IOR(DSMART_CARD_BASE, 1, int) +#define DSMART_CARD_IOCTL_DEACTIVATE _IOR(DSMART_CARD_BASE, 2, int) +#define DSMART_CARD_IOCTL_COLD_RESET _IOR(DSMART_CARD_BASE, 3, int) +#define DSMART_CARD_IOCTL_WARM_RESET _IOR(DSMART_CARD_BASE, 4, int) +#define DSMART_CARD_IOCTL_SET_TIMING _IOR(DSMART_CARD_BASE, 5, int) +#define DSMART_CARD_IOCTL_SET_BAUD _IOR(DSMART_CARD_BASE, 6, int) +#define DSMART_CARD_IOCTL_SET_RX_THRESHOLD _IOR(DSMART_CARD_BASE, 7, int) +#define DSMART_CARD_IOCTL_SET_TX_THRESHOLD _IOR(DSMART_CARD_BASE, 8, int) +#define DSMART_CARD_IOCTL_XMT _IOR(DSMART_CARD_BASE, 9, int) +#define DSMART_CARD_IOCTL_RCV _IOR(DSMART_CARD_BASE, 10, int) +#define DSMART_CARD_IOCTL_ATR_RCV _IOR(DSMART_CARD_BASE, 11, int) + +#endif diff --git a/ISO7816/ioctl.h b/ISO7816/ioctl.h new file mode 100644 index 0000000..a84f4db --- /dev/null +++ b/ISO7816/ioctl.h @@ -0,0 +1,107 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _UAPI_ASM_GENERIC_IOCTL_H +#define _UAPI_ASM_GENERIC_IOCTL_H + +/* ioctl command encoding: 32 bits total, command in lower 16 bits, + * size of the parameter structure in the lower 14 bits of the + * upper 16 bits. + * Encoding the size of the parameter structure in the ioctl request + * is useful for catching programs compiled with old versions + * and to avoid overwriting user space outside the user buffer area. + * The highest 2 bits are reserved for indicating the ``access mode''. + * NOTE: This limits the max parameter size to 16kB -1 ! + */ + +/* + * The following is for compatibility across the various Linux + * platforms. The generic ioctl numbering scheme doesn't really enforce + * a type field. De facto, however, the top 8 bits of the lower 16 + * bits are indeed used as a type field, so we might just as well make + * this explicit here. Please be sure to use the decoding macros + * below from now on. + */ +#define _IOC_NRBITS 8 +#define _IOC_TYPEBITS 8 + +/* + * Let any architecture override either of the following before + * including this file. + */ + +#ifndef _IOC_SIZEBITS +# define _IOC_SIZEBITS 14 +#endif + +#ifndef _IOC_DIRBITS +# define _IOC_DIRBITS 2 +#endif + +#define _IOC_NRMASK ((1 << _IOC_NRBITS)-1) +#define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1) +#define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS)-1) +#define _IOC_DIRMASK ((1 << _IOC_DIRBITS)-1) + +#define _IOC_NRSHIFT 0 +#define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS) +#define _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS) +#define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS) + +/* + * Direction bits, which any architecture can choose to override + * before including this file. + * + * NOTE: _IOC_WRITE means userland is writing and kernel is + * reading. _IOC_READ means userland is reading and kernel is writing. + */ + +#ifndef _IOC_NONE +# define _IOC_NONE 0U +#endif + +#ifndef _IOC_WRITE +# define _IOC_WRITE 1U +#endif + +#ifndef _IOC_READ +# define _IOC_READ 2U +#endif + +#define _IOC(dir,type,nr,size) \ + (((dir) << _IOC_DIRSHIFT) | \ + ((type) << _IOC_TYPESHIFT) | \ + ((nr) << _IOC_NRSHIFT) | \ + ((size) << _IOC_SIZESHIFT)) + +#ifndef __KERNEL__ +#define _IOC_TYPECHECK(t) (sizeof(t)) +#endif + +/* + * Used to create numbers. + * + * NOTE: _IOW means userland is writing and kernel is reading. _IOR + * means userland is reading and kernel is writing. + */ +#define _IO(type,nr) _IOC(_IOC_NONE,(type),(nr),0) +#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size))) +#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) +#define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) +#define _IOR_BAD(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size)) +#define _IOW_BAD(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),sizeof(size)) +#define _IOWR_BAD(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),sizeof(size)) + +/* used to decode ioctl numbers.. */ +#define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK) +#define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK) +#define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK) +#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK) + +/* ...and for the drivers/sound files... */ + +#define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT) +#define IOC_OUT (_IOC_READ << _IOC_DIRSHIFT) +#define IOC_INOUT ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT) +#define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT) +#define IOCSIZE_SHIFT (_IOC_SIZESHIFT) + +#endif /* _UAPI_ASM_GENERIC_IOCTL_H */ diff --git a/ISO7816/iso7816 b/ISO7816/iso7816 new file mode 100755 index 0000000000000000000000000000000000000000..07d3528e73c43083d4e6a6721b004846297aa388 GIT binary patch literal 12248 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 P`uY~3*6vgA71{p*(pU*K literal 0 HcmV?d00001 diff --git a/ISO7816/iso7816_test.c b/ISO7816/iso7816_test.c new file mode 100644 index 0000000..01438fd --- /dev/null +++ b/ISO7816/iso7816_test.c @@ -0,0 +1,124 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "dsmart_card_interface.h" +#include "ioctl.h" + +int main() +{ + int ret, i; + struct dsmart_card_baud baud_data; + unsigned int protocol = DSMART_CARD_PROTOCOL_T0; + struct dsmart_card_atr atr = { 0 }; + struct dsmart_card_rcv rcv_data = {}; + struct dsmart_card_xmt xmt_data = {}; + struct dsmart_card_timing timing_data; + + int fd = open("/dev/dsmart_card", O_RDWR); + if (fd < 0) { + perror("failed to open iso7816 smart card\n"); + exit(1); + } + + printf("dsmart card cmd = 0x%x\n", DSMART_CARD_IOCTL_COLD_RESET); + ret = ioctl(fd, DSMART_CARD_IOCTL_COLD_RESET, &atr); + if (ret < 0) { + printf("failed to get atr from slave card(%d)\n", ret); + exit(1); + } + + ret = ioctl(fd, DSMART_CARD_IOCTL_ATR_RCV, (unsigned long)&atr); + if (ret < 0) { + printf("failed to get atr data from slave card(%d)\n", ret); + exit(1); + } + + printf("\nATR data length: %d, result: %d, ATR DATA:\n", atr.len, atr.errval); + + for (i = 0; i < atr.len; i++) + printf("0x%02x ", atr.atr_buffer[i]); + + printf("\n\nset transmision protocol T0\n"); + ret = ioctl(fd, DSMART_CARD_IOCTL_SET_PROTOCOL, &protocol); + if (ret < 0) { + printf("failed to set transmision protocol(%d)\n", ret); + exit(1); + } + + baud_data.di = 1; + baud_data.fi = 1; + + printf("\nset baud rate, fi: %d, di: %d\n", baud_data.fi, baud_data.di); + ret = ioctl(fd, DSMART_CARD_IOCTL_SET_BAUD, &baud_data); + if (ret < 0) { + printf("failed to set baud rate(%d)\n", ret); + exit(1); + } + + + timing_data.wwt = 9600; + timing_data.bgt = 0; + timing_data.cwt = 0; + timing_data.bwt = 0; + timing_data.egt = 0; + + printf("\nset timming window, wwt: %d, bgt: %d, cwt: %d, bwt: %d, egt: %d\n", timing_data.wwt, timing_data.bgt, timing_data.cwt, timing_data.bwt, timing_data.egt); + ret = ioctl(fd, DSMART_CARD_IOCTL_SET_TIMING, &timing_data); + if (ret < 0) { + printf("failed to set timing window(%d)\n", ret); + exit(1); + } + + printf("\nget data from sim card "); + ret = ioctl(fd, DSMART_CARD_IOCTL_RCV, &rcv_data); + if (ret < 0) { + printf("failed to receive data from sim card\n"); + exit(1); + } + + printf(", len: %d\n", rcv_data.rcv_length); + for (i = 0; i < rcv_data.rcv_length; i++) { + if (i % 8 == 0) + printf("\n"); + printf("0x%x ", rcv_data.rcv_buffer[i]); + } + + + printf("\nreset the smart card\n"); + ret = ioctl(fd, DSMART_CARD_IOCTL_WARM_RESET, NULL); + if (ret < 0) { + printf("failed to reset the smart card(%d)\n", ret); + exit(1); + } + + + ret = ioctl(fd, DSMART_CARD_IOCTL_ATR_RCV, (unsigned long)&atr); + if (ret < 0) { + printf("failed to get atr data from slave card(%d)\n", ret); + exit(1); + } + + printf("\n\nATR data length after warm reset: %d, result: %d, ATR DATA:\n", atr.len, atr.errval); + for (i = 0; i < atr.len; i++) + printf("0x%02x ", atr.atr_buffer[i]); + + printf("\n\nterminate the session\n"); + ret = ioctl(fd, DSMART_CARD_IOCTL_DEACTIVATE, NULL); + if (ret < 0) { + printf("failed to terminate the session\n"); + exit(1); + } + + printf("\nsucceed to access smart card\n"); + + close(fd); + + return 0; +} diff --git a/ISO7816/tags b/ISO7816/tags new file mode 100644 index 0000000..4dbf76b --- /dev/null +++ b/ISO7816/tags @@ -0,0 +1,98 @@ +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ +!_TAG_PROGRAM_NAME Exuberant Ctags // +!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ +!_TAG_PROGRAM_VERSION 5.9~svn20110310 // +CARD_PROTOCOL_T0 dsmart_card_interface.h 24;" d +CARD_PROTOCOL_T1 dsmart_card_interface.h 25;" d +DSMART_CARD_BASE dsmart_card_interface.h 61;" d +DSMART_CARD_E_ACCESS dsmart_card_interface.h 5;" d +DSMART_CARD_E_ACTIVATE_FAILED dsmart_card_interface.h 15;" d +DSMART_CARD_E_ACT_TIMEOUT dsmart_card_interface.h 13;" d +DSMART_CARD_E_CRC_ERR dsmart_card_interface.h 18;" d +DSMART_CARD_E_CWT_TIM dsmart_card_interface.h 20;" d +DSMART_CARD_E_DATA_RCV_FAILED dsmart_card_interface.h 14;" d +DSMART_CARD_E_DATA_TIMEOUT dsmart_card_interface.h 6;" d +DSMART_CARD_E_NOACT dsmart_card_interface.h 8;" d +DSMART_CARD_E_NOCARD dsmart_card_interface.h 7;" d +DSMART_CARD_E_NO_CRD_EV dsmart_card_interface.h 12;" d +DSMART_CARD_E_NO_RX_EV dsmart_card_interface.h 10;" d +DSMART_CARD_E_NO_TX_EV dsmart_card_interface.h 11;" d +DSMART_CARD_E_PAR_ERR dsmart_card_interface.h 17;" d +DSMART_CARD_E_REMOVED dsmart_card_interface.h 9;" d +DSMART_CARD_E_REP_ERR dsmart_card_interface.h 19;" d +DSMART_CARD_E_RX_OVER dsmart_card_interface.h 21;" d +DSMART_CARD_E_TX_FULL dsmart_card_interface.h 16;" d +DSMART_CARD_IOCTL_ATR_RCV dsmart_card_interface.h 72;" d +DSMART_CARD_IOCTL_COLD_RESET dsmart_card_interface.h 64;" d +DSMART_CARD_IOCTL_DEACTIVATE dsmart_card_interface.h 63;" d +DSMART_CARD_IOCTL_RCV dsmart_card_interface.h 71;" d +DSMART_CARD_IOCTL_SET_BAUD dsmart_card_interface.h 67;" d +DSMART_CARD_IOCTL_SET_PROTOCOL dsmart_card_interface.h 62;" d +DSMART_CARD_IOCTL_SET_RX_THRESHOLD dsmart_card_interface.h 68;" d +DSMART_CARD_IOCTL_SET_TIMING dsmart_card_interface.h 66;" d +DSMART_CARD_IOCTL_SET_TX_THRESHOLD dsmart_card_interface.h 69;" d +DSMART_CARD_IOCTL_WARM_RESET dsmart_card_interface.h 65;" d +DSMART_CARD_IOCTL_XMT dsmart_card_interface.h 70;" d +DSMART_CARD_OK dsmart_card_interface.h 4;" d +DSMART_CARD_STATE_ERR_EVENT dsmart_card_interface.h 22;" d +IOCSIZE_MASK ioctl.h 104;" d +IOCSIZE_SHIFT ioctl.h 105;" d +IOC_IN ioctl.h 101;" d +IOC_INOUT ioctl.h 103;" d +IOC_OUT ioctl.h 102;" d +_DSMART_CARD_INTERFACE_H dsmart_card_interface.h 2;" d +_IO ioctl.h 85;" d +_IOC ioctl.h 69;" d +_IOC_DIR ioctl.h 94;" d +_IOC_DIRBITS ioctl.h 36;" d +_IOC_DIRMASK ioctl.h 42;" d +_IOC_DIRSHIFT ioctl.h 47;" d +_IOC_NONE ioctl.h 58;" d +_IOC_NR ioctl.h 96;" d +_IOC_NRBITS ioctl.h 23;" d +_IOC_NRMASK ioctl.h 39;" d +_IOC_NRSHIFT ioctl.h 44;" d +_IOC_READ ioctl.h 66;" d +_IOC_SIZE ioctl.h 97;" d +_IOC_SIZEBITS ioctl.h 32;" d +_IOC_SIZEMASK ioctl.h 41;" d +_IOC_SIZESHIFT ioctl.h 46;" d +_IOC_TYPE ioctl.h 95;" d +_IOC_TYPEBITS ioctl.h 24;" d +_IOC_TYPECHECK ioctl.h 76;" d +_IOC_TYPEMASK ioctl.h 40;" d +_IOC_TYPESHIFT ioctl.h 45;" d +_IOC_WRITE ioctl.h 62;" d +_IOR ioctl.h 86;" d +_IOR_BAD ioctl.h 89;" d +_IOW ioctl.h 87;" d +_IOWR ioctl.h 88;" d +_IOWR_BAD ioctl.h 91;" d +_IOW_BAD ioctl.h 90;" d +_UAPI_ASM_GENERIC_IOCTL_H ioctl.h 3;" d +atr_buffer dsmart_card_interface.h /^ unsigned char *atr_buffer;$/;" m struct:dsmart_card_atr +bgt dsmart_card_interface.h /^ unsigned int bgt;$/;" m struct:dsmart_card_timing +bwt dsmart_card_interface.h /^ unsigned int bwt;$/;" m struct:dsmart_card_timing +cwt dsmart_card_interface.h /^ unsigned int cwt;$/;" m struct:dsmart_card_timing +di dsmart_card_interface.h /^ unsigned char di;$/;" m struct:dsmart_card_baud +dsmart_card_atr dsmart_card_interface.h /^struct dsmart_card_atr {$/;" s +dsmart_card_baud dsmart_card_interface.h /^struct dsmart_card_baud {$/;" s +dsmart_card_rcv dsmart_card_interface.h /^struct dsmart_card_rcv {$/;" s +dsmart_card_timing dsmart_card_interface.h /^struct dsmart_card_timing {$/;" s +dsmart_card_xmt dsmart_card_interface.h /^struct dsmart_card_xmt {$/;" s +egt dsmart_card_interface.h /^ unsigned int egt;$/;" m struct:dsmart_card_timing +errval dsmart_card_interface.h /^ int errval;$/;" m struct:dsmart_card_atr +errval dsmart_card_interface.h /^ int errval;$/;" m struct:dsmart_card_rcv +errval dsmart_card_interface.h /^ int errval;$/;" m struct:dsmart_card_xmt +fi dsmart_card_interface.h /^ unsigned char fi;$/;" m struct:dsmart_card_baud +len dsmart_card_interface.h /^ unsigned int len; \/* length of ATR received *\/$/;" m struct:dsmart_card_atr +main iso7816_test.c /^int main()$/;" f +rcv_buffer dsmart_card_interface.h /^ unsigned char *rcv_buffer;$/;" m struct:dsmart_card_rcv +rcv_length dsmart_card_interface.h /^ int rcv_length;$/;" m struct:dsmart_card_rcv +time_out dsmart_card_interface.h /^ int time_out;$/;" m struct:dsmart_card_rcv +time_out dsmart_card_interface.h /^ int time_out;$/;" m struct:dsmart_card_xmt +wwt dsmart_card_interface.h /^ unsigned int wwt;$/;" m struct:dsmart_card_timing +xmt_buffer dsmart_card_interface.h /^ unsigned char *xmt_buffer;$/;" m struct:dsmart_card_xmt +xmt_length dsmart_card_interface.h /^ int xmt_length;$/;" m struct:dsmart_card_xmt diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..465522d --- /dev/null +++ b/README.txt @@ -0,0 +1,2 @@ +1: This repo is to store various librarys source code; +2: Please mkdir a new directory when you need add a new library, such as 'efuse-hal-lib'. diff --git a/efuse-hal-lib/Makefile b/efuse-hal-lib/Makefile new file mode 100644 index 0000000..14400e7 --- /dev/null +++ b/efuse-hal-lib/Makefile @@ -0,0 +1,30 @@ +## + # Copyright (C) 2021 Alibaba Group Holding Limited +## + +ifeq ("$(BUILD_SYSTEM)","YOCTO_BUILD") + export PATH_TO_SYSROOT=${SYSROOT_DIR} + export TOOLSCHAIN_PATH=${TOOLCHAIN_DIR} + export TOOLCHAIN_HOST=${CROSS_COMPILE} +else + export PATH_TO_SYSROOT=${BUILDROOT_DIR}/output/host/riscv64-buildroot-linux-gnu/sysroot + export TOOLSCHAIN_PATH=${BUILDROOT_DIR}/output/host + export TOOLCHAIN_HOST=${TOOLSCHAIN_PATH}/bin/riscv64-unknown-linux-gnu- +endif + +default: efuse_lib efuse_test + +efuse_lib: + make -C lib/src ARCH=$(ARCH) CROSS=$(CROSS_COMPILE) + +efuse_test: efuse_lib + make -C test/efuse_demo ARCH=$(ARCH) CROSS=$(CROSS_COMPILE) + +.PHONY: clean +clean: clean_lib clean_test + +clean_lib: + make -C lib/src clean + +clean_test: + make -C test/efuse_demo clean diff --git a/efuse-hal-lib/README.txt b/efuse-hal-lib/README.txt new file mode 100644 index 0000000..434c051 --- /dev/null +++ b/efuse-hal-lib/README.txt @@ -0,0 +1 @@ +The lib accomplishes all the functions which defined in <> diff --git a/efuse-hal-lib/lib/src/Makefile b/efuse-hal-lib/lib/src/Makefile new file mode 100644 index 0000000..0d555a8 --- /dev/null +++ b/efuse-hal-lib/lib/src/Makefile @@ -0,0 +1,22 @@ +CC=$(CROSS)gcc +CFLAGS:=-fpic +LDFLAGS:=-shared -fpic +SOURCE:=$(wildcard *.c) +OBJS:=$(patsubst %.c,%.o,$(SOURCE)) +OUTDIR=../output +TARGET_LIB:=libefuse.so + + +all:$(OBJS) + echo $(OBJS) + mkdir -p $(OUTDIR) + $(CC) $(LDFLAGS) -o $(OUTDIR)/$(TARGET_LIB) $(OBJS) + +%.o:%.c + @echo Compiling $< ... + $(CC) -c $(CFLAGS) $< -o $*.o + +.PHONY: clean + +clean: + rm -rf $(OUTDIR)/$(TARGET_LIB) *.o diff --git a/efuse-hal-lib/lib/src/efuse-api.h b/efuse-hal-lib/lib/src/efuse-api.h new file mode 100644 index 0000000..1406e7d --- /dev/null +++ b/efuse-hal-lib/lib/src/efuse-api.h @@ -0,0 +1,377 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2021 Alibaba Group Holding Limited. + * + */ +#ifndef _EFUSE_API_H +#define _EFUSE_API_H + +typedef enum { + USR_DSP0_JTAG = 0, + USR_DSP1_JTAG, + USR_C910T_JTAG, + USR_C910R_JTAG, + USR_C906_JTAG, + USR_E902_JTAG, + USR_CHIP_DBG, + USR_DFT, +} efuse_dbg_type_t; + +typedef enum { + DBG_MODE_ENABLE = 0, + DBG_MODE_PWD_PROTECT, + DBG_MODE_DISABLE, +} efuse_dbg_mode_t; + +typedef enum { + BROM_USBBOOT_EN= 0, + BROM_USBBOOT_DIS = 0x5a5a5a5a, +} brom_usbboot_st_t; + +typedef enum { + BROM_CCT_EN= 0, + BROM_CCT_DIS = 0x5a5a5a5a, +} brom_cct_st_t; + +typedef enum { + IMAGE_ENCRYPT_DIS= 0, + IMAGE_ENCRYPT_EN = 0x5a5a5a5a, +} img_encrypt_st_t; + +typedef enum { + SECURE_BOOT_DIS= 0, + SECURE_BOOT_EN = 0x5a5a5a5a, +} sboot_st_t; + +/** + * csi_efuse_get_chipid() - Get chip id in eFuse + * + * @chip_id: pointer to the buffer to store chip id + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_chipid(void *chip_id); + +/** + * csi_efuse_get_user_dbg_mode() - Get debug mode in user area + * + * @type: Debug type + * + * @dbg_mode: pointer to the buffer store debug mode + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_user_dbg_mode(efuse_dbg_type_t type, efuse_dbg_mode_t *dbg_mode); + +/** + * csi_efuse_set_user_dbg_mode() - Set debug mode in user area + * + * @type: Debug type + * + * @dbg_mode: debug mode + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_user_dbg_mode(efuse_dbg_type_t type, efuse_dbg_mode_t dbg_mode); + +/** + * csi_efuse_get_boot_offset() - Get BL1's offset in boot media + * + * @offset: pointer to the buffer to store BL1's offset + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_boot_offset(unsigned int *offset); + +/** + * csi_efuse_set_boot_offset() - Set BL1's offset in boot media + * + * @offset: Offset value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_boot_offset(unsigned int offset); + +/** + * csi_efuse_get_boot_index() - Get BL1's index in boot media + * + * @index: pointer to the buffer to store BL1's index + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_boot_index(unsigned char *index); + +/** + * csi_efuse_set_boot_index() - Set BL1's index in boot media + * + * @index: index value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_boot_index(unsigned char index); + +/** + * csi_efuse_get_bak_boot_offset() - Get BL1's offset in boot media + * + * @offset: pointer to the buffer to store BL1's offset + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bak_boot_offset(unsigned int *offset); + +/** + * csi_efuse_set_boot_offset() - Set BL1's offset in boot media + * + * @offset: Offset value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bak_boot_offset(unsigned int offset); + +/** + * csi_efuse_get_bak_boot_index() - Get BL1's index in boot media + * + * @index: pointer to the buffer to store BL1's index + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bak_boot_index(unsigned char *index); + +/** + * csi_efuse_set_bak_boot_index() - Set BL1's index in boot media + * + * @index: index value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bak_boot_index(unsigned char index); + +/** + * csi_efuse_get_usr_brom_usb_fastboot_st() - Get bootrom USB fastboots tatus in user area + * + * @status: pointer to the buffer to store USB fastboot status + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_usr_brom_usb_fastboot_st(brom_usbboot_st_t *status); + +/** + * csi_efuse_dis_usr_brom_usb_fastboot() - Disable bootrom USB fastboot status in user area + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_dis_usr_brom_usb_fastboot(void); + +/** + * csi_efuse_get_usr_brom_cct_st() - Get bootrom CCT status in user area + * + * @status: pointer to the buffer to store CCT + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_usr_brom_cct_st(brom_cct_st_t *status); + +/** + * csi_efuse_dis_usr_brom_cct() - Disable bootrom CCT status in user area + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_dis_usr_brom_cct(void); + +/** + * csi_efuse_get_bl2_img_encrypt_st() - Get BL2 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL2 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl2_img_encrypt_st( img_encrypt_st_t *encrypt_flag); + +/** + * csi_efuse_set_bl2_img_encrypt_st() - Set BL2 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL2 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl2_img_encrypt_st( img_encrypt_st_t encrypt_flag); + +/** + * csi_efuse_get_bl3_img_encrypt_st() - Get BL3 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL2 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl3_img_encrypt_st( img_encrypt_st_t *encrypt_flag); + +/** + * csi_efuse_set_bl3_img_encrypt_st() - Set BL3 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL3 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl3_img_encrypt_st( img_encrypt_st_t encrypt_flag); + +/** + * csi_efuse_get_bl4_img_encrypt_st() - Get BL4 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL4 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl4_img_encrypt_st( img_encrypt_st_t *encrypt_flag); + +/** + * csi_efuse_set_bl4_img_encrypt_st() - Set BL4 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL4 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl4_img_encrypt_st( img_encrypt_st_t encrypt_flag); + +/** + * csi_efuse_get_bl1_version() - Get BL1 version + * + * @version: pointer to the buffer to store BL1's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl1_version(unsigned long long *version); + +/** + * csi_efuse_set_bl1_version() - Set BL1 version + * + * @version: pointer to the buffer to store BL1's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl1_version(unsigned long long version); + +/** + * csi_efuse_get_bl2_version() - Get BL2 version + * + * @version: pointer to the buffer to store BL2's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl2_version(unsigned long long *version); + +/** + * csi_efuse_set_bl2_version() - Set BL2 version + * + * @version: pointer to the buffer to store BL2's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl2_version(unsigned long long version); + +/** + * csi_efuse_get_secure_boot_st() - Get seucre boot flag + * + * @sboot_flag: A pointer to the buffer to store secure boot flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_secure_boot_st(sboot_st_t *sboot_flag); + +/** + * csi_efuse_get_hash_challenge() - Get hash challenge in eFuse + * + * @hash_resp: pointer to the buffer to store hash response + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_hash_challenge(void * hash_resp); + +/** + * csi_efuse_get_userdata_group() - Get user data in corresponding eFuse block + * + * @key: pointer to the buffer to store user data + * @block_num: the block number in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_userdata_group(unsigned char *key, unsigned char block_num); + +/** + * csi_efuse_set_userdata_group() - Set user data corresponding eFuse block + * + * @key: pointer to the buffer to store user data + * @block_num: the block number in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_userdata_group(unsigned char *key, unsigned char block_num); + +/** + * csi_efuse_read() - Read data from eFuse + * + * @offset: offset address + * @data: Pointer to a buffer storing the data read from eFuse + * @cnt: Number of bytes need to be read + * + * Return: number of data items read or error code +*/ +int csi_efuse_read(unsigned int offset, void *data, unsigned int cnt); + +/** + * csi_efuse_write() - Write data to eFuse + * + * @offset: offset address + * @data: Pointer to a buffer storing the data write to eFuse + * @cnt: Number of bytes need to be write + * + * Return: number of data items write or error code +*/ +int csi_efuse_write(unsigned int offset, void *data, unsigned int cnt); + +/** + * csi_dbg_enable_c910t_jtag() - Enable C910 TEE core jtag + * + * Return: 0 on success or negative code on failure +*/ +int csi_dbg_enable_c910t_jtag(void); + +/** + * csi_dbg_disable_c910t_jtag() - Disable C910 TEE core jtag + * + * Return: 0 on success or negative code on failure +*/ +int csi_dbg_disable_c910t_jtag(void); + +/** + * csi_efuse_get_gmac_macaddr() - Get gmac0/gmac1 mac address in eFuse + * @dev_id: '0' means gmac0, '1' means gmac1 + * @mac: the mac address string + * + * Return: 0: Success others: Failed +*/ +int csi_efuse_get_gmac_macaddr(int dev_id, unsigned char *mac); + +/** + * csi_efuse_set_gmac_macaddr() - Set gmac0/gmac1 mac address in eFuse + * @dev_id: '0' means gmac0, '1' means gmac1 + * @mac: the mac address string + * + * Return: 0: Success others: Failed +*/ +int csi_efuse_set_gmac_macaddr(int dev_id, unsigned char *mac); + +/** + * csi_efuse_update_lc_rma() - Upate efuse life cycle RMA + * + * Return: 0: Success others: Failed + */ +int csi_efuse_update_lc_rma(); + +/** + * csi_efuse_update_lc_rma() - Upate efuse life cycle RIP + * + * Return: 0: Success others: Failed + */ +int csi_efuse_update_lc_rip(); + +#endif diff --git a/efuse-hal-lib/lib/src/light-efuse-hal.c b/efuse-hal-lib/lib/src/light-efuse-hal.c new file mode 100644 index 0000000..935147d --- /dev/null +++ b/efuse-hal-lib/lib/src/light-efuse-hal.c @@ -0,0 +1,1507 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2021 Alibaba Group Holding Limited. + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include "efuse-api.h" + +//#define DEBUG_INFO + +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +#endif + +#define EFUSE_LIT_BLOCK_BIT_WIDTH 128 +#define EFUSE_BIG_BLOCK_BIT_WIDTH 256 +#define EFUSE_BYTES_PER_LIT_BLOCK (EFUSE_LIT_BLOCK_BIT_WIDTH >> 3) +#define EFUSE_BYTES_PER_BIG_BLOCK (EFUSE_BIG_BLOCK_BIT_WIDTH >> 3) + +struct func_efuse_info { + const char *func_name; + unsigned int block_id; + unsigned int addr; /* in byte */ + size_t len; /* in byte */ + unsigned int shift; /* left-shift bit within a byte*/ + unsigned int mask; /* mask within a byte */ +}; + +struct func_efuse_info efuse_func_array[] = { + {"UID", 5, 0x50, 20, 0, 0xff}, + {"USR_DSP0_JTAG_MODE", 8, 0x86, 1, 0, 0xff}, + {"USR_DSP1_JTAG_MODE", 8, 0x87, 1, 0, 0xff}, + {"USR_C910T_JTAG_MODE", 8, 0x88, 1, 0, 0xff}, + {"USR_C910R_JTAG_MODE", 8, 0x89, 1, 0, 0xff}, + {"USR_C906_JTAG_MODE", 8, 0x8a, 1, 0, 0xff}, + {"USR_E902_JTAG_MODE", 8, 0x8b, 1, 0, 0xff}, + {"USR_CHIP_DBG_MODE", 8, 0x8c, 1, 0, 0xff}, + {"USR_DFT_MODE", 8, 0x8d, 1, 0, 0xff}, + {"BOOT_OFFSET", 9, 0x90, 4, 0, 0xff}, + {"BOOT_INDEX", 9, 0x94, 1, 0, 0xff}, + {"BOOT_OFFSET_BAK", 9, 0x95, 4, 0, 0xff}, + {"BOOT_INDEX_BAK", 9, 0x99, 1, 0, 0xff}, + {"USR_USB_FASTBOOT_DIS", 9, 0x9a, 1, 4, 0x0f}, + {"USR_BROM_CCT_DIS", 9, 0x9a, 1, 0, 0x0f}, + {"IMAGE_BL2_ENC", 9, 0x9b, 1, 0, 0xff}, + {"IMAGE_BL3_ENC", 9, 0x9c, 1, 0, 0xff}, + {"IMAGE_BL4_ENC", 9, 0x9d, 1, 0, 0xff}, + {"BL1VERSION", 10, 0xa0, 8, 0, 0xff}, + {"BL2VERSION", 10, 0xa8, 8, 0, 0xff}, + {"SECURE_BOOT", 1, 0x10, 1, 0, 0xff}, + {"HASH_DEBUGPK", 25, 0x190, 32, 0, 0xff}, + {"BROM_DCACHE_EN", 1, 0x12, 1, 2, 0x3}, + {"GMAC0_MAC", 11, 0xb0, 6, 0, 0xff}, + {"GMAC1_MAC", 11, 0xb8, 6, 0, 0xff}, + {}, +}; + +static const char *efuse_file = "/sys/bus/nvmem/devices/light-efuse0/nvmem"; + + +size_t efuse_read(int fd, void *buf, const char *func_name) +{ + unsigned int offset, mask, shift; + size_t len, ret; + int i, block; + const char *name; + off_t pos; + + for (i = 0; i < ARRAY_SIZE(efuse_func_array); i++) { + if (!strcmp(func_name, efuse_func_array[i].func_name)) + break; + } + + if (i >= ARRAY_SIZE(efuse_func_array)) { + printf("invalid efuse function name(%s)\n", name); + return -EINVAL; + } + + block = efuse_func_array[i].block_id; + name = efuse_func_array[i].func_name; + offset = efuse_func_array[i].addr; + len = efuse_func_array[i].len; + shift = efuse_func_array[i].shift; + mask = efuse_func_array[i].mask; +#ifdef DEBUG_INFO + printf("[efuse info]: block: %d, name: %s, addr: 0x%x, len: %d mask: 0x%x\n", + block, name, offset, (int)len, mask); +#endif + pos = lseek(fd, offset, SEEK_SET); + if (pos < 0) { + perror("failed to lseek offset to read"); + return -errno; + } + +#ifdef DEBUG_INFO + printf("efuse pos = %p\n", pos); +#endif + if (mask != 0xff) { + unsigned char data; + unsigned char rd_buf[len]; + + ret = read(fd, rd_buf, len); + if (ret != len) { +#ifdef DEBUG_INFO + printf("real read len: %d, expected read len: %d\n", ret, len); +#endif + perror("failed to read"); + ret = -errno; + goto out; + } + data = (rd_buf[0] >> shift) & mask; +#ifdef DEBUG_INFO + printf("data = 0x%x\n", data); +#endif + memcpy(buf, &data, 1); + + if (len > 1) { + len = len - 1; + buf = (unsigned char *)buf + 1; + memcpy(buf, &rd_buf[1], len); + } + } else { /* mask == 0xff */ + ret = read(fd, buf, len); + if (ret != len) { +#ifdef DEBUG_INFO + printf("real read len: %d, expected read len: %d\n", ret, len); +#endif + perror("failed to read"); + ret = -errno; + } + } + +out: + return ret; +} + +size_t efuse_write(int fd, const void *buf, const char *func_name) +{ + unsigned int offset, mask, shift; + size_t len, ret; + int i, block; + const char *name; + off_t pos; + + for (i = 0; i < ARRAY_SIZE(efuse_func_array); i++) { + if (!strcmp(func_name, efuse_func_array[i].func_name)) + break; + } + + if (i >= ARRAY_SIZE(efuse_func_array)) { + printf("invalid efuse function name(%s)\n", name); + return -EINVAL; + } + + block = efuse_func_array[i].block_id; + name = efuse_func_array[i].func_name; + offset = efuse_func_array[i].addr; + len = efuse_func_array[i].len; + shift = efuse_func_array[i].shift; + mask = efuse_func_array[i].mask; +#ifdef DEBUG_INFO + printf("efuse info: block: %d, name: %s, addr: 0x%x, len: %d, mask: 0x%x\n", + block, name, offset, (int)len, mask); +#endif + + pos = lseek(fd, offset, SEEK_SET); + if (pos < 0) { + perror("failed to lseek offset to read"); + return -errno; + } +#ifdef DEBUG_INFO + printf("efuse pos = %p\n", pos); +#endif + if (mask != 0xff) { + unsigned char data; + unsigned char wr_buf[len]; + + memcpy(wr_buf, buf, len); + + ret = read(fd, &data, 1); + if (ret < 0) { + perror("failed to read"); + ret = -errno; + goto out; + } + + data &= ~(mask << shift); + data |= (wr_buf[0] & mask) << shift; + memcpy(&wr_buf[0], &data, 1); + + if (lseek(fd, offset, SEEK_SET) == (off_t)-1) { + perror("failed to lseek offset to write"); + ret = -errno; + goto out; + } + + ret = write(fd, wr_buf, len); + if (ret != len) { + perror("failed to write"); + ret = -errno; + } + } else { /* mask == 0xff */ + ret = write(fd, buf, len); + if (ret != len) { + perror("failed to write"); + ret = -errno; + } + } + +out: + return ret; +} + +/* according to FuseMap_v1.2.1.xlsx */ +size_t efuse_block_read(int fd, unsigned char *buf, unsigned int block_num) +{ + unsigned int width, offset, bytes; + size_t ret; + + if (block_num >= 42 && block_num <= 47) + width = EFUSE_BIG_BLOCK_BIT_WIDTH; + else + width = EFUSE_LIT_BLOCK_BIT_WIDTH; + + if (block_num <= 42) + offset = block_num * EFUSE_BYTES_PER_LIT_BLOCK; + else if (block_num > 42 && block_num <= 48) + offset = 42 * EFUSE_BYTES_PER_LIT_BLOCK + (block_num - 42) * EFUSE_BYTES_PER_BIG_BLOCK; + else + offset = 42 * EFUSE_BYTES_PER_LIT_BLOCK + 6 * EFUSE_BYTES_PER_BIG_BLOCK + + (block_num - 48) * EFUSE_BYTES_PER_LIT_BLOCK; + + bytes = width / 8; + + if (lseek(fd, offset, SEEK_SET) == (off_t)-1) { + perror("failed to lseek offset to read"); + return -errno; + } + + ret = read(fd, buf, bytes); + if (ret != bytes) { + perror("failed to read"); + ret = -errno; + } + + return ret; +} + +/* according to FuseMap_v1.2.1.xlsx */ +size_t efuse_block_write(int fd, unsigned char *buf, unsigned int block_num) +{ + unsigned int width, offset, bytes; + size_t ret; + + if (block_num >= 42 && block_num <= 47) + width = EFUSE_BIG_BLOCK_BIT_WIDTH; + else + width = EFUSE_LIT_BLOCK_BIT_WIDTH; + + if (block_num <= 42) + offset = block_num * EFUSE_BYTES_PER_LIT_BLOCK; + else if (block_num > 42 && block_num <= 48) + offset = 42 * EFUSE_BYTES_PER_LIT_BLOCK + (block_num - 42) * EFUSE_BYTES_PER_BIG_BLOCK; + else + offset = 42 * EFUSE_BYTES_PER_LIT_BLOCK + 6 * EFUSE_BYTES_PER_BIG_BLOCK + + (block_num - 48) * EFUSE_BYTES_PER_LIT_BLOCK; + + bytes = width / 8; + + if (lseek(fd, offset, SEEK_SET) == (off_t)-1) { + perror("failed to lseek offset to write"); + return -errno; + } + + ret = write(fd, buf, bytes); + if (ret != bytes) { + perror("failed to write"); + ret = -errno; + } + + return ret; +} + +/** + * csi_efuse_get_chipid() - Get chip id in eFuse + * + * @chip_id: pointer to the buffer to store chip id + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_chipid(void *chip_id) +{ + int ret, fd; + + assert(chip_id); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + perror("open"); + return -errno; + } + + ret = efuse_read(fd, chip_id, "UID"); + if (ret < 0) + printf("failed to get 'UID' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_user_dbg_mode() - Get debug mode in user area + * + * @type: Debug type + * + * @dbg_mode: pointer to the buffer store debug mode + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_user_dbg_mode(efuse_dbg_type_t type, efuse_dbg_mode_t *dbg_mode) +{ + int ret, fd; + char *mode_name; + + assert(dbg_mode); + if ((type != USR_DSP0_JTAG) && (type != USR_DSP1_JTAG) && + (type != USR_C910T_JTAG) && (type != USR_C910R_JTAG) && + (type != USR_C906_JTAG) && (type != USR_E902_JTAG) && + (type != USR_CHIP_DBG) && (type != USR_DFT)) + + return -EINVAL; + + switch (type) { + case USR_DSP0_JTAG: + mode_name = "USR_DSP0_JTAG_MODE"; + break; + case USR_DSP1_JTAG: + mode_name = "USR_DSP1_JTAG_MODE"; + break; + case USR_C910T_JTAG: + mode_name = "USR_C910T_JTAG_MODE"; + break; + case USR_C910R_JTAG: + mode_name = "USR_C910R_JTAG_MODE"; + break; + case USR_C906_JTAG: + mode_name = "USR_C906_JTAG_MODE"; + break; + case USR_E902_JTAG: + mode_name = "USR_E902_JTAG_MODE"; + break; + case USR_CHIP_DBG: + mode_name = "USR_CHIP_DBG_MODE"; + break; + case USR_DFT: + mode_name = "USR_DFT_MODE"; + break; + } + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, dbg_mode, mode_name); + if (ret < 0) + printf("failed to get %s from efuse\n", mode_name); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_user_dbg_mode() - Set debug mode in user area + * + * @type: Debug type + * + * @dbg_mode: debug mode + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_user_dbg_mode(efuse_dbg_type_t type, efuse_dbg_mode_t dbg_mode) +{ + int ret, fd; + char *mode_name; + + if ((type != USR_DSP0_JTAG) && (type != USR_DSP1_JTAG) && + (type != USR_C910T_JTAG) && (type != USR_C910R_JTAG) && + (type != USR_C906_JTAG) && (type != USR_E902_JTAG) && + (type != USR_CHIP_DBG) && (type != USR_DFT)) + return -EINVAL; + + if ((dbg_mode != DBG_MODE_ENABLE) && (dbg_mode != DBG_MODE_PWD_PROTECT) && + (dbg_mode != DBG_MODE_DISABLE)) + return -EINVAL; + + switch (type) { + case USR_DSP0_JTAG: + mode_name = "USR_DSP0_JTAG_MODE"; + break; + case USR_DSP1_JTAG: + mode_name = "USR_DSP1_JTAG_MODE"; + break; + case USR_C910T_JTAG: + mode_name = "USR_C910T_JTAG_MODE"; + break; + case USR_C910R_JTAG: + mode_name = "USR_C910R_JTAG_MODE"; + break; + case USR_C906_JTAG: + mode_name = "USR_C906_JTAG_MODE"; + break; + case USR_E902_JTAG: + mode_name = "USR_E902_JTAG_MODE"; + break; + case USR_CHIP_DBG: + mode_name = "USR_CHIP_DBG_MODE"; + break; + case USR_DFT: + mode_name = "USR_DFT_MODE"; + break; + } + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_write(fd, (unsigned char *)&dbg_mode, mode_name); + if (ret < 0) + printf("failed to set %s into efuse\n", mode_name); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_boot_offset() - Get BL1's offset in boot media + * + * @offset: pointer to the buffer to store BL1's offset + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_boot_offset(unsigned int *offset) +{ + int ret, fd; + + assert(offset); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, offset, "BOOT_OFFSET"); + if (ret < 0) + printf("failed to get 'BOOT_OFFSET' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_boot_offset() - Set BL1's offset in boot media + * + * @offset: Offset value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_boot_offset(unsigned int offset) +{ + int ret, fd; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_write(fd, &offset, "BOOT_OFFSET"); + if (ret < 0) + printf("failed to set 'BOOT_OFFSET' into efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_boot_index() - Get BL1's index in boot media + * + * @index: pointer to the buffer to store BL1's index + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_boot_index(unsigned char *index) +{ + int ret, fd; + + assert(index); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, index, "BOOT_INDEX"); + if (ret < 0) + printf("failed to get 'BOOT_INDEX' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_boot_index() - Set BL1's index in boot media + * + * @index: index value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_boot_index(const unsigned char index) +{ + int ret, fd; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_write(fd, &index, "BOOT_INDEX"); + if (ret < 0) + printf("failed to set 'BOOT_INDEX' into efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_bak_boot_offset() - Get BL1's offset in boot media + * + * @offset: pointer to the buffer to store BL1's offset + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bak_boot_offset(unsigned int *offset) +{ + int ret, fd; + + assert(offset); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, offset, "BOOT_OFFSET_BAK"); + if (ret < 0) + printf("failed to get 'BOOT_OFFSET_BAK' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_boot_offset() - Set BL1's offset in boot media + * + * @offset: Offset value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bak_boot_offset(unsigned int offset) +{ + int ret, fd; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_write(fd, &offset, "BOOT_OFFSET_BAK"); + if (ret < 0) + printf("failed to set 'BOOT_OFFSET_BAK' into efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_bak_boot_index() - Get BL1's index in boot media + * + * @index: pointer to the buffer to store BL1's index + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bak_boot_index(unsigned char *index) +{ + int ret, fd; + + assert(index); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, index, "BOOT_INDEX_BAK"); + if (ret < 0) + printf("failed to get 'BOOT_INDEX_BAK' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_bak_boot_index() - Set BL1's index in boot media + * + * @index: index value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bak_boot_index(unsigned char index) +{ + int ret, fd; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_write(fd, &index, "BOOT_INDEX_BAK"); + if (ret < 0) + printf("failed to set 'BOOT_INDEX_BAK' into efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_usr_brom_usb_fastboot_st() - Get bootrom USB fastboots tatus in user area + * + * @status: pointer to the buffer to store USB fastboot status + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_usr_brom_usb_fastboot_st(brom_usbboot_st_t *status) +{ + int ret, fd; + unsigned char tempdata; + assert(status); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, &tempdata, "USR_USB_FASTBOOT_DIS"); + if (ret < 0) + printf("failed to get 'USR_USB_FASTBOOT_DIS' from efuse\n"); + else + ret = 0; + + if (tempdata == 0xa) + *status = BROM_USBBOOT_DIS; + else if (tempdata != BROM_USBBOOT_EN) + ret = -EINVAL; + else + *status = BROM_USBBOOT_EN; + + close(fd); + + return ret; +} + +/** + * csi_efuse_dis_usr_brom_usb_fastboot() - Disable bootrom USB fastboot status in user area + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_dis_usr_brom_usb_fastboot(void) +{ + int ret, fd; + unsigned char status = 0xA; /* disable value */ + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_write(fd, &status, "USR_USB_FASTBOOT_DIS"); + if (ret < 0) + printf("failed to set 'USR_USB_FASTBOOT_DIS' status into efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_usr_brom_cct_st() - Get bootrom CCT status in user area + * + * @status: pointer to the buffer to store CCT + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_usr_brom_cct_st(brom_cct_st_t *status) +{ + int ret, fd; + unsigned char tempdata; + + assert(status); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, &tempdata, "USR_BROM_CCT_DIS"); + if (ret < 0) + printf("failed to get 'USR_BROM_CCT_DIS' from efuse\n"); + else + ret = 0; + + if (tempdata == 0xa) + *status = BROM_CCT_DIS; + else if(tempdata != BROM_CCT_EN) + ret = -EINVAL; + else + *status = BROM_CCT_EN; + + close(fd); + + return ret; +} + +/** + * csi_efuse_dis_usr_brom_cct() - Disable bootrom CCT status in user area + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_dis_usr_brom_cct(void) +{ + int ret, fd; + unsigned char status = 0xA; /* disable value */ + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_write(fd, &status, "USR_BROM_CCT_DIS"); + if (ret < 0) + printf("failed to set 'USR_BROM_CCT_DIS' status into efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_bl2_img_encrypt_st() - Get BL2 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL2 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl2_img_encrypt_st(img_encrypt_st_t *encrypt_flag) +{ + int ret, fd; + unsigned char tempdata; + + assert(encrypt_flag); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, &tempdata, "IMAGE_BL2_ENC"); + if (ret < 0) + printf("failed to get 'IMAGE_BL2_ENC' from efuse\n"); + else + ret = 0; + + if (tempdata == 0x5a) + *encrypt_flag = IMAGE_ENCRYPT_EN; + else if (tempdata != IMAGE_ENCRYPT_DIS) + ret = -EINVAL; + else + *encrypt_flag = IMAGE_ENCRYPT_DIS; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_bl2_img_encrypt_st() - Set BL2 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL2 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl2_img_encrypt_st(img_encrypt_st_t encrypt_flag) +{ + int ret, fd; + + if ((encrypt_flag != IMAGE_ENCRYPT_DIS) && (encrypt_flag != IMAGE_ENCRYPT_EN)) + return -EINVAL; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + if (encrypt_flag == IMAGE_ENCRYPT_EN) + encrypt_flag = 0x5a; + + ret = efuse_write(fd, (unsigned char *)&encrypt_flag, "IMAGE_BL2_ENC"); + if (ret < 0) + printf("failed to get 'IMAGE_BL2_ENC' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_bl3_img_encrypt_st() - Get BL3 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL2 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl3_img_encrypt_st(img_encrypt_st_t *encrypt_flag) +{ + int ret, fd; + unsigned char tempdata; + + assert(encrypt_flag); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, &tempdata, "IMAGE_BL3_ENC"); + if (ret < 0) + printf("failed to get 'IMAGE_BL3_ENC' from efuse\n"); + else + ret = 0; + + if (tempdata == 0x5a) + *encrypt_flag = IMAGE_ENCRYPT_EN; + else if (tempdata != IMAGE_ENCRYPT_DIS) + ret = -EINVAL; + else + *encrypt_flag = IMAGE_ENCRYPT_DIS; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_bl3_img_encrypt_st() - Set BL3 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL3 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl3_img_encrypt_st(img_encrypt_st_t encrypt_flag) +{ + int ret, fd; + + if ((encrypt_flag != IMAGE_ENCRYPT_DIS) && (encrypt_flag != IMAGE_ENCRYPT_EN)) + return -EINVAL; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + if (encrypt_flag == IMAGE_ENCRYPT_EN) + encrypt_flag = 0x5a; + + ret = efuse_write(fd, (unsigned char *)&encrypt_flag, "IMAGE_BL3_ENC"); + if (ret < 0) + printf("failed to get 'IMAGE_BL3_ENC' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_bl4_img_encrypt_st() - Get BL4 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL4 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl4_img_encrypt_st(img_encrypt_st_t *encrypt_flag) +{ + int ret, fd; + unsigned char tempdata; + + assert(encrypt_flag); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, &tempdata, "IMAGE_BL4_ENC"); + if (ret < 0) + printf("failed to get 'IMAGE_BL4_ENC' from efuse\n"); + else + ret = 0; + + if (tempdata == 0x5a) + *encrypt_flag = IMAGE_ENCRYPT_EN; + else if (tempdata != IMAGE_ENCRYPT_DIS) + ret = -EINVAL; + else + *encrypt_flag = IMAGE_ENCRYPT_DIS; + + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_bl4_img_encrypt_st() - Set BL4 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL4 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl4_img_encrypt_st(img_encrypt_st_t encrypt_flag) +{ + int ret, fd; + + if ((encrypt_flag != IMAGE_ENCRYPT_DIS) && (encrypt_flag != IMAGE_ENCRYPT_EN)) + return -EINVAL; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + if (encrypt_flag == IMAGE_ENCRYPT_EN) + encrypt_flag = 0x5a; + + ret = efuse_write(fd, (unsigned char *)&encrypt_flag, "IMAGE_BL4_ENC"); + if (ret < 0) + printf("failed to get 'IMAGE_BL4_ENC' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_bl1_version() - Get BL1 version + * + * @version: pointer to the buffer to store BL1's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl1_version(unsigned long long *version) +{ + int ret, fd; + + assert(version); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, version, "BL1VERSION"); + if (ret < 0) + printf("failed to get 'BL1VERSION' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_bl1_version() - Set BL1 version + * + * @version: pointer to the buffer to store BL1's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl1_version(unsigned long long version) +{ + int ret, fd; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_write(fd, &version, "BL1VERSION"); + if (ret < 0) + printf("failed to set 'BL1VERSION' into efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_bl2_version() - Get BL2 version + * + * @version: pointer to the buffer to store BL2's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl2_version(unsigned long long *version) +{ + int ret, fd; + + assert(version); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, version, "BL2VERSION"); + if (ret < 0) + printf("failed to get 'BL2VERSION' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_bl2_version() - Set BL2 version + * + * @version: pointer to the buffer to store BL2's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl2_version(unsigned long long version) +{ + int ret, fd; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_write(fd, &version, "BL2VERSION"); + if (ret < 0) + printf("failed to set 'BL2VERSION' into efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_secure_boot_st() - Get seucre boot flag + * + * @sboot_flag: A pointer to the buffer to store secure boot flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_secure_boot_st(sboot_st_t *sboot_flag) +{ + int ret, fd; + unsigned char tempdata; + + assert(sboot_flag); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, &tempdata, "SECURE_BOOT"); + if (ret < 0) + printf("failed to get 'SECURE_BOOT' from efuse\n"); + else + ret = 0; + + if (tempdata == 0x5a) + *sboot_flag = SECURE_BOOT_EN; + else if (tempdata != SECURE_BOOT_DIS) + ret = -EINVAL; + else + *sboot_flag = SECURE_BOOT_DIS; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_hash_challenge() - Get hash challenge in eFuse + * + * @hash_resp: pointer to the buffer to store hash response + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_hash_challenge(void * hash_resp) +{ + int ret, fd; + + assert(hash_resp); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_read(fd, hash_resp, "HASH_DEBUGPK"); + if (ret < 0) + printf("failed to get 'HASH_DEBUGPK' from efuse\n"); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_get_userdata_group() - Get user data in corresponding eFuse block + * + * @key: pointer to the buffer to store user data + * @block_num: the block number in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_userdata_group(unsigned char *key, unsigned char block_num) +{ + int ret, fd; + + assert(key); + if (block_num >= 58) + return -EINVAL; + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_block_read(fd, key, block_num); + if (ret < 0) + printf("failed to get block%d data from efuse\n", block_num); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_userdata_group() - Set user data corresponding eFuse block + * + * @key: pointer to the buffer to store user data + * @block_num: the block number in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_userdata_group(unsigned char *key, unsigned char block_num) +{ + int ret, fd; + + assert(key); + if (block_num > 58) { + printf("the block number is out of the scop \n"); + return -EINVAL; + } + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + ret = efuse_block_write(fd, key, block_num); + if (ret < 0) + printf("failed to set block%d data into efuse\n", block_num); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_read() - Read data from eFuse + * + * @offset: offset address + * @data: Pointer to a buffer storing the data read from eFuse + * @cnt: Number of bytes need to be read + * + * Return: number of data items read or error code +*/ +int csi_efuse_read(unsigned int offset, void *data, unsigned int cnt) +{ + int ret, fd; + + assert(data); + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + if (lseek(fd, offset, SEEK_SET) == (off_t)-1) { + perror("failed to lseek offset to read"); + close(fd); + return -errno; + } + + ret = read(fd, data, cnt); + if (ret < 0) { + perror("failed to read data from efuse"); + ret = -errno; + } + + close(fd); + + return ret; +} + +/** + * csi_efuse_write() - Write data to eFuse + * + * @offset: offset address + * @data: Pointer to a buffer storing the data write to eFuse + * @cnt: Number of bytes need to be write + * + * Return: number of data items write or error code +*/ +int csi_efuse_write(unsigned int offset, void *data, unsigned int cnt) +{ + int ret, fd; + + assert(data); + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + if (lseek(fd, offset, SEEK_SET) == (off_t)-1) { + perror("failed to lseek offset to write"); + close(fd); + return -errno; + } + + ret = write(fd, data, cnt); + if (ret < 0) { + perror("failed to write data to efuse"); + ret = -errno; + } + + close(fd); + + return ret; +} + +/** + * csi_dbg_enable_c910t_jtag() - Enable C910 TEE core jtag + * + * Return: 0 on success or negative code on failure +*/ +int csi_dbg_enable_c910t_jtag(void) +{ + +} + +/** + * csi_dbg_disable_c910t_jtag() - Disable C910 TEE core jtag + * + * Return: 0 on success or negative code on failure +*/ +int csi_dbg_disable_c910t_jtag(void) +{ + +} + +/** + * csi_efuse_get_gmac_macaddr() - Get gmac0/gmac1 mac address in eFuse + * @dev_id: '0' means gmac0, '1' means gmac1 + * @mac: the mac address string + * + * Return: 0: Success others: Failed +*/ +int csi_efuse_get_gmac_macaddr(int dev_id, unsigned char *mac) +{ + int ret, fd; + char gmac_name[12] = {}; + + assert(mac); + if ((dev_id != 0) && (dev_id != 1)) + return -EINVAL; + + fd = open(efuse_file, O_RDONLY); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + sprintf(gmac_name, "GMAC%d_MAC", dev_id); + + ret = efuse_read(fd, mac, gmac_name); + if (ret < 0) + printf("failed to get %s\n", gmac_name); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_set_gmac_macaddr() - Set gmac0/gmac1 mac address in eFuse + * @dev_id: '0' means gmac0, '1' means gmac1 + * @mac: the mac address string + * + * Return: 0: Success others: Failed +*/ +int csi_efuse_set_gmac_macaddr(int dev_id, unsigned char *mac) +{ + int ret, fd; + char gmac_name[12] = {}; + + assert(mac); + if ((dev_id != 0) && (dev_id != 1)) + return -EINVAL; + + fd = open(efuse_file, O_RDWR); + if (fd < 0) { + printf("failed to open efuse device: %s\n", efuse_file); + return -errno; + } + + sprintf(gmac_name, "GMAC%d_MAC", dev_id); + + ret = efuse_write(fd, mac, gmac_name); + if (ret < 0) + printf("failed to set '%s' into efuse\n", gmac_name); + else + ret = 0; + + close(fd); + + return ret; +} + +/** + * csi_efuse_update_lc_rma() - Upate efuse life cycle RMA + * + * Return: 0: Success others: Failed + */ +int csi_efuse_update_lc_rma() +{ + int fd, ret; + char d = '1'; + const char *dev_path = "/sys/devices/platform/soc/ffff210000.efuse/rma_lc"; + + fd = open(dev_path, O_WRONLY); + if (fd < 0) { + printf("failed to open device '%s'\n", dev_path); + return -errno; + } + ret = write(fd, &d, 1); + if (ret < 0){ + printf("failed to update rma lifecycle\n"); + return -errno; + } else { + ret = 0; + } + close(fd); + + return 0; +} + +/** + * csi_efuse_update_lc_rma() - Upate efuse life cycle RIP + * + * Return: 0: Success others: Failed + */ +int csi_efuse_update_lc_rip() +{ + int fd, ret; + char d = '1'; + const char *dev_path = "/sys/devices/platform/soc/ffff210000.efuse/rip_lc"; + + fd = open(dev_path, O_WRONLY); + if (fd < 0) { + printf("failed to open device '%s'\n", dev_path); + return -errno; + } + ret = write(fd, &d, 1); + if (ret < 0){ + printf("failed to update rip lifecycle\n"); + return -errno; + } else { + ret = 0; + } + close(fd); + + return 0; +} + diff --git a/efuse-hal-lib/lib/src/light-efuse-hal.o b/efuse-hal-lib/lib/src/light-efuse-hal.o new file mode 100644 index 0000000000000000000000000000000000000000..853ea5b4d81bc13c54c23a46499e5c99f15cf194 GIT binary patch literal 81520 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 literal 0 HcmV?d00001 diff --git a/efuse-hal-lib/test/efuse_demo/Makefile b/efuse-hal-lib/test/efuse_demo/Makefile new file mode 100644 index 0000000..7330098 --- /dev/null +++ b/efuse-hal-lib/test/efuse_demo/Makefile @@ -0,0 +1,22 @@ +CC=$(CROSS)gcc +CFLAGS=-DxDEBUG +LIBS=-L ../../lib/output -lefuse + +BIN = efuse_demo +OUTDIR = ../output +SRCS:=$(wildcard *.c) +COBJS:=$(SRCS:.c=.o) + +all:$(OUTDIR)/$(BIN) + +$(OUTDIR)/$(BIN):$(COBJS) + mkdir -p $(OUTDIR) + $(CC) -o $(OUTDIR)/$(BIN) $(CFLAGS) $(COBJS) $(LIBS) + +$(COBJS): %.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ + +.PHONY: clean + +clean: + rm -rf $(OUTDIR)/$(BIN) $(COBJS) diff --git a/efuse-hal-lib/test/efuse_demo/efuse-api.h b/efuse-hal-lib/test/efuse_demo/efuse-api.h new file mode 100644 index 0000000..1406e7d --- /dev/null +++ b/efuse-hal-lib/test/efuse_demo/efuse-api.h @@ -0,0 +1,377 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2021 Alibaba Group Holding Limited. + * + */ +#ifndef _EFUSE_API_H +#define _EFUSE_API_H + +typedef enum { + USR_DSP0_JTAG = 0, + USR_DSP1_JTAG, + USR_C910T_JTAG, + USR_C910R_JTAG, + USR_C906_JTAG, + USR_E902_JTAG, + USR_CHIP_DBG, + USR_DFT, +} efuse_dbg_type_t; + +typedef enum { + DBG_MODE_ENABLE = 0, + DBG_MODE_PWD_PROTECT, + DBG_MODE_DISABLE, +} efuse_dbg_mode_t; + +typedef enum { + BROM_USBBOOT_EN= 0, + BROM_USBBOOT_DIS = 0x5a5a5a5a, +} brom_usbboot_st_t; + +typedef enum { + BROM_CCT_EN= 0, + BROM_CCT_DIS = 0x5a5a5a5a, +} brom_cct_st_t; + +typedef enum { + IMAGE_ENCRYPT_DIS= 0, + IMAGE_ENCRYPT_EN = 0x5a5a5a5a, +} img_encrypt_st_t; + +typedef enum { + SECURE_BOOT_DIS= 0, + SECURE_BOOT_EN = 0x5a5a5a5a, +} sboot_st_t; + +/** + * csi_efuse_get_chipid() - Get chip id in eFuse + * + * @chip_id: pointer to the buffer to store chip id + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_chipid(void *chip_id); + +/** + * csi_efuse_get_user_dbg_mode() - Get debug mode in user area + * + * @type: Debug type + * + * @dbg_mode: pointer to the buffer store debug mode + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_user_dbg_mode(efuse_dbg_type_t type, efuse_dbg_mode_t *dbg_mode); + +/** + * csi_efuse_set_user_dbg_mode() - Set debug mode in user area + * + * @type: Debug type + * + * @dbg_mode: debug mode + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_user_dbg_mode(efuse_dbg_type_t type, efuse_dbg_mode_t dbg_mode); + +/** + * csi_efuse_get_boot_offset() - Get BL1's offset in boot media + * + * @offset: pointer to the buffer to store BL1's offset + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_boot_offset(unsigned int *offset); + +/** + * csi_efuse_set_boot_offset() - Set BL1's offset in boot media + * + * @offset: Offset value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_boot_offset(unsigned int offset); + +/** + * csi_efuse_get_boot_index() - Get BL1's index in boot media + * + * @index: pointer to the buffer to store BL1's index + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_boot_index(unsigned char *index); + +/** + * csi_efuse_set_boot_index() - Set BL1's index in boot media + * + * @index: index value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_boot_index(unsigned char index); + +/** + * csi_efuse_get_bak_boot_offset() - Get BL1's offset in boot media + * + * @offset: pointer to the buffer to store BL1's offset + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bak_boot_offset(unsigned int *offset); + +/** + * csi_efuse_set_boot_offset() - Set BL1's offset in boot media + * + * @offset: Offset value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bak_boot_offset(unsigned int offset); + +/** + * csi_efuse_get_bak_boot_index() - Get BL1's index in boot media + * + * @index: pointer to the buffer to store BL1's index + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bak_boot_index(unsigned char *index); + +/** + * csi_efuse_set_bak_boot_index() - Set BL1's index in boot media + * + * @index: index value to be set + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bak_boot_index(unsigned char index); + +/** + * csi_efuse_get_usr_brom_usb_fastboot_st() - Get bootrom USB fastboots tatus in user area + * + * @status: pointer to the buffer to store USB fastboot status + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_usr_brom_usb_fastboot_st(brom_usbboot_st_t *status); + +/** + * csi_efuse_dis_usr_brom_usb_fastboot() - Disable bootrom USB fastboot status in user area + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_dis_usr_brom_usb_fastboot(void); + +/** + * csi_efuse_get_usr_brom_cct_st() - Get bootrom CCT status in user area + * + * @status: pointer to the buffer to store CCT + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_usr_brom_cct_st(brom_cct_st_t *status); + +/** + * csi_efuse_dis_usr_brom_cct() - Disable bootrom CCT status in user area + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_dis_usr_brom_cct(void); + +/** + * csi_efuse_get_bl2_img_encrypt_st() - Get BL2 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL2 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl2_img_encrypt_st( img_encrypt_st_t *encrypt_flag); + +/** + * csi_efuse_set_bl2_img_encrypt_st() - Set BL2 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL2 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl2_img_encrypt_st( img_encrypt_st_t encrypt_flag); + +/** + * csi_efuse_get_bl3_img_encrypt_st() - Get BL3 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL2 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl3_img_encrypt_st( img_encrypt_st_t *encrypt_flag); + +/** + * csi_efuse_set_bl3_img_encrypt_st() - Set BL3 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL3 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl3_img_encrypt_st( img_encrypt_st_t encrypt_flag); + +/** + * csi_efuse_get_bl4_img_encrypt_st() - Get BL4 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL4 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl4_img_encrypt_st( img_encrypt_st_t *encrypt_flag); + +/** + * csi_efuse_set_bl4_img_encrypt_st() - Set BL4 image encryption flag + * + * @encrypt_flag: pointer to the buffer to store BL4 encryption flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl4_img_encrypt_st( img_encrypt_st_t encrypt_flag); + +/** + * csi_efuse_get_bl1_version() - Get BL1 version + * + * @version: pointer to the buffer to store BL1's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl1_version(unsigned long long *version); + +/** + * csi_efuse_set_bl1_version() - Set BL1 version + * + * @version: pointer to the buffer to store BL1's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl1_version(unsigned long long version); + +/** + * csi_efuse_get_bl2_version() - Get BL2 version + * + * @version: pointer to the buffer to store BL2's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_bl2_version(unsigned long long *version); + +/** + * csi_efuse_set_bl2_version() - Set BL2 version + * + * @version: pointer to the buffer to store BL2's version in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_bl2_version(unsigned long long version); + +/** + * csi_efuse_get_secure_boot_st() - Get seucre boot flag + * + * @sboot_flag: A pointer to the buffer to store secure boot flag + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_secure_boot_st(sboot_st_t *sboot_flag); + +/** + * csi_efuse_get_hash_challenge() - Get hash challenge in eFuse + * + * @hash_resp: pointer to the buffer to store hash response + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_hash_challenge(void * hash_resp); + +/** + * csi_efuse_get_userdata_group() - Get user data in corresponding eFuse block + * + * @key: pointer to the buffer to store user data + * @block_num: the block number in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_get_userdata_group(unsigned char *key, unsigned char block_num); + +/** + * csi_efuse_set_userdata_group() - Set user data corresponding eFuse block + * + * @key: pointer to the buffer to store user data + * @block_num: the block number in eFuse + * + * Return: 0 on success or negative code on failure +*/ +int csi_efuse_set_userdata_group(unsigned char *key, unsigned char block_num); + +/** + * csi_efuse_read() - Read data from eFuse + * + * @offset: offset address + * @data: Pointer to a buffer storing the data read from eFuse + * @cnt: Number of bytes need to be read + * + * Return: number of data items read or error code +*/ +int csi_efuse_read(unsigned int offset, void *data, unsigned int cnt); + +/** + * csi_efuse_write() - Write data to eFuse + * + * @offset: offset address + * @data: Pointer to a buffer storing the data write to eFuse + * @cnt: Number of bytes need to be write + * + * Return: number of data items write or error code +*/ +int csi_efuse_write(unsigned int offset, void *data, unsigned int cnt); + +/** + * csi_dbg_enable_c910t_jtag() - Enable C910 TEE core jtag + * + * Return: 0 on success or negative code on failure +*/ +int csi_dbg_enable_c910t_jtag(void); + +/** + * csi_dbg_disable_c910t_jtag() - Disable C910 TEE core jtag + * + * Return: 0 on success or negative code on failure +*/ +int csi_dbg_disable_c910t_jtag(void); + +/** + * csi_efuse_get_gmac_macaddr() - Get gmac0/gmac1 mac address in eFuse + * @dev_id: '0' means gmac0, '1' means gmac1 + * @mac: the mac address string + * + * Return: 0: Success others: Failed +*/ +int csi_efuse_get_gmac_macaddr(int dev_id, unsigned char *mac); + +/** + * csi_efuse_set_gmac_macaddr() - Set gmac0/gmac1 mac address in eFuse + * @dev_id: '0' means gmac0, '1' means gmac1 + * @mac: the mac address string + * + * Return: 0: Success others: Failed +*/ +int csi_efuse_set_gmac_macaddr(int dev_id, unsigned char *mac); + +/** + * csi_efuse_update_lc_rma() - Upate efuse life cycle RMA + * + * Return: 0: Success others: Failed + */ +int csi_efuse_update_lc_rma(); + +/** + * csi_efuse_update_lc_rma() - Upate efuse life cycle RIP + * + * Return: 0: Success others: Failed + */ +int csi_efuse_update_lc_rip(); + +#endif diff --git a/efuse-hal-lib/test/efuse_demo/light-efuse-test.c b/efuse-hal-lib/test/efuse_demo/light-efuse-test.c new file mode 100644 index 0000000..fb1775e --- /dev/null +++ b/efuse-hal-lib/test/efuse_demo/light-efuse-test.c @@ -0,0 +1,470 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "efuse-api.h" + +void csi_efuse_offset_test() +{ + int ret, i; + unsigned char data[32] = {0xff, 0xef, 0xdf, 0xcf, 0xbf, 0xaf, 0x9f, 0x8f, 0x7f, 0x6f, 0x5f, 0x4f, 0x3f, 0x2f, 0x1f, 0x0f, 0xfe, 0xee, 0xde, 0xce, 0xbe, 0xae, 0x9e, 0x8e, 0x7e, 0x6e, 0x5e, 0x4e, 0x3e, 0x2e, 0x3f, 0xff}; + unsigned int addr = 50; + + printf("data before set:\n"); + + for (i = 0; i < 32; i++) + printf("0x%x ", data[i]); + printf("\n"); + +#if 1 + ret = csi_efuse_write(addr, &data, sizeof(data)); + if (ret < 0) + return; + memset(data, 0, 32); +#endif + ret = csi_efuse_read(addr, &data, sizeof(data)); + if (ret < 0) + return; + + printf("data after set:\n"); + + for (i = 0; i < 32; i++) + printf("0x%x ", data[i]); + printf("\n"); +} + +void csi_efuse_userdata_group_test() +{ + unsigned char group[16] = {0}; + int ret, i; + + for (i = 0; i < 16; i++) + group[i] = i; + + ret = csi_efuse_set_userdata_group(group, 12); + if (ret < 0) + return; + + memset(group, 0, sizeof(group)); + + ret = csi_efuse_get_userdata_group(group, 12); + if (ret < 0) + return; +#if 0 + for (i = 0; i < 16; i++) + printf("%x", group[i]); + + ret = csi_efuse_set_userdata_group(group, 44); + if (ret < 0) + return; +#endif + memset(group, 0, sizeof(group)); + + ret = csi_efuse_get_userdata_group(group, 44); + if (ret < 0) + return; + + for (i = 0; i < 16; i++) + printf("%x", group[i]); + + printf("\n"); +} + +void csi_efuse_get_hash_challenge_test() +{ + unsigned char hash[32] = {0}; + int ret, i; + + ret =csi_efuse_get_hash_challenge(&hash); + if (ret < 0) + return; + + printf("hash challenge: 0x"); + for (i = 31; i >=0; i--) + printf("%x", hash[i]); + printf("\n"); +} + +void csi_efuse_get_secure_boot_st_test() +{ + sboot_st_t flag; + int ret; + + ret =csi_efuse_get_secure_boot_st(&flag); + if (ret < 0) + return; + printf("secure boot flag: 0x%x\n", flag); + + if (flag != SECURE_BOOT_DIS && flag != SECURE_BOOT_EN) + printf("incorrect secure boot flag\n"); +} + +void csi_efuse_get_bl2_version_test() +{ + unsigned long long version; + int ret; + + ret = csi_efuse_get_bl2_version(&version); + if (ret < 0) + return; + printf("before setting bl2 version = 0x%llx\n", version); + + version = 0xabcdef123456789a; + ret = csi_efuse_set_bl2_version(version); + if (ret < 0) + return; + + ret = csi_efuse_get_bl2_version(&version); + if (ret < 0) + return; + printf("after setting bl2 version = 0x%llx\n", version); +} + +void csi_efuse_get_bl1_version_test() +{ + unsigned long long version; + int ret; + + ret = csi_efuse_get_bl1_version(&version); + if (ret < 0) + return; + printf("before setting bl1 version = 0x%llx\n", version); + + version = 0xabcdef123456789a; + ret = csi_efuse_set_bl1_version(version); + if (ret < 0) + return; + + ret = csi_efuse_get_bl1_version(&version); + if (ret < 0) + return; + printf("after setting bl1 version = 0x%llx\n", version); +} + +void csi_efuse_bl4_img_encrypt_test() +{ + img_encrypt_st_t flag; + int ret; + + ret = csi_efuse_get_bl4_img_encrypt_st(&flag); + if (ret < 0) + return; + printf("before setting bl4 img flg: 0x%x\n", flag); + + flag = IMAGE_ENCRYPT_EN; + ret = csi_efuse_set_bl4_img_encrypt_st(flag); + if (ret < 0) + return; + + ret = csi_efuse_get_bl4_img_encrypt_st(&flag); + if (ret < 0) + return; + printf("after setting bl4 img flg: 0x%x\n", flag); +} + +void csi_efuse_bl3_img_encrypt_test() +{ + img_encrypt_st_t flag; + int ret; + + ret = csi_efuse_get_bl3_img_encrypt_st(&flag); + if (ret < 0) + return; + printf("before setting bl3 img flg: 0x%x\n", flag); + + flag = IMAGE_ENCRYPT_EN; + ret = csi_efuse_set_bl3_img_encrypt_st(flag); + if (ret < 0) + return; + + ret = csi_efuse_get_bl3_img_encrypt_st(&flag); + if (ret < 0) + return; + printf("after setting bl3 img flg: 0x%x\n", flag); +} + +void csi_efuse_bl2_img_encrypt_test() +{ + img_encrypt_st_t flag; + int ret; + + ret = csi_efuse_get_bl2_img_encrypt_st(&flag); + if (ret < 0) + return; + printf("before setting bl2 img flg: 0x%x\n", flag); + + flag = IMAGE_ENCRYPT_EN; + ret = csi_efuse_set_bl2_img_encrypt_st(flag); + if (ret < 0) + return; + + ret = csi_efuse_get_bl2_img_encrypt_st(&flag); + if (ret < 0) + return; + printf("after setting bl2 img flg: 0x%x\n", flag); +} + +void csi_efuse_usr_brom_cct_test() +{ + brom_cct_st_t status; + int ret; + + printf("csi_efuse_usr_brom_cct_test....\n"); + + ret = csi_efuse_get_usr_brom_cct_st(&status); + if (ret < 0) + return; + printf("before setting cct status: 0x%x\n", status); + + ret = csi_efuse_dis_usr_brom_cct(); + if (ret < 0) + return; + + ret = csi_efuse_get_usr_brom_cct_st(&status); + if (ret < 0) + return; + + printf("after setting cct status: 0x%x\n", status); +} + +void csi_efuse_usr_brom_usb_fastboot_test() +{ + brom_usbboot_st_t status; + int ret; + + ret = csi_efuse_get_usr_brom_usb_fastboot_st(&status); + if (ret < 0) + return; + printf("before setting fastboot status: 0x%x\n", status); + + ret = csi_efuse_dis_usr_brom_usb_fastboot(); + if (ret < 0) + return; + + ret = csi_efuse_get_usr_brom_usb_fastboot_st(&status); + if (ret < 0) + return; + + printf("after setting fastboot status: 0x%x\n", status); +} + +void csi_efuse_bak_boot_index_test() +{ + int ret; + unsigned char index; + + ret = csi_efuse_get_bak_boot_index(&index); + if (ret < 0) + return; + + printf("\nbefore write bak boot index = %d\n", index); + + index = 50; + ret = csi_efuse_set_bak_boot_index(index); + if (ret < 0) + return; + + ret = csi_efuse_get_bak_boot_index(&index); + if (ret < 0) + return; + + printf("\nafter write bak boot index = %d\n", index); +} + +void csi_efuse_bak_boot_offset_test() +{ + int ret; + unsigned int offset; + + ret = csi_efuse_get_bak_boot_offset(&offset); + if (ret < 0) + return; + + printf("\nbefore write bak boot offset = %d\n", offset); + + offset = 122; + ret = csi_efuse_set_bak_boot_offset(offset); + if (ret < 0) + return; + + ret = csi_efuse_get_bak_boot_offset(&offset); + if (ret < 0) + return; + + printf("\nafter write bak boot offset = %d\n", offset); +} + +void csi_efuse_boot_index_test() +{ + unsigned char index; + int ret; +#if 1 + ret = csi_efuse_set_boot_index(244); + if (ret < 0) + return; +#endif + ret = csi_efuse_get_boot_index(&index); + if (ret < 0) + return; + + printf("\nboot index = %d\n", index); +} + +void csi_efuse_boot_offset_test() +{ + int ret; + unsigned int offset = 56; +#if 1 + ret = csi_efuse_set_boot_offset(offset); + if (ret < 0) + return; +#endif + ret = csi_efuse_get_boot_offset(&offset); + if (ret < 0) + return; + + printf("\noffset = 0x%x\n", offset); +} + +void csi_efuse_user_dbg_mode_test() +{ + int ret; + + efuse_dbg_type_t type = USR_CHIP_DBG; + efuse_dbg_mode_t mode = DBG_MODE_PWD_PROTECT; + + ret = csi_efuse_set_user_dbg_mode(type, mode); + if (ret < 0) + return; + + ret = csi_efuse_get_user_dbg_mode(type, &mode); + if (ret < 0) + return; + + if (mode != DBG_MODE_ENABLE && mode != DBG_MODE_PWD_PROTECT && + mode != DBG_MODE_DISABLE) { + printf("invalid debug mode in efuse\n"); + return; + } + + printf("\ndebug mode:%d\n", mode); +} + +void efuse_chip_id_get_test() +{ + int ret; + unsigned char uid[20] = {}; +#if 0 + ret = csi_efuse_write(0x50, &rw_uid, sizeof(unsigned int)); + if (ret < 0) + return; +#endif + ret = csi_efuse_get_chipid(&uid); + if (ret < 0) + printf("failed to read uid\n"); + + printf("\nuid: "); + + for (int i = 0; i < 20; i++) + printf("%x", uid[i]); + + printf("\n"); +} + +void csi_efuse_update_lc_rma_test() +{ + csi_efuse_update_lc_rma(); +} + +void csi_efuse_update_lc_rip_test() +{ + csi_efuse_update_lc_rip(); +} + +void csi_efuse_gmac_macaddr_test() +{ + int ret; + unsigned char mac0[6] = {0x00, 0x22, 0x33, 0x44, 0x55, 0x00}; + unsigned char mac1[6] = {0x00, 0x22, 0x33, 0x44, 0x66, 0x00}; + unsigned char r_mac0[6] = {}; + unsigned char r_mac1[6] = {}; + + ret = csi_efuse_set_gmac_macaddr(0, mac0); + if (ret < 0) + return; + ret = csi_efuse_get_gmac_macaddr(0, r_mac0); + if (ret < 0) + return; + printf("gmac mac0 address: %2x:%2x:%2x:%2x:%2x:%2x\n", r_mac0[0], r_mac0[1], r_mac0[2], r_mac0[3], r_mac0[4], r_mac0[5]); + + ret = csi_efuse_set_gmac_macaddr(1, mac1); + if (ret < 0) + return; + ret = csi_efuse_get_gmac_macaddr(1, r_mac1); + if (ret < 0) + return; + printf("gmac mac0 address: %2x:%2x:%2x:%2x:%2x:%2x\n", r_mac1[0], r_mac1[1], r_mac1[2], r_mac1[3], r_mac1[4], r_mac1[5]); +} + +int main() +{ +#if 0 + csi_efuse_bl4_img_encrypt_test(); + csi_efuse_bl2_img_encrypt_test(); + csi_efuse_bl3_img_encrypt_test(); + csi_efuse_get_bl1_version_test(); + csi_efuse_get_hash_challenge_test(); + csi_efuse_get_secure_boot_st_test(); +#endif + csi_efuse_offset_test(); +#if 0 + csi_efuse_usr_brom_cct_test(); + csi_efuse_usr_brom_usb_fastboot_test(); + csi_efuse_boot_index_test(); + csi_efuse_boot_offset_test(); + efuse_chip_id_get_test(); + csi_efuse_get_bl1_version_test(); + csi_efuse_get_bl2_version_test(); + csi_efuse_get_secure_boot_st_test(); + csi_efuse_get_hash_challenge_test(); + csi_efuse_userdata_group_test(); +#endif + +#if 0 + efuse_chip_id_get_test(); + csi_efuse_user_dbg_mode_test(); + csi_efuse_boot_offset_test(); + csi_efuse_boot_index_test(); + csi_efuse_bak_boot_offset_test(); + csi_efuse_bak_boot_index_test(); + csi_efuse_usr_brom_usb_fastboot_test(); +#endif + +#if 0 + csi_efuse_usr_brom_cct_test(); + printf("welcome to riscv world!!!\n"); + + csi_efuse_bl2_img_encrypt_test(); + csi_efuse_bl3_img_encrypt_test(); + csi_efuse_bl4_img_encrypt_test(); + csi_efuse_get_bl1_version_test(); + csi_efuse_get_bl2_version_test(); + csi_efuse_get_secure_boot_st_test(); + csi_efuse_get_hash_challenge_test(); + csi_efuse_userdata_group_test(); + csi_efuse_offset_test(); +#endif + +#if 0 + csi_efuse_update_lc_rma_test(); + csi_efuse_update_lc_rip_test(); +#endif +#if 0 + csi_efuse_gmac_macaddr_test(); +#endif + return 0; +} diff --git a/efuse-hal-lib/test/efuse_demo/light-efuse-test.o b/efuse-hal-lib/test/efuse_demo/light-efuse-test.o new file mode 100644 index 0000000000000000000000000000000000000000..ae07ac8eb5defcd7e32001da875e459f373593ae GIT binary patch literal 20904 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 literal 0 HcmV?d00001 diff --git a/efuse-hal-lib/test/output/efuse_demo b/efuse-hal-lib/test/output/efuse_demo new file mode 100755 index 0000000000000000000000000000000000000000..fb47c5edb3286b653b19fe605018454b083c0b5e GIT binary patch literal 23184 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 + * All rights reserved. + * + * 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. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE PROJECT 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 PROJECT 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 + +#include "hmac_sha2.h" + +/* HMAC-SHA-224 functions */ + +void hmac_sha224_init(hmac_sha224_ctx *ctx, const unsigned char *key, + unsigned int key_size) +{ + unsigned int fill; + unsigned int num; + + const unsigned char *key_used; + unsigned char key_temp[SHA224_DIGEST_SIZE]; + int i; + + if (key_size == SHA224_BLOCK_SIZE) { + key_used = key; + num = SHA224_BLOCK_SIZE; + } else { + if (key_size > SHA224_BLOCK_SIZE){ + num = SHA224_DIGEST_SIZE; + sha224(key, key_size, key_temp); + key_used = key_temp; + } else { /* key_size > SHA224_BLOCK_SIZE */ + key_used = key; + num = key_size; + } + fill = SHA224_BLOCK_SIZE - num; + + memset(ctx->block_ipad + num, 0x36, fill); + memset(ctx->block_opad + num, 0x5c, fill); + } + + for (i = 0; i < (int) num; i++) { + ctx->block_ipad[i] = key_used[i] ^ 0x36; + ctx->block_opad[i] = key_used[i] ^ 0x5c; + } + + sha224_init(&ctx->ctx_inside); + sha224_update(&ctx->ctx_inside, ctx->block_ipad, SHA224_BLOCK_SIZE); + + sha224_init(&ctx->ctx_outside); + sha224_update(&ctx->ctx_outside, ctx->block_opad, + SHA224_BLOCK_SIZE); + + /* for hmac_reinit */ + memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside, + sizeof(sha224_ctx)); + memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside, + sizeof(sha224_ctx)); +} + +void hmac_sha224_reinit(hmac_sha224_ctx *ctx) +{ + memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit, + sizeof(sha224_ctx)); + memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit, + sizeof(sha224_ctx)); +} + +void hmac_sha224_update(hmac_sha224_ctx *ctx, const unsigned char *message, + unsigned int message_len) +{ + sha224_update(&ctx->ctx_inside, message, message_len); +} + +void hmac_sha224_final(hmac_sha224_ctx *ctx, unsigned char *mac, + unsigned int mac_size) +{ + unsigned char digest_inside[SHA224_DIGEST_SIZE]; + unsigned char mac_temp[SHA224_DIGEST_SIZE]; + + sha224_final(&ctx->ctx_inside, digest_inside); + sha224_update(&ctx->ctx_outside, digest_inside, SHA224_DIGEST_SIZE); + sha224_final(&ctx->ctx_outside, mac_temp); + memcpy(mac, mac_temp, mac_size); +} + +void hmac_sha224(const unsigned char *key, unsigned int key_size, + const unsigned char *message, unsigned int message_len, + unsigned char *mac, unsigned mac_size) +{ + hmac_sha224_ctx ctx; + + hmac_sha224_init(&ctx, key, key_size); + hmac_sha224_update(&ctx, message, message_len); + hmac_sha224_final(&ctx, mac, mac_size); +} + +/* HMAC-SHA-256 functions */ + +void hmac_sha256_init(hmac_sha256_ctx *ctx, const unsigned char *key, + unsigned int key_size) +{ + unsigned int fill; + unsigned int num; + + const unsigned char *key_used; + unsigned char key_temp[SHA256_DIGEST_SIZE]; + int i; + + if (key_size == SHA256_BLOCK_SIZE) { + key_used = key; + num = SHA256_BLOCK_SIZE; + } else { + if (key_size > SHA256_BLOCK_SIZE){ + num = SHA256_DIGEST_SIZE; + sha256(key, key_size, key_temp); + key_used = key_temp; + } else { /* key_size > SHA256_BLOCK_SIZE */ + key_used = key; + num = key_size; + } + fill = SHA256_BLOCK_SIZE - num; + + memset(ctx->block_ipad + num, 0x36, fill); + memset(ctx->block_opad + num, 0x5c, fill); + } + + for (i = 0; i < (int) num; i++) { + ctx->block_ipad[i] = key_used[i] ^ 0x36; + ctx->block_opad[i] = key_used[i] ^ 0x5c; + } + + sha256_init(&ctx->ctx_inside); + sha256_update(&ctx->ctx_inside, ctx->block_ipad, SHA256_BLOCK_SIZE); + + sha256_init(&ctx->ctx_outside); + sha256_update(&ctx->ctx_outside, ctx->block_opad, + SHA256_BLOCK_SIZE); + + /* for hmac_reinit */ + memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside, + sizeof(sha256_ctx)); + memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside, + sizeof(sha256_ctx)); +} + +void hmac_sha256_reinit(hmac_sha256_ctx *ctx) +{ + memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit, + sizeof(sha256_ctx)); + memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit, + sizeof(sha256_ctx)); +} + +void hmac_sha256_update(hmac_sha256_ctx *ctx, const unsigned char *message, + unsigned int message_len) +{ + sha256_update(&ctx->ctx_inside, message, message_len); +} + +void hmac_sha256_final(hmac_sha256_ctx *ctx, unsigned char *mac, + unsigned int mac_size) +{ + unsigned char digest_inside[SHA256_DIGEST_SIZE]; + unsigned char mac_temp[SHA256_DIGEST_SIZE]; + + sha256_final(&ctx->ctx_inside, digest_inside); + sha256_update(&ctx->ctx_outside, digest_inside, SHA256_DIGEST_SIZE); + sha256_final(&ctx->ctx_outside, mac_temp); + memcpy(mac, mac_temp, mac_size); +} + +void hmac_sha256(const unsigned char *key, unsigned int key_size, + const unsigned char *message, unsigned int message_len, + unsigned char *mac, unsigned mac_size) +{ + hmac_sha256_ctx ctx; + + hmac_sha256_init(&ctx, key, key_size); + hmac_sha256_update(&ctx, message, message_len); + hmac_sha256_final(&ctx, mac, mac_size); +} + +/* HMAC-SHA-384 functions */ + +void hmac_sha384_init(hmac_sha384_ctx *ctx, const unsigned char *key, + unsigned int key_size) +{ + unsigned int fill; + unsigned int num; + + const unsigned char *key_used; + unsigned char key_temp[SHA384_DIGEST_SIZE]; + int i; + + if (key_size == SHA384_BLOCK_SIZE) { + key_used = key; + num = SHA384_BLOCK_SIZE; + } else { + if (key_size > SHA384_BLOCK_SIZE){ + num = SHA384_DIGEST_SIZE; + sha384(key, key_size, key_temp); + key_used = key_temp; + } else { /* key_size > SHA384_BLOCK_SIZE */ + key_used = key; + num = key_size; + } + fill = SHA384_BLOCK_SIZE - num; + + memset(ctx->block_ipad + num, 0x36, fill); + memset(ctx->block_opad + num, 0x5c, fill); + } + + for (i = 0; i < (int) num; i++) { + ctx->block_ipad[i] = key_used[i] ^ 0x36; + ctx->block_opad[i] = key_used[i] ^ 0x5c; + } + + sha384_init(&ctx->ctx_inside); + sha384_update(&ctx->ctx_inside, ctx->block_ipad, SHA384_BLOCK_SIZE); + + sha384_init(&ctx->ctx_outside); + sha384_update(&ctx->ctx_outside, ctx->block_opad, + SHA384_BLOCK_SIZE); + + /* for hmac_reinit */ + memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside, + sizeof(sha384_ctx)); + memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside, + sizeof(sha384_ctx)); +} + +void hmac_sha384_reinit(hmac_sha384_ctx *ctx) +{ + memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit, + sizeof(sha384_ctx)); + memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit, + sizeof(sha384_ctx)); +} + +void hmac_sha384_update(hmac_sha384_ctx *ctx, const unsigned char *message, + unsigned int message_len) +{ + sha384_update(&ctx->ctx_inside, message, message_len); +} + +void hmac_sha384_final(hmac_sha384_ctx *ctx, unsigned char *mac, + unsigned int mac_size) +{ + unsigned char digest_inside[SHA384_DIGEST_SIZE]; + unsigned char mac_temp[SHA384_DIGEST_SIZE]; + + sha384_final(&ctx->ctx_inside, digest_inside); + sha384_update(&ctx->ctx_outside, digest_inside, SHA384_DIGEST_SIZE); + sha384_final(&ctx->ctx_outside, mac_temp); + memcpy(mac, mac_temp, mac_size); +} + +void hmac_sha384(const unsigned char *key, unsigned int key_size, + const unsigned char *message, unsigned int message_len, + unsigned char *mac, unsigned mac_size) +{ + hmac_sha384_ctx ctx; + + hmac_sha384_init(&ctx, key, key_size); + hmac_sha384_update(&ctx, message, message_len); + hmac_sha384_final(&ctx, mac, mac_size); +} + +/* HMAC-SHA-512 functions */ + +void hmac_sha512_init(hmac_sha512_ctx *ctx, const unsigned char *key, + unsigned int key_size) +{ + unsigned int fill; + unsigned int num; + + const unsigned char *key_used; + unsigned char key_temp[SHA512_DIGEST_SIZE]; + int i; + + if (key_size == SHA512_BLOCK_SIZE) { + key_used = key; + num = SHA512_BLOCK_SIZE; + } else { + if (key_size > SHA512_BLOCK_SIZE){ + num = SHA512_DIGEST_SIZE; + sha512(key, key_size, key_temp); + key_used = key_temp; + } else { /* key_size > SHA512_BLOCK_SIZE */ + key_used = key; + num = key_size; + } + fill = SHA512_BLOCK_SIZE - num; + + memset(ctx->block_ipad + num, 0x36, fill); + memset(ctx->block_opad + num, 0x5c, fill); + } + + for (i = 0; i < (int) num; i++) { + ctx->block_ipad[i] = key_used[i] ^ 0x36; + ctx->block_opad[i] = key_used[i] ^ 0x5c; + } + + sha512_init(&ctx->ctx_inside); + sha512_update(&ctx->ctx_inside, ctx->block_ipad, SHA512_BLOCK_SIZE); + + sha512_init(&ctx->ctx_outside); + sha512_update(&ctx->ctx_outside, ctx->block_opad, + SHA512_BLOCK_SIZE); + + /* for hmac_reinit */ + memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside, + sizeof(sha512_ctx)); + memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside, + sizeof(sha512_ctx)); +} + +void hmac_sha512_reinit(hmac_sha512_ctx *ctx) +{ + memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit, + sizeof(sha512_ctx)); + memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit, + sizeof(sha512_ctx)); +} + +void hmac_sha512_update(hmac_sha512_ctx *ctx, const unsigned char *message, + unsigned int message_len) +{ + sha512_update(&ctx->ctx_inside, message, message_len); +} + +void hmac_sha512_final(hmac_sha512_ctx *ctx, unsigned char *mac, + unsigned int mac_size) +{ + unsigned char digest_inside[SHA512_DIGEST_SIZE]; + unsigned char mac_temp[SHA512_DIGEST_SIZE]; + + sha512_final(&ctx->ctx_inside, digest_inside); + sha512_update(&ctx->ctx_outside, digest_inside, SHA512_DIGEST_SIZE); + sha512_final(&ctx->ctx_outside, mac_temp); + memcpy(mac, mac_temp, mac_size); +} + +void hmac_sha512(const unsigned char *key, unsigned int key_size, + const unsigned char *message, unsigned int message_len, + unsigned char *mac, unsigned mac_size) +{ + hmac_sha512_ctx ctx; + + hmac_sha512_init(&ctx, key, key_size); + hmac_sha512_update(&ctx, message, message_len); + hmac_sha512_final(&ctx, mac, mac_size); +} + +#ifdef TEST_VECTORS + +/* IETF Validation tests */ + +#include +#include + +void test(const char *vector, unsigned char *digest, + unsigned int digest_size) +{ + char output[2 * SHA512_DIGEST_SIZE + 1]; + int i; + + output[2 * digest_size] = '\0'; + + for (i = 0; i < (int) digest_size ; i++) { + sprintf(output + 2*i, "%02x", digest[i]); + } + + printf("H: %s\n", output); + if (strcmp(vector, output)) { + fprintf(stderr, "Test failed.\n"); + exit(1); + } +} + +int main(void) +{ + static const char *vectors[] = + { + /* HMAC-SHA-224 */ + "896fb1128abbdf196832107cd49df33f47b4b1169912ba4f53684b22", + "a30e01098bc6dbbf45690f3a7e9e6d0f8bbea2a39e6148008fd05e44", + "7fb3cb3588c6c1f6ffa9694d7d6ad2649365b0c1f65d69d1ec8333ea", + "6c11506874013cac6a2abc1bb382627cec6a90d86efc012de7afec5a", + "0e2aea68a90c8d37c988bcdb9fca6fa8", + "95e9a0db962095adaebe9b2d6f0dbce2d499f112f2d2b7273fa6870e", + "3a854166ac5d9f023f54d517d0b39dbd946770db9c2b95c9f6f565d1", + /* HMAC-SHA-256 */ + "b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7", + "5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843", + "773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe", + "82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b", + "a3b6167473100ee06e0c796c2955552b", + "60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54", + "9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2", + /* HMAC-SHA-384 */ + "afd03944d84895626b0825f4ab46907f15f9dadbe4101ec682aa034c7cebc59c" + "faea9ea9076ede7f4af152e8b2fa9cb6", + "af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e" + "8e2240ca5e69e2c78b3239ecfab21649", + "88062608d3e6ad8a0aa2ace014c8a86f0aa635d947ac9febe83ef4e55966144b" + "2a5ab39dc13814b94e3ab6e101a34f27", + "3e8a69b7783c25851933ab6290af6ca77a9981480850009cc5577c6e1f573b4e" + "6801dd23c4a7d679ccf8a386c674cffb", + "3abf34c3503b2a23a46efc619baef897", + "4ece084485813e9088d2c63a041bc5b44f9ef1012a2b588f3cd11f05033ac4c6" + "0c2ef6ab4030fe8296248df163f44952", + "6617178e941f020d351e2f254e8fd32c602420feb0b8fb9adccebb82461e99c5" + "a678cc31e799176d3860e6110c46523e", + /* HMAC-SHA-512 */ + "87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cde" + "daa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854", + "164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea250554" + "9758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737", + "fa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39" + "bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fb", + "b0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3db" + "a91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dd", + "415fad6271580a531d4179bc891d87a6", + "80b24263c7c1a3ebb71493c1dd7be8b49b46d1f41b4aeec1121b013783f8f352" + "6b56d037e05f2598bd0fd2215d6a1e5295e64f73f63f0aec8b915a985d786598", + "e37b6a775dc87dbaa4dfa9f96e5e3ffddebd71f8867289865df5a32d20cdc944" + "b6022cac3c4982b10d5eeb55c3e4de15134676fb6de0446065c97440fa8c6a58" + }; + + static char *messages[] = + { + "Hi There", + "what do ya want for nothing?", + NULL, + NULL, + "Test With Truncation", + "Test Using Larger Than Block-Size Key - Hash Key First", + "This is a test using a larger than block-size key " + "and a larger than block-size data. The key needs" + " to be hashed before being used by the HMAC algorithm." + }; + + unsigned char mac[SHA512_DIGEST_SIZE]; + unsigned char *keys[7]; + unsigned int keys_len[7] = {20, 4, 20, 25, 20, 131, 131}; + unsigned int messages2and3_len = 50; + unsigned int mac_224_size, mac_256_size, mac_384_size, mac_512_size; + int i; + + for (i = 0; i < 7; i++) { + keys[i] = malloc(keys_len[i]); + if (keys[i] == NULL) { + fprintf(stderr, "Can't allocate memory\n"); + return 1; + } + } + + memset(keys[0], 0x0b, keys_len[0]); + strcpy((char *) keys[1], "Jefe"); + memset(keys[2], 0xaa, keys_len[2]); + for (i = 0; i < (int) keys_len[3]; i++) + keys[3][i] = (unsigned char) i + 1; + memset(keys[4], 0x0c, keys_len[4]); + memset(keys[5], 0xaa, keys_len[5]); + memset(keys[6], 0xaa, keys_len[6]); + + messages[2] = malloc(messages2and3_len + 1); + messages[3] = malloc(messages2and3_len + 1); + + if (messages[2] == NULL || messages[3] == NULL) { + fprintf(stderr, "Can't allocate memory\n"); + return 1; + } + + messages[2][messages2and3_len] = '\0'; + messages[3][messages2and3_len] = '\0'; + + memset(messages[2], 0xdd, messages2and3_len); + memset(messages[3], 0xcd, messages2and3_len); + + printf("HMAC-SHA-2 IETF Validation tests\n\n"); + + for (i = 0; i < 7; i++) { + if (i != 4) { + mac_224_size = SHA224_DIGEST_SIZE; + mac_256_size = SHA256_DIGEST_SIZE; + mac_384_size = SHA384_DIGEST_SIZE; + mac_512_size = SHA512_DIGEST_SIZE; + } else { + mac_224_size = 128 / 8; mac_256_size = 128 / 8; + mac_384_size = 128 / 8; mac_512_size = 128 / 8; + } + + printf("Test %d:\n", i + 1); + + hmac_sha224(keys[i], keys_len[i], (unsigned char *) messages[i], + strlen(messages[i]), mac, mac_224_size); + test(vectors[i], mac, mac_224_size); + hmac_sha256(keys[i], keys_len[i], (unsigned char *) messages[i], + strlen(messages[i]), mac, mac_256_size); + test(vectors[7 + i], mac, mac_256_size); + hmac_sha384(keys[i], keys_len[i], (unsigned char *) messages[i], + strlen(messages[i]), mac, mac_384_size); + test(vectors[14 + i], mac, mac_384_size); + hmac_sha512(keys[i], keys_len[i], (unsigned char *) messages[i], + strlen(messages[i]), mac, mac_512_size); + test(vectors[21 + i], mac, mac_512_size); + } + + printf("All tests passed.\n"); + + return 0; +} + +#endif /* TEST_VECTORS */ + diff --git a/emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/hmac_sha2.h b/emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/hmac_sha2.h new file mode 100644 index 0000000..d1940cb --- /dev/null +++ b/emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/hmac_sha2.h @@ -0,0 +1,144 @@ +/* + * HMAC-SHA-224/256/384/512 implementation + * Last update: 06/15/2005 + * Issue date: 06/15/2005 + * + * Since this code has been incorporated into a GPLv2 project, it is + * distributed under GPLv2 inside mmc-utils. The original BSD license + * that the code was released under is included below for clarity. + * + * Copyright (C) 2005 Olivier Gay + * All rights reserved. + * + * 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. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE PROJECT 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 PROJECT 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. + */ + +#ifndef HMAC_SHA2_H +#define HMAC_SHA2_H + +#include "sha2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + sha224_ctx ctx_inside; + sha224_ctx ctx_outside; + + /* for hmac_reinit */ + sha224_ctx ctx_inside_reinit; + sha224_ctx ctx_outside_reinit; + + unsigned char block_ipad[SHA224_BLOCK_SIZE]; + unsigned char block_opad[SHA224_BLOCK_SIZE]; +} hmac_sha224_ctx; + +typedef struct { + sha256_ctx ctx_inside; + sha256_ctx ctx_outside; + + /* for hmac_reinit */ + sha256_ctx ctx_inside_reinit; + sha256_ctx ctx_outside_reinit; + + unsigned char block_ipad[SHA256_BLOCK_SIZE]; + unsigned char block_opad[SHA256_BLOCK_SIZE]; +} hmac_sha256_ctx; + +typedef struct { + sha384_ctx ctx_inside; + sha384_ctx ctx_outside; + + /* for hmac_reinit */ + sha384_ctx ctx_inside_reinit; + sha384_ctx ctx_outside_reinit; + + unsigned char block_ipad[SHA384_BLOCK_SIZE]; + unsigned char block_opad[SHA384_BLOCK_SIZE]; +} hmac_sha384_ctx; + +typedef struct { + sha512_ctx ctx_inside; + sha512_ctx ctx_outside; + + /* for hmac_reinit */ + sha512_ctx ctx_inside_reinit; + sha512_ctx ctx_outside_reinit; + + unsigned char block_ipad[SHA512_BLOCK_SIZE]; + unsigned char block_opad[SHA512_BLOCK_SIZE]; +} hmac_sha512_ctx; + +void hmac_sha224_init(hmac_sha224_ctx *ctx, const unsigned char *key, + unsigned int key_size); +void hmac_sha224_reinit(hmac_sha224_ctx *ctx); +void hmac_sha224_update(hmac_sha224_ctx *ctx, const unsigned char *message, + unsigned int message_len); +void hmac_sha224_final(hmac_sha224_ctx *ctx, unsigned char *mac, + unsigned int mac_size); +void hmac_sha224(const unsigned char *key, unsigned int key_size, + const unsigned char *message, unsigned int message_len, + unsigned char *mac, unsigned mac_size); + +void hmac_sha256_init(hmac_sha256_ctx *ctx, const unsigned char *key, + unsigned int key_size); +void hmac_sha256_reinit(hmac_sha256_ctx *ctx); +void hmac_sha256_update(hmac_sha256_ctx *ctx, const unsigned char *message, + unsigned int message_len); +void hmac_sha256_final(hmac_sha256_ctx *ctx, unsigned char *mac, + unsigned int mac_size); +void hmac_sha256(const unsigned char *key, unsigned int key_size, + const unsigned char *message, unsigned int message_len, + unsigned char *mac, unsigned mac_size); + +void hmac_sha384_init(hmac_sha384_ctx *ctx, const unsigned char *key, + unsigned int key_size); +void hmac_sha384_reinit(hmac_sha384_ctx *ctx); +void hmac_sha384_update(hmac_sha384_ctx *ctx, const unsigned char *message, + unsigned int message_len); +void hmac_sha384_final(hmac_sha384_ctx *ctx, unsigned char *mac, + unsigned int mac_size); +void hmac_sha384(const unsigned char *key, unsigned int key_size, + const unsigned char *message, unsigned int message_len, + unsigned char *mac, unsigned mac_size); + +void hmac_sha512_init(hmac_sha512_ctx *ctx, const unsigned char *key, + unsigned int key_size); +void hmac_sha512_reinit(hmac_sha512_ctx *ctx); +void hmac_sha512_update(hmac_sha512_ctx *ctx, const unsigned char *message, + unsigned int message_len); +void hmac_sha512_final(hmac_sha512_ctx *ctx, unsigned char *mac, + unsigned int mac_size); +void hmac_sha512(const unsigned char *key, unsigned int key_size, + const unsigned char *message, unsigned int message_len, + unsigned char *mac, unsigned mac_size); + +#ifdef __cplusplus +} +#endif + +#endif /* !HMAC_SHA2_H */ + diff --git a/emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/sha2.c b/emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/sha2.c new file mode 100644 index 0000000..337b414 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/sha2.c @@ -0,0 +1,953 @@ +/* + * FIPS 180-2 SHA-224/256/384/512 implementation + * Last update: 02/02/2007 + * Issue date: 04/30/2005 + * + * Since this code has been incorporated into a GPLv2 project, it is + * distributed under GPLv2 inside mmc-utils. The original BSD license + * that the code was released under is included below for clarity. + * + * Copyright (C) 2005, 2007 Olivier Gay + * All rights reserved. + * + * 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. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE PROJECT 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 PROJECT 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. + */ + +#if 0 +#define UNROLL_LOOPS /* Enable loops unrolling */ +#endif + +#include + +#include "sha2.h" + +#define SHFR(x, n) (x >> n) +#define ROTR(x, n) ((x >> n) | (x << ((sizeof(x) << 3) - n))) +#define ROTL(x, n) ((x << n) | (x >> ((sizeof(x) << 3) - n))) +#define CH(x, y, z) ((x & y) ^ (~x & z)) +#define MAJ(x, y, z) ((x & y) ^ (x & z) ^ (y & z)) + +#define SHA256_F1(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22)) +#define SHA256_F2(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25)) +#define SHA256_F3(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SHFR(x, 3)) +#define SHA256_F4(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHFR(x, 10)) + +#define SHA512_F1(x) (ROTR(x, 28) ^ ROTR(x, 34) ^ ROTR(x, 39)) +#define SHA512_F2(x) (ROTR(x, 14) ^ ROTR(x, 18) ^ ROTR(x, 41)) +#define SHA512_F3(x) (ROTR(x, 1) ^ ROTR(x, 8) ^ SHFR(x, 7)) +#define SHA512_F4(x) (ROTR(x, 19) ^ ROTR(x, 61) ^ SHFR(x, 6)) + +#define UNPACK32(x, str) \ +{ \ + *((str) + 3) = (uint8) ((x) ); \ + *((str) + 2) = (uint8) ((x) >> 8); \ + *((str) + 1) = (uint8) ((x) >> 16); \ + *((str) + 0) = (uint8) ((x) >> 24); \ +} + +#define PACK32(str, x) \ +{ \ + *(x) = ((uint32) *((str) + 3) ) \ + | ((uint32) *((str) + 2) << 8) \ + | ((uint32) *((str) + 1) << 16) \ + | ((uint32) *((str) + 0) << 24); \ +} + +#define UNPACK64(x, str) \ +{ \ + *((str) + 7) = (uint8) ((x) ); \ + *((str) + 6) = (uint8) ((x) >> 8); \ + *((str) + 5) = (uint8) ((x) >> 16); \ + *((str) + 4) = (uint8) ((x) >> 24); \ + *((str) + 3) = (uint8) ((x) >> 32); \ + *((str) + 2) = (uint8) ((x) >> 40); \ + *((str) + 1) = (uint8) ((x) >> 48); \ + *((str) + 0) = (uint8) ((x) >> 56); \ +} + +#define PACK64(str, x) \ +{ \ + *(x) = ((uint64) *((str) + 7) ) \ + | ((uint64) *((str) + 6) << 8) \ + | ((uint64) *((str) + 5) << 16) \ + | ((uint64) *((str) + 4) << 24) \ + | ((uint64) *((str) + 3) << 32) \ + | ((uint64) *((str) + 2) << 40) \ + | ((uint64) *((str) + 1) << 48) \ + | ((uint64) *((str) + 0) << 56); \ +} + +/* Macros used for loops unrolling */ + +#define SHA256_SCR(i) \ +{ \ + w[i] = SHA256_F4(w[i - 2]) + w[i - 7] \ + + SHA256_F3(w[i - 15]) + w[i - 16]; \ +} + +#define SHA512_SCR(i) \ +{ \ + w[i] = SHA512_F4(w[i - 2]) + w[i - 7] \ + + SHA512_F3(w[i - 15]) + w[i - 16]; \ +} + +#define SHA256_EXP(a, b, c, d, e, f, g, h, j) \ +{ \ + t1 = wv[h] + SHA256_F2(wv[e]) + CH(wv[e], wv[f], wv[g]) \ + + sha256_k[j] + w[j]; \ + t2 = SHA256_F1(wv[a]) + MAJ(wv[a], wv[b], wv[c]); \ + wv[d] += t1; \ + wv[h] = t1 + t2; \ +} + +#define SHA512_EXP(a, b, c, d, e, f, g ,h, j) \ +{ \ + t1 = wv[h] + SHA512_F2(wv[e]) + CH(wv[e], wv[f], wv[g]) \ + + sha512_k[j] + w[j]; \ + t2 = SHA512_F1(wv[a]) + MAJ(wv[a], wv[b], wv[c]); \ + wv[d] += t1; \ + wv[h] = t1 + t2; \ +} + +uint32 sha224_h0[8] = + {0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, + 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4}; + +uint32 sha256_h0[8] = + {0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, + 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19}; + +uint64 sha384_h0[8] = + {0xcbbb9d5dc1059ed8ULL, 0x629a292a367cd507ULL, + 0x9159015a3070dd17ULL, 0x152fecd8f70e5939ULL, + 0x67332667ffc00b31ULL, 0x8eb44a8768581511ULL, + 0xdb0c2e0d64f98fa7ULL, 0x47b5481dbefa4fa4ULL}; + +uint64 sha512_h0[8] = + {0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, + 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, + 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, + 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL}; + +uint32 sha256_k[64] = + {0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2}; + +uint64 sha512_k[80] = + {0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, + 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL, + 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL, + 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL, + 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL, + 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL, + 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL, + 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL, + 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL, + 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL, + 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL, + 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL, + 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL, + 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL, + 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL, + 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL, + 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL, + 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL, + 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL, + 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL, + 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL, + 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL, + 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL, + 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL, + 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL, + 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL, + 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL, + 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL, + 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL, + 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL, + 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL, + 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL, + 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL, + 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL, + 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL, + 0x113f9804bef90daeULL, 0x1b710b35131c471bULL, + 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL, + 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL, + 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL, + 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL}; + +/* SHA-256 functions */ + +void sha256_transf(sha256_ctx *ctx, const unsigned char *message, + unsigned int block_nb) +{ + uint32 w[64]; + uint32 wv[8]; + uint32 t1, t2; + const unsigned char *sub_block; + int i; + +#ifndef UNROLL_LOOPS + int j; +#endif + + for (i = 0; i < (int) block_nb; i++) { + sub_block = message + (i << 6); + +#ifndef UNROLL_LOOPS + for (j = 0; j < 16; j++) { + PACK32(&sub_block[j << 2], &w[j]); + } + + for (j = 16; j < 64; j++) { + SHA256_SCR(j); + } + + for (j = 0; j < 8; j++) { + wv[j] = ctx->h[j]; + } + + for (j = 0; j < 64; j++) { + t1 = wv[7] + SHA256_F2(wv[4]) + CH(wv[4], wv[5], wv[6]) + + sha256_k[j] + w[j]; + t2 = SHA256_F1(wv[0]) + MAJ(wv[0], wv[1], wv[2]); + wv[7] = wv[6]; + wv[6] = wv[5]; + wv[5] = wv[4]; + wv[4] = wv[3] + t1; + wv[3] = wv[2]; + wv[2] = wv[1]; + wv[1] = wv[0]; + wv[0] = t1 + t2; + } + + for (j = 0; j < 8; j++) { + ctx->h[j] += wv[j]; + } +#else + PACK32(&sub_block[ 0], &w[ 0]); PACK32(&sub_block[ 4], &w[ 1]); + PACK32(&sub_block[ 8], &w[ 2]); PACK32(&sub_block[12], &w[ 3]); + PACK32(&sub_block[16], &w[ 4]); PACK32(&sub_block[20], &w[ 5]); + PACK32(&sub_block[24], &w[ 6]); PACK32(&sub_block[28], &w[ 7]); + PACK32(&sub_block[32], &w[ 8]); PACK32(&sub_block[36], &w[ 9]); + PACK32(&sub_block[40], &w[10]); PACK32(&sub_block[44], &w[11]); + PACK32(&sub_block[48], &w[12]); PACK32(&sub_block[52], &w[13]); + PACK32(&sub_block[56], &w[14]); PACK32(&sub_block[60], &w[15]); + + SHA256_SCR(16); SHA256_SCR(17); SHA256_SCR(18); SHA256_SCR(19); + SHA256_SCR(20); SHA256_SCR(21); SHA256_SCR(22); SHA256_SCR(23); + SHA256_SCR(24); SHA256_SCR(25); SHA256_SCR(26); SHA256_SCR(27); + SHA256_SCR(28); SHA256_SCR(29); SHA256_SCR(30); SHA256_SCR(31); + SHA256_SCR(32); SHA256_SCR(33); SHA256_SCR(34); SHA256_SCR(35); + SHA256_SCR(36); SHA256_SCR(37); SHA256_SCR(38); SHA256_SCR(39); + SHA256_SCR(40); SHA256_SCR(41); SHA256_SCR(42); SHA256_SCR(43); + SHA256_SCR(44); SHA256_SCR(45); SHA256_SCR(46); SHA256_SCR(47); + SHA256_SCR(48); SHA256_SCR(49); SHA256_SCR(50); SHA256_SCR(51); + SHA256_SCR(52); SHA256_SCR(53); SHA256_SCR(54); SHA256_SCR(55); + SHA256_SCR(56); SHA256_SCR(57); SHA256_SCR(58); SHA256_SCR(59); + SHA256_SCR(60); SHA256_SCR(61); SHA256_SCR(62); SHA256_SCR(63); + + wv[0] = ctx->h[0]; wv[1] = ctx->h[1]; + wv[2] = ctx->h[2]; wv[3] = ctx->h[3]; + wv[4] = ctx->h[4]; wv[5] = ctx->h[5]; + wv[6] = ctx->h[6]; wv[7] = ctx->h[7]; + + SHA256_EXP(0,1,2,3,4,5,6,7, 0); SHA256_EXP(7,0,1,2,3,4,5,6, 1); + SHA256_EXP(6,7,0,1,2,3,4,5, 2); SHA256_EXP(5,6,7,0,1,2,3,4, 3); + SHA256_EXP(4,5,6,7,0,1,2,3, 4); SHA256_EXP(3,4,5,6,7,0,1,2, 5); + SHA256_EXP(2,3,4,5,6,7,0,1, 6); SHA256_EXP(1,2,3,4,5,6,7,0, 7); + SHA256_EXP(0,1,2,3,4,5,6,7, 8); SHA256_EXP(7,0,1,2,3,4,5,6, 9); + SHA256_EXP(6,7,0,1,2,3,4,5,10); SHA256_EXP(5,6,7,0,1,2,3,4,11); + SHA256_EXP(4,5,6,7,0,1,2,3,12); SHA256_EXP(3,4,5,6,7,0,1,2,13); + SHA256_EXP(2,3,4,5,6,7,0,1,14); SHA256_EXP(1,2,3,4,5,6,7,0,15); + SHA256_EXP(0,1,2,3,4,5,6,7,16); SHA256_EXP(7,0,1,2,3,4,5,6,17); + SHA256_EXP(6,7,0,1,2,3,4,5,18); SHA256_EXP(5,6,7,0,1,2,3,4,19); + SHA256_EXP(4,5,6,7,0,1,2,3,20); SHA256_EXP(3,4,5,6,7,0,1,2,21); + SHA256_EXP(2,3,4,5,6,7,0,1,22); SHA256_EXP(1,2,3,4,5,6,7,0,23); + SHA256_EXP(0,1,2,3,4,5,6,7,24); SHA256_EXP(7,0,1,2,3,4,5,6,25); + SHA256_EXP(6,7,0,1,2,3,4,5,26); SHA256_EXP(5,6,7,0,1,2,3,4,27); + SHA256_EXP(4,5,6,7,0,1,2,3,28); SHA256_EXP(3,4,5,6,7,0,1,2,29); + SHA256_EXP(2,3,4,5,6,7,0,1,30); SHA256_EXP(1,2,3,4,5,6,7,0,31); + SHA256_EXP(0,1,2,3,4,5,6,7,32); SHA256_EXP(7,0,1,2,3,4,5,6,33); + SHA256_EXP(6,7,0,1,2,3,4,5,34); SHA256_EXP(5,6,7,0,1,2,3,4,35); + SHA256_EXP(4,5,6,7,0,1,2,3,36); SHA256_EXP(3,4,5,6,7,0,1,2,37); + SHA256_EXP(2,3,4,5,6,7,0,1,38); SHA256_EXP(1,2,3,4,5,6,7,0,39); + SHA256_EXP(0,1,2,3,4,5,6,7,40); SHA256_EXP(7,0,1,2,3,4,5,6,41); + SHA256_EXP(6,7,0,1,2,3,4,5,42); SHA256_EXP(5,6,7,0,1,2,3,4,43); + SHA256_EXP(4,5,6,7,0,1,2,3,44); SHA256_EXP(3,4,5,6,7,0,1,2,45); + SHA256_EXP(2,3,4,5,6,7,0,1,46); SHA256_EXP(1,2,3,4,5,6,7,0,47); + SHA256_EXP(0,1,2,3,4,5,6,7,48); SHA256_EXP(7,0,1,2,3,4,5,6,49); + SHA256_EXP(6,7,0,1,2,3,4,5,50); SHA256_EXP(5,6,7,0,1,2,3,4,51); + SHA256_EXP(4,5,6,7,0,1,2,3,52); SHA256_EXP(3,4,5,6,7,0,1,2,53); + SHA256_EXP(2,3,4,5,6,7,0,1,54); SHA256_EXP(1,2,3,4,5,6,7,0,55); + SHA256_EXP(0,1,2,3,4,5,6,7,56); SHA256_EXP(7,0,1,2,3,4,5,6,57); + SHA256_EXP(6,7,0,1,2,3,4,5,58); SHA256_EXP(5,6,7,0,1,2,3,4,59); + SHA256_EXP(4,5,6,7,0,1,2,3,60); SHA256_EXP(3,4,5,6,7,0,1,2,61); + SHA256_EXP(2,3,4,5,6,7,0,1,62); SHA256_EXP(1,2,3,4,5,6,7,0,63); + + ctx->h[0] += wv[0]; ctx->h[1] += wv[1]; + ctx->h[2] += wv[2]; ctx->h[3] += wv[3]; + ctx->h[4] += wv[4]; ctx->h[5] += wv[5]; + ctx->h[6] += wv[6]; ctx->h[7] += wv[7]; +#endif /* !UNROLL_LOOPS */ + } +} + +void sha256(const unsigned char *message, unsigned int len, unsigned char *digest) +{ + sha256_ctx ctx; + + sha256_init(&ctx); + sha256_update(&ctx, message, len); + sha256_final(&ctx, digest); +} + +void sha256_init(sha256_ctx *ctx) +{ +#ifndef UNROLL_LOOPS + int i; + for (i = 0; i < 8; i++) { + ctx->h[i] = sha256_h0[i]; + } +#else + ctx->h[0] = sha256_h0[0]; ctx->h[1] = sha256_h0[1]; + ctx->h[2] = sha256_h0[2]; ctx->h[3] = sha256_h0[3]; + ctx->h[4] = sha256_h0[4]; ctx->h[5] = sha256_h0[5]; + ctx->h[6] = sha256_h0[6]; ctx->h[7] = sha256_h0[7]; +#endif /* !UNROLL_LOOPS */ + + ctx->len = 0; + ctx->tot_len = 0; +} + +void sha256_update(sha256_ctx *ctx, const unsigned char *message, + unsigned int len) +{ + unsigned int block_nb; + unsigned int new_len, rem_len, tmp_len; + const unsigned char *shifted_message; + + tmp_len = SHA256_BLOCK_SIZE - ctx->len; + rem_len = len < tmp_len ? len : tmp_len; + + memcpy(&ctx->block[ctx->len], message, rem_len); + + if (ctx->len + len < SHA256_BLOCK_SIZE) { + ctx->len += len; + return; + } + + new_len = len - rem_len; + block_nb = new_len / SHA256_BLOCK_SIZE; + + shifted_message = message + rem_len; + + sha256_transf(ctx, ctx->block, 1); + sha256_transf(ctx, shifted_message, block_nb); + + rem_len = new_len % SHA256_BLOCK_SIZE; + + memcpy(ctx->block, &shifted_message[block_nb << 6], + rem_len); + + ctx->len = rem_len; + ctx->tot_len += (block_nb + 1) << 6; +} + +void sha256_final(sha256_ctx *ctx, unsigned char *digest) +{ + unsigned int block_nb; + unsigned int pm_len; + unsigned int len_b; + +#ifndef UNROLL_LOOPS + int i; +#endif + + block_nb = (1 + ((SHA256_BLOCK_SIZE - 9) + < (ctx->len % SHA256_BLOCK_SIZE))); + + len_b = (ctx->tot_len + ctx->len) << 3; + pm_len = block_nb << 6; + + memset(ctx->block + ctx->len, 0, pm_len - ctx->len); + ctx->block[ctx->len] = 0x80; + UNPACK32(len_b, ctx->block + pm_len - 4); + + sha256_transf(ctx, ctx->block, block_nb); + +#ifndef UNROLL_LOOPS + for (i = 0 ; i < 8; i++) { + UNPACK32(ctx->h[i], &digest[i << 2]); + } +#else + UNPACK32(ctx->h[0], &digest[ 0]); + UNPACK32(ctx->h[1], &digest[ 4]); + UNPACK32(ctx->h[2], &digest[ 8]); + UNPACK32(ctx->h[3], &digest[12]); + UNPACK32(ctx->h[4], &digest[16]); + UNPACK32(ctx->h[5], &digest[20]); + UNPACK32(ctx->h[6], &digest[24]); + UNPACK32(ctx->h[7], &digest[28]); +#endif /* !UNROLL_LOOPS */ +} + +/* SHA-512 functions */ + +void sha512_transf(sha512_ctx *ctx, const unsigned char *message, + unsigned int block_nb) +{ + uint64 w[80]; + uint64 wv[8]; + uint64 t1, t2; + const unsigned char *sub_block; + int i, j; + + for (i = 0; i < (int) block_nb; i++) { + sub_block = message + (i << 7); + +#ifndef UNROLL_LOOPS + for (j = 0; j < 16; j++) { + PACK64(&sub_block[j << 3], &w[j]); + } + + for (j = 16; j < 80; j++) { + SHA512_SCR(j); + } + + for (j = 0; j < 8; j++) { + wv[j] = ctx->h[j]; + } + + for (j = 0; j < 80; j++) { + t1 = wv[7] + SHA512_F2(wv[4]) + CH(wv[4], wv[5], wv[6]) + + sha512_k[j] + w[j]; + t2 = SHA512_F1(wv[0]) + MAJ(wv[0], wv[1], wv[2]); + wv[7] = wv[6]; + wv[6] = wv[5]; + wv[5] = wv[4]; + wv[4] = wv[3] + t1; + wv[3] = wv[2]; + wv[2] = wv[1]; + wv[1] = wv[0]; + wv[0] = t1 + t2; + } + + for (j = 0; j < 8; j++) { + ctx->h[j] += wv[j]; + } +#else + PACK64(&sub_block[ 0], &w[ 0]); PACK64(&sub_block[ 8], &w[ 1]); + PACK64(&sub_block[ 16], &w[ 2]); PACK64(&sub_block[ 24], &w[ 3]); + PACK64(&sub_block[ 32], &w[ 4]); PACK64(&sub_block[ 40], &w[ 5]); + PACK64(&sub_block[ 48], &w[ 6]); PACK64(&sub_block[ 56], &w[ 7]); + PACK64(&sub_block[ 64], &w[ 8]); PACK64(&sub_block[ 72], &w[ 9]); + PACK64(&sub_block[ 80], &w[10]); PACK64(&sub_block[ 88], &w[11]); + PACK64(&sub_block[ 96], &w[12]); PACK64(&sub_block[104], &w[13]); + PACK64(&sub_block[112], &w[14]); PACK64(&sub_block[120], &w[15]); + + SHA512_SCR(16); SHA512_SCR(17); SHA512_SCR(18); SHA512_SCR(19); + SHA512_SCR(20); SHA512_SCR(21); SHA512_SCR(22); SHA512_SCR(23); + SHA512_SCR(24); SHA512_SCR(25); SHA512_SCR(26); SHA512_SCR(27); + SHA512_SCR(28); SHA512_SCR(29); SHA512_SCR(30); SHA512_SCR(31); + SHA512_SCR(32); SHA512_SCR(33); SHA512_SCR(34); SHA512_SCR(35); + SHA512_SCR(36); SHA512_SCR(37); SHA512_SCR(38); SHA512_SCR(39); + SHA512_SCR(40); SHA512_SCR(41); SHA512_SCR(42); SHA512_SCR(43); + SHA512_SCR(44); SHA512_SCR(45); SHA512_SCR(46); SHA512_SCR(47); + SHA512_SCR(48); SHA512_SCR(49); SHA512_SCR(50); SHA512_SCR(51); + SHA512_SCR(52); SHA512_SCR(53); SHA512_SCR(54); SHA512_SCR(55); + SHA512_SCR(56); SHA512_SCR(57); SHA512_SCR(58); SHA512_SCR(59); + SHA512_SCR(60); SHA512_SCR(61); SHA512_SCR(62); SHA512_SCR(63); + SHA512_SCR(64); SHA512_SCR(65); SHA512_SCR(66); SHA512_SCR(67); + SHA512_SCR(68); SHA512_SCR(69); SHA512_SCR(70); SHA512_SCR(71); + SHA512_SCR(72); SHA512_SCR(73); SHA512_SCR(74); SHA512_SCR(75); + SHA512_SCR(76); SHA512_SCR(77); SHA512_SCR(78); SHA512_SCR(79); + + wv[0] = ctx->h[0]; wv[1] = ctx->h[1]; + wv[2] = ctx->h[2]; wv[3] = ctx->h[3]; + wv[4] = ctx->h[4]; wv[5] = ctx->h[5]; + wv[6] = ctx->h[6]; wv[7] = ctx->h[7]; + + j = 0; + + do { + SHA512_EXP(0,1,2,3,4,5,6,7,j); j++; + SHA512_EXP(7,0,1,2,3,4,5,6,j); j++; + SHA512_EXP(6,7,0,1,2,3,4,5,j); j++; + SHA512_EXP(5,6,7,0,1,2,3,4,j); j++; + SHA512_EXP(4,5,6,7,0,1,2,3,j); j++; + SHA512_EXP(3,4,5,6,7,0,1,2,j); j++; + SHA512_EXP(2,3,4,5,6,7,0,1,j); j++; + SHA512_EXP(1,2,3,4,5,6,7,0,j); j++; + } while (j < 80); + + ctx->h[0] += wv[0]; ctx->h[1] += wv[1]; + ctx->h[2] += wv[2]; ctx->h[3] += wv[3]; + ctx->h[4] += wv[4]; ctx->h[5] += wv[5]; + ctx->h[6] += wv[6]; ctx->h[7] += wv[7]; +#endif /* !UNROLL_LOOPS */ + } +} + +void sha512(const unsigned char *message, unsigned int len, + unsigned char *digest) +{ + sha512_ctx ctx; + + sha512_init(&ctx); + sha512_update(&ctx, message, len); + sha512_final(&ctx, digest); +} + +void sha512_init(sha512_ctx *ctx) +{ +#ifndef UNROLL_LOOPS + int i; + for (i = 0; i < 8; i++) { + ctx->h[i] = sha512_h0[i]; + } +#else + ctx->h[0] = sha512_h0[0]; ctx->h[1] = sha512_h0[1]; + ctx->h[2] = sha512_h0[2]; ctx->h[3] = sha512_h0[3]; + ctx->h[4] = sha512_h0[4]; ctx->h[5] = sha512_h0[5]; + ctx->h[6] = sha512_h0[6]; ctx->h[7] = sha512_h0[7]; +#endif /* !UNROLL_LOOPS */ + + ctx->len = 0; + ctx->tot_len = 0; +} + +void sha512_update(sha512_ctx *ctx, const unsigned char *message, + unsigned int len) +{ + unsigned int block_nb; + unsigned int new_len, rem_len, tmp_len; + const unsigned char *shifted_message; + + tmp_len = SHA512_BLOCK_SIZE - ctx->len; + rem_len = len < tmp_len ? len : tmp_len; + + memcpy(&ctx->block[ctx->len], message, rem_len); + + if (ctx->len + len < SHA512_BLOCK_SIZE) { + ctx->len += len; + return; + } + + new_len = len - rem_len; + block_nb = new_len / SHA512_BLOCK_SIZE; + + shifted_message = message + rem_len; + + sha512_transf(ctx, ctx->block, 1); + sha512_transf(ctx, shifted_message, block_nb); + + rem_len = new_len % SHA512_BLOCK_SIZE; + + memcpy(ctx->block, &shifted_message[block_nb << 7], + rem_len); + + ctx->len = rem_len; + ctx->tot_len += (block_nb + 1) << 7; +} + +void sha512_final(sha512_ctx *ctx, unsigned char *digest) +{ + unsigned int block_nb; + unsigned int pm_len; + unsigned int len_b; + +#ifndef UNROLL_LOOPS + int i; +#endif + + block_nb = 1 + ((SHA512_BLOCK_SIZE - 17) + < (ctx->len % SHA512_BLOCK_SIZE)); + + len_b = (ctx->tot_len + ctx->len) << 3; + pm_len = block_nb << 7; + + memset(ctx->block + ctx->len, 0, pm_len - ctx->len); + ctx->block[ctx->len] = 0x80; + UNPACK32(len_b, ctx->block + pm_len - 4); + + sha512_transf(ctx, ctx->block, block_nb); + +#ifndef UNROLL_LOOPS + for (i = 0 ; i < 8; i++) { + UNPACK64(ctx->h[i], &digest[i << 3]); + } +#else + UNPACK64(ctx->h[0], &digest[ 0]); + UNPACK64(ctx->h[1], &digest[ 8]); + UNPACK64(ctx->h[2], &digest[16]); + UNPACK64(ctx->h[3], &digest[24]); + UNPACK64(ctx->h[4], &digest[32]); + UNPACK64(ctx->h[5], &digest[40]); + UNPACK64(ctx->h[6], &digest[48]); + UNPACK64(ctx->h[7], &digest[56]); +#endif /* !UNROLL_LOOPS */ +} + +/* SHA-384 functions */ + +void sha384(const unsigned char *message, unsigned int len, + unsigned char *digest) +{ + sha384_ctx ctx; + + sha384_init(&ctx); + sha384_update(&ctx, message, len); + sha384_final(&ctx, digest); +} + +void sha384_init(sha384_ctx *ctx) +{ +#ifndef UNROLL_LOOPS + int i; + for (i = 0; i < 8; i++) { + ctx->h[i] = sha384_h0[i]; + } +#else + ctx->h[0] = sha384_h0[0]; ctx->h[1] = sha384_h0[1]; + ctx->h[2] = sha384_h0[2]; ctx->h[3] = sha384_h0[3]; + ctx->h[4] = sha384_h0[4]; ctx->h[5] = sha384_h0[5]; + ctx->h[6] = sha384_h0[6]; ctx->h[7] = sha384_h0[7]; +#endif /* !UNROLL_LOOPS */ + + ctx->len = 0; + ctx->tot_len = 0; +} + +void sha384_update(sha384_ctx *ctx, const unsigned char *message, + unsigned int len) +{ + unsigned int block_nb; + unsigned int new_len, rem_len, tmp_len; + const unsigned char *shifted_message; + + tmp_len = SHA384_BLOCK_SIZE - ctx->len; + rem_len = len < tmp_len ? len : tmp_len; + + memcpy(&ctx->block[ctx->len], message, rem_len); + + if (ctx->len + len < SHA384_BLOCK_SIZE) { + ctx->len += len; + return; + } + + new_len = len - rem_len; + block_nb = new_len / SHA384_BLOCK_SIZE; + + shifted_message = message + rem_len; + + sha512_transf(ctx, ctx->block, 1); + sha512_transf(ctx, shifted_message, block_nb); + + rem_len = new_len % SHA384_BLOCK_SIZE; + + memcpy(ctx->block, &shifted_message[block_nb << 7], + rem_len); + + ctx->len = rem_len; + ctx->tot_len += (block_nb + 1) << 7; +} + +void sha384_final(sha384_ctx *ctx, unsigned char *digest) +{ + unsigned int block_nb; + unsigned int pm_len; + unsigned int len_b; + +#ifndef UNROLL_LOOPS + int i; +#endif + + block_nb = (1 + ((SHA384_BLOCK_SIZE - 17) + < (ctx->len % SHA384_BLOCK_SIZE))); + + len_b = (ctx->tot_len + ctx->len) << 3; + pm_len = block_nb << 7; + + memset(ctx->block + ctx->len, 0, pm_len - ctx->len); + ctx->block[ctx->len] = 0x80; + UNPACK32(len_b, ctx->block + pm_len - 4); + + sha512_transf(ctx, ctx->block, block_nb); + +#ifndef UNROLL_LOOPS + for (i = 0 ; i < 6; i++) { + UNPACK64(ctx->h[i], &digest[i << 3]); + } +#else + UNPACK64(ctx->h[0], &digest[ 0]); + UNPACK64(ctx->h[1], &digest[ 8]); + UNPACK64(ctx->h[2], &digest[16]); + UNPACK64(ctx->h[3], &digest[24]); + UNPACK64(ctx->h[4], &digest[32]); + UNPACK64(ctx->h[5], &digest[40]); +#endif /* !UNROLL_LOOPS */ +} + +/* SHA-224 functions */ + +void sha224(const unsigned char *message, unsigned int len, + unsigned char *digest) +{ + sha224_ctx ctx; + + sha224_init(&ctx); + sha224_update(&ctx, message, len); + sha224_final(&ctx, digest); +} + +void sha224_init(sha224_ctx *ctx) +{ +#ifndef UNROLL_LOOPS + int i; + for (i = 0; i < 8; i++) { + ctx->h[i] = sha224_h0[i]; + } +#else + ctx->h[0] = sha224_h0[0]; ctx->h[1] = sha224_h0[1]; + ctx->h[2] = sha224_h0[2]; ctx->h[3] = sha224_h0[3]; + ctx->h[4] = sha224_h0[4]; ctx->h[5] = sha224_h0[5]; + ctx->h[6] = sha224_h0[6]; ctx->h[7] = sha224_h0[7]; +#endif /* !UNROLL_LOOPS */ + + ctx->len = 0; + ctx->tot_len = 0; +} + +void sha224_update(sha224_ctx *ctx, const unsigned char *message, + unsigned int len) +{ + unsigned int block_nb; + unsigned int new_len, rem_len, tmp_len; + const unsigned char *shifted_message; + + tmp_len = SHA224_BLOCK_SIZE - ctx->len; + rem_len = len < tmp_len ? len : tmp_len; + + memcpy(&ctx->block[ctx->len], message, rem_len); + + if (ctx->len + len < SHA224_BLOCK_SIZE) { + ctx->len += len; + return; + } + + new_len = len - rem_len; + block_nb = new_len / SHA224_BLOCK_SIZE; + + shifted_message = message + rem_len; + + sha256_transf(ctx, ctx->block, 1); + sha256_transf(ctx, shifted_message, block_nb); + + rem_len = new_len % SHA224_BLOCK_SIZE; + + memcpy(ctx->block, &shifted_message[block_nb << 6], + rem_len); + + ctx->len = rem_len; + ctx->tot_len += (block_nb + 1) << 6; +} + +void sha224_final(sha224_ctx *ctx, unsigned char *digest) +{ + unsigned int block_nb; + unsigned int pm_len; + unsigned int len_b; + +#ifndef UNROLL_LOOPS + int i; +#endif + + block_nb = (1 + ((SHA224_BLOCK_SIZE - 9) + < (ctx->len % SHA224_BLOCK_SIZE))); + + len_b = (ctx->tot_len + ctx->len) << 3; + pm_len = block_nb << 6; + + memset(ctx->block + ctx->len, 0, pm_len - ctx->len); + ctx->block[ctx->len] = 0x80; + UNPACK32(len_b, ctx->block + pm_len - 4); + + sha256_transf(ctx, ctx->block, block_nb); + +#ifndef UNROLL_LOOPS + for (i = 0 ; i < 7; i++) { + UNPACK32(ctx->h[i], &digest[i << 2]); + } +#else + UNPACK32(ctx->h[0], &digest[ 0]); + UNPACK32(ctx->h[1], &digest[ 4]); + UNPACK32(ctx->h[2], &digest[ 8]); + UNPACK32(ctx->h[3], &digest[12]); + UNPACK32(ctx->h[4], &digest[16]); + UNPACK32(ctx->h[5], &digest[20]); + UNPACK32(ctx->h[6], &digest[24]); +#endif /* !UNROLL_LOOPS */ +} + +#ifdef TEST_VECTORS + +/* FIPS 180-2 Validation tests */ + +#include +#include + +void test(const char *vector, unsigned char *digest, + unsigned int digest_size) +{ + char output[2 * SHA512_DIGEST_SIZE + 1]; + int i; + + output[2 * digest_size] = '\0'; + + for (i = 0; i < (int) digest_size ; i++) { + sprintf(output + 2 * i, "%02x", digest[i]); + } + + printf("H: %s\n", output); + if (strcmp(vector, output)) { + fprintf(stderr, "Test failed.\n"); + exit(EXIT_FAILURE); + } +} + +int main(void) +{ + static const char *vectors[4][3] = + { /* SHA-224 */ + { + "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7", + "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525", + "20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67", + }, + /* SHA-256 */ + { + "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", + "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1", + "cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0", + }, + /* SHA-384 */ + { + "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed" + "8086072ba1e7cc2358baeca134c825a7", + "09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712" + "fcc7c71a557e2db966c3e9fa91746039", + "9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b" + "07b8b3dc38ecc4ebae97ddd87f3d8985", + }, + /* SHA-512 */ + { + "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a" + "2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f", + "8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018" + "501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909", + "e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973eb" + "de0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b" + } + }; + + static const char message1[] = "abc"; + static const char message2a[] = "abcdbcdecdefdefgefghfghighijhi" + "jkijkljklmklmnlmnomnopnopq"; + static const char message2b[] = "abcdefghbcdefghicdefghijdefghijkefghij" + "klfghijklmghijklmnhijklmnoijklmnopjklm" + "nopqklmnopqrlmnopqrsmnopqrstnopqrstu"; + unsigned char *message3; + unsigned int message3_len = 1000000; + unsigned char digest[SHA512_DIGEST_SIZE]; + + message3 = malloc(message3_len); + if (message3 == NULL) { + fprintf(stderr, "Can't allocate memory\n"); + return -1; + } + memset(message3, 'a', message3_len); + + printf("SHA-2 FIPS 180-2 Validation tests\n\n"); + printf("SHA-224 Test vectors\n"); + + sha224((const unsigned char *) message1, strlen(message1), digest); + test(vectors[0][0], digest, SHA224_DIGEST_SIZE); + sha224((const unsigned char *) message2a, strlen(message2a), digest); + test(vectors[0][1], digest, SHA224_DIGEST_SIZE); + sha224(message3, message3_len, digest); + test(vectors[0][2], digest, SHA224_DIGEST_SIZE); + printf("\n"); + + printf("SHA-256 Test vectors\n"); + + sha256((const unsigned char *) message1, strlen(message1), digest); + test(vectors[1][0], digest, SHA256_DIGEST_SIZE); + sha256((const unsigned char *) message2a, strlen(message2a), digest); + test(vectors[1][1], digest, SHA256_DIGEST_SIZE); + sha256(message3, message3_len, digest); + test(vectors[1][2], digest, SHA256_DIGEST_SIZE); + printf("\n"); + + printf("SHA-384 Test vectors\n"); + + sha384((const unsigned char *) message1, strlen(message1), digest); + test(vectors[2][0], digest, SHA384_DIGEST_SIZE); + sha384((const unsigned char *)message2b, strlen(message2b), digest); + test(vectors[2][1], digest, SHA384_DIGEST_SIZE); + sha384(message3, message3_len, digest); + test(vectors[2][2], digest, SHA384_DIGEST_SIZE); + printf("\n"); + + printf("SHA-512 Test vectors\n"); + + sha512((const unsigned char *) message1, strlen(message1), digest); + test(vectors[3][0], digest, SHA512_DIGEST_SIZE); + sha512((const unsigned char *) message2b, strlen(message2b), digest); + test(vectors[3][1], digest, SHA512_DIGEST_SIZE); + sha512(message3, message3_len, digest); + test(vectors[3][2], digest, SHA512_DIGEST_SIZE); + printf("\n"); + + printf("All tests passed.\n"); + + return 0; +} + +#endif /* TEST_VECTORS */ + diff --git a/emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/sha2.h b/emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/sha2.h new file mode 100644 index 0000000..0d25c5d --- /dev/null +++ b/emmc_hal_lib/mmc-utils/3rdparty/hmac_sha/sha2.h @@ -0,0 +1,112 @@ +/* + * FIPS 180-2 SHA-224/256/384/512 implementation + * Last update: 02/02/2007 + * Issue date: 04/30/2005 + * + * Since this code has been incorporated into a GPLv2 project, it is + * distributed under GPLv2 inside mmc-utils. The original BSD license + * that the code was released under is included below for clarity. + * + * Copyright (C) 2005, 2007 Olivier Gay + * All rights reserved. + * + * 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. + * 3. Neither the name of the project nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE PROJECT 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 PROJECT 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. + */ + +#ifndef SHA2_H +#define SHA2_H + +#define SHA224_DIGEST_SIZE ( 224 / 8) +#define SHA256_DIGEST_SIZE ( 256 / 8) +#define SHA384_DIGEST_SIZE ( 384 / 8) +#define SHA512_DIGEST_SIZE ( 512 / 8) + +#define SHA256_BLOCK_SIZE ( 512 / 8) +#define SHA512_BLOCK_SIZE (1024 / 8) +#define SHA384_BLOCK_SIZE SHA512_BLOCK_SIZE +#define SHA224_BLOCK_SIZE SHA256_BLOCK_SIZE + +#ifndef SHA2_TYPES +#define SHA2_TYPES +typedef unsigned char uint8; +typedef unsigned int uint32; +typedef unsigned long long uint64; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + unsigned int tot_len; + unsigned int len; + unsigned char block[2 * SHA256_BLOCK_SIZE]; + uint32 h[8]; +} sha256_ctx; + +typedef struct { + unsigned int tot_len; + unsigned int len; + unsigned char block[2 * SHA512_BLOCK_SIZE]; + uint64 h[8]; +} sha512_ctx; + +typedef sha512_ctx sha384_ctx; +typedef sha256_ctx sha224_ctx; + +void sha224_init(sha224_ctx *ctx); +void sha224_update(sha224_ctx *ctx, const unsigned char *message, + unsigned int len); +void sha224_final(sha224_ctx *ctx, unsigned char *digest); +void sha224(const unsigned char *message, unsigned int len, + unsigned char *digest); + +void sha256_init(sha256_ctx * ctx); +void sha256_update(sha256_ctx *ctx, const unsigned char *message, + unsigned int len); +void sha256_final(sha256_ctx *ctx, unsigned char *digest); +void sha256(const unsigned char *message, unsigned int len, + unsigned char *digest); + +void sha384_init(sha384_ctx *ctx); +void sha384_update(sha384_ctx *ctx, const unsigned char *message, + unsigned int len); +void sha384_final(sha384_ctx *ctx, unsigned char *digest); +void sha384(const unsigned char *message, unsigned int len, + unsigned char *digest); + +void sha512_init(sha512_ctx *ctx); +void sha512_update(sha512_ctx *ctx, const unsigned char *message, + unsigned int len); +void sha512_final(sha512_ctx *ctx, unsigned char *digest); +void sha512(const unsigned char *message, unsigned int len, + unsigned char *digest); + +#ifdef __cplusplus +} +#endif + +#endif /* !SHA2_H */ + diff --git a/emmc_hal_lib/mmc-utils/Android.mk b/emmc_hal_lib/mmc-utils/Android.mk new file mode 100644 index 0000000..4b7afb1 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/Android.mk @@ -0,0 +1,12 @@ +LOCAL_PATH:= $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE_TAGS := optional +LOCAL_SRC_FILES:= mmc.c mmc_cmds.c +LOCAL_SRC_FILES += 3rdparty/hmac_sha/sha2.c 3rdparty/hmac_sha/hmac_sha2.c +LOCAL_MODULE := mmc_utils +LOCAL_SHARED_LIBRARIES := libcutils libc +LOCAL_C_INCLUDES+= $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include +LOCAL_ADDITIONAL_DEPENDENCIES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr +LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)/mmc-utils +include $(BUILD_EXECUTABLE) diff --git a/emmc_hal_lib/mmc-utils/Makefile b/emmc_hal_lib/mmc-utils/Makefile new file mode 100644 index 0000000..395cf2a --- /dev/null +++ b/emmc_hal_lib/mmc-utils/Makefile @@ -0,0 +1,59 @@ +CC := $(CROSS_COMPILE)gcc +AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 +CFLAGS ?= -g -O2 +objects = \ + mmc.o \ + mmc_cmds.o \ + lsmmc.o \ + csi_rpmb.o \ + csi_test.o \ + 3rdparty/hmac_sha/hmac_sha2.o \ + 3rdparty/hmac_sha/sha2.o + +CHECKFLAGS = -Wall -Werror -Wuninitialized -Wundef + +DEPFLAGS = -Wp,-MMD,$(@D)/.$(@F).d,-MT,$@ + +override CFLAGS := $(CHECKFLAGS) $(AM_CFLAGS) $(CFLAGS) + +INSTALL = install +prefix ?= /usr/local +bindir = $(prefix)/bin +LIBS= +RESTORE_LIBS= + +progs = mmc + +# make C=1 to enable sparse +ifdef C + check = sparse $(CHECKFLAGS) +endif + +all: $(progs) manpages + @echo CC=$(CC) +.c.o: +ifdef C + $(check) $< +endif + $(CC) $(CPPFLAGS) $(CFLAGS) $(DEPFLAGS) -c $< -o $@ + +mmc: $(objects) + $(CC) $(CFLAGS) -o $@ $(objects) $(LDFLAGS) $(LIBS) + +manpages: + $(MAKE) -C man + +install-man: + $(MAKE) -C man install + +clean: + rm -f $(progs) $(objects) + $(MAKE) -C man clean + +install: $(progs) install-man + $(INSTALL) -m755 -d $(DESTDIR)$(bindir) + $(INSTALL) $(progs) $(DESTDIR)$(bindir) + +-include $(foreach obj,$(objects), $(dir $(obj))/.$(notdir $(obj)).d) + +.PHONY: all clean install manpages install-man diff --git a/emmc_hal_lib/mmc-utils/csi_rpmb.c b/emmc_hal_lib/mmc-utils/csi_rpmb.c new file mode 100644 index 0000000..391adc6 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/csi_rpmb.c @@ -0,0 +1,293 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "3rdparty/hmac_sha/hmac_sha2.h" +#include "mmc.h" +#include "csi_rpmb.h" + +#ifndef offsetof +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#endif + +struct rpmb_frame { + u_int8_t stuff[196]; + u_int8_t key_mac[32]; + u_int8_t data[256]; + u_int8_t nonce[16]; + u_int32_t write_counter; + u_int16_t addr; + u_int16_t block_count; + u_int16_t result; + u_int16_t req_resp; +}; + +extern int rpmb_read_counter(int dev_fd, unsigned int *cnt); +extern int do_rpmb_op(int fd, const struct rpmb_frame *frame_in, + struct rpmb_frame *frame_out, unsigned int out_cnt); + +/** + \brief Initialize rpmb interface. + \param[in] ctx Context to operate + \return Error code +*/ +hal_error_t csi_rpmb_init(csi_hal_rpmb_ctx_t *ctx, char *device) +{ + int dev_fd; + + assert(device != NULL); + + dev_fd = open(device, O_RDWR); + if (dev_fd < 0) { + perror("device open"); + return CSI_HAL_ERROR; + } + + ctx->device = device; + ctx->dev_fd = dev_fd; + + return CSI_HAL_SUCCESS; +} + +/** + \brief De-initialize rpmb. + \param[in] ctx Context to operate + \return None +*/ +void csi_rpmb_uninit(csi_hal_rpmb_ctx_t *ctx) +{ + close(ctx->dev_fd); +} + +int _do_csi_rpmb_write_key(int dev_fd, uint8_t *key) +{ + int ret; + struct rpmb_frame frame_in = { + .req_resp = htobe16(MMC_RPMB_WRITE_KEY) + }, frame_out; + + /* Read the auth key */ + memcpy(frame_in.key_mac, key, sizeof(frame_in.key_mac)); + + /* Execute RPMB op */ + ret = do_rpmb_op(dev_fd, &frame_in, &frame_out, 1); + if (ret != 0) { + perror("RPMB ioctl failed"); + exit(1); + } + + /* Check RPMB response */ + if (frame_out.result != 0) { + printf("RPMB operation failed, retcode 0x%04x\n", + be16toh(frame_out.result)); + exit(1); + } + + return ret; +} + +int do_csi_rpmb_write_block(int dev_fd, enum hal_rpmb_op_type type, uint8_t *data, uint8_t *key_value, uint16_t addr, uint32_t blocks) +{ + int ret; + unsigned char key[32]; + unsigned int cnt; + struct rpmb_frame frame_in = { + .req_resp = htobe16(MMC_RPMB_WRITE), + .block_count = htobe16(1) + }, frame_out; + + assert(data != NULL && key_value != NULL && dev_fd >= 0); + assert(type == MMC_RPMB_WRITE_KEY || type == MMC_RPMB_WRITE); + + if (type == MMC_RPMB_WRITE_KEY) + return _do_csi_rpmb_write_key(dev_fd, key_value); + + /* Get key mac */ + memcpy(key, key_value, sizeof(key)); + + while (blocks) { + ret = rpmb_read_counter(dev_fd, &cnt); + /* Check RPMB response */ + if (ret != 0) { + printf("RPMB read counter operation failed, retcode 0x%04x\n", ret); + exit(1); + } + frame_in.write_counter = htobe32(cnt); + + /* Get block address */ + frame_in.addr = htobe16(addr); + + /* Read 256b data */ + memcpy(frame_in.data, data, sizeof(frame_in.data)); + + /* Calculate HMAC SHA256 */ + hmac_sha256( + key, sizeof(key), + frame_in.data, sizeof(frame_in) - offsetof(struct rpmb_frame, data), + frame_in.key_mac, sizeof(frame_in.key_mac)); + + /* Execute RPMB op */ + ret = do_rpmb_op(dev_fd, &frame_in, &frame_out, 1); + if (ret != 0) { + perror("RPMB ioctl failed"); + exit(1); + } + + /* Check RPMB response */ + if (frame_out.result != 0) { + printf("RPMB operation failed, retcode 0x%04x\n", be16toh(frame_out.result)); + exit(1); + } + + addr += 1; /* half sector */ + blocks -= 1; + data += sizeof(frame_in.data); + + memset(&frame_out, 0, sizeof(frame_out)); + memset(&frame_in, 0, sizeof(frame_in)); + frame_in.req_resp = htobe16(MMC_RPMB_WRITE); + frame_in.block_count = htobe16(1); + } + + return ret; +} + +int do_csi_rpmb_read_block(int dev_fd, uint8_t *data, uint8_t *key_value, uint16_t addr, uint32_t blocks) +{ + int i, ret; + unsigned char mac[32]; + hmac_sha256_ctx ctx; + struct rpmb_frame *frame_out = NULL; + /* + * for reading RPMB, number of blocks is set by CMD23 only, the packet + * frame field for that is set to 0. So, the type is not u16 but uint! + */ + unsigned int blocks_cnt; + unsigned char key[32]; + struct rpmb_frame frame_in = { + .req_resp = htobe16(MMC_RPMB_READ), + }, *frame_out_p; + + /* Get key mac */ + memcpy(key, key_value, sizeof(key)); + + /* Get block address */ + frame_in.addr = htobe16(addr); + + /* Get blocks count */ + blocks_cnt = blocks; + if (!blocks_cnt) { + printf("please, specify valid blocks count number\n"); + exit(1); + } + + frame_out_p = calloc(sizeof(*frame_out_p), blocks_cnt); + if (!frame_out_p) { + printf("can't allocate memory for RPMB outer frames\n"); + exit(1); + } + + /* Execute RPMB op */ + ret = do_rpmb_op(dev_fd, &frame_in, frame_out_p, blocks_cnt); + if (ret != 0) { + perror("RPMB ioctl failed"); + exit(1); + } + + /* Check RPMB response */ + if (frame_out_p[blocks_cnt - 1].result != 0) { + printf("RPMB operation failed, retcode 0x%04x\n", + be16toh(frame_out_p[blocks_cnt - 1].result)); + exit(1); + } + + /* Do we have to verify data against key? */ + hmac_sha256_init(&ctx, key, sizeof(key)); + for (i = 0; i < blocks_cnt; i++) { + frame_out = &frame_out_p[i]; + hmac_sha256_update(&ctx, frame_out->data, sizeof(*frame_out) - offsetof(struct rpmb_frame, data)); + } + + hmac_sha256_final(&ctx, mac, sizeof(mac)); + + /* Impossible */ + assert(frame_out); + + /* Compare calculated MAC and MAC from last frame */ + if (memcmp(mac, frame_out->key_mac, sizeof(mac))) { + printf("RPMB MAC missmatch\n"); + exit(1); + } + + /* Write data */ + for (i = 0; i < blocks_cnt; i++) { + struct rpmb_frame *frame_out = &frame_out_p[i]; + + memcpy(data, frame_out->data, sizeof(frame_out->data)); + data += sizeof(frame_out->data); + } + + free(frame_out_p); + + return ret; +} + +/** + \brief RPMB write data, authenticated data and write to RPMB. + \param[in] ctx Context to operate + \param[in] addr [in] address, address in block. + \param[in] blocks [in] write block number. block size 256 bytes. + \param[in] data [in] + \return Error code +*/ +hal_error_t csi_rpmb_write_block(csi_hal_rpmb_ctx_t *ctx, uint16_t addr, + uint32_t blocks, uint8_t *data) +{ + int ret, dev_fd; + uint8_t *key_value; + enum hal_rpmb_op_type type; + + assert(ctx != NULL && data != NULL); + + dev_fd = ctx->dev_fd; + key_value = ctx->key_mac; + type = ctx->rpmb_op_type; + + ret = do_csi_rpmb_write_block(dev_fd, type, data, key_value, addr, blocks); + if (ret) + return CSI_HAL_ERROR; + else + return CSI_HAL_SUCCESS; +} + +/** + \brief RPMB read data, check .authentication tag and return data. + \param[in] ctx Context to operate + \param[in] addr [in] address + \param[in] blocks [in] write block number. + \return Error code +*/ +hal_error_t csi_rpmb_read_block(csi_hal_rpmb_ctx_t *ctx, uint16_t addr, + uint32_t blocks, uint8_t *data) +{ + int ret, dev_fd; + uint8_t *key_value; + + assert(ctx != NULL && data != NULL); + + dev_fd = ctx->dev_fd; + key_value = ctx->key_mac; + + ret = do_csi_rpmb_read_block(dev_fd, data, key_value, addr, blocks); + if (ret) + return CSI_HAL_ERROR; + else + return CSI_HAL_SUCCESS; +} diff --git a/emmc_hal_lib/mmc-utils/csi_rpmb.h b/emmc_hal_lib/mmc-utils/csi_rpmb.h new file mode 100644 index 0000000..1f4cfe2 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/csi_rpmb.h @@ -0,0 +1,62 @@ +#ifndef _CSI_RPMB_H +#define _CSI_RPMB_H + +#include + +#define CSI_HAL_ERROR -1 +#define CSI_HAL_SUCCESS 0 + +enum hal_rpmb_op_type { + MMC_RPMB_WRITE_KEY = 0x01, + MMC_RPMB_READ_CNT = 0x02, + MMC_RPMB_WRITE = 0x03, + MMC_RPMB_READ = 0x04, +}; + +typedef int hal_error_t; + +typedef struct _csi_hal_rpmb_ctx { + char *device; + int dev_fd; + enum hal_rpmb_op_type rpmb_op_type; + uint8_t key_mac[32]; +}csi_hal_rpmb_ctx_t; + + +/** + \brief Initialize rpmb interface. + \param[in] ctx Context to operate + \return Error code +*/ +hal_error_t csi_rpmb_init(csi_hal_rpmb_ctx_t *ctx, char *device); + +/** + \brief De-initialize rpmb. + \param[in] ctx Context to operate + \return None +*/ +void csi_rpmb_uninit(csi_hal_rpmb_ctx_t *ctx); + +/** + \brief RPMB read data, check .authentication tag and return data. + \param[in] ctx Context to operate + \param[in] addr [in] address + \param[in] blocks [in] write block number. + \return Error code +*/ +hal_error_t csi_rpmb_read_block(csi_hal_rpmb_ctx_t *ctx, uint16_t addr, + uint32_t blocks, uint8_t *data); + +/** + \brief RPMB write data, authenticated data and write to RPMB. + \param[in] ctx Context to operate + \param[in] addr [in] address, address in block. + \param[in] blocks [in] write block number. block size 256 bytes. + \param[in] data [in] + \return Error code +*/ +hal_error_t csi_rpmb_write_block(csi_hal_rpmb_ctx_t *ctx, uint16_t addr, + uint32_t blocks, uint8_t *data); + + +#endif diff --git a/emmc_hal_lib/mmc-utils/csi_test.c b/emmc_hal_lib/mmc-utils/csi_test.c new file mode 100644 index 0000000..ea8f179 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/csi_test.c @@ -0,0 +1,108 @@ +#include +#include +#include +#include +#include +#include +#include "csi_rpmb.h" + +#define HALF_SECTOR_BYTES 256 +#define BLOCK_NUM 2 +#define BLOCK_START 2 + +uint8_t key[] = {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 0xa, 0xa, 0xb, 0xb, 0xc, 0xc, 0xd, 0xd, 0xe, 0xe, 0xf, 0xf}; + +#define DO_IO(func, fd, buf, nbyte) \ + ({ \ + ssize_t ret = 0, r; \ + do { \ + r = func(fd, buf + ret, nbyte - ret); \ + if (r < 0 && errno != EINTR) { \ + ret = -1; \ + break; \ + } \ + else if (r > 0) \ + ret += r; \ + } while (r != 0 && (size_t)ret != nbyte); \ + \ + ret; \ + }) + +int main() +{ + int i, key_fd; + hal_error_t ret; + csi_hal_rpmb_ctx_t rpmb_ctx = { 0 }; + unsigned char write_data[HALF_SECTOR_BYTES * BLOCK_NUM], read_data[HALF_SECTOR_BYTES * BLOCK_NUM] = { 0 }; + char *devicefile = "/dev/mmcblk0rpmb"; + + for (i = 0; i < (HALF_SECTOR_BYTES * BLOCK_NUM); i++) { + if (i < 256) + write_data[i] = i % 256; + else + write_data[i] = 256 - (i % 256); + } + + //memcpy(rpmb_ctx.key_mac, key, sizeof(key)); + key_fd = open("/home/root/rpmbkey", O_RDONLY); + if (key_fd < 0) { + perror("can't open key file"); + exit(1); + } + + ret = DO_IO(read, key_fd, rpmb_ctx.key_mac, sizeof(rpmb_ctx.key_mac)); + if (ret < 0) { + perror("read the key"); + exit(1); + } else if (ret != sizeof(key)) { + printf("Auth key must be %lu bytes length, but we read only %d, exit\n", + (unsigned long)sizeof(rpmb_ctx.key_mac), + ret); + exit(1); + } + + printf("Key ascii:\n"); + for (i = 0; i < sizeof(rpmb_ctx.key_mac); i++) + printf("%d", rpmb_ctx.key_mac[i]); + + printf("\n"); + + printf("Key character:\n"); + for (i = 0; i < sizeof(rpmb_ctx.key_mac); i++) + printf("%c", rpmb_ctx.key_mac[i]); + + printf("\n"); + + rpmb_ctx.rpmb_op_type = MMC_RPMB_WRITE; + ret = csi_rpmb_init(&rpmb_ctx, devicefile); + if (ret) { + printf("failed to init csi rpmb device\n"); + exit(1); + } + + ret = csi_rpmb_write_block(&rpmb_ctx, BLOCK_START, BLOCK_NUM, write_data); + if (ret) { + printf("failed to write rpmb device\n"); + exit(1); + } + + ret = csi_rpmb_read_block(&rpmb_ctx, BLOCK_START, BLOCK_NUM, read_data); + if (ret) { + printf("failed to read rpmb device\n"); + exit(1); + } + + for (i = 0; i < sizeof(read_data); i++) { + if (i % 16 == 0) + printf("\n"); + if (i == 256) + printf("\n"); + + printf("%d\t", read_data[i]); + } + printf("\n"); + + csi_rpmb_uninit(&rpmb_ctx); + + return 0; +} diff --git a/emmc_hal_lib/mmc-utils/lsmmc.c b/emmc_hal_lib/mmc-utils/lsmmc.c new file mode 100644 index 0000000..4f687ac --- /dev/null +++ b/emmc_hal_lib/mmc-utils/lsmmc.c @@ -0,0 +1,2431 @@ +/* + * Copyright (C) ST-Ericsson SA 2010-2011 + * Author: Sebastian Rasmussen + * + * All rights reserved. + * + * 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. + * 3. Neither the name of the ST-Ericsson SA nor the names of its + * contributors may be used to endorse or promote products + * derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 + * COPYRIGHT HOLDER 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mmc.h" + +#define MASKTOBIT0(high) \ + ((high >= 0) ? ((1ull << ((high) + 1ull)) - 1ull) : 0ull) +#define MASK(high, low) (MASKTOBIT0(high) & ~MASKTOBIT0(low - 1)) +#define BITS(value, high, low) (((value) & MASK((high), (low))) >> (low)) +#define IDS_MAX 256 + +struct config { + char *idsfile; + char *dir; + bool verbose; + int interfaces; + char **interface; + char **mmc_ids; + char **sd_ids; + + char *type; + char *cid; + char *csd; + char *scr; + char *ext_csd; +}; + +enum REG_TYPE { + CID = 0, + CSD, + SCR, + EXT_CSD, +}; + +struct ids_database { + char *type; + int id; + char *manufacturer; +}; + +struct ids_database database[] = { + { + .type = "sd", + .id = 0x01, + .manufacturer = "Panasonic", + }, + { + .type = "sd", + .id = 0x02, + .manufacturer = "Toshiba/Kingston/Viking", + }, + { + .type = "sd", + .id = 0x03, + .manufacturer = "SanDisk", + }, + { + .type = "sd", + .id = 0x08, + .manufacturer = "Silicon Power", + }, + { + .type = "sd", + .id = 0x18, + .manufacturer = "Infineon", + }, + { + .type = "sd", + .id = 0x1b, + .manufacturer = "Transcend", + }, + { + .type = "sd", + .id = 0x1c, + .manufacturer = "Transcend", + }, + { + .type = "sd", + .id = 0x1d, + .manufacturer = "Corsair", + }, + { + .type = "sd", + .id = 0x1e, + .manufacturer = "Transcend", + }, + { + .type = "sd", + .id = 0x1f, + .manufacturer = "Kingston", + }, + { + .type = "sd", + .id = 0x28, + .manufacturer = "Lexar", + }, + { + .type = "sd", + .id = 0x30, + .manufacturer = "SanDisk", + }, + { + .type = "sd", + .id = 0x33, + .manufacturer = "STMicroelectronics", + }, + { + .type = "sd", + .id = 0x41, + .manufacturer = "Kingston", + }, + { + .type = "sd", + .id = 0x6f, + .manufacturer = "STMicroelectronics", + }, + { + .type = "sd", + .id = 0x89, + .manufacturer = "Unknown", + }, + { + .type = "mmc", + .id = 0x00, + .manufacturer = "SanDisk", + }, + { + .type = "mmc", + .id = 0x02, + .manufacturer = "Kingston/SanDisk", + }, + { + .type = "mmc", + .id = 0x03, + .manufacturer = "Toshiba", + }, + { + .type = "mmc", + .id = 0x05, + .manufacturer = "Unknown", + }, + { + .type = "mmc", + .id = 0x06, + .manufacturer = "Unknown", + }, + { + .type = "mmc", + .id = 0x11, + .manufacturer = "Toshiba", + }, + { + .type = "mmc", + .id = 0x13, + .manufacturer = "Micron", + }, + { + .type = "mmc", + .id = 0x15, + .manufacturer = "Samsung/SanDisk/LG", + }, + { + .type = "mmc", + .id = 0x37, + .manufacturer = "KingMax", + }, + { + .type = "mmc", + .id = 0x44, + .manufacturer = "SanDisk", + }, + { + .type = "mmc", + .id = 0x2c, + .manufacturer = "Kingston", + }, + { + .type = "mmc", + .id = 0x70, + .manufacturer = "Kingston", + }, +}; + +/* Command line parsing functions */ +void usage(void) +{ + printf("Usage: print mmc [-h] [-v] \n"); + printf("\n"); + printf("Options:\n"); + printf("\t-h\tShow this help.\n"); + printf("\t-v\tEnable verbose mode.\n"); +} + +int parse_opts(int argc, char **argv, struct config *config) +{ + int c; + + while ((c = getopt(argc, argv, "hv")) != -1) { + switch (c) { + case 'h': + usage(); + return -1; + case 'v': + config->verbose = true; + break; + case '?': + fprintf(stderr, + "Unknown option '%c' encountered.\n\n", c); + usage(); + return -1; + case ':': + fprintf(stderr, + "Argument for option '%c' missing.\n\n", c); + usage(); + return -1; + default: + fprintf(stderr, + "Unimplemented option '%c' encountered.\n", c); + break; + } + } + + if (optind >= argc) { + fprintf(stderr, "Expected mmc directory arguments.\n\n"); + usage(); + return -1; + } + + config->dir = strdup(argv[optind]); + return 0; +} + +int parse_ids(struct config *config) +{ + unsigned int ids_cnt = sizeof(database) / sizeof(struct ids_database); + unsigned int value; + char **ids; + char *type; + int i; + + for (i = 0; i < ids_cnt; i++) { + type = database[i].type; + + if (!strcmp(type, "mmc")) { + ids = config->mmc_ids; + } else if (!strcmp(type, "sd")) { + ids = config->sd_ids; + } else { + fprintf(stderr, + "MMC/SD id parse error, unknown type: '%s'.\n", + type); + return -1; + } + + value = database[i].id; + + if (value >= IDS_MAX) { + fprintf(stderr, + "MMC/SD id parse error, id out of range.\n"); + return -1; + } + + if (ids[value]) { + fprintf(stderr, + "Duplicate entries: type='%s', id='0x%1x'.\n", + type, value); + return -1; + } + + ids[value] = database[i].manufacturer; + } + + return 0; +} + +/* MMC/SD file parsing functions */ +char *read_file(char *name) +{ + char line[4096]; + char *preparsed, *start = line; + int len; + FILE *f; + + f = fopen(name, "r"); + if (!f) { + fprintf(stderr, "Could not open MMC/SD file '%s'.\n", name); + return NULL; + } + + preparsed = fgets(line, sizeof(line), f); + if (!preparsed) { + if (ferror(f)) + fprintf(stderr, "Could not read MMC/SD file '%s'.\n", + name); + else + fprintf(stderr, + "Could not read data from MMC/SD file '%s'.\n", + name); + + if (fclose(f)) + fprintf(stderr, "Could not close MMC/SD file '%s'.\n", + name); + return NULL; + } + + if (fclose(f)) { + fprintf(stderr, "Could not close MMC/SD file '%s'.\n", name); + return NULL; + } + + line[sizeof(line) - 1] = '\0'; + len = strlen(line); + + while (len > 0 && isspace(line[len - 1])) + len--; + + while (len > 0 && isspace(*start)) { + start++; + len--; + } + memmove(line, start, len); + line[len] = '\0'; + + return strdup(line); +} + +/* Hexadecimal string parsing functions */ +char *to_binstr(char *hexstr) +{ + char *bindigits[] = { + "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", + "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111", + }; + char *binstr, *tail; + + binstr = calloc(strlen(hexstr) * 4 + 1, sizeof(char)); + if (!binstr) + return NULL; + + tail = binstr; + + while (hexstr && *hexstr != '\0') { + if (!isxdigit(*hexstr)) { + free(binstr); + return NULL; + } + + if (isdigit(*hexstr)) + strcat(tail, bindigits[*hexstr - '0']); + else if (islower(*hexstr)) + strcat(tail, bindigits[*hexstr - 'a' + 10]); + else + strcat(tail, bindigits[*hexstr - 'A' + 10]); + + hexstr++; + tail += 4; + } + + return binstr; +} + +void bin_to_unsigned(unsigned int *u, char *binstr, int width) +{ + *u = 0; + assert(width <= 32); + + while (binstr && *binstr != '\0' && width > 0) { + *u <<= 1; + *u |= *binstr == '0' ? 0 : 1; + + binstr++; + width--; + } +} + +void bin_to_ascii(char *a, char *binstr, int width) +{ + assert(width % 8 == 0); + *a = '\0'; + + while (binstr && *binstr != '\0' && width > 0) { + unsigned int u; + char c[2] = { '\0', '\0' }; + char *s = &c[0]; + + bin_to_unsigned(&u, binstr, 8); + c[0] = u; + + strcat(a, s); + binstr += 8; + width -= 8; + } +} + +void parse_bin(char *hexstr, char *fmt, ...) +{ + va_list args; + char *origstr; + char *binstr; + unsigned long width = 0; + + binstr = to_binstr(hexstr); + origstr = binstr; + + va_start(args, fmt); + + while (binstr && fmt && *fmt != '\0') { + if (isdigit(*fmt)) { + char *rest; + + errno = 0; + width = strtoul(fmt, &rest, 10); + if (width == ULONG_MAX && errno != 0) + fprintf(stderr, "strtoul()"); + fmt = rest; + } else if (*fmt == 'u') { + unsigned int *u = va_arg(args, unsigned int *); + + if (u) + bin_to_unsigned(u, binstr, width); + binstr += width; + width = 0; + fmt++; + } else if (*fmt == 'r') { + binstr += width; + width = 0; + fmt++; + } else if (*fmt == 'a') { + char *c = va_arg(args, char *); + + if (c) + bin_to_ascii(c, binstr, width); + binstr += width; + width = 0; + fmt++; + } else { + fmt++; + } + } + + va_end(args); + free(origstr); +} + +/* MMC/SD information parsing functions */ +void print_sd_cid(struct config *config, char *cid) +{ + static const char *months[] = { + "jan", "feb", "mar", "apr", "may", "jun", + "jul", "aug", "sep", "oct", "nov", "dec", + "invalid0", "invalid1", "invalid2", "invalid3", + }; + unsigned int mid; + char oid[3]; + char pnm[6]; + unsigned int prv_major; + unsigned int prv_minor; + unsigned int psn; + unsigned int mdt_month; + unsigned int mdt_year; + unsigned int crc; + + parse_bin(cid, "8u16a40a4u4u32u4r8u4u7u1r", + &mid, &oid[0], &pnm[0], &prv_major, &prv_minor, &psn, + &mdt_year, &mdt_month, &crc); + + oid[2] = '\0'; + pnm[5] = '\0'; + + if (config->verbose) { + printf("======SD/CID======\n"); + + printf("\tMID: 0x%02x (", mid); + if (config->sd_ids[mid]) + printf("%s)\n", config->sd_ids[mid]); + else + printf("Unlisted)\n"); + + printf("\tOID: %s\n", oid); + printf("\tPNM: %s\n", pnm); + printf("\tPRV: 0x%01x%01x ", prv_major, prv_minor); + printf("(%d.%d)\n", prv_major, prv_minor); + printf("\tPSN: 0x%08x\n", psn); + printf("\tMDT: 0x%02x%01x %d %s\n", mdt_year, mdt_month, + 2000 + mdt_year, months[mdt_month]); + printf("\tCRC: 0x%02x\n", crc); + } else { + if (config->sd_ids[mid]) + printf("manufacturer: '%s' '%s'\n", + config->sd_ids[mid], oid); + else + printf("manufacturer: 'Unlisted' '%s'\n", oid); + + printf("product: '%s' %d.%d\n", pnm, prv_major, prv_minor); + printf("serial: 0x%08x\n", psn); + printf("manfacturing date: %d %s\n", 2000 + mdt_year, + months[mdt_month]); + } +} + +void print_mmc_cid(struct config *config, char *cid) +{ + static const char *months[] = { + "jan", "feb", "mar", "apr", "may", "jun", + "jul", "aug", "sep", "oct", "nov", "dec", + "invalid0", "invalid1", "invalid2", "invalid3", + }; + unsigned int mid; + unsigned int cbx; + unsigned int oid; + char pnm[7]; + unsigned int prv_major; + unsigned int prv_minor; + unsigned int psn; + unsigned int mdt_month; + unsigned int mdt_year; + unsigned int crc; + + parse_bin(cid, "8u6r2u8u48a4u4u32u4u4u7u1r", + &mid, &cbx, &oid, &pnm[0], &psn, &prv_major, &prv_minor, + &mdt_year, &mdt_month, &crc); + + pnm[6] = '\0'; + + if (config->verbose) { + printf("======MMC/CID======\n"); + + printf("\tMID: 0x%02x (", mid); + if (config->mmc_ids[mid]) + printf("%s)\n", config->mmc_ids[mid]); + else + printf("Unlisted)\n"); + + printf("\tCBX: 0x%01x (", cbx); + switch (cbx) { + case 0: + printf("card)\n"); + break; + case 1: + printf("BGA)\n"); + break; + case 2: + printf("PoP)\n"); + break; + case 3: + printf("reserved)\n"); + break; + } + + printf("\tOID: 0x%01x\n", oid); + printf("\tPNM: %s\n", pnm); + printf("\tPRV: 0x%01x%01x ", prv_major, prv_minor); + printf("(%d.%d)\n", prv_major, prv_minor); + printf("\tPSN: 0x%08x\n", psn); + printf("\tMDT: 0x%01x%01x %d %s\n", mdt_month, mdt_year, + 1997 + mdt_year, months[mdt_month]); + printf("\tCRC: 0x%02x\n", crc); + } else { + if (config->mmc_ids[mid]) + printf("manufacturer: '%s' '%c'\n", + config->mmc_ids[mid], oid); + else + printf("manufacturer: 'Unlisted' '%c'\n", oid); + + printf("product: '%s' %d.%d\n", pnm, prv_major, prv_minor); + printf("serial: 0x%08x\n", psn); + printf("manfacturing date: %d %s\n", 1997 + mdt_year, + months[mdt_month]); + } +} + +void print_sd_csd(struct config *config, char *csd) +{ + unsigned int csd_structure; + unsigned int taac_timevalue; + unsigned int taac_timeunit; + unsigned int nsac; + unsigned int tran_speed_timevalue; + unsigned int tran_speed_transferrateunit; + unsigned int ccc; + unsigned int read_bl_len; + unsigned int read_bl_partial; + unsigned int write_blk_misalign; + unsigned int read_blk_misalign; + unsigned int dsr_imp; + unsigned int c_size; + unsigned int vdd_r_curr_min; + unsigned int vdd_r_curr_max; + unsigned int vdd_w_curr_min; + unsigned int vdd_w_curr_max; + unsigned int c_size_mult; + unsigned int erase_blk_en; + unsigned int sector_size; + unsigned int wp_grp_size; + unsigned int wp_grp_enable; + unsigned int r2w_factor; + unsigned int write_bl_len; + unsigned int write_bl_partial; + unsigned int file_format_grp; + unsigned int copy; + unsigned int perm_write_protect; + unsigned int tmp_write_protect; + unsigned int file_format; + unsigned int crc; + unsigned int taac; + unsigned int tran_speed; + + parse_bin(csd, "2u", &csd_structure); + + if (csd_structure == 0) { + parse_bin(csd, "2u6r1r4u3u8u1r4u3u12u4u1u1u1u1u2r12u3u3u3u3u3u" + "1u7u7u1u2r3u4u1u5r1u1u1u1u2u2r7u1r", + NULL, &taac_timevalue, &taac_timeunit, &nsac, + &tran_speed_timevalue, + &tran_speed_transferrateunit, &ccc, + &read_bl_len, &read_bl_partial, + &write_blk_misalign, &read_blk_misalign, + &dsr_imp, &c_size, &vdd_r_curr_min, + &vdd_r_curr_max, &vdd_w_curr_min, + &vdd_w_curr_max, &c_size_mult, &erase_blk_en, + §or_size, &wp_grp_size, &wp_grp_enable, + &r2w_factor, &write_bl_len, &write_bl_partial, + &file_format_grp, ©, &perm_write_protect, + &tmp_write_protect, &file_format, &crc); + } else if (csd_structure == 1) { + parse_bin(csd, "2u6r1r4u3u8u1r4u3u12u4u1u1u1u1u6r22u1r1u7u7u1u" + "2r3u4u1u5r1u1u1u1u2u2r7u1r", + NULL, &taac_timevalue, &taac_timeunit, &nsac, + &tran_speed_timevalue, + &tran_speed_transferrateunit, &ccc, + &read_bl_len, &read_bl_partial, + &write_blk_misalign, &read_blk_misalign, + &dsr_imp, &c_size, &erase_blk_en, §or_size, + &wp_grp_size, &wp_grp_enable, &r2w_factor, + &write_bl_len, &write_bl_partial, + &file_format_grp, ©, &perm_write_protect, + &tmp_write_protect, &file_format, &crc); + + vdd_r_curr_min = 0; + c_size_mult = 0; + } else { + printf("Unknown CSD structure: 0x%1x\n", csd_structure); + return; + } + + taac = taac_timevalue << 3 | taac_timeunit; + tran_speed = tran_speed_timevalue << 3 | tran_speed_transferrateunit; + + if (config->verbose) { + float value; + unsigned long long blocks = 0; + int block_size = 0; + unsigned long long memory_capacity; + + printf("======SD/CSD======\n"); + + printf("\tCSD_STRUCTURE: %d\n", csd_structure); + printf("\tTAAC: 0x%02x (", taac); + + switch (taac_timevalue) { + case 0x0: + value = 0.0f; + break; + case 0x1: + value = 1.0f; + break; + case 0x2: + value = 1.2f; + break; + case 0x3: + value = 1.3f; + break; + case 0x4: + value = 1.5f; + break; + case 0x5: + value = 2.0f; + break; + case 0x6: + value = 2.5f; + break; + case 0x7: + value = 3.0f; + break; + case 0x8: + value = 3.5f; + break; + case 0x9: + value = 4.0f; + break; + case 0xa: + value = 4.5f; + break; + case 0xb: + value = 5.0f; + break; + case 0xc: + value = 5.5f; + break; + case 0xd: + value = 6.0f; + break; + case 0xe: + value = 7.0f; + break; + case 0xf: + value = 8.0f; + break; + default: + value = 0.0f; + break; + } + + switch (taac_timeunit) { + case 0x0: + printf("%.2fns)\n", value * 1.0f); + break; + case 0x1: + printf("%.2fns)\n", value * 10.0f); + break; + case 0x2: + printf("%.2fns)\n", value * 100.0f); + break; + case 0x3: + printf("%.2fus)\n", value * 1.0f); + break; + case 0x4: + printf("%.2fus)\n", value * 10.0f); + break; + case 0x5: + printf("%.2fus)\n", value * 100.0f); + break; + case 0x6: + printf("%.2fms)\n", value * 1.0f); + break; + case 0x7: + printf("%.2fms)\n", value * 10.0f); + break; + } + + if (csd_structure == 1 && taac != 0x0e) + printf("Warn: Invalid TAAC (should be 0x0e)\n"); + + printf("\tNSAC: %d clocks\n", nsac); + if (csd_structure == 1 && nsac != 0x00) + printf("Warn: Invalid NSAC (should be 0x00)\n"); + + printf("\tTRAN_SPEED: 0x%02x (", tran_speed); + switch (tran_speed_timevalue) { + case 0x0: + value = 0.0f; + break; + case 0x1: + value = 1.0f; + break; + case 0x2: + value = 1.2f; + break; + case 0x3: + value = 1.3f; + break; + case 0x4: + value = 1.5f; + break; + case 0x5: + value = 2.0f; + break; + case 0x6: + value = 2.5f; + break; + case 0x7: + value = 3.0f; + break; + case 0x8: + value = 3.5f; + break; + case 0x9: + value = 4.0f; + break; + case 0xa: + value = 4.5f; + break; + case 0xb: + value = 5.0f; + break; + case 0xc: + value = 5.5f; + break; + case 0xd: + value = 6.0f; + break; + case 0xe: + value = 7.0f; + break; + case 0xf: + value = 8.0f; + break; + default: + value = 0.0f; + break; + } + + switch (tran_speed_transferrateunit) { + case 0x0: + printf("%.2fkbit/s)\n", value * 100.0f); + break; + case 0x1: + printf("%.2fMbit/s)\n", value * 1.0f); + break; + case 0x2: + printf("%.2fMbit/s)\n", value * 10.0f); + break; + case 0x3: + printf("%.2fMbit/s)\n", value * 100.0f); + break; + default: + printf("reserved)\n"); + break; + } + if (csd_structure == 0 && + (tran_speed != 0x32 && tran_speed != 0x5a)) + printf("Warn: Invalid TRAN_SPEED " + "(should be 0x32 or 0x5a)\n"); + if (csd_structure == 1 && tran_speed != 0x32 && + tran_speed != 0x5a && tran_speed != 0x0b && + tran_speed != 0x2b) + printf("Warn: Invalid TRAN_SPEED " + "(should be 0x32, 0x5a, 0x0b or 0x2b\n"); + + printf("\tCCC: 0x%03x (class: ", ccc); + if (ccc & 0x800) + printf("11, "); + if (ccc & 0x400) + printf("10, "); + if (ccc & 0x200) + printf("9, "); + if (ccc & 0x100) + printf("8, "); + if (ccc & 0x080) + printf("7, "); + if (ccc & 0x040) + printf("6, "); + if (ccc & 0x020) + printf("5, "); + if (ccc & 0x010) + printf("4, "); + if (ccc & 0x008) + printf("3, "); + if (ccc & 0x004) + printf("2, "); + if (ccc & 0x002) + printf("1, "); + if (ccc & 0x001) + printf("0, "); + printf(" )\n"); + + if (csd_structure == 0 && + (ccc != 0x5b5 && ccc != 0x7b5 && ccc != 0x5f5)) + printf("Warn: Invalid CCC (should be 0x5b5, " + "0x7b5 or 0x5f5)\n"); + else if (csd_structure == 1 && ccc != 0x5b5 && ccc != 0x7b5) + printf("Warn: Invalid CCC (should be 0x5b5 or 0x7b5)\n"); + + printf("\tREAD_BL_LEN: 0x%01x (", read_bl_len); + switch (read_bl_len) { + case 0x9: + printf("512 bytes)\n"); + break; + case 0xa: + printf("1024 bytes)\n"); + break; + case 0xb: + printf("2048 bytes)\n"); + break; + default: + printf("reserved bytes)\n"); + break; + } + + if (csd_structure == 1 && read_bl_len != 0x9) + printf("Warn: Invalid READ_BL_LEN (should be 0x9)\n"); + + printf("\tREAD_BL_PARTIAL: 0x%01x\n", read_bl_partial); + if (csd_structure == 0 && read_bl_partial != 0x01) + printf("Warn: Invalid READ_BL_PARTIAL (should be 0x01)\n"); + else if (csd_structure == 1 && read_bl_partial != 0x00) + printf("Warn: Invalid READ_BL_PARTIAL (should be 0x00)\n"); + + printf("\tWRITE_BLK_MISALIGN: 0x%01x\n", write_blk_misalign); + if (csd_structure == 1 && write_blk_misalign != 0x00) + printf("Warn: Invalid WRITE_BLK_MISALIGN (should be 0x00)\n"); + + printf("\tREAD_BLK_MISALIGN: 0x%01x\n", read_blk_misalign); + if (csd_structure == 1 && read_blk_misalign != 0x00) + printf("Warn: Invalid READ_BLK_MISALIGN (should be 0x00)\n"); + + printf("\tDSR_IMP: 0x%01x\n", dsr_imp); + + if (csd_structure == 0) { + int mult; + int blocknr; + int block_len; + + printf("\tC_SIZE: 0x%03x\n", c_size); + printf("\tVDD_R_CURR_MIN: 0x%01x (", vdd_r_curr_min); + switch (vdd_r_curr_min) { + case 0x0: + printf("0.5mA)\n"); + break; + case 0x1: + printf("1mA)\n"); + break; + case 0x2: + printf("5mA)\n"); + break; + case 0x3: + printf("10mA)\n"); + break; + case 0x4: + printf("25mA)\n"); + break; + case 0x5: + printf("35mA)\n"); + break; + case 0x6: + printf("60mA)\n"); + break; + case 0x7: + printf("100mA)\n"); + break; + } + + printf("\tVDD_R_CURR_MAX: 0x%01x (", vdd_r_curr_max); + switch (vdd_r_curr_max) { + case 0x0: + printf("1mA)\n"); + break; + case 0x1: + printf("5mA)\n"); + break; + case 0x2: + printf("10mA)\n"); + break; + case 0x3: + printf("25mA)\n"); + break; + case 0x4: + printf("35mA)\n"); + break; + case 0x5: + printf("45mA)\n"); + break; + case 0x6: + printf("80mA)\n"); + break; + case 0x7: + printf("200mA)\n"); + break; + } + + printf("\tVDD_W_CURR_MIN: 0x%01x (", vdd_w_curr_min); + switch (vdd_w_curr_min) { + case 0x0: + printf("0.5mA)\n"); + break; + case 0x1: + printf("1mA)\n"); + break; + case 0x2: + printf("5mA)\n"); + break; + case 0x3: + printf("10mA)\n"); + break; + case 0x4: + printf("25mA)\n"); + break; + case 0x5: + printf("35mA)\n"); + break; + case 0x6: + printf("60mA)\n"); + break; + case 0x7: + printf("100mA)\n"); + break; + } + + printf("\tVDD_W_CURR_MAX: 0x%01x (", vdd_w_curr_max); + switch (vdd_w_curr_max) { + case 0x0: + printf("1mA)\n"); + break; + case 0x1: + printf("5mA)\n"); + break; + case 0x2: + printf("10mA)\n"); + break; + case 0x3: + printf("25mA)\n"); + break; + case 0x4: + printf("35mA)\n"); + break; + case 0x5: + printf("45mA)\n"); + break; + case 0x6: + printf("80mA)\n"); + break; + case 0x7: + printf("200mA)\n"); + break; + } + + printf("\tC_SIZE_MULT: 0x%01x\n", c_size_mult); + + mult = 1 << (c_size_mult + 2); + blocknr = (c_size + 1) * mult; + block_len = 1 << read_bl_len; + blocks = blocknr; + block_size = block_len; + } else if (csd_structure == 1) { + printf("\tC_SIZE: 0x%06x\n", c_size); + + printf("\tERASE_BLK_EN: 0x%01x\n", erase_blk_en); + if (erase_blk_en != 0x01) + printf("Warn: Invalid ERASE_BLK_EN (should be 0x01)\n"); + + printf("\tSECTOR_SIZE: 0x%02x (Erasable sector: %d blocks)\n", + sector_size, sector_size + 1); + if (sector_size != 0x7f) + printf("Warn: Invalid SECTOR_SIZE (should be 0x7f)\n"); + + printf("\tWP_GRP_SIZE: 0x%02x (Write protect group: %d blocks)\n", + wp_grp_size, wp_grp_size + 1); + if (wp_grp_size != 0x00) + printf("Warn: Invalid WP_GRP_SIZE (should be 0x00)\n"); + + printf("\tWP_GRP_ENABLE: 0x%01x\n", wp_grp_enable); + if (wp_grp_enable != 0x00) + printf("Warn: Invalid WP_GRP_ENABLE (should be 0x00)\n"); + + printf("\tR2W_FACTOR: 0x%01x (Write %d times read)\n", + r2w_factor, r2w_factor); + if (r2w_factor != 0x02) + printf("Warn: Invalid R2W_FACTOR (should be 0x02)\n"); + + printf("\tWRITE_BL_LEN: 0x%01x (", write_bl_len); + switch (write_bl_len) { + case 9: + printf("512 bytes)\n"); + break; + case 10: + printf("1024 bytes)\n"); + break; + case 11: + printf("2048 bytes)\n"); + break; + default: + printf("reserved)\n"); + break; + } + + if (write_bl_len != 0x09) + printf("Warn: Invalid WRITE_BL_LEN (should be 0x09)\n"); + + printf("\tWRITE_BL_PARTIAL: 0x%01x\n", write_bl_partial); + if (write_bl_partial != 0x00) + printf("Warn: Invalid WRITE_BL_PARTIAL (should be 0x00)\n"); + + printf("\tFILE_FORMAT_GRP: 0x%01x\n", file_format_grp); + if (file_format_grp != 0x00) + printf("Warn: Invalid FILE_FORMAT_GRP (should be 0x00)\n"); + + printf("\tCOPY: 0x%01x\n", copy); + printf("\tPERM_WRITE_PROTECT: 0x%01x\n", + perm_write_protect); + printf("\tTMP_WRITE_PROTECT: 0x%01x\n", + tmp_write_protect); + printf("\tFILE_FORMAT: 0x%01x (", + file_format); + + if (file_format_grp == 1) { + printf("reserved)\n"); + } else { + switch (file_format) { + case 0: + printf("partition table)\n"); + break; + case 1: + printf("no partition table)\n"); + break; + case 2: + printf("Universal File Format)\n"); + break; + case 3: + printf("Others/unknown)\n"); + break; + } + } + + if (file_format != 0x00) + printf("Warn: Invalid FILE_FORMAT (should be 0x00)\n"); + + printf("\tCRC: 0x%01x\n", crc); + + memory_capacity = (c_size + 1) * 512ull * 1024ull; + block_size = 512; + blocks = memory_capacity / block_size; + } + + memory_capacity = blocks * block_size; + + printf("\tCAPACITY: "); + if (memory_capacity / (1024ull * 1024ull * 1024ull) > 0) + printf("%.2fGbyte", + memory_capacity / (1024.0 * 1024.0 * 1024.0)); + else if (memory_capacity / (1024ull * 1024ull) > 0) + printf("%.2fMbyte", memory_capacity / (1024.0 * 1024.0)); + else if (memory_capacity / (1024ull) > 0) + printf("%.2fKbyte", memory_capacity / (1024.0)); + else + printf("%.2fbyte", memory_capacity * 1.0); + + printf(" (%lld bytes, %lld sectors, %d bytes each)\n", + memory_capacity, blocks, block_size); + } else { + unsigned long long blocks = 0; + int block_size = 0; + unsigned long long memory_capacity; + + printf("card classes: "); + if (ccc & 0x800) + printf("11 extension, "); + if (ccc & 0x400) + printf("10 switch, "); + if (ccc & 0x200) + printf("9 I/O mode, "); + if (ccc & 0x100) + printf("8 application specific, "); + if (ccc & 0x080) + printf("7 lock card, "); + if (ccc & 0x040) + printf("6 write protection, "); + if (ccc & 0x020) + printf("5 erase, "); + if (ccc & 0x010) + printf("4 block write, "); + if (ccc & 0x008) + printf("3 reserved, "); + if (ccc & 0x004) + printf("2 block read, "); + if (ccc & 0x002) + printf("1 reserved, "); + if (ccc & 0x001) + printf("0 basic, "); + printf("\b\b\n"); + + if (csd_structure == 0) { + int mult; + int blocknr; + int block_len; + + mult = 1 << (c_size_mult + 2); + blocknr = (c_size + 1) * mult; + block_len = 1 << read_bl_len; + blocks = blocknr; + block_size = block_len; + } else if (csd_structure == 1) { + memory_capacity = (c_size + 1) * 512ull * 1024ull; + block_size = 512; + blocks = memory_capacity / block_size; + } + + memory_capacity = blocks * block_size; + + printf("capacity: "); + if (memory_capacity / (1024ull * 1024ull * 1024ull) > 0) + printf("%.2fGbyte", + memory_capacity / (1024.0 * 1024.0 * 1024.0)); + else if (memory_capacity / (1024ull * 1024ull) > 0) + printf("%.2fMbyte", memory_capacity / (1024.0 * 1024.0)); + else if (memory_capacity / (1024ull) > 0) + printf("%.2fKbyte", memory_capacity / (1024.0)); + else + printf("%.2fbyte", memory_capacity * 1.0); + + printf(" (%lld bytes, %lld sectors, %d bytes each)\n", + memory_capacity, blocks, block_size); + } +} + +void print_mmc_csd(struct config *config, char *csd) +{ + unsigned int csd_structure; + unsigned int spec_vers; + unsigned int taac_timevalue; + unsigned int taac_timeunit; + unsigned int nsac; + unsigned int tran_speed_timevalue; + unsigned int tran_speed_transferrateunit; + unsigned int ccc; + unsigned int read_bl_len; + unsigned int read_bl_partial; + unsigned int write_blk_misalign; + unsigned int read_blk_misalign; + unsigned int dsr_imp; + unsigned int c_size; + unsigned int vdd_r_curr_min; + unsigned int vdd_r_curr_max; + unsigned int vdd_w_curr_min; + unsigned int vdd_w_curr_max; + unsigned int c_size_mult; + unsigned int erase_grp_size; + unsigned int erase_grp_mult; + unsigned int wp_grp_size; + unsigned int wp_grp_enable; + unsigned int default_ecc; + unsigned int r2w_factor; + unsigned int write_bl_len; + unsigned int write_bl_partial; + unsigned int content_prot_app; + unsigned int file_format_grp; + unsigned int copy; + unsigned int perm_write_protect; + unsigned int tmp_write_protect; + unsigned int file_format; + unsigned int ecc; + unsigned int crc; + unsigned int taac; + unsigned int tran_speed; + + parse_bin(csd, "2u4u2r1r4u3u8u1r4u3u12u4u1u1u1u1u2r12u3u3u3u3u3u" + "5u5u5u1u2u3u4u1u4r1u1u1u1u1u2u2u7u1r", + &csd_structure, &spec_vers, &taac_timevalue, + &taac_timeunit, &nsac, &tran_speed_timevalue, + &tran_speed_transferrateunit, &ccc, &read_bl_len, + &read_bl_partial, &write_blk_misalign, + &read_blk_misalign, &dsr_imp, &c_size, + &vdd_r_curr_min, &vdd_r_curr_max, + &vdd_w_curr_min, &vdd_w_curr_max, &c_size_mult, + &erase_grp_size, &erase_grp_mult, &wp_grp_size, + &wp_grp_enable, &default_ecc, &r2w_factor, + &write_bl_len, &write_bl_partial, &content_prot_app, + &file_format_grp, ©, &perm_write_protect, + &tmp_write_protect, &file_format, &ecc, &crc); + + taac = taac_timevalue << 3 | taac_timeunit; + tran_speed = tran_speed_timevalue << 3 | tran_speed_transferrateunit; + + if (config->verbose) { + float value; + int mult; + int blocknr; + int block_len; + unsigned long long blocks = 0; + int block_size = 0; + unsigned long long memory_capacity; + + printf("======MMC/CSD======\n"); + + printf("\tCSD_STRUCTURE: 0x%01x (", csd_structure); + switch (csd_structure) { + case 0x0: + printf("v1.0)\n"); + break; + case 0x1: + printf("v1.1)\n"); + break; + case 0x2: + printf("v1.2)\n"); + break; + case 0x3: + printf("version in ext_csd)\n"); + break; + } + + printf("\tSPEC_VERS: 0x%01x (", spec_vers); + switch (spec_vers) { + case 0x0: + printf("v1.0-v1.2)\n"); + break; + case 0x1: + printf("v1.4)\n"); + break; + case 0x2: + printf("v2.0-v2.2)\n"); + break; + case 0x3: + printf("v3.1-v3.31)\n"); + break; + case 0x4: + printf("v4.0-v4.3)\n"); + break; + default: + printf("reserved)\n"); + break; + } + + printf("\tTAAC: 0x%02x (", taac); + switch (taac_timevalue) { + case 0x0: + value = 0.0f; + break; + case 0x1: + value = 1.0f; + break; + case 0x2: + value = 1.2f; + break; + case 0x3: + value = 1.3f; + break; + case 0x4: + value = 1.5f; + break; + case 0x5: + value = 2.0f; + break; + case 0x6: + value = 2.5f; + break; + case 0x7: + value = 3.0f; + break; + case 0x8: + value = 3.5f; + break; + case 0x9: + value = 4.0f; + break; + case 0xa: + value = 4.5f; + break; + case 0xb: + value = 5.0f; + break; + case 0xc: + value = 5.5f; + break; + case 0xd: + value = 6.0f; + break; + case 0xe: + value = 7.0f; + break; + case 0xf: + value = 8.0f; + break; + default: + value = 0.0f; + break; + } + + switch (taac_timeunit) { + case 0x0: + printf("%.2fns)\n", value * 1.0f); + break; + case 0x1: + printf("%.2fns)\n", value * 10.0f); + break; + case 0x2: + printf("%.2fns)\n", value * 100.0f); + break; + case 0x3: + printf("%.2fus)\n", value * 1.0f); + break; + case 0x4: + printf("%.2fus)\n", value * 10.0f); + break; + case 0x5: + printf("%.2fus)\n", value * 100.0f); + break; + case 0x6: + printf("%.2fms)\n", value * 1.0f); + break; + case 0x7: + printf("%.2fms)\n", value * 10.0f); + break; + } + + printf("\tNSAC: %d clocks\n", nsac); + printf("\tTRAN_SPEED: 0x%02x (", tran_speed); + switch (tran_speed_timevalue) { + case 0x0: + value = 0.0f; + break; + case 0x1: + value = 1.0f; + break; + case 0x2: + value = 1.2f; + break; + case 0x3: + value = 1.3f; + break; + case 0x4: + value = 1.5f; + break; + case 0x5: + value = 2.0f; + break; + case 0x6: + value = 2.6f; + break; + case 0x7: + value = 3.0f; + break; + case 0x8: + value = 3.5f; + break; + case 0x9: + value = 4.0f; + break; + case 0xa: + value = 4.5f; + break; + case 0xb: + value = 5.2f; + break; + case 0xc: + value = 5.5f; + break; + case 0xd: + value = 6.0f; + break; + case 0xe: + value = 7.0f; + break; + case 0xf: + value = 8.0f; + break; + default: + value = 0.0f; + break; + } + + switch (tran_speed_transferrateunit) { + case 0x0: + printf("%.2fKHz/s)\n", value * 100.0f); + break; + case 0x1: + printf("%.2fMHz/s)\n", value * 1.0f); + break; + case 0x2: + printf("%.2fMHz/s)\n", value * 10.0f); + break; + case 0x3: + printf("%.2fMHz/s)\n", value * 100.0f); + break; + default: + printf("reserved)\n"); + break; + } + + printf("\tCCC: 0x%03x (class: ", ccc); + if (ccc & 0x800) + printf("11, "); + if (ccc & 0x400) + printf("10, "); + if (ccc & 0x200) + printf("9, "); + if (ccc & 0x100) + printf("8, "); + if (ccc & 0x080) + printf("7, "); + if (ccc & 0x040) + printf("6, "); + if (ccc & 0x020) + printf("5, "); + if (ccc & 0x010) + printf("4, "); + if (ccc & 0x008) + printf("3, "); + if (ccc & 0x004) + printf("2, "); + if (ccc & 0x002) + printf("1, "); + if (ccc & 0x001) + printf("0, "); + printf(" )\n"); + + printf("\tREAD_BL_LEN: 0x%01x (", read_bl_len); + switch (read_bl_len) { + case 0x0: + printf("1 byte)\n"); + break; + case 0x1: + printf("2 byte)\n"); + break; + case 0x2: + printf("4 byte)\n"); + break; + case 0x3: + printf("8 byte)\n"); + break; + case 0x4: + printf("16 byte)\n"); + break; + case 0x5: + printf("32 byte)\n"); + break; + case 0x6: + printf("64 byte)\n"); + break; + case 0x7: + printf("128 byte)\n"); + break; + case 0x8: + printf("256 byte)\n"); + break; + case 0x9: + printf("512 bytes)\n"); + break; + case 0xa: + printf("1024 bytes)\n"); + break; + case 0xb: + printf("2048 bytes)\n"); + break; + case 0xc: + printf("4096 bytes)\n"); + break; + case 0xd: + printf("8192 bytes)\n"); + break; + case 0xe: + printf("16K bytes)\n"); + break; + default: + printf("reserved bytes)\n"); + break; + } + + printf("\tREAD_BL_PARTIAL: 0x%01x (", read_bl_partial); + switch (read_bl_partial) { + case 0x0: + printf("only 512 byte and READ_BL_LEN block size)\n"); + break; + case 0x1: + printf("less than READ_BL_LEN block size can be used)\n"); + break; + } + + printf("\tWRITE_BLK_MISALIGN: 0x%01x (", write_blk_misalign); + switch (write_blk_misalign) { + case 0x0: + printf("writes across block boundaries are invalid)\n"); + break; + case 0x1: + printf("writes across block boundaries are allowed)\n"); + break; + } + + printf("\tREAD_BLK_MISALIGN: 0x%01x (", read_blk_misalign); + switch (read_blk_misalign) { + case 0x0: + printf("reads across block boundaries are invalid)\n"); + break; + case 0x1: + printf("reads across block boundaries are allowed)\n"); + break; + } + + printf("\tDSR_IMP: 0x%01x (", dsr_imp); + switch (dsr_imp) { + case 0x0: + printf("configurable driver stage not available)\n"); + break; + case 0x1: + printf("configurable driver state available)\n"); + break; + } + + printf("\tC_SIZE: 0x%03x\n", c_size); + printf("\tVDD_R_CURR_MIN: 0x%01x (", vdd_r_curr_min); + switch (vdd_r_curr_min) { + case 0x0: + printf("0.5mA)\n"); + break; + case 0x1: + printf("1mA)\n"); + break; + case 0x2: + printf("5mA)\n"); + break; + case 0x3: + printf("10mA)\n"); + break; + case 0x4: + printf("25mA)\n"); + break; + case 0x5: + printf("35mA)\n"); + break; + case 0x6: + printf("60mA)\n"); + break; + case 0x7: + printf("100mA)\n"); + break; + } + + printf("\tVDD_R_CURR_MAX: 0x%01x (", vdd_r_curr_max); + switch (vdd_r_curr_max) { + case 0x0: + printf("1mA)\n"); + break; + case 0x1: + printf("5mA)\n"); + break; + case 0x2: + printf("10mA)\n"); + break; + case 0x3: + printf("25mA)\n"); + break; + case 0x4: + printf("35mA)\n"); + break; + case 0x5: + printf("45mA)\n"); + break; + case 0x6: + printf("80mA)\n"); + break; + case 0x7: + printf("200mA)\n"); + break; + } + + printf("\tVDD_W_CURR_MIN: 0x%01x (", vdd_w_curr_min); + switch (vdd_w_curr_min) { + case 0x0: + printf("0.5mA)\n"); + break; + case 0x1: + printf("1mA)\n"); + break; + case 0x2: + printf("5mA)\n"); + break; + case 0x3: + printf("10mA)\n"); + break; + case 0x4: + printf("25mA)\n"); + break; + case 0x5: + printf("35mA)\n"); + break; + case 0x6: + printf("60mA)\n"); + break; + case 0x7: + printf("100mA)\n"); + break; + } + + printf("\tVDD_W_CURR_MAX: 0x%01x (", vdd_w_curr_max); + switch (vdd_w_curr_max) { + case 0x0: + printf("1mA)\n"); + break; + case 0x1: + printf("5mA)\n"); + break; + case 0x2: + printf("10mA)\n"); + break; + case 0x3: + printf("25mA)\n"); + break; + case 0x4: + printf("35mA)\n"); + break; + case 0x5: + printf("45mA)\n"); + break; + case 0x6: + printf("80mA)\n"); + break; + case 0x7: + printf("200mA)\n"); + break; + } + + printf("\tC_SIZE_MULT: 0x%01x\n", c_size_mult); + printf("\tERASE_GRP_SIZE: 0x%02x\n", erase_grp_size); + printf("\tERASE_GRP_MULT: 0x%02x (%d write blocks/erase group)\n", + erase_grp_mult, (erase_grp_size + 1) * + (erase_grp_mult + 1)); + printf("\tWP_GRP_SIZE: 0x%02x (%d blocks/write protect group)\n", + wp_grp_size, wp_grp_size + 1); + printf("\tWP_GRP_ENABLE: 0x%01x\n", wp_grp_enable); + + printf("\tDEFAULT_ECC: 0x%01x (", default_ecc); + switch (default_ecc) { + case 0: + printf("none)\n"); + break; + case 1: + printf("BCH)\n"); + break; + default: + printf("reserved)\n"); + break; + } + + printf("\tR2W_FACTOR: 0x%01x (Write %d times read)\n", + r2w_factor, r2w_factor); + + printf("\tWRITE_BL_LEN: 0x%01x (", write_bl_len); + switch (write_bl_len) { + case 0x0: + printf("1 byte)\n"); + break; + case 0x1: + printf("2 byte)\n"); + break; + case 0x2: + printf("4 byte)\n"); + break; + case 0x3: + printf("8 byte)\n"); + break; + case 0x4: + printf("16 byte)\n"); + break; + case 0x5: + printf("32 byte)\n"); + break; + case 0x6: + printf("64 byte)\n"); + break; + case 0x7: + printf("128 byte)\n"); + break; + case 0x8: + printf("256 byte)\n"); + break; + case 0x9: + printf("512 bytes)\n"); + break; + case 0xa: + printf("1024 bytes)\n"); + break; + case 0xb: + printf("2048 bytes)\n"); + break; + case 0xc: + printf("4096 bytes)\n"); + break; + case 0xd: + printf("8192 bytes)\n"); + break; + case 0xe: + printf("16K bytes)\n"); + break; + default: + printf("reserved bytes)\n"); + break; + } + + printf("\tWRITE_BL_PARTIAL: 0x%01x (", write_bl_partial); + switch (write_bl_partial) { + case 0x0: + printf("only 512 byte and WRITE_BL_LEN block size)\n"); + break; + case 0x1: + printf("less than WRITE_BL_LEN block size can be used)\n"); + break; + } + + printf("\tCONTENT_PROT_APP: 0x%01x\n", content_prot_app); + printf("\tFILE_FORMAT_GRP: 0x%01x\n", file_format_grp); + if (file_format_grp != 0) + printf("Warn: Invalid FILE_FORMAT_GRP\n"); + + printf("\tCOPY: 0x%01x\n", copy); + printf("\tPERM_WRITE_PROTECT: 0x%01x\n", perm_write_protect); + printf("\tTMP_WRITE_PROTECT: 0x%01x\n", tmp_write_protect); + printf("\tFILE_FORMAT: 0x%01x (", file_format); + if (file_format != 0) + printf("Warn: Invalid FILE_FORMAT\n"); + + if (file_format_grp == 1) { + printf("reserved)\n"); + } else { + switch (file_format) { + case 0: + printf("partition table)\n"); + break; + case 1: + printf("no partition table)\n"); + break; + case 2: + printf("Universal File Format)\n"); + break; + case 3: + printf("Others/unknown)\n"); + break; + } + } + + printf("\tECC: 0x%01x (", ecc); + switch (ecc) { + case 0: + printf("none)\n"); + break; + case 1: + printf("BCH(542,512))\n"); + break; + default: + printf("reserved)\n"); + break; + } + + printf("\tCRC: 0x%01x\n", crc); + + mult = 1 << (c_size_mult + 2); + blocknr = (c_size + 1) * mult; + block_len = 1 << read_bl_len; + blocks = blocknr; + block_size = block_len; + + memory_capacity = blocks * block_size; + + printf("\tCAPACITY: "); + if (memory_capacity / (1024ull * 1024ull * 1024ull) > 0) + printf("%.2fGbyte", + memory_capacity / (1024.0 * 1024.0 * 1024.0)); + else if (memory_capacity / (1024ull * 1024ull) > 0) + printf("%.2fMbyte", memory_capacity / (1024.0 * 1024.0)); + else if (memory_capacity / (1024ull) > 0) + printf("%.2fKbyte", memory_capacity / (1024.0)); + else + printf("%.2fbyte", memory_capacity * 1.0); + + printf(" (%lld bytes, %lld sectors, %d bytes each)\n", + memory_capacity, blocks, block_size); + } else { + int mult; + int blocknr; + int block_len; + unsigned long long blocks = 0; + int block_size = 0; + unsigned long long memory_capacity; + + printf("version: "); + switch (spec_vers) { + case 0x0: + printf("MMC v1.0-v1.2\n"); + break; + case 0x1: + printf("MMC v1.4\n"); + break; + case 0x2: + printf("MMC v2.0-v2.2\n"); + break; + case 0x3: + printf("MMC v3.1-v3.31\n"); + break; + case 0x4: + printf("MMC v4.0-v4.3\n"); + break; + default: + printf("reserved\n"); + break; + } + + printf("card classes: "); + if (ccc & 0x800) + printf("11, "); + if (ccc & 0x400) + printf("10, "); + if (ccc & 0x200) + printf("9, "); + if (ccc & 0x100) + printf("8, "); + if (ccc & 0x080) + printf("7, "); + if (ccc & 0x040) + printf("6, "); + if (ccc & 0x020) + printf("5, "); + if (ccc & 0x010) + printf("4, "); + if (ccc & 0x008) + printf("3, "); + if (ccc & 0x004) + printf("2, "); + if (ccc & 0x002) + printf("1, "); + if (ccc & 0x001) + printf("0, "); + printf("\b\b\n"); + + mult = 1 << (c_size_mult + 2); + blocknr = (c_size + 1) * mult; + block_len = 1 << read_bl_len; + blocks = blocknr; + block_size = block_len; + + memory_capacity = blocks * block_size; + + printf("capacity: "); + if (memory_capacity / (1024ull * 1024ull * 1024ull) > 0) + printf("%.2fGbyte", + memory_capacity / (1024.0 * 1024.0 * 1024.0)); + else if (memory_capacity / (1024ull * 1024ull) > 0) + printf("%.2fMbyte", memory_capacity / (1024.0 * 1024.0)); + else if (memory_capacity / (1024ull) > 0) + printf("%.2fKbyte", memory_capacity / (1024.0)); + else + printf("%.2fbyte", memory_capacity * 1.0); + printf(" (%lld bytes, %lld sectors, %d bytes each)\n", + memory_capacity, blocks, block_size); + } +} + +char *speed_class_speed(unsigned char id, bool ddr) +{ + if (ddr) { + switch (id) { + case 0x00: return "<4.8MB/s"; + case 0x08: return " 4.8MB/s"; + case 0x0a: return " 6.0MB/s"; + case 0x0f: return " 9.0MB/s"; + case 0x14: return "12.0MB/s"; + case 0x1e: return "18.0MB/s"; + case 0x28: return "24.0MB/s"; + case 0x32: return "30.0MB/s"; + case 0x3c: return "36.0MB/s"; + case 0x46: return "42.0MB/s"; + case 0x50: return "48.0MB/s"; + case 0x64: return "60.0MB/s"; + case 0x78: return "72.0MB/s"; + case 0x8c: return "84.0MB/s"; + case 0xa0: return "96.0MB/s"; + default: return "??.?MB/s"; + } + } else { + switch (id) { + case 0x00: return "<2.4MB/s"; + case 0x08: return " 2.4MB/s"; + case 0x0a: return " 3.0MB/s"; + case 0x0f: return " 4.5MB/s"; + case 0x14: return " 6.0MB/s"; + case 0x1e: return " 9.0MB/s"; + case 0x28: return "12.0MB/s"; + case 0x32: return "15.0MB/s"; + case 0x3c: return "18.0MB/s"; + case 0x46: return "21.0MB/s"; + case 0x50: return "24.0MB/s"; + case 0x64: return "30.0MB/s"; + case 0x78: return "36.0MB/s"; + case 0x8c: return "42.0MB/s"; + case 0xa0: return "48.0MB/s"; + default: return "??.?MB/s"; + } + } +} + +char speed_class_name(unsigned char id) +{ + switch (id) { + case 0x00: return '?'; + case 0x08: return 'A'; + case 0x0a: return 'B'; + case 0x0f: return 'C'; + case 0x14: return 'D'; + case 0x1e: return 'E'; + case 0x28: return 'F'; + case 0x32: return 'G'; + case 0x3c: return 'H'; + case 0x46: return 'J'; + case 0x50: return 'K'; + case 0x64: return 'M'; + case 0x78: return 'O'; + case 0x8c: return 'R'; + case 0xa0: return 'T'; + default: return '?'; + } +} + +char *power_class_consumption(unsigned int id, bool volt360) +{ + if (volt360) { + switch (id) { + case 0x0: return "100-200mA"; + case 0x1: return "120-220mA"; + case 0x2: return "150-250mA"; + case 0x3: return "180-280mA"; + case 0x4: return "200-300mA"; + case 0x5: return "220-320mA"; + case 0x6: return "250-350mA"; + case 0x7: return "300-400mA"; + case 0x8: return "350-450mA"; + case 0x9: return "400-500mA"; + case 0xa: return "450-550mA"; + default: return "reserved"; + } + } else { + switch (id) { + case 0x0: return "65-130mA"; + case 0x1: return "70-140mA"; + case 0x2: return "80-160mA"; + case 0x3: return "90-180mA"; + case 0x4: return "100-200mA"; + case 0x5: return "120-220mA"; + case 0x6: return "140-240mA"; + case 0x7: return "160-260mA"; + case 0x8: return "180-280mA"; + case 0x9: return "200-300mA"; + case 0xa: return "250-350mA"; + default: return "reserved"; + } + } +} + +char *sleep_consumption(unsigned int id) +{ + switch (id) { + case 0x00: return "not defined"; + case 0x01: return "2uA"; + case 0x02: return "4uA"; + case 0x03: return "8uA"; + case 0x04: return "16uA"; + case 0x05: return "32uA"; + case 0x06: return "64uA"; + case 0x07: return "128uA"; + case 0x08: return "0.256mA"; + case 0x09: return "0.512mA"; + case 0x0a: return "1.024mA"; + case 0x0b: return "2.048mA"; + case 0x0c: return "4.096mA"; + case 0x0d: return "8.192mA"; + default: return "reserved"; + } +} + +void print_sd_scr(struct config *config, char *scr) +{ + unsigned int scr_structure; + unsigned int sd_spec; + unsigned int data_stat_after_erase; + unsigned int sd_security; + unsigned int sd_bus_widths; + unsigned int sd_spec3; + unsigned int ex_security; + unsigned int cmd_support; + + parse_bin(scr, "4u4u1u3u4u1u4u9r2u32r", + &scr_structure, &sd_spec, &data_stat_after_erase, + &sd_security, &sd_bus_widths, &sd_spec3, + &ex_security, &cmd_support); + + if (config->verbose) { + printf("======SD/SCR======\n"); + + printf("\tSCR_STRUCTURE: 0x%01x (", scr_structure); + switch (scr_structure) { + case 0: + printf("SCR v1.0)\n"); + break; + default: + printf("reserved)\n"); + break; + } + + printf("\tSD_SPEC: 0x%01x (", sd_spec); + switch (sd_spec) { + case 0: + printf("SD v1.0/1.01)\n"); + break; + case 1: + printf("SD v1.10)\n"); + break; + case 2: + printf("SD v2.00/v3.0x)\n"); + break; + case 3: + printf("SD v4.00)\n"); + break; + default: + printf("reserved)\n"); + break; + } + + printf("\tDATA_STAT_AFTER_ERASE: 0x%01x\n", + data_stat_after_erase); + + printf("\tSD_SECURITY: 0x%01x (", sd_security); + switch (sd_security) { + case 0: + printf("no security)\n"); + break; + case 1: + printf("not used)\n"); + break; + case 2: + printf("SDSC card/security v1.01)\n"); + break; + case 3: + printf("SDHC card/security v2.00)\n"); + break; + case 4: + printf("SDXC card/security v3.xx)\n"); + break; + default: + printf("reserved)\n"); + break; + } + + printf("\tSD_BUS_WIDTHS: 0x%01x (", sd_bus_widths); + if (BITS(sd_bus_widths, 2, 2)) + printf("4bit, "); + if (BITS(sd_bus_widths, 0, 0)) + printf("1bit, "); + printf(" bus)\n"); + + printf("\tSD_SPEC3: 0x%01x (", sd_spec3); + if (sd_spec >= 2) { + switch (sd_spec3) { + case 0: + printf("SD v2.00)\n"); + break; + case 1: + printf("SD v3.0x)\n"); + break; + } + } else { + printf("SD 1.xx)\n"); + } + + printf("\tEX_SECURITY: 0x%01x\n", ex_security); + + printf("\tCMD_SUPPORT: 0x%01x (", cmd_support); + if (BITS(cmd_support, 1, 1)) + printf("CMD23 "); + if (BITS(cmd_support, 0, 0)) + printf("CMD20 "); + printf(" )\n"); + } else { + printf("version: "); + switch (sd_spec) { + case 0: + printf("SD 1.0/1.01\n"); + break; + case 1: + printf("SD 1.10\n"); + break; + case 2: + switch (sd_spec3) { + case 0: + printf("SD 2.00\n"); + break; + case 1: + printf("SD 3.0x\n"); + break; + default: + printf("unknown\n"); + break; + } + break; + case 3: + printf("SD 4.00\n"); + break; + default: + printf("unknown\n"); + break; + } + + printf("bus widths: "); + if (BITS(sd_bus_widths, 2, 2)) + printf("4bit, "); + if (BITS(sd_bus_widths, 0, 0)) + printf("1bit, "); + printf("\b\b\n"); + } +} + +/* MMC/SD interface processing functions */ +void print_info(struct config *config, char *type, + char *cid, char *csd, char *scr, char *ext_csd) +{ + printf("type: '%s'\n", type); + + if (!strcmp(type, "SD") && cid) + print_sd_cid(config, cid); + else if (!strcmp(type, "MMC") && cid) + print_mmc_cid(config, cid); + + if (!strcmp(type, "SD") && scr) + print_sd_scr(config, scr); + + if (!strcmp(type, "MMC") && csd) + print_mmc_csd(config, csd); + else if (!strcmp(type, "SD") && csd) + print_sd_csd(config, csd); +} + +int process_dir(struct config *config, enum REG_TYPE reg) +{ + char *type = NULL, *cid = NULL, *csd = NULL, *scr = NULL, *ext_csd = NULL; + int ret = 0; + + if (chdir(config->dir) < 0) { + fprintf(stderr, + "MMC/SD information directory '%s' does not exist.\n", + config->dir); + return -1; + } + + type = read_file("type"); + if (!type) { + fprintf(stderr, + "Could not read card interface type in directory '%s'.\n", + config->dir); + return -1; + } + + if (strcmp(type, "MMC") && strcmp(type, "SD")) { + fprintf(stderr, "Unknown type: '%s'\n", type); + ret = -1; + goto err; + } + + switch (reg) { + case CID: + cid = read_file("cid"); + if (!cid) { + fprintf(stderr, + "Could not read card identity in directory '%s'.\n", + config->dir); + ret = -1; + goto err; + } + break; + case CSD: + csd = read_file("csd"); + if (!csd) { + fprintf(stderr, + "Could not read card specific data in " + "directory '%s'.\n", config->dir); + ret = -1; + goto err; + } + break; + case SCR: + if (!strcmp(type, "SD")) { + scr = read_file("scr"); + if (!scr) { + fprintf(stderr, "Could not read SD card " + "configuration in directory '%s'.\n", + config->dir); + ret = -1; + goto err; + } + } + break; + case EXT_CSD: + if (!strcmp(type, "MMC")) { + ext_csd = read_file("ext_csd"); + if (!ext_csd) { + fprintf(stderr, "Could not read extra specific " + "data in directory '%s'.\n", + config->dir); + ret = -1; + goto err; + } + } + break; + default: + goto err; + } + + print_info(config, type, cid, csd, scr, ext_csd); + +err: + free(ext_csd); + free(scr); + free(csd); + free(cid); + free(type); + + return ret; +} + +int lsmmc_main(struct config *config, int argc, char **argv) +{ + int ret; + + memset(config, 0, sizeof(*config)); + config->mmc_ids = calloc(IDS_MAX, sizeof(char *)); + config->sd_ids = calloc(IDS_MAX, sizeof(char *)); + if (!config->mmc_ids || !config->sd_ids) { + fprintf(stderr, "Could not allocate memory for lsmmc.\n"); + return -1; + } + + ret = parse_opts(argc, argv, config); + if (ret) + return ret; + + return parse_ids(config); +} + +void lsmmc_free(struct config *config) +{ + free(config->mmc_ids); + free(config->sd_ids); + free(config->dir); +} + +int do_read_csd(int argc, char **argv) +{ + struct config config; + int ret; + + if (argc != 2 && argc != 3) { + fprintf(stderr, "Usage: Print CSD data from .\n"); + exit(1); + } + + ret = lsmmc_main(&config, argc, argv); + if (ret) + goto out; + + if (config.dir) + ret = process_dir(&config, CSD); + +out: + lsmmc_free(&config); + + return ret; +} + +int do_read_cid(int argc, char **argv) +{ + struct config config; + int ret; + + if (argc != 2 && argc != 3) { + fprintf(stderr, "Usage: Print CID data from .\n"); + exit(1); + } + + ret = lsmmc_main(&config, argc, argv); + if (ret) + goto out; + + if (config.dir) + ret = process_dir(&config, CID); + +out: + lsmmc_free(&config); + + return ret; +} + +int do_read_scr(int argc, char **argv) +{ + struct config config; + int ret; + + if (argc != 2 && argc != 3) { + fprintf(stderr, "Usage: Print SCR data from .\n"); + exit(1); + } + + ret = lsmmc_main(&config, argc, argv); + if (ret) + goto out; + + if (config.dir) + ret = process_dir(&config, SCR); + +out: + lsmmc_free(&config); + + return ret; +} diff --git a/emmc_hal_lib/mmc-utils/man/Makefile b/emmc_hal_lib/mmc-utils/man/Makefile new file mode 100644 index 0000000..da79a50 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/man/Makefile @@ -0,0 +1,5 @@ +all: +clean: +install: + +.PHONY: all clean install diff --git a/emmc_hal_lib/mmc-utils/man/mmc.1 b/emmc_hal_lib/mmc-utils/man/mmc.1 new file mode 100644 index 0000000..bdb6f09 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/man/mmc.1 @@ -0,0 +1,125 @@ +.TH MMC 1 "2015-11-16" "0.1" "mmc-utils" +.SH +NAME +mmc-utils \- Configure MMC storage devices from userspace. +.SH +SYNOPSIS +mmc [ []] [--help] +.PP +mmc [] --help +.SH +DESCRIPTION +mmc-utils is a tool for configuring MMC storage devices from userspace. +.SH +COMMANDS AND OPTIONS +.TP +.BR "help | \-\-help | -h | " "(no arguments)" +Shows the abbreviated help menu in the terminal. +.TP +.BR "extcsd read " +Print extcsd data from . +.TP +.BR "writeprotect get " +Determine the eMMC writeprotect status of . +.TP +.BR "writeprotect set " +Set the eMMC writeprotect status of . +This sets the eMMC to be write-protected until next boot. +.TP +.BR "disable 512B emulation " +Set the eMMC data sector size to 4KB by disabling emulation on +. +.TP +.BR "gp create <-y|-n> " +create general purpose partition for the . +Dry-run only unless -y is passed. +To set enhanced attribute to general partition being created set to 1 else set it to 0. +To set extended attribute to general partition set to 1,2 else set it to 0. +NOTE! This is a one-time programmable (unreversible) change. +.TP +.BR "enh_area set <-y|-n> " +Enable the enhanced user area for the . +Dry-run only unless -y is passed. +NOTE! This is a one-time programmable (unreversible) change. +.TP +.BR "write_reliability set <-y|-n> " +Enable write reliability per partition for the . +Dry-run only unless -y is passed. +NOTE! This is a one-time programmable (unreversible) change. +.TP +.BR "status get " +Print the response to STATUS_SEND (CMD13). +.TP +.BR "bootpart enable " +Enable the boot partition for the . +Disable the boot partition for the with set to 0. +To receive acknowledgment of boot from the card set +to 1, else set it to 0. +.TP +.BR "bootbus set " +Set Boot Bus Conditions. + must be "single_backward|single_hs|dual" + must be "x1|retain" + must be "x1|x4|x8" +.TP +.BR "bkops enable " +Enable the eMMC BKOPS feature on . +NOTE! This is a one-time programmable (unreversible) change. +.TP +.BR "hwreset enable " +Permanently enable the eMMC H/W Reset feature on . +NOTE! This is a one-time programmable (unreversible) change. +.TP +.BR "hwreset disable " +Permanently disable the eMMC H/W Reset feature on . +NOTE! This is a one-time programmable (unreversible) change. +.TP +.BR "sanitize " +Send Sanitize command to the . +This will delete the unmapped memory region of the device. +.TP +.BR "rpmb write-key " +Program authentication key which is 32 bytes length and stored +in the specified file. Also you can specify '-' instead of +key file path to read the key from stdin. +NOTE! This is a one-time programmable (unreversible) change. +.TP +.BR "rpmb read-counter " +Counter value for the will be read to stdout. +.TP +.BR "rpmb read-block
[key file]" +Blocks of 256 bytes will be read from to output +file or stdout if '-' is specified. If key is specified - read +data will be verified. Instead of regular path you can specify +'-' to read key from stdin. +.TP +.BR "rpmb write-block
<256 byte data file> " +Block of 256 bytes will be written from data file to +. Also you can specify '-' instead of key +file path or data file to read the data from stdin. +.TP +.BR "cache enable " +Enable the eMMC cache feature on . +NOTE! The cache is an optional feature on devices >= eMMC4.5. +.TP +.BR "cache disable " +Disable the eMMC cache feature on . +NOTE! The cache is an optional feature on devices >= eMMC4.5. +.TP +.BR " --help" +Show detailed help for a command or subset of commands. + +.SH +EXAMPLES +.TP +Program authentication key from stdin: +echo -n AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH | mmc rpmb write-key /dev/mmcblk0rpmb - +.TP +Write a block of 256 bytes of data to an rpmb device: +$ (awk 'BEGIN {while (c++<256) printf "a"}' | echo -n AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH) | mmc rpmb write-block /dev/mmcblk0rpmb 0x02 - - +.TP +Read a block of 256 bytes of data from an rpmb device to stdout: + $ echo -n AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH | mmc rpmb read-block /dev/mmcblk0rpmb 0x02 2 /tmp/block - +.TP +Read 2 blocks of 256 bytes from rpmb device to /tmp/block without verification: +$ mmc rpmb read-block /dev/mmcblk0rpmb 0x02 2 /tmp/block diff --git a/emmc_hal_lib/mmc-utils/mmc.c b/emmc_hal_lib/mmc-utils/mmc.c new file mode 100644 index 0000000..698f964 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/mmc.c @@ -0,0 +1,496 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License v2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 021110-1307, USA. + * + * Modified to add field firmware update support, + * those modifications are Copyright (c) 2016 SanDisk Corp. + * + * (This code is based on btrfs-progs/btrfs.c.) + */ + +#define _GNU_SOURCE +#include +#include +#include + +#include "mmc_cmds.h" + +#define MMC_VERSION "0.1" + +#define BASIC_HELP 0 +#define ADVANCED_HELP 1 + +typedef int (*CommandFunction)(int argc, char **argv); + +struct Command { + CommandFunction func; /* function which implements the command */ + int nargs; /* if == 999, any number of arguments + if >= 0, number of arguments, + if < 0, _minimum_ number of arguments */ + char *verb; /* verb */ + char *help; /* help lines; from the 2nd line onward they + are automatically indented */ + char *adv_help; /* advanced help message; from the 2nd line + onward they are automatically indented */ + + /* the following fields are run-time filled by the program */ + char **cmds; /* array of subcommands */ + int ncmds; /* number of subcommand */ +}; + +static struct Command commands[] = { + /* + * avoid short commands different for the case only + */ + { do_read_extcsd, -1, + "extcsd read", "\n" + "Print extcsd data from .", + NULL + }, + { do_writeprotect_boot_get, -1, + "writeprotect boot get", "\n" + "Print the boot partitions write protect status for .", + NULL + }, + { do_writeprotect_boot_set, -1, + "writeprotect boot set", "\n" + "Set the boot partitions write protect status for .\nThis sets the eMMC boot partitions to be write-protected until\nthe next boot.", + NULL + }, + { do_writeprotect_user_set, -4, + "writeprotect user set", "" "" "" "\n" +#ifdef DANGEROUS_COMMANDS_ENABLED + "Set the write protect configuration for the specified region\nof the user area for .\n must be \"none|temp|pwron|perm\".\n \"none\" - Clear temporary write protection.\n \"temp\" - Set temporary write protection.\n \"pwron\" - Set write protection until the next poweron.\n \"perm\" - Set permanent write protection.\n specifies the first block of the protected area.\n specifies the size of the protected area in blocks.\nNOTE! The area must start and end on Write Protect Group\nboundries, Use the \"writeprotect user get\" command to get the\nWrite Protect Group size.\nNOTE! \"perm\" is a one-time programmable (unreversible) change.", +#else + "Set the write protect configuration for the specified region\nof the user area for .\n must be \"none|temp|pwron\".\n \"none\" - Clear temporary write protection.\n \"temp\" - Set temporary write protection.\n \"pwron\" - Set write protection until the next poweron.\n specifies the first block of the protected area.\n specifies the size of the protected area in blocks.\nNOTE! The area must start and end on Write Protect Group\nboundries, Use the \"writeprotect user get\" command to get the\nWrite Protect Group size.", +#endif /* DANGEROUS_COMMANDS_ENABLED */ + NULL + }, + { do_writeprotect_user_get, -1, + "writeprotect user get", "\n" + "Print the user areas write protect configuration for .", + NULL + }, + { do_disable_512B_emulation, -1, + "disable 512B emulation", "\n" + "Set the eMMC data sector size to 4KB by disabling emulation on\n.", + NULL + }, + { do_create_gp_partition, -6, + "gp create", "<-y|-n|-c> " " " " " " " " " "\n" + "Create general purpose partition for the .\nDry-run only unless -y or -c is passed.\nUse -c if more partitioning settings are still to come.\nNOTE! This is a one-time programmable (unreversible) change.\nTo set enhanced attribute to general partition being created set\n to 1 else set it to 0.\nTo set extended attribute to general partition\n set to 1,2 else set it to 0", + NULL + }, + { do_enh_area_set, -4, + "enh_area set", "<-y|-n|-c> " " " " " "\n" + "Enable the enhanced user area for the .\nDry-run only unless -y or -c is passed.\nUse -c if more partitioning settings are still to come.\nNOTE! This is a one-time programmable (unreversible) change.", + NULL + }, + { do_write_reliability_set, -2, + "write_reliability set", "<-y|-n|-c> " " " "\n" + "Enable write reliability per partition for the .\nDry-run only unless -y or -c is passed.\nUse -c if more partitioning settings are still to come.\nNOTE! This is a one-time programmable (unreversible) change.", + NULL + }, + { do_status_get, -1, + "status get", "\n" + "Print the response to STATUS_SEND (CMD13).", + NULL + }, + { do_write_boot_en, -3, + "bootpart enable", " " " " "\n" + "Enable the boot partition for the .\nDisable the boot partition for the if is set to 0.\nTo receive acknowledgment of boot from the card set \nto 1, else set it to 0.", + NULL + }, + { do_boot_bus_conditions_set, -4, + "bootbus set", " " " " " " "\n" + "Set Boot Bus Conditions.\n" + " must be \"single_backward|single_hs|dual\"\n" + " must be \"x1|retain\"\n" + " must be \"x1|x4|x8\"", + NULL + }, + { do_write_bkops_en, -1, + "bkops enable", "\n" + "Enable the eMMC BKOPS feature on .\nNOTE! This is a one-time programmable (unreversible) change.", + NULL + }, + { do_hwreset_en, -1, + "hwreset enable", "\n" + "Permanently enable the eMMC H/W Reset feature on .\nNOTE! This is a one-time programmable (unreversible) change.", + NULL + }, + { do_hwreset_dis, -1, + "hwreset disable", "\n" + "Permanently disable the eMMC H/W Reset feature on .\nNOTE! This is a one-time programmable (unreversible) change.", + NULL + }, + { do_sanitize, -1, + "sanitize", "\n" + "Send Sanitize command to the .\nThis will delete the unmapped memory region of the device.", + NULL + }, + { do_rpmb_write_key, -1, + "rpmb write-key", " \n" + "Program authentication key which is 32 bytes length and stored\n" + "in the specified file. Also you can specify '-' instead of\n" + "key file path to read the key from stdin.\n" + "NOTE! This is a one-time programmable (unreversible) change.\n" + "Example:\n" + " $ echo -n AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH | \\\n" + " mmc rpmb write-key /dev/mmcblk0rpmb -", + NULL + }, + { do_rpmb_read_counter, -1, + "rpmb read-counter", "\n" + "Counter value for the will be read to stdout.", + NULL + }, + { do_rpmb_read_block, -1, + "rpmb read-block", "
[key file]\n" + "Blocks of 256 bytes will be read from to output\n" + "file or stdout if '-' is specified. If key is specified - read\n" + "data will be verified. Instead of regular path you can specify\n" + "'-' to read key from stdin.\n" + "Example:\n" + " $ echo -n AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH | \\\n" + " mmc rpmb read-block /dev/mmcblk0rpmb 0x02 2 /tmp/block -\n" + "or read two blocks without verification\n" + " $ mmc rpmb read-block /dev/mmcblk0rpmb 0x02 2 /tmp/block", + NULL + }, + { do_rpmb_write_block, -1, + "rpmb write-block", "
<256 byte data file> \n" + "Block of 256 bytes will be written from data file to\n" + ". Also you can specify '-' instead of key\n" + "file path or data file to read the data from stdin.\n" + "Example:\n" + " $ (awk 'BEGIN {while (c++<256) printf \"a\"}' | \\\n" + " echo -n AAAABBBBCCCCDDDDEEEEFFFFGGGGHHHH) | \\\n" + " mmc rpmb write-block /dev/mmcblk0rpmb 0x02 - -", + NULL + }, + { do_cache_en, -1, + "cache enable", "\n" + "Enable the eMMC cache feature on .\n" + "NOTE! The cache is an optional feature on devices >= eMMC4.5.", + NULL + }, + { do_cache_dis, -1, + "cache disable", "\n" + "Disable the eMMC cache feature on .\n" + "NOTE! The cache is an optional feature on devices >= eMMC4.5.", + NULL + }, + { do_read_csd, -1, + "csd read", "\n" + "Print CSD data from .\n" + "The device path should specify the csd file directory.", + NULL + }, + { do_read_cid, -1, + "cid read", "\n" + "Print CID data from .\n" + "The device path should specify the cid file directory.", + NULL + }, + { do_read_scr, -1, + "scr read", "\n" + "Print SCR data from .\n" + "The device path should specify the scr file directory.", + NULL + }, + { do_ffu, -2, + "ffu", " \n" + "Run Field Firmware Update with on .\n", + NULL + }, + { 0, 0, 0, 0 } +}; + +static char *get_prgname(char *programname) +{ + char *np; + np = strrchr(programname,'/'); + if(!np) + np = programname; + else + np++; + + return np; +} + +static void print_help(char *programname, struct Command *cmd, int helptype) +{ + char *pc; + + printf("\t%s %s ", programname, cmd->verb ); + + if (helptype == ADVANCED_HELP && cmd->adv_help) + for(pc = cmd->adv_help; *pc; pc++){ + putchar(*pc); + if(*pc == '\n') + printf("\t\t"); + } + else + for(pc = cmd->help; *pc; pc++){ + putchar(*pc); + if(*pc == '\n') + printf("\t\t"); + } + + putchar('\n'); +} + +static void help(char *np) +{ + struct Command *cp; + + printf("Usage:\n"); + for( cp = commands; cp->verb; cp++ ) + print_help(np, cp, BASIC_HELP); + + printf("\n\t%s help|--help|-h\n\t\tShow the help.\n",np); + printf("\n\t%s --help\n\t\tShow detailed help for a command or subset of commands.\n",np); + printf("\n%s\n", MMC_VERSION); +} + +static int split_command(char *cmd, char ***commands) +{ + int c, l; + char *p, *s; + + for( *commands = 0, l = c = 0, p = s = cmd ; ; p++, l++ ){ + if ( *p && *p != ' ' ) + continue; + + /* c + 2 so that we have room for the null */ + (*commands) = realloc( (*commands), sizeof(char *)*(c + 2)); + (*commands)[c] = strndup(s, l); + c++; + l = 0; + s = p+1; + if( !*p ) break; + } + + (*commands)[c] = 0; + return c; +} + +/* + This function checks if the passed command is ambiguous +*/ +static int check_ambiguity(struct Command *cmd, char **argv){ + int i; + struct Command *cp; + /* check for ambiguity */ + for( i = 0 ; i < cmd->ncmds ; i++ ){ + int match; + for( match = 0, cp = commands; cp->verb; cp++ ){ + int j, skip; + char *s1, *s2; + + if( cp->ncmds < i ) + continue; + + for( skip = 0, j = 0 ; j < i ; j++ ) + if( strcmp(cmd->cmds[j], cp->cmds[j])){ + skip=1; + break; + } + if(skip) + continue; + + if( !strcmp(cmd->cmds[i], cp->cmds[i])) + continue; + for(s2 = cp->cmds[i], s1 = argv[i+1]; + *s1 == *s2 && *s1; s1++, s2++ ) ; + if( !*s1 ) + match++; + } + if(match){ + int j; + fprintf(stderr, "ERROR: in command '"); + for( j = 0 ; j <= i ; j++ ) + fprintf(stderr, "%s%s",j?" ":"", argv[j+1]); + fprintf(stderr, "', '%s' is ambiguous\n",argv[j]); + return -2; + } + } + return 0; +} + +/* + * This function, compacts the program name and the command in the first + * element of the '*av' array + */ +static int prepare_args(int *ac, char ***av, char *prgname, struct Command *cmd ){ + + char **ret; + int i; + char *newname; + + ret = (char **)malloc(sizeof(char*)*(*ac+1)); + newname = (char*)malloc(strlen(prgname)+strlen(cmd->verb)+2); + if( !ret || !newname ){ + free(ret); + free(newname); + return -1; + } + + ret[0] = newname; + for(i=0; i < *ac ; i++ ) + ret[i+1] = (*av)[i]; + + strcpy(newname, prgname); + strcat(newname, " "); + strcat(newname, cmd->verb); + + (*ac)++; + *av = ret; + + return 0; + +} + +/* + This function performs the following jobs: + - show the help if '--help' or 'help' or '-h' are passed + - verify that a command is not ambiguous, otherwise show which + part of the command is ambiguous + - if after a (even partial) command there is '--help' show detailed help + for all the matching commands + - if the command doesn't match show an error + - finally, if a command matches, they return which command matched and + the arguments + + The function return 0 in case of help is requested; <0 in case + of uncorrect command; >0 in case of matching commands + argc, argv are the arg-counter and arg-vector (input) + *nargs_ is the number of the arguments after the command (output) + **cmd_ is the invoked command (output) + ***args_ are the arguments after the command + +*/ +static int parse_args(int argc, char **argv, + CommandFunction *func_, + int *nargs_, char **cmd_, char ***args_ ) +{ + struct Command *cp; + struct Command *matchcmd=0; + char *prgname = get_prgname(argv[0]); + int i=0, helprequested=0; + + if( argc < 2 || !strcmp(argv[1], "help") || + !strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")){ + help(prgname); + return 0; + } + + for( cp = commands; cp->verb; cp++ ) + if( !cp->ncmds) + cp->ncmds = split_command(cp->verb, &(cp->cmds)); + + for( cp = commands; cp->verb; cp++ ){ + int match; + + if( argc-1 < cp->ncmds ) + continue; + for( match = 1, i = 0 ; i < cp->ncmds ; i++ ){ + char *s1, *s2; + s1 = cp->cmds[i]; + s2 = argv[i+1]; + + for(s2 = cp->cmds[i], s1 = argv[i+1]; + *s1 == *s2 && *s1; + s1++, s2++ ) ; + if( *s1 ){ + match=0; + break; + } + } + + /* If you understand why this code works ... + you are a genious !! */ + if(argc>i+1 && !strcmp(argv[i+1],"--help")){ + if(!helprequested) + printf("Usage:\n"); + print_help(prgname, cp, ADVANCED_HELP); + helprequested=1; + continue; + } + + if(!match) + continue; + + matchcmd = cp; + *nargs_ = argc-matchcmd->ncmds-1; + *cmd_ = matchcmd->verb; + *args_ = argv+matchcmd->ncmds+1; + *func_ = cp->func; + + break; + } + + if(helprequested){ + printf("\n%s\n", MMC_VERSION); + return 0; + } + + if(!matchcmd){ + fprintf( stderr, "ERROR: unknown command '%s'\n",argv[1]); + help(prgname); + return -1; + } + + if(check_ambiguity(matchcmd, argv)) + return -2; + + /* check the number of argument */ + if (matchcmd->nargs < 0 && matchcmd->nargs < -*nargs_ ){ + fprintf(stderr, "ERROR: '%s' requires minimum %d arg(s)\n", + matchcmd->verb, -matchcmd->nargs); + return -2; + } + if(matchcmd->nargs >= 0 && matchcmd->nargs != *nargs_ && matchcmd->nargs != 999){ + fprintf(stderr, "ERROR: '%s' requires %d arg(s)\n", + matchcmd->verb, matchcmd->nargs); + return -2; + } + + if (prepare_args( nargs_, args_, prgname, matchcmd )){ + fprintf(stderr, "ERROR: not enough memory\\n"); + return -20; + } + + + return 1; +} + + +int cmd_main(int ac, char **av ) +{ + char *cmd=0, **args=0; + int nargs=0, r; + CommandFunction func=0; + + r = parse_args(ac, av, &func, &nargs, &cmd, &args); + if( r <= 0 ){ + /* error or no command to parse*/ + exit(-r); + } + + exit(func(nargs, args)); +} + + diff --git a/emmc_hal_lib/mmc-utils/mmc.h b/emmc_hal_lib/mmc-utils/mmc.h new file mode 100644 index 0000000..648fb26 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/mmc.h @@ -0,0 +1,199 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License v2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 021110-1307, USA. + * + * Modified to add field firmware update support, + * those modifications are Copyright (c) 2016 SanDisk Corp. + */ + +#include + +/* From kernel linux/major.h */ +#define MMC_BLOCK_MAJOR 179 + +/* From kernel linux/mmc/mmc.h */ +#define MMC_SWITCH 6 /* ac [31:0] See below R1b */ +#define MMC_SEND_EXT_CSD 8 /* adtc R1 */ +#define MMC_SEND_STATUS 13 /* ac [31:16] RCA R1 */ +#define R1_SWITCH_ERROR (1 << 7) /* sx, c */ +#define MMC_SWITCH_MODE_WRITE_BYTE 0x03 /* Set target to value */ +#define MMC_READ_MULTIPLE_BLOCK 18 /* adtc [31:0] data addr R1 */ +#define MMC_WRITE_BLOCK 24 /* adtc [31:0] data addr R1 */ +#define MMC_WRITE_MULTIPLE_BLOCK 25 /* adtc R1 */ +#define MMC_SET_WRITE_PROT 28 /* ac [31:0] data addr R1b */ +#define MMC_CLEAR_WRITE_PROT 29 /* ac [31:0] data addr R1b */ +#define MMC_SEND_WRITE_PROT_TYPE 31 /* ac [31:0] data addr R1 */ + +/* + * EXT_CSD fields + */ +#define EXT_CSD_S_CMD_SET 504 +#define EXT_CSD_HPI_FEATURE 503 +#define EXT_CSD_BKOPS_SUPPORT 502 /* RO */ +#define EXT_CSD_SUPPORTED_MODES 493 /* RO */ +#define EXT_CSD_FFU_FEATURES 492 /* RO */ +#define EXT_CSD_FFU_ARG_3 490 /* RO */ +#define EXT_CSD_FFU_ARG_2 489 /* RO */ +#define EXT_CSD_FFU_ARG_1 488 /* RO */ +#define EXT_CSD_FFU_ARG_0 487 /* RO */ +#define EXT_CSD_CMDQ_DEPTH 307 /* RO */ +#define EXT_CSD_CMDQ_SUPPORT 308 /* RO */ +#define EXT_CSD_NUM_OF_FW_SEC_PROG_3 305 /* RO */ +#define EXT_CSD_NUM_OF_FW_SEC_PROG_2 304 /* RO */ +#define EXT_CSD_NUM_OF_FW_SEC_PROG_1 303 /* RO */ +#define EXT_CSD_NUM_OF_FW_SEC_PROG_0 302 /* RO */ +#define EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B 269 /* RO */ +#define EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A 268 /* RO */ +#define EXT_CSD_PRE_EOL_INFO 267 /* RO */ +#define EXT_CSD_FIRMWARE_VERSION 254 /* RO */ +#define EXT_CSD_CACHE_SIZE_3 252 +#define EXT_CSD_CACHE_SIZE_2 251 +#define EXT_CSD_CACHE_SIZE_1 250 +#define EXT_CSD_CACHE_SIZE_0 249 +#define EXT_CSD_BOOT_INFO 228 /* R/W */ +#define EXT_CSD_HC_ERASE_GRP_SIZE 224 +#define EXT_CSD_HC_WP_GRP_SIZE 221 +#define EXT_CSD_SEC_COUNT_3 215 +#define EXT_CSD_SEC_COUNT_2 214 +#define EXT_CSD_SEC_COUNT_1 213 +#define EXT_CSD_SEC_COUNT_0 212 +#define EXT_CSD_PART_SWITCH_TIME 199 +#define EXT_CSD_REV 192 +#define EXT_CSD_BOOT_CFG 179 +#define EXT_CSD_PART_CONFIG 179 +#define EXT_CSD_BOOT_BUS_CONDITIONS 177 +#define EXT_CSD_ERASE_GROUP_DEF 175 +#define EXT_CSD_BOOT_WP 173 +#define EXT_CSD_USER_WP 171 +#define EXT_CSD_FW_CONFIG 169 /* R/W */ +#define EXT_CSD_WR_REL_SET 167 +#define EXT_CSD_WR_REL_PARAM 166 +#define EXT_CSD_SANITIZE_START 165 +#define EXT_CSD_BKOPS_EN 163 /* R/W */ +#define EXT_CSD_RST_N_FUNCTION 162 /* R/W */ +#define EXT_CSD_PARTITIONING_SUPPORT 160 /* RO */ +#define EXT_CSD_MAX_ENH_SIZE_MULT_2 159 +#define EXT_CSD_MAX_ENH_SIZE_MULT_1 158 +#define EXT_CSD_MAX_ENH_SIZE_MULT_0 157 +#define EXT_CSD_PARTITIONS_ATTRIBUTE 156 /* R/W */ +#define EXT_CSD_PARTITION_SETTING_COMPLETED 155 /* R/W */ +#define EXT_CSD_GP_SIZE_MULT_4_2 154 +#define EXT_CSD_GP_SIZE_MULT_4_1 153 +#define EXT_CSD_GP_SIZE_MULT_4_0 152 +#define EXT_CSD_GP_SIZE_MULT_3_2 151 +#define EXT_CSD_GP_SIZE_MULT_3_1 150 +#define EXT_CSD_GP_SIZE_MULT_3_0 149 +#define EXT_CSD_GP_SIZE_MULT_2_2 148 +#define EXT_CSD_GP_SIZE_MULT_2_1 147 +#define EXT_CSD_GP_SIZE_MULT_2_0 146 +#define EXT_CSD_GP_SIZE_MULT_1_2 145 +#define EXT_CSD_GP_SIZE_MULT_1_1 144 +#define EXT_CSD_GP_SIZE_MULT_1_0 143 +#define EXT_CSD_ENH_SIZE_MULT_2 142 +#define EXT_CSD_ENH_SIZE_MULT_1 141 +#define EXT_CSD_ENH_SIZE_MULT_0 140 +#define EXT_CSD_ENH_START_ADDR_3 139 +#define EXT_CSD_ENH_START_ADDR_2 138 +#define EXT_CSD_ENH_START_ADDR_1 137 +#define EXT_CSD_ENH_START_ADDR_0 136 +#define EXT_CSD_NATIVE_SECTOR_SIZE 63 /* R */ +#define EXT_CSD_USE_NATIVE_SECTOR 62 /* R/W */ +#define EXT_CSD_DATA_SECTOR_SIZE 61 /* R */ +#define EXT_CSD_EXT_PARTITIONS_ATTRIBUTE_1 53 +#define EXT_CSD_EXT_PARTITIONS_ATTRIBUTE_0 52 +#define EXT_CSD_CACHE_CTRL 33 +#define EXT_CSD_MODE_CONFIG 30 +#define EXT_CSD_MODE_OPERATION_CODES 29 /* W */ +#define EXT_CSD_FFU_STATUS 26 /* R */ +#define EXT_CSD_SECURE_REMOVAL_TYPE 16 /* R/W */ +#define EXT_CSD_CMDQ_MODE_EN 15 /* R/W */ + +/* + * WR_REL_PARAM field definitions + */ +#define HS_CTRL_REL (1<<0) +#define EN_REL_WR (1<<2) + +/* + * BKOPS_EN field definition + */ +#define BKOPS_ENABLE (1<<0) + +/* + * EXT_CSD field definitions + */ +#define EXT_CSD_CONFIG_SECRM_TYPE (0x30) +#define EXT_CSD_SUPPORTED_SECRM_TYPE (0x0f) +#define EXT_CSD_FFU_INSTALL (0x01) +#define EXT_CSD_FFU_MODE (0x01) +#define EXT_CSD_NORMAL_MODE (0x00) +#define EXT_CSD_FFU (1<<0) +#define EXT_CSD_UPDATE_DISABLE (1<<0) +#define EXT_CSD_HPI_SUPP (1<<0) +#define EXT_CSD_HPI_IMPL (1<<1) +#define EXT_CSD_CMD_SET_NORMAL (1<<0) +#define EXT_CSD_BOOT_WP_B_PWR_WP_DIS (0x40) +#define EXT_CSD_BOOT_WP_B_PERM_WP_DIS (0x10) +#define EXT_CSD_BOOT_WP_B_PERM_WP_EN (0x04) +#define EXT_CSD_BOOT_WP_B_PWR_WP_EN (0x01) +#define EXT_CSD_BOOT_INFO_HS_MODE (1<<2) +#define EXT_CSD_BOOT_INFO_DDR_DDR (1<<1) +#define EXT_CSD_BOOT_INFO_ALT (1<<0) +#define EXT_CSD_BOOT_CFG_ACK (1<<6) +#define EXT_CSD_BOOT_CFG_EN (0x38) +#define EXT_CSD_BOOT_CFG_ACC (0x07) +#define EXT_CSD_RST_N_EN_MASK (0x03) +#define EXT_CSD_HW_RESET_EN (0x01) +#define EXT_CSD_HW_RESET_DIS (0x02) +#define EXT_CSD_PART_CONFIG_ACC_MASK (0x7) +#define EXT_CSD_PART_CONFIG_ACC_NONE (0x0) +#define EXT_CSD_PART_CONFIG_ACC_BOOT0 (0x1) +#define EXT_CSD_PART_CONFIG_ACC_BOOT1 (0x2) +#define EXT_CSD_PART_CONFIG_ACC_USER_AREA (0x7) +#define EXT_CSD_PART_CONFIG_ACC_ACK (0x40) +#define EXT_CSD_PARTITIONING_EN (1<<0) +#define EXT_CSD_ENH_ATTRIBUTE_EN (1<<1) +#define EXT_CSD_ENH_4 (1<<4) +#define EXT_CSD_ENH_3 (1<<3) +#define EXT_CSD_ENH_2 (1<<2) +#define EXT_CSD_ENH_1 (1<<1) +#define EXT_CSD_ENH_USR (1<<0) +#define EXT_CSD_REV_V5_1 8 +#define EXT_CSD_REV_V5_0 7 +#define EXT_CSD_REV_V4_5 6 +#define EXT_CSD_REV_V4_4_1 5 +#define EXT_CSD_REV_V4_3 3 +#define EXT_CSD_REV_V4_2 2 +#define EXT_CSD_REV_V4_1 1 +#define EXT_CSD_REV_V4_0 0 + + +/* From kernel linux/mmc/core.h */ +#define MMC_RSP_PRESENT (1 << 0) +#define MMC_RSP_136 (1 << 1) /* 136 bit response */ +#define MMC_RSP_CRC (1 << 2) /* expect valid crc */ +#define MMC_RSP_BUSY (1 << 3) /* card may send busy */ +#define MMC_RSP_OPCODE (1 << 4) /* response contains opcode */ + +#define MMC_CMD_AC (0 << 5) +#define MMC_CMD_ADTC (1 << 5) + +#define MMC_RSP_SPI_S1 (1 << 7) /* one status byte */ +#define MMC_RSP_SPI_BUSY (1 << 10) /* card may send busy */ + +#define MMC_RSP_SPI_R1 (MMC_RSP_SPI_S1) +#define MMC_RSP_SPI_R1B (MMC_RSP_SPI_S1|MMC_RSP_SPI_BUSY) + +#define MMC_RSP_R1 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) +#define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY) diff --git a/emmc_hal_lib/mmc-utils/mmc_cmds.c b/emmc_hal_lib/mmc-utils/mmc_cmds.c new file mode 100644 index 0000000..10f0e50 --- /dev/null +++ b/emmc_hal_lib/mmc-utils/mmc_cmds.c @@ -0,0 +1,2659 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License v2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 021110-1307, USA. + * + * Modified to add field firmware update support, + * those modifications are Copyright (c) 2016 SanDisk Corp. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include /* for BLKGETSIZE */ + +#include "mmc.h" +#include "mmc_cmds.h" +#include "3rdparty/hmac_sha/hmac_sha2.h" + +#ifndef offsetof +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#endif + +#define WP_BLKS_PER_QUERY 32 + +#define USER_WP_PERM_PSWD_DIS 0x80 +#define USER_WP_CD_PERM_WP_DIS 0x40 +#define USER_WP_US_PERM_WP_DIS 0x10 +#define USER_WP_US_PWR_WP_DIS 0x08 +#define USER_WP_US_PERM_WP_EN 0x04 +#define USER_WP_US_PWR_WP_EN 0x01 +#define USER_WP_CLEAR (USER_WP_US_PERM_WP_DIS | USER_WP_US_PWR_WP_DIS \ + | USER_WP_US_PERM_WP_EN | USER_WP_US_PWR_WP_EN) + +#define WPTYPE_NONE 0 +#define WPTYPE_TEMP 1 +#define WPTYPE_PWRON 2 +#define WPTYPE_PERM 3 + + +int read_extcsd(int fd, __u8 *ext_csd) +{ + int ret = 0; + struct mmc_ioc_cmd idata; + memset(&idata, 0, sizeof(idata)); + memset(ext_csd, 0, sizeof(__u8) * 512); + idata.write_flag = 0; + idata.opcode = MMC_SEND_EXT_CSD; + idata.arg = 0; + idata.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; + idata.blksz = 512; + idata.blocks = 1; + mmc_ioc_cmd_set_data(idata, ext_csd); + + ret = ioctl(fd, MMC_IOC_CMD, &idata); + if (ret) + perror("ioctl"); + + return ret; +} + +int write_extcsd_value(int fd, __u8 index, __u8 value) +{ + int ret = 0; + struct mmc_ioc_cmd idata; + + memset(&idata, 0, sizeof(idata)); + idata.write_flag = 1; + idata.opcode = MMC_SWITCH; + idata.arg = (MMC_SWITCH_MODE_WRITE_BYTE << 24) | + (index << 16) | + (value << 8) | + EXT_CSD_CMD_SET_NORMAL; + idata.flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC; + + ret = ioctl(fd, MMC_IOC_CMD, &idata); + if (ret) + perror("ioctl"); + + return ret; +} + +int send_status(int fd, __u32 *response) +{ + int ret = 0; + struct mmc_ioc_cmd idata; + + memset(&idata, 0, sizeof(idata)); + idata.opcode = MMC_SEND_STATUS; + idata.arg = (1 << 16); + idata.flags = MMC_RSP_R1 | MMC_CMD_AC; + + ret = ioctl(fd, MMC_IOC_CMD, &idata); + if (ret) + perror("ioctl"); + + *response = idata.response[0]; + + return ret; +} + +static __u32 get_size_in_blks(int fd) +{ + int res; + int size; + + res = ioctl(fd, BLKGETSIZE, &size); + if (res) { + fprintf(stderr, "Error getting device size, errno: %d\n", + errno); + perror(""); + return -1; + } + return size; +} + +static int set_write_protect(int fd, __u32 blk_addr, int on_off) +{ + int ret = 0; + struct mmc_ioc_cmd idata; + + memset(&idata, 0, sizeof(idata)); + idata.write_flag = 1; + if (on_off) + idata.opcode = MMC_SET_WRITE_PROT; + else + idata.opcode = MMC_CLEAR_WRITE_PROT; + idata.arg = blk_addr; + idata.flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC; + + ret = ioctl(fd, MMC_IOC_CMD, &idata); + if (ret) + perror("ioctl"); + + return ret; +} + +static int send_write_protect_type(int fd, __u32 blk_addr, __u64 *group_bits) +{ + int ret = 0; + struct mmc_ioc_cmd idata; + __u8 buf[8]; + __u64 bits = 0; + int x; + + memset(&idata, 0, sizeof(idata)); + idata.write_flag = 0; + idata.opcode = MMC_SEND_WRITE_PROT_TYPE; + idata.blksz = 8, + idata.blocks = 1, + idata.arg = blk_addr; + idata.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; + mmc_ioc_cmd_set_data(idata, buf); + + ret = ioctl(fd, MMC_IOC_CMD, &idata); + if (ret) + perror("ioctl"); + for (x = 0; x < sizeof(buf); x++) + bits |= (__u64)(buf[7 - x]) << (x * 8); + *group_bits = bits; + return ret; +} + +static void print_writeprotect_boot_status(__u8 *ext_csd) +{ + __u8 reg; + __u8 ext_csd_rev = ext_csd[EXT_CSD_REV]; + + /* A43: reserved [174:0] */ + if (ext_csd_rev >= 5) { + printf("Boot write protection status registers" + " [BOOT_WP_STATUS]: 0x%02x\n", ext_csd[174]); + + reg = ext_csd[EXT_CSD_BOOT_WP]; + printf("Boot Area Write protection [BOOT_WP]: 0x%02x\n", reg); + printf(" Power ro locking: "); + if (reg & EXT_CSD_BOOT_WP_B_PWR_WP_DIS) + printf("not possible\n"); + else + printf("possible\n"); + + printf(" Permanent ro locking: "); + if (reg & EXT_CSD_BOOT_WP_B_PERM_WP_DIS) + printf("not possible\n"); + else + printf("possible\n"); + + printf(" ro lock status: "); + if (reg & EXT_CSD_BOOT_WP_B_PWR_WP_EN) + printf("locked until next power on\n"); + else if (reg & EXT_CSD_BOOT_WP_B_PERM_WP_EN) + printf("locked permanently\n"); + else + printf("not locked\n"); + } +} + +static int get_wp_group_size_in_blks(__u8 *ext_csd, __u32 *size) +{ + __u8 ext_csd_rev = ext_csd[EXT_CSD_REV]; + + if ((ext_csd_rev < 5) || (ext_csd[EXT_CSD_ERASE_GROUP_DEF] == 0)) + return 1; + + *size = ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * + ext_csd[EXT_CSD_HC_WP_GRP_SIZE] * 1024; + return 0; +} + + +int do_writeprotect_boot_get(int nargs, char **argv) +{ + __u8 ext_csd[512]; + int fd, ret; + char *device; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc writeprotect boot get \n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + print_writeprotect_boot_status(ext_csd); + + return ret; +} + +int do_writeprotect_boot_set(int nargs, char **argv) +{ + __u8 ext_csd[512], value; + int fd, ret; + char *device; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc writeprotect boot set \n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + value = ext_csd[EXT_CSD_BOOT_WP] | + EXT_CSD_BOOT_WP_B_PWR_WP_EN; + ret = write_extcsd_value(fd, EXT_CSD_BOOT_WP, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", + value, EXT_CSD_BOOT_WP, device); + exit(1); + } + + return ret; +} + +static char *prot_desc[] = { + "No", + "Temporary", + "Power-on", + "Permanent" +}; + +static void print_wp_status(__u32 wp_sizeblks, __u32 start_group, + __u32 end_group, int rptype) +{ + printf("Write Protect Groups %d-%d (Blocks %d-%d), ", + start_group, end_group, + start_group * wp_sizeblks, ((end_group + 1) * wp_sizeblks) - 1); + printf("%s Write Protection\n", prot_desc[rptype]); +} + + +int do_writeprotect_user_get(int nargs, char **argv) +{ + __u8 ext_csd[512]; + int fd, ret; + char *device; + int x; + int y = 0; + __u32 wp_sizeblks; + __u32 dev_sizeblks; + __u32 cnt; + __u64 bits; + __u32 wpblk; + __u32 last_wpblk = 0; + __u32 prot; + __u32 last_prot = -1; + int remain; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc writeprotect user get \n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + ret = get_wp_group_size_in_blks(ext_csd, &wp_sizeblks); + if (ret) + exit(1); + printf("Write Protect Group size in blocks/bytes: %d/%d\n", + wp_sizeblks, wp_sizeblks * 512); + dev_sizeblks = get_size_in_blks(fd); + cnt = dev_sizeblks / wp_sizeblks; + for (x = 0; x < cnt; x += WP_BLKS_PER_QUERY) { + ret = send_write_protect_type(fd, x * wp_sizeblks, &bits); + if (ret) + break; + remain = cnt - x; + if (remain > WP_BLKS_PER_QUERY) + remain = WP_BLKS_PER_QUERY; + for (y = 0; y < remain; y++) { + prot = (bits >> (y * 2)) & 0x3; + if (prot != last_prot) { + /* not first time */ + if (last_prot != -1) { + wpblk = x + y; + print_wp_status(wp_sizeblks, + last_wpblk, + wpblk - 1, + last_prot); + last_wpblk = wpblk; + } + last_prot = prot; + } + } + } + if (last_wpblk != (x + y - 1)) + print_wp_status(wp_sizeblks, last_wpblk, cnt - 1, last_prot); + + return ret; +} + +int do_writeprotect_user_set(int nargs, char **argv) +{ + __u8 ext_csd[512]; + int fd, ret; + char *device; + int blk_start; + int blk_cnt; + __u32 wp_blks; + __u8 user_wp; + int x; + int wptype; + + if (nargs != 5) + goto usage; + device = argv[4]; + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + if (!strcmp(argv[1], "none")) { + wptype = WPTYPE_NONE; + } else if (!strcmp(argv[1], "temp")) { + wptype = WPTYPE_TEMP; + } else if (!strcmp(argv[1], "pwron")) { + wptype = WPTYPE_PWRON; +#ifdef DANGEROUS_COMMANDS_ENABLED + } else if (!strcmp(argv[1], "perm")) { + wptype = WPTYPE_PERM; +#endif /* DANGEROUS_COMMANDS_ENABLED */ + } else { + fprintf(stderr, "Error, invalid \"type\"\n"); + goto usage; + } + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + ret = get_wp_group_size_in_blks(ext_csd, &wp_blks); + if (ret) { + fprintf(stderr, "Operation not supported for this device\n"); + exit(1); + } + blk_start = strtol(argv[2], NULL, 0); + blk_cnt = strtol(argv[3], NULL, 0); + if ((blk_start % wp_blks) || (blk_cnt % wp_blks)) { + fprintf(stderr, " and must be a "); + fprintf(stderr, "multiple of the Write Protect Group (%d)\n", + wp_blks); + exit(1); + } + if (wptype != WPTYPE_NONE) { + user_wp = ext_csd[EXT_CSD_USER_WP]; + user_wp &= ~USER_WP_CLEAR; + switch (wptype) { + case WPTYPE_TEMP: + break; + case WPTYPE_PWRON: + user_wp |= USER_WP_US_PWR_WP_EN; + break; + case WPTYPE_PERM: + user_wp |= USER_WP_US_PERM_WP_EN; + break; + } + if (user_wp != ext_csd[EXT_CSD_USER_WP]) { + ret = write_extcsd_value(fd, EXT_CSD_USER_WP, user_wp); + if (ret) { + fprintf(stderr, "Error setting EXT_CSD\n"); + exit(1); + } + } + } + for (x = 0; x < blk_cnt; x += wp_blks) { + ret = set_write_protect(fd, blk_start + x, + wptype != WPTYPE_NONE); + if (ret) { + fprintf(stderr, + "Could not set write protect for %s\n", device); + exit(1); + } + } + if (wptype != WPTYPE_NONE) { + ret = write_extcsd_value(fd, EXT_CSD_USER_WP, + ext_csd[EXT_CSD_USER_WP]); + if (ret) { + fprintf(stderr, "Error restoring EXT_CSD\n"); + exit(1); + } + } + return ret; + +usage: + fprintf(stderr, + "Usage: mmc writeprotect user set \n"); + exit(1); +} + +int do_disable_512B_emulation(int nargs, char **argv) +{ + __u8 ext_csd[512], native_sector_size, data_sector_size, wr_rel_param; + int fd, ret; + char *device; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc disable 512B emulation \n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + wr_rel_param = ext_csd[EXT_CSD_WR_REL_PARAM]; + native_sector_size = ext_csd[EXT_CSD_NATIVE_SECTOR_SIZE]; + data_sector_size = ext_csd[EXT_CSD_DATA_SECTOR_SIZE]; + + if (native_sector_size && !data_sector_size && + (wr_rel_param & EN_REL_WR)) { + ret = write_extcsd_value(fd, EXT_CSD_USE_NATIVE_SECTOR, 1); + + if (ret) { + fprintf(stderr, "Could not write 0x%02x to EXT_CSD[%d] in %s\n", + 1, EXT_CSD_NATIVE_SECTOR_SIZE, device); + exit(1); + } + printf("MMC disable 512B emulation successful. Now reset the device to switch to 4KB native sector mode.\n"); + } else if (native_sector_size && data_sector_size) { + printf("MMC 512B emulation mode is already disabled; doing nothing.\n"); + } else { + printf("MMC does not support disabling 512B emulation mode.\n"); + } + + return ret; +} + +int do_write_boot_en(int nargs, char **argv) +{ + __u8 ext_csd[512]; + __u8 value = 0; + int fd, ret; + char *device; + int boot_area, send_ack; + + if (nargs != 4) { + fprintf(stderr, "Usage: mmc bootpart enable \n"); + exit(1); + } + + /* + * If is 1, the device will send acknowledgment + * pattern "010" to the host when boot operation begins. + * If is 0, it won't. + */ + boot_area = strtol(argv[1], NULL, 10); + send_ack = strtol(argv[2], NULL, 10); + device = argv[3]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + value = ext_csd[EXT_CSD_PART_CONFIG]; + + switch (boot_area) { + case EXT_CSD_PART_CONFIG_ACC_NONE: + value &= ~(7 << 3); + break; + case EXT_CSD_PART_CONFIG_ACC_BOOT0: + value |= (1 << 3); + value &= ~(3 << 4); + break; + case EXT_CSD_PART_CONFIG_ACC_BOOT1: + value |= (1 << 4); + value &= ~(1 << 3); + value &= ~(1 << 5); + break; + case EXT_CSD_PART_CONFIG_ACC_USER_AREA: + value |= (boot_area << 3); + break; + default: + fprintf(stderr, "Cannot enable the boot area\n"); + exit(1); + } + if (send_ack) + value |= EXT_CSD_PART_CONFIG_ACC_ACK; + else + value &= ~EXT_CSD_PART_CONFIG_ACC_ACK; + + ret = write_extcsd_value(fd, EXT_CSD_PART_CONFIG, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", + value, EXT_CSD_PART_CONFIG, device); + exit(1); + } + return ret; +} + +int do_boot_bus_conditions_set(int nargs, char **argv) +{ + __u8 ext_csd[512]; + __u8 value = 0; + int fd, ret; + char *device; + + if (nargs != 5) { + fprintf(stderr, "Usage: mmc: bootbus set \n"); + exit(1); + } + + if (strcmp(argv[1], "single_backward") == 0) + value |= 0; + else if (strcmp(argv[1], "single_hs") == 0) + value |= 0x8; + else if (strcmp(argv[1], "dual") == 0) + value |= 0x10; + else { + fprintf(stderr, "illegal specified\n"); + exit(1); + } + + if (strcmp(argv[2], "x1") == 0) + value |= 0; + else if (strcmp(argv[2], "retain") == 0) + value |= 0x4; + else { + fprintf(stderr, + "illegal specified\n"); + exit(1); + } + + if (strcmp(argv[3], "x1") == 0) + value |= 0; + else if (strcmp(argv[3], "x4") == 0) + value |= 0x1; + else if (strcmp(argv[3], "x8") == 0) + value |= 0x2; + else { + fprintf(stderr, "illegal specified\n"); + exit(1); + } + + device = argv[4]; + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + printf("Changing ext_csd[BOOT_BUS_CONDITIONS] from 0x%02x to 0x%02x\n", + ext_csd[EXT_CSD_BOOT_BUS_CONDITIONS], value); + + ret = write_extcsd_value(fd, EXT_CSD_BOOT_BUS_CONDITIONS, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", + value, EXT_CSD_BOOT_BUS_CONDITIONS, device); + exit(1); + } + close(fd); + return ret; +} + +int do_hwreset(int value, int nargs, char **argv) +{ + __u8 ext_csd[512]; + int fd, ret; + char *device; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc hwreset enable \n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + if ((ext_csd[EXT_CSD_RST_N_FUNCTION] & EXT_CSD_RST_N_EN_MASK) == + EXT_CSD_HW_RESET_EN) { + fprintf(stderr, + "H/W Reset is already permanently enabled on %s\n", + device); + exit(1); + } + if ((ext_csd[EXT_CSD_RST_N_FUNCTION] & EXT_CSD_RST_N_EN_MASK) == + EXT_CSD_HW_RESET_DIS) { + fprintf(stderr, + "H/W Reset is already permanently disabled on %s\n", + device); + exit(1); + } + + ret = write_extcsd_value(fd, EXT_CSD_RST_N_FUNCTION, value); + if (ret) { + fprintf(stderr, + "Could not write 0x%02x to EXT_CSD[%d] in %s\n", + value, EXT_CSD_RST_N_FUNCTION, device); + exit(1); + } + + return ret; +} + +int do_hwreset_en(int nargs, char **argv) +{ + return do_hwreset(EXT_CSD_HW_RESET_EN, nargs, argv); +} + +int do_hwreset_dis(int nargs, char **argv) +{ + return do_hwreset(EXT_CSD_HW_RESET_DIS, nargs, argv); +} + +int do_write_bkops_en(int nargs, char **argv) +{ + __u8 ext_csd[512], value = 0; + int fd, ret; + char *device; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc bkops enable \n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + if (!(ext_csd[EXT_CSD_BKOPS_SUPPORT] & 0x1)) { + fprintf(stderr, "%s doesn't support BKOPS\n", device); + exit(1); + } + + ret = write_extcsd_value(fd, EXT_CSD_BKOPS_EN, BKOPS_ENABLE); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to EXT_CSD[%d] in %s\n", + value, EXT_CSD_BKOPS_EN, device); + exit(1); + } + + return ret; +} + +int do_status_get(int nargs, char **argv) +{ + __u32 response; + int fd, ret; + char *device; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc status get \n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = send_status(fd, &response); + if (ret) { + fprintf(stderr, "Could not read response to SEND_STATUS from %s\n", device); + exit(1); + } + + printf("SEND_STATUS response: 0x%08x\n", response); + + return ret; +} + +unsigned int get_sector_count(__u8 *ext_csd) +{ + return (ext_csd[EXT_CSD_SEC_COUNT_3] << 24) | + (ext_csd[EXT_CSD_SEC_COUNT_2] << 16) | + (ext_csd[EXT_CSD_SEC_COUNT_1] << 8) | + ext_csd[EXT_CSD_SEC_COUNT_0]; +} + +int is_blockaddresed(__u8 *ext_csd) +{ + unsigned int sectors = get_sector_count(ext_csd); + + /* over 2GiB devices are block-addressed */ + return (sectors > (2u * 1024 * 1024 * 1024) / 512); +} + +unsigned int get_hc_wp_grp_size(__u8 *ext_csd) +{ + return ext_csd[221]; +} + +unsigned int get_hc_erase_grp_size(__u8 *ext_csd) +{ + return ext_csd[224]; +} + +int set_partitioning_setting_completed(int dry_run, const char * const device, + int fd) +{ + int ret; + + if (dry_run == 1) { + fprintf(stderr, "NOT setting PARTITION_SETTING_COMPLETED\n"); + fprintf(stderr, "These changes will not take effect neither " + "now nor after a power cycle\n"); + return 1; + } else if (dry_run == 2) { + printf("-c given, expecting more partition settings before " + "writing PARTITION_SETTING_COMPLETED\n"); + return 0; + } + + fprintf(stderr, "setting OTP PARTITION_SETTING_COMPLETED!\n"); + ret = write_extcsd_value(fd, EXT_CSD_PARTITION_SETTING_COMPLETED, 0x1); + if (ret) { + fprintf(stderr, "Could not write 0x1 to " + "EXT_CSD[%d] in %s\n", + EXT_CSD_PARTITION_SETTING_COMPLETED, device); + return 1; + } + + __u32 response; + ret = send_status(fd, &response); + if (ret) { + fprintf(stderr, "Could not get response to SEND_STATUS " + "from %s\n", device); + return 1; + } + + if (response & R1_SWITCH_ERROR) { + fprintf(stderr, "Setting OTP PARTITION_SETTING_COMPLETED " + "failed on %s\n", device); + return 1; + } + + fprintf(stderr, "Setting OTP PARTITION_SETTING_COMPLETED on " + "%s SUCCESS\n", device); + fprintf(stderr, "Device power cycle needed for settings to " + "take effect.\n" + "Confirm that PARTITION_SETTING_COMPLETED bit is set " + "using 'extcsd read' after power cycle\n"); + + return 0; +} + +int check_enhanced_area_total_limit(const char * const device, int fd) +{ + __u8 ext_csd[512]; + __u32 regl; + unsigned long max_enh_area_sz, user_area_sz, enh_area_sz = 0; + unsigned long gp4_part_sz, gp3_part_sz, gp2_part_sz, gp1_part_sz; + unsigned long total_sz, total_gp_user_sz; + unsigned int wp_sz, erase_sz; + int ret; + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + wp_sz = get_hc_wp_grp_size(ext_csd); + erase_sz = get_hc_erase_grp_size(ext_csd); + + regl = (ext_csd[EXT_CSD_GP_SIZE_MULT_4_2] << 16) | + (ext_csd[EXT_CSD_GP_SIZE_MULT_4_1] << 8) | + ext_csd[EXT_CSD_GP_SIZE_MULT_4_0]; + gp4_part_sz = 512l * regl * erase_sz * wp_sz; + if (ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE] & EXT_CSD_ENH_4) { + enh_area_sz += gp4_part_sz; + printf("Enhanced GP4 Partition Size [GP_SIZE_MULT_4]: 0x%06x\n", regl); + printf(" i.e. %lu KiB\n", gp4_part_sz); + } + + regl = (ext_csd[EXT_CSD_GP_SIZE_MULT_3_2] << 16) | + (ext_csd[EXT_CSD_GP_SIZE_MULT_3_1] << 8) | + ext_csd[EXT_CSD_GP_SIZE_MULT_3_0]; + gp3_part_sz = 512l * regl * erase_sz * wp_sz; + if (ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE] & EXT_CSD_ENH_3) { + enh_area_sz += gp3_part_sz; + printf("Enhanced GP3 Partition Size [GP_SIZE_MULT_3]: 0x%06x\n", regl); + printf(" i.e. %lu KiB\n", gp3_part_sz); + } + + regl = (ext_csd[EXT_CSD_GP_SIZE_MULT_2_2] << 16) | + (ext_csd[EXT_CSD_GP_SIZE_MULT_2_1] << 8) | + ext_csd[EXT_CSD_GP_SIZE_MULT_2_0]; + gp2_part_sz = 512l * regl * erase_sz * wp_sz; + if (ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE] & EXT_CSD_ENH_2) { + enh_area_sz += gp2_part_sz; + printf("Enhanced GP2 Partition Size [GP_SIZE_MULT_2]: 0x%06x\n", regl); + printf(" i.e. %lu KiB\n", gp2_part_sz); + } + + regl = (ext_csd[EXT_CSD_GP_SIZE_MULT_1_2] << 16) | + (ext_csd[EXT_CSD_GP_SIZE_MULT_1_1] << 8) | + ext_csd[EXT_CSD_GP_SIZE_MULT_1_0]; + gp1_part_sz = 512l * regl * erase_sz * wp_sz; + if (ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE] & EXT_CSD_ENH_1) { + enh_area_sz += gp1_part_sz; + printf("Enhanced GP1 Partition Size [GP_SIZE_MULT_1]: 0x%06x\n", regl); + printf(" i.e. %lu KiB\n", gp1_part_sz); + } + + regl = (ext_csd[EXT_CSD_ENH_SIZE_MULT_2] << 16) | + (ext_csd[EXT_CSD_ENH_SIZE_MULT_1] << 8) | + ext_csd[EXT_CSD_ENH_SIZE_MULT_0]; + user_area_sz = 512l * regl * erase_sz * wp_sz; + if (ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE] & EXT_CSD_ENH_USR) { + enh_area_sz += user_area_sz; + printf("Enhanced User Data Area Size [ENH_SIZE_MULT]: 0x%06x\n", regl); + printf(" i.e. %lu KiB\n", user_area_sz); + } + + regl = (ext_csd[EXT_CSD_MAX_ENH_SIZE_MULT_2] << 16) | + (ext_csd[EXT_CSD_MAX_ENH_SIZE_MULT_1] << 8) | + ext_csd[EXT_CSD_MAX_ENH_SIZE_MULT_0]; + max_enh_area_sz = 512l * regl * erase_sz * wp_sz; + printf("Max Enhanced Area Size [MAX_ENH_SIZE_MULT]: 0x%06x\n", regl); + printf(" i.e. %lu KiB\n", max_enh_area_sz); + if (enh_area_sz > max_enh_area_sz) { + fprintf(stderr, + "Programmed total enhanced size %lu KiB cannot exceed max enhanced area %lu KiB %s\n", + enh_area_sz, max_enh_area_sz, device); + return 1; + } + total_sz = get_sector_count(ext_csd) / 2; + total_gp_user_sz = gp4_part_sz + gp3_part_sz + gp2_part_sz + + gp1_part_sz + user_area_sz; + if (total_gp_user_sz > total_sz) { + fprintf(stderr, + "requested total partition size %lu KiB cannot exceed card capacity %lu KiB %s\n", + total_gp_user_sz, total_sz, device); + return 1; + } + + return 0; +} + +int do_create_gp_partition(int nargs, char **argv) +{ + __u8 value; + __u8 ext_csd[512]; + __u8 address; + int fd, ret; + char *device; + int dry_run = 1; + int partition, enh_attr, ext_attr; + unsigned int length_kib, gp_size_mult; + unsigned long align; + + if (nargs != 7) { + fprintf(stderr, "Usage: mmc gp create <-y|-n|-c> \n"); + exit(1); + } + + if (!strcmp("-y", argv[1])) { + dry_run = 0; + } else if (!strcmp("-c", argv[1])) { + dry_run = 2; + } + + length_kib = strtol(argv[2], NULL, 10); + partition = strtol(argv[3], NULL, 10); + enh_attr = strtol(argv[4], NULL, 10); + ext_attr = strtol(argv[5], NULL, 10); + device = argv[6]; + + if (partition < 1 || partition > 4) { + printf("Invalid gp partition number; valid range [1-4].\n"); + exit(1); + } + + if (enh_attr && ext_attr) { + printf("Not allowed to set both enhanced attribute and extended attribute\n"); + exit(1); + } + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + /* assert not PARTITION_SETTING_COMPLETED */ + if (ext_csd[EXT_CSD_PARTITION_SETTING_COMPLETED]) { + printf(" Device is already partitioned\n"); + exit(1); + } + + align = 512l * get_hc_wp_grp_size(ext_csd) * get_hc_erase_grp_size(ext_csd); + gp_size_mult = (length_kib + align/2l) / align; + + /* set EXT_CSD_ERASE_GROUP_DEF bit 0 */ + ret = write_extcsd_value(fd, EXT_CSD_ERASE_GROUP_DEF, 0x1); + if (ret) { + fprintf(stderr, "Could not write 0x1 to EXT_CSD[%d] in %s\n", + EXT_CSD_ERASE_GROUP_DEF, device); + exit(1); + } + + value = (gp_size_mult >> 16) & 0xff; + address = EXT_CSD_GP_SIZE_MULT_1_2 + (partition - 1) * 3; + ret = write_extcsd_value(fd, address, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to EXT_CSD[%d] in %s\n", + value, address, device); + exit(1); + } + value = (gp_size_mult >> 8) & 0xff; + address = EXT_CSD_GP_SIZE_MULT_1_1 + (partition - 1) * 3; + ret = write_extcsd_value(fd, address, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to EXT_CSD[%d] in %s\n", + value, address, device); + exit(1); + } + value = gp_size_mult & 0xff; + address = EXT_CSD_GP_SIZE_MULT_1_0 + (partition - 1) * 3; + ret = write_extcsd_value(fd, address, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to EXT_CSD[%d] in %s\n", + value, address, device); + exit(1); + } + + value = ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE]; + if (enh_attr) + value |= (1 << partition); + else + value &= ~(1 << partition); + + ret = write_extcsd_value(fd, EXT_CSD_PARTITIONS_ATTRIBUTE, value); + if (ret) { + fprintf(stderr, "Could not write EXT_CSD_ENH_%x to EXT_CSD[%d] in %s\n", + partition, EXT_CSD_PARTITIONS_ATTRIBUTE, device); + exit(1); + } + + address = EXT_CSD_EXT_PARTITIONS_ATTRIBUTE_0 + (partition - 1) / 2; + value = ext_csd[address]; + if (ext_attr) + value |= (ext_attr << (4 * ((partition - 1) % 2))); + else + value &= (0xF << (4 * ((partition % 2)))); + + ret = write_extcsd_value(fd, address, value); + if (ret) { + fprintf(stderr, "Could not write 0x%x to EXT_CSD[%d] in %s\n", + value, address, device); + exit(1); + } + + ret = check_enhanced_area_total_limit(device, fd); + if (ret) + exit(1); + + if (set_partitioning_setting_completed(dry_run, device, fd)) + exit(1); + + return 0; +} + +int do_enh_area_set(int nargs, char **argv) +{ + __u8 value; + __u8 ext_csd[512]; + int fd, ret; + char *device; + int dry_run = 1; + unsigned int start_kib, length_kib, enh_start_addr, enh_size_mult; + unsigned long align; + + if (nargs != 5) { + fprintf(stderr, "Usage: mmc enh_area set <-y|-n|-c> \n"); + exit(1); + } + + if (!strcmp("-y", argv[1])) { + dry_run = 0; + } else if (!strcmp("-c", argv[1])) { + dry_run = 2; + } + + start_kib = strtol(argv[2], NULL, 10); + length_kib = strtol(argv[3], NULL, 10); + device = argv[4]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + /* assert ENH_ATTRIBUTE_EN */ + if (!(ext_csd[EXT_CSD_PARTITIONING_SUPPORT] & EXT_CSD_ENH_ATTRIBUTE_EN)) + { + printf(" Device cannot have enhanced tech.\n"); + exit(1); + } + + /* assert not PARTITION_SETTING_COMPLETED */ + if (ext_csd[EXT_CSD_PARTITION_SETTING_COMPLETED]) + { + printf(" Device is already partitioned\n"); + exit(1); + } + + align = 512l * get_hc_wp_grp_size(ext_csd) * get_hc_erase_grp_size(ext_csd); + + enh_size_mult = (length_kib + align/2l) / align; + + enh_start_addr = start_kib * (1024 / (is_blockaddresed(ext_csd) ? 512 : 1)); + enh_start_addr /= align; + enh_start_addr *= align; + + /* set EXT_CSD_ERASE_GROUP_DEF bit 0 */ + ret = write_extcsd_value(fd, EXT_CSD_ERASE_GROUP_DEF, 0x1); + if (ret) { + fprintf(stderr, "Could not write 0x1 to " + "EXT_CSD[%d] in %s\n", + EXT_CSD_ERASE_GROUP_DEF, device); + exit(1); + } + + /* write to ENH_START_ADDR and ENH_SIZE_MULT and PARTITIONS_ATTRIBUTE's ENH_USR bit */ + value = (enh_start_addr >> 24) & 0xff; + ret = write_extcsd_value(fd, EXT_CSD_ENH_START_ADDR_3, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", value, + EXT_CSD_ENH_START_ADDR_3, device); + exit(1); + } + value = (enh_start_addr >> 16) & 0xff; + ret = write_extcsd_value(fd, EXT_CSD_ENH_START_ADDR_2, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", value, + EXT_CSD_ENH_START_ADDR_2, device); + exit(1); + } + value = (enh_start_addr >> 8) & 0xff; + ret = write_extcsd_value(fd, EXT_CSD_ENH_START_ADDR_1, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", value, + EXT_CSD_ENH_START_ADDR_1, device); + exit(1); + } + value = enh_start_addr & 0xff; + ret = write_extcsd_value(fd, EXT_CSD_ENH_START_ADDR_0, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", value, + EXT_CSD_ENH_START_ADDR_0, device); + exit(1); + } + + value = (enh_size_mult >> 16) & 0xff; + ret = write_extcsd_value(fd, EXT_CSD_ENH_SIZE_MULT_2, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", value, + EXT_CSD_ENH_SIZE_MULT_2, device); + exit(1); + } + value = (enh_size_mult >> 8) & 0xff; + ret = write_extcsd_value(fd, EXT_CSD_ENH_SIZE_MULT_1, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", value, + EXT_CSD_ENH_SIZE_MULT_1, device); + exit(1); + } + value = enh_size_mult & 0xff; + ret = write_extcsd_value(fd, EXT_CSD_ENH_SIZE_MULT_0, value); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to " + "EXT_CSD[%d] in %s\n", value, + EXT_CSD_ENH_SIZE_MULT_0, device); + exit(1); + } + value = ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE] | EXT_CSD_ENH_USR; + ret = write_extcsd_value(fd, EXT_CSD_PARTITIONS_ATTRIBUTE, value); + if (ret) { + fprintf(stderr, "Could not write EXT_CSD_ENH_USR to " + "EXT_CSD[%d] in %s\n", + EXT_CSD_PARTITIONS_ATTRIBUTE, device); + exit(1); + } + + ret = check_enhanced_area_total_limit(device, fd); + if (ret) + exit(1); + + printf("Done setting ENH_USR area on %s\n", device); + + if (set_partitioning_setting_completed(dry_run, device, fd)) + exit(1); + + return 0; +} + +int do_write_reliability_set(int nargs, char **argv) +{ + __u8 value; + __u8 ext_csd[512]; + int fd, ret; + + int dry_run = 1; + int partition; + char *device; + + if (nargs != 4) { + fprintf(stderr,"Usage: mmc write_reliability set <-y|-n|-c> \n"); + exit(1); + } + + if (!strcmp("-y", argv[1])) { + dry_run = 0; + } else if (!strcmp("-c", argv[1])) { + dry_run = 2; + } + + partition = strtol(argv[2], NULL, 10); + device = argv[3]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + /* assert not PARTITION_SETTING_COMPLETED */ + if (ext_csd[EXT_CSD_PARTITION_SETTING_COMPLETED]) + { + printf(" Device is already partitioned\n"); + exit(1); + } + + /* assert HS_CTRL_REL */ + if (!(ext_csd[EXT_CSD_WR_REL_PARAM] & HS_CTRL_REL)) { + printf("Cannot set write reliability parameters, WR_REL_SET is " + "read-only\n"); + exit(1); + } + + value = ext_csd[EXT_CSD_WR_REL_SET] | (1<\n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + ext_csd_rev = ext_csd[EXT_CSD_REV]; + + switch (ext_csd_rev) { + case 8: + str = "5.1"; + break; + case 7: + str = "5.0"; + break; + case 6: + str = "4.5"; + break; + case 5: + str = "4.41"; + break; + case 3: + str = "4.3"; + break; + case 2: + str = "4.2"; + break; + case 1: + str = "4.1"; + break; + case 0: + str = "4.0"; + break; + default: + goto out_free; + } + printf("=============================================\n"); + printf(" Extended CSD rev 1.%d (MMC %s)\n", ext_csd_rev, str); + printf("=============================================\n\n"); + + if (ext_csd_rev < 3) + goto out_free; /* No ext_csd */ + + /* Parse the Extended CSD registers. + * Reserved bit should be read as "0" in case of spec older + * than A441. + */ + reg = ext_csd[EXT_CSD_S_CMD_SET]; + printf("Card Supported Command sets [S_CMD_SET: 0x%02x]\n", reg); + if (!reg) + printf(" - Standard MMC command sets\n"); + + reg = ext_csd[EXT_CSD_HPI_FEATURE]; + printf("HPI Features [HPI_FEATURE: 0x%02x]: ", reg); + if (reg & EXT_CSD_HPI_SUPP) { + if (reg & EXT_CSD_HPI_IMPL) + printf("implementation based on CMD12\n"); + else + printf("implementation based on CMD13\n"); + } + + printf("Background operations support [BKOPS_SUPPORT: 0x%02x]\n", + ext_csd[502]); + + if (ext_csd_rev >= 6) { + printf("Max Packet Read Cmd [MAX_PACKED_READS: 0x%02x]\n", + ext_csd[501]); + printf("Max Packet Write Cmd [MAX_PACKED_WRITES: 0x%02x]\n", + ext_csd[500]); + printf("Data TAG support [DATA_TAG_SUPPORT: 0x%02x]\n", + ext_csd[499]); + + printf("Data TAG Unit Size [TAG_UNIT_SIZE: 0x%02x]\n", + ext_csd[498]); + printf("Tag Resources Size [TAG_RES_SIZE: 0x%02x]\n", + ext_csd[497]); + printf("Context Management Capabilities" + " [CONTEXT_CAPABILITIES: 0x%02x]\n", ext_csd[496]); + printf("Large Unit Size [LARGE_UNIT_SIZE_M1: 0x%02x]\n", + ext_csd[495]); + printf("Extended partition attribute support" + " [EXT_SUPPORT: 0x%02x]\n", ext_csd[494]); + printf("Generic CMD6 Timer [GENERIC_CMD6_TIME: 0x%02x]\n", + ext_csd[248]); + printf("Power off notification [POWER_OFF_LONG_TIME: 0x%02x]\n", + ext_csd[247]); + printf("Cache Size [CACHE_SIZE] is %d KiB\n", + ext_csd[249] << 0 | (ext_csd[250] << 8) | + (ext_csd[251] << 16) | (ext_csd[252] << 24)); + } + + /* A441: Reserved [501:247] + A43: reserved [246:229] */ + if (ext_csd_rev >= 5) { + printf("Background operations status" + " [BKOPS_STATUS: 0x%02x]\n", ext_csd[246]); + + /* CORRECTLY_PRG_SECTORS_NUM [245:242] TODO */ + + printf("1st Initialisation Time after programmed sector" + " [INI_TIMEOUT_AP: 0x%02x]\n", ext_csd[241]); + + /* A441: reserved [240] */ + printf("Power class for 52MHz, DDR at 3.6V" + " [PWR_CL_DDR_52_360: 0x%02x]\n", ext_csd[239]); + printf("Power class for 52MHz, DDR at 1.95V" + " [PWR_CL_DDR_52_195: 0x%02x]\n", ext_csd[238]); + + /* A441: reserved [237-236] */ + + if (ext_csd_rev >= 6) { + printf("Power class for 200MHz at 3.6V" + " [PWR_CL_200_360: 0x%02x]\n", ext_csd[237]); + printf("Power class for 200MHz, at 1.95V" + " [PWR_CL_200_195: 0x%02x]\n", ext_csd[236]); + } + printf("Minimum Performance for 8bit at 52MHz in DDR mode:\n"); + printf(" [MIN_PERF_DDR_W_8_52: 0x%02x]\n", ext_csd[235]); + printf(" [MIN_PERF_DDR_R_8_52: 0x%02x]\n", ext_csd[234]); + /* A441: reserved [233] */ + printf("TRIM Multiplier [TRIM_MULT: 0x%02x]\n", ext_csd[232]); + printf("Secure Feature support [SEC_FEATURE_SUPPORT: 0x%02x]\n", + ext_csd[231]); + } + if (ext_csd_rev == 5) { /* Obsolete in 4.5 */ + printf("Secure Erase Multiplier [SEC_ERASE_MULT: 0x%02x]\n", + ext_csd[230]); + printf("Secure TRIM Multiplier [SEC_TRIM_MULT: 0x%02x]\n", + ext_csd[229]); + } + reg = ext_csd[EXT_CSD_BOOT_INFO]; + printf("Boot Information [BOOT_INFO: 0x%02x]\n", reg); + if (reg & EXT_CSD_BOOT_INFO_ALT) + printf(" Device supports alternative boot method\n"); + if (reg & EXT_CSD_BOOT_INFO_DDR_DDR) + printf(" Device supports dual data rate during boot\n"); + if (reg & EXT_CSD_BOOT_INFO_HS_MODE) + printf(" Device supports high speed timing during boot\n"); + + /* A441/A43: reserved [227] */ + printf("Boot partition size [BOOT_SIZE_MULTI: 0x%02x]\n", ext_csd[226]); + printf("Access size [ACC_SIZE: 0x%02x]\n", ext_csd[225]); + + reg = get_hc_erase_grp_size(ext_csd); + printf("High-capacity erase unit size [HC_ERASE_GRP_SIZE: 0x%02x]\n", + reg); + printf(" i.e. %u KiB\n", 512 * reg); + + printf("High-capacity erase timeout [ERASE_TIMEOUT_MULT: 0x%02x]\n", + ext_csd[223]); + printf("Reliable write sector count [REL_WR_SEC_C: 0x%02x]\n", + ext_csd[222]); + + reg = get_hc_wp_grp_size(ext_csd); + printf("High-capacity W protect group size [HC_WP_GRP_SIZE: 0x%02x]\n", + reg); + printf(" i.e. %lu KiB\n", 512l * get_hc_erase_grp_size(ext_csd) * reg); + + printf("Sleep current (VCC) [S_C_VCC: 0x%02x]\n", ext_csd[220]); + printf("Sleep current (VCCQ) [S_C_VCCQ: 0x%02x]\n", ext_csd[219]); + /* A441/A43: reserved [218] */ + printf("Sleep/awake timeout [S_A_TIMEOUT: 0x%02x]\n", ext_csd[217]); + /* A441/A43: reserved [216] */ + + unsigned int sectors = get_sector_count(ext_csd); + printf("Sector Count [SEC_COUNT: 0x%08x]\n", sectors); + if (is_blockaddresed(ext_csd)) + printf(" Device is block-addressed\n"); + else + printf(" Device is NOT block-addressed\n"); + + /* A441/A43: reserved [211] */ + printf("Minimum Write Performance for 8bit:\n"); + printf(" [MIN_PERF_W_8_52: 0x%02x]\n", ext_csd[210]); + printf(" [MIN_PERF_R_8_52: 0x%02x]\n", ext_csd[209]); + printf(" [MIN_PERF_W_8_26_4_52: 0x%02x]\n", ext_csd[208]); + printf(" [MIN_PERF_R_8_26_4_52: 0x%02x]\n", ext_csd[207]); + printf("Minimum Write Performance for 4bit:\n"); + printf(" [MIN_PERF_W_4_26: 0x%02x]\n", ext_csd[206]); + printf(" [MIN_PERF_R_4_26: 0x%02x]\n", ext_csd[205]); + /* A441/A43: reserved [204] */ + printf("Power classes registers:\n"); + printf(" [PWR_CL_26_360: 0x%02x]\n", ext_csd[203]); + printf(" [PWR_CL_52_360: 0x%02x]\n", ext_csd[202]); + printf(" [PWR_CL_26_195: 0x%02x]\n", ext_csd[201]); + printf(" [PWR_CL_52_195: 0x%02x]\n", ext_csd[200]); + + /* A43: reserved [199:198] */ + if (ext_csd_rev >= 5) { + printf("Partition switching timing " + "[PARTITION_SWITCH_TIME: 0x%02x]\n", ext_csd[199]); + printf("Out-of-interrupt busy timing" + " [OUT_OF_INTERRUPT_TIME: 0x%02x]\n", ext_csd[198]); + } + + /* A441/A43: reserved [197] [195] [193] [190] [188] + * [186] [184] [182] [180] [176] */ + + if (ext_csd_rev >= 6) + printf("I/O Driver Strength [DRIVER_STRENGTH: 0x%02x]\n", + ext_csd[197]); + + /* DEVICE_TYPE in A45, CARD_TYPE in A441 */ + reg = ext_csd[196]; + printf("Card Type [CARD_TYPE: 0x%02x]\n", reg); + if (reg & 0x20) printf(" HS200 Single Data Rate eMMC @200MHz 1.2VI/O\n"); + if (reg & 0x10) printf(" HS200 Single Data Rate eMMC @200MHz 1.8VI/O\n"); + if (reg & 0x08) printf(" HS Dual Data Rate eMMC @52MHz 1.2VI/O\n"); + if (reg & 0x04) printf(" HS Dual Data Rate eMMC @52MHz 1.8V or 3VI/O\n"); + if (reg & 0x02) printf(" HS eMMC @52MHz - at rated device voltage(s)\n"); + if (reg & 0x01) printf(" HS eMMC @26MHz - at rated device voltage(s)\n"); + + printf("CSD structure version [CSD_STRUCTURE: 0x%02x]\n", ext_csd[194]); + /* ext_csd_rev = ext_csd[EXT_CSD_REV] (already done!!!) */ + printf("Command set [CMD_SET: 0x%02x]\n", ext_csd[191]); + printf("Command set revision [CMD_SET_REV: 0x%02x]\n", ext_csd[189]); + printf("Power class [POWER_CLASS: 0x%02x]\n", ext_csd[187]); + printf("High-speed interface timing [HS_TIMING: 0x%02x]\n", + ext_csd[185]); + /* bus_width: ext_csd[183] not readable */ + printf("Erased memory content [ERASED_MEM_CONT: 0x%02x]\n", + ext_csd[181]); + reg = ext_csd[EXT_CSD_BOOT_CFG]; + printf("Boot configuration bytes [PARTITION_CONFIG: 0x%02x]\n", reg); + switch ((reg & EXT_CSD_BOOT_CFG_EN)>>3) { + case 0x0: + printf(" Not boot enable\n"); + break; + case 0x1: + printf(" Boot Partition 1 enabled\n"); + break; + case 0x2: + printf(" Boot Partition 2 enabled\n"); + break; + case 0x7: + printf(" User Area Enabled for boot\n"); + break; + } + switch (reg & EXT_CSD_BOOT_CFG_ACC) { + case 0x0: + printf(" No access to boot partition\n"); + break; + case 0x1: + printf(" R/W Boot Partition 1\n"); + break; + case 0x2: + printf(" R/W Boot Partition 2\n"); + break; + case 0x3: + printf(" R/W Replay Protected Memory Block (RPMB)\n"); + break; + default: + printf(" Access to General Purpose partition %d\n", + (reg & EXT_CSD_BOOT_CFG_ACC) - 3); + break; + } + + printf("Boot config protection [BOOT_CONFIG_PROT: 0x%02x]\n", + ext_csd[178]); + printf("Boot bus Conditions [BOOT_BUS_CONDITIONS: 0x%02x]\n", + ext_csd[177]); + printf("High-density erase group definition" + " [ERASE_GROUP_DEF: 0x%02x]\n", ext_csd[EXT_CSD_ERASE_GROUP_DEF]); + + print_writeprotect_boot_status(ext_csd); + + if (ext_csd_rev >= 5) { + /* A441]: reserved [172] */ + printf("User area write protection register" + " [USER_WP]: 0x%02x\n", ext_csd[171]); + /* A441]: reserved [170] */ + printf("FW configuration [FW_CONFIG]: 0x%02x\n", ext_csd[169]); + printf("RPMB Size [RPMB_SIZE_MULT]: 0x%02x\n", ext_csd[168]); + + reg = ext_csd[EXT_CSD_WR_REL_SET]; + const char * const fast = "existing data is at risk if a power " + "failure occurs during a write operation"; + const char * const reliable = "the device protects existing " + "data if a power failure occurs during a write " + "operation"; + printf("Write reliability setting register" + " [WR_REL_SET]: 0x%02x\n", reg); + + printf(" user area: %s\n", reg & (1<<0) ? reliable : fast); + int i; + for (i = 1; i <= 4; i++) { + printf(" partition %d: %s\n", i, + reg & (1<= 6) { + int j; + /* tcase_support ext_csd[132] not readable */ + printf("Periodic Wake-up [PERIODIC_WAKEUP]: 0x%02x\n", + ext_csd[131]); + printf("Program CID/CSD in DDR mode support" + " [PROGRAM_CID_CSD_DDR_SUPPORT]: 0x%02x\n", + ext_csd[130]); + + for (j = 127; j >= 64; j--) + printf("Vendor Specific Fields" + " [VENDOR_SPECIFIC_FIELD[%d]]: 0x%02x\n", + j, ext_csd[j]); + + printf("Native sector size [NATIVE_SECTOR_SIZE]: 0x%02x\n", + ext_csd[63]); + printf("Sector size emulation [USE_NATIVE_SECTOR]: 0x%02x\n", + ext_csd[62]); + printf("Sector size [DATA_SECTOR_SIZE]: 0x%02x\n", ext_csd[61]); + printf("1st initialization after disabling sector" + " size emulation [INI_TIMEOUT_EMU]: 0x%02x\n", + ext_csd[60]); + printf("Class 6 commands control [CLASS_6_CTRL]: 0x%02x\n", + ext_csd[59]); + printf("Number of addressed group to be Released" + "[DYNCAP_NEEDED]: 0x%02x\n", ext_csd[58]); + printf("Exception events control" + " [EXCEPTION_EVENTS_CTRL]: 0x%04x\n", + (ext_csd[57] << 8) | ext_csd[56]); + printf("Exception events status" + "[EXCEPTION_EVENTS_STATUS]: 0x%04x\n", + (ext_csd[55] << 8) | ext_csd[54]); + printf("Extended Partitions Attribute" + " [EXT_PARTITIONS_ATTRIBUTE]: 0x%04x\n", + (ext_csd[53] << 8) | ext_csd[52]); + + for (j = 51; j >= 37; j--) + printf("Context configuration" + " [CONTEXT_CONF[%d]]: 0x%02x\n", j, ext_csd[j]); + + printf("Packed command status" + " [PACKED_COMMAND_STATUS]: 0x%02x\n", ext_csd[36]); + printf("Packed command failure index" + " [PACKED_FAILURE_INDEX]: 0x%02x\n", ext_csd[35]); + printf("Power Off Notification" + " [POWER_OFF_NOTIFICATION]: 0x%02x\n", ext_csd[34]); + printf("Control to turn the Cache ON/OFF" + " [CACHE_CTRL]: 0x%02x\n", ext_csd[33]); + /* flush_cache ext_csd[32] not readable */ + /*Reserved [31:0] */ + } + + if (ext_csd_rev >= 7) { + printf("eMMC Firmware Version: %s\n", + (char*)&ext_csd[EXT_CSD_FIRMWARE_VERSION]); + printf("eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x%02x\n", + ext_csd[EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]); + printf("eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x%02x\n", + ext_csd[EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]); + printf("eMMC Pre EOL information [EXT_CSD_PRE_EOL_INFO]: 0x%02x\n", + ext_csd[EXT_CSD_PRE_EOL_INFO]); + reg = ext_csd[EXT_CSD_SECURE_REMOVAL_TYPE]; + printf("Secure Removal Type [SECURE_REMOVAL_TYPE]: 0x%02x\n", reg); + printf(" information is configured to be removed "); + /* Bit [5:4]: Configure Secure Removal Type */ + switch ((reg & EXT_CSD_CONFIG_SECRM_TYPE) >> 4) { + case 0x0: + printf("by an erase of the physical memory\n"); + break; + case 0x1: + printf("by an overwriting the addressed locations" + " with a character followed by an erase\n"); + break; + case 0x2: + printf("by an overwriting the addressed locations" + " with a character, its complement, then a random character\n"); + break; + case 0x3: + printf("using a vendor defined\n"); + break; + } + /* Bit [3:0]: Supported Secure Removal Type */ + printf(" Supported Secure Removal Type:\n"); + if (reg & 0x01) + printf(" information removed by an erase of the physical memory\n"); + if (reg & 0x02) + printf(" information removed by an overwriting the addressed locations" + " with a character followed by an erase\n"); + if (reg & 0x04) + printf(" information removed by an overwriting the addressed locations" + " with a character, its complement, then a random character\n"); + if (reg & 0x08) + printf(" information removed using a vendor defined\n"); + } + + if (ext_csd_rev >= 8) { + printf("Command Queue Support [CMDQ_SUPPORT]: 0x%02x\n", + ext_csd[EXT_CSD_CMDQ_SUPPORT]); + printf("Command Queue Depth [CMDQ_DEPTH]: %u\n", + (ext_csd[EXT_CSD_CMDQ_DEPTH] & 0x1f) + 1); + printf("Command Enabled [CMDQ_MODE_EN]: 0x%02x\n", + ext_csd[EXT_CSD_CMDQ_MODE_EN]); + } +out_free: + return ret; +} + +int do_sanitize(int nargs, char **argv) +{ + int fd, ret; + char *device; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc sanitize \n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = write_extcsd_value(fd, EXT_CSD_SANITIZE_START, 1); + if (ret) { + fprintf(stderr, "Could not write 0x%02x to EXT_CSD[%d] in %s\n", + 1, EXT_CSD_SANITIZE_START, device); + exit(1); + } + + return ret; + +} + +#define DO_IO(func, fd, buf, nbyte) \ + ({ \ + ssize_t ret = 0, r; \ + do { \ + r = func(fd, buf + ret, nbyte - ret); \ + if (r < 0 && errno != EINTR) { \ + ret = -1; \ + break; \ + } \ + else if (r > 0) \ + ret += r; \ + } while (r != 0 && (size_t)ret != nbyte); \ + \ + ret; \ + }) + +#define RPMB_MULTI_CMD_MAX_CMDS 3 + +enum rpmb_op_type { + MMC_RPMB_WRITE_KEY = 0x01, + MMC_RPMB_READ_CNT = 0x02, + MMC_RPMB_WRITE = 0x03, + MMC_RPMB_READ = 0x04, + + /* For internal usage only, do not use it directly */ + MMC_RPMB_READ_RESP = 0x05 +}; + +struct rpmb_frame { + u_int8_t stuff[196]; + u_int8_t key_mac[32]; + u_int8_t data[256]; + u_int8_t nonce[16]; + u_int32_t write_counter; + u_int16_t addr; + u_int16_t block_count; + u_int16_t result; + u_int16_t req_resp; +}; + +static inline void set_single_cmd(struct mmc_ioc_cmd *ioc, __u32 opcode, + int write_flag, unsigned int blocks) +{ + ioc->opcode = opcode; + ioc->write_flag = write_flag; + ioc->arg = 0x0; + ioc->blksz = 512; + ioc->blocks = blocks; + ioc->flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; +} + +/* Performs RPMB operation. + * + * @fd: RPMB device on which we should perform ioctl command + * @frame_in: input RPMB frame, should be properly inited + * @frame_out: output (result) RPMB frame. Caller is responsible for checking + * result and req_resp for output frame. + * @out_cnt: count of outer frames. Used only for multiple blocks reading, + * in the other cases -EINVAL will be returned. + */ +int do_rpmb_op(int fd, + const struct rpmb_frame *frame_in, + struct rpmb_frame *frame_out, + unsigned int out_cnt) +{ +#ifndef MMC_IOC_MULTI_CMD + fprintf(stderr, "mmc-utils has been compiled without MMC_IOC_MULTI_CMD" + " support, needed by RPMB operation.\n"); + exit(1); +#else + int err; + u_int16_t rpmb_type; + struct mmc_ioc_multi_cmd *mioc; + struct mmc_ioc_cmd *ioc; + struct rpmb_frame frame_status = {0}; + + if (!frame_in || !frame_out || !out_cnt) + return -EINVAL; + + /* prepare arguments for MMC_IOC_MULTI_CMD ioctl */ + mioc = (struct mmc_ioc_multi_cmd *) + malloc(sizeof (struct mmc_ioc_multi_cmd) + + RPMB_MULTI_CMD_MAX_CMDS * sizeof (struct mmc_ioc_cmd)); + if (!mioc) { + return -ENOMEM; + } + + rpmb_type = be16toh(frame_in->req_resp); + + switch(rpmb_type) { + case MMC_RPMB_WRITE: + case MMC_RPMB_WRITE_KEY: + if (out_cnt != 1) { + err = -EINVAL; + goto out; + } + + mioc->num_of_cmds = 3; + + /* Write request */ + ioc = &mioc->cmds[0]; + set_single_cmd(ioc, MMC_WRITE_MULTIPLE_BLOCK, (1 << 31) | 1, 1); + mmc_ioc_cmd_set_data((*ioc), frame_in); + + /* Result request */ + ioc = &mioc->cmds[1]; + frame_status.req_resp = htobe16(MMC_RPMB_READ_RESP); + set_single_cmd(ioc, MMC_WRITE_MULTIPLE_BLOCK, 1, 1); + mmc_ioc_cmd_set_data((*ioc), &frame_status); + + /* Get response */ + ioc = &mioc->cmds[2]; + set_single_cmd(ioc, MMC_READ_MULTIPLE_BLOCK, 0, 1); + mmc_ioc_cmd_set_data((*ioc), frame_out); + + break; + case MMC_RPMB_READ_CNT: + if (out_cnt != 1) { + err = -EINVAL; + goto out; + } + /* fall through */ + + case MMC_RPMB_READ: + mioc->num_of_cmds = 2; + + /* Read request */ + ioc = &mioc->cmds[0]; + set_single_cmd(ioc, MMC_WRITE_MULTIPLE_BLOCK, 1, 1); + mmc_ioc_cmd_set_data((*ioc), frame_in); + + /* Get response */ + ioc = &mioc->cmds[1]; + set_single_cmd(ioc, MMC_READ_MULTIPLE_BLOCK, 0, out_cnt); + mmc_ioc_cmd_set_data((*ioc), frame_out); + + break; + default: + err = -EINVAL; + goto out; + } + + err = ioctl(fd, MMC_IOC_MULTI_CMD, mioc); + +out: + free(mioc); + return err; +#endif /* !MMC_IOC_MULTI_CMD */ +} + +int do_rpmb_write_key(int nargs, char **argv) +{ + int ret, dev_fd, key_fd; + struct rpmb_frame frame_in = { + .req_resp = htobe16(MMC_RPMB_WRITE_KEY) + }, frame_out; + + if (nargs != 3) { + fprintf(stderr, "Usage: mmc rpmb write-key \n"); + exit(1); + } + + dev_fd = open(argv[1], O_RDWR); + if (dev_fd < 0) { + perror("device open"); + exit(1); + } + + if (0 == strcmp(argv[2], "-")) + key_fd = STDIN_FILENO; + else { + key_fd = open(argv[2], O_RDONLY); + if (key_fd < 0) { + perror("can't open key file"); + exit(1); + } + } + + /* Read the auth key */ + ret = DO_IO(read, key_fd, frame_in.key_mac, sizeof(frame_in.key_mac)); + if (ret < 0) { + perror("read the key"); + exit(1); + } else if (ret != sizeof(frame_in.key_mac)) { + printf("Auth key must be %lu bytes length, but we read only %d, exit\n", + (unsigned long)sizeof(frame_in.key_mac), + ret); + exit(1); + } + + /* Execute RPMB op */ + ret = do_rpmb_op(dev_fd, &frame_in, &frame_out, 1); + if (ret != 0) { + perror("RPMB ioctl failed"); + exit(1); + } + + /* Check RPMB response */ + if (frame_out.result != 0) { + printf("RPMB operation failed, retcode 0x%04x\n", + be16toh(frame_out.result)); + exit(1); + } + + close(dev_fd); + if (key_fd != STDIN_FILENO) + close(key_fd); + + return ret; +} + +int rpmb_read_counter(int dev_fd, unsigned int *cnt) +{ + int ret; + struct rpmb_frame frame_in = { + .req_resp = htobe16(MMC_RPMB_READ_CNT) + }, frame_out; + + /* Execute RPMB op */ + ret = do_rpmb_op(dev_fd, &frame_in, &frame_out, 1); + if (ret != 0) { + perror("RPMB ioctl failed"); + exit(1); + } + + /* Check RPMB response */ + if (frame_out.result != 0) + return be16toh(frame_out.result); + + *cnt = be32toh(frame_out.write_counter); + + return 0; +} + +int do_rpmb_read_counter(int nargs, char **argv) +{ + int ret, dev_fd; + unsigned int cnt; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc rpmb read-counter \n"); + exit(1); + } + + dev_fd = open(argv[1], O_RDWR); + if (dev_fd < 0) { + perror("device open"); + exit(1); + } + + ret = rpmb_read_counter(dev_fd, &cnt); + + /* Check RPMB response */ + if (ret != 0) { + printf("RPMB operation failed, retcode 0x%04x\n", ret); + exit(1); + } + + close(dev_fd); + + printf("Counter value: 0x%08x\n", cnt); + + return ret; +} + +int do_rpmb_read_block(int nargs, char **argv) +{ + int i, ret, dev_fd, data_fd, key_fd = -1; + uint16_t addr; + /* + * for reading RPMB, number of blocks is set by CMD23 only, the packet + * frame field for that is set to 0. So, the type is not u16 but uint! + */ + unsigned int blocks_cnt; + unsigned char key[32]; + struct rpmb_frame frame_in = { + .req_resp = htobe16(MMC_RPMB_READ), + }, *frame_out_p; + + if (nargs != 5 && nargs != 6) { + fprintf(stderr, "Usage: mmc rpmb read-block
[/path/to/key]\n"); + exit(1); + } + + dev_fd = open(argv[1], O_RDWR); + if (dev_fd < 0) { + perror("device open"); + exit(1); + } + + /* Get block address */ + errno = 0; + addr = strtol(argv[2], NULL, 0); + if (errno) { + perror("incorrect address"); + exit(1); + } + frame_in.addr = htobe16(addr); + + /* Get blocks count */ + errno = 0; + blocks_cnt = strtol(argv[3], NULL, 0); + if (errno) { + perror("incorrect blocks count"); + exit(1); + } + + if (!blocks_cnt) { + printf("please, specify valid blocks count number\n"); + exit(1); + } + + frame_out_p = calloc(sizeof(*frame_out_p), blocks_cnt); + if (!frame_out_p) { + printf("can't allocate memory for RPMB outer frames\n"); + exit(1); + } + + /* Write 256b data */ + if (0 == strcmp(argv[4], "-")) + data_fd = STDOUT_FILENO; + else { + data_fd = open(argv[4], O_WRONLY | O_CREAT | O_APPEND, + S_IRUSR | S_IWUSR); + if (data_fd < 0) { + perror("can't open output file"); + exit(1); + } + } + + /* Key is specified */ + if (nargs == 6) { + if (0 == strcmp(argv[5], "-")) + key_fd = STDIN_FILENO; + else { + key_fd = open(argv[5], O_RDONLY); + if (key_fd < 0) { + perror("can't open input key file"); + exit(1); + } + } + + ret = DO_IO(read, key_fd, key, sizeof(key)); + if (ret < 0) { + perror("read the key data"); + exit(1); + } else if (ret != sizeof(key)) { + printf("Data must be %lu bytes length, but we read only %d, exit\n", + (unsigned long)sizeof(key), + ret); + exit(1); + } + } + + /* Execute RPMB op */ + ret = do_rpmb_op(dev_fd, &frame_in, frame_out_p, blocks_cnt); + if (ret != 0) { + perror("RPMB ioctl failed"); + exit(1); + } + + /* Check RPMB response */ + if (frame_out_p[blocks_cnt - 1].result != 0) { + printf("RPMB operation failed, retcode 0x%04x\n", + be16toh(frame_out_p[blocks_cnt - 1].result)); + exit(1); + } + + /* Do we have to verify data against key? */ + if (nargs == 6) { + unsigned char mac[32]; + hmac_sha256_ctx ctx; + struct rpmb_frame *frame_out = NULL; + + hmac_sha256_init(&ctx, key, sizeof(key)); + for (i = 0; i < blocks_cnt; i++) { + frame_out = &frame_out_p[i]; + hmac_sha256_update(&ctx, frame_out->data, + sizeof(*frame_out) - + offsetof(struct rpmb_frame, data)); + } + + hmac_sha256_final(&ctx, mac, sizeof(mac)); + + /* Impossible */ + assert(frame_out); + + /* Compare calculated MAC and MAC from last frame */ + if (memcmp(mac, frame_out->key_mac, sizeof(mac))) { + printf("RPMB MAC missmatch\n"); + exit(1); + } + } + + /* Write data */ + for (i = 0; i < blocks_cnt; i++) { + struct rpmb_frame *frame_out = &frame_out_p[i]; + ret = DO_IO(write, data_fd, frame_out->data, sizeof(frame_out->data)); + if (ret < 0) { + perror("write the data"); + exit(1); + } else if (ret != sizeof(frame_out->data)) { + printf("Data must be %lu bytes length, but we wrote only %d, exit\n", + (unsigned long)sizeof(frame_out->data), + ret); + exit(1); + } + } + + free(frame_out_p); + close(dev_fd); + if (data_fd != STDOUT_FILENO) + close(data_fd); + if (key_fd != -1 && key_fd != STDIN_FILENO) + close(key_fd); + + return ret; +} + +int do_rpmb_write_block(int nargs, char **argv) +{ + int ret, dev_fd, key_fd, data_fd; + unsigned char key[32]; + uint16_t addr; + unsigned int cnt; + struct rpmb_frame frame_in = { + .req_resp = htobe16(MMC_RPMB_WRITE), + .block_count = htobe16(1) + }, frame_out; + + if (nargs != 5) { + fprintf(stderr, "Usage: mmc rpmb write-block
\n"); + exit(1); + } + + dev_fd = open(argv[1], O_RDWR); + if (dev_fd < 0) { + perror("device open"); + exit(1); + } + + ret = rpmb_read_counter(dev_fd, &cnt); + /* Check RPMB response */ + if (ret != 0) { + printf("RPMB read counter operation failed, retcode 0x%04x\n", ret); + exit(1); + } + frame_in.write_counter = htobe32(cnt); + + /* Get block address */ + errno = 0; + addr = strtol(argv[2], NULL, 0); + if (errno) { + perror("incorrect address"); + exit(1); + } + frame_in.addr = htobe16(addr); + + /* Read 256b data */ + if (0 == strcmp(argv[3], "-")) + data_fd = STDIN_FILENO; + else { + data_fd = open(argv[3], O_RDONLY); + if (data_fd < 0) { + perror("can't open input file"); + exit(1); + } + } + + ret = DO_IO(read, data_fd, frame_in.data, sizeof(frame_in.data)); + if (ret < 0) { + perror("read the data"); + exit(1); + } else if (ret != sizeof(frame_in.data)) { + printf("Data must be %lu bytes length, but we read only %d, exit\n", + (unsigned long)sizeof(frame_in.data), + ret); + exit(1); + } + + /* Read the auth key */ + if (0 == strcmp(argv[4], "-")) + key_fd = STDIN_FILENO; + else { + key_fd = open(argv[4], O_RDONLY); + if (key_fd < 0) { + perror("can't open key file"); + exit(1); + } + } + + ret = DO_IO(read, key_fd, key, sizeof(key)); + if (ret < 0) { + perror("read the key"); + exit(1); + } else if (ret != sizeof(key)) { + printf("Auth key must be %lu bytes length, but we read only %d, exit\n", + (unsigned long)sizeof(key), + ret); + exit(1); + } + + /* Calculate HMAC SHA256 */ + hmac_sha256( + key, sizeof(key), + frame_in.data, sizeof(frame_in) - offsetof(struct rpmb_frame, data), + frame_in.key_mac, sizeof(frame_in.key_mac)); + + /* Execute RPMB op */ + ret = do_rpmb_op(dev_fd, &frame_in, &frame_out, 1); + if (ret != 0) { + perror("RPMB ioctl failed"); + exit(1); + } + + /* Check RPMB response */ + if (frame_out.result != 0) { + printf("RPMB operation failed, retcode 0x%04x\n", + be16toh(frame_out.result)); + exit(1); + } + + close(dev_fd); + if (data_fd != STDIN_FILENO) + close(data_fd); + if (key_fd != STDIN_FILENO) + close(key_fd); + + return ret; +} + +int do_cache_ctrl(int value, int nargs, char **argv) +{ + __u8 ext_csd[512]; + int fd, ret; + char *device; + + if (nargs != 2) { + fprintf(stderr, "Usage: mmc cache enable \n"); + exit(1); + } + + device = argv[1]; + + fd = open(device, O_RDWR); + if (fd < 0) { + perror("open"); + exit(1); + } + + ret = read_extcsd(fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + exit(1); + } + + if (ext_csd[EXT_CSD_REV] < EXT_CSD_REV_V4_5) { + fprintf(stderr, + "The CACHE option is only availabe on devices >= " + "MMC 4.5 %s\n", device); + exit(1); + } + + /* If the cache size is zero, this device does not have a cache */ + if (!(ext_csd[EXT_CSD_CACHE_SIZE_3] || + ext_csd[EXT_CSD_CACHE_SIZE_2] || + ext_csd[EXT_CSD_CACHE_SIZE_1] || + ext_csd[EXT_CSD_CACHE_SIZE_0])) { + fprintf(stderr, + "The CACHE option is not available on %s\n", + device); + exit(1); + } + ret = write_extcsd_value(fd, EXT_CSD_CACHE_CTRL, value); + if (ret) { + fprintf(stderr, + "Could not write 0x%02x to EXT_CSD[%d] in %s\n", + value, EXT_CSD_CACHE_CTRL, device); + exit(1); + } + + return ret; +} + +int do_cache_en(int nargs, char **argv) +{ + return do_cache_ctrl(1, nargs, argv); +} + +int do_cache_dis(int nargs, char **argv) +{ + return do_cache_ctrl(0, nargs, argv); +} + +int do_ffu(int nargs, char **argv) +{ +#ifndef MMC_IOC_MULTI_CMD + fprintf(stderr, "mmc-utils has been compiled without MMC_IOC_MULTI_CMD" + " support, needed by FFU.\n"); + exit(1); +#else + int dev_fd, img_fd; + int sect_done = 0, retry = 3, ret = -EINVAL; + unsigned int sect_size; + __u8 ext_csd[512]; + __u8 *buf; + __u32 arg; + off_t fw_size; + ssize_t chunk_size; + char *device; + struct mmc_ioc_multi_cmd *multi_cmd; + + if (nargs != 3) { + fprintf(stderr, "Usage: ffu \n"); + exit(1); + } + + device = argv[2]; + dev_fd = open(device, O_RDWR); + if (dev_fd < 0) { + perror("device open failed"); + exit(1); + } + img_fd = open(argv[1], O_RDONLY); + if (img_fd < 0) { + perror("image open failed"); + close(dev_fd); + exit(1); + } + + buf = malloc(512); + multi_cmd = calloc(1, sizeof(struct mmc_ioc_multi_cmd) + + 3 * sizeof(struct mmc_ioc_cmd)); + if (!buf || !multi_cmd) { + perror("failed to allocate memory"); + goto out; + } + + ret = read_extcsd(dev_fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + goto out; + } + + if (ext_csd[EXT_CSD_REV] < EXT_CSD_REV_V5_0) { + fprintf(stderr, + "The FFU feature is only available on devices >= " + "MMC 5.0, not supported in %s\n", device); + goto out; + } + + if (!(ext_csd[EXT_CSD_SUPPORTED_MODES] & EXT_CSD_FFU)) { + fprintf(stderr, "FFU is not supported in %s\n", device); + goto out; + } + + if (ext_csd[EXT_CSD_FW_CONFIG] & EXT_CSD_UPDATE_DISABLE) { + fprintf(stderr, "Firmware update was disabled in %s\n", device); + goto out; + } + + fw_size = lseek(img_fd, 0, SEEK_END); + + if (fw_size == 0) { + fprintf(stderr, "Firmware image is empty"); + goto out; + } + + sect_size = (ext_csd[EXT_CSD_DATA_SECTOR_SIZE] == 0) ? 512 : 4096; + if (fw_size % sect_size) { + fprintf(stderr, "Firmware data size (%jd) is not aligned!\n", (intmax_t)fw_size); + goto out; + } + + /* set CMD ARG */ + arg = ext_csd[EXT_CSD_FFU_ARG_0] | + ext_csd[EXT_CSD_FFU_ARG_1] << 8 | + ext_csd[EXT_CSD_FFU_ARG_2] << 16 | + ext_csd[EXT_CSD_FFU_ARG_3] << 24; + + /* prepare multi_cmd to be sent */ + multi_cmd->num_of_cmds = 3; + + /* put device into ffu mode */ + multi_cmd->cmds[0].opcode = MMC_SWITCH; + multi_cmd->cmds[0].arg = (MMC_SWITCH_MODE_WRITE_BYTE << 24) | + (EXT_CSD_MODE_CONFIG << 16) | + (EXT_CSD_FFU_MODE << 8) | + EXT_CSD_CMD_SET_NORMAL; + multi_cmd->cmds[0].flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC; + multi_cmd->cmds[0].write_flag = 1; + + /* send image chunk */ + multi_cmd->cmds[1].opcode = MMC_WRITE_BLOCK; + multi_cmd->cmds[1].blksz = sect_size; + multi_cmd->cmds[1].blocks = 1; + multi_cmd->cmds[1].arg = arg; + multi_cmd->cmds[1].flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; + multi_cmd->cmds[1].write_flag = 1; + mmc_ioc_cmd_set_data(multi_cmd->cmds[1], buf); + + /* return device into normal mode */ + multi_cmd->cmds[2].opcode = MMC_SWITCH; + multi_cmd->cmds[2].arg = (MMC_SWITCH_MODE_WRITE_BYTE << 24) | + (EXT_CSD_MODE_CONFIG << 16) | + (EXT_CSD_NORMAL_MODE << 8) | + EXT_CSD_CMD_SET_NORMAL; + multi_cmd->cmds[2].flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC; + multi_cmd->cmds[2].write_flag = 1; + +do_retry: + /* read firmware chunk */ + lseek(img_fd, 0, SEEK_SET); + chunk_size = read(img_fd, buf, 512); + + while (chunk_size > 0) { + /* send ioctl with multi-cmd */ + ret = ioctl(dev_fd, MMC_IOC_MULTI_CMD, multi_cmd); + + if (ret) { + perror("Multi-cmd ioctl"); + /* In case multi-cmd ioctl failed before exiting from ffu mode */ + ioctl(dev_fd, MMC_IOC_CMD, &multi_cmd->cmds[2]); + goto out; + } + + ret = read_extcsd(dev_fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + goto out; + } + + /* Test if we need to restart the download */ + sect_done = ext_csd[EXT_CSD_NUM_OF_FW_SEC_PROG_0] | + ext_csd[EXT_CSD_NUM_OF_FW_SEC_PROG_1] << 8 | + ext_csd[EXT_CSD_NUM_OF_FW_SEC_PROG_2] << 16 | + ext_csd[EXT_CSD_NUM_OF_FW_SEC_PROG_3] << 24; + /* By spec, host should re-start download from the first sector if sect_done is 0 */ + if (sect_done == 0) { + if (retry > 0) { + retry--; + fprintf(stderr, "Programming failed. Retrying... (%d)\n", retry); + goto do_retry; + } + fprintf(stderr, "Programming failed! Aborting...\n"); + goto out; + } else { + fprintf(stderr, "Programmed %d/%jd bytes\r", sect_done * sect_size, (intmax_t)fw_size); + } + + /* read the next firmware chunk (if any) */ + chunk_size = read(img_fd, buf, 512); + } + + if ((sect_done * sect_size) == fw_size) { + fprintf(stderr, "Programmed %jd/%jd bytes\n", (intmax_t)fw_size, (intmax_t)fw_size); + fprintf(stderr, "Programming finished with status %d \n", ret); + } + else { + fprintf(stderr, "FW size and number of sectors written mismatch. Status return %d\n", ret); + goto out; + } + + /* check mode operation for ffu install*/ + if (!ext_csd[EXT_CSD_FFU_FEATURES]) { + fprintf(stderr, "Please reboot to complete firmware installation on %s\n", device); + } else { + fprintf(stderr, "Installing firmware on %s...\n", device); + /* Re-enter ffu mode and install the firmware */ + multi_cmd->num_of_cmds = 2; + + /* set ext_csd to install mode */ + multi_cmd->cmds[1].opcode = MMC_SWITCH; + multi_cmd->cmds[1].blksz = 0; + multi_cmd->cmds[1].blocks = 0; + multi_cmd->cmds[1].arg = (MMC_SWITCH_MODE_WRITE_BYTE << 24) | + (EXT_CSD_MODE_OPERATION_CODES << 16) | + (EXT_CSD_FFU_INSTALL << 8) | + EXT_CSD_CMD_SET_NORMAL; + multi_cmd->cmds[1].flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC; + multi_cmd->cmds[1].write_flag = 1; + + /* send ioctl with multi-cmd */ + ret = ioctl(dev_fd, MMC_IOC_MULTI_CMD, multi_cmd); + + if (ret) { + perror("Multi-cmd ioctl failed setting install mode"); + /* In case multi-cmd ioctl failed before exiting from ffu mode */ + ioctl(dev_fd, MMC_IOC_CMD, &multi_cmd->cmds[2]); + goto out; + } + + ret = read_extcsd(dev_fd, ext_csd); + if (ret) { + fprintf(stderr, "Could not read EXT_CSD from %s\n", device); + goto out; + } + + /* return status */ + ret = ext_csd[EXT_CSD_FFU_STATUS]; + if (ret) { + fprintf(stderr, "%s: error %d during FFU install:\n", device, ret); + goto out; + } else { + fprintf(stderr, "FFU finished successfully\n"); + } + } + +out: + free(buf); + free(multi_cmd); + close(img_fd); + close(dev_fd); + return ret; +#endif +} diff --git a/emmc_hal_lib/mmc-utils/mmc_cmds.h b/emmc_hal_lib/mmc-utils/mmc_cmds.h new file mode 100644 index 0000000..9d3246c --- /dev/null +++ b/emmc_hal_lib/mmc-utils/mmc_cmds.h @@ -0,0 +1,47 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License v2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 021110-1307, USA. + * + * Modified to add field firmware update support, + * those modifications are Copyright (c) 2016 SanDisk Corp. + */ + +/* mmc_cmds.c */ +int do_read_extcsd(int nargs, char **argv); +int do_write_extcsd(int nargs, char **argv); +int do_writeprotect_boot_get(int nargs, char **argv); +int do_writeprotect_boot_set(int nargs, char **argv); +int do_writeprotect_user_get(int nargs, char **argv); +int do_writeprotect_user_set(int nargs, char **argv); +int do_disable_512B_emulation(int nargs, char **argv); +int do_write_boot_en(int nargs, char **argv); +int do_boot_bus_conditions_set(int nargs, char **argv); +int do_write_bkops_en(int nargs, char **argv); +int do_hwreset_en(int nargs, char **argv); +int do_hwreset_dis(int nargs, char **argv); +int do_sanitize(int nargs, char **argv); +int do_status_get(int nargs, char **argv); +int do_create_gp_partition(int nargs, char **argv); +int do_enh_area_set(int nargs, char **argv); +int do_write_reliability_set(int nargs, char **argv); +int do_rpmb_write_key(int nargs, char **argv); +int do_rpmb_read_counter(int nargs, char **argv); +int do_rpmb_read_block(int nargs, char **argv); +int do_rpmb_write_block(int nargs, char **argv); +int do_cache_en(int nargs, char **argv); +int do_cache_dis(int nargs, char **argv); +int do_ffu(int nargs, char **argv); +int do_read_scr(int argc, char **argv); +int do_read_cid(int argc, char **argv); +int do_read_csd(int argc, char **argv); diff --git a/emmc_hal_lib/mmc-utils/rpmb_test.png b/emmc_hal_lib/mmc-utils/rpmb_test.png new file mode 100644 index 0000000000000000000000000000000000000000..f90ab7c75297a887c425db04c94b4d0b4bfe4e88 GIT binary patch literal 321506 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 AS;)TUprOZOz@ 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%0D4%99`ReggC-6FqHn|gs_&yys%d2wS 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 +#include +#include +#include +#include +#include +#include +#include +#include "light-iopmp.h" + +static const char *light_iopmp_tap = "/sys/devices/platform/iopmp/light_iopmp_tap"; +static const char *light_iopmp_start_addr = "/sys/devices/platform/iopmp/light_iopmp_start_addr"; +static const char *light_iopmp_end_addr = "/sys/devices/platform/iopmp/light_iopmp_end_addr"; +static const char *light_iopmp_attr = "/sys/devices/platform/iopmp/light_iopmp_attr"; +static const char *light_iopmp_lock = "/sys/devices/platform/iopmp/light_iopmp_lock"; +static const char *light_iopmp_set = "/sys/devices/platform/iopmp/light_iopmp_set"; + +/** + * @brief Light iopmp region permission setting. + * + * @param type + * @param attr + * @return csi_err_t + */ +int csi_iopmp_set_attr(int type, u_int8_t *start_addr, u_int8_t *end_addr, csi_iopmp_attr_t attr) +{ + int ret = 0; + int light_iopmp_tap_fd, light_iopmp_start_addr_fd, light_iopmp_end_addr_fd; + int light_iopmp_attr_fd, light_iopmp_lock_fd, light_iopmp_set_fd; + + light_iopmp_tap_fd = open(light_iopmp_tap, O_RDWR); + if (light_iopmp_tap_fd < 0) { + perror("open tap"); + exit(1); + } else { + char string[5]; + sprintf(string, "%d\n", type); + if (write(light_iopmp_tap_fd, string, 5) != 5) + perror("write(tap)"); + close(light_iopmp_tap_fd); + } + + light_iopmp_start_addr_fd = open(light_iopmp_start_addr, O_RDWR); + if (light_iopmp_start_addr_fd < 0) { + perror("open start_addr"); + exit(1); + } else { + char string[20]; + int start = (int)((int64_t)start_addr >> 12); + sprintf(string, "%d\n", start); + if (write(light_iopmp_start_addr_fd, string, 20) != 20) + perror("write(start_addr)"); + close(light_iopmp_start_addr_fd); + } + + light_iopmp_end_addr_fd = open(light_iopmp_end_addr, O_RDWR); + if (light_iopmp_end_addr_fd < 0) { + perror("open end_addr"); + exit(1); + } else { + int end = (int)((int64_t)end_addr >> 12); + char string[20]; + sprintf(string, "%d\n", end); + if (write(light_iopmp_end_addr_fd, string, 20) != 20) + perror("write(end_addr)"); + close(light_iopmp_end_addr_fd); + } + + light_iopmp_attr_fd = open(light_iopmp_attr, O_RDWR); + if (light_iopmp_attr_fd < 0) { + perror("open attr"); + exit(1); + } else { + char string[20]; + sprintf(string, "%d\n", attr); + if (write(light_iopmp_attr_fd, string, 20) != 20) + perror("write(attr)"); + close(light_iopmp_attr_fd); + } + + light_iopmp_lock_fd = open(light_iopmp_lock, O_RDWR); + if (light_iopmp_lock_fd < 0) { + perror("open lock"); + exit(1); + } else { + if (write(light_iopmp_lock_fd, "1\n", 2) != 2) + perror("write(lock)"); + close(light_iopmp_lock_fd); + } + + light_iopmp_set_fd = open(light_iopmp_set, O_WRONLY); + if (light_iopmp_set_fd < 0) { + perror("open set"); + exit(1); + } else { + if (write(light_iopmp_set_fd, "1\n", 2) != 2) + perror("write(set)"); + close(light_iopmp_set_fd); + } + + return ret; +} + +/** iopmp lock + * @brief Lock secure iopmp setting. + * + * @return csi_err_t + */ +int csi_iopmp_lock(void) +{ + /* dummy API, csi_iopmp_set_attr() should lock iopmp */ + return 0; +} + +#if 0 /* demo */ +int main(int argc, char *argv[]) +{ + csi_iopmp_set_attr(2, (u_int8_t *)0x0, (u_int8_t *)0x200000000, 0xffff); + return 1; +} +#endif diff --git a/iopmp_hal_lib/light-iopmp.h b/iopmp_hal_lib/light-iopmp.h new file mode 100644 index 0000000..7d3cd89 --- /dev/null +++ b/iopmp_hal_lib/light-iopmp.h @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2021 Alibaba Group Holding Limited. + * + */ +#ifndef _LIGHT_IOPMP_API_H +#define _LIGHT_IOPMP_API_H + +#define IOPMP_EMMC 0 +#define IOPMP_SDIO0 1 +#define IOPMP_SDIO1 2 +#define IOPMP_USB0 3 +#define IOPMP_AO 4 +#define IOPMP_AUD 5 +#define IOPMP_CHIP_DBG 6 +#define IOPMP_EIP120I 7 +#define IOPMP_EIP120II 8 +#define IOPMP_EIP120III 9 +#define IOPMP_ISP0 10 +#define IOPMP_ISP1 11 +#define IOPMP_DW200 12 +#define IOPMP_VIPRE 13 +#define IOPMP_VENC 14 +#define IOPMP_VDEC 15 +#define IOPMP_G2D 16 +#define IOPMP_FCE 17 +#define IOPMP_NPU 18 +#define IOPMP0_DPU 19 +#define IOPMP1_DPU 20 +#define IOPMP_GPU 21 +#define IOPMP_GMAC1 22 +#define IOPMP_GMAC2 23 +#define IOPMP_DMAC 24 +#define IOPMP_TEE_DMAC 25 +#define IOPMP_DSP0 26 +#define IOPMP_DSP1 27 + +typedef enum { + CSI_ATTR_R = 1, + CSI_ATTR_W = 2, +} csi_iopmp_attr_t; + +/** + * @brief Light iopmp region permission setting. + * + * @param type + * @param attr + * @return csi_err_t + */ +int csi_iopmp_set_attr(int type, u_int8_t *start_addr, u_int8_t *end_addr, csi_iopmp_attr_t attr); + +/** iopmp lock + * @brief Lock secure iopmp setting. + * + * @return csi_err_t + */ +int csi_iopmp_lock(void); + +#endif diff --git a/iopmp_hal_lib/output/libiopmp.so b/iopmp_hal_lib/output/libiopmp.so new file mode 100755 index 0000000000000000000000000000000000000000..0ea69492501b597c9ea2a1fa4a0fcfc30fd6613d GIT binary patch literal 7848 zcmeHMeQXrR6(4)g*iI8-;-)73Vq;^@kgy!2!B*OWzs_eA8wj{4s8ZMGyS07EeX+YF zcBRI~=3=M>qH?K88x@I`hSId6Ri&u>5h6hXt%{nciHa0as1i^kmD;Grhzjh!H#6^U zcYRmEU+o_mwD;!y-h1=jyq#g+jE909ZN)`JjGDs!#gMyPB9KNY`1@kfLAa4MFdzI@ zvCnZ`sVX(y()$n+m z2|&Jhz67}HRR;bgcpifJ9>Byylgoy+L7(H8SZtVdZ2E?-PCaUvMqkXb4YRAWC7wze zUE!X%A!PX_dSoE1_r{Xpcl8yLc+{Jd4MABAS)b*0NB?hUON1jkX5!g00x~4_5)cK|%KcrFo8h z?*}l$Vm860jM4s}=?=^Jx6AcUcq8RS6^4XUlFK~!G0Lw8zaa6&9=rlK0W?+RB%A(r ziPw4X0f`4Z_%VqOOPuzI7?rU-4&1rt4mfZ*1UG4yIPSgdoT0zjf#V*f_N*#;sE-e| zZdLRUqf{c&ui~%J#eGdJt%@G%mlNoq6E%!Ip`30~-W>g9rP6X|d<5v$N;dkN5!S~R zvMLSYUAO=BK4l@R1Utbm^zi$C;gNgz{l`7>9AC>=Wl84fgrBkTvC^ZF@4m*WASUIB z)5jt{g%yt$v5{f)j874(68c9bfR1NMj_lpHFEjp^8_JspGnrk#7nU_YizsM0GF-%( z7FA!aS_;;_)}x~#A6xM8zK_t?=o_J*ymGb*dX=UAAC^T%CMKtbZe~I?Y?>YEE{--8 z39qTCCAS>uVmo#$xKVwbJ#u`kCh*&tny;OiUOQH^Y(f_ex>|iKTc2ka#`8tgM32JctE5f&bKl#?Lg70ed-RkmP z^3}v!LPC?21_t@wA}fn408 zDBjj^)KeEA7q@T(isJBx?kIw*AwL&TgX_OPQH3k2?ajdy_ApEU;Tm(Y$^BN@KZhR%YQWjxQf zU3spB@!vr&`dP@&ZSqoEjpHmi>-G|?fqa}sJ(RA03wrQgkEidmJHsQxu%A9=WxGP_ zGSz&K(B4>O4O*+B#tX5CVXaEX!**}VOswMHs#Wn=U%xHCTXs0jP3~6Tvco2P>7r5m zKtsD*J0lr&SlzuH|EAu9AO1bP2YvW%<23kZTcue+BH)iKjsM0Ta_?+{04hu+VRI?qBa;g!J z2r)l{VOJh!v$bM_Diq`}?0{g|XCu|H#;Zd-y`+s zBu{yplKgX0eoOK+jvVfPP9SdHD3EUXBJP&bd7bRNG}O}alv>xaa_iIE)h!#gwro?o zQmMG5ZdzksM(f9o`xvb= zH(tW%eYx=kjNY>wFJ-h|+;|zIb>+s(8RgZD&%X~qxdN-4&UJ46``PRAKE{ndklmkd zd?BNK>Bb*q`QD#`r&rafDf$Xq#Atsxr3#$n59QUzvxvLl{_wHub8b}JofPM}7s2Zx z#4G4O1ZnuF#IxsQiR1aa$Po|i$2N}7&qG3vGwd0Ekn7LS=OMuJ#ebaZSFkb_I?(9< zkCV_Zf_zq}i01J3ppW=s7111i75a#)Dxx|3CiD@nQxVPKWiUa+11g8JesSLU;#|!2 z^RJ(L`pdZf^*QglZIphQ^eenG)+zP9>uMXv=dYh0sXyQuX8>>y#9e$J@O<}1uW_8B z$kE>wz|R-J|5^aQ&hh#8Sg<%Dp80JN;MMbC_ILsPb%3jR^jXBTEqiBguNGmsTQS{E z=x}3|G%Tj;(Ujg7PxXZ3delytmLA?Yz#^$cI&RoTR9o9nzdFAXUYEu6uxW+|bt7q; zgRIvKCk#EhGm#hs69=b*CY&xDs{E|7lAl{v_J`vTo%i(O z%bks|tk(6mElr(4J-D$|*O|U~%choK>o>Lp^^Of2pKb~T^{%Gojvz?%sFl+D!^tS# zAGU7a*wne91yHzGB->EOrsk#&eN$W8)?ioG?!R0^=DA(u*N2Ubj%z}Bz39U5@ZbW( zeWVM@4bJC{SCuZg?z-u8iTD}Bh49PNycecSvj!7(xCf|h3ffP-zT{4=KWz0gEjpM4 zH9_GHRYS=OhH1r8Nf)Do%rxR*G?2Y?+-90>48X6MiiYhl(~N$xrkIvnPE5Q}6LXP}lN zd#YcF))laqFsp?Qe!9t?>Jy?3G9L7YI^>_~&Xs^+NlErp#}GXNGG~*+WuYgb2L)d? zeyVqfQXMbL)~p}$*9`Vp`w~xe5m8lo!uZiQ#V=v@40LF2h*AASl->jRCwrRzH>Ews zfsN`cqEzpr{UUh0_T7MCT=co8?;6ozkU1MvLc9?*fOFbkmi02xGZeVTPO|KIX;1m1 z`i`hV0%<_;lfC7!r#g@*ty9wX^4|dg)>ITG{XK&Ip62yOJkh;i`=G;~>dJQccRbPq z72b#^dJs^|J^80Pf&LD7LM~W}o9rn6KL%S=A$z6*gH0+l2rm0e_5}PCI!^lrRY)47 zeYaq?1pf!G%}zJ~ literal 0 HcmV?d00001 diff --git a/iopmp_hal_lib/output/light-iopmp.h b/iopmp_hal_lib/output/light-iopmp.h new file mode 100644 index 0000000..79c3166 --- /dev/null +++ b/iopmp_hal_lib/output/light-iopmp.h @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2021 Alibaba Group Holding Limited. + * + */ +#ifndef _LIGHT_IOPMP_API_H +#define _LIGHT_IOPMP_API_H + +#define IOPMP_EMMC 0 +#define IOPMP_SDIO0 1 +#define IOPMP_SDIO1 2 +#define IOPMP_USB0 3 +#define IOPMP_AO 4 +#define IOPMP_AUD 5 +#define IOPMP_CHIP_DBG 6 +#define IOPMP_EIP120I 7 +#define IOPMP_EIP120II 8 +#define IOPMP_EIP120III 9 +#define IOPMP_ISP0 10 +#define IOPMP_ISP1 11 +#define IOPMP_DSP 12 +#define IOPMP_DW200 13 +#define IOPMP_VENC 14 +#define IOPMP_VDEC 15 +#define IOPMP_G2D 16 +#define IOPMP_FCE 17 +#define IOPMP_NPU 18 +#define IOPMP0_DPU 19 +#define IOPMP1_DPU 20 +#define IOPMP_GPU 21 +#define IOPMP_GMAC1 22 +#define IOPMP_GMAC2 23 +#define IOPMP_DMAC 24 +#define IOPMP_TEE_DMAC 25 + +typedef enum { + CSI_ATTR_R = 1, + CSI_ATTR_W = 2, +} csi_iopmp_attr_t; + +/** + * @brief Light iopmp region permission setting. + * + * @param type + * @param attr + * @return csi_err_t + */ +int csi_iopmp_set_attr(int type, u_int8_t *start_addr, u_int8_t *end_addr, csi_iopmp_attr_t attr); + +/** iopmp lock + * @brief Lock secure iopmp setting. + * + * @return csi_err_t + */ +int csi_iopmp_lock(void); + +#endif diff --git a/light_fm_aon/light_aon_fpga.bin b/light_fm_aon/light_aon_fpga.bin new file mode 100755 index 0000000000000000000000000000000000000000..1bb7784ab8e6709025887f5e0e2728d8d1837642 GIT binary patch literal 41492 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 b|MYC~x@_Ma_;V!lg&v*bua7c0?sS6RQq)&Ym3r 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
G3g3u%4=G5cA(NxF1#9PBrdv{AZ`% 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

b)as&tzxsTf*N8l~$;N%Ff?Bxg$Q15m{ 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 /dev/null + if [ $? -ne 0 ]; then + echo -e "\n${RED}Error: OpenSSL engine ${ENGINE_ID_120} is not loaded${NC}" + exit 1 + fi +} + +check_diff() +{ + diff ${O1} ${O2} > /dev/null + if [ $? -ne 0 ]; then + echo -e "\n${RED}$1 $2 tests FAILED${NC}" + result=1 + return + fi + if [ $2 = e ]; then + echo $1 ENCRYPTION PASSED + else + echo $1 DECRYPTION PASSED + fi +} + +test_aes() +{ + if [ $DO_VALGRIND ]; then + echo "// test_aes $1 $2" >> ciphertest_$DATESTAMP.log + fi + $VALGRIND ./../build/cipher --type $1 --engine ${ENGINE_ID_120} --in ${BIGMES} --out ${O1} --op $2 --iv ${IVFILE} --key ${KEYFILE} > /dev/null + if [ $1 = aes-128-ecb ] || [ $1 = aes-192-ecb ] || [ $1 = aes-256-ecb ] || + [ $1 = des-ecb ] || [ $1 = des-ede3-ecb ] || [ $1 = sm4-ecb ]; then + ${OPENSSL} $1 -nosalt -in ${BIGMES} -out ${O2} -$2 -K ${ckey:0:$3} -nopad > /dev/null + else + ${OPENSSL} $1 -nosalt -in ${BIGMES} -out ${O2} -$2 -K ${ckey:0:$3} -iv ${ivkey:0:$4} -nopad > /dev/null + fi + check_diff $1 $2 + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> ciphertest_$DATESTAMP.log + fi +} + +test_xts() +{ + if [ $DO_VALGRIND ]; then + echo "// test_xts $1 $2" >> ciphertest_$DATESTAMP.log + fi + + $VALGRIND ./../build/cipher --type $1 --engine ${ENGINE_ID_120} --in ${MES} --out ${O1} --outdef ${O2} --op $2 --iv ${IVFILE} --key ${KEYFILE} > /dev/null + check_diff $1 $2 + + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> ciphertest_$DATESTAMP.log + fi +} + +test_gcm() +{ + if [ $DO_VALGRIND ]; then + echo "// test_gcm $1 $2" >> ciphertest_$DATESTAMP.log + fi + + if [ $2 = e ]; then + $VALGRIND ./../build/cipher --type $1 --engine ${ENGINE_ID_120} --in ${MES} --out ${O1} --outdef ${O2} --op $2 --iv ${IVFILE} --key ${KEYFILE} --tag ${TAGFILE} --aad ${AADFILE} > /dev/null + check_diff $1 $2 + else + $VALGRIND ./../build/cipher --type $1 --engine ${ENGINE_ID_120} --in ${O1} --out ${O1} --outdef ${O2} --op $2 --iv ${IVFILE} --key ${KEYFILE} --tag ${TAGFILE} --aad ${AADFILE} > /dev/null + check_diff $1 $2 + fi + + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> ciphertest_$DATESTAMP.log + fi +} + +main () { + ${OPENSSL} version + + validate_environment + + if [ "$1" = "-v" ]; then + DO_VALGRIND=1 + VALGRIND=$VALGRIND_CMD + echo "// OS_IK ciphertest valgrind results - $DATESTAMP" > ciphertest_$DATESTAMP.log + fi + + ckey=$(<${KEYFILE}) + ivkey=$(<${IVFILE}) + for ((loop = 0; loop < ${#testarray[@]}; loop++)); do + test_aes ${testarray[loop]} e ${keysizearray[loop]}*2 ${ivsizearray[loop]}*2 + test_aes ${testarray[loop]} d ${keysizearray[loop]}*2 ${ivsizearray[loop]}*2 + done + for loop in ${testarraygcm[@]}; do + test_gcm $loop e + test_gcm $loop d + done + for loop in ${testarrayxts[@]}; do + test_xts $loop e + test_xts $loop d + done + + rm ${O1} ${O2} + if [ ${result} -ne 0 ]; then + echo -e "\n${RED}Cipher tests FAILED${NC}" + return + fi + echo -e "\n${GRN}Cipher tests PASSED${NC}" + + if [ $DO_VALGRIND ]; then + rm $TEMPFILE + fi +} + +main "$@" diff --git a/rambus_sec_lib/bin/EIP120_scripts/ckey.txt b/rambus_sec_lib/bin/EIP120_scripts/ckey.txt new file mode 100644 index 0000000..921369a --- /dev/null +++ b/rambus_sec_lib/bin/EIP120_scripts/ckey.txt @@ -0,0 +1 @@ +2b7e151628aed2a6abf7158809cf4f3c \ No newline at end of file diff --git a/rambus_sec_lib/bin/EIP120_scripts/hkey.txt b/rambus_sec_lib/bin/EIP120_scripts/hkey.txt new file mode 100644 index 0000000..3424549 --- /dev/null +++ b/rambus_sec_lib/bin/EIP120_scripts/hkey.txt @@ -0,0 +1 @@ +0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b diff --git a/rambus_sec_lib/bin/EIP120_scripts/htest.sh b/rambus_sec_lib/bin/EIP120_scripts/htest.sh new file mode 100755 index 0000000..7a00848 --- /dev/null +++ b/rambus_sec_lib/bin/EIP120_scripts/htest.sh @@ -0,0 +1,219 @@ +#!/bin/bash + +#***************************************************************************** +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +#***************************************************************************** + +############################ constants ############################ + +result=0 +ENGINE_ID_120=eip120 +KERNEL_MODULE=umpci_k +OPENSSL=$OPENSSL_DIR/apps/openssl +O1="htest_tmp1.txt" # Temporary file, used for hash eip120 output +O2="htest_tmp2.txt" # Temporary file, used for hash 'internal' output +HKEY=hkey.txt # HMAC key file +CKEY=ckey.txt # CMAC key file +RED='\033[0;31m' +GRN='\033[0;32m' +NC='\033[0m' # No Color +DATESTAMP=$(date +%y%m%d_%H%M) +TEMPFILE=tempfile.txt +VALGRIND_CMD='valgrind --leak-check=full --show-leak-kinds=all --log-file='$TEMPFILE + +############################ functions ############################ + +validate_environment() +{ + if [ ! -f $OPENSSL_DIR/apps/openssl ]; then + echo -e "${RED}Error: openssl client not found${NC}" + exit 1 + fi + if [ -z $OPENSSL_ENGINES ]; then + echo -e "${RED}Error: Environment variable OPENSSL_ENGINES is undefined${NC}" + exit 1 + fi + if [ $(lsmod | grep "$KERNEL_MODULE" -c) -ne 1 ]; then + echo -e "${RED}Error: kernel module $KERNEL_MODULE not found${NC}" + exit 1 + fi + + ${OPENSSL} engine -t ${ENGINE_ID_120} &> /dev/null + if [ $? -ne 0 ]; then + echo -e "\n${RED}Error: OpenSSL engine ${ENGINE_ID_120} is not loaded${NC}" + exit 1 + fi +} + +check_diff() +{ + diff ${O1} ${O2} > /dev/null + if [ $? -ne 0 ]; then + echo $1 "(psize "$2")" FAILED + result=1 + return + fi + echo $1 "(psize "$2")" PASSED +} + +test_hmac() +{ + if [ $DO_VALGRIND ]; then + echo "// $1 $2" >> htest_$DATESTAMP.log + fi + + head -c $2 lorum.txt | $VALGRIND ${OPENSSL} dgst -engine ${ENGINE_ID_120} -$1 -out ${O1} -mac HMAC -macopt hexkey:$hkey &> /dev/null + if [ $? -ne 0 ]; then + echo "openssl with " $1 "(psize "$2")" FAILED + result=1 + return + fi + + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> htest_$DATESTAMP.log + fi + + head -c $2 lorum.txt | ${OPENSSL} dgst -$1 -out ${O2} -mac HMAC -macopt hexkey:$hkey > /dev/null + check_diff HMAC-$1 $2 +} + +test_hmacs() +{ + psizes=$2 + for psize in ${psizes[@]}; do + test_hmac $1 $psize + done +} + +test_cmac() +{ + if [ $DO_VALGRIND ]; then + echo "// $1 $2" >> htest_$DATESTAMP.log + fi + + head -c $2 lorum.txt | $VALGRIND ${OPENSSL} dgst -engine ${ENGINE_ID_120} -out ${O1} -mac CMAC -macopt cipher:$1 -macopt hexkey:$ckey &> /dev/null + if [ $? -ne 0 ]; then + echo "openssl with cipher " $1 "(psize "$2")" FAILED + result=1 + return + fi + + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> htest_$DATESTAMP.log + fi + + head -c $2 lorum.txt | ${OPENSSL} dgst -out ${O2} -mac CMAC -macopt cipher:$1 -macopt hexkey:$ckey > /dev/null + check_diff CMAC-$1 $2 +} + +test_cmacs() +{ + psizes=$2 + for psize in ${psizes[@]}; do + test_cmac $1 $psize + done +} + +test_hash() +{ + if [ $DO_VALGRIND ]; then + echo "// $1 $2" >> htest_$DATESTAMP.log + fi + + head -c $2 lorum.txt | $VALGRIND ${OPENSSL} dgst -out ${O1} -$1 -engine eip120 -engine_impl &> /dev/null + if [ $? -ne 0 ]; then + echo "openssl with" $1 "(psize "$2")" FAILED + result=1 + return + fi + + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> htest_$DATESTAMP.log + fi + + head -c $2 lorum.txt | ${OPENSSL} dgst -out ${O2} -$1 &> /dev/null + check_diff HASH-$1 $2 +} + +test_hashes() +{ + psizes=$2 + for psize in ${psizes[@]}; do + test_hash $1 $psize + done +} + +main () { + ${OPENSSL} version + + validate_environment + + if [ "$1" = "-v" ]; then + DO_VALGRIND=1 + VALGRIND=$VALGRIND_CMD + echo "// OS_IK eip120 hash valgrind results - $DATESTAMP" > htest_$DATESTAMP.log + fi + + hkey=$(<${HKEY}) + test_hmacs sha1 '0 3 56 64 128 192 256 320 1023' + test_hmacs sha224 '0 3 56 64 128 192 256 320 1023' + test_hmacs sha256 '0 3 56 64 128 192 256 320 1023' + test_hmacs sha384 '0 3 56 128 256 384 512 640 1023' + test_hmacs sha512 '0 3 56 128 256 384 512 640 1023' + test_hmacs sha3-224 '0 3 56 144 288 432 576 720 1023' + test_hmacs sha3-256 '0 3 56 136 272 408 544 680 1023' + test_hmacs sha3-384 '0 3 56 104 208 312 416 520 1023' + test_hmacs sha3-512 '0 3 56 72 144 216 288 360 1023' + test_hmacs sm3 '0 3 56 64 128 256 384 512 640 1023' + + ckey=$(<${CKEY}) + test_cmacs aes-128-ecb '0 16 32 48 64 80 1023' + test_cmacs sm4-ecb '0 16 32 48 64 80 1023' + + test_hashes sha1 '128 192 256 320 1023' + test_hashes sha224 '128 192 256 320 1023' + test_hashes sha256 '128 192 256 320 1023' + test_hashes sha384 '256 384 512 640 1023' + test_hashes sha512 '256 384 512 640 1023' + test_hashes sha3-224 '288 432 576 720 1023' + test_hashes sha3-256 '272 408 544 680 1023' + test_hashes sha3-384 '208 312 416 520 1023' + test_hashes sha3-512 '144 216 288 360 1023' + test_hashes sm3 '128 256 384 512 640 1023' + + if [ $DO_VALGRIND ]; then + rm $TEMPFILE + fi + + unset DO_VALGRIND + unset VALGRIND + + test_hashes sha1 '3 56 64' + test_hashes sha224 '3 56 64' + test_hashes sha256 '3 56 64' + test_hashes sha384 '3 56 128' + test_hashes sha512 '3 56 128' + test_hashes sha3-224 '3 56 144' + test_hashes sha3-256 '3 56 136' + test_hashes sha3-384 '3 56 104' + test_hashes sha3-512 '3 56 72' + test_hashes sm3 '3 56 64' + + rm ${O1} ${O2} + if [ ${result} -ne 0 ]; then + echo -e "\n${RED}Hash tests FAILED${NC}" + return + fi + echo -e "\n${GRN}Hash tests PASSED${NC}" +} + +main "$@" diff --git a/rambus_sec_lib/bin/EIP120_scripts/iv.txt b/rambus_sec_lib/bin/EIP120_scripts/iv.txt new file mode 100644 index 0000000..f02b5b9 --- /dev/null +++ b/rambus_sec_lib/bin/EIP120_scripts/iv.txt @@ -0,0 +1 @@ +12345678901234567890123456789012 \ No newline at end of file diff --git a/rambus_sec_lib/bin/EIP120_scripts/key.txt b/rambus_sec_lib/bin/EIP120_scripts/key.txt new file mode 100644 index 0000000..f11fc5e --- /dev/null +++ b/rambus_sec_lib/bin/EIP120_scripts/key.txt @@ -0,0 +1 @@ +feffe9928665731c6d6a8f9467308308feffe9928665731c6d6a8f9467308308 \ No newline at end of file diff --git a/rambus_sec_lib/bin/EIP120_scripts/lorum.txt b/rambus_sec_lib/bin/EIP120_scripts/lorum.txt new file mode 100644 index 0000000..6a2d8f2 --- /dev/null +++ b/rambus_sec_lib/bin/EIP120_scripts/lorum.txt @@ -0,0 +1,3 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dictum, urna a auctor ultrices, turpis quam fringilla elit, sed gravida sapien ex ut augue. Ut id sapien pellentesque, vulputate odio quis, posuere eros. Sed tincidunt, arcu vitae feugiat vehicula, leo turpis dictum lorem, a pulvinar ex elit sed metus. Phasellus mattis semper erat, sit amet dapibus neque consequat vitae. Quisque maximus enim et blandit eleifend. Aenean non est non neque aliquet venenatis. Nullam imperdiet justo vel finibus accumsan. Integer fermentum varius maximus. + +Aenean sagittis eu mi in pretium. Morbi in justo ac tellus pulvinar ultrices ac vitae arcu. Donec facilisis justo a arcu ornare vulputate. Sed at dui et erat scelerisque pellentesque. In sed tortor risus. Pellentesque placerat et augue eget hendrerit. Nulla dolor sapien, iaculis vel egestas vitae, tincidunt id ante. Morbi sed auctor felis. Ut pellentesque placerat consectetur. Donec sit amet erat et risus viverra vestibulum. Mauris congue cursus lacus in lobortis laoreet. diff --git a/rambus_sec_lib/bin/EIP120_scripts/message.txt b/rambus_sec_lib/bin/EIP120_scripts/message.txt new file mode 100644 index 0000000..444c045 --- /dev/null +++ b/rambus_sec_lib/bin/EIP120_scripts/message.txt @@ -0,0 +1 @@ +12345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123123456789012345678901234567890121234567890123456789012345678123456789012345678901234567890121234567890123456789012345678456789012345678456789012345678456789012312345678901234567890123456789012123456789012345678901234567812345678901234567890123456789012123456789012345678901234567845678901234567845678901234567845678901231234567890123456789012345678901212345678901234567890123456781234567890123456789012345678901212345678901234567890123456784567890123456784567890123456784567890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901238901235678901234567890121234567890123456789012345678456789012345678456789012345678456789012389012356789012345678901212345678901234567890123456784567890123456784567890123456784567890123890123567890123456789012123456789012345678901234567845678901234567845678901234567845678901237845678901234567845678901237845678901234567845678901231234 \ No newline at end of file diff --git a/rambus_sec_lib/bin/EIP120_scripts/tag.txt b/rambus_sec_lib/bin/EIP120_scripts/tag.txt new file mode 100644 index 0000000..e69de29 diff --git a/rambus_sec_lib/bin/EIP120_scripts/testdatain.txt b/rambus_sec_lib/bin/EIP120_scripts/testdatain.txt new file mode 100644 index 0000000..e6fecf2 --- /dev/null +++ b/rambus_sec_lib/bin/EIP120_scripts/testdatain.txt @@ -0,0 +1 @@ +12345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456123456789012345612345678901234561234567890123456 \ No newline at end of file diff --git a/rambus_sec_lib/bin/EIP28_scripts/dh-key-agreement.sh b/rambus_sec_lib/bin/EIP28_scripts/dh-key-agreement.sh new file mode 100755 index 0000000..a60775a --- /dev/null +++ b/rambus_sec_lib/bin/EIP28_scripts/dh-key-agreement.sh @@ -0,0 +1,344 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +############################################################################## +# +# This script tests openssl engine e_eip28pka.so with openssl 1.1.1k +# running on an x86 host and a PCIe virtex HW with the PKA module. +# +# Tests: +# 1. DH key exchange, matching private key public peer key (openssl, openssl) +# 2. DH key exchange, matching private key public peer key (engine, engine) +# +# Setup: +# 1. Configure the openssl: export OPENSSL_DIR="/path/to/openssl-1.1.1k" +# 2. Set engine path: export OPENSSL_ENGINES=/path/to/engines +# +# Usage: +# run all tests: bash dh-key-agreement.sh +# run a test: bash dh-key-agreement.sh +# +# Date: 12/8/2021 +############################################################################## + +############################ constants ############################ +PASS=0 +FAIL=1 +DEBUG=false +VALIDATE_SETUP=true +ENGINE_ID_28=eip28pka +KERNEL_MODULE=umpci_k +OPENSSL=$OPENSSL_DIR/apps/openssl +DATESTAMP=$(date +%y%m%d_%H%M) +TEMPFILE=tempfile.txt +VALGRIND_CMD='valgrind --leak-check=full --show-leak-kinds=all --log-file='$TEMPFILE + +############################ functions ############################ + +print_function() { + echo "${FUNCNAME[1]}" +} + +print_openssl_details() { + [ $DEBUG = true ] && print_function + ${OPENSSL} version +} + +validate_environment() { + [ $DEBUG = true ] && print_function + if [ -z $OPENSSL_DIR ]; then + echo "Error: Environment variable OPENSSL_DIR is undefined" + return $FAIL + fi + if [ ! -f $OPENSSL_DIR/apps/openssl ]; then + echo "Error: openssl client not found" + return $FAIL + fi + if [ -z $OPENSSL_ENGINES ]; then + echo "Error: Environment variable OPENSSL_ENGINES is undefined" + return $FAIL + fi + if [ $(lsmod | grep "$KERNEL_MODULE" -c) -ne 1 ]; then + echo "Error: kernel module $KERNEL_MODULE not found" + return $FAIL + fi + return $PASS +} + +print_engine_capabilities() { + [ $DEBUG = true ] && print_function + ${OPENSSL} engine -c $ENGINE_ID_28 +} + +is_engine_available() { + if [ $(${OPENSSL} engine -t eip28pka | grep -c "\[ available \]") -ne 1 ]; then + echo "Error: engine unavailable" + return $FAIL + fi + return $PASS +} + +print_configuration() { + echo "DEBUG $DEBUG " + echo "VALIDATE_SETUP $VALIDATE_SETUP" + echo "ENGINE_ID_28 $ENGINE_ID_28 " + echo "KERNEL_MODULE $KERNEL_MODULE " + echo "OPENSSL $OPENSSL " +} + +create_test_file() { + local filename=$1 + local length=$2 + [ $DEBUG = true ] && print_function + echo $(${OPENSSL} rand -base64 $length) > $filename + [ $DEBUG = true ] && cat $filename +} + +create_dh_key_params() { + [ $DEBUG = true ] && print_function + local engine=$1 + local dh_key_params_file=$2 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # create key params: + # openssl genpkey -genparam -algorithm DH -out dhp.pem + # examine key params: + # openssl pkeyparam -in dhp.pem -text + print=`${OPENSSL} genpkey \ + -genparam \ + $parameter_engine \ + -algorithm DH \ + -out $dh_key_params_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "return: $ret" + return $ret +} + +create_dh_private_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local dh_key_params_file=$2 + local private_key_file=$3 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate private DH key: + # openssl genpkey -paramfile dhp.pem -out dhkey1.pem + # examine private key: + # openssl pkey -in dhkey2.pem -text -noout + print=`${OPENSSL} genpkey \ + $parameter_engine \ + -paramfile $dh_key_params_file \ + -out $private_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $private_key_file + return $ret +} + +derive_public_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local public_key_file=$3 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate public key: + # openssl pkey -in dhkey1.pem -pubout -out dhpub1.pem + # examine public key: + # openssl pkey -pubin -in dhpub1.pem -text + print=`${OPENSSL} pkey \ + $parameter_engine \ + -in $private_key_file \ + -pubout \ + -out $public_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $public_key_file + return $ret +} + +derive_shared_secret() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local public_key_peer_file=$3 + local output_secert_file=$4 + local ret + local print + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// derive_shared_secret $2 $3 $4" >> dh-key-agreement_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + # openssl pkeyutl -derive -inkey alice.pem -peerkey bob.pub -out alicebob.key + print=`$valgrind $OPENSSL pkeyutl \ + -derive \ + $parameter_engine \ + -inkey $private_key_file \ + -peerkey $public_key_peer_file \ + -out $output_secert_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "*********************** START *******************************" + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "*********************** END *******************************" + [ $DEBUG = true ] && echo "return: $ret" + + if [ $dovalgrind ]; then + cat $TEMPFILE >> dh-key-agreement_$DATESTAMP.log + fi + + return $ret +} + +cleanup() { + [ $DEBUG = true ] && print_function + for f in "$@"; do + [ -f "$f" ] && rm $f + done +} + +test_dh_key_exchange_positive() { + local use_engine_1=$1 + local use_engine_2=$2 + cleanup key_params.pem private1.pem public1.pem private2.pem public2.pem secret1.bin secret2.bin + create_dh_key_params false key_params.pem + [ $? -ne 0 ] && return 1 + create_dh_private_key false key_params.pem private1.pem + [ $? -ne 0 ] && return 2 + derive_public_key false private1.pem public1.pem + [ $? -ne 0 ] && return 3 + create_dh_private_key false key_params.pem private2.pem + [ $? -ne 0 ] && return 4 + derive_public_key false private2.pem public2.pem + [ $? -ne 0 ] && return 5 + derive_shared_secret $use_engine_1 private1.pem public2.pem secret1.bin + [ $? -ne 0 ] && return 6 + derive_shared_secret $use_engine_2 private2.pem public1.pem secret2.bin + [ $? -ne 0 ] && return 7 + cmp -s secret1.bin secret2.bin + [ $? -ne 0 ] && return 8 + return $PASS +} + +test_dh_key_exchange_negative() { + local use_engine_1=$1 + local use_engine_2=$2 + cleanup private1.pem public1.pem private2.pem public2.pem secret1.bin secret2.bin + create_EC_private_key false P-256 private1.pem + [ $? -ne 0 ] && return 1 + derive_public_key false private1.pem public1.pem + [ $? -ne 0 ] && return 2 + create_EC_private_key false P-256 private2.pem + [ $? -ne 0 ] && return 3 + derive_public_key false private2.pem public2.pem + [ $? -ne 0 ] && return 4 + create_EC_private_key false P-256 private3.pem + [ $? -ne 0 ] && return 5 + derive_public_key false private3.pem public3.pem + [ $? -ne 0 ] && return 6 + derive_shared_secret $use_engine_1 private1.pem public2.pem secret1.bin + [ $? -ne 0 ] && return 7 + derive_shared_secret $use_engine_2 private2.pem public3.pem secret2.bin + [ $? -ne 0 ] && return 8 + cmp -s secret1.bin secret2.bin + [ $? -eq 0 ] && return 6 + return $PASS +} + +############################ main ############################ + +main () { + echo "Test: DH key agreement" + # arguments + run_all=false + run_test_number=0 + if [ "$1" -eq "$1" ] 2>/dev/null; then + run_test_number=$1 + echo "Run test number $test_number" + else + run_all=true + echo "Run all tests" + fi + # validation + if [ $VALIDATE_SETUP == true ]; then + echo "validate setup" + validate_environment + [ $? -eq $FAIL ] && exit 1 + is_engine_available + [ $? -eq $FAIL ] && exit 1 + print_configuration + print_openssl_details + print_engine_capabilities + fi + + if [ "$1" = "-v" ] || [ "$2" = "-v" ]; then + DO_VALGRIND=1 + VALGRIND=$VALGRIND_CMD + echo "// OS_IK dh-key-agreement valgrind results - $DATESTAMP" > dh-key-agreement_$DATESTAMP.log + fi + + # tests: + tests_run=0 + tests_pass=0 + tests_total=3 + if [ $run_all == true ] || [ $run_test_number -eq 1 ]; then + test_name="DH key exchange, matching private key public peer key (openssl, openssl)" + printf "Test %s: " "$test_name" + test_dh_key_exchange_positive false false + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + if [ $run_all == true ] || [ $run_test_number -eq 2 ]; then + test_name="DH key exchange, matching private key public peer key (engine, engine)" + printf "Test %s: " "$test_name" + test_dh_key_exchange_positive true true + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + if [ $run_all == true ] || [ $run_test_number -eq 3 ]; then + test_name="DH key exchange, matching private key public peer key (openssl, engine)" + printf "Test %s: " "$test_name" + test_dh_key_exchange_positive false true + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + echo "tests: $tests_total run: $tests_run passed: $tests_pass" + + if [ $DO_VALGRIND ]; then + rm $TEMPFILE + fi + + exit 0 +} + +main "$@" diff --git a/rambus_sec_lib/bin/EIP28_scripts/ecdh-key-agreement.sh b/rambus_sec_lib/bin/EIP28_scripts/ecdh-key-agreement.sh new file mode 100755 index 0000000..0a74c60 --- /dev/null +++ b/rambus_sec_lib/bin/EIP28_scripts/ecdh-key-agreement.sh @@ -0,0 +1,342 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +############################################################################## +# +# This script tests openssl engine e_eip28pka.so with openssl 1.1.1k +# running on an x86 host and a PCIe virtex HW with the PKA module. +# +# Tests: +# 1. ECDH key exchange, curve P-256, matching private key public peer key (openssl, openssl) +# 2. ECDH key exchange, curve P-256, matching private key public peer key P-256 (engine, engine) +# 3. ECDH key exchange, curve P-256, matching private key public peer key P-256 (openssl, engine) +# 4. ECDH key exchange, curve P-256, unmatching private key public peer key P-256 (openssl, openssl) +# 5. ECDH key exchange, curve P-256, unmatching private key public peer key P-256 (openssl, engine) +# +# Setup: +# 1. Configure the openssl: export OPENSSL_DIR="/path/to/openssl-1.1.1k" +# 2. Set engine path: export OPENSSL_ENGINES=/path/to/engines +# +# Usage: +# run all tests: bash ecdh-key-agreement.sh +# run a test: bash ecdh-key-agreement.sh +# +# Date: 12/8/2021 +############################################################################## + +############################ constants ############################ +PASS=0 +FAIL=1 +DEBUG=false +VALIDATE_SETUP=true +ENGINE_ID_28=eip28pka +KERNEL_MODULE=umpci_k +OPENSSL=$OPENSSL_DIR/apps/openssl +DATESTAMP=$(date +%y%m%d_%H%M) +TEMPFILE=tempfile.txt +VALGRIND_CMD='valgrind --leak-check=full --show-leak-kinds=all --log-file='$TEMPFILE + +############################ functions ############################ +print_function() { + echo "${FUNCNAME[1]}" +} + +print_openssl_details() { + [ $DEBUG = true ] && print_function + ${OPENSSL} version +} + +validate_environment() { + [ $DEBUG = true ] && print_function + if [ -z $OPENSSL_DIR ]; then + echo "Error: Environment variable OPENSSL_DIR is undefined" + return $FAIL + fi + if [ ! -f $OPENSSL_DIR/apps/openssl ]; then + echo "Error: openssl client not found" + return $FAIL + fi + if [ -z $OPENSSL_ENGINES ]; then + echo "Error: Environment variable OPENSSL_ENGINES is undefined" + return $FAIL + fi + if [ $(lsmod | grep "$KERNEL_MODULE" -c) -ne 1 ]; then + echo "Error: kernel module $KERNEL_MODULE not found" + return $FAIL + fi + return $PASS +} + +print_engine_capabilities() { + [ $DEBUG = true ] && print_function + ${OPENSSL} engine -c $ENGINE_ID_28 +} + +is_engine_available() { + if [ $(${OPENSSL} engine -t eip28pka | grep -c "\[ available \]") -ne 1 ]; then + echo "Error: engine unavailable" + return $FAIL + fi + return $PASS +} + +print_configuration() { + echo "DEBUG $DEBUG " + echo "VALIDATE_SETUP $VALIDATE_SETUP" + echo "ENGINE_ID_28 $ENGINE_ID_28 " + echo "KERNEL_MODULE $KERNEL_MODULE " + echo "OPENSSL $OPENSSL " +} + +create_test_file() { + local filename=$1 + local length=$2 + [ $DEBUG = true ] && print_function + echo $(${OPENSSL} rand -base64 $length) > $filename + [ $DEBUG = true ] && cat $filename +} + +create_EC_private_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local curve=$2 + local private_key_file=$3 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate private key: + # openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out private.pem + # examine private key: + # openssl ec -in private.pem -noout -text + print=`${OPENSSL} genpkey \ + $parameter_engine \ + -algorithm EC \ + -pkeyopt ec_paramgen_curve:$curve \ + -out $private_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $private_key_file + return $ret +} + +derive_public_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local public_key_file=$3 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate public key: + # openssl ec -pubout -in private.pem -out public.pem + # examine public key: + # openssl pkey -noout -text -inform PEM -in public.pem -pubin + print=`${OPENSSL} pkey \ + $parameter_engine \ + -pubout \ + -in $private_key_file \ + -out $public_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $public_key_file + return $ret +} + +derive_shared_secret() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local public_key_peer_file=$3 + local output_secert_file=$4 + local ret + local print + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// derive_shared_secret $2 $3 $4" >> ecdh-key-agreement_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + # openssl pkeyutl -derive -inkey alice.pem -peerkey bob.pub -out alicebob.key + print=`$valgrind $OPENSSL pkeyutl \ + -derive \ + $parameter_engine \ + -inkey $private_key_file \ + -peerkey $public_key_peer_file \ + -out $output_secert_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "*********************** START *******************************" + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "*********************** END *******************************" + [ $DEBUG = true ] && echo "return: $ret" + + if [ $dovalgrind ]; then + cat $TEMPFILE >> ecdh-key-agreement_$DATESTAMP.log + fi + + return $ret +} + +cleanup() { + [ $DEBUG = true ] && print_function + for f in "$@"; do + [ -f "$f" ] && rm $f + done +} + +test_ecdh_key_exchange_positive() { + local use_engine_1=$1 + local use_engine_2=$2 + local curve=$3 + cleanup private1.pem public1.pem private2.pem public2.pem secret1.bin secret2.bin + create_EC_private_key false $curve private1.pem + [ $? -ne 0 ] && return 1 + derive_public_key false private1.pem public1.pem + [ $? -ne 0 ] && return 2 + create_EC_private_key false $curve private2.pem + [ $? -ne 0 ] && return 3 + derive_public_key false private2.pem public2.pem + [ $? -ne 0 ] && return 4 + derive_shared_secret $use_engine_1 private1.pem public2.pem secret1.bin + [ $? -ne 0 ] && return 5 + derive_shared_secret $use_engine_2 private2.pem public1.pem secret2.bin + [ $? -ne 0 ] && return 5 + cmp -s secret1.bin secret2.bin + [ $? -ne 0 ] && return 5 + return $PASS +} + +test_ecdh_key_exchange_negative() { + local use_engine_1=$1 + local use_engine_2=$2 + local curve=$3 + cleanup private1.pem public1.pem private2.pem public2.pem secret1.bin secret2.bin + create_EC_private_key false $curve private1.pem + [ $? -ne 0 ] && return 1 + derive_public_key false private1.pem public1.pem + [ $? -ne 0 ] && return 2 + create_EC_private_key false $curve private2.pem + [ $? -ne 0 ] && return 3 + derive_public_key false private2.pem public2.pem + [ $? -ne 0 ] && return 4 + create_EC_private_key false $curve private3.pem + [ $? -ne 0 ] && return 5 + derive_public_key false private3.pem public3.pem + [ $? -ne 0 ] && return 6 + derive_shared_secret $use_engine_1 private1.pem public2.pem secret1.bin + [ $? -ne 0 ] && return 7 + derive_shared_secret $use_engine_2 private2.pem public3.pem secret2.bin + [ $? -ne 0 ] && return 8 + cmp -s secret1.bin secret2.bin + [ $? -eq 0 ] && return 6 + return $PASS +} + +############################ main ############################ + +main () { + echo "Test: ECDH key agreement" + # arguments + run_all=false + run_test_number=0 + if [ "$1" -eq "$1" ] 2>/dev/null; then + run_test_number=$1 + echo "Run test number $test_number" + else + run_all=true + echo "Run all tests" + fi + # validation + if [ $VALIDATE_SETUP == true ]; then + echo "validate setup" + validate_environment + [ $? -eq $FAIL ] && exit 1 + is_engine_available + [ $? -eq $FAIL ] && exit 1 + print_configuration + print_openssl_details + print_engine_capabilities + fi + + if [ "$1" = "-v" ] || [ "$2" = "-v" ]; then + DO_VALGRIND=1 + VALGRIND=$VALGRIND_CMD + echo "// OS_IK ecdh-key-agreement valgrind results - $DATESTAMP" > ecdh-key-agreement_$DATESTAMP.log + fi + + # tests: + tests_run=0 + tests_pass=0 + tests_total=5 + if [ $run_all == true ] || [ $run_test_number -eq 1 ]; then + test_name="ECDH key exchange, curve P-256, matching private key public peer key (openssl, openssl)" + printf "Test %s: " "$test_name" + test_ecdh_key_exchange_positive false false P-256 + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + if [ $run_all == true ] || [ $run_test_number -eq 2 ]; then + test_name="ECDH key exchange, curve P-256, matching private key public peer key (engine, engine)" + printf "Test %s: " "$test_name" + test_ecdh_key_exchange_positive true true P-256 + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + if [ $run_all == true ] || [ $run_test_number -eq 3 ]; then + test_name="ECDH key exchange, curve P-256, matching private key public peer key (openssl, engine)" + printf "Test %s: " "$test_name" + test_ecdh_key_exchange_positive false true P-256 + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + if [ $run_all == true ] || [ $run_test_number -eq 4 ]; then + test_name="ECDH key exchange, curve P-256, unmatching private key public peer key (openssl, openssl)" + printf "Test %s: " "$test_name" + test_ecdh_key_exchange_negative false false P-256 + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + if [ $run_all == true ] || [ $run_test_number -eq 5 ]; then + test_name="ECDH key exchange, curve P-256, unmatching private key public peer key (openssl, engine)" + printf "Test %s: " "$test_name" + test_ecdh_key_exchange_negative false true P-256 + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + echo "tests: $tests_total run: $tests_run passed: $tests_pass" + + if [ $DO_VALGRIND ]; then + rm $TEMPFILE + fi + + exit 0 +} + +main "$@" diff --git a/rambus_sec_lib/bin/EIP28_scripts/edcsa-sign-and-verify.sh b/rambus_sec_lib/bin/EIP28_scripts/edcsa-sign-and-verify.sh new file mode 100755 index 0000000..aa7bb4d --- /dev/null +++ b/rambus_sec_lib/bin/EIP28_scripts/edcsa-sign-and-verify.sh @@ -0,0 +1,380 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +############################################################################## +# +# This script tests openssl engine e_eip28pka.so with openssl 1.1.1k +# running on an x86 host and a PCIe virtex HW with the PKA module. +# Tests: +# 1. ECDSA sign and verify openssl positive flow +# 2. ECDSA sign and verify engine eip28 positive flow +# 3. ECDSA sign and verify openssl negative flow +# 4. ECDSA sign and verify engine eip28 negative flow +# Setup: +# Setup: +# 1. Configure the openssl: export OPENSSL_DIR="/path/to/openssl-1.1.1k" +# 2. Set engine path: export OPENSSL_ENGINES=/path/to/engines +# Usage: +# run all tests: bash sign-and-verify.sh +# run specific test: bash sign-and-verify.sh +# +# Date: 12/8/2021 +############################################################################## + +############################ constants ############################ + +DEBUG=false +OPENSSL=$OPENSSL_DIR/apps/openssl +VALIDATE_SETUP=true +ENGINE_ID_28=eip28pka +KERNEL_MODULE=umpci_k +PASS=0 +FAIL=1 +DATESTAMP=$(date +%y%m%d_%H%M) +TEMPFILE=tempfile.txt +VALGRIND_CMD='valgrind --leak-check=full --show-leak-kinds=all --log-file='$TEMPFILE + +############################ functions ############################ +print_function() { + echo "${FUNCNAME[1]}" +} + +print_openssl_details() { + [ $DEBUG = true ] && print_function + which openssl + ${OPENSSL} version +} + +validate_environment() { + [ $DEBUG = true ] && print_function + if [ -z $OPENSSL_DIR ]; then + echo "Error: Environment variable OPENSSL_DIR is undefined" + return $FAIL + fi + if [ ! -f $OPENSSL_DIR/apps/openssl ]; then + echo "Error: openssl client not found" + return $FAIL + fi + if [ -z $OPENSSL_ENGINES ]; then + echo "Error: Environment variable OPENSSL_ENGINES is undefined" + return $FAIL + fi + if [ $(lsmod | grep "$KERNEL_MODULE" -c) -ne 1 ]; then + echo "Error: kernel module $KERNEL_MODULE not found" + return $FAIL + fi + return $PASS +} + +print_engine_capabilities() { + [ $DEBUG = true ] && print_function + ${OPENSSL} engine -c $ENGINE_ID_28 +} + +create_test_file() { + local filename=$1 + local length=$2 + [ $DEBUG = true ] && print_function + echo $(${OPENSSL} rand -base64 $length) > $filename + [ $DEBUG = true ] && cat $filename +} + +create_ECDSA_private_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// create_ECDSA_private_key $2" >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + # possible curves: ${OPENSSL} ecparam -list_curves + # prev. curve tested: secp384r1 + local ret + local print + print=`$valgrind ${OPENSSL} ecparam \ + $parameter_engine \ + -genkey \ + -name secp224r1 \ + -noout \ + -out $private_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $private_key_file + + if [ $dovalgrind ]; then + cat $TEMPFILE >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + return $ret +} + +create_ECDSA_public_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local public_key_file=$3 + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// create_ECDSA_public_key $2 $3" >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + print=`$valgrind ${OPENSSL} ec \ + $parameter_engine \ + -pubout \ + -in $private_key_file \ + -out $public_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $public_key_file + + if [ $dovalgrind ]; then + cat $TEMPFILE >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + return $ret +} + +hash_the_file() { + [ $DEBUG = true ] && print_function + local engine=$1 + local hash=$2 + local message_file=$3 + local hash_file=$4 + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// hash_the_file $2 $3 $4" >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + print=`$valgrind ${OPENSSL} dgst \ + $parameter_engine \ + -sha256 \ + -out $hash_file \ + -binary \ + ${message_file} 2>&1` + ret=$? + [ $DEBUG = true ] && hexdump -x $hash_file + + if [ $dovalgrind ]; then + cat $TEMPFILE >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + return $ret +} + +sign_the_hash() { + [ $DEBUG = true ] && print_function + local engine=$1 + local hash=$2 + local private_key_file=$3 + local hash_file=$4 + local signature_file=$5 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// sign_the_hash $2 $3 $4 $5" >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + print=`$valgrind ${OPENSSL} pkeyutl \ + $parameter_engine \ + -sign \ + -out ${signature_file} \ + -in ${hash_file} \ + -inkey ${private_key_file} \ + -keyform pem \ + -pkeyopt digest:sha256 2>&1` + ret=$? + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && hexdump -x $signature_file + + if [ $dovalgrind ]; then + cat $TEMPFILE >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + return $ret +} + +validate_the_hash_with_the_signature() { + [ $DEBUG = true ] && print_function + local engine=$1 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local public_key_file=$2 + local signature_file=$3 + local hash_file=$4 + local ret + local print + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// validate_the_hash_with_the_signature $2 $3 $4 $5" >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + print=`$valgrind ${OPENSSL} pkeyutl \ + -verify \ + $parameter_engine \ + -pubin \ + -inkey ${public_key_file} \ + -in ${hash_file} \ + -sigfile ${signature_file} \ + -keyform pem \ + -pkeyopt digest:sha256 2>&1` + ret=$? + [ $DEBUG = true ] && echo "return: $ret" + + if [ $dovalgrind ]; then + cat $TEMPFILE >> edcsa-sign-and-verify_$DATESTAMP.log + fi + + return $ret +} + +cleanup() { + [ $DEBUG = true ] && print_function + for f in "$@"; do + [ -f "$f" ] && rm $f + done +} + +test_ecdsa_sign_and_verify_positive() { + local use_engine=$1 + cleanup test.file ec_private.pem ec_public.pem ec_signature.bin test.file.hash + create_test_file test.file 50 + create_ECDSA_private_key $use_engine ec_private.pem + [ $? -ne 0 ] && return $FAIL + hash_the_file $use_engine sha256 test.file test.file.hash + [ $? -ne 0 ] && return $FAIL + sign_the_hash $use_engine sha256 ec_private.pem test.file.hash ec_signature.bin + [ $? -ne 0 ] && return $FAIL + create_ECDSA_public_key $use_engine ec_private.pem ec_public.pem + [ $? -ne 0 ] && return $FAIL + validate_the_hash_with_the_signature $use_engine ec_public.pem ec_signature.bin test.file.hash + [ $? -ne 0 ] && return $FAIL + return $PASS +} + +test_ecdsa_sign_and_verify_negative() { + local use_engine=$1 + cleanup test.file ec_private.pem ec_private_2.pem ec_public_2.pem ec_signature.bin test.file.hash + create_test_file test.file 50 + create_ECDSA_private_key $use_engine ec_private.pem + [ $? -ne 0 ] && return $FAIL + hash_the_file $use_engine sha256 test.file test.file.hash + [ $? -ne 0 ] && return $FAIL + sign_the_hash $use_engine sha256 ec_private.pem test.file.hash ec_signature.bin + [ $? -ne 0 ] && return $FAIL + create_ECDSA_private_key $use_engine ec_private_2.pem + [ $? -ne 0 ] && return $FAIL + create_ECDSA_public_key $use_engine ec_private_2.pem ec_public_2.pem + [ $? -ne 0 ] && return $FAIL + validate_the_hash_with_the_signature $use_engine ec_public_2.pem ec_signature.bin test.file.hash + [ $? -eq 0 ] && return $FAIL # THIS IS A NEGATIVE TEST + return $PASS +} + +############################ main ############################ + +main () { + # script arguments + run_all=false + run_test_number=0 + if [ "$1" -eq "$1" ] 2>/dev/null; then + run_test_number=$1 + echo "Run test number $test_number" + else + run_all=true + echo "Run all tests" + fi + if [ $VALIDATE_SETUP == true ]; then + validate_environment + [ $? -eq 1 ] && exit 1 + print_openssl_details + print_engine_capabilities + fi + + if [ "$1" = "-v" ] || [ "$2" = "-v" ]; then + DO_VALGRIND=1 + VALGRIND=$VALGRIND_CMD + echo "// OS_IK edcsa-sign-and-verify valgrind results - $DATESTAMP" > edcsa-sign-and-verify_$DATESTAMP.log + fi + + if [ $run_all == true ] || [ $run_test_number -eq 1 ]; then + test_name="ECDSA sign and verify using a matching pub key (openssl)" + printf "Test %s: " "$test_name" + test_ecdsa_sign_and_verify_positive false + [ $? -eq $PASS ] && echo "PASSED" || echo "FAILED" + fi + if [ $run_all == true ] || [ $run_test_number -eq 2 ]; then + test_name="ECDSA sign and verify using a matching pub key" + printf "Test %s: " "$test_name" + test_ecdsa_sign_and_verify_positive true + [ $? -eq $PASS ] && echo "PASSED" || echo "FAILED" + fi + if [ $run_all == true ] || [ $run_test_number -eq 3 ]; then + test_name="ECDSA sign and verify using an unmatching pub key (openssl)" + printf "Test %s: " "$test_name" + test_ecdsa_sign_and_verify_negative false + [ $? -eq $PASS ] && echo "PASSED" || echo "FAILED" + fi + if [ $run_all == true ] || [ $run_test_number -eq 4 ]; then + test_name="ECDSA sign and verify using an unmatching pub key (eip28)" + printf "Test %s: " "$test_name" + test_ecdsa_sign_and_verify_negative true + [ $? -eq $PASS ] && echo "PASSED" || echo "FAILED" + fi + + if [ $DO_VALGRIND ]; then + rm $TEMPFILE + fi + + exit 0 +} + +main "$@" diff --git a/rambus_sec_lib/bin/EIP28_scripts/rsa-encrypt-decrypt-sign-verify.sh b/rambus_sec_lib/bin/EIP28_scripts/rsa-encrypt-decrypt-sign-verify.sh new file mode 100755 index 0000000..df655cc --- /dev/null +++ b/rambus_sec_lib/bin/EIP28_scripts/rsa-encrypt-decrypt-sign-verify.sh @@ -0,0 +1,415 @@ +#!/bin/bash + +############################################################################## +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +############################################################################## + +############################ constants ############################ +DATESTAMP=$(date +%y%m%d_%H%M) +TEMPFILE=tempfile.txt +VALGRIND_CMD='valgrind --leak-check=full --show-leak-kinds=all --log-file='$TEMPFILE +# configure based engine id +engine_id=eip28pka + +############################ functions ############################ + +if [ -z "${OPENSSL_DIR}" ]; then + echo "Error: OPENSSL_DIR not set." + echo "Please let an environment named OPENSSL_DIR refer to the" + echo "directory where the OpenSSL package was built, such that" + echo "\${OPENSSL_DIR}/apps/openssl refers to the openssl app to use." + exit 1 +fi + +# Run various test with the following instance of OpenSSL. +OSSL=${OPENSSL_DIR}/apps/openssl +if [ ! -x ${OSSL} ]; then + echo "Error: ${OSSL} not found or not executable?!" + exit 1 +fi + +# Pad `file` such that its size equals `target_size`. +padd_file () { + local file=$1 + local target_size=$2 + local padding="++++++++" + local text=$(cat ${file}) + + while (( ${#padding} < ${target_size} )); do + padding="${padding}${padding}" + done + echo "${padding}${text}" | tail --bytes ${target_size} - > ${file} +} + +# Generate an RSA keypair of the specified size and store +# it in the specified .pem file. +ossl_gen_rsa_key () { + local nbits=$1 + local keyfile=$2 + local keyform=${keyfile##*.} + + if [[ "${keyform}" != "pem" ]]; then + echo "ossl_gen_rsa_key: filename must end with .pem" + else + ${OSSL} genpkey -out ${keyfile} -outform ${keyform} \ + -algorithm RSA -pkeyopt rsa_keygen_bits:${nbits} + fi +} + +# Show the RSA keypair stored in the specified .pem or .der file. +ossl_show_rsa_key () { + local keyfile=$1 + local keyform=${keyfile##*.} + + if [[ "${keyform}" != "pem" && "${keyform}" != "der" ]]; then + echo "ossl_show_key: filename must end with .der or .pem" + else + if [[ "${keyform}" == "pem" ]]; then + # Convert .pem to .der + ${OSSL} rsa -out __@der@__ -outform der -in ${keyfile} + ${OSSL} asn1parse -in __@der@__ -inform der + rm -f __@der@__ + else + ${OSSL} asn1parse -in ${keyfile} -inform ${keyform} + fi + fi +} + +# Use the indicated RSA scheme (pkcs1 or pss) to sign the given +# `msgfile`, with the (private) RSA key coming from `keyfile` and +# store the signature in `sigfile`. +# For the moment, the hash algorithm used is always SHA256. +ossl_rsa_sign () { + local msgfile=$1 + local keyfile=$2 + local sigfile=$3 + local padding=$4 # pkcs1 or pss + local keyform=${keyfile##*.} + local opt_saltlen="" + local hashalg="sha256" + + if [[ "${padding}" == "pss" ]]; then + opt_saltlen="-pkeyopt rsa_pss_saltlen:32" + fi + + ${OSSL} dgst -${hashalg} -out __@hash@__ -binary ${msgfile} + ${OSSL} pkeyutl -sign -out ${sigfile} -in __@hash@__ \ + -inkey ${keyfile} -keyform ${keyform} \ + -pkeyopt rsa_padding_mode:${padding} \ + -pkeyopt digest:${hashalg} ${opt_saltlen} + rm -f __@hash@__ +} + +# Use the indicated RSA scheme (pkcs1 or pss) to verify if the +# signature in `sigfile` matches the given `msgfile`, with the +# (public) RSA key coming from `keyfile`. +# For the moment, the hash algorithm used is always SHA256. +ossl_rsa_vrfy() { + local msgfile=$1 + local keyfile=$2 + local sigfile=$3 + local verfile=$4 + local padding=$5 + local keyform=${keyfile##*.} + local opt_saltlen="" + local hashalg="sha256" + + if [[ "${padding}" == "pss" ]]; then + opt_saltlen="-pkeyopt rsa_pss_saltlen:32" + fi + + ${OSSL} dgst -${hashalg} -out __@hash@__ -binary ${msgfile} + ${OSSL} pkeyutl -verify -in __@hash@__ -sigfile ${sigfile} \ + -inkey ${keyfile} -keyform ${keyform} \ + -pkeyopt rsa_padding_mode:${padding} \ + -pkeyopt digest:${hashalg} ${opt_saltlen} \ + -out ${verfile} + rm -f __@hash@__ +} + +# Use the indicated RSA scheme (pkcs1 or pss) to sign the given +# `msgfile`, with the (private) RSA key coming from `keyfile` and +# store the signature in `sigfile`. +# For the moment, the hash algorithm used is always SHA256. +ossl_engine_rsa_sign () { + local msgfile=$1 + local keyfile=$2 + local sigfile=$3 + local padding=$4 # pkcs1 or pss + local keyform=${keyfile##*.} + local opt_saltlen="" + local hashalg="sha256" + + if [[ "${padding}" == "pss" ]]; then + opt_saltlen="-pkeyopt rsa_pss_saltlen:32" + fi + + if [ $DO_VALGRIND ]; then + echo "// ossl_engine_rsa_sign $2 $3 $4" >> rsa-encrypt-decrypt-sign-verify_$DATESTAMP.log + fi + + ${OSSL} dgst -${hashalg} -out __@hash@__ -binary ${msgfile} + $VALGRIND ${OSSL} pkeyutl -engine ${engine_id} -sign -out ${sigfile} -in __@hash@__ \ + -inkey ${keyfile} -keyform ${keyform} \ + -pkeyopt rsa_padding_mode:${padding} \ + -pkeyopt digest:${hashalg} ${opt_saltlen} + + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> rsa-encrypt-decrypt-sign-verify_$DATESTAMP.log + fi + + rm -f __@hash@__ +} + +# Use the indicated RSA scheme (pkcs1 or pss) to verify if the +# signature in `sigfile` matches the given `msgfile`, with the +# (public) RSA key coming from `keyfile`. +# For the moment, the hash algorithm used is always SHA256. +ossl_engine_rsa_vrfy() { + local msgfile=$1 + local keyfile=$2 + local sigfile=$3 + local verfile=$4 + local padding=$5 + local keyform=${keyfile##*.} + local opt_saltlen="" + local hashalg="sha256" + + if [[ "${padding}" == "pss" ]]; then + opt_saltlen="-pkeyopt rsa_pss_saltlen:32" + fi + + if [ $DO_VALGRIND ]; then + echo "// ossl_engine_rsa_vrfy $2 $3 $4 $5" >> rsa-encrypt-decrypt-sign-verify_$DATESTAMP.log + fi + + ${OSSL} dgst -${hashalg} -out __@hash@__ -binary ${msgfile} + $VALGRIND ${OSSL} pkeyutl -engine ${engine_id} -verify -in __@hash@__ -sigfile ${sigfile} \ + -inkey ${keyfile} -keyform ${keyform} \ + -pkeyopt rsa_padding_mode:${padding} \ + -pkeyopt digest:${hashalg} ${opt_saltlen} \ + -out ${verfile} + + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> rsa-encrypt-decrypt-sign-verify_$DATESTAMP.log + fi + + rm -f __@hash@__ +} + +# Use the indicated RSA scheme (none, pkcs1 or oaep) to encrypt the given +# `ptxfile`, with the (public) RSA key coming from `keyfile` and +# store the cryptogram in `ctxfile`. +ossl_rsa_encrypt () { + local ptxfile=$1 + local keyfile=$2 + local ctxfile=$3 + local padding=$4 # none, pkcs1 or oaep + local hashalg="sha1" + local keyform=${keyfile##*.} + local opt_mgf1_md="" + local opt_digest="" + + if [[ "${padding}" == "oaep" ]]; then + : + # opt_mgf1_md="-pkeyopt rsa_mgf1_md:${hashalg}" + # opt_digest="-pkeyopt digest:${hashalg}" + fi + + ${OSSL} pkeyutl -encrypt -out ${ctxfile} -in ${ptxfile} \ + -inkey ${keyfile} -keyform ${keyform} \ + -pkeyopt rsa_padding_mode:${padding} ${opt_mgf1_md} ${opt_digest} +} + +# Use the indicated RSA scheme (none, pkcs1 or oaep) to encrypt the given +# `ptxfile`, with the (public) RSA key coming from `keyfile` and +# store the cryptogram in `ctxfile`. +ossl_engine_rsa_encrypt () { + local ptxfile=$1 + local keyfile=$2 + local ctxfile=$3 + local padding=$4 # none, pkcs1 or oaep + local hashalg="sha1" + local keyform=${keyfile##*.} + local opt_mgf1_md="" + local opt_digest="" + + if [[ "${padding}" == "oaep" ]]; then + : + # opt_mgf1_md="-pkeyopt rsa_mgf1_md:${hashalg}" + # opt_digest="-pkeyopt digest:${hashalg}" + fi + + if [ $DO_VALGRIND ]; then + echo "// ossl_engine_rsa_encrypt $2 $3 $4" >> rsa-encrypt-decrypt-sign-verify_$DATESTAMP.log + fi + + $VALGRIND ${OSSL} pkeyutl -engine ${engine_id} -encrypt -out ${ctxfile} -in ${ptxfile} \ + -inkey ${keyfile} -keyform ${keyform} \ + -pkeyopt rsa_padding_mode:${padding} ${opt_mgf1_md} ${opt_digest} + + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> rsa-encrypt-decrypt-sign-verify_$DATESTAMP.log + fi +} + +# Use the indicated RSA scheme (none, pkcs1 or oaep) to decrypt the given +# `ctxfile`, with the (private) RSA key coming from `keyfile` and +# store the plain text in `msgfile`. +ossl_rsa_decrypt () { + local ctxfile=$1 + local keyfile=$2 + local msgfile=$3 + local padding=$4 # none, pkcs1 or oaep + local hashalg="sha1" + local keyform=${keyfile##*.} + local opt_mgf1_md="" + local opt_digest="" + + if [[ "${padding}" == "oaep" ]]; then + : + # opt_mgf1_md="-pkeyopt rsa_mgf1_md:${hashalg}" + # opt_digest="-pkeyopt digest:${hashalg}" + fi + + ${OSSL} pkeyutl -decrypt -out ${msgfile} -in ${ctxfile} \ + -inkey ${keyfile} -keyform ${keyform} \ + -pkeyopt rsa_padding_mode:${padding} ${opt_mgf1_md} ${opt_digest} +} + +# Use the indicated RSA scheme (none, pkcs1 or oaep) to decrypt the given +# `ctxfile`, with the (private) RSA key coming from `keyfile` and +# store the plain text in `msgfile`. +ossl_engine_rsa_decrypt () { + local ctxfile=$1 + local keyfile=$2 + local msgfile=$3 + local padding=$4 # none, pkcs1 or oaep + local hashalg="sha1" + local keyform=${keyfile##*.} + local opt_mgf1_md="" + local opt_digest="" + + if [[ "${padding}" == "oaep" ]]; then + : + # opt_mgf1_md="-pkeyopt rsa_mgf1_md:${hashalg}" + # opt_digest="-pkeyopt digest:${hashalg}" + fi + + if [ $DO_VALGRIND ]; then + echo "// ossl_engine_rsa_decrypt $2 $3 $4" >> rsa-encrypt-decrypt-sign-verify_$DATESTAMP.log + fi + + $VALGRIND ${OSSL} pkeyutl -engine ${engine_id} -decrypt -out ${msgfile} -in ${ctxfile} \ + -inkey ${keyfile} -keyform ${keyform} \ + -pkeyopt rsa_padding_mode:${padding} ${opt_mgf1_md} ${opt_digest} + + if [ $DO_VALGRIND ]; then + cat $TEMPFILE >> rsa-encrypt-decrypt-sign-verify_$DATESTAMP.log + fi +} + +# Perform an RSA sign-and-verify test with the specified +# RSA key size and padding/scheme (i.e. pkcs1 or pss). +rsa_sign_and_vrfy_test() { + local nbits=$1 + local padding=$2 + local keyfile="rsakey_${nbits}.pem" + local msgfile="message.txt" + local sigfile="signature_${padding}_${nbits}" + local verfile="verify_${padding}_${nbits}" + local res="FAILED" + + # ossl_gen_rsa_key ${nbits} ${keyfile} + # ossl_show_rsa_key ${keyfile} + echo "My message to sign." > ${msgfile} + # test engine sign + ossl_engine_rsa_sign ${msgfile} ${keyfile} ${sigfile} ${padding} + ossl_rsa_vrfy ${msgfile} ${keyfile} ${sigfile} ${verfile} ${padding} + if grep -q 'Successfully' ${verfile}; then + res="PASSED" + else + res="FAILED" + fi + echo "[INFO] ${engine_id} rsa_sign_test (${nbits}, ${padding}):${res}" + # test engine verify + ossl_rsa_sign ${msgfile} ${keyfile} ${sigfile} ${padding} + ossl_engine_rsa_vrfy ${msgfile} ${keyfile} ${sigfile} ${verfile} ${padding} + if grep -q 'Successfully' ${verfile}; then + res="PASSED" + else + res="FAILED" + fi + echo "[INFO] ${engine_id} rsa_verify_test (${nbits}, ${padding}):${res}" +} + +# Perform an RSA encrypt-and-decrypt test with the specified +# RSA key size and padding/scheme (i.e. none, pkcs1 or oaep). +rsa_encrypt_and_decrypt_test() { + local nbits=$1 + local padding=$2 + local keyfile="rsakey_${nbits}.pem" + local ptxfile="plaintxt" + local ctxfile="ciphertxt_${padding}_${nbits}" + local outfile="plain.out" + local res="FAILED" + + echo "My message to encrypt." > ${ptxfile} + if [[ "${padding}" == "none" ]]; then + # Apparently, with padding set to `none`, + # the size of the input must equal the modulus size?! + cp ${ptxfile} ${ptxfile}_${nbits}_none + ptxfile=${ptxfile}_${nbits}_none + padd_file ${ptxfile} $(( ${nbits} / 8 )) + fi + ossl_engine_rsa_encrypt ${ptxfile} ${keyfile} ${ctxfile} ${padding} + ossl_rsa_decrypt ${ctxfile} ${keyfile} ${outfile} ${padding} + /usr/bin/diff --brief ${ptxfile} ${outfile} && res="PASSED" + echo "[INFO] ${engine_id} rsa_encrypt_test (${nbits}, ${padding}): ${res}" + + res="FAILED" + ossl_rsa_encrypt ${ptxfile} ${keyfile} ${ctxfile} ${padding} + ossl_engine_rsa_decrypt ${ctxfile} ${keyfile} ${outfile} ${padding} + /usr/bin/diff --brief ${ptxfile} ${outfile} && res="PASSED" + echo "[INFO] ${engine_id} rsa_decrypt_test (${nbits}, ${padding}): ${res}" +} + +main () { + ${OSSL} version + + + if [ "$1" = "-v" ]; then + DO_VALGRIND=1 + VALGRIND=$VALGRIND_CMD + echo "// OS_IK rsa-encrypt-decrypt-sign-verify valgrind results - $DATESTAMP" > rsa-encrypt-decrypt-sign-verify_$DATESTAMP.log + fi + + echo "**************************" + echo "Generate RSA Keys" + ossl_gen_rsa_key 2048 rsakey_2048.pem + ossl_gen_rsa_key 3072 rsakey_3072.pem + echo "**************************" + echo "Test RSA Sign & Verify" + rsa_sign_and_vrfy_test 2048 pkcs1 + rsa_sign_and_vrfy_test 3072 pss + echo "**************************" + echo "Test RSA Encrypt & Decrypt" + rsa_encrypt_and_decrypt_test 3072 none + rsa_encrypt_and_decrypt_test 2048 pkcs1 + rsa_encrypt_and_decrypt_test 2048 oaep + + if [ $DO_VALGRIND ]; then + rm $TEMPFILE + fi +} + +main "$@" diff --git a/rambus_sec_lib/bin/EIP28_scripts/sm2-encrypt-and-decrypt.sh b/rambus_sec_lib/bin/EIP28_scripts/sm2-encrypt-and-decrypt.sh new file mode 100755 index 0000000..1c4cc8d --- /dev/null +++ b/rambus_sec_lib/bin/EIP28_scripts/sm2-encrypt-and-decrypt.sh @@ -0,0 +1,376 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +############################################################################## +# +# This script tests openssl engine e_eip28pka.so with openssl 1.1.1k +# running on an x86 host and a PCIe virtex HW with the PKA module. +# +# Tests: +# 1. SM2 encrypt (openssl) and decrypt (openssl) / matching private and public key +# 2. SM2 sign (engine) and verify (engine) / matching private and public key +# 3. SM2 sign (engine) and verify (openssl) / matching private and public key +# 4. SM2 sign (openssl) and verify (engine) / matching private and public key +# 5. SM2 sign (openssl) and verify (openssl) / unmatching private and public key +# 6. SM2 sign (engine) and verify (engine) / unmatching private and public key +# +# Setup: +# 1. Configure the openssl: export OPENSSL_DIR="/path/to/openssl-1.1.1k" +# 2. Set engine path: export OPENSSL_ENGINES=/path/to/engines +# 3. Configure the SM2 tool: export SM2TOOL_DIR="/path/to/sm2" +# +# Usage: +# run all tests: bash sm2-encrypt-and-decrypt.sh +# run a test: bash sm2-encrypt-and-decrypt.sh +# +# Date: 12/8/2021 +############################################################################## + +############################ constants ############################ +PASS=0 +FAIL=1 +DEBUG=false +VALIDATE_SETUP=true +ENGINE_ID_28=eip28pka +KERNEL_MODULE=umpci_k +OPENSSL=$OPENSSL_DIR/apps/openssl +SM2ENCRYPT=$SM2TOOL_DIR/sm2encrypt +SM2DECRYPT=$SM2TOOL_DIR/sm2decrypt +DATESTAMP=$(date +%y%m%d_%H%M) +TEMPFILE=tempfile.txt +VALGRIND_CMD='valgrind --leak-check=full --show-leak-kinds=all --log-file='$TEMPFILE + +############################ functions ############################ +print_function() { + echo "${FUNCNAME[1]}" +} + +print_openssl_details() { + [ $DEBUG = true ] && print_function + ${OPENSSL} version +} + +validate_environment() { + [ $DEBUG = true ] && print_function + if [ -z $OPENSSL_DIR ]; then + echo "Error: Environment variable OPENSSL_DIR is undefined" + return $FAIL + fi + if [ ! -f $OPENSSL_DIR/apps/openssl ]; then + echo "Error: openssl client not found" + return $FAIL + fi + if [ -z $OPENSSL_ENGINES ]; then + echo "Error: Environment variable OPENSSL_ENGINES is undefined" + return $FAIL + fi + if [ -z $SM2TOOL_DIR ]; then + echo "Error: Environment variable SM2TOOL_DIR is undefined" + return $FAIL + fi + if [ ! -f $SM2ENCRYPT ]; then + echo "Error: sm2encrypt not found" + return $FAIL + fi + if [ ! -f $SM2DECRYPT ]; then + echo "Error: sm2decrypt not found" + return $FAIL + fi + if [ $(lsmod | grep "$KERNEL_MODULE" -c) -ne 1 ]; then + echo "Error: kernel module $KERNEL_MODULE not found" + return $FAIL + fi + return $PASS +} + +print_engine_capabilities() { + [ $DEBUG = true ] && print_function + ${OPENSSL} engine -c $ENGINE_ID_28 +} + +is_engine_available() { + if [ $(${OPENSSL} engine -t eip28pka | grep -c "\[ available \]") -ne 1 ]; then + echo "Error: engine unavailable" + return $FAIL + fi + return $PASS +} + +print_configuration() { + echo "DEBUG $DEBUG " + echo "VALIDATE_SETUP $VALIDATE_SETUP" + echo "ENGINE_ID_28 $ENGINE_ID_28 " + echo "KERNEL_MODULE $KERNEL_MODULE " + echo "OPENSSL $OPENSSL " + echo "SM2ENCRYPT $SM2ENCRYPT " + echo "SM2DECRYPT $SM2DECRYPT " +} + +create_test_file() { + local filename=$1 + local length=$2 + [ $DEBUG = true ] && print_function + echo $(${OPENSSL} rand -base64 $length) > $filename + [ $DEBUG = true ] && cat $filename +} + +create_SM2_private_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate private SM2 key: + # apps/openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:sm2 -out private.pem + # examine private SM2 key: + # openssl ec -in private.pem -noout -text + print=`${OPENSSL} genpkey \ + $parameter_engine \ + -algorithm EC \ + -pkeyopt ec_paramgen_curve:sm2 \ + -out $private_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $private_key_file + return $ret +} + +derive_public_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local public_key_file=$3 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate public SM2 key: + # openssl ec -pubout -in private.pem -out public.pem + # examine public SM2 key: + # openssl ec -noout -text -inform PEM -in public.pem -pubin + print=`${OPENSSL} ec \ + $parameter_engine \ + -pubout \ + -in $private_key_file \ + -out $public_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $public_key_file + return $ret +} + +sm2_encrypt() { + [ $DEBUG = true ] && print_function + local engine=$1 + local message_file=$2 + local public_key_file=$3 + local output_file=$4 + local ret + local print + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// sm2_encrypt $2 $3 $4" >> sm2-encrypt-and-decrypt_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=--engine=$ENGINE_ID_28 + print=`$valgrind $SM2ENCRYPT \ + $parameter_engine \ + --message $message_file \ + --key $public_key_file \ + --out $output_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "*********************** START *******************************" + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "*********************** END *******************************" + [ $DEBUG = true ] && echo "return: $ret" + + if [ $dovalgrind ]; then + cat $TEMPFILE >> sm2-encrypt-and-decrypt_$DATESTAMP.log + fi + + return $ret +} + +sm2_decrypt() { + [ $DEBUG = true ] && print_function + local engine=$1 + local encrypted_file=$2 + local private_key_file=$3 + local output_file=$4 + local ret + local print + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// sm2_decrypt $2 $3 $4" >> sm2-encrypt-and-decrypt_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=--engine=$ENGINE_ID_28 + print=`$SM2DECRYPT \ + $parameter_engine \ + --encrypted $encrypted_file \ + --key $private_key_file \ + --out $output_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "*********************** START *******************************" + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "*********************** END *******************************" + [ $DEBUG = true ] && echo "return: $ret" + + if [ $dovalgrind ]; then + cat $TEMPFILE >> sm2-encrypt-and-decrypt_$DATESTAMP.log + fi + + return $ret +} + +cleanup() { + [ $DEBUG = true ] && print_function + for f in "$@"; do + [ -f "$f" ] && rm $f + done +} + +test_sm2_encrypt_and_decrypt_positive() { + local use_engine_encrypt=$1 + local use_engine_decrypt=$2 + cleanup test.file private.pem public.pem test.file.enc test.file.dec + create_test_file test.file 50 + create_SM2_private_key false private.pem + [ $? -ne 0 ] && return 1 + derive_public_key false private.pem public.pem + [ $? -ne 0 ] && return 2 + sm2_encrypt $use_engine_encrypt test.file public.pem test.file.enc + [ $? -ne 0 ] && return 3 + sm2_decrypt $use_engine_decrypt test.file.enc private.pem test.file.dec + [ $? -ne 0 ] && return 4 + cmp -s test.file test.file.dec + [ $? -ne 0 ] && return 5 + return $PASS +} + +test_sm2_encrypt_and_decrypt_negative() { + local use_engine_encrypt=$1 + local use_engine_decrypt=$2 + cleanup test.file private.pem private_2.pem public_2.pem test.file.enc test.file.dec + create_test_file test.file 50 + create_SM2_private_key false private.pem + [ $? -ne 0 ] && return 1 + create_SM2_private_key false private_2.pem + [ $? -ne 0 ] && return 2 + derive_public_key false private_2.pem public_2.pem + [ $? -ne 0 ] && return 3 + sm2_encrypt $use_engine_encrypt test.file public_2.pem test.file.enc + [ $? -ne 0 ] && return 4 + sm2_decrypt $use_engine_decrypt test.file.enc private.pem test.file.dec + [ $? -eq 0 ] && return 5 # THIS IS A NEGATIVE TEST + return $PASS +} + +############################ main ############################ + +main () { + echo "Test: SM2 encrypt and decrypt" + # arguments + run_all=false + run_test_number=0 + if [ "$1" -eq "$1" ] 2>/dev/null; then + run_test_number=$1 + echo "Run test number $test_number" + else + run_all=true + echo "Run all tests" + fi + # validation + if [ $VALIDATE_SETUP == true ]; then + echo "validate setup" + validate_environment + [ $? -eq $FAIL ] && exit 1 + is_engine_available + [ $? -eq $FAIL ] && exit 1 + print_configuration + print_openssl_details + print_engine_capabilities + fi + + if [ "$1" = "-v" ] || [ "$2" = "-v" ]; then + DO_VALGRIND=1 + VALGRIND=$VALGRIND_CMD + echo "// OS_IK sm2-encrypt-and-decrypt valgrind results - $DATESTAMP" > sm2-encrypt-and-decrypt_$DATESTAMP.log + fi + + # tests: + if [ $run_all == true ] || [ $run_test_number -eq 1 ]; then + test_name="SM2 encrypt and decrypt using a matching pub key (openssl, openssl)" + printf "Test %s: " "$test_name" + test_sm2_encrypt_and_decrypt_positive false false + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 2 ]; then + test_name="SM2 encrypt and decrypt using a matching pub key (engine, engine)" + printf "Test %s: " "$test_name" + test_sm2_encrypt_and_decrypt_positive true true + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 3 ]; then + test_name="SM2 encrypt and decrypt using a matching pub key (engine, openssl)" + printf "Test %s: " "$test_name" + test_sm2_encrypt_and_decrypt_positive true false + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 4 ]; then + test_name="SM2 encrypt and decrypt using a matching pub key (openssl, engine)" + printf "Test %s: " "$test_name" + test_sm2_encrypt_and_decrypt_positive false true + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 5 ]; then + test_name="SM2 encrypt and decrypt using an unmatching pub key (openssl, openssl)" + printf "Test %s: " "$test_name" + test_sm2_encrypt_and_decrypt_negative false false + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 6 ]; then + test_name="SM2 encrypt and decrypt using an unmatching pub key (engine, engine)" + printf "Test %s: " "$test_name" + test_sm2_encrypt_and_decrypt_negative true true + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + + if [ $DO_VALGRIND ]; then + rm $TEMPFILE + fi + + exit 0 +} + +main "$@" diff --git a/rambus_sec_lib/bin/EIP28_scripts/sm2-sign-and-verify.sh b/rambus_sec_lib/bin/EIP28_scripts/sm2-sign-and-verify.sh new file mode 100755 index 0000000..6990c37 --- /dev/null +++ b/rambus_sec_lib/bin/EIP28_scripts/sm2-sign-and-verify.sh @@ -0,0 +1,368 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +############################################################################## +# +# This script tests openssl engine e_eip28pka.so with openssl 1.1.1k +# running on an x86 host and a PCIe virtex HW with the PKA module. +# +# Tests: +# 1. SM2 sign (openssl) and verify (openssl) / matching private and public key +# 2. SM2 sign (engine) and verify (engine) / matching private and public key +# 3. SM2 sign (engine) and verify (openssl) / matching private and public key +# 4. SM2 sign (openssl) and verify (engine) / matching private and public key +# 5. SM2 sign (openssl) and verify (openssl) / unmatching private and public key +# 6. SM2 sign (engine) and verify (engine) / unmatching private and public key +# +# Setup: +# 1. Configure the openssl: export OPENSSL_DIR="/path/to/openssl-1.1.1k" +# 2. Set engine path: export OPENSSL_ENGINES=/path/to/engines +# 3. Configure the SM2 tool: export SM2TOOL_DIR="/path/to/sm2" +# +# Usage: +# run all tests: bash sm2-sign-and-verify.sh +# run a test: bash sm2-sign-and-verify.sh +# +# Date: 23/7/2021 +############################################################################## + +############################ constants ############################ +PASS=0 +FAIL=1 +DEBUG=false +VALIDATE_SETUP=true +ENGINE_ID_28=eip28pka +KERNEL_MODULE=umpci_k +OPENSSL=$OPENSSL_DIR/apps/openssl +SM2SIGN=$SM2TOOL_DIR/sm2sign +SM2VERIFY=$SM2TOOL_DIR/sm2verify +DATESTAMP=$(date +%y%m%d_%H%M) +TEMPFILE=tempfile.txt +VALGRIND_CMD='valgrind --leak-check=full --show-leak-kinds=all --log-file='$TEMPFILE + +############################ functions ############################ +print_function() { + echo "${FUNCNAME[1]}" +} + +print_openssl_details() { + [ $DEBUG = true ] && print_function + ${OPENSSL} version +} + +validate_environment() { + [ $DEBUG = true ] && print_function + if [ -z $OPENSSL_DIR ]; then + echo "Error: Environment variable OPENSSL_DIR is undefined" + return $FAIL + fi + if [ ! -f $OPENSSL_DIR/apps/openssl ]; then + echo "Error: openssl client not found" + return $FAIL + fi + if [ -z $OPENSSL_ENGINES ]; then + echo "Error: Environment variable OPENSSL_ENGINES is undefined" + return $FAIL + fi + if [ -z $SM2TOOL_DIR ]; then + echo "Error: Environment variable SM2TOOL_DIR is undefined" + return $FAIL + fi + if [ ! -f $SM2SIGN ]; then + echo "Error: sm2sign not found" + return $FAIL + fi + if [ ! -f $SM2VERIFY ]; then + echo "Error: sm2verify not found" + return $FAIL + fi + if [ $(lsmod | grep "$KERNEL_MODULE" -c) -ne 1 ]; then + echo "Error: kernel module $KERNEL_MODULE not found" + return $FAIL + fi + return $PASS +} + +print_engine_capabilities() { + [ $DEBUG = true ] && print_function + ${OPENSSL} engine -c $ENGINE_ID_28 +} + +print_configuration() { + echo "DEBUG $DEBUG " + echo "VALIDATE_SETUP $VALIDATE_SETUP" + echo "ENGINE_ID_28 $ENGINE_ID_28 " + echo "KERNEL_MODULE $KERNEL_MODULE " + echo "OPENSSL $OPENSSL " + echo "SM2SIGN $SM2SIGN " + echo "SM2VERIFY $SM2VERIFY " +} + +create_test_file() { + local filename=$1 + local length=$2 + [ $DEBUG = true ] && print_function + echo $(${OPENSSL} rand -base64 $length) > $filename + [ $DEBUG = true ] && cat $filename +} + +create_SM2_private_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate private SM2 key: + # apps/openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:sm2 -out private.pem + # examine private SM2 key: + # openssl ec -in private.pem -noout -text + print=`$valgrind ${OPENSSL} genpkey \ + $parameter_engine \ + -algorithm EC \ + -pkeyopt ec_paramgen_curve:sm2 \ + -out $private_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $private_key_file + return $ret +} + +derive_public_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local public_key_file=$3 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate public SM2 key: + # openssl ec -pubout -in private.pem -out public.pem + # examine public SM2 key: + # openssl ec -noout -text -inform PEM -in public.pem -pubin + print=`${OPENSSL} ec \ + $parameter_engine \ + -pubout \ + -in $private_key_file \ + -out $public_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $public_key_file + return $ret +} + +hash_the_file_and_sign_the_hash() { + [ $DEBUG = true ] && print_function + local engine=$1 + local message_file=$2 + local private_key_file=$3 + local sm2id=$4 + local signature_file=$5 + local ret + local print + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// hash_the_file_and_sign_the_hash $2 $3 $4 $5" >> sm2-sign-and-verify_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=--engine=$ENGINE_ID_28 + print=`$valgrind $SM2SIGN \ + $parameter_engine \ + --message $message_file \ + --key $private_key_file \ + --id $sm2id \ + --signature $signature_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "*********************** START *******************************" + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "*********************** END *******************************" + [ $DEBUG = true ] && echo "return: $ret" + + if [ $dovalgrind ]; then + cat $TEMPFILE >> sm2-sign-and-verify_$DATESTAMP.log + fi + + return $ret +} + +hash_the_file_and_validate_the_signature() { + [ $DEBUG = true ] && print_function + local engine=$1 + local message_file=$2 + local public_key_file=$3 + local sm2id=$4 + local signature_file=$5 + local ret + local print + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// hash_the_file_and_validate_the_signature $2 $3 $4 $5" >> sm2-sign-and-verify_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=--engine=$ENGINE_ID_28 + print=`$valgrind $SM2VERIFY \ + $parameter_engine \ + --message $message_file \ + --key $public_key_file \ + --id $sm2id \ + --signature $signature_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "*********************** START *******************************" + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "*********************** END *******************************" + [ $DEBUG = true ] && echo "return: $ret" + + if [ $dovalgrind ]; then + cat $TEMPFILE >> sm2-sign-and-verify_$DATESTAMP.log + fi + + return $ret +} + +cleanup() { + [ $DEBUG = true ] && print_function + for f in "$@"; do + [ -f "$f" ] && rm $f + done +} + +test_sm2_sign_and_verify_positive() { + local use_engine_sign=$1 + local use_engine_verify=$2 + cleanup test.file private.pem public.pem signature.bin test.file.hash + create_test_file test.file 50 + create_SM2_private_key false private.pem + [ $? -ne 0 ] && return 1 + hash_the_file_and_sign_the_hash $use_engine_sign test.file private.pem 1234letter signature.bin + [ $? -ne 0 ] && return 2 + derive_public_key false private.pem public.pem + [ $? -ne 0 ] && return 3 + hash_the_file_and_validate_the_signature $use_engine_verify test.file public.pem 1234letter signature.bin + [ $? -ne 0 ] && return 4 + return $PASS +} + +test_sm2_sign_and_verify_negative() { + local use_engine_sign=$1 + local use_engine_verify=$2 + cleanup test.file private.pem private_2.pem public_2.pem signature.bin test.file.hash + create_test_file test.file 50 + create_SM2_private_key false private.pem + [ $? -ne 0 ] && return 1 + hash_the_file_and_sign_the_hash $use_engine_sign test.file private.pem 1234letter signature.bin + [ $? -ne 0 ] && return 2 + create_SM2_private_key false private_2.pem + [ $? -ne 0 ] && return 3 + derive_public_key false private_2.pem public_2.pem + [ $? -ne 0 ] && return 4 + hash_the_file_and_validate_the_signature $use_engine_verify test.file public_2.pem 1234letter signature.bin + [ $? -eq 0 ] && return 5 # THIS IS A NEGATIVE TEST + return $PASS +} + +############################ main ############################ + +main () { + echo "Test: SM2 sign and verify" + # arguments + run_all=false + run_test_number=0 + if [ "$1" -eq "$1" ] 2>/dev/null; then + run_test_number=$1 + echo "Run test number $test_number" + else + run_all=true + echo "Run all tests" + fi + # validation + if [ $VALIDATE_SETUP == true ]; then + echo "validate setup" + validate_environment + [ $? -eq $FAIL ] && exit 1 + print_configuration + print_openssl_details + print_engine_capabilities + fi + + if [ "$1" = "-v" ] || [ "$2" = "-v" ]; then + DO_VALGRIND=1 + VALGRIND=$VALGRIND_CMD + echo "// OS_IK sm2-sign-and-verify valgrind results - $DATESTAMP" > sm2-sign-and-verify_$DATESTAMP.log + fi + + # tests: + if [ $run_all == true ] || [ $run_test_number -eq 1 ]; then + test_name="SM2 sign and verify using a matching pub key (openssl, openssl)" + printf "Test %s: " "$test_name" + test_sm2_sign_and_verify_positive false false + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 2 ]; then + test_name="SM2 sign and verify using a matching pub key (engine, engine)" + printf "Test %s: " "$test_name" + test_sm2_sign_and_verify_positive true true + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 3 ]; then + test_name="SM2 sign and verify using a matching pub key (engine, openssl)" + printf "Test %s: " "$test_name" + test_sm2_sign_and_verify_positive true false + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 4 ]; then + test_name="SM2 sign and verify using a matching pub key (openssl, engine)" + printf "Test %s: " "$test_name" + test_sm2_sign_and_verify_positive false true + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 5 ]; then + test_name="SM2 sign and verify using an unmatching pub key (openssl, openssl)" + printf "Test %s: " "$test_name" + test_sm2_sign_and_verify_negative false false + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + if [ $run_all == true ] || [ $run_test_number -eq 6 ]; then + test_name="SM2 sign and verify using an unmatching pub key (engine, engine)" + printf "Test %s: " "$test_name" + test_sm2_sign_and_verify_negative true true + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + fi + + if [ $DO_VALGRIND ]; then + rm $TEMPFILE + fi + + exit 0 +} + +main "$@" diff --git a/rambus_sec_lib/bin/EIP28_scripts/test-all.sh b/rambus_sec_lib/bin/EIP28_scripts/test-all.sh new file mode 100755 index 0000000..9a10feb --- /dev/null +++ b/rambus_sec_lib/bin/EIP28_scripts/test-all.sh @@ -0,0 +1,37 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +############################################################################## + +# This script runs all the PKA EIP 28 openssl engine tests. +# +# Usage: +# run: bash test-all.sh +# +# Date: 12/8/2021 + +# get script directory (current directory) +TEST_DIR="$(dirname "$(readlink -f "$0")")" + +if [ "$1" = "-v" ]; then +echo "yup" + VALGRIND_PARM=$1 +fi + +# run all test scripts +bash $TEST_DIR/edcsa-sign-and-verify.sh $VALGRIND_PARM +bash $TEST_DIR/sm2-sign-and-verify.sh $VALGRIND_PARM +bash $TEST_DIR/sm2-encrypt-and-decrypt.sh $VALGRIND_PARM +bash $TEST_DIR/dh-key-agreement.sh $VALGRIND_PARM +bash $TEST_DIR/ecdh-key-agreement.sh $VALGRIND_PARM +bash $TEST_DIR/x25519-key-agreement.sh $VALGRIND_PARM +bash $TEST_DIR/rsa-encrypt-decrypt-sign-verify.sh $VALGRIND_PARM diff --git a/rambus_sec_lib/bin/EIP28_scripts/x25519-key-agreement.sh b/rambus_sec_lib/bin/EIP28_scripts/x25519-key-agreement.sh new file mode 100755 index 0000000..8dd8c03 --- /dev/null +++ b/rambus_sec_lib/bin/EIP28_scripts/x25519-key-agreement.sh @@ -0,0 +1,318 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +############################################################################## +# +# This script tests openssl engine e_eip28pka.so with openssl 1.1.1k +# running on an x86 host and a PCIe virtex HW with the PKA module. +# +# Tests: +# 1. key agreement, curve X25519, matching private key public peer key (openssl, openssl) +# 2. key agreement, curve X25519, matching private key public peer key (engine, engine) +# 3. Key agreement, curve X25519, unmatching private key public peer key (openssl, engine) +# +# Setup: +# 1. Configure the openssl: export OPENSSL_DIR="/path/to/openssl-1.1.1k" +# 2. Set engine path: export OPENSSL_ENGINES=/path/to/engines +# +# Usage: +# run all tests: bash x25519-key-agreement.sh +# run a test: bash x25519-key-agreement.sh +# +# Date: 12/8/2021 +############################################################################## + +############################ constants ############################ +PASS=0 +FAIL=1 +DEBUG=false +VALIDATE_SETUP=true +ENGINE_ID_28=eip28pka +KERNEL_MODULE=umpci_k +OPENSSL=$OPENSSL_DIR/apps/openssl +DATESTAMP=$(date +%y%m%d_%H%M) +TEMPFILE=tempfile.txt +VALGRIND_CMD='valgrind --leak-check=full --show-leak-kinds=all --log-file='$TEMPFILE + +############################ functions ############################ +print_function() { + echo "${FUNCNAME[1]}" +} + +print_openssl_details() { + [ $DEBUG = true ] && print_function + ${OPENSSL} version +} + +validate_environment() { + [ $DEBUG = true ] && print_function + if [ -z $OPENSSL_DIR ]; then + echo "Error: Environment variable OPENSSL_DIR is undefined" + return $FAIL + fi + if [ ! -f $OPENSSL_DIR/apps/openssl ]; then + echo "Error: openssl client not found" + return $FAIL + fi + if [ -z $OPENSSL_ENGINES ]; then + echo "Error: Environment variable OPENSSL_ENGINES is undefined" + return $FAIL + fi + if [ $(lsmod | grep "$KERNEL_MODULE" -c) -ne 1 ]; then + echo "Error: kernel module $KERNEL_MODULE not found" + return $FAIL + fi + return $PASS +} + +print_engine_capabilities() { + [ $DEBUG = true ] && print_function + ${OPENSSL} engine -c $ENGINE_ID_28 +} + +is_engine_available() { + if [ $(${OPENSSL} engine -t eip28pka | grep -c "\[ available \]") -ne 1 ]; then + echo "Error: engine unavailable" + return $FAIL + fi + return $PASS +} + +print_configuration() { + echo "DEBUG $DEBUG " + echo "VALIDATE_SETUP $VALIDATE_SETUP" + echo "ENGINE_ID_28 $ENGINE_ID_28 " + echo "KERNEL_MODULE $KERNEL_MODULE " + echo "OPENSSL $OPENSSL " +} + +create_test_file() { + local filename=$1 + local length=$2 + [ $DEBUG = true ] && print_function + echo $(${OPENSSL} rand -base64 $length) > $filename + [ $DEBUG = true ] && cat $filename +} + +create_X25519_private_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate private key: + # openssl genpkey -algorithm X25519 -out private.pem + # examine private key: + # openssl ec -in private.pem -noout -text + print=`${OPENSSL} genpkey \ + $parameter_engine \ + -algorithm X25519 \ + -out $private_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $private_key_file + return $ret +} + +derive_public_key() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local public_key_file=$3 + local parameter_engine + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + local ret + local print + # generate public key: + # openssl ec -pubout -in private.pem -out public.pem + # examine public key: + # openssl pkey -noout -text -inform PEM -in public.pem -pubin + print=`${OPENSSL} pkey \ + $parameter_engine \ + -pubout \ + -in $private_key_file \ + -out $public_key_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "return: $ret" + [ $DEBUG = true ] && cat $public_key_file + return $ret +} + +derive_shared_secret() { + [ $DEBUG = true ] && print_function + local engine=$1 + local private_key_file=$2 + local public_key_peer_file=$3 + local output_secert_file=$4 + local ret + local print + local parameter_engine + + if [ $engine == true ]; then + local valgrind=$VALGRIND + local dovalgrind=$DO_VALGRIND + fi + + if [ $dovalgrind ]; then + echo "// derive_shared_secret $2 $3 $4" >> x25519-key-agreement_$DATESTAMP.log + fi + + [ $engine == true ] && parameter_engine=-engine=$ENGINE_ID_28 + # openssl pkeyutl -derive -inkey alice.pem -peerkey bob.pub -out alicebob.key + print=`$valgrind $OPENSSL pkeyutl \ + -derive \ + $parameter_engine \ + -inkey $private_key_file \ + -peerkey $public_key_peer_file \ + -out $output_secert_file 2>&1` + ret=$? + [ $DEBUG = true ] && echo "*********************** START *******************************" + [ $DEBUG = true ] && echo "$print" + [ $DEBUG = true ] && echo "*********************** END *******************************" + [ $DEBUG = true ] && echo "return: $ret" + + if [ $dovalgrind ]; then + cat $TEMPFILE >> x25519-key-agreement_$DATESTAMP.log + fi + + return $ret +} + +cleanup() { + [ $DEBUG = true ] && print_function + for f in "$@"; do + [ -f "$f" ] && rm $f + done +} + +test_key_exchange_positive () { + local use_engine_1=$1 + local use_engine_2=$2 + cleanup private1.pem public1.pem private2.pem public2.pem secret1.bin secret2.bin + create_X25519_private_key false private1.pem + [ $? -ne 0 ] && return 1 + derive_public_key false private1.pem public1.pem + [ $? -ne 0 ] && return 2 + create_X25519_private_key false private2.pem + [ $? -ne 0 ] && return 3 + derive_public_key false private2.pem public2.pem + [ $? -ne 0 ] && return 4 + derive_shared_secret $use_engine_1 private1.pem public2.pem secret1.bin + [ $? -ne 0 ] && return 5 + derive_shared_secret $use_engine_2 private2.pem public1.pem secret2.bin + [ $? -ne 0 ] && return 6 + cmp -s secret1.bin secret2.bin + [ $? -ne 0 ] && return 7 + return $PASS +} + +test_key_exchange_negative() { + local use_engine_1=$1 + local use_engine_2=$2 + cleanup private1.pem public1.pem private2.pem public2.pem secret1.bin secret2.bin + create_X25519_private_key false private1.pem + [ $? -ne 0 ] && return 1 + derive_public_key false private1.pem public1.pem + [ $? -ne 0 ] && return 2 + create_X25519_private_key false private2.pem + [ $? -ne 0 ] && return 3 + derive_public_key false private2.pem public2.pem + [ $? -ne 0 ] && return 4 + create_X25519_private_key false $curve private3.pem + [ $? -ne 0 ] && return 5 + derive_public_key false private3.pem public3.pem + [ $? -ne 0 ] && return 6 + derive_shared_secret $use_engine_1 private1.pem public2.pem secret1.bin + [ $? -ne 0 ] && return 7 + derive_shared_secret $use_engine_2 private2.pem public3.pem secret2.bin + [ $? -ne 0 ] && return 8 + cmp -s secret1.bin secret2.bin + [ $? -eq 0 ] && return 6 + return $PASS +} + +############################ main ############################ + +main () { + echo "Test: x25519 key agreement" + # arguments + run_all=false + run_test_number=0 + if [ "$1" -eq "$1" ] 2>/dev/null; then + run_test_number=$1 + echo "Run test number $test_number" + else + run_all=true + echo "Run all tests" + fi + # validation + if [ $VALIDATE_SETUP == true ]; then + echo "validate setup" + validate_environment + [ $? -eq $FAIL ] && exit 1 + is_engine_available + [ $? -eq $FAIL ] && exit 1 + print_configuration + print_openssl_details + print_engine_capabilities + fi + + if [ "$1" = "-v" ] || [ "$2" = "-v" ]; then + DO_VALGRIND=1 + VALGRIND=$VALGRIND_CMD + echo "// OS_IK x25519-key-agreement valgrind results - $DATESTAMP" > x25519-key-agreement_$DATESTAMP.log + fi + + # tests: + tests_run=0 + tests_pass=0 + tests_total=3 + if [ $run_all == true ] || [ $run_test_number -eq 1 ]; then + test_name="Key agreement, curve X25519, matching private key public peer key (openssl, openssl)" + printf "Test %s: " "$test_name" + test_key_exchange_positive false false X25519 + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + if [ $run_all == true ] || [ $run_test_number -eq 2 ]; then + test_name="Key agreement, curve X25519, matching private key public peer key (openssl, engine)" + printf "Test %s: " "$test_name" + test_key_exchange_positive false true X25519 + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + if [ $run_all == true ] || [ $run_test_number -eq 3 ]; then + test_name="Key agreement, curve X25519, unmatching private key public peer key (openssl, engine)" + printf "Test %s: " "$test_name" + test_key_exchange_negative false true X25519 + result=$? + [ $result -eq $PASS ] && echo "PASSED" || echo "FAILED ($result)" + if [ $result -eq $PASS ]; then (( tests_pass++ )); fi + (( tests_run++ )) + fi + echo "tests: $tests_total run: $tests_run passed: $tests_pass" + + if [ $DO_VALGRIND ]; then + rm $TEMPFILE + fi + + exit 0 +} + +main "$@" diff --git a/rambus_sec_lib/bin/Makefile b/rambus_sec_lib/bin/Makefile new file mode 100755 index 0000000..1abc63b --- /dev/null +++ b/rambus_sec_lib/bin/Makefile @@ -0,0 +1,51 @@ +############################################################################## +# Copyright (c) 2021 by Rambus, Inc. and/or its subsidiaries +# All rights reserved. Unauthorized use (including, without limitation, +# distribution and copying) is strictly prohibited. All use requires, +# and is subject to, explicit written authorization and nondisclosure +# Rambus, Inc. and/or its subsidiaries +# +# For more information or support, please go to our online support system at +# https://sipsupport.rambus.com. +# In case you do not have an account for this system, please send an e-mail +# to sipsupport@rambus.com. +############################################################################## +# check dependencies +ifndef OPENSSL_DIR +$(error OPENSSL_DIR is not set) +endif + +# default +all: cipher digest + +# cipher executable +cipher: + ${CROSS_COMPILE}gcc -O0 \ + -ggdb \ + ../src/cipher.c \ + -Wl,-rpath=usr/lib64,-rpath=${OPENSSL_DIR} \ + -I${OPENSSL_DIR}/include \ + -L${OPENSSL_DIR} \ + -lcrypto \ + -o cipher + ls -la cipher + +# digest executable +digest: + ${CROSS_COMPILE}gcc -O0 \ + -ggdb \ + ../src/digest.c \ + -Wl,-rpath=usr/lib64,-rpath=${OPENSSL_DIR} \ + -I${OPENSSL_DIR}/include \ + -L${OPENSSL_DIR} \ + -lcrypto \ + -o digest + ls -la digest + +clean: + rm cipher + rm digest + +.PHONY: info +info: + $(info $$OPENSSL_DIR is [${OPENSSL_DIR}]) diff --git a/rambus_sec_lib/bin/c_rehash b/rambus_sec_lib/bin/c_rehash new file mode 100755 index 0000000..2028754 --- /dev/null +++ b/rambus_sec_lib/bin/c_rehash @@ -0,0 +1,232 @@ +#!/usr/bin/env perl + +# WARNING: do not edit! +# Generated by Makefile from tools/c_rehash.in +# Copyright 1999-2021 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 + +# Perl c_rehash script, scan all files in a directory +# and add symbolic links to their hash values. + +my $dir = ""; +my $prefix = "/home/lw312886/project/rambus_ddk/light_sec_driver/openssl-1.1.1k/openssl_instasll"; + +my $errorcount = 0; +my $openssl = $ENV{OPENSSL} || "openssl"; +my $pwd; +my $x509hash = "-subject_hash"; +my $crlhash = "-hash"; +my $verbose = 0; +my $symlink_exists=eval {symlink("",""); 1}; +my $removelinks = 1; + +## Parse flags. +while ( $ARGV[0] =~ /^-/ ) { + my $flag = shift @ARGV; + last if ( $flag eq '--'); + if ( $flag eq '-old') { + $x509hash = "-subject_hash_old"; + $crlhash = "-hash_old"; + } elsif ( $flag eq '-h' || $flag eq '-help' ) { + help(); + } elsif ( $flag eq '-n' ) { + $removelinks = 0; + } elsif ( $flag eq '-v' ) { + $verbose++; + } + else { + print STDERR "Usage error; try -h.\n"; + exit 1; + } +} + +sub help { + print "Usage: c_rehash [-old] [-h] [-help] [-v] [dirs...]\n"; + print " -old use old-style digest\n"; + print " -h or -help print this help text\n"; + print " -v print files removed and linked\n"; + exit 0; +} + +eval "require Cwd"; +if (defined(&Cwd::getcwd)) { + $pwd=Cwd::getcwd(); +} else { + $pwd=`pwd`; + chomp($pwd); +} + +# DOS/Win32 or Unix delimiter? Prefix our installdir, then search. +my $path_delim = ($pwd =~ /^[a-z]\:/i) ? ';' : ':'; +$ENV{PATH} = "$prefix/bin" . ($ENV{PATH} ? $path_delim . $ENV{PATH} : ""); + +if (! -x $openssl) { + my $found = 0; + foreach (split /$path_delim/, $ENV{PATH}) { + if (-x "$_/$openssl") { + $found = 1; + $openssl = "$_/$openssl"; + last; + } + } + if ($found == 0) { + print STDERR "c_rehash: rehashing skipped ('openssl' program not available)\n"; + exit 0; + } +} + +if (@ARGV) { + @dirlist = @ARGV; +} elsif ($ENV{SSL_CERT_DIR}) { + @dirlist = split /$path_delim/, $ENV{SSL_CERT_DIR}; +} else { + $dirlist[0] = "$dir/certs"; +} + +if (-d $dirlist[0]) { + chdir $dirlist[0]; + $openssl="$pwd/$openssl" if (!-x $openssl); + chdir $pwd; +} + +foreach (@dirlist) { + if (-d $_ ) { + if ( -w $_) { + hash_dir($_); + } else { + print "Skipping $_, can't write\n"; + $errorcount++; + } + } +} +exit($errorcount); + +sub hash_dir { + my %hashlist; + print "Doing $_[0]\n"; + chdir $_[0]; + opendir(DIR, "."); + my @flist = sort readdir(DIR); + closedir DIR; + if ( $removelinks ) { + # Delete any existing symbolic links + foreach (grep {/^[\da-f]+\.r{0,1}\d+$/} @flist) { + if (-l $_) { + print "unlink $_" if $verbose; + unlink $_ || warn "Can't unlink $_, $!\n"; + } + } + } + FILE: foreach $fname (grep {/\.(pem)|(crt)|(cer)|(crl)$/} @flist) { + # Check to see if certificates and/or CRLs present. + my ($cert, $crl) = check_file($fname); + if (!$cert && !$crl) { + print STDERR "WARNING: $fname does not contain a certificate or CRL: skipping\n"; + next; + } + link_hash_cert($fname) if ($cert); + link_hash_crl($fname) if ($crl); + } +} + +sub check_file { + my ($is_cert, $is_crl) = (0,0); + my $fname = $_[0]; + open IN, $fname; + while() { + if (/^-----BEGIN (.*)-----/) { + my $hdr = $1; + if ($hdr =~ /^(X509 |TRUSTED |)CERTIFICATE$/) { + $is_cert = 1; + last if ($is_crl); + } elsif ($hdr eq "X509 CRL") { + $is_crl = 1; + last if ($is_cert); + } + } + } + close IN; + return ($is_cert, $is_crl); +} + + +# Link a certificate to its subject name hash value, each hash is of +# the form . where n is an integer. If the hash value already exists +# then we need to up the value of n, unless its a duplicate in which +# case we skip the link. We check for duplicates by comparing the +# certificate fingerprints + +sub link_hash_cert { + my $fname = $_[0]; + $fname =~ s/\"/\\\"/g; + my ($hash, $fprint) = `"$openssl" x509 $x509hash -fingerprint -noout -in "$fname"`; + chomp $hash; + chomp $fprint; + $fprint =~ s/^.*=//; + $fprint =~ tr/://d; + my $suffix = 0; + # Search for an unused hash filename + while(exists $hashlist{"$hash.$suffix"}) { + # Hash matches: if fingerprint matches its a duplicate cert + if ($hashlist{"$hash.$suffix"} eq $fprint) { + print STDERR "WARNING: Skipping duplicate certificate $fname\n"; + return; + } + $suffix++; + } + $hash .= ".$suffix"; + if ($symlink_exists) { + print "link $fname -> $hash\n" if $verbose; + symlink $fname, $hash || warn "Can't symlink, $!"; + } else { + print "copy $fname -> $hash\n" if $verbose; + if (open($in, "<", $fname)) { + if (open($out,">", $hash)) { + print $out $_ while (<$in>); + close $out; + } else { + warn "can't open $hash for write, $!"; + } + close $in; + } else { + warn "can't open $fname for read, $!"; + } + } + $hashlist{$hash} = $fprint; +} + +# Same as above except for a CRL. CRL links are of the form .r + +sub link_hash_crl { + my $fname = $_[0]; + $fname =~ s/'/'\\''/g; + my ($hash, $fprint) = `"$openssl" crl $crlhash -fingerprint -noout -in '$fname'`; + chomp $hash; + chomp $fprint; + $fprint =~ s/^.*=//; + $fprint =~ tr/://d; + my $suffix = 0; + # Search for an unused hash filename + while(exists $hashlist{"$hash.r$suffix"}) { + # Hash matches: if fingerprint matches its a duplicate cert + if ($hashlist{"$hash.r$suffix"} eq $fprint) { + print STDERR "WARNING: Skipping duplicate CRL $fname\n"; + return; + } + $suffix++; + } + $hash .= ".r$suffix"; + if ($symlink_exists) { + print "link $fname -> $hash\n" if $verbose; + symlink $fname, $hash || warn "Can't symlink, $!"; + } else { + print "cp $fname -> $hash\n" if $verbose; + system ("cp", $fname, $hash); + warn "Can't copy, $!" if ($? >> 8) != 0; + } + $hashlist{$hash} = $fprint; +} diff --git a/rambus_sec_lib/bin/cipher b/rambus_sec_lib/bin/cipher new file mode 100755 index 0000000000000000000000000000000000000000..4c0b5a278582a410bc16178eca30ebc34c8cfb6d GIT binary patch literal 39808 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 h3|=!y0~Jo3K_`iSS|D7crhzw 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 literal 0 HcmV?d00001 diff --git a/rambus_sec_lib/bin/openssl b/rambus_sec_lib/bin/openssl new file mode 100755 index 0000000000000000000000000000000000000000..7fc26f72237e687a7bace230ed99d0b01a7ecfe5 GIT binary patch literal 665304 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 z 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