{"id":13775708,"url":"https://github.com/yawning/obfsclient","last_synced_at":"2025-05-11T08:33:05.746Z","repository":{"id":13773338,"uuid":"16468322","full_name":"Yawning/obfsclient","owner":"Yawning","description":"A C++11 obfs2/3 Tor managed pluggable transport client","archived":true,"fork":false,"pushed_at":"2018-11-16T12:05:20.000Z","size":1075,"stargazers_count":30,"open_issues_count":9,"forks_count":13,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-17T10:40:14.254Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yawning.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-03T02:31:52.000Z","updated_at":"2024-08-27T16:15:33.000Z","dependencies_parsed_at":"2022-09-12T14:26:03.175Z","dependency_job_id":null,"html_url":"https://github.com/Yawning/obfsclient","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yawning%2Fobfsclient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yawning%2Fobfsclient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yawning%2Fobfsclient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yawning%2Fobfsclient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yawning","download_url":"https://codeload.github.com/Yawning/obfsclient/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253540220,"owners_count":21924519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T17:01:46.857Z","updated_at":"2025-05-11T08:33:05.329Z","avatar_url":"https://github.com/Yawning.png","language":"C++","funding_links":[],"categories":["\u003ca id=\"6e80463404d46f0493cf6e84597e4b5c\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"e99ba5f3de02f68412b13ca718a0afb6\"\u003e\u003c/a\u003eTor\u0026\u0026\u0026Onion\u0026\u0026洋葱"],"readme":"## obfsclient - A C++11 obfs2/3 Tor managed pluggable transport client\n#### Yawning Angel (yawning at schwanenlied dot me)\n\n\u003e Compile this if you are a obfuscated strong proxy\n\u003e who don't need no Python\n\n### What?\n\nThis is a C++11 client implementation of the following protocols:\n\n * [obfs2](https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/blob/HEAD:/doc/obfs2/obfs2-protocol-spec.txt) - The Twobfuscator\n   * The shared secret mode is not used in the wild and is unsupported.\n * [obfs3](https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/blob/HEAD:/doc/obfs3/obfs3-protocol-spec.txt) - The Threebfuscator\n * [ScrambleSuit](https://github.com/NullHypothesis/scramblesuit/blob/master/doc/scramblesuit-spec.txt) - *EXPERIMENTAL*\n   * This requires tor-0.2.5.x or later for Pluggable Transport arguments.\n\nBy design it will only function as a ClientTransportPlugin for Tor.  It does use\na reasonably complete implementation of the Pluggable Transport spec so when\nused properly, it will function as a drop in replacement for asn's Python\nimplementation.\n\n### Building\n\nIt currently has the following external dependencies:\n\n * Compile time only\n   * Doxygen (For the documentation)\n * Bundled under src/ext (No need to install)\n   * [Google C++ Testing Framework](https://code.google.com/p/googletest/)\n   * [easylogging++](https://github.com/easylogging/easyloggingpp)\n   * [The Lean Mean C++ Option Parser](http://optionparser.sourceforge.net/)\n * [libevent2](https://www.libevent.org)\n * [OpenSSL](https://www.openssl.org/)\n * [liballium](https://github.com/Yawning/liballium)\n\nNon-standard configure options:\n\n * --enable-scramblesuit-iat - Enable ScrambleSuit IAT obfuscation\n\nMake Targets:\n\n * all - Build the obfsclient binary\n * check - Build/Run obfsclient_test\n * docs - Build the doxygen documentation\n\n### Usage\n\nIn your torrc:\n\n    UseBridges 1\n    Bridge obfs2 ip:port fingerprint\n    Bridge obfs3 ip:port fingerprint\n    Bridge scramblesuit ip:port password=sharedsecret\n    ClientTransportPlugin obfs2,obfs3,scramblesuit exec /path/to/the/binary/obfsclient\n\n### Implementation notes\n\nLike the rest of my C++ code, C++ exceptions and RTTI are not used, and it is\nexpected that the appropriate compiler flags are passed in to disable these\nfunctions.  The obfsclient binary will assert() on fatal errors (out of memory),\nbecause that's realistically the only safe thing to do.\n\nCaveats:\n\n * My UniformDH implementation is not quite constant time, though the modular\n   exponentiation is.  I do not belive that this is a problem since the\n   cryptographic components of obfs3 are intended for obfuscation and not\n   secrecy.\n * The UniformDH implementation is glacially slow.  I may be spoiled by using\n   Curve25519 so much lately.\n\n### TODO (Patches accepted!)\n\n * See the [issue tracker](https://github.com/Yawning/obfsclient/issues).\n\n### WON'T DO\n\n * No, I do not care if this compiles out of the box on Windows.\n * No, I do not care that this doesn't compile with ancient compilers.\n * Unmanaged mode might be a nice to have, but all I care about is Tor.\n * Server implementations of all the protocols (Use the Python version).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyawning%2Fobfsclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyawning%2Fobfsclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyawning%2Fobfsclient/lists"}