Browse Source

started programming a mix

master
nkls 9 months ago
parent
commit
04a3ca5c47
7 changed files with 90 additions and 1 deletions
  1. +0
    -1
      .~lock.slides.odp#
  2. BIN
      linuxmint-19-cinnamon-32bit.iso.torrent
  3. BIN
      src/.mix.cpp.swp
  4. BIN
      src/keys.gpg
  5. BIN
      src/mix
  6. +3
    -0
      src/mix.conf
  7. +87
    -0
      src/mix.cpp

+ 0
- 1
.~lock.slides.odp# View File

@ -1 +0,0 @@
,nkls,peppi,17.08.2021 16:34,file:///home/nkls/.config/libreoffice/4;

BIN
linuxmint-19-cinnamon-32bit.iso.torrent View File


BIN
src/.mix.cpp.swp View File


BIN
src/keys.gpg View File


BIN
src/mix View File


+ 3
- 0
src/mix.conf View File

@ -0,0 +1,3 @@
name = mix1
id = 1

+ 87
- 0
src/mix.cpp View File

@ -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…
Cancel
Save