static VALUE ossl_cipher_copy ( VALUE self , VALUE other ) {
 EVP_CIPHER_CTX * ctx1 , * ctx2 ;
 rb_check_frozen ( self ) ;
 if ( self == other ) return self ;
 GetCipherInit ( self , ctx1 ) ;
 if ( ! ctx1 ) {
 AllocCipher ( self , ctx1 ) ;
 }
 SafeGetCipher ( other , ctx2 ) ;
 if ( EVP_CIPHER_CTX_copy ( ctx1 , ctx2 ) != 1 ) ossl_raise ( eCipherError , NULL ) ;
 return self ;
 }
static VALUE ossl_cipher_copy ( VALUE self , VALUE other ) {
 EVP_CIPHER_CTX * ctx1 , * ctx2 ;
 rb_check_frozen ( self ) ;
 if ( self == other ) return self ;
 GetCipherInit ( self , ctx1 ) ;
 if ( ! ctx1 ) {
 AllocCipher ( self , ctx1 ) ;
 }
 SafeGetCipher ( other , ctx2 ) ;
 if ( EVP_CIPHER_CTX_copy ( ctx1 , ctx2 ) != 1 ) ossl_raise ( eCipherError , NULL ) ;
 return self ;
 }