use KeyStoreInterface as  clean way for people to implement their own KeyStore