// hwf_object_validate_attribute() // CK_RV hwf_validate_attribute(TEMPLATE *tmpl, CK_ATTRIBUTE *attr, CK_ULONG mode) { switch (attr->type) { case CKA_HW_FEATURE_TYPE: if (mode == MODE_CREATE) return (CKR_OK); else return (CKR_ATTRIBUTE_READ_ONLY); default: return (template_validate_base_attribute(tmpl, attr, mode)); } }
CK_RV data_object_validate_attribute(TEMPLATE *tmpl, CK_ATTRIBUTE *attr, CK_ULONG mode) { if (! attr) { return (CKR_FUNCTION_FAILED); } switch (attr->type) { case CKA_APPLICATION: case CKA_VALUE: return (CKR_OK); default: return (template_validate_base_attribute(tmpl, attr, mode)); } }
// hwf_object_validate_attribute() // CK_RV hwf_validate_attribute( TEMPLATE *tmpl, CK_ATTRIBUTE *attr, CK_ULONG mode) { switch (attr->type) { case CKA_HW_FEATURE_TYPE: if (mode == MODE_CREATE) return CKR_OK; else{ OCK_LOG_ERR(ERR_ATTRIBUTE_READ_ONLY); return CKR_ATTRIBUTE_READ_ONLY; } default: return template_validate_base_attribute( tmpl, attr, mode ); } OCK_LOG_ERR(ERR_ATTRIBUTE_TYPE_INVALID); return CKR_ATTRIBUTE_TYPE_INVALID; }
// dp_object_validate_attribute() // CK_RV dp_object_validate_attribute( TEMPLATE *tmpl, CK_ATTRIBUTE *attr, CK_ULONG mode) { switch (attr->type) { case CKA_KEY_TYPE: if (mode == MODE_CREATE) return CKR_OK; else{ TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_READ_ONLY)); return CKR_ATTRIBUTE_READ_ONLY; } case CKA_LOCAL: if (mode == MODE_CREATE || mode == MODE_KEYGEN) { TRACE_ERROR("%s\n", ock_err(ERR_ATTRIBUTE_TYPE_INVALID)); return CKR_ATTRIBUTE_TYPE_INVALID; } return CKR_OK; default: return template_validate_base_attribute( tmpl, attr, mode ); } }