parent
411cf65b24
commit
04a3ca5c47
@ -1 +0,0 @@
|
||||
,nkls,peppi,17.08.2021 16:34,file:///home/nkls/.config/libreoffice/4;
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,3 @@
|
||||
name = mix1
|
||||
id = 1
|
||||
|
@ -0,0 +1,87 @@
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
#include <cstring>
|
||||
#include <fstream>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/pem.h>
|
||||
#include <openssl/err.h>
|
||||
#include <exception>
|
||||
#include <gpgme.h>
|
||||
#include <boost/program_options.hpp>
|
||||
|
||||
namespace po=boost::program_options;
|
||||
|
||||
class mix
|
||||
{
|
||||
public:
|
||||
int id;
|
||||
std::string name;
|
||||
char *privkey;
|
||||
char *pubkey;
|
||||
gpgme_data_t keydata;
|
||||
gpgme_ctx_t context;
|
||||
gpgme_error_t error;
|
||||
gpgme_key_t key;
|
||||
void init()
|
||||
{
|
||||
std::cout << "Mix starting..." << std::endl;
|
||||
if(std::ifstream("mix.conf"))
|
||||
{
|
||||
std::cout << "Config file existing" << std::endl;
|
||||
this->read_settings();
|
||||
std::cout << "name = " << name << std::endl;
|
||||
std::cout << "id = " << id << std::endl;
|
||||
read_keys();
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Config file does not exist. Exiting." << std::endl;
|
||||
std::exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
void read_settings()
|
||||
|
||||
{
|
||||
po::options_description desc("Options");
|
||||
desc.add_options() ("name", po::value<std::string>(&name), "name");
|
||||
desc.add_options() ("id", po::value<int>(&id), "id");
|
||||
po::variables_map vm;
|
||||
std::ifstream settings_file("mix.conf");
|
||||
vm = po::variables_map();
|
||||
po::store(po::parse_config_file(settings_file , desc), vm);
|
||||
po::notify(vm);
|
||||
}
|
||||
|
||||
void read_keys()
|
||||
{
|
||||
gpgme_data_new_from_file(&keydata, "keys.gpg", 1);
|
||||
gpgme_check_version(NULL);
|
||||
gpgme_new(&context);
|
||||
gpgme_op_import(context, keydata);
|
||||
gpgme_op_keylist_start (context, "mix", 0);
|
||||
while(!error)
|
||||
{
|
||||
error = gpgme_op_keylist_next (context, &key);
|
||||
if (error){break;}
|
||||
std::cout << key->subkeys->keyid << std::endl;
|
||||
if (key->uids && key->uids->name)
|
||||
{
|
||||
std::cout << key->uids->name << std::endl;
|
||||
}
|
||||
if (key->uids && key->uids->email)
|
||||
{
|
||||
std::cout << key->uids->email << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
mix mix1;
|
||||
mix1.init();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in new issue