oem-ibm: Access key update support

An “Update Access Key” (UAK) is checked when applying system
firmware updates. Entitled updates are applied if the embedded
expiration date of the UAK is later than the firmware release date.

Host provides us the Firmware User Access Key (FW UAK) Date to BMC in
the genesis boot as it will have license information and only Host
has the knowledge of it. Also the BMC can use this value even when
host is not running.

The commit implements the support for access key
update in PLDM. The host sends a setFruRecordTable command with
the value to be updated.
PLDM uses the WriteKeyword method [1] since that will update both the
D-Bus cache and the VPD backplane.

[1] https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/com/ibm/VPD/Manager.interface.yaml

Signed-off-by: Pavithra Barithaya <pavithra.b@ibm.com>
Change-Id: Ib089787db3a3c42eedb833852dc48b8fa87be7e4
diff --git a/oem/ibm/libpldmresponder/fru_oem_ibm.hpp b/oem/ibm/libpldmresponder/fru_oem_ibm.hpp
index 1fa7bda..4323c3f 100644
--- a/oem/ibm/libpldmresponder/fru_oem_ibm.hpp
+++ b/oem/ibm/libpldmresponder/fru_oem_ibm.hpp
@@ -91,6 +91,12 @@
     void dbus_map_update(const std::string& adapterObjectPath,
                          const std::string& propertyName,
                          const std::string& propValue);
+
+    /** @brief setting firmware UAK (Update Access Key)
+     *
+     *  @param[in] data - value to be set
+     */
+    void setFirmwareUAK(const std::vector<uint8_t>& data);
 };
 
 } // namespace oem_ibm_fru