123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #include "socketio.hpp"
- #include "crypt/BigInt64.hpp"
- #include <xoshiro.hpp>
- #include <iostream>
- #include <chrono>
- unsigned long long nanoTime(){
- using namespace std;
- using namespace std::chrono;
- return duration_cast<nanoseconds>(high_resolution_clock::now().time_since_epoch()).count();
- }
- template<typename T>
- std::ostream& operator<<(std::ostream& out, std::vector<T> 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<< <char>(std::ostream& out, std::vector<char> 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 << "\033[1;31mbold red text\n";
- std::cout << "Modlänge" << (mod.end() - mod.begin()) << "\n";
- 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<char> 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<char>(1,1));
- //std::vector<char> vec = sock.receive();
- //std::cout << (vec == toSend);
- //std::cout << vec << std::endl;
- //vec = sock.receive();
- //std::cout << vec << std::endl;
- return 0;
- }*/
|