Warmcat homepage andy@warmcat.com
libwebsockets
{"schema":"libjg2-1", "vpath":"/git/", "avatar":"/git/avatar/", "alang":"", "gen_ut":1753167930, "reponame":"openssl", "desc":"OpenSSL", "owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://warmcat.com/repo/openssl", "f":3, "items": [ {"schema":"libjg2-1", "cid":"449a258dafcd2216b4857a4bc174a391", "commit": {"type":"commit", "time": 1490781133, "time_ofs": 120, "oid_tree": { "oid": "17006a126fdbf8aa8b62403bd18afb6bbd82bedc", "alias": []}, "oid":{ "oid": "3a5b64b2f039a237b595961da07350b3f23282d0", "alias": []}, "msg": "engines/e_capi.c: adhere to CryptAcquireContextW unconditionally.", "sig_commit": { "git_time": { "time": 1490781133, "offset": 120 }, "name": "Andy Polyakov", "email": "appro@openssl.org", "md5": "50bd64fa2a792cbbf679fa16213a3b2a" }, "sig_author": { "git_time": { "time": 1490542754, "offset": 120 }, "name": "Andy Polyakov", "email": "appro@openssl.org", "md5": "50bd64fa2a792cbbf679fa16213a3b2a" }}, "body": "engines/e_capi.c: adhere to CryptAcquireContextW unconditionally.\n\nReviewed-by: Rich Salz \u003crsalz@openssl.org\u003e\nReviewed-by: Richard Levitte \u003clevitte@openssl.org\u003e\n" , "diff": "diff --git a/engines/e_capi.c b/engines/e_capi.c\nindex 6e41708..625e9a1 100644\n--- a/engines/e_capi.c\n+++ b/engines/e_capi.c\n@@ -474,8 +474,8 @@ static int capi_init(ENGINE *e)\n \n /* See if we support AES CSP */\n \n- if (CryptAcquireContext(\u0026hprov, NULL, NULL, PROV_RSA_AES,\n- CRYPT_VERIFYCONTEXT)) {\n+ if (CryptAcquireContextW(\u0026hprov, NULL, NULL, PROV_RSA_AES,\n+ CRYPT_VERIFYCONTEXT)) {\n use_aes_csp \u003d 1;\n CryptReleaseContext(hprov, 0);\n }\n@@ -1179,27 +1179,25 @@ static int capi_list_containers(CAPI_CTX *ctx, BIO *out)\n HCRYPTPROV hprov;\n DWORD err, idx, flags, buflen \u003d 0, clen;\n LPSTR cname;\n- LPTSTR cspname \u003d NULL;\n+ LPWSTR cspname \u003d NULL;\n \n CAPI_trace(ctx, \u0022Listing containers CSP\u003d%s, type \u003d %d\u005cn\u0022, ctx-\u003ecspname,\n ctx-\u003ecsptype);\n- if (ctx-\u003ecspname \u0026\u0026 sizeof(TCHAR) !\u003d sizeof(char)) {\n+ if (ctx-\u003ecspname !\u003d NULL) {\n if ((clen \u003d MultiByteToWideChar(CP_ACP, 0, ctx-\u003ecspname, -1,\n NULL, 0))) {\n cspname \u003d alloca(clen * sizeof(WCHAR));\n MultiByteToWideChar(CP_ACP, 0, ctx-\u003ecspname, -1, (WCHAR *)cspname,\n clen);\n }\n- if (!cspname) {\n+ if (cspname \u003d\u003d NULL) {\n CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS, ERR_R_MALLOC_FAILURE);\n capi_addlasterror();\n return 0;\n }\n- } else {\n- cspname \u003d (TCHAR *)ctx-\u003ecspname;\n }\n- if (!CryptAcquireContext(\u0026hprov, NULL, cspname, ctx-\u003ecsptype,\n- CRYPT_VERIFYCONTEXT)) {\n+ if (!CryptAcquireContextW(\u0026hprov, NULL, cspname, ctx-\u003ecsptype,\n+ CRYPT_VERIFYCONTEXT)) {\n CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS,\n CAPI_R_CRYPTACQUIRECONTEXT_ERROR);\n capi_addlasterror();\n@@ -1460,8 +1458,8 @@ static PCCERT_CONTEXT capi_find_cert(CAPI_CTX *ctx, const char *id,\n }\n }\n \n-static CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const TCHAR *contname,\n- TCHAR *provname, DWORD ptype, DWORD keyspec)\n+static CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const WCHAR *contname,\n+ WCHAR *provname, DWORD ptype, DWORD keyspec)\n {\n DWORD dwFlags \u003d 0;\n CAPI_KEY *key \u003d OPENSSL_malloc(sizeof(*key));\n@@ -1478,8 +1476,8 @@ static CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const TCHAR *contname,\n contname, provname, ptype);\n } else if (ctx \u0026\u0026 ctx-\u003edebug_level \u003e\u003d CAPI_DBG_TRACE \u0026\u0026 ctx-\u003edebug_file) {\n /* above 'if' is optimization to minimize malloc-ations */\n- char *_contname \u003d wide_to_asc((WCHAR *)contname);\n- char *_provname \u003d wide_to_asc((WCHAR *)provname);\n+ char *_contname \u003d wide_to_asc(contname);\n+ char *_provname \u003d wide_to_asc(provname);\n \n CAPI_trace(ctx, \u0022capi_get_key, contname\u003d%s, provname\u003d%s, type\u003d%d\u005cn\u0022,\n _contname, _provname, ptype);\n@@ -1488,7 +1486,8 @@ static CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const TCHAR *contname,\n }\n if (ctx-\u003estore_flags \u0026 CERT_SYSTEM_STORE_LOCAL_MACHINE)\n dwFlags \u003d CRYPT_MACHINE_KEYSET;\n- if (!CryptAcquireContext(\u0026key-\u003ehprov, contname, provname, ptype, dwFlags)) {\n+ if (!CryptAcquireContextW(\u0026key-\u003ehprov, contname, provname, ptype,\n+ dwFlags)) {\n CAPIerr(CAPI_F_CAPI_GET_KEY, CAPI_R_CRYPTACQUIRECONTEXT_ERROR);\n capi_addlasterror();\n goto err;\n@@ -1512,27 +1511,14 @@ static CAPI_KEY *capi_get_cert_key(CAPI_CTX *ctx, PCCERT_CONTEXT cert)\n {\n CAPI_KEY *key \u003d NULL;\n CRYPT_KEY_PROV_INFO *pinfo \u003d NULL;\n- char *provname \u003d NULL, *contname \u003d NULL;\n+\n pinfo \u003d capi_get_prov_info(ctx, cert);\n- if (!pinfo)\n- goto err;\n- if (sizeof(TCHAR) !\u003d sizeof(char))\n- key \u003d capi_get_key(ctx, (TCHAR *)pinfo-\u003epwszContainerName,\n- (TCHAR *)pinfo-\u003epwszProvName,\n- pinfo-\u003edwProvType, pinfo-\u003edwKeySpec);\n- else {\n- provname \u003d wide_to_asc(pinfo-\u003epwszProvName);\n- contname \u003d wide_to_asc(pinfo-\u003epwszContainerName);\n- if (!provname || !contname)\n- goto err;\n- key \u003d capi_get_key(ctx, (TCHAR *)contname, (TCHAR *)provname,\n+\n+ if (pinfo !\u003d NULL)\n+ key \u003d capi_get_key(ctx, pinfo-\u003epwszContainerName, pinfo-\u003epwszProvName,\n pinfo-\u003edwProvType, pinfo-\u003edwKeySpec);\n- }\n \n- err:\n OPENSSL_free(pinfo);\n- OPENSSL_free(provname);\n- OPENSSL_free(contname);\n return key;\n }\n \n@@ -1541,6 +1527,7 @@ CAPI_KEY *capi_find_key(CAPI_CTX *ctx, const char *id)\n PCCERT_CONTEXT cert;\n HCERTSTORE hstore;\n CAPI_KEY *key \u003d NULL;\n+\n switch (ctx-\u003elookup_method) {\n case CAPI_LU_SUBSTR:\n case CAPI_LU_FNAME:\n@@ -1556,7 +1543,7 @@ CAPI_KEY *capi_find_key(CAPI_CTX *ctx, const char *id)\n break;\n \n case CAPI_LU_CONTNAME:\n- if (sizeof(TCHAR) !\u003d sizeof(char)) {\n+ {\n WCHAR *contname, *provname;\n DWORD len;\n \n@@ -1568,11 +1555,8 @@ CAPI_KEY *capi_find_key(CAPI_CTX *ctx, const char *id)\n (provname \u003d alloca(len * sizeof(WCHAR)),\n MultiByteToWideChar(CP_ACP, 0, ctx-\u003ecspname, -1,\n provname, len)))\n- key \u003d capi_get_key(ctx, (TCHAR *)contname, (TCHAR *)provname,\n+ key \u003d capi_get_key(ctx, contname, provname,\n ctx-\u003ecsptype, ctx-\u003ekeytype);\n- } else {\n- key \u003d capi_get_key(ctx, (TCHAR *)id, (TCHAR *)ctx-\u003ecspname,\n- ctx-\u003ecsptype, ctx-\u003ekeytype);\n }\n break;\n }\n@@ -1631,19 +1615,15 @@ static int capi_ctx_set_provname(CAPI_CTX *ctx, LPSTR pname, DWORD type,\n CAPI_trace(ctx, \u0022capi_ctx_set_provname, name\u003d%s, type\u003d%d\u005cn\u0022, pname, type);\n if (check) {\n HCRYPTPROV hprov;\n- LPTSTR name \u003d NULL;\n+ LPWSTR name \u003d NULL;\n+ DWORD len;\n \n- if (sizeof(TCHAR) !\u003d sizeof(char)) {\n- DWORD len;\n- if ((len \u003d MultiByteToWideChar(CP_ACP, 0, pname, -1, NULL, 0))) {\n- name \u003d alloca(len * sizeof(WCHAR));\n- MultiByteToWideChar(CP_ACP, 0, pname, -1, (WCHAR *)name, len);\n- }\n- } else {\n- name \u003d (TCHAR *)pname;\n+ if ((len \u003d MultiByteToWideChar(CP_ACP, 0, pname, -1, NULL, 0))) {\n+ name \u003d alloca(len * sizeof(WCHAR));\n+ MultiByteToWideChar(CP_ACP, 0, pname, -1, (WCHAR *)name, len);\n }\n- if (!name || !CryptAcquireContext(\u0026hprov, NULL, name, type,\n- CRYPT_VERIFYCONTEXT)) {\n+ if (name \u003d\u003d NULL || !CryptAcquireContextW(\u0026hprov, NULL, name, type,\n+ CRYPT_VERIFYCONTEXT)) {\n CAPIerr(CAPI_F_CAPI_CTX_SET_PROVNAME,\n CAPI_R_CRYPTACQUIRECONTEXT_ERROR);\n capi_addlasterror();\n","s":{"c":1753050172,"u": 28549}} ],"g": 1166,"chitpc": 0,"ehitpc": 0,"indexed":0 , "ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "7d0a"}