2N/A * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/Aextern int kcf_des3_threshold;
2N/Aextern int kcf_aes_threshold;
2N/Aextern int kcf_rc4_threshold;
2N/Aextern int kcf_md5_threshold;
2N/Aextern int kcf_sha1_threshold;
for (i = 0; i < max_ncpus; i++) \
for (i = 0; i < max_ncpus; i++) \
if (rctl_chk) { \
&devops,
switch (cmd) {
case DDI_INFO_DEVT2DEVINFO:
return (DDI_SUCCESS);
case DDI_INFO_DEVT2INSTANCE:
*result = (void *)0;
return (DDI_SUCCESS);
return (DDI_FAILURE);
return (DDI_FAILURE);
return (DDI_FAILURE);
return (DDI_FAILURE);
return (DDI_FAILURE);
KM_SLEEP);
for (i = 0; i < max_ncpus; i++)
return (DDI_SUCCESS);
minor_t i;
return (DDI_FAILURE);
for (i = 0; i < crypto_minors_table_count; i++) {
return (DDI_FAILURE);
for (i = 0; i < max_ncpus; i++)
return (DDI_SUCCESS);
return (ENXIO);
return (ENXIO);
return (ENOTSUP);
return (ENOMEM);
goto again;
if (crypto_minors_table_count != 0) {
uint_t i;
return (ENODEV);
return (ENODEV);
static crypto_minor_t *
return (NULL);
return (cm);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
return (EFAULT);
return (EFAULT);
goto out;
return (EFAULT);
goto out;
out:
return (EFAULT);
return (EFAULT);
goto out;
out:
return (error);
caddr_t p;
if (count == 0)
p = u_minfos;
for (i = 0; i < count; i++) {
return (EFAULT);
#ifdef _LP64
return (EFAULT);
goto out1;
KM_SLEEP);
goto out1;
out1:
error != 0) {
goto out2;
out2:
return (error);
return (rval);
if (return_slot_list) {
if (provider_count != 0) {
for (i = 0; i < provider_count; i++) {
p[i].pe_provider_id = i;
p[i].pe_mechanism_count =
*array = p;
return (CRYPTO_SUCCESS);
return (ENXIO);
return (EFAULT);
return (EFAULT);
if (req_count == 0) {
return (EFAULT);
return (EFAULT);
return (EFAULT);
if (count == 0) {
return (EFAULT);
return (ENXIO);
return (EFAULT);
need = 0;
goto release_minor;
goto release_minor;
goto release_minor;
(void) kcf_get_hardware_provider_nomech(
B_FALSE);
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
return (EFAULT);
if (req_count == 0) {
return (EFAULT);
return (EFAULT);
return (EFAULT);
if (count == 0) {
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto fail;
goto fail;
CRYPTO_MAX_MECH_NAME) == 0) {
goto fail;
goto fail;
fail:
return (EFAULT);
return (CRYPTO_SUCCESS);
B_FALSE);
return (rv);
pd);
goto again;
return (CRYPTO_SUCCESS);
return (rv);
return (CRYPTO_SUCCESS);
return (CRYPTO_SUCCESS);
uint_t i;
return (CRYPTO_FAILED);
if (rv != 0) {
return (rv);
return (CRYPTO_INVALID_PROVIDER_ID);
return (rv);
return (rv);
goto again;
*session_index = i;
return (CRYPTO_SUCCESS);
return (CRYPTO_FAILED);
if ((session_index) == 0 ||
return (CRYPTO_SESSION_HANDLE_INVALID);
return (CRYPTO_SESSION_HANDLE_INVALID);
return (CRYPTO_SUCCESS);
return (EFAULT);
return (EFAULT);
return (EFAULT);
return (EFAULT);
return (EFAULT);
static boolean_t
goto out;
goto out;
goto out;
out:
case CRYPTO_KEY_RAW: {
case CRYPTO_KEY_ATTR_LIST:
static boolean_t
if (count == 0) {
goto out;
goto out;
goto out;
for (i = 0; i < count; i++) {
sizeof (caddr_t));
goto out;
goto out;
p = k_attrs_buf;
for (i = 0; i < count; i++) {
goto out;
out:
static boolean_t
case CRYPTO_KEY_RAW:
if (key_bits != 0) {
if (key_bits >
goto out;
*out_rctl_chk);
goto out;
goto out;
case CRYPTO_KEY_ATTR_LIST:
case CRYPTO_KEY_REFERENCE:
out:
static boolean_t
goto out;
goto out;
goto out;
out:
return (rv);
return (rv);
if (allocated_by_crypto_module) {
return (ENXIO);
return (EFAULT);
goto out;
sizeof (crypto_mech_type_t));
goto out;
!= CRYPTO_SUCCESS) {
goto out;
goto out;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
encrlen = 0;
goto release_minor;
goto release_minor;
CRYPTO_INPLACE_OPERATION) != 0;
need = 0;
goto release_minor;
goto release_minor;
if (do_inplace) {
if (do_inplace)
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
encrlen = 0;
goto out;
goto out;
CRYPTO_INPLACE_OPERATION) != 0;
need = 0;
goto out;
goto out;
if (do_inplace) {
if (do_inplace)
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
encrlen = 0;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto out;
goto out;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto out;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
digestlen = 0;
goto release_minor;
goto release_minor;
need = 0;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
goto out;
goto out;
out:
return (ENXIO);
return (EFAULT);
goto release_minor;
goto out;
goto out;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto out;
sizeof (crypto_mech_type_t));
goto out;
goto out;
goto out;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
need = 0;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
if (count == 0)
p = u_attrs;
for (i = 0; i < count; i++) {
goto out;
out:
return (error);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
goto out;
out:
return (error);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
goto out;
out:
return (error);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
#ifdef _LP64
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (count != 0) {
if (error != 0)
return (error);
return (EFAULT);
return (rv);
return (rv);
return (ENXIO);
return (EFAULT);
goto release_minor;
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
sizeof (crypto_mech_type_t));
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
goto out;
out:
return (error);
#ifdef _LP64
return (ENXIO);
return (EFAULT);
goto release_minor;
sizeof (crypto_mech_type_t));
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
goto out;
out:
return (error);
return (ENXIO);
return (EFAULT);
goto release_minor;
sizeof (crypto_mech_type_t));
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
goto out;
out:
return (error);
#ifdef _LP64
return (ENXIO);
return (EFAULT);
goto release_minor;
sizeof (crypto_mech_type_t));
goto release_minor;
&error);
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
goto out;
out:
return (error);
return (ENXIO);
return (EFAULT);
goto out;
sizeof (crypto_mech_type_t));
goto out;
goto out;
goto out;
goto out;
wrapped_key_len = 0;
goto out;
goto out;
out:
if (error != 0)
return (error);
return (EFAULT);
return (ENXIO);
return (EFAULT);
goto release_minor;
sizeof (crypto_mech_type_t));
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
goto out;
out:
return (error);
return (ENXIO);
return (EFAULT);
goto release_minor;
sizeof (crypto_mech_type_t));
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
goto out;
out:
if (please_destroy_object) {
return (error);
#ifdef _LP64
return (ENXIO);
return (EFAULT);
goto release_minor;
sizeof (crypto_mech_type_t));
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
goto release_minor;
if (error != 0)
goto out;
out:
return (error);
int *rval)
switch (cmd) {
case CRYPTO_GET_FUNCTION_LIST:
case CRYPTO_GET_PROVIDER_LIST:
case CRYPTO_GET_PROVIDER_INFO:
case CRYPTO_OPEN_SESSION:
case CRYPTO_CLOSE_SESSION:
case CRYPTO_ENCRYPT_INIT:
case CRYPTO_DECRYPT_INIT:
case CRYPTO_ENCRYPT:
case CRYPTO_DECRYPT:
case CRYPTO_ENCRYPT_UPDATE:
case CRYPTO_DECRYPT_UPDATE:
case CRYPTO_ENCRYPT_FINAL:
case CRYPTO_DECRYPT_FINAL:
case CRYPTO_DIGEST_INIT:
case CRYPTO_DIGEST:
case CRYPTO_DIGEST_UPDATE:
case CRYPTO_DIGEST_KEY:
case CRYPTO_DIGEST_FINAL:
case CRYPTO_SIGN_INIT:
case CRYPTO_SIGN:
case CRYPTO_SIGN_UPDATE:
case CRYPTO_SIGN_FINAL:
case CRYPTO_SIGN_RECOVER_INIT:
case CRYPTO_SIGN_RECOVER:
case CRYPTO_VERIFY_INIT:
case CRYPTO_VERIFY:
case CRYPTO_VERIFY_UPDATE:
case CRYPTO_VERIFY_FINAL:
case CRYPTO_VERIFY_RECOVER:
case CRYPTO_SET_PIN:
case CRYPTO_LOGIN:
case CRYPTO_LOGOUT:
case CRYPTO_SEED_RANDOM:
case CRYPTO_GENERATE_RANDOM:
case CRYPTO_OBJECT_CREATE:
case CRYPTO_OBJECT_COPY:
case CRYPTO_OBJECT_DESTROY:
case CRYPTO_OBJECT_GET_SIZE:
case CRYPTO_OBJECT_FIND_INIT:
case CRYPTO_OBJECT_FIND_FINAL:
case CRYPTO_GENERATE_KEY:
case CRYPTO_GENERATE_KEY_PAIR:
case CRYPTO_WRAP_KEY:
case CRYPTO_UNWRAP_KEY:
case CRYPTO_DERIVE_KEY:
return (EINVAL);
if (need == 0)
return (CRYPTO_SUCCESS);
return (CRYPTO_HOST_MEMORY);
return (CRYPTO_SUCCESS);