37 #include <gtest/gtest.h> 41 #include "std_msgs/String.h" 50 "Version: GnuPG v1\n\n" 51 "lQEVBFn3acoBCACwhq4iofk2V3/4yQy9++pHa3D4SPJdt1G/h83D+t9m95FoTHZl" 52 "zIY5bjKAKQ+NI6u5eQKNndAA7QLg8UGML6VqO7wmlxYSMOqRc4i0QMuUTA87hK4u" 53 "ozcHnjwaRhQzapwhnAMUu4058DIUyTus7ugD81C6y0nNT2PPwQzKifMmMcIgBvKm" 54 "vio7IK1A2tOsyQJD3jo99ZQhxq/eOQIwCs/BZfxu0OWnSJkx98Rsf7w3GC8tqhWK" 55 "avt/rBaFVoS3eZMkgQfT/ep92dYSLi/3/1pMtAt3kEVw3ZrvrCi47KDhpuaIV0kI" 56 "WlfHJF/YBNFbe4rRNwmQ5PkZYW1IwR14A+QFABEBAAH+B2UCR05VAbQqRm9vMDAg" 57 "KEEgR1BHIGtleSBmb3IgdGVzdCBjYXNlcykgPGJhckBiYXo+iQE4BBMBAgAiBQJZ" 58 "92nKAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCvPh8IgO8IzWTJB/9d" 59 "PO8BrpXtm/tosaGJFHT8FDt4PerCoKD6SqKj6HDrSU8tgUh+qLd+S1SkZ9Zg+yLq" 60 "ccCTeUg40XEvcKeTob8hWbTMKdl1cijM1jJCAUTe9zZd7URHoEkNWdEgA/saCZUj" 61 "TDeImYNcvv93SisKldf4gd67vkBETB4kEY7v7EE2YTge12S1vd9/9Ra6ZQn/qJSh" 62 "aPfZ5RfL1FEexQW+h2+bfpxW+ej/s2uM05AdEMmmGDaSVpimpPDkfF2YX4ESM7cl" 63 "fQzn1sCyVeHQWYvvEFTChdPlIR+gMZUhW+KicEqKsCDleh/jnSG/OoVZQkzec6Kt" 64 "zls7NO+fqIqFDLrNBWMTnQOXBFn3acoBCAClwRyFmeIkocrnodiqViqoGaBPOrwh" 65 "2NTaPvoiinwYwqUb9TynsrosEZTfjxfzDBawFG/nuBB7y0LhQYJKIEW6dKBT3HRe" 66 "hdhzfhZEaGGLwWxCqq5yywDt0JWrT92BX8hzwxKquRs3fynFGuW9YG5pdQ/wC3Na" 67 "j4uXg5Qy5wJZ0tqi/AiMIZTZGXBc/nP7rP7sryu3BYAXSPndx1mZYbSU1K5vBL3f" 68 "FkDAkon++cvF1+5D9Aoy1ukVmYn5fEhB4GoZwJEYCtgYofY5Fwbb7NsGHqrLBUgv" 69 "PwD5khZQ092rXEYPqkYrJ7vRX3/LdO4gmJupD1e1U2sRBOgzD/Pfw15FABEBAAEA" 70 "B/jMvmgLEV+bbnffNZpszcocE8Rjbw1mT/7Vl2bxCsmUr73uIFSTQxXRIMoZlRmO" 71 "dLWRrleo/3tc/UT0+fZoRJFrTjK88j5ag933PR2Zm1X/S9DgT7wQSOrc13Ts0mUD" 72 "aff4lMTr5J5kmZLGHx4beazpCM0Y0tM40TPVu10bg1srJUyCJgmqPJD0sbBfCBcT" 73 "jY99eWdT7tMr60G1Xw487RMXr/5eT7V2jcTe6JRivzQwvcsx1TuPWJajXY/l8BUJ" 74 "C7DitQP9x5DrA3s7qDxVbqiD0xrzCFc5FuOpcG2yV7LCuvT1144a1teCBh/gIoxh" 75 "EAnethtCVlmEufH74guq9ikEAMiZTkgsMNNHGtl7zNDc5ZEW22ESbrq81sbW9Z2p" 76 "CEvFU2HUsUQRkun6BcGpewTD+IOv2nSLlZQHEue4Ny9k7d4dWSew1ab3FMk9klpX" 77 "C7SEPYYDnZ8Ar+3nFozxKI3D1BvR374jSf2akMuIITteCnMXhvMLLFsk1Dz5zuWX" 78 "ARGfBADTiDyw387tZoR0Mhsiw1FwDJRISNYnC5YxWWzpDPfrZ3HZD44PqdwcxgBd" 79 "Uvtr8BtWHxs3skzn3oeNFT0yhVJi2Bn0QvGMIuGWBnhUvASv/rM3Zt22G5dCUVyz" 80 "RVGr1yx2xSZnVOeXQRSfp9yevAixcC8ATa8GUx9K8OSP/0NtmwP/Z5nW5s0WoG1H" 81 "Yna4s5bhNJ1y6Jue7bhw0gKXhx/9RNilTmq7NU6vTc1vqj0nw5e45WpojqZvSt0f" 82 "+bEL5eW+YnFb0MLJ9gIey4QZbOJeHB1xOaqz54Fnf8t9MmV/efLKvTHdj/WFM3fL" 83 "Z2iesAjK4hCyB2raeD9SOCP2ofztcmpIGYkBHwQYAQIACQUCWfdpygIbDAAKCRCv" 84 "Ph8IgO8Izd2IB/sFNTx/3l4mX9NUvyTpEhXKseti7JncjxZblUTV5MJ154nrfb2w" 85 "Xc81OmPmEDtE0PxTjYVasBD3lZNyLglw9kPpS5qZXU8kO4D6kNjRhdgKd/GqNHSo" 86 "U1LqutU/nbJc5H3AtGMLhg4Afa9xsYIRcszgtyWBbYCJ1MhkBaROAY42VzOyOi6z" 87 "pHOsnQH3xGlOdBYLeIvStCVP4XmHw/Mcx7LVnIfx48MFxVDw1iDiZej0K3cO24Ne" 88 "dSCgzJUVZQ5K4fTSu2xq1jD5zgWZ/Iu8PvAl5skKzgB2HpDVxIMVAELvxaMgKh3S" 89 "LYxADpgShsNtJiU/Dbn8jA+BlK/77fGnkvnc" 91 "-----END PGP PRIVATE KEY BLOCK-----";
96 gpgme_data_t key_data;
100 FAIL() <<
"gpgme_data_new_from_mem returned " << gpgme_strerror(err);
102 err = gpgme_op_import(ctx, key_data);
104 gpgme_data_release(key_data);
106 FAIL() <<
"gpgme_op_import returned " << gpgme_strerror(err);
108 gpgme_import_result_t res = gpgme_op_import_result(ctx);
109 EXPECT_TRUE(res->imports);
110 gpgme_data_release(key_data);
113 TEST(AesCbcEncryptor, EncryptAndDecryptBag) {
117 gpgme_error_t err = gpgme_new(&ctx);
119 FAIL() <<
"Failed to create a GPG context: " << gpgme_strerror(err);
130 FAIL() <<
"Failed to get the imported GPG key: " << e.what();
134 char temp_dir_templ[] =
"/tmp/bagXXXXXX";
135 char *temp_dir = mkdtemp(temp_dir_templ);
136 std::string bag_file_name = std::string(temp_dir) +
"/foo.bag";
139 std_msgs::String msg;
147 EXPECT_EQ(view.
size(), 1u);
149 EXPECT_EQ(
MESSAGE, view.
begin()->instantiate<std_msgs::String>()->data);
153 boost::filesystem::remove(bag_file_name);
155 gpgme_op_delete(ctx, key, 1);
160 int main(
int argc,
char **argv) {
161 testing::InitGoogleTest(&argc, argv);
162 return RUN_ALL_TESTS();
void open(std::string const &filename, uint32_t mode=bagmode::Read)
Open a bag file.
const Time TIME_MIN(0, 1)
Base class for rosbag exceptions.
void close()
Close the bag file.
TEST(AesCbcEncryptor, EncryptAndDecryptBag)
const char * GPG_PRIVATE_SUBKEY
void initGpgme()
Initialize GPGME library.
const char * GPG_KEY_USER
iterator begin()
Simply copy the merge_queue state into the iterator.
int main(int argc, char **argv)
void setEncryptorPlugin(const std::string &plugin_name, const std::string &plugin_param=std::string())
Set encryptor of the bag file.
void getGpgKey(gpgme_ctx_t &ctx, std::string const &user, gpgme_key_t &key)
Get GPG key.
void write(std::string const &topic, ros::MessageEvent< T > const &event)
Write a message into the bag file.
void importGpgKey(gpgme_ctx_t &ctx)