diff --git a/meta-phosphor/classes/obmc-phosphor-utils.bbclass b/meta-phosphor/classes/obmc-phosphor-utils.bbclass
index 713c892..baaa19d 100644
--- a/meta-phosphor/classes/obmc-phosphor-utils.bbclass
+++ b/meta-phosphor/classes/obmc-phosphor-utils.bbclass
@@ -42,3 +42,11 @@
     lists = [listvar_to_list(d, x) for x in listvars]
     lst = [fmt.format(*x) for x in zip(*lists)]
     return (kw.get('sep') or ' ').join(lst)
+
+
+def append_suffix(val, suffix):
+    words = val.split(' ')
+    newval = []
+    for w in words:
+        newval.append(w + suffix)
+    return ' '.join(newval)
\ No newline at end of file
diff --git a/meta-phosphor/classes/phosphor-ipmi-host-whitelist.bbclass b/meta-phosphor/classes/phosphor-ipmi-host-whitelist.bbclass
new file mode 100644
index 0000000..7db71d5
--- /dev/null
+++ b/meta-phosphor/classes/phosphor-ipmi-host-whitelist.bbclass
@@ -0,0 +1,27 @@
+# Common code for recipes that implement Phosphor IPMI Whitelist
+# packages
+
+WHITELIST ?= "${PN}.conf"
+INSTALLDIR = "${sysconfdir}/phosphor-ipmi-host/"
+
+python phosphor_ipmi_host_whitelist_postinstall() {
+    def install_whitelist(d):
+        # Create the install directory if needed
+        whitelist_file = d.getVar('WHITELIST', True)
+        install_dir = d.getVar('INSTALLDIR', True)
+        if not os.path.exists(install_dir):
+            os.makedirs(install_dir)
+        install_file = os.path.join(install_dir, whitelist_file)
+
+        # Search for conf file in FILESPATH
+        searchpaths = d.getVar('FILESPATH', True)
+        path = bb.utils.which(searchpaths, whitelist_file)
+        if not os.path.isfile(path):
+            bb.fatal('Did not find conf file "%s"' % whitelist_file)
+
+        # Copy the conf file into install directory
+        bb.utils.copyfile(path, install_file)
+
+    install_whitelist(d)
+}
+do_install[postfuncs] += "phosphor_ipmi_host_whitelist_postinstall"
\ No newline at end of file
