{"id":21813949,"url":"https://github.com/genaronetwork/libgenaro","last_synced_at":"2025-04-13T23:45:42.118Z","repository":{"id":91573430,"uuid":"129369828","full_name":"GenaroNetwork/libgenaro","owner":"GenaroNetwork","description":"C implementation of libgenaro","archived":false,"fork":false,"pushed_at":"2019-01-15T07:42:31.000Z","size":452,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-27T13:51:20.680Z","etag":null,"topics":["encryption","library","storage"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GenaroNetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-13T08:03:52.000Z","updated_at":"2025-02-27T11:11:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"3a8d6c3d-fe4a-4cb1-9d5c-c3facac64f4a","html_url":"https://github.com/GenaroNetwork/libgenaro","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenaroNetwork%2Flibgenaro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenaroNetwork%2Flibgenaro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenaroNetwork%2Flibgenaro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenaroNetwork%2Flibgenaro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GenaroNetwork","download_url":"https://codeload.github.com/GenaroNetwork/libgenaro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248799693,"owners_count":21163398,"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":["encryption","library","storage"],"created_at":"2024-11-27T14:34:31.393Z","updated_at":"2025-04-13T23:45:42.106Z","avatar_url":"https://github.com/GenaroNetwork.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libgenaro  \n\n=======\ndocument: [usage](./usage.md)\n\n[![Build Status](https://travis-ci.org/GenaroNetwork/libgenaro.svg?branch=master)](https://travis-ci.org/GenaroNetwork/libgenaro)\n\nAsynchronous multi-platform C library and CLI for encrypted file transfer on the Genaro network.\nForked from libstorj with additional functions added.\n\nFor usage, see usage.md for examples, and see genaro.h for api.\n\n## Feature Highlights\n\n- Asynchronous I/O with concurrent peer-to-peer network requests for shards\n- Erasure encoding with reed solomon for data durability\n- Robust handling of shard transfers by selecting alternative sources\n- File integrity and authenticity verified with HMAC-SHA512\n- File encryption with AES-256-CTR\n- File name and bucket name encryption with AES-256-GCM\n- Proxy support with SOCKS5, SOCKS4, SOCKS4a\n- Asynchronous progress updates in bytes per file\n- Transfers can be cleanly canceled per file\n- Seed based file encryption key for portability between devices\n- The key of AES-256-CTR can be provided to decrypt the encrypted file, so that file sharing can be easily implemented\n- String can be encrypted with AES-256-CTR and directly stored to a bucket\n\n## Build\n\n**OS X / Debian / Ubuntu**\n\n```bash\nmkdir build\ncd build\ncmake ..\nmake\n```\n\n**Windows**\n\n```cmd\nmd build\ncd build\ncmake -G \"MinGW Makefiles\" ..\nmingw32-make\n```\n\nTo run tests:\n\n```bash\n./build/tests\n```\n\nTo run command line utility:\n\n```bash\n./build/genaroeden-cli --help\n```\n\n### OS X Dependencies (w/ homebrew):\n\nDevelopment tools:\n\n```bash\nbrew install libtool automake\ngit clone https://github.com/bitcoin-core/secp256k1.git /tmp/secp256k1\ncd /tmp/secp256k1\n./autogen.sh\n./configure\nmake\nsudo make install\ngit clone https://github.com/maandree/libkeccak.git /tmp/libkeccak\ncd /tmp/libkeccak\n```\n\nModify the contents of Makefile:\n\n```Makefile\n  # for Linux\n  LIBEXT = so\n  LIBFLAGS = -shared -Wl,-soname,libkeccak.$(LIBEXT).$(LIB_MAJOR)\n  # for Mac OS\n  # LIBEXT = dylib\n  # LIBFLAGS = -dynamiclib\n```\n\nto：\n\n```Makefile\n  # for Linux\n  # LIBEXT = so\n  # LIBFLAGS = -shared -Wl,-soname,libkeccak.$(LIBEXT).$(LIB_MAJOR)\n  # for Mac OS\n  LIBEXT = dylib\n  LIBFLAGS = -dynamiclib\n```\n\nand then:\n\n```bash\nmake\nsudo make install\n```\n\nand then install dependencies:\n\n```bash\nbrew install gmp json-c libuv nettle libmicrohttpd libscrypt\n```\n\n### Debian / Ubuntu (16.04) Dependencies\n\nDevelopment tools:\n\n```bash\napt-get install build-essential libtool autotools-dev automake libmicrohttpd-dev bsdmainutils\n```\n\nDependencies:\n\n```bash\napt-get install libcurl4-gnutls-dev nettle-dev libjson-c-dev libuv1-dev libsecp256k1-dev libscrypt-dev\ngit clone https://github.com/maandree/libkeccak.git /tmp/libkeccak\ncd /tmp/libkeccak\nmake\nsudo make install\n```\n\nIf libsecp256k1-dev(library secp256k1) can't be installed, try:\n\n```bash\ngit clone https://github.com/bitcoin-core/secp256k1.git /tmp/secp256k1\ncd /tmp/secp256k1\n./autogen.sh\n./configure\nmake\nsudo make install\n```\n\n### Windows Dependencies\n\n1. Cross Compiling Dependencies from Ubuntu 16.04:\n\na):\n\n```bash\napt-get install gcc-mingw-w64-x86-64 gcc-mingw-w64-i686 g++-mingw-w64-i686 g++-mingw-w64-x86-64 m4 autoconf automake libtool pkg-config curl\n```\n\nb):\n\n```bash\ncd depends\nmake HOST=\"x86_64-w64-mingw32\"\n```\n\nCommand \"make HOST=\"x86_64-w64-mingw32\" will start to download the source code packages, when all the packages is downloaded and extracted(when appearing \"checking ...\"), break this command, and do these:\n  aa) open \"depends/sources/x86_64-w64-mingw32/json-c/configure.ac\", add \" -Wno-error=implicit-fallthrough\" after \"-Wno-error=deprecated-declarations\";\n  bb) open \"depends/sources/x86_64-w64-mingw32/libkeccak/Makefile\", delete the whole contents, and input:\n\n```Makefile\nCC = x86_64-w64-mingw32-gcc\nOBJS = libkeccak/state.o libkeccak/digest.o\nLIBKECCAK = libkeccak.a\nDES_DIR = ../../../build/x86_64-w64-mingw32/lib\n$(LIBKECCAK): $(OBJS)\n\tx86_64-w64-mingw32-ar rcs $(LIBKECCAK) $(OBJS)\ninstall:\n\tmkdir -p $(DES_DIR) \u0026\u0026 cp -f $(LIBKECCAK) $(DES_DIR)\nclean:\n\trm -f $(OBJS) $(LIBKECCAK)\n```\n\nand run \"make clean\" in the directory \"depends/sources/x86_64-w64-mingw32/libkeccak\".\n\n  cc) open \"depends/sources/x86_64-w64-mingw32/libscrypt/Makefile\", delete the whole contents, and input:\n\n```Makefile\nCC = x86_64-w64-mingw32-gcc\nOBJS = crypto_scrypt-nosse.o sha256.o crypto-mcf.o b64.o crypto-scrypt-saltgen.o crypto_scrypt-check.o crypto_scrypt-hash.o slowequals.o\nLIBSCRYPT = libscrypt.a\nDES_DIR = ../../../build/x86_64-w64-mingw32/lib\n$(LIBSCRYPT): $(OBJS)\n\tx86_64-w64-mingw32-ar rcs $(LIBSCRYPT) $(OBJS)\ninstall:\n\tmkdir -p $(DES_DIR) \u0026\u0026 cp -f $(LIBSCRYPT) $(DES_DIR)\nclean:\n\trm -f $(OBJS) $(LIBSCRYPT)\n```\n\nand run \"make clean\" in the directory \"depends/sources/x86_64-w64-mingw32/libscrypt\".\n\nc):\nrun:\n\n```bash\nmake HOST=\"x86_64-w64-mingw32\"\n```\n\nagain.\n\n2. Install Dependencies on Windows:\n\nInstall MinGW-w64 and add the \"bin\" directory to environment \"PATH\".\nInstall CMake.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenaronetwork%2Flibgenaro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenaronetwork%2Flibgenaro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenaronetwork%2Flibgenaro/lists"}