#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