Browse Source

Merge pull request #72 from acetoneRu/master

many bit corrections
pull/78/head
orignal 3 years ago committed by GitHub
parent
commit
644df5b4ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      README.md
  2. 2
      keygen.cpp
  3. 35
      vanitygen.cpp

21
README.md

@ -47,7 +47,7 @@ print iptables firewall rules to allow 1 nodes in netdb through firewall includi @@ -47,7 +47,7 @@ print iptables firewall rules to allow 1 nodes in netdb through firewall includi
### keygen
Generate an i2p private key
Generate an I2P private key
#### Usage
@ -76,6 +76,9 @@ or @@ -76,6 +76,9 @@ or
| EDDSA-SHA512-ED25519 | 7 |
| GOSTR3410_CRYPTO_PRO_A-GOSTR3411-256 | 9 |
| GOSTR3410_TC26_A_512-GOSTR3411-512 | 10 |
| RED25519-SHA512 | 11 |
For more information on the types of signatures, see the [documentation](https://i2pd.readthedocs.io/en/latest/user-guide/tunnels/#signature-types).
### vain
@ -88,17 +91,17 @@ Vanity generation address. @@ -88,17 +91,17 @@ Vanity generation address.
#### Time to Generate on a 2.70GHz Processor
| characters| time to generate (approx.) |
| -------------------- | --------------- |
| 1 | ~0.082s |
| 2 | ~0.075s |
| 3 | ~0.100s |
| 4 | ~0.394s |
| 5 | ~6.343s |
| 6 | ~1m-5m |
| 7 | ~30m |
| 1 | ~0.082s |
| 2 | ~0.075s |
| 3 | ~0.100s |
| 4 | ~0.394s |
| 5 | ~6.343s |
| 6 | ~1m-5m |
| 7 | ~30m |
### keyinfo
Prints information about an i2p private key
Prints information about an I2P private key
#### Usage

2
keygen.cpp

@ -17,6 +17,7 @@ int main (int argc, char * argv[]) @@ -17,6 +17,7 @@ int main (int argc, char * argv[])
if (argc > 2) {
std::string str(argv[2]);
type = NameToSigType(str);
if (SigTypeToName(type).find("unknown") != std::string::npos) { std::cerr << "Incorrect signature type" << std::endl; return -2; }
}
auto keys = i2p::data::PrivateKeys::CreateRandomKeys (type);
std::ofstream f (argv[1], std::ofstream::binary | std::ofstream::out);
@ -28,6 +29,7 @@ int main (int argc, char * argv[]) @@ -28,6 +29,7 @@ int main (int argc, char * argv[])
f.write ((char *)buf, len);
delete[] buf;
std::cout << "Destination " << keys.GetPublic ()->GetIdentHash ().ToBase32 () << " created" << std::endl;
std::cout << "Signature type: " << SigTypeToName(type) << " (" << type << ")" << std::endl;
}
else
std::cout << "Can't create file " << argv[1] << std::endl;

35
vanitygen.cpp

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
#include "vanity.hpp"
#include<regex>
#include<getopt.h>
#include <regex>
#include <mutex>
#include <getopt.h>
static struct
@ -10,8 +11,17 @@ static struct @@ -10,8 +11,17 @@ static struct
i2p::data::SigningKeyType signature;
std::string outputpath="";
std::regex regex;
bool sig_type = true;
} options;
void check_sig_type()
{
if (SigTypeToName(options.signature).find("unknown") != std::string::npos)
{
std::cerr << "Incorrect signature type" << std::endl;
options.sig_type = false;
}
}
static void inline CalculateW (const uint8_t block[64], uint32_t W[64])
{
@ -124,6 +134,7 @@ static inline bool NotThat(const char * a, const char *b) @@ -124,6 +134,7 @@ static inline bool NotThat(const char * a, const char *b)
return false;
}
std::mutex mtx;
static inline bool thread_find(uint8_t * buf, const char * prefix, int id_thread, unsigned long long throughput)
{
/**
@ -131,7 +142,9 @@ static inline bool thread_find(uint8_t * buf, const char * prefix, int id_thread @@ -131,7 +142,9 @@ static inline bool thread_find(uint8_t * buf, const char * prefix, int id_thread
* For idea and example ^-^
* Orignal is sensei of crypto ;)
*/
mtx.lock();
std::cout << "Thread " << id_thread << " binded" << std::endl;
mtx.unlock();
/*
union
{
@ -187,7 +200,7 @@ static inline bool thread_find(uint8_t * buf, const char * prefix, int id_thread @@ -187,7 +200,7 @@ static inline bool thread_find(uint8_t * buf, const char * prefix, int id_thread
// if(result)
{
ByteStreamToBase32 ((uint8_t*)hash, 32, addr, 52);
std::cout << "Address found " << addr << " in " << id_thread << std::endl;
std::cout << "Address found " << addr << std::endl;
found=true;
FoundNonce=*nonce;
// free(hash);
@ -210,13 +223,11 @@ static inline bool thread_find(uint8_t * buf, const char * prefix, int id_thread @@ -210,13 +223,11 @@ static inline bool thread_find(uint8_t * buf, const char * prefix, int id_thread
void usage(void){
const constexpr char * help="vain [text-pattern|regex-pattern] [options]\n"
"-h --help, help menu\n"
"-r --reg, regexp instead just text pattern (e.g. '(one|two).*')\n"
"--threads -t, (default count of system)\n"
"--signature -s, (signature type)\n"
"-o --output output file (default private.dat)\n"
"--usage usage\n"
// "--prefix -p\n"
"-h --help help menu\n"
"-r --reg regexp instead just text pattern (e.g. '(one|two).*')\n"
"-t --threads (default count of system)\n"
// "--signature -s, (signature type)\n" NOT IMPLEMENTED FUCKING PLAZ!
"-o --output output file (default private.dat)\n"
"";
puts(help);
}
@ -253,6 +264,7 @@ void parsing(int argc, char ** args){ @@ -253,6 +264,7 @@ void parsing(int argc, char ** args){
break;
case 's':
options.signature = NameToSigType(std::string(optarg));
check_sig_type();
break;
case 'o':
options.outputpath=optarg;
@ -302,6 +314,7 @@ int main (int argc, char * argv[]) @@ -302,6 +314,7 @@ int main (int argc, char * argv[])
///////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (!options.sig_type) return -2;
auto keys = i2p::data::PrivateKeys::CreateRandomKeys (options.signature);
switch(options.signature)
{
@ -311,7 +324,7 @@ int main (int argc, char * argv[]) @@ -311,7 +324,7 @@ int main (int argc, char * argv[])
case i2p::data::SIGNING_KEY_TYPE_RSA_SHA384_3072:
case i2p::data::SIGNING_KEY_TYPE_RSA_SHA512_4096:
case i2p::data::SIGNING_KEY_TYPE_GOSTR3410_TC26_A_512_GOSTR3411_512:
std::cout << "Sorry, i don't can generate address for this signature type" << std::endl;
std::cout << "Sorry, I don't can generate address for this signature type" << std::endl;
return 0;
break;
}

Loading…
Cancel
Save