Software: Apache. PHP/5.6.40 uname -a: Linux cpanel06wh.bkk1.cloud.z.com 2.6.32-954.3.5.lve1.4.80.el6.x86_64 #1 SMP Thu Sep 24 uid=851(cp949260) gid=853(cp949260) groups=853(cp949260) Safe-mode: OFF (not secure) /opt/cpanel/ea-openssl11/share/doc/openssl/html/man3/ drwxr-xr-x |
Viewing file: Select action/file-type:
NAMEBIO_f_md, BIO_set_md, BIO_get_md, BIO_get_md_ctx - message digest BIO filter
SYNOPSIS#include <openssl/bio.h> #include <openssl/evp.h> const BIO_METHOD *BIO_f_md(void); int BIO_set_md(BIO *b, EVP_MD *md); int BIO_get_md(BIO *b, EVP_MD **mdp); int BIO_get_md_ctx(BIO *b, EVP_MD_CTX **mdcp);
DESCRIPTION
Any data written or read through a digest BIO using
NOTESThe context returned by The context returned by After the digest has been retrieved from a digest BIO it must be
reinitialized by calling If an application needs to call Calling
RETURN VALUES
EXAMPLESThe following example creates a BIO chain containing an SHA1 and MD5 digest BIO and passes the string "Hello World" through it. Error checking has been omitted for clarity. BIO *bio, *mdtmp; char message[] = "Hello World"; bio = BIO_new(BIO_s_null()); mdtmp = BIO_new(BIO_f_md()); BIO_set_md(mdtmp, EVP_sha1()); /* * For BIO_push() we want to append the sink BIO and keep a note of * the start of the chain. */ bio = BIO_push(mdtmp, bio); mdtmp = BIO_new(BIO_f_md()); BIO_set_md(mdtmp, EVP_md5()); bio = BIO_push(mdtmp, bio); /* Note: mdtmp can now be discarded */ BIO_write(bio, message, strlen(message)); The next example digests data by reading through a chain instead: BIO *bio, *mdtmp; char buf[1024]; int rdlen; bio = BIO_new_file(file, "rb"); mdtmp = BIO_new(BIO_f_md()); BIO_set_md(mdtmp, EVP_sha1()); bio = BIO_push(mdtmp, bio); mdtmp = BIO_new(BIO_f_md()); BIO_set_md(mdtmp, EVP_md5()); bio = BIO_push(mdtmp, bio); do { rdlen = BIO_read(bio, buf, sizeof(buf)); /* Might want to do something with the data here */ } while (rdlen > 0); This next example retrieves the message digests from a BIO chain and outputs them. This could be used with the examples above. BIO *mdtmp; unsigned char mdbuf[EVP_MAX_MD_SIZE]; int mdlen; int i; mdtmp = bio; /* Assume bio has previously been set up */ do { EVP_MD *md; mdtmp = BIO_find_type(mdtmp, BIO_TYPE_MD); if (!mdtmp) break; BIO_get_md(mdtmp, &md); printf("%s digest", OBJ_nid2sn(EVP_MD_type(md))); mdlen = BIO_gets(mdtmp, mdbuf, EVP_MAX_MD_SIZE); for (i = 0; i < mdlen; i++) printf(":%02X", mdbuf[i]); printf("\n"); mdtmp = BIO_next(mdtmp); } while (mdtmp); BIO_free_all(bio);
BUGSThe lack of support for
HISTORYBefore OpenSSL 1.0.0., the call to
COPYRIGHTCopyright 2000-2016 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. |
:: Command execute :: | |
--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.122 ]-- |