Beispiel #1
0
// 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));
	}
}
Beispiel #2
0
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));
	}
}
Beispiel #3
0
// 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;
}
Beispiel #4
0
// 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 );
   }
}