#include <ckm/ckm-manager-async.h>
#include <ckmc/ckmc-type.h>
#include <ckmc/ckmc-error.h>
+#include <ckmc/ckmc-manager.h>
#include <tests_common.h>
#include <sys/types.h>
return size;
}
-// scoped free
-typedef std::unique_ptr<char, void (*)(void *)> CharPtr;
-
std::string getLabel();
// returns process owner id
std::string getOwnerIdFromSelf();
ckmc_raw_buffer_s prepare_message_buffer(const char * input);
void check_alias_list(const CKM::AliasVector& expected);
-void check_alias_info_list_helper(const CKM::AliasPwdVector& expected, const CKM::AliasPwdVector& actual,
+
+struct PasswordInfo {
+ PasswordInfo(const CKM::Alias &alias, bool passwordProtected) : alias(alias), passwordProtected(passwordProtected) {}
+
+ CKM::Alias alias;
+ bool passwordProtected;
+};
+typedef std::vector<PasswordInfo> PasswordInfoVector;
+
+void check_alias_info_list_helper(const PasswordInfoVector& expected,
+ const std::unordered_map<std::string, bool>& actual,
const std::string &userSmackLabel = {});
-void check_alias_info_list(const CKM::AliasPwdVector& expected);
+void check_alias_info_list(const PasswordInfoVector& expected);
typedef enum {
ALIAS_KEY,
typedef std::shared_ptr<ckmc_raw_buffer_s> RawBufferPtr;
typedef std::shared_ptr<struct __ckmc_param_list> ParamListPtr;
+typedef std::shared_ptr<struct __ckmc_cipher_ctx> CipherCtxPtr;
ParamListPtr createParamListPtr();
+void setParam(ParamListPtr& params, ckmc_param_name_e name, ckmc_raw_buffer_s* buffer);
+void setParam(ParamListPtr& params, ckmc_param_name_e name, uint64_t integer);
-void assert_buffers_equal(const ckmc_raw_buffer_s b1, const ckmc_raw_buffer_s b2, bool equal=true);
+void assert_buffers_equal(const ckmc_raw_buffer_s* b1, const ckmc_raw_buffer_s* b2, bool equal=true);
RawBufferPtr create_raw_buffer(ckmc_raw_buffer_s* buffer);
+CipherCtxPtr create_cipher_ctx(ckmc_cipher_ctx_h ctx);
+
template <typename F, typename... Args>
void test_no_observer(F&& func, Args... args)
RUNNER_ASSERT_MSG(false, "Unexpected exception");
}
}
+
+class AliasRemover
+{
+public:
+ AliasRemover(const char* alias) : alias(alias) {}
+ ~AliasRemover() {
+ ckmc_remove_alias(alias);
+ }
+
+ AliasRemover(AliasRemover&& other) {
+ alias = other.alias;
+ other.alias = nullptr;
+ }
+
+ AliasRemover& operator=(AliasRemover&& other) {
+ if (&other == this)
+ return *this;
+
+ alias = other.alias;
+ other.alias = nullptr;
+ }
+
+private:
+ const char* alias;
+};
+
+void require_default_user(char *argv[]);