engines/e_capi.c: formatting and styling fixes.

Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
Andy Polyakov 2017-03-24 16:00:31 +01:00
parent 1b6f5a4d3b
commit e08b444ac0

View File

@ -69,23 +69,23 @@
# endif # endif
# ifndef ALG_SID_SHA_256 # ifndef ALG_SID_SHA_256
# define ALG_SID_SHA_256 12 # define ALG_SID_SHA_256 12
# endif # endif
# ifndef ALG_SID_SHA_384 # ifndef ALG_SID_SHA_384
# define ALG_SID_SHA_384 13 # define ALG_SID_SHA_384 13
# endif # endif
# ifndef ALG_SID_SHA_512 # ifndef ALG_SID_SHA_512
# define ALG_SID_SHA_512 14 # define ALG_SID_SHA_512 14
# endif # endif
# ifndef CALG_SHA_256 # ifndef CALG_SHA_256
# define CALG_SHA_256 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256) # define CALG_SHA_256 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256)
# endif # endif
# ifndef CALG_SHA_384 # ifndef CALG_SHA_384
# define CALG_SHA_384 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384) # define CALG_SHA_384 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384)
# endif # endif
# ifndef CALG_SHA_512 # ifndef CALG_SHA_512
# define CALG_SHA_512 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512) # define CALG_SHA_512 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512)
# endif # endif
# ifndef PROV_RSA_AES # ifndef PROV_RSA_AES
@ -150,9 +150,9 @@ static int cert_select_dialog(ENGINE *e, SSL *ssl, STACK_OF(X509) *certs);
void engine_load_capi_int(void); void engine_load_capi_int(void);
typedef PCCERT_CONTEXT(WINAPI *CERTDLG) (HCERTSTORE, HWND, LPCWSTR, typedef PCCERT_CONTEXT(WINAPI *CERTDLG)(HCERTSTORE, HWND, LPCWSTR,
LPCWSTR, DWORD, DWORD, void *); LPCWSTR, DWORD, DWORD, void *);
typedef HWND(WINAPI *GETCONSWIN) (void); typedef HWND(WINAPI *GETCONSWIN)(void);
/* /*
* This structure contains CAPI ENGINE specific data: it contains various * This structure contains CAPI ENGINE specific data: it contains various
@ -175,26 +175,17 @@ struct CAPI_CTX_st {
/* System store flags */ /* System store flags */
DWORD store_flags; DWORD store_flags;
/* Lookup string meanings in load_private_key */ /* Lookup string meanings in load_private_key */
/* Substring of subject: uses "storename" */ # define CAPI_LU_SUBSTR 1 /* Substring of subject: uses "storename" */
# define CAPI_LU_SUBSTR 1 # define CAPI_LU_FNAME 2 /* Friendly name: uses storename */
/* Friendly name: uses storename */ # define CAPI_LU_CONTNAME 3 /* Container name: uses cspname, keytype */
# define CAPI_LU_FNAME 2
/* Container name: uses cspname, keytype */
# define CAPI_LU_CONTNAME 3
int lookup_method; int lookup_method;
/* Info to dump with dumpcerts option */ /* Info to dump with dumpcerts option */
/* Issuer and serial name strings */ # define CAPI_DMP_SUMMARY 0x1 /* Issuer and serial name strings */
# define CAPI_DMP_SUMMARY 0x1 # define CAPI_DMP_FNAME 0x2 /* Friendly name */
/* Friendly name */ # define CAPI_DMP_FULL 0x4 /* Full X509_print dump */
# define CAPI_DMP_FNAME 0x2 # define CAPI_DMP_PEM 0x8 /* Dump PEM format certificate */
/* Full X509_print dump */ # define CAPI_DMP_PSKEY 0x10 /* Dump pseudo key (if possible) */
# define CAPI_DMP_FULL 0x4 # define CAPI_DMP_PKEYINFO 0x20 /* Dump key info (if possible) */
/* Dump PEM format certificate */
# define CAPI_DMP_PEM 0x8
/* Dump pseudo key (if possible) */
# define CAPI_DMP_PSKEY 0x10
/* Dump key info (if possible) */
# define CAPI_DMP_PKEYINFO 0x20
DWORD dump_flags; DWORD dump_flags;
int (*client_cert_select) (ENGINE *e, SSL *ssl, STACK_OF(X509) *certs); int (*client_cert_select) (ENGINE *e, SSL *ssl, STACK_OF(X509) *certs);
CERTDLG certselectdlg; CERTDLG certselectdlg;
@ -961,9 +952,9 @@ int capi_rsa_priv_dec(int flen, const unsigned char *from,
capi_addlasterror(); capi_addlasterror();
OPENSSL_free(tmpbuf); OPENSSL_free(tmpbuf);
return -1; return -1;
} else } else {
memcpy(to, tmpbuf, (flen = (int)dlen)); memcpy(to, tmpbuf, (flen = (int)dlen));
}
OPENSSL_free(tmpbuf); OPENSSL_free(tmpbuf);
return flen; return flen;
@ -1154,8 +1145,9 @@ static int capi_get_provname(CAPI_CTX * ctx, LPSTR * pname, DWORD * ptype,
OPENSSL_free(name); OPENSSL_free(name);
if (*pname == NULL) if (*pname == NULL)
return 0; return 0;
} else } else {
*pname = (char *)name; *pname = (char *)name;
}
CAPI_trace(ctx, "capi_get_provname, returned name=%s, type=%d\n", *pname, CAPI_trace(ctx, "capi_get_provname, returned name=%s, type=%d\n", *pname,
*ptype); *ptype);
@ -1192,8 +1184,8 @@ static int capi_list_containers(CAPI_CTX * ctx, BIO *out)
CAPI_trace(ctx, "Listing containers CSP=%s, type = %d\n", ctx->cspname, CAPI_trace(ctx, "Listing containers CSP=%s, type = %d\n", ctx->cspname,
ctx->csptype); ctx->csptype);
if (ctx->cspname && sizeof(TCHAR) != sizeof(char)) { if (ctx->cspname && sizeof(TCHAR) != sizeof(char)) {
if ((clen = if ((clen = MultiByteToWideChar(CP_ACP, 0, ctx->cspname, -1,
MultiByteToWideChar(CP_ACP, 0, ctx->cspname, -1, NULL, 0))) { NULL, 0))) {
cspname = alloca(clen * sizeof(WCHAR)); cspname = alloca(clen * sizeof(WCHAR));
MultiByteToWideChar(CP_ACP, 0, ctx->cspname, -1, (WCHAR *)cspname, MultiByteToWideChar(CP_ACP, 0, ctx->cspname, -1, (WCHAR *)cspname,
clen); clen);
@ -1203,17 +1195,18 @@ static int capi_list_containers(CAPI_CTX * ctx, BIO *out)
capi_addlasterror(); capi_addlasterror();
return 0; return 0;
} }
} else } else {
cspname = (TCHAR *)ctx->cspname; cspname = (TCHAR *)ctx->cspname;
if (!CryptAcquireContext }
(&hprov, NULL, cspname, ctx->csptype, CRYPT_VERIFYCONTEXT)) { if (!CryptAcquireContext(&hprov, NULL, cspname, ctx->csptype,
CRYPT_VERIFYCONTEXT)) {
CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS, CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS,
CAPI_R_CRYPTACQUIRECONTEXT_ERROR); CAPI_R_CRYPTACQUIRECONTEXT_ERROR);
capi_addlasterror(); capi_addlasterror();
return 0; return 0;
} }
if (!CryptGetProvParam if (!CryptGetProvParam(hprov, PP_ENUMCONTAINERS, NULL, &buflen,
(hprov, PP_ENUMCONTAINERS, NULL, &buflen, CRYPT_FIRST)) { CRYPT_FIRST)) {
CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS, CAPI_R_ENUMCONTAINERS_ERROR); CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS, CAPI_R_ENUMCONTAINERS_ERROR);
capi_addlasterror(); capi_addlasterror();
CryptReleaseContext(hprov, 0); CryptReleaseContext(hprov, 0);
@ -1236,8 +1229,8 @@ static int capi_list_containers(CAPI_CTX * ctx, BIO *out)
flags = CRYPT_FIRST; flags = CRYPT_FIRST;
else else
flags = 0; flags = 0;
if (!CryptGetProvParam if (!CryptGetProvParam(hprov, PP_ENUMCONTAINERS, (BYTE *)cname,
(hprov, PP_ENUMCONTAINERS, (BYTE *) cname, &clen, flags)) { &clen, flags)) {
err = GetLastError(); err = GetLastError();
if (err == ERROR_NO_MORE_ITEMS) if (err == ERROR_NO_MORE_ITEMS)
goto done; goto done;
@ -1264,21 +1257,22 @@ static int capi_list_containers(CAPI_CTX * ctx, BIO *out)
return ret; return ret;
} }
static CRYPT_KEY_PROV_INFO *capi_get_prov_info(CAPI_CTX * ctx, PCCERT_CONTEXT cert) static CRYPT_KEY_PROV_INFO *capi_get_prov_info(CAPI_CTX * ctx,
PCCERT_CONTEXT cert)
{ {
DWORD len; DWORD len;
CRYPT_KEY_PROV_INFO *pinfo; CRYPT_KEY_PROV_INFO *pinfo;
if (!CertGetCertificateContextProperty if (!CertGetCertificateContextProperty(cert, CERT_KEY_PROV_INFO_PROP_ID,
(cert, CERT_KEY_PROV_INFO_PROP_ID, NULL, &len)) NULL, &len))
return NULL; return NULL;
pinfo = OPENSSL_malloc(len); pinfo = OPENSSL_malloc(len);
if (pinfo == NULL) { if (pinfo == NULL) {
CAPIerr(CAPI_F_CAPI_GET_PROV_INFO, ERR_R_MALLOC_FAILURE); CAPIerr(CAPI_F_CAPI_GET_PROV_INFO, ERR_R_MALLOC_FAILURE);
return NULL; return NULL;
} }
if (!CertGetCertificateContextProperty if (!CertGetCertificateContextProperty(cert, CERT_KEY_PROV_INFO_PROP_ID,
(cert, CERT_KEY_PROV_INFO_PROP_ID, pinfo, &len)) { pinfo, &len)) {
CAPIerr(CAPI_F_CAPI_GET_PROV_INFO, CAPIerr(CAPI_F_CAPI_GET_PROV_INFO,
CAPI_R_ERROR_GETTING_KEY_PROVIDER_INFO); CAPI_R_ERROR_GETTING_KEY_PROVIDER_INFO);
capi_addlasterror(); capi_addlasterror();
@ -1317,14 +1311,14 @@ static char *capi_cert_get_fname(CAPI_CTX * ctx, PCCERT_CONTEXT cert)
DWORD dlen; DWORD dlen;
CAPI_trace(ctx, "capi_cert_get_fname\n"); CAPI_trace(ctx, "capi_cert_get_fname\n");
if (!CertGetCertificateContextProperty if (!CertGetCertificateContextProperty(cert, CERT_FRIENDLY_NAME_PROP_ID,
(cert, CERT_FRIENDLY_NAME_PROP_ID, NULL, &dlen)) NULL, &dlen))
return NULL; return NULL;
wfname = OPENSSL_malloc(dlen); wfname = OPENSSL_malloc(dlen);
if (wfname == NULL) if (wfname == NULL)
return NULL; return NULL;
if (CertGetCertificateContextProperty if (CertGetCertificateContextProperty(cert, CERT_FRIENDLY_NAME_PROP_ID,
(cert, CERT_FRIENDLY_NAME_PROP_ID, wfname, &dlen)) { wfname, &dlen)) {
char *fname = wide_to_asc(wfname); char *fname = wide_to_asc(wfname);
OPENSSL_free(wfname); OPENSSL_free(wfname);
return fname; return fname;
@ -1347,8 +1341,9 @@ static void capi_dump_cert(CAPI_CTX * ctx, BIO *out, PCCERT_CONTEXT cert)
if (fname) { if (fname) {
BIO_printf(out, " Friendly Name \"%s\"\n", fname); BIO_printf(out, " Friendly Name \"%s\"\n", fname);
OPENSSL_free(fname); OPENSSL_free(fname);
} else } else {
BIO_printf(out, " <No Friendly Name>\n"); BIO_printf(out, " <No Friendly Name>\n");
}
} }
p = cert->pbCertEncoded; p = cert->pbCertEncoded;
@ -1442,8 +1437,7 @@ static PCCERT_CONTEXT capi_find_cert(CAPI_CTX * ctx, const char *id,
int match; int match;
switch (ctx->lookup_method) { switch (ctx->lookup_method) {
case CAPI_LU_SUBSTR: case CAPI_LU_SUBSTR:
return CertFindCertificateInStore(hstore, return CertFindCertificateInStore(hstore, X509_ASN_ENCODING, 0,
X509_ASN_ENCODING, 0,
CERT_FIND_SUBJECT_STR_A, id, NULL); CERT_FIND_SUBJECT_STR_A, id, NULL);
case CAPI_LU_FNAME: case CAPI_LU_FNAME:
for (;;) { for (;;) {
@ -1569,22 +1563,17 @@ CAPI_KEY *capi_find_key(CAPI_CTX * ctx, const char *id)
if ((len = MultiByteToWideChar(CP_ACP, 0, id, -1, NULL, 0)) && if ((len = MultiByteToWideChar(CP_ACP, 0, id, -1, NULL, 0)) &&
(contname = alloca(len * sizeof(WCHAR)), (contname = alloca(len * sizeof(WCHAR)),
MultiByteToWideChar(CP_ACP, 0, id, -1, contname, len)) && MultiByteToWideChar(CP_ACP, 0, id, -1, contname, len)) &&
(len = (len = MultiByteToWideChar(CP_ACP, 0, ctx->cspname, -1,
MultiByteToWideChar(CP_ACP, 0, ctx->cspname, -1, NULL, 0)) NULL, 0)) &&
&& (provname = (provname = alloca(len * sizeof(WCHAR)),
alloca(len * sizeof(WCHAR)), MultiByteToWideChar(CP_ACP, MultiByteToWideChar(CP_ACP, 0, ctx->cspname, -1,
0, provname, len)))
ctx->cspname, key = capi_get_key(ctx, (TCHAR *)contname, (TCHAR *)provname,
-1, ctx->csptype, ctx->keytype);
provname, } else {
len))) key = capi_get_key(ctx, (TCHAR *)id, (TCHAR *)ctx->cspname,
key =
capi_get_key(ctx, (TCHAR *)contname, (TCHAR *)provname,
ctx->csptype, ctx->keytype);
} else
key = capi_get_key(ctx, (TCHAR *)id,
(TCHAR *)ctx->cspname,
ctx->csptype, ctx->keytype); ctx->csptype, ctx->keytype);
}
break; break;
} }
@ -1650,9 +1639,9 @@ static int capi_ctx_set_provname(CAPI_CTX * ctx, LPSTR pname, DWORD type,
name = alloca(len * sizeof(WCHAR)); name = alloca(len * sizeof(WCHAR));
MultiByteToWideChar(CP_ACP, 0, pname, -1, (WCHAR *)name, len); MultiByteToWideChar(CP_ACP, 0, pname, -1, (WCHAR *)name, len);
} }
} else } else {
name = (TCHAR *)pname; name = (TCHAR *)pname;
}
if (!name || !CryptAcquireContext(&hprov, NULL, name, type, if (!name || !CryptAcquireContext(&hprov, NULL, name, type,
CRYPT_VERIFYCONTEXT)) { CRYPT_VERIFYCONTEXT)) {
CAPIerr(CAPI_F_CAPI_CTX_SET_PROVNAME, CAPIerr(CAPI_F_CAPI_CTX_SET_PROVNAME,
@ -1757,9 +1746,9 @@ static int capi_load_ssl_client_cert(ENGINE *e, SSL *ssl,
certs = sk_X509_new_null(); certs = sk_X509_new_null();
sk_X509_push(certs, x); sk_X509_push(certs, x);
} else } else {
X509_free(x); X509_free(x);
}
} }
if (cert) if (cert)