Lines Matching full:head
1511 static enum pkcs11_rc check_attrs_misc_integrity(struct obj_attrs *head) in check_attrs_misc_integrity() argument
1513 if (get_bool(head, PKCS11_CKA_NEVER_EXTRACTABLE) && in check_attrs_misc_integrity()
1514 get_bool(head, PKCS11_CKA_EXTRACTABLE)) { in check_attrs_misc_integrity()
1516 get_bool(head, PKCS11_CKA_NEVER_EXTRACTABLE), in check_attrs_misc_integrity()
1517 get_bool(head, PKCS11_CKA_EXTRACTABLE)); in check_attrs_misc_integrity()
1522 if (get_bool(head, PKCS11_CKA_ALWAYS_SENSITIVE) && in check_attrs_misc_integrity()
1523 !get_bool(head, PKCS11_CKA_SENSITIVE)) { in check_attrs_misc_integrity()
1525 get_bool(head, PKCS11_CKA_SENSITIVE), in check_attrs_misc_integrity()
1526 get_bool(head, PKCS11_CKA_ALWAYS_SENSITIVE)); in check_attrs_misc_integrity()
1534 bool object_is_private(struct obj_attrs *head) in object_is_private() argument
1536 return get_bool(head, PKCS11_CKA_PRIVATE); in object_is_private()
1539 bool object_is_token(struct obj_attrs *head) in object_is_token() argument
1541 return get_bool(head, PKCS11_CKA_TOKEN); in object_is_token()
1544 bool object_is_modifiable(struct obj_attrs *head) in object_is_modifiable() argument
1546 return get_bool(head, PKCS11_CKA_MODIFIABLE); in object_is_modifiable()
1549 bool object_is_copyable(struct obj_attrs *head) in object_is_copyable() argument
1551 return get_bool(head, PKCS11_CKA_COPYABLE); in object_is_copyable()
1558 struct obj_attrs *head) in check_access_attrs_against_token() argument
1562 switch (get_class(head)) { in check_access_attrs_against_token()
1568 private = object_is_private(head); in check_access_attrs_against_token()
1588 struct obj_attrs *head) in check_created_attrs_against_token() argument
1592 rc = check_attrs_misc_integrity(head); in check_created_attrs_against_token()
1596 if (get_bool(head, PKCS11_CKA_TRUSTED) && in check_created_attrs_against_token()
1603 if (get_bool(head, PKCS11_CKA_TOKEN) && in check_created_attrs_against_token()
1613 #define DMSG_BAD_BBOOL(attr, proc, head) \ argument
1619 _rc = get_attribute((head), _attr, &_bvalue, NULL); \
1626 struct obj_attrs *head, in check_attr_bval() argument
1632 if (!get_attribute(head, attribute, &bbool, &sz) && !!bbool == val) in check_attr_bval()
1635 DMSG_BAD_BBOOL(attribute, proc_id, head); in check_attr_bval()
1644 * @head - head of the attributes of the to-be-created object.
1648 struct obj_attrs *head __maybe_unused) in check_created_attrs_against_processing()
1662 assert(check_attr_bval(proc_id, head, PKCS11_CKA_LOCAL, false)); in check_created_attrs_against_processing()
1669 assert(check_attr_bval(proc_id, head, PKCS11_CKA_LOCAL, true)); in check_created_attrs_against_processing()
1678 assert(get_key_type(head) == PKCS11_CKK_GENERIC_SECRET); in check_created_attrs_against_processing()
1681 assert(get_key_type(head) == PKCS11_CKK_AES); in check_created_attrs_against_processing()
1684 assert(get_key_type(head) == PKCS11_CKK_EC_EDWARDS); in check_created_attrs_against_processing()
1687 assert(get_key_type(head) == PKCS11_CKK_EC); in check_created_attrs_against_processing()
1690 assert(get_key_type(head) == PKCS11_CKK_RSA); in check_created_attrs_against_processing()
1877 struct obj_attrs *head) in parent_key_complies_allowed_processings() argument
1885 rc = get_attribute_ptr(head, PKCS11_CKA_ALLOWED_MECHANISMS, in parent_key_complies_allowed_processings()
1931 struct obj_attrs *head) in check_parent_attrs_against_processing() argument
1933 enum pkcs11_class_id key_class = get_class(head); in check_parent_attrs_against_processing()
1934 enum pkcs11_key_type key_type = get_key_type(head); in check_parent_attrs_against_processing()
1937 if (!get_bool(head, attr)) { in check_parent_attrs_against_processing()
1971 if (get_bool(head, PKCS11_CKA_ENCRYPT)) { in check_parent_attrs_against_processing()
2113 if (!parent_key_complies_allowed_processings(proc_id, head)) { in check_parent_attrs_against_processing()
2374 struct obj_attrs *head, in check_attrs_against_modification() argument
2385 cur = (char *)head + sizeof(struct obj_attrs); in check_attrs_against_modification()
2386 end = cur + head->attrs_size; in check_attrs_against_modification()
2426 get_bool(head, PKCS11_CKA_TOKEN)) { in check_attrs_against_modification()
2436 bool obj_priv = get_bool(head, cli_ref.id); in check_attrs_against_modification()
2460 static enum pkcs11_rc set_secret_key_data(struct obj_attrs **head, void *data, in set_secret_key_data() argument
2468 rc = get_attribute(*head, PKCS11_CKA_VALUE_LEN, &key_length, &size); in set_secret_key_data()
2477 rc = set_attribute(head, PKCS11_CKA_VALUE_LEN, &key_length, in set_secret_key_data()
2484 rc = check_created_attrs(*head, NULL); in set_secret_key_data()
2489 rc = remove_empty_attribute(head, PKCS11_CKA_VALUE); in set_secret_key_data()
2493 rc = add_attribute(head, PKCS11_CKA_VALUE, data, key_length); in set_secret_key_data()
2497 return set_check_value_attr(head); in set_secret_key_data()
2500 static enum pkcs11_rc set_private_key_data_rsa(struct obj_attrs **head, in set_private_key_data_rsa() argument
2518 rc = get_u32_attribute(*head, PKCS11_CKA_MODULUS_BITS, &key_bits); in set_private_key_data_rsa()
2522 if (remove_empty_attribute(head, PKCS11_CKA_MODULUS) || in set_private_key_data_rsa()
2523 remove_empty_attribute(head, PKCS11_CKA_PUBLIC_EXPONENT) || in set_private_key_data_rsa()
2524 remove_empty_attribute(head, PKCS11_CKA_PRIVATE_EXPONENT) || in set_private_key_data_rsa()
2525 remove_empty_attribute(head, PKCS11_CKA_PRIME_1) || in set_private_key_data_rsa()
2526 remove_empty_attribute(head, PKCS11_CKA_PRIME_2)) in set_private_key_data_rsa()
2574 rc = add_attribute(head, PKCS11_CKA_MODULUS, buffer, size); in set_private_key_data_rsa()
2590 rc = add_attribute(head, PKCS11_CKA_PUBLIC_EXPONENT, buffer, size); in set_private_key_data_rsa()
2606 rc = add_attribute(head, PKCS11_CKA_PRIVATE_EXPONENT, buffer, size); in set_private_key_data_rsa()
2622 rc = add_attribute(head, PKCS11_CKA_PRIME_1, buffer, size); in set_private_key_data_rsa()
2638 rc = add_attribute(head, PKCS11_CKA_PRIME_2, buffer, size); in set_private_key_data_rsa()
2651 enum pkcs11_rc set_key_data(struct obj_attrs **head, void *data, in set_key_data() argument
2654 switch (get_class(*head)) { in set_key_data()
2656 return set_secret_key_data(head, data, key_size); in set_key_data()
2658 if (get_key_type(*head) == PKCS11_CKK_RSA) in set_key_data()
2659 return set_private_key_data_rsa(head, data, key_size); in set_key_data()
2668 static enum pkcs11_rc alloc_copy_attribute_value(struct obj_attrs *head, in alloc_copy_attribute_value() argument
2675 rc = get_attribute_ptr(head, PKCS11_CKA_VALUE, &value, sz); in alloc_copy_attribute_value()
2690 encode_rsa_private_key_der(struct obj_attrs *head, void **data, uint32_t *sz) in encode_rsa_private_key_der() argument
2719 rc = get_attribute_ptr(head, PKCS11_CKA_MODULUS, &n, &n_len); in encode_rsa_private_key_der()
2723 rc = get_attribute_ptr(head, PKCS11_CKA_PRIME_1, &p, &p_len); in encode_rsa_private_key_der()
2727 rc = get_attribute_ptr(head, PKCS11_CKA_PRIME_2, &q, &q_len); in encode_rsa_private_key_der()
2731 rc = get_attribute_ptr(head, PKCS11_CKA_PRIVATE_EXPONENT, &d, &d_len); in encode_rsa_private_key_der()
2735 rc = get_attribute_ptr(head, PKCS11_CKA_PUBLIC_EXPONENT, &e, &e_len); in encode_rsa_private_key_der()
2792 enum pkcs11_rc alloc_key_data_to_wrap(struct obj_attrs *head, void **data, in alloc_key_data_to_wrap() argument
2797 switch (get_class(head)) { in alloc_key_data_to_wrap()
2799 rc = alloc_copy_attribute_value(head, data, sz); in alloc_key_data_to_wrap()
2802 if (get_key_type(head) == PKCS11_CKK_RSA) in alloc_key_data_to_wrap()
2803 rc = encode_rsa_private_key_der(head, data, sz); in alloc_key_data_to_wrap()
2956 enum pkcs11_rc set_check_value_attr(struct obj_attrs **head) in set_check_value_attr() argument
2965 assert(head && *head); in set_check_value_attr()
2970 switch (get_class(*head)) { in set_check_value_attr()
2980 rc = get_attribute_ptr(*head, PKCS11_CKA_CHECK_VALUE, &kcv2, &kcv2_len); in set_check_value_attr()
2997 rc = get_attribute_ptr(*head, PKCS11_CKA_VALUE, &val, &val_len); in set_check_value_attr()
3001 if (get_class(*head) == PKCS11_CKO_SECRET_KEY) { in set_check_value_attr()
3002 switch (get_key_type(*head)) { in set_check_value_attr()
3035 rc = add_attribute(head, PKCS11_CKA_CHECK_VALUE, kcv, in set_check_value_attr()