Reference Guide

Chapter 3: Resource Management 29
RSA BSAFE Crypto-C Micro Edition 3.x to 4.1.4 Migration Guide
Environment Variable - Crypto-C ME 4.1.4
int main(int argc, char **argv)
{
int ret;
R_LIB_CTX *lib_ctx = NULL;
R_PROV* p11;
const R_RES_LIST *list =
R_PROV_MES_get_default_resource_list();
static const R_FEATURE *features[] =
{
&R_PROV_PKCS11_feature_config_from_env,
R_FEATURE_END_OF_LIST
};
ret = R_STATE_init_defaults();
if (R_ERROR_NONE != ret)
return 1;
ret = R_LIB_CTX_new_ef(list, NULL, &lib_ctx);
if (R_ERROR_NONE != ret)
goto end;
ret = R_PROV_PKCS11_new(NULL, features, &p11);
if (R_ERROR_NONE != ret)
goto end;
ret = R_PROV_PKCS11_load(p11);
if (R_ERROR_NONE != ret)
{
printf("Failed to load PKCS #11 provider %d\n", ret);
goto end;
}
ret = R_LIB_CTX_add_provider(lib_ctx, p11);
if (R_ERROR_NONE != ret)
goto end;
/* Perform cryptographic operations */
end:
R_LIB_CTX_free(lib_ctx);
R_PROV_free(p11);
R_STATE_cleanup();
return 0;
}