Add UI functionality to duplicate the user data
[openssl.git] / crypto / ui / ui_locl.h
index 94a9e359f0051a22caff45eacc87a75f69f8db8e..1b0d596ccd9178157fc19c8681bae63902a5890b 100644 (file)
@@ -37,6 +37,12 @@ struct ui_method_st {
     int (*ui_flush) (UI *ui);
     int (*ui_read_string) (UI *ui, UI_STRING *uis);
     int (*ui_close_session) (UI *ui);
+    /*
+     * Duplicate the ui_data that often comes alongside a ui_method.  This
+     * allows some backends to save away UI information for later use.
+     */
+    void *(*ui_duplicate_data) (UI *ui, void *ui_data);
+    void (*ui_destroy_data) (UI *ui, void *ui_data);
     /*
      * Construct a prompt in a user-defined manner.  object_desc is a textual
      * short description of the object, for example "pass phrase", and
@@ -92,6 +98,7 @@ struct ui_st {
     void *user_data;
     CRYPTO_EX_DATA ex_data;
 # define UI_FLAG_REDOABLE        0x0001
+# define UI_FLAG_DUPL_DATA       0x0002 /* user_data was duplicated */
 # define UI_FLAG_PRINT_ERRORS    0x0100
     int flags;