MirBSD manpage: BIO_f_cipher(3), BIO_get_cipher_ctx(3), BIO_get_cipher_status(3), BIO_set_cipher(3)

BIO_F_CIPHER(3)              OpenSSL              BIO_F_CIPHER(3)


     BIO_f_cipher, BIO_set_cipher, BIO_get_cipher_status,
     BIO_get_cipher_ctx - cipher BIO filter


      #include <openssl/bio.h>
      #include <openssl/evp.h>

      BIO_METHOD *   BIO_f_cipher(void);
      void BIO_set_cipher(BIO *b,const EVP_CIPHER *cipher,
                     unsigned char *key, unsigned char *iv, int enc);
      int BIO_get_cipher_status(BIO *b)
      int BIO_get_cipher_ctx(BIO *b, EVP_CIPHER_CTX **pctx)


     BIO_f_cipher() returns the cipher BIO method. This is a
     filter BIO that encrypts any data written through it, and
     decrypts any data read from it. It is a BIO wrapper for the
     cipher routines EVP_CipherInit(), EVP_CipherUpdate() and

     Cipher BIOs do not support BIO_gets() or BIO_puts().

     BIO_flush() on an encryption BIO that is being written
     through is used to signal that no more data is to be
     encrypted: this is used to flush and possibly pad the final
     block through the BIO.

     BIO_set_cipher() sets the cipher of BIO b to cipher using
     key key and IV iv. enc should be set to 1 for encryption and
     zero for decryption.

     When reading from an encryption BIO the final block is
     automatically decrypted and checked when EOF is detected.
     BIO_get_cipher_status() is a BIO_ctrl() macro which can be
     called to determine whether the decryption operation was

     BIO_get_cipher_ctx() is a BIO_ctrl() macro which retrieves
     the internal BIO cipher context. The retrieved context can
     be used in conjunction with the standard cipher routines to
     set it up. This is useful when BIO_set_cipher() is not flex-
     ible enough for the applications needs.


     When encrypting BIO_flush() must be called to flush the
     final block through the BIO. If it is not then the final
     block will fail a subsequent decrypt.

     When decrypting an error on the final block is signalled by
     a zero return value from the read operation. A successful
     decrypt followed by EOF will also return zero for the final

MirBSD #10-current         2005-02-05                           1

BIO_F_CIPHER(3)              OpenSSL              BIO_F_CIPHER(3)

     read. BIO_get_cipher_status() should be called to determine
     if the decrypt was successful.

     As always, if BIO_gets() or BIO_puts() support is needed
     then it can be achieved by preceding the cipher BIO with a
     buffering BIO.


     BIO_f_cipher() returns the cipher BIO method.

     BIO_set_cipher() does not return a value.

     BIO_get_cipher_status() returns 1 for a successful decrypt
     and 0 for failure.

     BIO_get_cipher_ctx() currently always returns 1.





MirBSD #10-current         2005-02-05                           2

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung