/* * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */#include"e_os.h"#include<string.h>#include<sys/stat.h>#include<ctype.h>#include<assert.h>#include<openssl/bio.h>#include<openssl/dsa.h> /* For d2i_DSAPrivateKey */#include<openssl/err.h>#include<openssl/evp.h>#include<openssl/pem.h>#include<openssl/pkcs12.h> /* For the PKCS8 stuff o.O */#include<openssl/rsa.h> /* For d2i_RSAPrivateKey */#include<openssl/safestack.h>#include<openssl/store.h>#include<openssl/ui.h>#include<openssl/x509.h> /* For the PKCS8 stuff o.O */#include"crypto/asn1.h"#include"crypto/ctype.h"#include"internal/o_dir.h"#include"internal/cryptlib.h"#include"crypto/store.h"#include"crypto/evp.h"#include"store_local.h"DEFINE_STACK_OF(X509)#ifdef _WIN32# define stat _stat#endif#ifndef S_ISDIR# define S_ISDIR(a) (((a) & S_IFMT) == S_IFDIR)#endif/*- * Password prompting