Add RFC5114 DH parameters to OpenSSL. Add test data to dhtest.
[openssl.git] / engines / e_capi.c
index d4cfdfe4ec850bd4a54677c1d5e2a5b21af4e316..fdf173652ae1cd53ec2370a982b334afb2dfd695 100644 (file)
@@ -527,6 +527,7 @@ static int bind_capi(ENGINE *e)
        {
        if (!ENGINE_set_id(e, engine_capi_id)
                || !ENGINE_set_name(e, engine_capi_name)
+               || !ENGINE_set_flags(e, ENGINE_FLAGS_NO_REGISTER_ALL)
                || !ENGINE_set_init_function(e, capi_init)
                || !ENGINE_set_finish_function(e, capi_finish)
                || !ENGINE_set_destroy_function(e, capi_destroy)
@@ -1158,17 +1159,23 @@ static int capi_list_containers(CAPI_CTX *ctx, BIO *out)
        LPTSTR cspname = NULL;
 
        CAPI_trace(ctx, "Listing containers CSP=%s, type = %d\n", ctx->cspname, ctx->csptype);
-       if (sizeof(TCHAR)!=sizeof(char))
+       if (ctx->cspname && sizeof(TCHAR)!=sizeof(char))
                {
                if ((clen=MultiByteToWideChar(CP_ACP,0,ctx->cspname,-1,NULL,0)))
                        {
                        cspname = alloca(clen*sizeof(WCHAR));
                        MultiByteToWideChar(CP_ACP,0,ctx->cspname,-1,(WCHAR *)cspname,clen);
                        }
+               if (!cspname)
+                       {
+                       CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS, ERR_R_MALLOC_FAILURE);
+                       capi_addlasterror();
+                       return 0;
+                       }
                }
        else
                cspname = (TCHAR *)ctx->cspname;
-       if (!cspname || !CryptAcquireContext(&hprov, NULL, cspname, ctx->csptype, CRYPT_VERIFYCONTEXT))
+       if (!CryptAcquireContext(&hprov, NULL, cspname, ctx->csptype, CRYPT_VERIFYCONTEXT))
                {
                CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS, CAPI_R_CRYPTACQUIRECONTEXT_ERROR);
                capi_addlasterror();