1e1051a39Sopenharmony_ci/*
2e1051a39Sopenharmony_ci * Copyright 2018-2020 The OpenSSL Project Authors. All Rights Reserved.
3e1051a39Sopenharmony_ci *
4e1051a39Sopenharmony_ci * Licensed under the Apache License 2.0 (the "License").  You may not use
5e1051a39Sopenharmony_ci * this file except in compliance with the License.  You can obtain a copy
6e1051a39Sopenharmony_ci * in the file LICENSE in the source distribution or at
7e1051a39Sopenharmony_ci * https://www.openssl.org/source/license.html
8e1051a39Sopenharmony_ci */
9e1051a39Sopenharmony_ci
10e1051a39Sopenharmony_ci#ifndef OSSL_APPS_UI_H
11e1051a39Sopenharmony_ci# define OSSL_APPS_UI_H
12e1051a39Sopenharmony_ci
13e1051a39Sopenharmony_ci
14e1051a39Sopenharmony_ci# define PW_MIN_LENGTH 4
15e1051a39Sopenharmony_citypedef struct pw_cb_data {
16e1051a39Sopenharmony_ci    const void *password;
17e1051a39Sopenharmony_ci    const char *prompt_info;
18e1051a39Sopenharmony_ci} PW_CB_DATA;
19e1051a39Sopenharmony_ci
20e1051a39Sopenharmony_ciint password_callback(char *buf, int bufsiz, int verify, PW_CB_DATA *cb_data);
21e1051a39Sopenharmony_ci
22e1051a39Sopenharmony_ciint setup_ui_method(void);
23e1051a39Sopenharmony_civoid destroy_ui_method(void);
24e1051a39Sopenharmony_ciint set_base_ui_method(const UI_METHOD *ui_method);
25e1051a39Sopenharmony_ciconst UI_METHOD *get_ui_method(void);
26e1051a39Sopenharmony_ci
27e1051a39Sopenharmony_ciextern BIO *bio_err;
28e1051a39Sopenharmony_ci
29e1051a39Sopenharmony_ci#endif
30