*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> BIO_set_cipher (3)              



NAME    [Toc]    [Back]

       BIO_f_cipher,    BIO_set_cipher,    BIO_get_cipher_status,
       BIO_get_cipher_ctx - Cipher BIO filter

SYNOPSIS    [Toc]    [Back]

       #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 );

DESCRIPTION    [Toc]    [Back]

       The BIO_f_cipher() function 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 EVP_CipherInit(), EVP_CipherUpdate(),
       and EVP_CipherFinal() cipher functions .

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

       The BIO_flush() function 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.

       The  BIO_set_cipher() function sets the cipher of BIO b to
       cipher using key and iv. The 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.
       The BIO_get_cipher_status() function is a BIO_ctrl() macro
       which can be called to determine  whether  the  decryption
       operation was successful.

       The  BIO_get_cipher_ctx()  function  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 flexible enough for the applications

NOTES    [Toc]    [Back]

       When encrypting, BIO_flush() must be called to  flush  the
       final  block  through  the BIO. Otherwise, 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 read. The BIO_get_cipher_status() function should be
       called to determine if the decrypt was successful.

       If BIO_gets() or BIO_puts() support is needed then it  can
       be  achieved  by preceding the cipher BIO with a buffering

RETURN VALUES    [Toc]    [Back]

       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() always returns 1.

SEE ALSO    [Toc]    [Back]


[ Back ]
 Similar pages
Name OS Title
ipfstat FreeBSD reports on packet filter statistics and filter list
EVP_CIPHER_CTX_get_app_data Tru64 EVP cipher routines
EVP_CIPHER_CTX_flags Tru64 EVP cipher routines
EVP_CIPHER_CTX_ctrl Tru64 EVP cipher routines
EVP_CIPHER_CTX_iv_length Tru64 EVP cipher routines
EVP_CIPHER_CTX_cleanup Tru64 EVP cipher routines
EVP_CIPHER_CTX_cipher Tru64 EVP cipher routines
EVP_CIPHER_CTX_block_size Tru64 EVP cipher routines
EVP_CIPHER_nid Tru64 EVP cipher routines
EVP_CIPHER_CTX_key_length Tru64 EVP cipher routines
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service