int _init(void) { int ret; /* * Register with KCF. If the registration fails, log an error * and uninstall the module. */ if ((ret = crypto_register_provider(&rc4_prov_info, &rc4_prov_handle)) != CRYPTO_SUCCESS) { cmn_err(CE_WARN, "_init: crypto_register_provider(%s)" "failed (0x%x)", "arcfour", ret); return (EACCES); } if ((ret = mod_install(&modlinkage)) != 0) { int rv; ASSERT(rc4_prov_handle != NULL); /* We should not return if the unregister returns busy. */ while ((rv = crypto_unregister_provider(rc4_prov_handle)) == CRYPTO_BUSY) { cmn_err(CE_WARN, "_init: crypto_unregister_provider(%s)" " failed (0x%x). Retrying.", "arcfour", rv); /* wait 10 seconds and try again. */ delay(10 * drv_usectohz(1000000)); } } return (0); }
int _init(void) { int ret; /* * Register with KCF. If the registration fails, return error. */ if ((ret = crypto_register_provider(&aes_prov_info, &aes_prov_handle)) != CRYPTO_SUCCESS) { cmn_err(CE_WARN, "%s _init: crypto_register_provider()" "failed (0x%x)", CRYPTO_PROVIDER_NAME, ret); return (EACCES); } if ((ret = mod_install(&modlinkage)) != 0) { int rv; ASSERT(aes_prov_handle != NULL); /* We should not return if the unregister returns busy. */ while ((rv = crypto_unregister_provider(aes_prov_handle)) == CRYPTO_BUSY) { cmn_err(CE_WARN, "%s _init: crypto_unregister_provider() " "failed (0x%x). Retrying.", CRYPTO_PROVIDER_NAME, rv); /* wait 10 seconds and try again. */ delay(10 * drv_usectohz(1000000)); } } return (ret); }
int _fini(void) { /* Unregister from KCF if module is registered */ if (aes_prov_handle != NULL) { if (crypto_unregister_provider(aes_prov_handle)) return (EBUSY); aes_prov_handle = NULL; } return (mod_remove(&modlinkage)); }
int skein_mod_fini(void) { int ret; if (skein_prov_handle != 0) { if ((ret = crypto_unregister_provider(skein_prov_handle)) != CRYPTO_SUCCESS) { cmn_err(CE_WARN, "skein _fini: crypto_unregister_provider() " "failed (0x%x)", ret); return (EBUSY); } skein_prov_handle = 0; } return (mod_remove(&modlinkage)); }
int _fini(void) { int ret; /* * Unregister from KCF if previous registration succeeded. */ if (md5_prov_handle != NULL) { if ((ret = crypto_unregister_provider(md5_prov_handle)) != CRYPTO_SUCCESS) { cmn_err(CE_WARN, "md5 _fini: " "crypto_unregister_provider() failed (0x%x)", ret); return (EBUSY); } md5_prov_handle = NULL; } return (mod_remove(&modlinkage)); }
int _fini(void) { int ret; /* * Unregister from KCF if previous registration succeeded. */ if (aes_prov_handle != NULL) { if ((ret = crypto_unregister_provider(aes_prov_handle)) != CRYPTO_SUCCESS) { cmn_err(CE_WARN, "%s _fini: crypto_unregister_provider() " "failed (0x%x)", CRYPTO_PROVIDER_NAME, ret); return (EBUSY); } aes_prov_handle = NULL; } return (mod_remove(&modlinkage)); }