#include "socketio.hpp" #include "crypt/BigInt64.hpp" #include #include #include unsigned long long nanoTime(){ using namespace std; using namespace std::chrono; return duration_cast(high_resolution_clock::now().time_since_epoch()).count(); } template std::ostream& operator<<(std::ostream& out, std::vector o){ out << "["; for(unsigned int i = 0;i < o.size();i++){ if(o[i] == '\r')continue; out << o[i]; if(i < o.size() - 1) out << ", "; } return out << "]"; } template<> std::ostream& operator<< (std::ostream& out, std::vector o){ for(unsigned int i = 0;i < o.size();i++){ out << o[i]; } return out; } int main(){ xoshiro_256 gen(42); BigInt a(364598273448762ULL); BigInt b(gen, 31); BigInt mod("25517712857249265246309662191040714920292930135958602873503082695880945015180270627160886016284304866241119009429935511497986916016509065559298646199688497746399172174316028774533924795864096565081478741603241830675436336762053778667047857025632695617746551090247164369324008907433218665135569658200641651876344533506145721941113011977317356006176781796659698883765657005845351846184505291996942442336931455986790727248315517902731173678888064950798931396279140373592203530274617983159864665935475637811846793653407441533829095478201308785445059955697867933027578011378694502392722655274554801068451419037021634697683"); std::cout << "(" << a.toString() << " ^ " << std::flush; a = a.modPow(b, mod); std::cout << "" << b.toString() << ")"; std::cout << " mod " << mod.toString() << "\n"; std::cout << " = " << a.toString() << "\n"; } /*int mian(){ cppsocket sock("192.168.178.79", 80); //cppsocket sock("127.0.0.1", 80); std::vector toSend(10); toSend[i] = (char)(i * i) % 10 + 'a'; for(unsigned int i = 0;i < toSend.size();i++){ } //std::cout << errno << std::endl; try{ for(int i = 0;i < 100;i++){ sock.write(toSend); std::cout << "Rec" << std::endl; std::cout << sock.receive() << std::endl; //std::this_thread::sleep_for(std::chrono::milliseconds(1)); } } catch(std::exception& e){ std::cout << e.what() << std::endl; } //std::cout << "Sent " << std::to_string(toSend.size()) << ", Receiving..." << std::endl; //sock.write(std::vector(1,1)); //std::vector vec = sock.receive(); //std::cout << (vec == toSend); //std::cout << vec << std::endl; //vec = sock.receive(); //std::cout << vec << std::endl; return 0; }*/