Add quality bar to the GTK-2 version.
[pinentry.git] / pinentry / pinentry.h
index 9f63255..81e8872 100644 (file)
@@ -28,6 +28,13 @@ extern "C" {
 #endif
 #endif
 
+typedef enum {
+  PINENTRY_COLOR_NONE, PINENTRY_COLOR_DEFAULT,
+  PINENTRY_COLOR_BLACK, PINENTRY_COLOR_RED,
+  PINENTRY_COLOR_GREEN, PINENTRY_COLOR_YELLOW,
+  PINENTRY_COLOR_BLUE, PINENTRY_COLOR_MAGENTA,
+  PINENTRY_COLOR_CYAN, PINENTRY_COLOR_WHITE
+} pinentry_color_t;
 
 struct pinentry
 {
@@ -67,6 +74,10 @@ struct pinentry
      should be displayed.  */
   int parent_wid;
 
+  /* The name of an optional file which will be touched after a curses
+     entry has been displayed.  */
+  char *touch_file;
+
   /* The user should set this to -1 if the user canceled the request,
      and to the length of the PIN stored in pin otherwise.  */
   int result;
@@ -80,6 +91,21 @@ struct pinentry
      dismiss button is required. */
   int one_button;
 
+  /* If this is set, a passphrase quality indicator is shown.  There
+     will also be an inquiry back to the caller to get an indication
+     of the quality for the passphrase entered so far.  */
+  int quality_bar;
+
+  /* For the curses pinentry, the color of error messages.  */
+  pinentry_color_t color_fg;
+  int color_fg_bright;
+  pinentry_color_t color_bg;
+  pinentry_color_t color_so;
+  int color_so_bright;
+
+  /* Fo the quality indicator we need to do an inquiry.  Thus we need
+     to save the assuan ctx.  */
+  void *ctx_assuan;
 };
 typedef struct pinentry *pinentry_t;
 
@@ -107,6 +133,11 @@ char *pinentry_utf8_to_local (char *lc_ctype, char *text);
    Return NULL on error. */
 char *pinentry_local_to_utf8 (char *lc_ctype, char *text, int secure);
 
+
+/* Run a quality inquiry for PASSPHRASE of LENGTH. */
+int pinentry_inq_quality (pinentry_t pin, 
+                          const char *passphrase, size_t length);
+
 /* Try to make room for at least LEN bytes for the pin in the pinentry
    PIN.  Returns new buffer on success and 0 on failure.  */
 char *pinentry_setbufferlen (pinentry_t pin, int len);