#include <iostream>
#include <string>

#include "files.h"
#include "filters.h"

#include "osrng.h"
#include "oids.h"

#include "eccrypto.h"
#include "ecp.h"
#include "base64.h"
#include "base32.h"

using namespace CryptoPP;
using namespace std;

int main(int argc, char *argv[])
{
  AutoSeededRandomPool rng;
  
  //string privstring = "MCwCAQAwEAYHKoZIzj0CAQYFK4EEAAYEFTATAgEBBA4neYEMYYviHk/2zs0Bmg==";
  string privstring = argv[1];
  StringSource privsource(privstring, true, new Base64Decoder);
  ECDSA<ECP>::Signer priv(privsource);

  //string m = "This is the message to be signed";
  string m = argv[2];

  string signature;
  StringSource s(m, true, new SignerFilter(rng, priv, new Base32Encoder(new StringSink(signature))));

  cout << signature << endl;

  return 0;
}

