| 1a27b197 | 21-Oct-2020 |
Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com> |
ta: pkcs11: Add TEE Identity based authentication support
In C_InitToken() if PIN is NULL_PTR then it will activate TEE Identity based authentication support for token.
Once activated:
- When ever
ta: pkcs11: Add TEE Identity based authentication support
In C_InitToken() if PIN is NULL_PTR then it will activate TEE Identity based authentication support for token.
Once activated:
- When ever PIN is required client's TEE Identity will be used for authentication - PIN failure counters are disabled - If new PIN is given as input it is in form of PIN ACL string - It can be disabled with C_InitToken with non-zero PIN
Internally protected authentication path will be used for mode determination.
Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| 1e497011 | 21-Oct-2020 |
Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com> |
ta: pkcs11: set_pin: use token shortcut like in other pin functions
Use common shortcut variable 'token' as in check_so_pin and check_user_pin.
Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Re
ta: pkcs11: set_pin: use token shortcut like in other pin functions
Use common shortcut variable 'token' as in check_so_pin and check_user_pin.
Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| 12253e9e | 21-Oct-2020 |
Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com> |
ta: pkcs11: entry_ck_token_initialize: reset SO flags on init
If successful token init has been performed and new PIN is set then reset all pin change flags.
Call update_persistent_db() only once a
ta: pkcs11: entry_ck_token_initialize: reset SO flags on init
If successful token init has been performed and new PIN is set then reset all pin change flags.
Call update_persistent_db() only once as a last step during the execution.
Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| 974adb9f | 14-Dec-2020 |
Robin van der Gracht <robin@protonic.nl> |
pkcs11: persistent_token: Don't read token object UUIDs if we have none
Do not call TEE_ReadObjectData() when there is no object data to read because the function panics when reading 0 bytes.
Revie
pkcs11: persistent_token: Don't read token object UUIDs if we have none
Do not call TEE_ReadObjectData() when there is no object data to read because the function panics when reading 0 bytes.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Robin van der Gracht <robin@protonic.nl>
show more ...
|
| a3c511df | 07-Jan-2021 |
Robin van der Gracht <robin@protonic.nl> |
ta: pkcs11: Change sizeof argument for consistency
The bytes subtracted here were added a few lines ago. Since *db_objs was used there we should also do this here for readability.
Reviewed-by: Etie
ta: pkcs11: Change sizeof argument for consistency
The bytes subtracted here were added a few lines ago. Since *db_objs was used there we should also do this here for readability.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Robin van der Gracht <robin@protonic.nl>
show more ...
|
| fab91492 | 29-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Add more checks before destroying object in a session
Few checks were missing in the implementaion of C_DestroyObject() as per PKCS#11 Specification. These have been added now. These che
ta: pkcs11: Add more checks before destroying object in a session
Few checks were missing in the implementaion of C_DestroyObject() as per PKCS#11 Specification. These have been added now. These checks are - only session objects can be destroyed during a read only session - only public objects can be destroyed unless the normal user is logged in - Certain objects may not be destroyed. Calling C_DestroyObject on such objects will result in the CKR_ACTION_PROHIBITED error code. An application can consult the object's CKA_DESTROYABLE attribute to determine if an object may be destroyed or not.
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 08774c86 | 31-Dec-2020 |
Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com> |
ta: pkcs11: Fix return value when trying to open parallel session
It is mandatory to have CKF_SERIAL_SESSION set when invoking C_OpenSession(). When omitted CKR_SESSION_PARALLEL_NOT_SUPPORTED must b
ta: pkcs11: Fix return value when trying to open parallel session
It is mandatory to have CKF_SERIAL_SESSION set when invoking C_OpenSession(). When omitted CKR_SESSION_PARALLEL_NOT_SUPPORTED must be returned.
Specified in: PKCS #11 Cryptographic Token Interface Base Specification Version 2.40 Plus Errata 01 5.6 Session management functions C_OpenSession
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| b68aca61 | 24-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Check for CKA_PRIVATE when creating objects
PKCS#11 Specification[1] states that Private session/token objects cannot be created in Public sessions. So, add a check for access type when
ta: pkcs11: Check for CKA_PRIVATE when creating objects
PKCS#11 Specification[1] states that Private session/token objects cannot be created in Public sessions. So, add a check for access type when creating objects.
[1] PKCS #11 Cryptographic Token Interface Usage Guide Version 2.40 (Table 3 - ACCESS TO DIFFERENT TYPES OBJECTS BY DIFFERENT TYPES OF SESSIONS)
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| 12f1ba86 | 24-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Fix error returned
When trying to access an object of type CKA_PRIVATE without logging in, the error returned should be PKCS11_CKR_USER_NOT_LOGGED_IN.
Signed-off-by: Ruchika Gupta <ruch
ta: pkcs11: Fix error returned
When trying to access an object of type CKA_PRIVATE without logging in, the error returned should be PKCS11_CKR_USER_NOT_LOGGED_IN.
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| 90c47fe2 | 22-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Use get_attribute_ptr() instead of get_attribute()
When just trying to determine if an attribute is present in the list or not withour requiring the actual value of the attribute, using
ta: pkcs11: Use get_attribute_ptr() instead of get_attribute()
When just trying to determine if an attribute is present in the list or not withour requiring the actual value of the attribute, using get_attribute_ptr() is better to use as it is more light-weight than it's counterpart get_attribute().
Suggested-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com> Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| 4cfce748 | 21-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Add class_id in create_attributes_from_template()
Add a parameter to pass pkcs11_class_id. The parameter will be used when attributes need to be created for a template supporting public
ta: pkcs11: Add class_id in create_attributes_from_template()
Add a parameter to pass pkcs11_class_id. The parameter will be used when attributes need to be created for a template supporting public or private class key. It is unused for now.
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| dcad3409 | 18-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Add class and type hint in sanitize_client_object()
Specification allows one to pass templates while genrating key/keypair where class and type may be omitted from the template. In such
ta: pkcs11: Add class and type hint in sanitize_client_object()
Specification allows one to pass templates while genrating key/keypair where class and type may be omitted from the template. In such cases, pass class and type as hint in sanitize_client_object() so that they can be added in the attribute list being prepared.
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| 70c78a55 | 17-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Fix for CKA_KEY_GEN_MECHANISM in create_attributes_from_template()
CKA_KEY_GEN_MECHANISM attribute is not added in the attribute list (attrs) from the template (temp) when a key object i
ta: pkcs11: Fix for CKA_KEY_GEN_MECHANISM in create_attributes_from_template()
CKA_KEY_GEN_MECHANISM attribute is not added in the attribute list (attrs) from the template (temp) when a key object is created as it doesn't fall in mandatory/optional attribute. So, error checking for this attribute should be done on the original source template(temp) and not the attribute list(attrs) in create_attributes_from_template().
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| ff65c72a | 17-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Fix for CKA_LOCAL in create_attributes_from_template()
CKA_LOCAL attribute is not added in the attribute list (attrs) from the template (temp) when a key object is created as it doesn't
ta: pkcs11: Fix for CKA_LOCAL in create_attributes_from_template()
CKA_LOCAL attribute is not added in the attribute list (attrs) from the template (temp) when a key object is created as it doesn't fall in mandatory/optional attribute. So, error checking for this attribute should be done on the original source template(temp) and not the attribute list(attrs) in create_attributes_from_template().
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| fa247a2a | 10-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Add support for Key Generation
Adds support of mechanisms PKCS11_CKM_GENERIC_SECRET_KEY_GEN, PKCS11_CKM_AES_KEY_GEN for key generation API.
Co-developed-by: Etienne Carriere <etienne.ca
ta: pkcs11: Add support for Key Generation
Adds support of mechanisms PKCS11_CKM_GENERIC_SECRET_KEY_GEN, PKCS11_CKM_AES_KEY_GEN for key generation API.
Co-developed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Vesa Jääskeläinen <vesa.jaaskelainen@vaisala.com>
show more ...
|
| d1d44372 | 11-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Fix the error code returned
While generating a key of type PKCS11_CKO_SECRET_KEY, if CKA_VALUE_LEN field is not specified in the attribute template, the error returned needs to be PKCS11
ta: pkcs11: Fix the error code returned
While generating a key of type PKCS11_CKO_SECRET_KEY, if CKA_VALUE_LEN field is not specified in the attribute template, the error returned needs to be PKCS11_CKR_TEMPLATE_INCOMPLETE.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org>
show more ...
|
| 5440719d | 11-Dec-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Temporary workaround in sanitize_indirect_attr()
Since the type of key to be generated is implicit in the key generation mechanism, the template does not need to supply a key type or cla
ta: pkcs11: Temporary workaround in sanitize_indirect_attr()
Since the type of key to be generated is implicit in the key generation mechanism, the template does not need to supply a key type or class. (CKA_CLASS and CKA_KEY_TYPE attributes). sanitize_indirect_attr() expects these attributes to be available else gives an error.
The right way of handling this would be perhaps passing a hint of the class and key type to this function if key is being generated using key generated mechanisms. However, we don't have support for wrap/derive key which uses the indirect attributes at present in the code. So, we would not be able to test it. For now, just move the class checking afer the attribute checking which helps avoid this error.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org>
show more ...
|
| 16df60c7 | 10-Dec-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
ta: pkcs11: rename argument bp to attrs for generic attributes
Rename input argument bp/bp_count to attrs/attrs_count in several local functions in pkcs11_attributes.c since the reference cover any
ta: pkcs11: rename argument bp to attrs for generic attributes
Rename input argument bp/bp_count to attrs/attrs_count in several local functions in pkcs11_attributes.c since the reference cover any kind of attribute, not only boolean attributes (bp stood for boolean property).
Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| fde67b24 | 10-Dec-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
ta: pkcs11: fix initial value for return code
Fix initial value for enumerated variable of type enum pkcs11_rc.
Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere
ta: pkcs11: fix initial value for return code
Fix initial value for enumerated variable of type enum pkcs11_rc.
Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| a339a354 | 10-Dec-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
ta: pkcs11: fix ordering in switch case
Fix ordering switch/case block of get_key_min_max_sizes().
Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere <etienne.car
ta: pkcs11: fix ordering in switch case
Fix ordering switch/case block of get_key_min_max_sizes().
Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 49443fc0 | 10-Dec-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
ta: pkcs11: add missing header files
Add missing header files inclusion in few source files.
Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@
ta: pkcs11: add missing header files
Add missing header files inclusion in few source files.
Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 5d5f504f | 10-Dec-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
ta: pkcs11: remove empty tee_release_ctr_operation()
Remove function tee_release_ctr_operation() that is empty since the generic sequence already releases CTR operation extra context.
Reviewed-by:
ta: pkcs11: remove empty tee_release_ctr_operation()
Remove function tee_release_ctr_operation() that is empty since the generic sequence already releases CTR operation extra context.
Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 55e6965c | 10-Dec-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
ta: pkcs11: release active process on session closure
Release the possible active processing resources when closing a session.
Fixes: 512cbf1d30dd ("ta: pkcs11: adds support for symmetric AES ciphe
ta: pkcs11: release active process on session closure
Release the possible active processing resources when closing a session.
Fixes: 512cbf1d30dd ("ta: pkcs11: adds support for symmetric AES cipher modes") Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 002f6b93 | 10-Dec-2020 |
Etienne Carriere <etienne.carriere@linaro.org> |
ta: pkcs11: fix return code when parsing attribute templates
Fix return code that was not set in few error cases in create_attributes_from_template().
Fixes: 63f89caa9022 ("ta: pkcs11: attribute he
ta: pkcs11: fix return code when parsing attribute templates
Fix return code that was not set in few error cases in create_attributes_from_template().
Fixes: 63f89caa9022 ("ta: pkcs11: attribute helper functions") Reviewed-by: Ruchika Gupta <ruchika.gupta@linaro.org> Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| 2158ea6c | 30-Nov-2020 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ta: pkcs11: Add support for big key sizes for HMAC hash Mechanisms
Currently the support for maximum key size supported in HMAC hash functions is limited by the underlying Global TEE implementation.
ta: pkcs11: Add support for big key sizes for HMAC hash Mechanisms
Currently the support for maximum key size supported in HMAC hash functions is limited by the underlying Global TEE implementation. The RFC 2202 and 4231 specify some HMAC test vectors where key size is greater than the sizes as supported in current TEE implementation. For such key sizes, greater than the maximum key size supported by TEE, first hash the key and then use the resultant as the actual key to HMAC.
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|