---
name: "ui_compat"
section: "3ssl"
platform: "linux"
package: "libssl-doc"
version: "1.0.1t-1+deb8u8"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/ui_compat"
---

# ui\_compat(3ssl)

Compatibility user interface functions

## NAME

des\_read\_password, des\_read\_2passwords, des\_read\_pw\_string, des\_read\_pw - Compatibility user interface functions

## SYNOPSIS

```
 #include <openssl/des_old.h>
 int des_read_password(DES_cblock *key,const char *prompt,int verify);
 int des_read_2passwords(DES_cblock *key1,DES_cblock *key2,
        const char *prompt,int verify);
 int des_read_pw_string(char *buf,int length,const char *prompt,int verify);
 int des_read_pw(char *buf,char *buff,int size,const char *prompt,int verify);
```

## DESCRIPTION

The DES library contained a few routines to prompt for passwords.  These aren't necessarely dependent on DES, and have therefore become part of the UI compatibility library.

*des\_read\_pw()* writes the string specified by *prompt* to standard output turns echo off and reads an input string from the terminal.  The string is returned in *buf*, which must have spac for at least *size* bytes. If *verify* is set, the user is asked for the password twice and unless the two copies match, an error is returned.  The second password is stored in *buff*, which must therefore also be at least *size* bytes.  A return code of -1 indicates a system error, 1 failure due to use interaction, and 0 is success.  All other functions described here use *des\_read\_pw()* to do the work.

*des\_read\_pw\_string()* is a variant of *des\_read\_pw()* that provides a buffer for you if *verify* is set.

*des\_read\_password()* calls *des\_read\_pw()* and converts the password to a DES key by calling *DES\_string\_to\_key()*; *des\_read\_2password()* operates in the same way as *des\_read\_password()* except that it generates two keys by using the *DES\_string\_to\_2key()* function.

## NOTES

*des\_read\_pw\_string()* is available in the MIT Kerberos library as well, and is also available under the name *EVP\_read\_pw\_string()*.

## SEE ALSO

*ui*(3), *ui\_create*(3)

## AUTHOR

Richard Levitte (richard@levitte.org) for the OpenSSL project (http://www.openssl.org).
