static int capi_ctx_set_provname_idx(CAPI_CTX *ctx, int idx) { LPSTR pname; DWORD type; if (capi_get_provname(ctx, &pname, &type, idx) != 1) return 0; return capi_ctx_set_provname(ctx, pname, type, 0); }
static int capi_ctx_set_provname_idx(CAPI_CTX *ctx, int idx) { LPSTR pname; DWORD type; int res; if (capi_get_provname(ctx, &pname, &type, idx) != 1) return 0; res = capi_ctx_set_provname(ctx, pname, type, 0); OPENSSL_free(pname); return res; }
static int capi_list_providers(CAPI_CTX * ctx, BIO *out) { DWORD idx, ptype; int ret; LPSTR provname = NULL; CAPI_trace(ctx, "capi_list_providers\n"); BIO_printf(out, "Available CSPs:\n"); for (idx = 0;; idx++) { ret = capi_get_provname(ctx, &provname, &ptype, idx); if (ret == 2) break; if (ret == 0) break; BIO_printf(out, "%d. %s, type %d\n", idx, provname, ptype); OPENSSL_free(provname); } return 1; }