Return CKR_ATTRIBUTE_TYPE_INVALID instead of CKR_FUNCTION_FAILED on unsupported attributes.

This result works better with Java IaikPkcs11 wrapper, and possibly others.
This commit is contained in:
Mikhail Denisenko
2015-12-03 18:04:44 -05:00
parent bfda53303c
commit 8297815622
+15 -15
View File
@@ -493,15 +493,15 @@ CK_RV get_coa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
case CKA_ISSUER: case CKA_ISSUER:
DBG("ISSUER TODO"); // Default empty DBG("ISSUER TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_SERIAL_NUMBER: case CKA_SERIAL_NUMBER:
DBG("SERIAL NUMBER TODO"); // Default empty DBG("SERIAL NUMBER TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_SUBJECT: case CKA_SUBJECT:
DBG("SUBJECT TODO"); // Required DBG("SUBJECT TODO"); // Required
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_ID: case CKA_ID:
DBG("ID"); DBG("ID");
@@ -512,11 +512,11 @@ CK_RV get_coa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
case CKA_START_DATE: case CKA_START_DATE:
DBG("START DATE TODO"); // Default empty DBG("START DATE TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_END_DATE: case CKA_END_DATE:
DBG("END DATE TODO"); // Default empty DBG("END DATE TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_MODIFIABLE: case CKA_MODIFIABLE:
DBG("MODIFIABLE"); DBG("MODIFIABLE");
@@ -596,7 +596,7 @@ CK_RV get_proa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
case CKA_SUBJECT: case CKA_SUBJECT:
DBG("SUBJECT TODO"); // Default empty DBG("SUBJECT TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_ID: case CKA_ID:
DBG("ID"); DBG("ID");
@@ -607,7 +607,7 @@ CK_RV get_proa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
case CKA_SENSITIVE: case CKA_SENSITIVE:
DBG("SENSITIVE TODO"); // Default empty DBG("SENSITIVE TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_DECRYPT: case CKA_DECRYPT:
DBG("DECRYPT"); // Default empy DBG("DECRYPT"); // Default empy
@@ -632,7 +632,7 @@ CK_RV get_proa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
case CKA_SIGN_RECOVER: case CKA_SIGN_RECOVER:
DBG("SIGN RECOVER TODO"); // Default empty DBG("SIGN RECOVER TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_DERIVE: case CKA_DERIVE:
DBG("DERIVE"); // Default false DBG("DERIVE"); // Default false
@@ -643,11 +643,11 @@ CK_RV get_proa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
case CKA_START_DATE: case CKA_START_DATE:
DBG("START DATE TODO"); // Default empty DBG("START DATE TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_END_DATE: case CKA_END_DATE:
DBG("END DATE TODO"); // Default empty DBG("END DATE TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_MODULUS: case CKA_MODULUS:
DBG("MODULUS"); DBG("MODULUS");
@@ -747,7 +747,7 @@ CK_RV get_proa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
/* case CKA_EXTRACTABLE: */ /* case CKA_EXTRACTABLE: */
case CKA_LOCAL: case CKA_LOCAL:
DBG("LOCAL TODO"); // Required DBG("LOCAL TODO"); // Required
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
/* case CKA_NEVER_EXTRACTABLE: */ /* case CKA_NEVER_EXTRACTABLE: */
/*case CKA_ALWAYS_SENSITIVE:*/ /*case CKA_ALWAYS_SENSITIVE:*/
@@ -838,7 +838,7 @@ CK_RV get_puoa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
case CKA_SUBJECT: case CKA_SUBJECT:
DBG("SUBJECT TODO"); // Default empty DBG("SUBJECT TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_ID: case CKA_ID:
DBG("ID"); DBG("ID");
@@ -877,11 +877,11 @@ CK_RV get_puoa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
case CKA_START_DATE: case CKA_START_DATE:
DBG("START DATE TODO"); // Default empty DBG("START DATE TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_END_DATE: case CKA_END_DATE:
DBG("END DATE TODO"); // Default empty DBG("END DATE TODO"); // Default empty
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_EC_POINT: case CKA_EC_POINT:
DBG("EC_POINT"); DBG("EC_POINT");
@@ -969,7 +969,7 @@ CK_RV get_puoa(CK_OBJECT_HANDLE obj, CK_ATTRIBUTE_PTR template) {
case CKA_LOCAL: case CKA_LOCAL:
DBG("LOCAL TODO"); // Required DBG("LOCAL TODO"); // Required
return CKR_FUNCTION_FAILED; return CKR_ATTRIBUTE_TYPE_INVALID;
case CKA_MODIFIABLE: case CKA_MODIFIABLE:
DBG("MODIFIABLE"); DBG("MODIFIABLE");