| #include "AuthSecret.h" |
| |
| namespace android { |
| namespace hardware { |
| namespace authsecret { |
| namespace V1_0 { |
| namespace implementation { |
| |
| // Methods from ::android::hardware::authsecret::V1_0::IAuthSecret follow. |
| Return<void> AuthSecret::primaryUserCredential(const hidl_vec<uint8_t>& secret) { |
| (void)secret; |
| |
| // To create a dependency on the credential, it is recommended to derive a |
| // different value from the provided secret for each purpose e.g. |
| // |
| // purpose1_secret = hash( "purpose1" || secret ) |
| // purpose2_secret = hash( "purpose2" || secret ) |
| // |
| // The derived values can then be used as cryptographic keys or stored |
| // securely for comparison in a future call. |
| // |
| // For example, a security module might require that the credential has been |
| // entered before it applies any updates. This can be achieved by storing a |
| // derived value in the module and only applying updates when the same |
| // derived value is presented again. |
| // |
| // This implementation does nothing. |
| |
| return Void(); |
| } |
| |
| // Note: on factory reset, clear all dependency on the secret. |
| // |
| // With the example of updating a security module, the stored value must be |
| // cleared so that the new primary user enrolled as the approver of updates. |
| // |
| // This implementation does nothing as there is no dependence on the secret. |
| |
| } // namespace implementation |
| } // namespace V1_0 |
| } // namespace authsecret |
| } // namespace hardware |
| } // namespace android |