├── .bzrignore ├── .gitlab-ci.yml ├── .net2o ├── anonymous.ecc └── test.ecc ├── 64bit.fs ├── AUTHORS ├── AndroidManifest └── apps ├── COPYING ├── LICENSE ├── Makefile.in ├── README.md ├── addr.fs ├── android ├── net.fs ├── notify.fs └── qrscan-android.fs ├── applications └── net2o.desktop ├── autoconf.sh ├── autogen.sh ├── base64.fs ├── base85.fs ├── bdelta.fs ├── bdelta ├── AUTHORS ├── COPYING ├── ChangeLog ├── Makefile.am ├── NEWS ├── README ├── autogen.sh ├── bdelta.h ├── bdelta.i ├── checksum.h ├── compatibility.h ├── configure.ac ├── debian │ ├── changelog │ ├── compat │ ├── control │ └── rules └── libbdelta.cpp ├── bin └── gen-icon ├── bump ├── check ├── classes.fs ├── cmd.fs ├── configure.ac ├── connect.fs ├── connected.fs ├── crypt.fs ├── crypto-api.fs ├── csv-import.fs ├── data ├── 2011-05-13_11-26-57-small.jpg ├── 2011-05-13_11-26-57.jpg ├── 2011-05-20_17-01-12-small.jpg ├── 2011-05-20_17-01-12.jpg ├── 2011-06-02_15-02-38-small.jpg ├── 2011-06-02_15-02-38.jpg ├── 2011-06-03_10-26-49-small.jpg ├── 2011-06-03_10-26-49.jpg ├── 2011-06-15_12-27-03-small.jpg ├── 2011-06-15_12-27-03.jpg ├── 2011-06-24_11-26-36-small.jpg ├── 2011-06-24_11-26-36.jpg ├── 2011-06-27_19-33-04-small.jpg ├── 2011-06-27_19-33-04.jpg ├── 2011-06-27_19-55-48-small.jpg ├── 2011-06-27_19-55-48.jpg ├── 2011-06-28_06-54-09-small.jpg └── 2011-06-28_06-54-09.jpg ├── debian ├── changelog.in ├── compat ├── control.in ├── net2o.postinst └── rules ├── debugging.fs ├── default.n2o ├── dht.fs ├── dhtroot.fs ├── do ├── doc ├── $cam.svg ├── 30c3-1.plt ├── 30c3-1.png ├── 30c3-2.plt ├── 30c3-2.png ├── 30c3-3.plt ├── 30c3-3.png ├── 30c3-4.plt ├── 30c3-4.png ├── 30c3-5.plt ├── 30c3-5.png ├── 30c3-6.plt ├── 30c3-6.png ├── 30c3-7.plt ├── 30c3-7.png ├── 31c3 │ ├── gbe-1.tmg │ ├── wlan-1.tmg │ └── wlan-4.1.tmg ├── 33c3-logo.png ├── 34c3-presentation.fs ├── 35c3-logo.png ├── 35c3-presentation.fs ├── 36c3-logo.png ├── 36c3-presentation.fs ├── apple-touch-icon-precomposed.png ├── avalanche.fig ├── avalanche.svg ├── bad-gateway.png ├── bank-robs-you.jpg ├── beamerthemeNet2o.sty ├── beamerthemelankton-keynote-ho.sty ├── beamerthemelankton-keynote.sty ├── biggest-breaches.png ├── bitcoin-bubble.png ├── bufferused.fig ├── bugs-pie.dat ├── bugs-pie.pyx ├── chao.jpg ├── cloudcalypse-16-9-corona.jpg ├── cloudcalypse-16-9.jpg ├── colorqr2.png ├── connection-setup.fig ├── cryptonerd.png ├── datenkrake.jpg ├── duty_calls.png ├── edinburgh-coa.jpg ├── ef2012 │ ├── vdsl1 │ │ ├── timing │ │ ├── timing0 │ │ ├── timing1 │ │ ├── timing2 │ │ └── timing3 │ └── wlan1 │ │ ├── timing │ │ ├── timing0 │ │ ├── timing1 │ │ ├── timing2 │ │ └── timing3 ├── ef2018-presentation.fs ├── ef2019-presentation.fs ├── ef2020-presentation.fs ├── ef2021-presentation.fs ├── feiqian.png ├── feynman-diag.png ├── fonts │ ├── Imprima-Regular.ttf │ ├── Imprima-Regular.woff │ ├── OFL.txt │ ├── Tepeno Sans Bold Italic.ttf │ ├── Tepeno Sans Bold Italic.woff │ ├── Tepeno Sans Bold.ttf │ ├── Tepeno Sans Bold.woff │ ├── Tepeno Sans Light Italic.ttf │ ├── Tepeno Sans Light Italic.woff │ ├── Tepeno Sans Light.ttf │ ├── Tepeno Sans Light.woff │ ├── Tepeno Sans Regular Italic.ttf │ ├── Tepeno Sans Regular Italic.woff │ ├── Tepeno Sans Regular.ttf │ └── Tepeno Sans Regular.woff ├── formate+ausgabe.fig ├── formats+io.fig ├── free-market.jpg ├── ft2018-presentation.fs ├── ft2019-presentation.fs ├── ft2020-presentation.fs ├── ft2021-presentation.fs ├── ft2022-presentation.fs ├── ft2023-presentation.fs ├── genhandout.tex ├── google-takeout.png ├── header64b.fig ├── hidden-service-logo.png ├── horsemen-apocalypse.jpg ├── hs2020-presentation.fs ├── huizi.png ├── indian-script-map.jpg ├── internet-2.0.lyx ├── keyusage.fig ├── ledger-stage1.fig ├── ledger-stage1.png ├── ledger-stage1.svg ├── ledger-stage2.fig ├── ledger-stage2.png ├── ledger-stage2.svg ├── ledger-stage3.fig ├── ledger-stage3.svg ├── net2o-200-green.png ├── net2o-200-green.xcf ├── net2o-200.png ├── net2o-30c3.lyx ├── net2o-30c3.pdf ├── net2o-31c3.lyx ├── net2o-31c3.pdf ├── net2o-32c3.lyx ├── net2o-32c3.pdf ├── net2o-33c3.lyx ├── net2o-33c3.pdf ├── net2o-8-3.lyx ├── net2o-8-3.pdf ├── net2o-al.lyx ├── net2o-al2.lyx ├── net2o-al2.pdf ├── net2o-al3.lyx ├── net2o-cmd.lyx ├── net2o-cmd.pdf ├── net2o-cmd2.lyx ├── net2o-cmd2.pdf ├── net2o-ef2016.lyx ├── net2o-ef2016.pdf ├── net2o-ft.lyx ├── net2o-ft2014.lyx ├── net2o-logo-green.png ├── net2o-logo-green.svg ├── net2o-logo.eps ├── net2o-logo.pdf ├── net2o-logo.png ├── net2o-logo.svg ├── net2o-minos2.lyx ├── net2o-minos2.png ├── net2o-qr.png ├── net2o-squid-200.png ├── net2o-squid.png ├── net2o-tl-imp.lyx ├── net2o-tl-imp.pdf ├── net2o-tl2-ho.tex ├── net2o-tl2.lyx ├── net2o-tl2.pdf ├── net2o.css ├── net2o.lyx ├── net2o.png ├── net2o_notify.png ├── pdf2png ├── perscheid-flacherdler-fb-sperre.jpg ├── perscheid-gesperrt.jpg ├── poster-de.lyx ├── poster.lyx ├── poster.pdf ├── qr-code-inv.png ├── qr-code.png ├── rate-send-vdsl ├── rate-send-wlan ├── rate-vdsl ├── rate-wlan ├── rome-logo.png ├── sand_dunes_police_ai_porn.jpg ├── shell-coins.png ├── slack-vdsl ├── slack-wlan ├── snowden.png ├── spam-2016.jpg ├── spam-2017.jpg ├── squid-logo-200.png ├── squid-logo.png ├── squid-logo.svg ├── standards.png ├── tangocolors.sty ├── timing.gp ├── timing.plt ├── timing4.plt ├── timings.plt ├── user.png ├── vdsl.gp ├── vdsl.png ├── vdsl1-0.plt ├── vdsl1-1.plt ├── vdsl1.plt ├── wlan.gp ├── wlan.png ├── wlan1-0.plt ├── wlan1-1.plt ├── wlan1-2.plt ├── wlan1.plt ├── worms-wappen-swap.png ├── worms-wappen.png ├── zooko.fig └── zwiebel │ ├── 2013-04-16 18.31.34.jpg │ ├── 2013-04-16 18.32.14.jpg │ └── 2013-04-16 18.32.30.jpg ├── docker └── runner │ ├── Dockerfile.gui │ ├── Dockerfile.gui+fonts │ ├── Dockerfile.in │ ├── README.md │ ├── build.sh │ ├── net2o.alias │ └── pulse-client.conf ├── dvcs.fs ├── ed25519-donna.fs ├── ed25519-donnafast.fs ├── ed25519-donnalib.fs ├── err.fs ├── file.fs ├── flatpak ├── build.sh ├── net.net2o.net2o.yml └── net2o.alias ├── gui-dark.fs ├── gui.fs ├── hash-table.fs ├── helper.fs ├── html └── parser.fs ├── icons └── hicolor │ ├── 128x128 │ └── apps │ │ └── net2o.png │ ├── 16x16 │ └── apps │ │ └── net2o.png │ ├── 192x192 │ └── apps │ │ └── net2o.png │ ├── 22x22 │ └── apps │ │ └── net2o.png │ ├── 24x24 │ └── apps │ │ └── net2o.png │ ├── 256x256 │ └── apps │ │ └── net2o.png │ ├── 32x32 │ └── apps │ │ └── net2o.png │ ├── 36x36 │ └── apps │ │ └── net2o.png │ ├── 48x48 │ └── apps │ │ └── net2o.png │ ├── 64x64 │ └── apps │ │ └── net2o.png │ ├── 72x72 │ └── apps │ │ └── net2o.png │ └── scalable │ └── apps │ └── net2o.svg ├── install-deps.sh ├── ip.fs ├── iss.sh ├── json ├── diaspora-schema.fs ├── fb-schema.fs ├── g+-import.fs ├── g+-schema.fs ├── parser.fs ├── test.fs ├── test.json └── twitter-schema.fs ├── keccak-low ├── AUTHORS ├── COPYING ├── ChangeLog ├── INSTALL ├── KeccakP-1600 │ ├── ARM │ │ ├── KeccakP-1600-SnP.h │ │ ├── KeccakP-1600-inplace-32bi-armv6m-le-armcc.s │ │ ├── KeccakP-1600-inplace-32bi-armv6m-le-gcc.s │ │ ├── KeccakP-1600-inplace-32bi-armv7a-le-armcc.s │ │ ├── KeccakP-1600-inplace-32bi-armv7a-le-gcc.s │ │ ├── KeccakP-1600-inplace-32bi-armv7m-le-armcc.s │ │ ├── KeccakP-1600-inplace-32bi-armv7m-le-gcc.s │ │ ├── KeccakP-1600-u1-32bi-armv6m-le-armcc.s │ │ ├── KeccakP-1600-u1-32bi-armv6m-le-gcc.s │ │ ├── KeccakP-1600-u2-32bi-armv6m-le-armcc.s │ │ └── KeccakP-1600-u2-32bi-armv6m-le-gcc.s │ ├── ARMv7A-NEON │ │ ├── KeccakP-1600-SnP.h │ │ ├── KeccakP-1600-armv7a-le-neon-armcc.s │ │ └── KeccakP-1600-armv7a-le-neon-gcc.s │ ├── ARMv8A │ │ ├── KeccakP-1600-SnP.h │ │ └── KeccakP-1600-armv8a-neon.s │ ├── AVR8 │ │ ├── KeccakP-1600-SnP.h │ │ ├── KeccakP-1600-avr8-compact.s │ │ └── KeccakP-1600-avr8-fast.s │ ├── AVX2 │ │ ├── KeccakP-1600-AVX2.s │ │ └── KeccakP-1600-SnP.h │ ├── AVX512 │ │ ├── C │ │ │ ├── KeccakP-1600-AVX512.c │ │ │ ├── KeccakP-1600-SnP.h │ │ │ ├── u12 │ │ │ │ └── KeccakP-1600-AVX512-config.h │ │ │ ├── u6 │ │ │ │ └── KeccakP-1600-AVX512-config.h │ │ │ └── ua │ │ │ │ └── KeccakP-1600-AVX512-config.h │ │ ├── KeccakP-1600-AVX512.s │ │ └── KeccakP-1600-SnP.h │ ├── XOP │ │ ├── KeccakP-1600-SnP.h │ │ ├── KeccakP-1600-XOP.c │ │ ├── u6 │ │ │ └── KeccakP-1600-XOP-config.h │ │ └── ua │ │ │ └── KeccakP-1600-XOP-config.h │ ├── common │ │ ├── KeccakP-1600-64.macros │ │ └── KeccakP-1600-unrolling.macros │ ├── compact │ │ ├── KeccakP-1600-SnP.h │ │ └── KeccakP-1600-compact64.c │ ├── plain-32bits-inplace │ │ ├── KeccakP-1600-SnP.h │ │ └── KeccakP-1600-inplace32BI.c │ ├── plain-64bits │ │ ├── KeccakP-1600-SnP.h │ │ ├── KeccakP-1600-opt64.c │ │ ├── brg_endian.h │ │ ├── lcu6 │ │ │ └── KeccakP-1600-opt64-config.h │ │ ├── lcua-shld │ │ │ └── KeccakP-1600-opt64-config.h │ │ ├── lcua │ │ │ └── KeccakP-1600-opt64-config.h │ │ ├── u6 │ │ │ └── KeccakP-1600-opt64-config.h │ │ └── ua │ │ │ └── KeccakP-1600-opt64-config.h │ ├── ref-32bits │ │ ├── KeccakP-1600-SnP.h │ │ ├── KeccakP-1600-reference.h │ │ └── KeccakP-1600-reference32BI.c │ ├── ref-64bits │ │ ├── KeccakP-1600-SnP.h │ │ ├── KeccakP-1600-reference.c │ │ └── KeccakP-1600-reference.h │ └── x86-64 │ │ ├── KeccakP-1600-SnP.h │ │ ├── KeccakP-1600-x86-64-gas.s │ │ ├── KeccakP-1600-x86-64-gas_Apple.s │ │ └── KeccakP-1600-x86-64-shld-gas.s ├── Makefile.am ├── NEWS ├── README ├── autogen.sh ├── common │ ├── PlSnP-Fallback.inc │ ├── SnP-Relaned.h │ ├── align.h │ └── brg_endian.h ├── configure.ac ├── debian │ ├── changelog │ ├── compat │ ├── control │ └── rules └── keccak.i ├── keccak-small.fs ├── keccak.fs ├── keccakfast.fs ├── keccaklib.fs ├── keccaklow.fs ├── keys.fs ├── knotifications5 └── net2o.notifyrc ├── knotifications6 ├── kregion.fs ├── lang ├── de ├── en ├── en_GB ├── en_IN ├── en_US ├── zh └── zh_TW ├── linux ├── net.fs ├── notify.fs └── qrscan-linux.fs ├── log.fs ├── logo.png ├── magic ├── msg.fs ├── n2o-completion.sh ├── n2o-fi.fs.in ├── n2o.fs ├── n2o.in ├── net2o-dhtroot.n2o ├── net2o-lang.csv ├── net2o.fs ├── net2o.ico ├── notify.fs ├── qr.fs ├── qrscan.fs ├── qrscan.in ├── res ├── drawable-hdpi │ ├── net2o.png │ ├── net2o_green.png │ └── net2o_notify.png ├── drawable-ldpi │ ├── net2o.png │ ├── net2o_green.png │ └── net2o_notify.png ├── drawable-mdpi │ ├── net2o.png │ ├── net2o_green.png │ └── net2o_notify.png ├── drawable-xhdpi │ ├── net2o.png │ ├── net2o_green.png │ └── net2o_notify.png ├── drawable-xxhdpi │ ├── net2o.png │ ├── net2o_green.png │ └── net2o_notify.png ├── drawable-xxxhdpi │ ├── net2o.png │ ├── net2o_green.png │ └── net2o_notify.png └── values │ └── net2o.xml ├── rng.fs ├── sha3-256 ├── sha3-512 ├── shlibs ├── bdelta ├── ed25519-donna ├── keccak-low └── threefish ├── snap ├── build.sh ├── common │ ├── desktop-exports │ ├── init │ └── mark-and-exec ├── glib-only │ ├── Makefile │ ├── desktop-exports │ ├── init │ ├── launcher-specific │ └── mark-and-exec └── snapcraft.yaml.in ├── socks.fs ├── squid.fs ├── src └── gnu │ └── gforth │ ├── Gforth_n2o.java │ └── Gforth_n2o_gui.java ├── startn2o.fs ├── startn2ogui.fs ├── template.fs ├── testing ├── heap-test.fs ├── heap.fs ├── heap1.fs ├── linearheap.fs └── nacl.fs ├── tests ├── alice-msg.fs ├── alice-test.fs ├── alice2-msg.fs ├── bob-msg.fs ├── bob-test.fs ├── client-test.fs ├── client-tests.fs ├── copy.fs ├── cryptspeed.fs ├── dht-pop.fs ├── dht.fs ├── dvcs-test ├── dvcs-test.s2o ├── dvcs-test2.s2o ├── ed25519-table.fs ├── ed25519.fs ├── eve-test.fs ├── file.diff ├── insdeltest.fs ├── keccak.fs ├── keys.fs ├── msg-test ├── msg.fs ├── server-test.fs ├── termclient.fs ├── terminal-test.fs ├── test-keys.fs ├── teststat.fs ├── threefish.fs └── vault.fs ├── threefish.fs ├── threefish ├── AUTHORS ├── ChangeLog ├── Makefile.am ├── Makefile.android ├── Makefile.forth ├── NEWS ├── README ├── autogen.sh ├── configure.ac ├── debian │ ├── changelog │ ├── compat │ ├── control │ └── rules ├── skein.h ├── threefish.c ├── threefish.fs ├── threefish.h └── threefish.i ├── threefishfast.fs ├── threefishlib.fs ├── tools.fs ├── vault.fs ├── version.fs.in ├── wiki ├── 31c3.md ├── 32c3.md ├── 33c3.md ├── 34c3.md ├── ackcookies.md ├── app-privacy-statement.md ├── apple-touch-icon.png ├── applications.wiki ├── avalanche.png ├── client-auth.md ├── commands.md ├── data-retention.md ├── distributed-data.md ├── ed25519.md ├── encryption.md ├── eu-dsgvo.md ├── eu-gdpr.md ├── favicon.ico ├── flow-control.md ├── get-it.md ├── guidelines.md ├── handover.md ├── impressum.md ├── key-format.md ├── key-revocation.md ├── links-statement.md ├── net2o.md ├── net2o.zh.md ├── nettie.md ├── nsa-backdoor.md ├── onion-routing.md ├── pki.md ├── rng.md ├── search.md ├── social.md ├── squid-bingo.md ├── squid-chain.md ├── squid-contracts.md ├── squid-fed.md ├── squid-literature.md ├── squid-mining.md ├── squid-money.md ├── squid-pow.md ├── squid-speculation.md ├── squid.md ├── threat-model.md ├── threefish.md ├── todo.md ├── topology.md ├── try-it.md ├── videoconference.md ├── whatnotfor.md ├── wizards.jpg └── wurstkessel.wiki ├── wurstkessel ├── wurstkessel-init.fs ├── wurstkessel-small.fs ├── wurstkessel-tests.fs ├── wurstkessel.fs └── wurstkessel0.fs ├── xml ├── blogger-atom.fs └── parser.fs └── xtype.fs /.bzrignore: -------------------------------------------------------------------------------- 1 | *.bak 2 | *.pdf 3 | nacl-201* 4 | .git 5 | _FOSSIL_ 6 | *.fossil -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | 2 | before_script: 3 | - apt update 4 | 5 | .build-template: 6 | image: forthy42/gforth-builder-linux-$ARCH:$DISTRIBUTION 7 | script: 8 | - ./install-deps.sh $DISTRIBUTION $ARCH 9 | - ./autogen.sh 10 | - case $ARCH in 11 | i386) 12 | export BARCH=i686-pc-linux-gnu 13 | ;; 14 | amd64) 15 | export BARCH=x86_64-pc-linux-gnu 16 | ;; 17 | arm64) 18 | export BARCH=aarch64-pc-linux-gnu 19 | ;; 20 | armel) 21 | export BARCH=arm-pc-linux-gnueabi 22 | ;; 23 | armhf) 24 | export BARCH=arm-pc-linux-gnueabihf 25 | ;; 26 | esac 27 | - ./configure --host=$BARCH --build=$BARCH 28 | - make -j`nproc` libs 29 | - make install-libs 30 | - make distclean 31 | - for i in bdelta keccak-low threefish ed25519-donna; do (cd $i; dpkg-buildpackage -uc -us -d -b -a$ARCH); done 32 | - dpkg-buildpackage -uc -us -d -b -a$ARCH 33 | - mkdir -p debian/$DISTRIBUTION/$ARCH 34 | - rm -f debian/$DISTRIBUTION/$ARCH/*.deb 35 | - mv ../*.deb *.deb debian/$DISTRIBUTION/$ARCH/ 36 | # The files which are to be made available in GitLab 37 | artifacts: 38 | paths: 39 | - debian/$DISTRIBUTION/$ARCH/*.deb 40 | 41 | build: 42 | extends: .build-template 43 | parallel: 44 | matrix: 45 | - DISTRIBUTION: [unstable, stable, oldstable] 46 | ARCH: [amd64, i386] 47 | -------------------------------------------------------------------------------- /.net2o/anonymous.ecc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/.net2o/anonymous.ecc -------------------------------------------------------------------------------- /.net2o/test.ecc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/.net2o/test.ecc -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Author: Bernd Paysan 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | COPYING -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | net2o — reinventing the Internet 2 | ================================ 3 | 4 | net2o is the attempt to reinvent the Internet. 5 | 6 | Get it and try it 7 | ----------------- 8 | 9 | net2o is currently under early alpha test. [Get 10 | it](https://fossil.net2o.de/net2o/doc/trunk/wiki/get-it.md) and [try 11 | it](https://fossil.net2o.de/net2o/doc/trunk/wiki/try-it.md). There 12 | are lots of things [to 13 | do](https://fossil.net2o.de/net2o/doc/trunk/wiki/todo.md). 14 | 15 | What’s broken? 16 | -------------- 17 | 18 | * The internet bases on assumptions 20–30 years old 19 | * These assumptions are wrong today 20 | * Much of it followed the “good enough” principle 21 | * There’s a huge pile of accumulated cruft 22 | * Fixing this mess one–by–one is the wrong attempt 23 | 24 | What for? 25 | --------- 26 | 27 | I’ve a dream: A peer–to–peer network, where services like search engines or 28 | social networks aren’t offered by big companies, who in turn need to make money 29 | by selling the privacy of their users. Where all data is encrypted, so that 30 | access is only possible for people who have the key and really are authorized. 31 | Which layman can use without cryptic user interfaces. Where the browser is a 32 | platform for running useful applications without the mess of Flash and 33 | JavaScript. Without the lag of “buffer bloat” and without the speed problems of 34 | a protocol not designed to be assisted by hardware. 35 | 36 | What needs to be fixed? 37 | ----------------------- 38 | 39 | * IP: Use switch–based simple routing, don’t route every packet 40 | * TCP: Most data just needs to be obtained reliable, the order doesn’t 41 | matter. And TCP’s flow control is broken (delay minimized is the way to go). 42 | * Encryption everywhere: This is no longer an expensive operation (and for 43 | symmetric encryption, fast hardware implementation is feasible) 44 | * P2P instead of client–server 45 | * A new API (render layer, markup language, scripting) — the browser is there 46 | for serious applications now. 47 | 48 | Rendering is done with OpenGL ES, GUI layer is MINOΣ 2. 49 | 50 | net2o has been inspired by Open Network Forth from Heinz Schnitter. 51 | -------------------------------------------------------------------------------- /android/net.fs: -------------------------------------------------------------------------------- 1 | \ Andoid specific network stuff 2 | 3 | \ Copyright © 2016 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | Defer addr-changed ' noop is addr-changed 19 | 20 | also android also jni 21 | :noname defers android-network 22 | network-info dup IF ]xref 23 | beacons-now! addr-changed true 24 | THEN to connected? ; 25 | is android-network 26 | previous previous 27 | 28 | \\\ 29 | Local Variables: 30 | forth-local-words: 31 | ( 32 | (("net2o:" "+net2o:") definition-starter (font-lock-keyword-face . 1) 33 | "[ \t\n]" t name (font-lock-function-name-face . 3)) 34 | ("[a-z0-9]+(" immediate (font-lock-comment-face . 1) 35 | ")" nil comment (font-lock-comment-face . 1)) 36 | ) 37 | forth-local-indent-words: 38 | ( 39 | (("net2o:" "+net2o:") (0 . 2) (0 . 2) non-immediate) 40 | ) 41 | End: 42 | [THEN] 43 | -------------------------------------------------------------------------------- /android/qrscan-android.fs: -------------------------------------------------------------------------------- 1 | \ scan color QR codes on Android 2 | 3 | \ Copyright © 2016 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | also opengl also android also jni 19 | 20 | : draw-cam ( -- ) 21 | 0>framebuffer 22 | camera-init screen-orientation 1e 1e draw-scan sync 23 | cam-w cam-h scan-fb-raw >framebuffer 24 | 1 1e 1e draw-scan 25 | scan-tex-raw linear-mipmap mipmap ; 26 | 27 | 8 Value dummy-images 28 | : flush-images ( -- ) 29 | dummy-images 0 DO draw-cam LOOP ; 30 | 31 | : scan-start ( -- ) 32 | hidekb hidestatus >changed screen+keep 33 | "android.permission.CAMERA" 34 | "android.permission.RECORD_AUDIO" 35 | "android.permission.RECORD_VIDEO" 3 ask-permissions 36 | c-open-back to camera 37 | program 0= IF 38 | ['] VertexShader ['] FragmentShader create-program to program 39 | THEN 40 | cam-prepare new-scantexes ; 41 | \ flush out images still in the buffer 42 | 43 | previous previous previous 44 | 45 | \\\ 46 | Local Variables: 47 | forth-local-words: 48 | ( 49 | (("net2o:" "+net2o:") definition-starter (font-lock-keyword-face . 1) 50 | "[ \t\n]" t name (font-lock-function-name-face . 3)) 51 | ("[a-z0-9]+(" immediate (font-lock-comment-face . 1) 52 | ")" nil comment (font-lock-comment-face . 1)) 53 | ) 54 | forth-local-indent-words: 55 | ( 56 | (("net2o:" "+net2o:") (0 . 2) (0 . 2) non-immediate) 57 | ) 58 | End: 59 | [THEN] 60 | -------------------------------------------------------------------------------- /applications/net2o.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Categories=Network 3 | Comment=net2o GUI 4 | Exec=n2o gui 5 | GenericName=net2o GUI 6 | Icon=net2o 7 | Name=net2o 8 | StartupNotify=true 9 | StartupWMClass=net2o-gui 10 | Terminal=false 11 | Type=Application 12 | Version=1.0 13 | X-MultipleArgs=false 14 | -------------------------------------------------------------------------------- /autoconf.sh: -------------------------------------------------------------------------------- 1 | autogen.sh -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -e 2 | test -n "$srcdir" || srcdir=`dirname "$0"` 3 | test -n "$srcdir" || srcdir=. 4 | 5 | function git-get { 6 | purl=$1 7 | pname=$2 8 | shift; shift 9 | echo "=== git clone $purl/$pname.git $* ===" 10 | if [ -d $pname ] 11 | then 12 | (cd $pname; git pull -f) 13 | else 14 | git clone $purl/$pname.git $* 15 | fi 16 | } 17 | 18 | if [ ! -f $srcdir/ed25519-donna/ed25519-prims.h ] 19 | then 20 | (cd $srcdir; git-get https://git.net2o.de/bernd ed25519-donna) 21 | fi 22 | 23 | libtoolize --force --copy --install || glibtoolize --force --copy --install 24 | autoreconf --force --install --verbose "$srcdir" 25 | for i in ./*/autogen.sh 26 | do 27 | echo "autogen.sh in ${i%autogen.sh}" 28 | (cd ${i%autogen.sh}; ./autogen.sh) 29 | done 30 | test -n "$NOCONFIGURE" || "$srcdir/configure" "$@" 31 | -------------------------------------------------------------------------------- /base64.fs: -------------------------------------------------------------------------------- 1 | \ base64 output (not the usual base64, suitable as filenames) 2 | 3 | : .b64 ( n -- n' ) dup >r 6 rshift r> $3F and 4 | dup #10 u< IF '0' + emit EXIT THEN #10 - 5 | dup #26 u< IF 'A' + emit EXIT THEN #26 - 6 | dup #26 u< IF 'a' + emit EXIT THEN #26 - 7 | IF '_' ELSE '-' THEN emit ; 8 | : .1base64 ( addr -- ) 9 | c@ .b64 .b64 drop ; 10 | : .2base64 ( addr -- ) 11 | w@ wle .b64 .b64 .b64 drop ; 12 | : .3base64 ( addr -- ) 13 | l@ lle $FFFFFF and .b64 .b64 .b64 .b64 drop ; 14 | Create .base64s ' drop , ' .1base64 , ' .2base64 , ' .3base64 , 15 | : 64type ( addr u -- ) 16 | bounds ?DO I delta-I 3 umin cells .base64s + perform 3 +LOOP ; 17 | 18 | : b64digit ( char -- n ) 19 | '0' - dup #09 u<= ?EXIT 20 | [ 'A' '9' - 1- ]L - dup #36 u<= ?EXIT 21 | dup #40 = IF drop #63 EXIT THEN 22 | [ 'a' 'Z' - 1- ]L - dup #62 u<= ?EXIT 23 | drop #62 ; 24 | 25 | : base64>n ( addr u -- n ) #0. 2swap bounds +DO 26 | I c@ b64digit over lshift rot or swap 6 + 27 | LOOP drop ; 28 | : base64>$ ( addr u -- addr' u' ) save-mem >r dup dup r@ bounds ?DO 29 | I delta-I 4 umin base64>n lle over l! 3 + 30 | 4 +LOOP drop r> 3 4 */ ; 31 | 32 | : 64" ( "base64string" -- addr u ) 33 | '"' parse base64>$ ; 34 | compsem: [compile] 64" postpone SLiteral ; 35 | 36 | -------------------------------------------------------------------------------- /base85.fs: -------------------------------------------------------------------------------- 1 | \ base85 output (derived from RFC 1924, suitable as file name) 2 | 3 | 85 buffer: 85>chars 4 | s" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~" 5 | 85>chars 85 smove 6 | $80 buffer: chars>85 7 | chars>85 $80 $FF fill 8 | 85 0 [DO] [I] dup 85>chars + c@ chars>85 + c! [LOOP] 9 | 10 | : .b85 ( n -- n' ) 0 85 um/mod swap 85>chars + c@ emit ; 11 | : .1base85 ( addr -- ) c@ .b85 .b85 drop ; 12 | : .2base85 ( addr -- ) w@ wle .b85 .b85 .b85 drop ; 13 | : .3base85 ( addr -- ) l@ lle $FFFFFF and .b85 .b85 .b85 .b85 drop ; 14 | : .4base85 ( addr -- ) l@ lle .b85 .b85 .b85 .b85 .b85 drop ; 15 | Create .base85s ' drop , ' .1base85 , ' .2base85 , ' .3base85 , ' .4base85 , 16 | : 85type ( addr u -- ) 17 | bounds ?DO I delta-I 4 umin cells .base85s + perform 4 +LOOP ; 18 | 19 | : b85digit ( char -- n ) $7F umin chars>85 + c@ 20 | dup $FF = !!no-85-digit!! ; 21 | 22 | : base85>n ( addr u -- n ) 0 1 2swap bounds +DO 23 | I c@ b85digit over * under+ 85 * 24 | LOOP drop ; 25 | : (base85>$) ( addr u -- addr' u' ) bounds ?DO 26 | I delta-I 5 umin dup >r base85>n { | w^ x } lle x l! x r> 4 5 */ type 27 | 5 +LOOP ; 28 | : base85>$ ( addr u -- addr' u' ) ['] (base85>$) $tmp ; 29 | 30 | : 85" ( "base85string" -- addr u ) 31 | '"' parse base85>$ ; 32 | compsem: [compile] 85" postpone SLiteral ; 33 | 34 | : .85info ( addr u -- ) 35 | 85type ; 36 | : .85warn ( addr u -- ) 37 | 85type ; 38 | 39 | : hash-85 ( addr u -- addr' u' ) 40 | ['] 85type $tmp hash-sanitize ; 41 | : chat-85 ( addr u -- addr' u' ) 42 | ['] 85type $tmp chat-sanitize ; 43 | : hash>filename ( addr u -- filename u' ) 44 | hash-85 [: config:objects$ $. '/' emit type ;] $tmp ; 45 | : .chats/ ( addr u -- addr' u' ) 46 | chat-85 [: config:chats$ $. '/' emit type ;] $tmp ; 47 | -------------------------------------------------------------------------------- /bdelta/AUTHORS: -------------------------------------------------------------------------------- 1 | Author: John Whitney 2 | Modifications for 64 bit index, library-only fork: Bernd Paysan -------------------------------------------------------------------------------- /bdelta/Makefile.am: -------------------------------------------------------------------------------- 1 | # Automake file for bdelta library 2 | 3 | ## Place generated object files (.o) into the same directory as their source 4 | ## files, in order to avoid collisions when non-recursive make is used. 5 | AUTOMAKE_OPTIONS = subdir-objects 6 | 7 | ## Additional flags to pass to aclocal when it is invoked automatically at 8 | ## make time. The ${ACLOCAL_FLAGS} variable is picked up from the environment 9 | ## to provide a way for the user to supply additional arguments. 10 | ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 11 | 12 | ## Set the default command-line flags for the C preprocessor to the value 13 | ## obtained from pkg-config via PKG_CHECK_MODULES in configure.ac. These 14 | ## flags are passed to the compiler for both C and C++, in addition to the 15 | ## language-specific options. 16 | AM_CPPFLAGS = $(EXAMPLE_CFLAGS) 17 | 18 | lib_LTLIBRARIES = libbdelta.la 19 | include_HEADERS = bdelta.h compatibility.h checksum.h 20 | libbdelta_la_SOURCES = libbdelta.cpp 21 | libbdelta_la_LIBADD = 22 | libbdelta_la_LDFLAGS = -version-info ${VERSION} -no-undefined 23 | libbdelta_la_CXXFLAGS = @flags@ 24 | 25 | install-exec-hook: 26 | -/sbin/ldconfig $(libdir) 27 | -------------------------------------------------------------------------------- /bdelta/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/bdelta/NEWS -------------------------------------------------------------------------------- /bdelta/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | test -n "$srcdir" || srcdir=`dirname "$0"` 3 | test -n "$srcdir" || srcdir=. 4 | 5 | mkdir -p m4 6 | libtoolize --force --copy --install || glibtoolize --force --copy --install 7 | autoreconf --force --install --verbose "$srcdir" 8 | aclocal --install -I m4 9 | automake --add-missing 10 | test -n "$NOCONFIGURE" || "$srcdir/configure" "$@" 11 | -------------------------------------------------------------------------------- /bdelta/bdelta.h: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif // __cplusplus 8 | 9 | typedef struct _BDelta_Instance BDelta_Instance; 10 | 11 | typedef int64_t pos; 12 | 13 | BDelta_Instance *bdelta_init_alg(void *handle1, pos data1_size, 14 | void *handle2, pos data2_size); 15 | void bdelta_done_alg(BDelta_Instance *b); 16 | 17 | void bdelta_pass(BDelta_Instance *b, unsigned blockSize, unsigned minMatchSize, pos maxHoleSize, unsigned flags); 18 | 19 | void bdelta_swap_inputs(BDelta_Instance *b); 20 | void bdelta_clean_matches(BDelta_Instance *b, unsigned flags); 21 | 22 | unsigned bdelta_numMatches(BDelta_Instance *b); 23 | 24 | void bdelta_getMatch(BDelta_Instance *b, unsigned matchNum, 25 | pos *p1, pos *p2, pos *num); 26 | 27 | int bdelta_getError(BDelta_Instance *b); 28 | void bdelta_showMatches(BDelta_Instance *b); 29 | 30 | // Flags for bdelta_pass() 31 | #define BDELTA_GLOBAL 1 32 | #define BDELTA_SIDES_ORDERED 2 33 | 34 | // Flags for bdelta_clean_matches() 35 | #define BDELTA_REMOVE_OVERLAP 1 36 | 37 | enum BDELTA_RESULT { 38 | BDELTA_OK = 0, 39 | BDELTA_MEM_ERROR = -1, 40 | BDELTA_READ_ERROR = -2 41 | }; 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif // __cplusplus 46 | -------------------------------------------------------------------------------- /bdelta/bdelta.i: -------------------------------------------------------------------------------- 1 | %module bdelta 2 | %insert("include") 3 | %{ 4 | #include 5 | #include 6 | %} 7 | 8 | %apply long long { pos }; 9 | 10 | %include 11 | -------------------------------------------------------------------------------- /bdelta/checksum.h: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | struct Hash { 6 | public: 7 | typedef uint64_t Value; 8 | Hash() {} 9 | Hash(const Token *buf, unsigned blocksize) { 10 | value = 0; 11 | for (unsigned num = 0; num < blocksize; ++num) 12 | advance_add(buf[num]); 13 | oldCoefficient = powHash(multiplyAmount, blocksize); 14 | } 15 | void advance(Token out, Token in) { 16 | advance_remove(out); 17 | advance_add(in); 18 | } 19 | static unsigned modulo(Value hash, unsigned d) { 20 | // Assumes d is power of 2. 21 | return hash & (d - 1); 22 | } 23 | Value getValue() {return value >> extraProcBits;} 24 | private: 25 | typedef uint64_t ProcValue; 26 | static const unsigned extraProcBits = (sizeof(ProcValue) - sizeof(Value)) * 8; 27 | 28 | static const ProcValue multiplyAmount = (1ll << extraProcBits) | 181; 29 | ProcValue oldCoefficient, value; 30 | 31 | void advance_add(Token in) { 32 | value += in; 33 | value *= multiplyAmount; 34 | } 35 | void advance_remove(Token out) { 36 | value -= out * oldCoefficient; 37 | } 38 | static ProcValue powHash(ProcValue x, unsigned y) { 39 | ProcValue res = 1; 40 | while (y) { 41 | if (y & 1) res *= x; 42 | x *= x; 43 | y >>= 1; 44 | } 45 | return res; 46 | } 47 | }; 48 | 49 | -------------------------------------------------------------------------------- /bdelta/compatibility.h: -------------------------------------------------------------------------------- 1 | /* This Source Code Form is subject to the terms of the Mozilla Public 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 | 5 | // Fix for MSVC++, which doesn't support Variable Length Arrays. 6 | #ifdef _MSC_VER 7 | #include 8 | #define STACK_ALLOC(name, type, num) type *name = (type *)alloca(sizeof(type) * num) 9 | 10 | typedef unsigned __int8 uint8_t; 11 | typedef unsigned __int16 uint16_t; 12 | typedef unsigned __int32 uint32_t; 13 | typedef unsigned __int64 uint64_t; 14 | #else 15 | #include 16 | #define STACK_ALLOC(name, type, num) type name[num] 17 | #endif 18 | -------------------------------------------------------------------------------- /bdelta/configure.ac: -------------------------------------------------------------------------------- 1 | ## ExampleLib Example: an example of using Automake to link with a library 2 | 3 | AC_INIT([BDELTA], [3:1], [bernd@net2o.de], [bdelta library], 4 | [https://github.com/jjwhitney/BDelta]) 5 | AC_PREREQ([2.59]) 6 | AM_INIT_AUTOMAKE([1.10 -Wall no-define]) 7 | AC_CONFIG_MACRO_DIR([m4]) 8 | AC_CONFIG_HEADERS([config.h]) 9 | 10 | CFLAGS=${CFLAGS--O2} 11 | 12 | flags="$CFLAGS" 13 | 14 | AC_PROG_CXX 15 | m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 16 | LT_INIT 17 | 18 | PRECC=${CC%gcc*} 19 | PRECLANG=${PRECC%clang*} 20 | dnl MacOS X has a libtool that does something else 21 | AC_CHECK_PROGS(GNU_LIBTOOL,"glibtool --tag=CC" libtool) 22 | 23 | #LIBTOOL=${PRECLANG}${LIBTOOL} 24 | echo "Libtool: $PRECC, $PRECLANG, $LIBTOOL" 25 | 26 | AC_SUBST(LIBTOOL) 27 | AC_SUBST(flags) 28 | AC_CONFIG_FILES([Makefile]) 29 | AC_OUTPUT 30 | -------------------------------------------------------------------------------- /bdelta/debian/changelog: -------------------------------------------------------------------------------- 1 | bdelta (3.0) stable; urgency=low 2 | 3 | * Initial Release 4 | 5 | -- Bernd Paysan Thu, 16 Jun 2016 02:00:21 +0200 6 | -------------------------------------------------------------------------------- /bdelta/debian/compat: -------------------------------------------------------------------------------- 1 | 9 -------------------------------------------------------------------------------- /bdelta/debian/control: -------------------------------------------------------------------------------- 1 | Source: bdelta 2 | Section: programming 3 | Priority: optional 4 | Maintainer: Bernd Paysan 5 | Build-Depends: debhelper, build-essential, gcc, autoconf, automake, libtool, libtool-bin, libc 6 | 7 | Package: bdelta 8 | Version: 3.1 9 | Architecture: any 10 | Depends: ${shlibs:Depends} 11 | Multi-Arch: same 12 | Description: BDelta 13 | BDelta is a library to compute binary diffs. 14 | -------------------------------------------------------------------------------- /bdelta/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Simple debian/rules that uses debhelper. 4 | # Created by Bernd Paysan, in the public domain 5 | 6 | %: 7 | dh $@ 8 | 9 | override_dh_auto_test: 10 | override_dh_shlibdeps: 11 | -------------------------------------------------------------------------------- /bin/gen-icon: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | convert -resize 32x32 $1 res/drawable-ldpi/$2 4 | convert -resize 48x48 $1 res/drawable-mdpi/$2 5 | convert -resize 72x72 $1 res/drawable-hdpi/$2 6 | convert -resize 96x96 $1 res/drawable-xhdpi/$2 7 | convert -resize 144x144 $1 res/drawable-xxhdpi/$2 8 | convert -resize 192x192 $1 res/drawable-xxxhdpi/$2 9 | -------------------------------------------------------------------------------- /bump: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #Usage ./bump major.minor.patch 4 | 5 | RELEASE=$1 6 | OLDRELEASE=$(grep AC_INIT configure.ac | cut -f3 -d'[' | cut -f1 -d'-' | cut -f1 -d']') 7 | if test -z "$RELEASE" 8 | then 9 | RELEASE=$OLDRELEASE 10 | fi 11 | if [ "$RELEASE" = "$OLDRELEASE" ] 12 | then 13 | V="${RELEASE}-$(date +%Y%m%d)" 14 | else 15 | V="${RELEASE}" 16 | fi 17 | GFVER=$(gforth --version 2>&1 | cut -f1-2 -d' ' | tr ' ' '-') 18 | sed -e "s/AC_INIT(\([^ ,]*, *\[\)[0-9._\-]*/AC_INIT(\1$V/g" configure.ac >configure.ac+ && mv configure.ac+ configure.ac 19 | sed -e "s/GFORTH=gforth-[0-9._]*/GFORTH=$GFVER/g" do+ && mv do+ do 20 | make doc 21 | dvcs ci -m "Bump version number" 22 | dvcs tag add $V 23 | git remote | xargs -L 1 -P 4 git push --follow-tags --all 24 | -------------------------------------------------------------------------------- /check: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function check { 4 | md5sum $1/*.jpg | sort | cut -c1-$2 | tr '\n' ':'; echo " $1" 5 | } 6 | check .cache ${1-2} 7 | check data ${1-2} 8 | -------------------------------------------------------------------------------- /csv-import.fs: -------------------------------------------------------------------------------- 1 | \ csv importer (for messages) 2 | 3 | \ Copyright © 2025 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | require csv.fs 19 | 20 | $[]Variable msg-fields[] 21 | 22 | : import-messages ( addr u field line -- ) 23 | 1 = IF 24 | third third msg-group$ $! msg-fields[] $[]! 0 ?load-msgn 25 | msg-group-o .msg:+silent 26 | ELSE msg-fields[] $[]@ 2dup msg-group$ $! >group chat-line THEN ; 27 | 28 | : csv-importer ( addr u -- ) 29 | ['] import-messages read-csv 30 | msg-fields[] [: 2dup msg-group$ $! >group msg-group-o .msg:-silent ;] 31 | $[]map ; 32 | -------------------------------------------------------------------------------- /data/2011-05-13_11-26-57-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-05-13_11-26-57-small.jpg -------------------------------------------------------------------------------- /data/2011-05-13_11-26-57.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-05-13_11-26-57.jpg -------------------------------------------------------------------------------- /data/2011-05-20_17-01-12-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-05-20_17-01-12-small.jpg -------------------------------------------------------------------------------- /data/2011-05-20_17-01-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-05-20_17-01-12.jpg -------------------------------------------------------------------------------- /data/2011-06-02_15-02-38-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-02_15-02-38-small.jpg -------------------------------------------------------------------------------- /data/2011-06-02_15-02-38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-02_15-02-38.jpg -------------------------------------------------------------------------------- /data/2011-06-03_10-26-49-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-03_10-26-49-small.jpg -------------------------------------------------------------------------------- /data/2011-06-03_10-26-49.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-03_10-26-49.jpg -------------------------------------------------------------------------------- /data/2011-06-15_12-27-03-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-15_12-27-03-small.jpg -------------------------------------------------------------------------------- /data/2011-06-15_12-27-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-15_12-27-03.jpg -------------------------------------------------------------------------------- /data/2011-06-24_11-26-36-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-24_11-26-36-small.jpg -------------------------------------------------------------------------------- /data/2011-06-24_11-26-36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-24_11-26-36.jpg -------------------------------------------------------------------------------- /data/2011-06-27_19-33-04-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-27_19-33-04-small.jpg -------------------------------------------------------------------------------- /data/2011-06-27_19-33-04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-27_19-33-04.jpg -------------------------------------------------------------------------------- /data/2011-06-27_19-55-48-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-27_19-55-48-small.jpg -------------------------------------------------------------------------------- /data/2011-06-27_19-55-48.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-27_19-55-48.jpg -------------------------------------------------------------------------------- /data/2011-06-28_06-54-09-small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-28_06-54-09-small.jpg -------------------------------------------------------------------------------- /data/2011-06-28_06-54-09.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/data/2011-06-28_06-54-09.jpg -------------------------------------------------------------------------------- /debian/changelog.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_NAME@ (@PACKAGE_VERSION@) stable; urgency=low 2 | 3 | * Dummy entry 4 | 5 | -- Bernd Paysan Sun, 26 Dec 2010 23:36:38 +0100 6 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 10 2 | -------------------------------------------------------------------------------- /debian/control.in: -------------------------------------------------------------------------------- 1 | Source: @PACKAGE_NAME@ 2 | Section: net 3 | Priority: optional 4 | License: AGPL3+ 5 | Maintainer: Bernd Paysan 6 | Build-Depends: debhelper (>= 4.1.16), build-essential, gcc, autoconf, automake, autotools-dev, libffi-dev, libtool, libtool-bin, libltdl7-dev, libgps-dev, gforth (>= @GFDEBVER@), gforth-minos2tools 7 | 8 | Package: @PACKAGE_NAME@ 9 | Version: @PACKAGE_VERSION@ 10 | Architecture: all 11 | Depends: gforth (>= @GFDEBVER@), @PACKAGE_NAME@-libcc, gforth-minos2tools 12 | Suggests: gpsd, libgps-dev, @PACKAGE_NAME@-gui, libnotify-bin 13 | Description: @PACKAGE_NAME@ protocol stack 14 | net2o reinvents the Internet. Applications include file copy, chat, DHT; 15 | others will follow. 16 | 17 | Package: @PACKAGE_NAME@-gui 18 | Version: @PACKAGE_VERSION@ 19 | Architecture: all 20 | Depends: gforth-minos2 (>= @GFDEBVER@), gforth-minos2audio, gforth-minos2tools, @PACKAGE_NAME@, fonts-emoji, fonts-awesome 21 | Description: @PACKAGE_NAME@ protocol stack 22 | net2o reinvents the Internet. Applications include file copy, chat, DHT; 23 | others will follow. 24 | . 25 | This package is optional and contains GUI and other parts that use OpenGL. 26 | 27 | Package: @PACKAGE_NAME@-tests 28 | Version: @PACKAGE_VERSION@ 29 | Architecture: all 30 | Depends: @PACKAGE_NAME@ 31 | Description: @PACKAGE_NAME@ protocol stack 32 | net2o reinvents the Internet. Applications include file copy, chat, DHT; 33 | others will follow. 34 | . 35 | This package is optional and contains the tests. 36 | 37 | Package: @PACKAGE_NAME@-libcc 38 | Version: @PACKAGE_VERSION@ 39 | Architecture: any 40 | Depends: gforth (>= @GFDEBVER@), keccak-low, threefish, ed25519-prim, bdelta 41 | Description: @PACKAGE_NAME@ protocol stack 42 | net2o reinvents the Internet. Applications include file copy, chat, DHT; 43 | others will follow. 44 | . 45 | These are the architectural dependent C bindings 46 | -------------------------------------------------------------------------------- /debian/net2o.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Postinst for net2o, checks if libgps is available 4 | 5 | case "$1" 6 | in 7 | configure) 8 | echo "$1 net2o" 9 | gforth unix/gpslib.fs -e bye 2>/dev/null || \ 10 | (sed -i -e 's/1 \(\[IF\] \\ gpsd\)/0 \1/g' /usr/bin/n2o 11 | echo "gpslib not available, gpsd support disabled") 12 | ;; 13 | esac 14 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Simple debian/rules that uses debhelper. 4 | # Created by Bernd Paysan, in the public domain 5 | 6 | GFORTH_VER = `sed -e 's/.*gforth (>= \([^)]\+\).*/\1/; 6q' debian/control | tr '-' '_' | tail -n1` 7 | NET2O_VER = `cut -f2 -d\" version.fs | sed -e 's/ //g'` 8 | D = $(CURDIR)/debian/net2o 9 | DL = $(CURDIR)/debian/net2o-libcc 10 | DT = $(CURDIR)/debian/net2o-tests 11 | DG = $(CURDIR)/debian/net2o-gui 12 | SHELL = /bin/bash 13 | 14 | %: 15 | dh $@ 16 | 17 | override_dh_builddeb: 18 | dh_builddeb -- -Zxz 19 | override_dh_auto_test: 20 | override_dh_shlibdeps: 21 | override_dh_auto_build: 22 | make libcc 23 | override_dh_auto_install: 24 | rm -rf $(D) $(DL) $(DT) $(DG) 25 | dh_auto_install -- DESTDIR=$(DL) 26 | mkdir -p $(D)/usr/share/doc/ 27 | mkdir -p $(DT)/usr/share/net2o/$(NET2O_VER)/ 28 | mkdir -p $(DG)/usr/share/net2o/$(NET2O_VER)/ 29 | mv $(DL)/usr/share/net2o/$(NET2O_VER)/tests $(DT)/usr/share/net2o/$(NET2O_VER)/ 30 | mv $(DL)/usr/share/net2o $(D)/usr/share/ 31 | mv $(D)/usr/share/net2o/$(NET2O_VER)/{gui*.fs,qrscan.fs,doc} $(DG)/usr/share/net2o/$(NET2O_VER)/ 32 | mv $(DL)/usr/share/icons $(DG)/usr/share 33 | mv $(DL)/usr/share/applications $(DG)/usr/share 34 | mv $(DL)/usr/bin $(D)/usr/ 35 | rm $(DL)/usr/lib/*/lib*.{a,la,so*} 36 | rm -rf $(DL)/usr/include $(DL)/usr/share 37 | 38 | override_dh_installchangelogs: 39 | fossil timeline --verbose --limit 200 | gzip >$(D)/usr/share/doc/net2o/changelog.gz 40 | rm -rf $(DL)/usr/share/doc 41 | rm -rf $(DT)/usr/share/doc 42 | -------------------------------------------------------------------------------- /default.n2o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/default.n2o -------------------------------------------------------------------------------- /dhtroot.fs: -------------------------------------------------------------------------------- 1 | \ default dhtroot data 2 | 3 | \ Copyright © 2016 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | 85" ~IIV0ZJeF4b8VIGKy;kXRvO*Z%#uVj>w`?m20n!c*_`(z=^#U_^cShx_>*%pu%=TW2JYz74d9LmgS%xC^mFi7GHGJ2fU|6V5=@_=|V?6mWi5_~852s4_&$O870CsN|0CsN|c9Cj$@uaSo&rn2u2KL~NY2#@5F4HEHuY#IJnb{Chf!#p&^y=I+Y&AFGDEK|w(#3RBvWr;D}>?p12moZ2W0" dhtroot-addr$ $! 21 | 22 | -------------------------------------------------------------------------------- /doc/30c3-1.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "VDSL 50, 1 connection" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "30c3/vdsl50-1.tmg" using 1:4 title "Requested" lc rgbcolor "blue",\ 23 | "30c3/vdsl50-1.tmg" using 1:5 title "Rate" lc rgbcolor "cyan",\ 24 | "30c3/vdsl50-1.tmg" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/30c3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/30c3-1.png -------------------------------------------------------------------------------- /doc/30c3-2.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "VDSL 50, 1 of 4 connections" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "30c3/vdsl50-4.1.tmg" using 1:4 title "Requested" lc rgbcolor "blue",\ 23 | "30c3/vdsl50-4.1.tmg" using 1:5 title "Rate" lc rgbcolor "cyan",\ 24 | "30c3/vdsl50-4.1.tmg" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/30c3-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/30c3-2.png -------------------------------------------------------------------------------- /doc/30c3-3.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "WLAN (+VDSL 50), 1 connection" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "30c3/wlan-1.tmg" using 1:4 title "Requested" lc rgbcolor "blue",\ 23 | "30c3/wlan-1.tmg" using 1:5 title "Rate" lc rgbcolor "cyan",\ 24 | "30c3/wlan-1.tmg" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/30c3-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/30c3-3.png -------------------------------------------------------------------------------- /doc/30c3-4.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "WLAN (+VDSL 50), 1 of 4 connections" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "30c3/wlan-4.1.tmg" using 1:4 title "Requested" lc rgbcolor "blue",\ 23 | "30c3/wlan-4.1.tmg" using 1:5 title "Rate" lc rgbcolor "cyan",\ 24 | "30c3/wlan-4.1.tmg" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/30c3-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/30c3-4.png -------------------------------------------------------------------------------- /doc/30c3-5.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "1GBE, 1 connection" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:120] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "30c3/gbe-1.tmg" using 1:4 title "Requested" lc rgbcolor "blue",\ 23 | "30c3/gbe-1.tmg" using 1:5 title "Rate" lc rgbcolor "cyan",\ 24 | "30c3/gbe-1.tmg" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/30c3-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/30c3-5.png -------------------------------------------------------------------------------- /doc/30c3-6.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "1GBE, 1 of 4 connections, 4 servers" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:120] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "30c3/gbe-4.1.tmg" using 1:4 title "Requested" lc rgbcolor "blue",\ 23 | "30c3/gbe-4.1.tmg" using 1:5 title "Rate" lc rgbcolor "cyan",\ 24 | "30c3/gbe-4.1.tmg" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/30c3-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/30c3-6.png -------------------------------------------------------------------------------- /doc/30c3-7.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "1GBE, 1 of 4 connections, single server" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:120] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "30c3/gbe-4.2.tmg" using 1:4 title "Requested" lc rgbcolor "blue",\ 23 | "30c3/gbe-4.2.tmg" using 1:5 title "Rate" lc rgbcolor "cyan",\ 24 | "30c3/gbe-4.2.tmg" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/30c3-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/30c3-7.png -------------------------------------------------------------------------------- /doc/33c3-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/33c3-logo.png -------------------------------------------------------------------------------- /doc/35c3-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/35c3-logo.png -------------------------------------------------------------------------------- /doc/36c3-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/36c3-logo.png -------------------------------------------------------------------------------- /doc/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /doc/bad-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/bad-gateway.png -------------------------------------------------------------------------------- /doc/bank-robs-you.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/bank-robs-you.jpg -------------------------------------------------------------------------------- /doc/beamerthemelankton-keynote-ho.sty: -------------------------------------------------------------------------------- 1 | \renewcommand\sfdefault{phv} 2 | \renewcommand\familydefault{\sfdefault} 3 | \usetheme{default} 4 | \usepackage{color} 5 | \useoutertheme{default} 6 | %\usepackage{texnansi} 7 | %\usepackage{marvosym} 8 | \definecolor{bottomcolour}{rgb}{1,1,1} 9 | \definecolor{middlecolour}{rgb}{1,1,1} 10 | \definecolor{lightgray}{rgb}{0.8,0.8,0.8} 11 | \setbeamerfont{title}{size=\Huge} 12 | \setbeamercolor{structure}{fg=black} 13 | \setbeamertemplate{frametitle}[default]%[center] 14 | \setbeamercolor{normal text}{bg=white, fg=black} 15 | \setbeamercolor{background canvas}{bg=white, fg=white} 16 | \setbeamertemplate{items}[circle] 17 | \setbeamerfont{frametitle}{size=\huge} 18 | \setbeamertemplate{navigation symbols}{} %no nav symbols 19 | \setbeamercolor{block title}{parent=normal text, bg=gray} 20 | \setbeamercolor{block body}{parent=normal text, use=block title,bg=lightgray} 21 | \setbeamercolor{section in toc}{use=structure,parent=structure,fg=structure.fg!50} 22 | %\setbeamercolor{titlelike}{parent=structure,fg=white} 23 | -------------------------------------------------------------------------------- /doc/beamerthemelankton-keynote.sty: -------------------------------------------------------------------------------- 1 | \renewcommand\sfdefault{phv} 2 | \renewcommand\familydefault{\sfdefault} 3 | \usetheme{default} 4 | \usepackage{color} 5 | \useoutertheme{default} 6 | %\usepackage{texnansi} 7 | %\usepackage{marvosym} 8 | \definecolor{bottomcolour}{rgb}{0.32,0.3,0.38} 9 | \definecolor{middlecolour}{rgb}{0.08,0.08,0.16} 10 | \setbeamerfont{title}{size=\Huge} 11 | \setbeamercolor{structure}{fg=gray} 12 | \setbeamertemplate{frametitle}[default]%[center] 13 | \setbeamercolor{normal text}{bg=black, fg=white} 14 | \setbeamertemplate{background canvas}[vertical shading] 15 | [bottom=bottomcolour, middle=middlecolour, top=black] 16 | \setbeamertemplate{items}[circle] 17 | \setbeamerfont{frametitle}{size=\huge} 18 | \setbeamertemplate{navigation symbols}{} %no nav symbols 19 | \setbeamercolor{block title}{parent=normal text, bg=gray} 20 | \setbeamercolor{block body}{parent=normal text, use=block title,bg=block title.bg!10!black} 21 | \setbeamercolor{section in toc}{use=structure,parent=structure,fg=structure.fg!50} 22 | %\setbeamercolor{titlelike}{parent=structure,fg=white} 23 | -------------------------------------------------------------------------------- /doc/biggest-breaches.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/biggest-breaches.png -------------------------------------------------------------------------------- /doc/bitcoin-bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/bitcoin-bubble.png -------------------------------------------------------------------------------- /doc/bufferused.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 Produced by xfig version 3.2.5b 2 | Landscape 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 0 32 #e0e0e0 11 | 2 3 0 2 4 2 50 -1 20 0.000 0 0 -1 0 0 5 12 | 5850 2700 8100 4050 8100 3825 5850 2475 5850 2700 13 | 2 2 0 2 4 7 50 -1 -1 0.000 0 0 -1 0 0 5 14 | 8100 2700 10350 2700 10350 4050 8100 4050 8100 2700 15 | 2 3 0 2 4 2 50 -1 -1 0.000 0 0 -1 0 0 5 16 | 10350 4050 12150 4950 12150 4500 10350 3600 10350 4050 17 | 2 2 0 0 4 2 51 -1 20 0.000 0 0 -1 0 0 5 18 | 8100 3825 10350 3825 10350 4050 8100 4050 8100 3825 19 | 2 3 0 0 4 2 51 -1 20 0.000 0 0 -1 0 0 5 20 | 10350 4050 10350 3825 12150 4725 12150 4950 10350 4050 21 | 2 2 0 2 4 2 50 -1 -1 0.000 0 0 -1 0 0 5 22 | 3600 1350 5850 1350 5850 2700 3600 2700 3600 1350 23 | 2 3 0 2 4 2 50 -1 -1 0.000 0 0 -1 0 0 5 24 | 450 675 450 1125 3600 2700 3600 2250 450 675 25 | 2 3 0 0 4 2 51 -1 20 0.000 0 0 -1 0 0 5 26 | 450 1125 450 900 3600 2475 3600 2700 450 1125 27 | 2 3 0 0 4 2 51 -1 20 0.000 0 0 -1 0 0 5 28 | 3600 2475 5850 2475 5850 2700 3600 2700 3600 2475 29 | -------------------------------------------------------------------------------- /doc/bugs-pie.dat: -------------------------------------------------------------------------------- 1 | 0.44 Specification 2 | 0.15 Design\&implementation 3 | 0.06 Installation\&commissioning 4 | 0.15 Operation\&maintenance 5 | 0.20 Changes~after~comissioning -------------------------------------------------------------------------------- /doc/bugs-pie.pyx: -------------------------------------------------------------------------------- 1 | set palette yellow, red, blue, orange, green 2 | set width 6 3 | set terminal pdf color 4 | set preamble r"\renewcommand{\familydefault}{\sfdefault}" 5 | set output "bugs-pie.pdf" 6 | piechart 'bugs-pie.dat' using $1 label key "%s"%($2) 7 | -------------------------------------------------------------------------------- /doc/chao.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/chao.jpg -------------------------------------------------------------------------------- /doc/cloudcalypse-16-9-corona.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/cloudcalypse-16-9-corona.jpg -------------------------------------------------------------------------------- /doc/cloudcalypse-16-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/cloudcalypse-16-9.jpg -------------------------------------------------------------------------------- /doc/colorqr2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/colorqr2.png -------------------------------------------------------------------------------- /doc/cryptonerd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/cryptonerd.png -------------------------------------------------------------------------------- /doc/datenkrake.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/datenkrake.jpg -------------------------------------------------------------------------------- /doc/duty_calls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/duty_calls.png -------------------------------------------------------------------------------- /doc/edinburgh-coa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/edinburgh-coa.jpg -------------------------------------------------------------------------------- /doc/feiqian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/feiqian.png -------------------------------------------------------------------------------- /doc/feynman-diag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/feynman-diag.png -------------------------------------------------------------------------------- /doc/fonts/Imprima-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Imprima-Regular.ttf -------------------------------------------------------------------------------- /doc/fonts/Imprima-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Imprima-Regular.woff -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Bold Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Bold Italic.ttf -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Bold Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Bold Italic.woff -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Bold.ttf -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Bold.woff -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Light Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Light Italic.ttf -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Light Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Light Italic.woff -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Light.ttf -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Light.woff -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Regular Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Regular Italic.ttf -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Regular Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Regular Italic.woff -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Regular.ttf -------------------------------------------------------------------------------- /doc/fonts/Tepeno Sans Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/fonts/Tepeno Sans Regular.woff -------------------------------------------------------------------------------- /doc/free-market.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/free-market.jpg -------------------------------------------------------------------------------- /doc/genhandout.tex: -------------------------------------------------------------------------------- 1 | \documentclass[a4paper, portrait]{article} 2 | \usepackage{pdfpages} 3 | \begin{document} 4 | \includepdf[pages=-,nup= 2x5,frame= false, delta=0mm 0mm, trim=-10mm 0 -10mm 0]{net2o-al3-ho} 5 | \end{document} -------------------------------------------------------------------------------- /doc/google-takeout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/google-takeout.png -------------------------------------------------------------------------------- /doc/hidden-service-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/hidden-service-logo.png -------------------------------------------------------------------------------- /doc/horsemen-apocalypse.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/horsemen-apocalypse.jpg -------------------------------------------------------------------------------- /doc/huizi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/huizi.png -------------------------------------------------------------------------------- /doc/indian-script-map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/indian-script-map.jpg -------------------------------------------------------------------------------- /doc/ledger-stage1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/ledger-stage1.png -------------------------------------------------------------------------------- /doc/ledger-stage2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/ledger-stage2.png -------------------------------------------------------------------------------- /doc/net2o-200-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-200-green.png -------------------------------------------------------------------------------- /doc/net2o-200-green.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-200-green.xcf -------------------------------------------------------------------------------- /doc/net2o-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-200.png -------------------------------------------------------------------------------- /doc/net2o-30c3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-30c3.pdf -------------------------------------------------------------------------------- /doc/net2o-31c3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-31c3.pdf -------------------------------------------------------------------------------- /doc/net2o-32c3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-32c3.pdf -------------------------------------------------------------------------------- /doc/net2o-33c3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-33c3.pdf -------------------------------------------------------------------------------- /doc/net2o-8-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-8-3.pdf -------------------------------------------------------------------------------- /doc/net2o-al2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-al2.pdf -------------------------------------------------------------------------------- /doc/net2o-cmd.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-cmd.pdf -------------------------------------------------------------------------------- /doc/net2o-cmd2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-cmd2.pdf -------------------------------------------------------------------------------- /doc/net2o-ef2016.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-ef2016.pdf -------------------------------------------------------------------------------- /doc/net2o-logo-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-logo-green.png -------------------------------------------------------------------------------- /doc/net2o-logo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-logo.pdf -------------------------------------------------------------------------------- /doc/net2o-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-logo.png -------------------------------------------------------------------------------- /doc/net2o-minos2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-minos2.png -------------------------------------------------------------------------------- /doc/net2o-qr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-qr.png -------------------------------------------------------------------------------- /doc/net2o-squid-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-squid-200.png -------------------------------------------------------------------------------- /doc/net2o-squid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-squid.png -------------------------------------------------------------------------------- /doc/net2o-tl-imp.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-tl-imp.pdf -------------------------------------------------------------------------------- /doc/net2o-tl2-ho.tex: -------------------------------------------------------------------------------- 1 | \documentclass[a4paper]{article} 2 | \usepackage{pdfpages} 3 | \usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry} 4 | 5 | \begin{document} 6 | \includepdf[pages=1-last,nup=2x4,landscape=false,frame=true, 7 | noautoscale=true,scale=0.75,delta=0mm 0mm]{net2o-tl2.pdf} 8 | \end{document} -------------------------------------------------------------------------------- /doc/net2o-tl2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o-tl2.pdf -------------------------------------------------------------------------------- /doc/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o.png -------------------------------------------------------------------------------- /doc/net2o_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/net2o_notify.png -------------------------------------------------------------------------------- /doc/pdf2png: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p $1 4 | 5 | gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r203.17 -g1280x720 \ 6 | -dTextAlphaBits=4 -sOutputFile="$1/slides-%02d.png" $1.pdf 7 | 8 | ls -C1 $1/slides-*.png >$1/slide.lst 9 | -------------------------------------------------------------------------------- /doc/perscheid-flacherdler-fb-sperre.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/perscheid-flacherdler-fb-sperre.jpg -------------------------------------------------------------------------------- /doc/perscheid-gesperrt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/perscheid-gesperrt.jpg -------------------------------------------------------------------------------- /doc/poster.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/poster.pdf -------------------------------------------------------------------------------- /doc/qr-code-inv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/qr-code-inv.png -------------------------------------------------------------------------------- /doc/qr-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/qr-code.png -------------------------------------------------------------------------------- /doc/rome-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/rome-logo.png -------------------------------------------------------------------------------- /doc/sand_dunes_police_ai_porn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/sand_dunes_police_ai_porn.jpg -------------------------------------------------------------------------------- /doc/shell-coins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/shell-coins.png -------------------------------------------------------------------------------- /doc/snowden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/snowden.png -------------------------------------------------------------------------------- /doc/spam-2016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/spam-2016.jpg -------------------------------------------------------------------------------- /doc/spam-2017.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/spam-2017.jpg -------------------------------------------------------------------------------- /doc/squid-logo-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/squid-logo-200.png -------------------------------------------------------------------------------- /doc/squid-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/squid-logo.png -------------------------------------------------------------------------------- /doc/standards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/standards.png -------------------------------------------------------------------------------- /doc/tangocolors.sty: -------------------------------------------------------------------------------- 1 | % Defines the tango palette for use with LaTeX. 2 | % 3 | % Copyright 2006 by Patrick Pletscher 4 | % 5 | % This program can be redistributed and/or modified under the terms 6 | % of the GNU Public License, version 2. 7 | 8 | % butter (yellowish) 9 | \definecolor{tabutter}{rgb}{0.98824, 0.91373, 0.30980} % #fce94f 10 | \definecolor{ta2butter}{rgb}{0.92941, 0.83137, 0} % #edd400 11 | \definecolor{ta3butter}{rgb}{0.76863, 0.62745, 0} % #c4a000 12 | 13 | % orange 14 | \definecolor{taorange}{rgb}{0.98824, 0.68627, 0.24314} % #fcaf3e 15 | \definecolor{ta2orange}{rgb}{0.96078, 0.47451, 0} % #f57900 16 | \definecolor{ta3orange}{rgb}{0.80784, 0.36078, 0} % #ce5c00 17 | 18 | % chocolate (brownish) 19 | \definecolor{tachocolate}{rgb}{0.91373, 0.72549, 0.43137} % #e9b96e 20 | \definecolor{ta2chocolate}{rgb}{0.75686, 0.49020, 0.066667} % #c17d11 21 | \definecolor{ta3chocolate}{rgb}{0.56078, 0.34902, 0.0078431} % #8f5902 22 | 23 | % chameleon (greenish) 24 | \definecolor{tachameleon}{rgb}{0.54118, 0.88627, 0.20392} % #8ae234 25 | \definecolor{ta2chameleon}{rgb}{0.45098, 0.82353, 0.086275} % #73d216 26 | \definecolor{ta3chameleon}{rgb}{0.30588, 0.60392, 0.023529} % #4e9a06 27 | 28 | % sky blue 29 | \definecolor{taskyblue}{rgb}{0.44706, 0.56078, 0.81176} % #728fcf 30 | \definecolor{ta2skyblue}{rgb}{0.20392, 0.39608, 0.64314} % #3465a4 31 | \definecolor{ta3skyblue}{rgb}{0.12549, 0.29020, 0.52941} % #204a87 32 | 33 | % plum (violettish) 34 | \definecolor{taplum}{rgb}{0.67843, 0.49804, 0.65882} % #ad7fa8 35 | \definecolor{ta2plum}{rgb}{0.45882, 0.31373, 0.48235} % #75507b 36 | \definecolor{ta3plum}{rgb}{0.36078, 0.20784, 0.4} % #5c3566 37 | 38 | % scarlet red 39 | \definecolor{tascarletred}{rgb}{0.93725, 0.16078, 0.16078} % #ef2929 40 | \definecolor{ta2scarletred}{rgb}{0.8, 0, 0} % #cc0000 41 | \definecolor{ta3scarletred}{rgb}{0.64314, 0, 0} % #a40000 42 | 43 | % aluminium 44 | \definecolor{taaluminium}{rgb}{0.93333, 0.93333, 0.92549} % #eeeeec 45 | \definecolor{ta2aluminium}{rgb}{0.82745, 0.84314, 0.81176} % #d3d7cf 46 | \definecolor{ta3aluminium}{rgb}{0.72941, 0.74118, 0.71373} % #babdb6 47 | 48 | % gray 49 | \definecolor{tagray}{rgb}{0.53333, 0.54118, 0.52157} % #888a85 50 | \definecolor{ta2gray}{rgb}{0.33333, 0.34118, 0.32549} % #555753 51 | \definecolor{ta3gray}{rgb}{0.18039, 0.20392, 0.21176} % #2e3436 52 | -------------------------------------------------------------------------------- /doc/timing.gp: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "Transfer" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set key textcolor rgbcolor "green" 12 | set border 31 lc rgbcolor "green" 13 | set style line 1 lc rgbcolor "red" 14 | set style line 2 lc rgbcolor "#00ffff" 15 | set style line 3 lc rgbcolor "blue" 16 | set xlabel "time [s]" 17 | set ylabel "Rate [MB/s]" 18 | set y2label "Slack [ms]" 19 | plot "timing" using 1:4 title "Requested",\ 20 | "timing" using 1:5 title "Rate",\ 21 | "timing" using 1:3 axis x1y2 title "Slack" 22 | -------------------------------------------------------------------------------- /doc/timing.plt: -------------------------------------------------------------------------------- 1 | set terminal qt font ",12" size 1280, 720 2 | set style data lines 3 | set grid #lc rgbcolor "green" 4 | set title "Transfer" #textcolor rgbcolor "green" 5 | #set xtics textcolor rgbcolor "green" 6 | #set ytics textcolor rgbcolor "green" 7 | set y2tics #textcolor rgbcolor "green" 8 | #set xlabel textcolor rgbcolor "green" 9 | #set ylabel textcolor rgbcolor "green" 10 | #set y2label textcolor rgbcolor "green" 11 | #set key textcolor rgbcolor "green" 12 | #set border 31 lc rgbcolor "green" 13 | set style line 1 lc rgbcolor "red" lw 4 14 | set style line 2 lc rgbcolor "#00ffff" lw 4 15 | set style line 3 lc rgbcolor "blue" lw 4 16 | set xlabel "time [s]" 17 | set ylabel "Rate [MB/s]" 18 | set y2label "Slack [ms]" 19 | plot "timing0" using 1:4 title "Requested",\ 20 | "timing0" using 1:5 title "Rate",\ 21 | "timing0" using 1:3 axis x1y2 title "Slack", \ 22 | "timing0" using 1:6 axis x1y2 title "Grow" 23 | 24 | -------------------------------------------------------------------------------- /doc/timing4.plt: -------------------------------------------------------------------------------- 1 | set terminal qt font ",8" size 1280, 640 2 | set style data lines 3 | set grid #lc rgbcolor "green" 4 | set title "Transfer" #textcolor rgbcolor "green" 5 | #set xtics textcolor rgbcolor "green" 6 | #set ytics textcolor rgbcolor "green" 7 | set y2tics #textcolor rgbcolor "green" 8 | #set xlabel textcolor rgbcolor "green" 9 | #set ylabel textcolor rgbcolor "green" 10 | #set y2label textcolor rgbcolor "green" 11 | #set key textcolor rgbcolor "green" 12 | #set border 31 lc rgbcolor "green" 13 | set style line 1 lc rgbcolor "red" lw 4 14 | set style line 2 lc rgbcolor "#00ffff" lw 4 15 | set style line 3 lc rgbcolor "blue" lw 4 16 | set xlabel "time [s]" 17 | set ylabel "Rate [MB/s]" 18 | set y2label "Slack [ms]" 19 | set multiplot layout 2, 2 rowsfirst 20 | #set term wxt 0 21 | plot "timing1" using 2:4 title "Requested", "timing2" using 2:4 title "Requested", "timing3" using 2:4 title "Requested", "timing0" using 2:4 title "Requested" 22 | #set term wxt 1 23 | plot "timing1" using 2:5 title "Rate", "timing2" using 2:5 title "Rate", "timing3" using 2:5 title "Rate", "timing0" using 2:5 title "Rate" 24 | #set term wxt 2 25 | plot "timing1" using 2:3 axis x1y2 title "Slack", "timing2" using 2:3 axis x1y2 title "Slack", "timing3" using 2:3 axis x1y2 title "Slack", "timing0" using 2:3 axis x1y2 title "Slack" 26 | #set term wxt 3 27 | plot "timing1" using 2:6 axis x1y2 title "Grow", "timing2" using 2:6 axis x1y2 title "Grow", "timing3" using 2:6 axis x1y2 title "Grow", "timing0" using 2:6 axis x1y2 title "Grow" 28 | 29 | -------------------------------------------------------------------------------- /doc/timings.plt: -------------------------------------------------------------------------------- 1 | set terminal qt font ",8" size 1280, 640 2 | set style data lines 3 | set grid #lc rgbcolor "green" 4 | set title "Transfer" #textcolor rgbcolor "green" 5 | #set xtics textcolor rgbcolor "green" 6 | #set ytics textcolor rgbcolor "green" 7 | set y2tics #textcolor rgbcolor "green" 8 | #set xlabel textcolor rgbcolor "green" 9 | #set ylabel textcolor rgbcolor "green" 10 | #set y2label textcolor rgbcolor "green" 11 | #set key textcolor rgbcolor "green" 12 | #set border 31 lc rgbcolor "green" 13 | set style line 1 lc rgbcolor "red" lw 4 14 | set style line 2 lc rgbcolor "#00ffff" lw 4 15 | set style line 3 lc rgbcolor "blue" lw 4 16 | set xlabel "time [s]" 17 | set ylabel "Rate [MB/s]" 18 | set y2label "Slack [ms]" 19 | set multiplot layout 2, 2 rowsfirst 20 | #set term wxt 0 21 | #set term wxt 1 22 | set title "timing0" #textcolor rgbcolor "green" 23 | plot "timing0" using 1:4 title "Requested",\ 24 | "timing0" using 1:5 title "Rate",\ 25 | "timing0" using 1:3 axis x1y2 title "Slack", \ 26 | "timing0" using 1:6 axis x1y2 title "Grow" 27 | #set term wxt 2 28 | set title "timing1" #textcolor rgbcolor "green" 29 | plot "timing1" using 1:4 title "Requested",\ 30 | "timing1" using 1:5 title "Rate",\ 31 | "timing1" using 1:3 axis x1y2 title "Slack", \ 32 | "timing1" using 1:6 axis x1y2 title "Grow" 33 | #set term wxt 3 34 | set title "timing2" #textcolor rgbcolor "green" 35 | plot "timing2" using 1:4 title "Requested",\ 36 | "timing2" using 1:5 title "Rate",\ 37 | "timing2" using 1:3 axis x1y2 title "Slack", \ 38 | "timing2" using 1:6 axis x1y2 title "Grow" 39 | #unset multiplot 40 | set title "timing3" #textcolor rgbcolor "green" 41 | plot "timing3" using 1:4 title "Requested",\ 42 | "timing3" using 1:5 title "Rate",\ 43 | "timing3" using 1:3 axis x1y2 title "Slack", \ 44 | "timing3" using 1:6 axis x1y2 title "Grow" 45 | -------------------------------------------------------------------------------- /doc/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/user.png -------------------------------------------------------------------------------- /doc/vdsl.gp: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "VDSL transfer" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set key textcolor rgbcolor "green" 8 | set border 31 lc rgbcolor "green" 9 | set style line 1 lc rgbcolor "red" 10 | set style line 2 lc rgbcolor "#00ffff" 11 | set style line 3 lc rgbcolor "blue" 12 | plot "slack-vdsl" using ($1 / 1000000) title "slack (ms)" linestyle 1,\ 13 | "rate-vdsl" using (32768000 / $1) title "rate (MB/s)" linestyle 2,\ 14 | "rate-send-vdsl" using (32768000 / $1) title "req. rate (MB/s)" linestyle 3 15 | quit 16 | -------------------------------------------------------------------------------- /doc/vdsl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/vdsl.png -------------------------------------------------------------------------------- /doc/vdsl1-0.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "VDSL 4 connections" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "ef2012/vdsl1/timing0" using 1:5 title "Rate" lc rgbcolor "cyan",\ 23 | "ef2012/vdsl1/timing0" using 1:4 title "Requested" lc rgbcolor "blue",\ 24 | "ef2012/vdsl1/timing0" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/vdsl1-1.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "VDSL 4 connections" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "ef2012/vdsl1/timing1" using 1:5 title "Rate" lc rgbcolor "cyan",\ 23 | "ef2012/vdsl1/timing1" using 1:4 title "Requested" lc rgbcolor "blue",\ 24 | "ef2012/vdsl1/timing1" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/vdsl1.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "VDSL 1 connection" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "ef2012/vdsl1/timing" using 1:5 title "Rate" lc rgbcolor "cyan",\ 23 | "ef2012/vdsl1/timing" using 1:4 title "Requested" lc rgbcolor "blue",\ 24 | "ef2012/vdsl1/timing" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/wlan.gp: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "WLAN transfer" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set key textcolor rgbcolor "green" 8 | set border 31 lc rgbcolor "green" 9 | set style line 1 lc rgbcolor "red" 10 | set style line 2 lc rgbcolor "#00ffff" 11 | set style line 3 lc rgbcolor "blue" 12 | plot "slack-wlan" using ($1 / 1000000) title "slack (ms)" linestyle 1,\ 13 | "rate-wlan" using (32768000 / $1) title "rate (MB/s)" linestyle 2,\ 14 | "rate-send-wlan" using (32768000 / $1) title "req. rate (MB/s)" linestyle 3 15 | quit 16 | -------------------------------------------------------------------------------- /doc/wlan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/wlan.png -------------------------------------------------------------------------------- /doc/wlan1-0.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "WLAN 4 connections" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "ef2012/wlan1/timing0" using 1:5 title "Rate" lc rgbcolor "cyan",\ 23 | "ef2012/wlan1/timing0" using 1:4 title "Requested" lc rgbcolor "blue",\ 24 | "ef2012/wlan1/timing0" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/wlan1-1.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "WLAN 4 connections" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "ef2012/wlan1/timing1" using 1:5 title "Rate" lc rgbcolor "cyan",\ 23 | "ef2012/wlan1/timing1" using 1:4 title "Requested" lc rgbcolor "blue",\ 24 | "ef2012/wlan1/timing1" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/wlan1-2.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "WLAN 4 connections" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "ef2012/wlan1/timing2" using 1:5 title "Rate" lc rgbcolor "cyan",\ 23 | "ef2012/wlan1/timing2" using 1:4 title "Requested" lc rgbcolor "blue",\ 24 | "ef2012/wlan1/timing2" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/wlan1.plt: -------------------------------------------------------------------------------- 1 | set terminal pngcairo transparent linewidth 4 font ",24" size 1280, 720 2 | set style data lines 3 | set grid lc rgbcolor "green" 4 | set title "WLAN 1 connection" textcolor rgbcolor "green" 5 | set xtics textcolor rgbcolor "green" 6 | set ytics textcolor rgbcolor "green" 7 | set y2tics textcolor rgbcolor "green" 8 | set xlabel textcolor rgbcolor "green" 9 | set ylabel textcolor rgbcolor "green" 10 | set y2label textcolor rgbcolor "green" 11 | set yrange [0:8] 12 | set y2range [0:40] 13 | set key textcolor rgbcolor "green" 14 | set border 31 lc rgbcolor "green" 15 | #set style line 1 lc rgbcolor "red" 16 | #set style line 2 lc rgbcolor "cyan" 17 | #set style line 3 lc rgbcolor "blue" 18 | set xlabel "time [s]" 19 | set ylabel "Rate [MB/s]" 20 | set y2label "Slack [ms]" 21 | plot \ 22 | "ef2012/wlan1/timing" using 1:5 title "Rate" lc rgbcolor "cyan",\ 23 | "ef2012/wlan1/timing" using 1:4 title "Requested" lc rgbcolor "blue",\ 24 | "ef2012/wlan1/timing" using 1:3 axis x1y2 title "Slack" lc rgbcolor "red" 25 | 26 | -------------------------------------------------------------------------------- /doc/worms-wappen-swap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/worms-wappen-swap.png -------------------------------------------------------------------------------- /doc/worms-wappen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/worms-wappen.png -------------------------------------------------------------------------------- /doc/zooko.fig: -------------------------------------------------------------------------------- 1 | #FIG 3.2 Produced by xfig version 3.2.5c 2 | Landscape 3 | Center 4 | Metric 5 | A4 6 | 100.00 7 | Single 8 | -2 9 | 1200 2 10 | 0 32 #003300 11 | 2 3 0 5 6 32 50 -1 -1 0.000 0 0 0 0 0 4 12 | 4500 1350 1382 6750 7618 6750 4500 1350 13 | 4 1 4 50 -1 16 72 0.0000 4 915 4440 4500 1125 Merkbar\001 14 | 4 1 3 50 -1 16 72 1.0472 4 915 3495 8325 7200 Global\001 15 | 4 1 2 50 -1 16 72 5.2360 4 915 3435 675 7200 Sicher\001 16 | 4 1 2 50 -1 16 36 5.2360 4 570 2415 0 7650 eindeutig\001 17 | 4 1 7 50 -1 16 36 5.2360 4 450 2955 6300 4050 Nicknames\001 18 | 4 1 7 50 -1 16 36 1.0472 4 450 2685 2700 4050 Petnames\001 19 | 4 1 7 50 -1 16 36 0.0000 4 465 2565 4500 6525 Schl\374ssel\001 20 | 4 1 3 50 -1 16 36 1.0472 4 450 2745 9000 7650 kontextfrei\001 21 | -------------------------------------------------------------------------------- /doc/zwiebel/2013-04-16 18.31.34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/zwiebel/2013-04-16 18.31.34.jpg -------------------------------------------------------------------------------- /doc/zwiebel/2013-04-16 18.32.14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/zwiebel/2013-04-16 18.32.14.jpg -------------------------------------------------------------------------------- /doc/zwiebel/2013-04-16 18.32.30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/doc/zwiebel/2013-04-16 18.32.30.jpg -------------------------------------------------------------------------------- /docker/runner/Dockerfile.gui: -------------------------------------------------------------------------------- 1 | ARG MAINT=forthy42 2 | 3 | FROM $MAINT/net2o:latest 4 | LABEL maintainer="Bernd Paysan " 5 | ENV LANG en_US.UTF-8 6 | ENV XAUTHORITY /home/gforth/.Xauthority 7 | 8 | USER root 9 | 10 | RUN apk add --no-cache mesa-gles libx11 libxrandr \ 11 | harfbuzz opus pulseaudio mesa-dri-gallium 12 | 13 | COPY pulse-client.conf /etc/pulse/client.conf 14 | 15 | USER gforth 16 | 17 | RUN mkdir -p /home/gforth/.config 18 | 19 | USER root 20 | 21 | ENTRYPOINT ["n2o", "gui"] 22 | -------------------------------------------------------------------------------- /docker/runner/Dockerfile.gui+fonts: -------------------------------------------------------------------------------- 1 | ARG MAINT=forthy42 2 | 3 | FROM $MAINT/net2o-gui:latest 4 | LABEL maintainer="Bernd Paysan " 5 | ENV LANG en_US.UTF-8 6 | ENV XAUTHORITY /home/gforth/.Xauthority 7 | 8 | USER root 9 | 10 | RUN apk add --no-cache font-noto-all font-noto-cjk font-noto-emoji ttf-font-awesome 11 | 12 | COPY pulse-client.conf /etc/pulse/client.conf 13 | 14 | USER gforth 15 | 16 | RUN mkdir -p /home/gforth/.config 17 | 18 | USER root 19 | 20 | ENTRYPOINT ["n2o", "gui"] 21 | -------------------------------------------------------------------------------- /docker/runner/Dockerfile.in: -------------------------------------------------------------------------------- 1 | ARG MAINT=forthy42 2 | 3 | FROM $MAINT/gforth:latest 4 | 5 | LABEL maintainer="Bernd Paysan " 6 | 7 | # change to trunk 8 | 9 | VOLUME /net2o 10 | WORKDIR /net2o 11 | USER root 12 | ENV USER=root 13 | ENV LANG=C.UTF-8 14 | ENV NET2O_CONF=/net2o/config 15 | 16 | RUN apk add --no-cache --virtual .build-deps build-base \ 17 | git m4 file libtool libffi-dev libltdl g++ mesa-dev libx11-dev \ 18 | autoconf automake boost zlib-dev coreutils mesa-gles bash \ 19 | && cd /tmp \ 20 | && env \ 21 | && git clone --branch "@VERSION@" https://github.com/forthy42/net2o.git \ 22 | && cd net2o \ 23 | && git clone https://github.com/forthy42/ed25519-donna.git \ 24 | && ./autogen.sh --prefix=/usr \ 25 | && make no-config && make install-libs \ 26 | && make libcc \ 27 | && make install libcc-install \ 28 | && cd / \ 29 | && apk del .build-deps \ 30 | && apk add --no-cache libstdc++ libgcc \ 31 | && rm -rf /tmp/net2o 32 | 33 | CMD [ "n2o" ] 34 | 35 | ENTRYPOINT ["n2o"] 36 | -------------------------------------------------------------------------------- /docker/runner/README.md: -------------------------------------------------------------------------------- 1 | # net2o in a container 2 | 3 | see https://fossil.net2o.de for more information 4 | 5 | Uses the directory `~/net2o` of the docker host to store 6 | persistent data such as keys or chat logs. Inside the container 7 | this directory is called `/net2o` regardless where it is on the 8 | host -- see the `-v` option below. 9 | 10 | ```shell 11 | $ mkdir ~/net2o 12 | ``` 13 | 14 | Put a config text file in the `~/net2o` directory. Note the 15 | slightly different pathnames. 16 | 17 | ```shell 18 | $ cat ~/net2o/config 19 | date=2 20 | chats="/net2o/chats" 21 | keys="/net2o/keys" 22 | .net2o="/net2o" 23 | $ 24 | ``` 25 | optionally copy *other* existing net2o files into this directory keeping the 26 | directory structure intact. 27 | 28 | Fetch your container 29 | 30 | ```shell 31 | $ docker pull forthy42/net2o 32 | ``` 33 | 34 | Now run the container 35 | 36 | ```shell 37 | $ docker run -ti --rm -v ~/net2o:/net2o --user $(id -u):$(id -g) forthy42/net2o keylist 38 | Passphrase: •••••• 39 | ==== opened: .... 40 | $ docker run -ti --rm -v ~/net2o:/net2o --user $(id -u):$(id -g) forthy42/net2o chat groupname 41 | Passphrase: •••••• 42 | ==== opened: .... 43 | ... 44 | /bye 45 | $ 46 | ``` 47 | 48 | Hint: use a shell alias to shorten the command line 49 | 50 | ```shell 51 | $ alias n2o="docker run -ti --rm -v ~/net2o:/net2o --user $(id -u):$(id -g) forthy42/net2o" 52 | $ n2o keylist 53 | ... 54 | $ n2o chat group@user 55 | .... 56 | ``` 57 | -------------------------------------------------------------------------------- /docker/runner/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | eval $(n2o version | head -1 | while read NVERSION GFORTHVERSION; do GFORTHVERSION=${GFORTHVERSION%-*}; echo NVERSION=${NVERSION#*-} GFORTHVERSION=${GFORTHVERSION##*-}; done) 4 | sed -e "s/@VERSION@/$NVERSION/g" Dockerfile 5 | 6 | sudo docker build --network host -t forthy42/net2o:latest . 7 | sudo docker build --network host -f Dockerfile.gui -t forthy42/net2o-gui:latest . 8 | sudo docker build --network host -f Dockerfile.gui+fonts -t forthy42/net2o-gui-fonts:latest . 9 | if [ "$1" != "nopush" ] 10 | then 11 | docker push forthy42/net2o:latest 12 | docker push forthy42/net2o-gui:latest 13 | docker push forthy42/net2o-gui-fonts:latest 14 | fi 15 | -------------------------------------------------------------------------------- /docker/runner/net2o.alias: -------------------------------------------------------------------------------- 1 | alias net2odk="docker run -ti --rm -v ~/net2o.dk:/net2o --user $(id -u):$(id -g) forthy42/net2o" 2 | alias net2o-guidk="docker run -ti --rm -v ~/net2o.dk:/net2o --user $(id -u):$(id -g) -e USER=$USER -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /dev/dri:/dev/dri -v /usr/share/fonts:/usr/share/fonts -v $XAUTHORITY:/home/gforth/.Xauthority -v ~/.fonts:/home/gforth/.fonts -v ${XDG_RUNTIME_DIR}/pulse:/run/user/1000/pulse forthy42/net2o-gui" 3 | alias net2o-gui-fontsdk="docker run -ti --rm -v ~/net2o.dk:/net2o --user $(id -u):$(id -g) -e USER=$USER -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix/ -v /dev/dri:/dev/dri -v $XAUTHORITY:/home/gforth/.Xauthority -v ~/.fonts:/home/gforth/.fonts -v ${XDG_RUNTIME_DIR}/pulse:/run/user/1000/pulse forthy42/net2o-gui-fonts" 4 | -------------------------------------------------------------------------------- /docker/runner/pulse-client.conf: -------------------------------------------------------------------------------- 1 | # Connect to the host's server using the mounted UNIX socket 2 | default-server = unix:/run/user/1000/pulse/native 3 | 4 | # Prevent a server running in the container 5 | autospawn = no 6 | daemon-binary = /bin/true 7 | 8 | # Prevent the use of shared memory 9 | enable-shm = false 10 | -------------------------------------------------------------------------------- /ed25519-donnafast.fs: -------------------------------------------------------------------------------- 1 | \ net2o template for new files 2 | 3 | \ Copyright © 2015 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | require rec-scope.fs 19 | 20 | c-library ed25519_donnafast 21 | "ed25519primsfast" add-lib 22 | \ "ed25519-donna/.libs" add-libpath \ find library during build 23 | include ed25519-donnalib.fs 24 | end-c-library 25 | -------------------------------------------------------------------------------- /flatpak/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | GPG_ID=${GPG_ID-67007C30} # Default is my id 4 | OPTS="${OPTS---gpg-sign=$GPG_ID --repo=repo --user --install --force-clean build}" 5 | 6 | flatpak-builder $OPTS net.net2o.net2o.yml 7 | 8 | flatpak build-update-repo --generate-static-deltas --gpg-sign=$GPG_ID repo 9 | 10 | rsync -azv repo/ root@net2o.de:/var/www/flathub.net2o.net/html/repo 11 | -------------------------------------------------------------------------------- /flatpak/net.net2o.net2o.yml: -------------------------------------------------------------------------------- 1 | app-id: net.net2o.net2o 2 | base: org.gforth.gforth 3 | base-version: "24.08" 4 | runtime: org.freedesktop.Platform 5 | platform-extensions: 6 | - org.freedesktop.Platform.GL.default 7 | runtime-version: "24.08" 8 | sdk: org.freedesktop.Sdk 9 | command: n2o 10 | 11 | modules: 12 | - name: ed25519-donna 13 | buildsystem: autotools 14 | config-opts: 15 | sources: 16 | - type: git 17 | url: https://git.net2o.de/bernd/ed25519-donna 18 | - name: net2o 19 | buildsystem: autotools 20 | config-opts: 21 | sources: 22 | - type: git 23 | url: https://git.net2o.de/bernd/net2o 24 | -------------------------------------------------------------------------------- /flatpak/net2o.alias: -------------------------------------------------------------------------------- 1 | alias n2ofp-gui="flatpak run --share=network --socket=x11 --socket=wayland --device=dri --socket=pulseaudio net.net2o.net2o gui" 2 | alias n2ofp-tui="flatpak run --share=network net.net2o.net2o" 3 | -------------------------------------------------------------------------------- /icons/hicolor/128x128/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/128x128/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/16x16/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/16x16/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/192x192/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/192x192/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/22x22/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/22x22/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/24x24/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/24x24/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/256x256/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/256x256/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/32x32/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/32x32/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/36x36/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/36x36/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/48x48/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/48x48/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/64x64/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/64x64/apps/net2o.png -------------------------------------------------------------------------------- /icons/hicolor/72x72/apps/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/icons/hicolor/72x72/apps/net2o.png -------------------------------------------------------------------------------- /install-deps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | which sudo || alias sudo=eval 3 | 4 | version=$1 5 | arch=$2 6 | 7 | setup_debian() { 8 | wget -O - https://net2o.de/bernd@net2o.de-yubikey.pgp.asc | \ 9 | sudo gpg --dearmor -o /usr/share/keyrings/net2o-archive-keyring.gpg 10 | sudo sh -c "cat >/etc/apt/sources.list.d/net2o.list" <. 17 | 18 | require parser.fs 19 | 20 | cs-scope: test 21 | 22 | object class{ test 23 | field: strings[] 24 | field: numbers[]# 25 | field: floats[]% 26 | field: objects[] 27 | }class 28 | 29 | object class{ objects 30 | $value: name$ 31 | value: number# 32 | }class 33 | 34 | }scope 35 | 36 | : test-scan ( -- ) 37 | ['] test >body to schema-scope 38 | test:test-class to outer-class 39 | ['] test:test >body to schema-wid ; 40 | 41 | test-scan "test.json" json-load value test-result 42 | 43 | \\\ 44 | Local Variables: 45 | forth-local-words: 46 | ( 47 | (("class{") definition-starter (font-lock-keyword-face . 1) 48 | "[ \t\n]" t name (font-lock-function-name-face . 3)) 49 | (("}class") definition-ender (font-lock-keyword-face . 1)) 50 | ) 51 | forth-local-indent-words: 52 | ( 53 | (("class{") (0 . 2) (0 . 2)) 54 | (("}class") (-2 . 0) (0 . -2)) 55 | ) 56 | End: 57 | [THEN] 58 | -------------------------------------------------------------------------------- /json/test.json: -------------------------------------------------------------------------------- 1 | { 2 | "strings": [ "la", "le", "lu" ], 3 | "numbers": [ 1, "2", 3, 4.5 ], 4 | "floats": [ 1.23, 2.34e, "3.45e6" ] 5 | "objects": [ 6 | { "name": "bla", "number": 123 }, 7 | { "name": "foo", "number": 234 }, 8 | { "name": "bar", "number": "567" } 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /keccak-low/AUTHORS: -------------------------------------------------------------------------------- 1 | Keccak, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 2 | Code implemented by the designers and Ronny Van Keer. 3 | -------------------------------------------------------------------------------- /keccak-low/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/keccak-low/ChangeLog -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/ARM/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by Ronny Van Keer, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | 16 | --- 17 | 18 | Please refer to SnP-documentation.h for more details. 19 | */ 20 | 21 | #ifndef _KeccakP_1600_SnP_h_ 22 | #define _KeccakP_1600_SnP_h_ 23 | 24 | #define KeccakP1600_implementation "32-bit bit-interleaved optimized ARM assembler implementation" 25 | #define KeccakP1600_stateSizeInBytes 200 26 | #define KeccakP1600_stateAlignment 4 27 | 28 | /* void KeccakP1600_StaticInitialize( void ); */ 29 | #define KeccakP1600_StaticInitialize() 30 | void KeccakP1600_Initialize(void *state); 31 | void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); 32 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 33 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 34 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 35 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 36 | void KeccakP1600_Permute_12rounds(void *state); 37 | void KeccakP1600_Permute_24rounds(void *state); 38 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 39 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/ARMv7A-NEON/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by Ronny Van Keer, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | 16 | --- 17 | 18 | Please refer to SnP-documentation.h for more details. 19 | */ 20 | 21 | #ifndef _KeccakP_1600_SnP_h_ 22 | #define _KeccakP_1600_SnP_h_ 23 | 24 | #define KeccakP1600_implementation "64-bit optimized ARM assembler implementation" 25 | #define KeccakP1600_stateSizeInBytes 200 26 | #define KeccakP1600_stateAlignment 32 27 | 28 | /* void KeccakP1600_StaticInitialize( void ); */ 29 | #define KeccakP1600_StaticInitialize() 30 | void KeccakP1600_Initialize(void *state); 31 | /* void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); */ 32 | #define KeccakP1600_AddByte(argS, argData, argOffset) ((unsigned char*)argS)[argOffset] ^= (argData) 33 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 34 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 35 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 36 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 37 | void KeccakP1600_Permute_12rounds(void *state); 38 | void KeccakP1600_Permute_24rounds(void *state); 39 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 40 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/ARMv8A/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | Implementation by Andre Moraes 6 | 7 | --- 8 | 9 | Please refer to SnP-documentation.h for more details. 10 | */ 11 | 12 | #ifndef _KeccakP_1600_SnP_h_ 13 | #define _KeccakP_1600_SnP_h_ 14 | 15 | #define KeccakP1600_implementation "64-bit optimized ARMv8a assembler implementation" 16 | #define KeccakP1600_stateSizeInBytes 200 17 | #define KeccakP1600_stateAlignment 64 18 | 19 | #define KeccakP1600_StaticInitialize() 20 | void KeccakP1600_Initialize(void *state); 21 | void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); 22 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 23 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 24 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 25 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 26 | void KeccakP1600_Permute_12rounds(void *state); 27 | void KeccakP1600_Permute_24rounds(void *state); 28 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 29 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/AVR8/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by Ronny Van Keer, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | 16 | --- 17 | 18 | Please refer to SnP-documentation.h for more details. 19 | */ 20 | 21 | #ifndef _KeccakP_1600_SnP_h_ 22 | #define _KeccakP_1600_SnP_h_ 23 | 24 | #define KeccakP1600_implementation "8-bit optimized AVR assembler implementation" 25 | #define KeccakP1600_stateSizeInBytes 200 26 | #define KeccakP1600_stateAlignment 8 27 | 28 | void KeccakP1600_StaticInitialize( void ); 29 | /* #define KeccakP1600_StaticInitialize() */ 30 | void KeccakP1600_Initialize(void *state); 31 | void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); 32 | /* #define KeccakP1600_AddByte(argS, argData, argOffset) ((unsigned char*)argS)[argOffset] ^= (argData) */ 33 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 34 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 35 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 36 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 37 | void KeccakP1600_Permute_12rounds(void *state); 38 | void KeccakP1600_Permute_24rounds(void *state); 39 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 40 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/AVX512/C/u12/KeccakP-1600-AVX512-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "12 rounds unrolled" 6 | #define KeccakP1600_unrolling 12 7 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/AVX512/C/u6/KeccakP-1600-AVX512-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "6 rounds unrolled" 6 | #define KeccakP1600_unrolling 6 7 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/AVX512/C/ua/KeccakP-1600-AVX512-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "all rounds unrolled" 6 | #define KeccakP1600_fullUnrolling 7 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/XOP/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by Gilles Van Assche, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | 16 | --- 17 | 18 | Please refer to SnP-documentation.h for more details. 19 | */ 20 | 21 | #ifndef _KeccakP_1600_SnP_h_ 22 | #define _KeccakP_1600_SnP_h_ 23 | 24 | #include "KeccakP-1600-XOP-config.h" 25 | 26 | #define KeccakP1600_implementation "implementation optimized for XOP (" KeccakP1600_implementation_config ")" 27 | #define KeccakP1600_stateSizeInBytes 200 28 | #define KeccakP1600_stateAlignment 16 29 | 30 | #include 31 | 32 | #define KeccakP1600_StaticInitialize() 33 | void KeccakP1600_Initialize(void *state); 34 | void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); 35 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 36 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 37 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 38 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 39 | void KeccakP1600_Permute_12rounds(void *state); 40 | void KeccakP1600_Permute_24rounds(void *state); 41 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 42 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/XOP/u6/KeccakP-1600-XOP-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "6 rounds unrolled" 6 | #define KeccakP1600_unrolling 6 7 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/XOP/ua/KeccakP-1600-XOP-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "all rounds unrolled" 6 | #define KeccakP1600_fullUnrolling 7 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/compact/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by Ronny Van Keer, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | 16 | --- 17 | 18 | Please refer to SnP-documentation.h for more details. 19 | */ 20 | 21 | #ifndef _KeccakP_1600_SnP_h_ 22 | #define _KeccakP_1600_SnP_h_ 23 | 24 | #define KeccakP1600_implementation "64-bit compact implementation" 25 | #define KeccakP1600_stateSizeInBytes 200 26 | #define KeccakP1600_stateAlignment 8 27 | 28 | #define KeccakP1600_StaticInitialize() 29 | void KeccakP1600_Initialize(void *state); 30 | void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); 31 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 32 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 33 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 34 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 35 | void KeccakP1600_Permute_12rounds(void *state); 36 | void KeccakP1600_Permute_24rounds(void *state); 37 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 38 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/plain-32bits-inplace/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by Ronny Van Keer, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | 16 | --- 17 | 18 | Please refer to SnP-documentation.h for more details. 19 | */ 20 | 21 | #ifndef _KeccakP_1600_SnP_h_ 22 | #define _KeccakP_1600_SnP_h_ 23 | 24 | /** For the documentation, see SnP-documentation.h. 25 | */ 26 | 27 | #define KeccakP1600_implementation "in-place 32-bit optimized implementation" 28 | #define KeccakP1600_stateSizeInBytes 200 29 | #define KeccakP1600_stateAlignment 8 30 | 31 | #define KeccakP1600_StaticInitialize() 32 | void KeccakP1600_Initialize(void *state); 33 | void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); 34 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 35 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 36 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 37 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 38 | void KeccakP1600_Permute_12rounds(void *state); 39 | void KeccakP1600_Permute_24rounds(void *state); 40 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 41 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/plain-64bits/lcu6/KeccakP-1600-opt64-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "lane complementing, 6 rounds unrolled" 6 | #define KeccakP1600_unrolling 6 7 | #define KeccakP1600_useLaneComplementing 8 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/plain-64bits/lcua-shld/KeccakP-1600-opt64-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "lane complementing, all rounds unrolled, using SHLD for rotations" 6 | #define KeccakP1600_fullUnrolling 7 | #define KeccakP1600_useLaneComplementing 8 | #define KeccakP1600_useSHLD 9 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/plain-64bits/lcua/KeccakP-1600-opt64-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "lane complementing, all rounds unrolled" 6 | #define KeccakP1600_fullUnrolling 7 | #define KeccakP1600_useLaneComplementing 8 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/plain-64bits/u6/KeccakP-1600-opt64-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "6 rounds unrolled" 6 | #define KeccakP1600_unrolling 6 7 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/plain-64bits/ua/KeccakP-1600-opt64-config.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file defines some parameters of the implementation in the parent directory. 3 | */ 4 | 5 | #define KeccakP1600_implementation_config "all rounds unrolled" 6 | #define KeccakP1600_fullUnrolling 7 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/ref-32bits/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by the designers, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | 16 | --- 17 | 18 | Please refer to SnP-documentation.h for more details. 19 | */ 20 | 21 | #ifndef _KeccakP_1600_SnP_h_ 22 | #define _KeccakP_1600_SnP_h_ 23 | 24 | #define KeccakP1600_implementation "32-bit bit-interleaved reference implementation" 25 | #define KeccakP1600_stateSizeInBytes 200 26 | #define KeccakP1600_stateAlignment 4 27 | 28 | #ifdef KeccakReference 29 | void KeccakP1600_StaticInitialize( void ); 30 | #else 31 | #define KeccakP1600_StaticInitialize() 32 | #endif 33 | void KeccakP1600_Initialize(void *state); 34 | void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); 35 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 36 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 37 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 38 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 39 | void KeccakP1600_Permute_12rounds(void *state); 40 | void KeccakP1600_Permute_24rounds(void *state); 41 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 42 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/ref-32bits/KeccakP-1600-reference.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by the designers, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | */ 16 | 17 | #ifndef _KeccakP_1600_reference_h_ 18 | #define _KeccakP_1600_reference_h_ 19 | 20 | void KeccakP1600_DisplayRoundConstants(FILE *f); 21 | void KeccakP1600_DisplayRhoOffsets(FILE *f); 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/ref-64bits/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by the designers, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | 16 | --- 17 | 18 | Please refer to SnP-documentation.h for more details. 19 | */ 20 | 21 | #ifndef _KeccakP_1600_SnP_h_ 22 | #define _KeccakP_1600_SnP_h_ 23 | 24 | #define KeccakP1600_implementation "64-bit reference implementation" 25 | #define KeccakP1600_stateSizeInBytes 200 26 | #define KeccakP1600_stateAlignment 8 27 | 28 | #ifdef KeccakReference 29 | void KeccakP1600_StaticInitialize( void ); 30 | #else 31 | #define KeccakP1600_StaticInitialize() 32 | #endif 33 | void KeccakP1600_Initialize(void *state); 34 | void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); 35 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 36 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 37 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 38 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 39 | void KeccakP1600_Permute_12rounds(void *state); 40 | void KeccakP1600_Permute_24rounds(void *state); 41 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 42 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/ref-64bits/KeccakP-1600-reference.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by the designers, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | */ 16 | 17 | #ifndef _KeccakP_1600_reference_h_ 18 | #define _KeccakP_1600_reference_h_ 19 | 20 | void KeccakP1600_DisplayRoundConstants(FILE *f); 21 | void KeccakP1600_DisplayRhoOffsets(FILE *f); 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /keccak-low/KeccakP-1600/x86-64/KeccakP-1600-SnP.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | The Keccak-p permutations, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. 6 | 7 | Implementation by Ronny Van Keer, hereby denoted as "the implementer". 8 | 9 | For more information, feedback or questions, please refer to the Keccak Team website: 10 | https://keccak.team/ 11 | 12 | To the extent possible under law, the implementer has waived all copyright 13 | and related or neighboring rights to the source code in this file. 14 | http://creativecommons.org/publicdomain/zero/1.0/ 15 | 16 | --- 17 | 18 | Please refer to SnP-documentation.h for more details. 19 | */ 20 | 21 | #ifndef _KeccakP_1600_SnP_h_ 22 | #define _KeccakP_1600_SnP_h_ 23 | 24 | #define KeccakP1600_implementation "64-bit optimized x86 assembler implementation" 25 | #define KeccakP1600_stateSizeInBytes 200 26 | #define KeccakP1600_stateAlignment 64 27 | 28 | /* void KeccakP1600_StaticInitialize( void ); */ 29 | #define KeccakP1600_StaticInitialize() 30 | void KeccakP1600_Initialize(void *state); 31 | /* void KeccakP1600_AddByte(void *state, unsigned char data, unsigned int offset); */ 32 | #define KeccakP1600_AddByte(argS, argData, argOffset) ((unsigned char*)argS)[argOffset] ^= (argData) 33 | void KeccakP1600_AddBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 34 | void KeccakP1600_OverwriteBytes(void *state, const unsigned char *data, unsigned int offset, unsigned int length); 35 | void KeccakP1600_OverwriteWithZeroes(void *state, unsigned int byteCount); 36 | void KeccakP1600_Permute_Nrounds(void *state, unsigned int nrounds); 37 | void KeccakP1600_Permute_12rounds(void *state); 38 | void KeccakP1600_Permute_24rounds(void *state); 39 | void KeccakP1600_ExtractBytes(const void *state, unsigned char *data, unsigned int offset, unsigned int length); 40 | void KeccakP1600_ExtractAndAddBytes(const void *state, const unsigned char *input, unsigned char *output, unsigned int offset, unsigned int length); 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /keccak-low/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/keccak-low/NEWS -------------------------------------------------------------------------------- /keccak-low/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/keccak-low/README -------------------------------------------------------------------------------- /keccak-low/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | test -n "$srcdir" || srcdir=`dirname "$0"` 3 | test -n "$srcdir" || srcdir=. 4 | 5 | mkdir -p m4 6 | libtoolize --force --copy --install || glibtoolize --force --copy --install 7 | autoreconf --force --install --verbose "$srcdir" 8 | aclocal --install -I m4 9 | automake --add-missing 10 | test -n "$NOCONFIGURE" || "$srcdir/configure" "$@" 11 | -------------------------------------------------------------------------------- /keccak-low/common/align.h: -------------------------------------------------------------------------------- 1 | /* 2 | The eXtended Keccak Code Package (XKCP) 3 | https://github.com/XKCP/XKCP 4 | 5 | Implementation by Gilles Van Assche and Ronny Van Keer, hereby denoted as "the implementer". 6 | 7 | For more information, feedback or questions, please refer to the Keccak Team website: 8 | https://keccak.team/ 9 | 10 | To the extent possible under law, the implementer has waived all copyright 11 | and related or neighboring rights to the source code in this file. 12 | http://creativecommons.org/publicdomain/zero/1.0/ 13 | */ 14 | 15 | #ifndef _align_h_ 16 | #define _align_h_ 17 | 18 | /* on Mac OS-X and possibly others, ALIGN(x) is defined in param.h, and -Werror chokes on the redef. */ 19 | #ifdef ALIGN 20 | #undef ALIGN 21 | #endif 22 | 23 | #if defined(__GNUC__) 24 | #define ALIGN(x) __attribute__ ((aligned(x))) 25 | #elif defined(_MSC_VER) 26 | #define ALIGN(x) __declspec(align(x)) 27 | #elif defined(__ARMCC_VERSION) 28 | #define ALIGN(x) __align(x) 29 | #else 30 | #define ALIGN(x) 31 | #endif 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /keccak-low/debian/changelog: -------------------------------------------------------------------------------- 1 | keccak-low (1.0) stable; urgency=low 2 | 3 | * Initial Release 4 | 5 | -- Bernd Paysan Fri, 08 Jan 2016 00:15:15 +0100 6 | -------------------------------------------------------------------------------- /keccak-low/debian/compat: -------------------------------------------------------------------------------- 1 | 9 -------------------------------------------------------------------------------- /keccak-low/debian/control: -------------------------------------------------------------------------------- 1 | Source: keccak-low 2 | Section: programming 3 | Priority: optional 4 | Maintainer: Bernd Paysan 5 | Build-Depends: debhelper, build-essential, gcc, autoconf, automake, libtool, libtool-bin, libc 6 | 7 | Package: keccak-low 8 | Version: 1.0.1 9 | Architecture: any 10 | Depends: ${shlibs:Depends} 11 | Multi-Arch: same 12 | Description: keccak-low 13 | keccak-low is a library that implements the primitives of SHA-3 efficiently. 14 | -------------------------------------------------------------------------------- /keccak-low/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Simple debian/rules that uses debhelper. 4 | # Created by Bernd Paysan, in the public domain 5 | 6 | %: 7 | dh $@ 8 | 9 | override_dh_auto_test: 10 | override_dh_shlibdeps: 11 | -------------------------------------------------------------------------------- /keccak-low/keccak.i: -------------------------------------------------------------------------------- 1 | %module keccaklow 2 | %insert("include") 3 | %{ 4 | #include 5 | %} 6 | 7 | %apply SWIGTYPE * { unsigned char const *const }; 8 | 9 | %include 10 | -------------------------------------------------------------------------------- /keccakfast.fs: -------------------------------------------------------------------------------- 1 | \ keccak fast wrapper 2 | 3 | \ Copyright © 2012-2015 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | require rec-scope.fs 19 | [IFDEF] android 20 | s" libkeccakpfast.so" c-lib:open-path-lib drop 21 | [THEN] 22 | 23 | c-library keccakfast 24 | s" keccakpfast" add-lib 25 | \ s" keccakp/.libs" add-libpath \ find library during build 26 | include keccaklib.fs 27 | end-c-library 28 | -------------------------------------------------------------------------------- /keccaklib.fs: -------------------------------------------------------------------------------- 1 | \ keccak wrapper 2 | 3 | \ Copyright © 2012-2015 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | \c #include 19 | \c UINT64* KeccakEncryptLoop(keccak_state state, UINT64 * data, size_t n, int rounds) 20 | \c { 21 | \c while(n!=0) { 22 | \c size_t p = (n >= 128) ? 128 : n; 23 | \c KeccakF(state, rounds); 24 | \c KeccakEncrypt(state, data, p); 25 | \c data = (UINT64*)(((char*)data)+p); n-=p; 26 | \c } 27 | \c return data; 28 | \c } 29 | \c UINT64* KeccakDecryptLoop(keccak_state state, UINT64 * data, size_t n, int rounds) 30 | \c { 31 | \c while(n!=0) { 32 | \c size_t p = (n >= 128) ? 128 : n; 33 | \c KeccakF(state, rounds); 34 | \c KeccakDecrypt(state, data, p); 35 | \c data = (UINT64*)(((char*)data)+p); n-=p; 36 | \c } 37 | \c return data; 38 | \c } 39 | 40 | \ ------===< functions >===------- 41 | c-function KeccakInitialize KeccakInitialize -- void 42 | c-function KeccakF KeccakF a n -- void 43 | c-function KeccakInitializeState KeccakInitializeState a -- void 44 | c-function KeccakExtract KeccakExtract a a n -- void 45 | c-function KeccakAbsorb KeccakAbsorb a a n -- void 46 | c-function KeccakEncrypt KeccakEncrypt a a n -- void 47 | c-function KeccakDecrypt KeccakDecrypt a a n -- void 48 | c-function KeccakEncryptLoop KeccakEncryptLoop a a u n -- a 49 | c-function KeccakDecryptLoop KeccakDecryptLoop a a u n -- a 50 | 51 | -------------------------------------------------------------------------------- /knotifications5/net2o.notifyrc: -------------------------------------------------------------------------------- 1 | [Global] 2 | Name=net2o 3 | IconName=net2o 4 | Comment=net2o secure communication 5 | Version=2 6 | DesktopEntry=net2o 7 | 8 | [Event/im-message-in] 9 | Name=MessageIn 10 | Comment=A message arrived 11 | Sound=message-new-instant 12 | Action=Sound|Popup 13 | IconName=net2o 14 | Urgency=Normal 15 | 16 | [Event/im-message-out] 17 | Name=MessageOut 18 | Comment=A message was sent 19 | Sound=message-sent-instant 20 | Action=Sound|Popup 21 | IconName=net2o 22 | Urgency=Normal 23 | -------------------------------------------------------------------------------- /knotifications6: -------------------------------------------------------------------------------- 1 | knotifications5 -------------------------------------------------------------------------------- /lang/de: -------------------------------------------------------------------------------- 1 | 2 | 3 | %day%.%month%.%year% 4 | 5 | net2o GUI 6 | Copyright © 2010–2022 Bernd Paysan 7 | Falsche Passphrase 8 | Zum Öffnen Passphrase eingeben 9 | Erzeuge neue ID 10 | ID zu kurz! 11 | Neue Passphrase eingeben 12 | Neue Passphrase nochmal eingeben 13 |  14 | Spitznamen 15 | Öffentlicher Schlüssel 16 | Schlüsselsignaturdatum 17 | Meine Schlüssel 18 | Meine Gruppen 19 | Meine Freunde 20 | Posting 21 | Deaktiviere Verbatim 22 | Aktiviere Verbatim 23 | Archivieren 24 | Vertraulich 25 | Niemand ist online 26 |  27 |  28 |  29 |  30 |  31 |  32 | Aufnahme 33 | Nehme auf… 34 |  35 | Einladungen 36 | -------------------------------------------------------------------------------- /lang/en: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | net2o GUI 6 | Copyright © 2010–2022 Bernd Paysan 7 | wrong passphrase! 8 | Enter passphrase to unlock 9 | Create new ID 10 | ID too short! 11 | Enter new passphrase 12 | Enter new passphrase again 13 |  14 | Nick+Pet 15 | Pubkey 16 | Key date 17 | My key 18 | My groups 19 | My peers 20 | Post 21 | Deactivate Verbatim 22 | Activate Verbatim 23 | On The Record 24 | Off The Record 25 | Nobody is online 26 |  27 |  28 |  29 |  30 |  31 |  32 | Record 33 | Recording… 34 |  35 | Invitations 36 | -------------------------------------------------------------------------------- /lang/en_GB: -------------------------------------------------------------------------------- 1 | 2 | 3 | %DD%/%MM%/%YYYY% 4 | %12h%.%mm%.%ss%%a/pm% 5 | -------------------------------------------------------------------------------- /lang/en_IN: -------------------------------------------------------------------------------- 1 | 2 | 3 | %DD%-%MM%-%YYYY% 4 | %12h%.%mm%.%ss%%a/pm% 5 | -------------------------------------------------------------------------------- /lang/en_US: -------------------------------------------------------------------------------- 1 | 2 | 3 | %MM%/%DD%/%YYYY% 4 | %12h%.%mm%.%ss%%a/pm% 5 | -------------------------------------------------------------------------------- /lang/zh: -------------------------------------------------------------------------------- 1 | 2 | 3 | %year%年%month%月%day%日 4 | 5 | net2o 图形用户界面 6 | 版权 © 2010–2022 Bernd Paysan 7 | 错误的密码 8 | 输入密码以解锁 9 | 创建新的ID 10 | ID太短 11 | 输入新的密码 12 | 再次输入新的密码 13 |  14 | 昵称 15 | 公钥 16 | 关键签名日期 17 | 我的钥匙 18 | 我的集团 19 | 我的朋友 20 | 停用逐字 21 | 激活逐字 22 | 在记录上 23 | 关闭记录 24 | 没有人在线 25 | 贴子 26 |  27 |  28 |  29 |  30 |  31 |  32 | 记录 33 | 记录… 34 | 发送 35 | 请帖 36 | -------------------------------------------------------------------------------- /lang/zh_TW: -------------------------------------------------------------------------------- 1 | 2 | 3 | %twyear%年%month%月%day%日 4 | 5 | net2o 圖形用戶界面 6 | 版權 © 2010–2022 Bernd Paysan 7 | 錯誤的密碼 8 | 輸入密碼以解鎖 9 | 創建新的ID 10 | ID太短 11 | 輸入新的密碼 12 | 再次輸入新的密碼 13 |  14 | 暱稱 15 | 公鑰 16 | 關鍵簽名日期 17 | 我的鑰匙 18 | 我的集團 19 | 我的朋友 20 | 停用逐字 21 | 激活逐字 22 | 在記錄上 23 | 關閉記錄 24 | 沒有人在線 25 | 貼子 26 |  27 |  28 |  29 |  30 |  31 |  32 | 記錄 33 | 記錄… 34 | 發送 35 | 請帖 36 | -------------------------------------------------------------------------------- /linux/qrscan-linux.fs: -------------------------------------------------------------------------------- 1 | \ scan color QR codes on Android 2 | 3 | \ Copyright © 2018 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | require minos2/soil-texture.fs 19 | 20 | : draw-cam ( -- ) 21 | scan-tex-raw next-arg qr( ." image: " 2dup type cr ) 22 | load-texture to cam-h to cam-w 23 | argc @ 1 <= IF 24 | level# off 25 | THEN ; 26 | : cam-end ( -- ) ; 27 | : scan-start ( -- ) 28 | dpy 0= IF window-init THEN 29 | new-scantexes ; 30 | 31 | \\\ 32 | Local Variables: 33 | forth-local-words: 34 | ( 35 | (("net2o:" "+net2o:") definition-starter (font-lock-keyword-face . 1) 36 | "[ \t\n]" t name (font-lock-function-name-face . 3)) 37 | ("[a-z0-9]+(" immediate (font-lock-comment-face . 1) 38 | ")" nil comment (font-lock-comment-face . 1)) 39 | ) 40 | forth-local-indent-words: 41 | ( 42 | (("net2o:" "+net2o:") (0 . 2) (0 . 2) non-immediate) 43 | ) 44 | End: 45 | [THEN] 46 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/logo.png -------------------------------------------------------------------------------- /magic: -------------------------------------------------------------------------------- 1 | # net2o file magics 2 | 3 | 0 string \015v2o net2o encrypted vault -------------------------------------------------------------------------------- /n2o-completion.sh: -------------------------------------------------------------------------------- 1 | # n2o bash and zsh completion 2 | complete -o default -W "$(n2o help 2>&1 | tail -n +2 | grep -v ^=== | cut -f1 -d' ' | tr '|' ' ')" n2o 3 | -------------------------------------------------------------------------------- /n2o-fi.fs.in: -------------------------------------------------------------------------------- 1 | \ -*- mode: Forth -*- 2 | 3 | fpath+ @DATADIR@/net2o/@PACKAGE_VERSION@ 4 | c-lib:libcc-path path+ @LIBDIR@/net2o/@PACKAGE_VERSION@/@GFARCH@/libcc-named 5 | 6 | @HAS_GPSD@ [IF] \ gpsd 7 | s" unix/gps.fs" open-fpath-file 8 | 0= [IF] 2drop close-file throw : has-gpsd? ; [THEN] 9 | [THEN] 10 | 11 | require n2o.fs 12 | 13 | \ if we got here fine, set up processing the remaining arguments 14 | 15 | load-rc? off \ do not load ~/.config/gforthrc 16 | load-rc0? off \ also do not load ~/.config/gforthrc0 17 | :is 'image defers 'image ['] n2o-option is process-option cmd-args ; 18 | :noname true to script? n2o:bye ; is bootmessage 19 | locs[] $free wheres $free 20 | -------------------------------------------------------------------------------- /n2o.in: -------------------------------------------------------------------------------- 1 | #! @GFORTHFAST@ --no-0rc 2 | \ -*- mode: Forth -*- 3 | 4 | ${NET2O_DEBUGS} "warnings" search nip nip warnings ! \ in production mode, we don't want any warnings 5 | 6 | fpath+ @DATADIR@/net2o/@PACKAGE_VERSION@ 7 | c-lib:libcc-path path+ @LIBDIR@/net2o/@PACKAGE_VERSION@/@GFARCH@/libcc-named 8 | 9 | @HAS_GPSD@ [IF] \ gpsd 10 | s" unix/gps.fs" open-fpath-file 11 | 0= [IF] 2drop close-file throw : has-gpsd? ; [THEN] 12 | [THEN] 13 | 14 | 1 arg "+cov" str= [IF] shift-args require coverage.fs [THEN] 15 | 16 | require n2o.fs 17 | 18 | \ if we got here fine, set up processing the remaining arguments 19 | 20 | script? [IF] 21 | load-rc? off \ do not load ~/.config/gforthrc 22 | ' n2o-option is process-option \ process net2o options 23 | cmd-args 24 | :noname true to script? n2o:bye ; is bootmessage \ no interactive part 25 | [ELSE] word-args [THEN] 26 | -------------------------------------------------------------------------------- /net2o-dhtroot.n2o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/net2o-dhtroot.n2o -------------------------------------------------------------------------------- /net2o.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/net2o.ico -------------------------------------------------------------------------------- /qrscan.in: -------------------------------------------------------------------------------- 1 | #! @GFORTHFAST@ 2 | \ -*- mode: Forth -*- 3 | 4 | warnings off \ in production mode, 5 | \ we don't want any warnings 6 | 7 | fpath+ @DATADIR@/gforth/@GFVER@/net2o 8 | 9 | require qrscan.fs 10 | argc @ 1 <= [IF] 11 | ." usage: qrscan file[s]" cr 12 | ." PNG and JPG files accepted" cr 13 | [ELSE] 14 | fpath+ ~+ 15 | scan-qr 16 | [THEN] 17 | bye 18 | -------------------------------------------------------------------------------- /res/drawable-hdpi/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-hdpi/net2o.png -------------------------------------------------------------------------------- /res/drawable-hdpi/net2o_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-hdpi/net2o_green.png -------------------------------------------------------------------------------- /res/drawable-hdpi/net2o_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-hdpi/net2o_notify.png -------------------------------------------------------------------------------- /res/drawable-ldpi/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-ldpi/net2o.png -------------------------------------------------------------------------------- /res/drawable-ldpi/net2o_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-ldpi/net2o_green.png -------------------------------------------------------------------------------- /res/drawable-ldpi/net2o_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-ldpi/net2o_notify.png -------------------------------------------------------------------------------- /res/drawable-mdpi/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-mdpi/net2o.png -------------------------------------------------------------------------------- /res/drawable-mdpi/net2o_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-mdpi/net2o_green.png -------------------------------------------------------------------------------- /res/drawable-mdpi/net2o_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-mdpi/net2o_notify.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-xhdpi/net2o.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/net2o_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-xhdpi/net2o_green.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/net2o_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-xhdpi/net2o_notify.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-xxhdpi/net2o.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/net2o_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-xxhdpi/net2o_green.png -------------------------------------------------------------------------------- /res/drawable-xxhdpi/net2o_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-xxhdpi/net2o_notify.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/net2o.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-xxxhdpi/net2o.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/net2o_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-xxxhdpi/net2o_green.png -------------------------------------------------------------------------------- /res/drawable-xxxhdpi/net2o_notify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/res/drawable-xxxhdpi/net2o_notify.png -------------------------------------------------------------------------------- /res/values/net2o.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | net2o TUI 4 | net2o GUI 5 | 6 | -------------------------------------------------------------------------------- /sha3-256: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./n2o -256 hash "$@" 4 | -------------------------------------------------------------------------------- /sha3-512: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ./n2o -512 hash "$@" 4 | -------------------------------------------------------------------------------- /shlibs/bdelta: -------------------------------------------------------------------------------- 1 | ../bdelta -------------------------------------------------------------------------------- /shlibs/ed25519-donna: -------------------------------------------------------------------------------- 1 | ../ed25519-donna -------------------------------------------------------------------------------- /shlibs/keccak-low: -------------------------------------------------------------------------------- 1 | ../keccak-low -------------------------------------------------------------------------------- /shlibs/threefish: -------------------------------------------------------------------------------- 1 | ../threefish -------------------------------------------------------------------------------- /snap/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./snapcraft.yaml.in 3 | snapcraft --use-lxd --debug --verbose 4 | -------------------------------------------------------------------------------- /snap/common/mark-and-exec: -------------------------------------------------------------------------------- 1 | ############################### 2 | # Mark update and exec binary # 3 | ############################### 4 | 5 | [ $needs_update = true ] && echo "SNAP_DESKTOP_LAST_REVISION=$SNAP_REVISION" > $SNAP_USER_DATA/.last_revision 6 | 7 | wait_for_async_execs 8 | 9 | if [ -n "$SNAP_DESKTOP_DEBUG" ]; then 10 | echo "desktop-launch elapsed time: " $(date +%s.%N --date="$START seconds ago") 11 | echo "Now running: exec $@" 12 | fi 13 | 14 | exec "$@" 15 | -------------------------------------------------------------------------------- /snap/glib-only/Makefile: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | SRC_DIR ?= . 4 | 5 | DEST_LAUNCHER = desktop-launch 6 | 7 | build: $(DEST_LAUNCHER) 8 | 9 | clean: 10 | rm -f $(DEST_LAUNCHER) 11 | 12 | $(DEST_LAUNCHER): 13 | @echo "#!/bin/bash" > $(DEST_LAUNCHER) 14 | @cat $(SRC_DIR)/init >> $(DEST_LAUNCHER) 15 | @cat $(SRC_DIR)/desktop-exports >> $(DEST_LAUNCHER) 16 | @cat $(SRC_DIR)/launcher-specific >> $(DEST_LAUNCHER) 17 | @cat $(SRC_DIR)/mark-and-exec >> $(DEST_LAUNCHER) 18 | 19 | install: $(DEST_LAUNCHER) 20 | install -D -m755 $(DEST_LAUNCHER) "$(DESTDIR)"/bin/$(DEST_LAUNCHER) 21 | -------------------------------------------------------------------------------- /snap/glib-only/desktop-exports: -------------------------------------------------------------------------------- 1 | ../common/desktop-exports -------------------------------------------------------------------------------- /snap/glib-only/init: -------------------------------------------------------------------------------- 1 | ../common/init -------------------------------------------------------------------------------- /snap/glib-only/launcher-specific: -------------------------------------------------------------------------------- 1 | ############################## 2 | # Glib minimum specific part # 3 | ############################## 4 | 5 | -------------------------------------------------------------------------------- /snap/glib-only/mark-and-exec: -------------------------------------------------------------------------------- 1 | ../common/mark-and-exec -------------------------------------------------------------------------------- /src/gnu/gforth/Gforth_n2o.java: -------------------------------------------------------------------------------- 1 | /* Android activity for Gforth on Android 2 | 3 | Copyright (C) 2013 Free Software Foundation, Inc. 4 | 5 | This file is part of Gforth. 6 | 7 | Gforth is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU General Public License 9 | as published by the Free Software Foundation, either version 3 10 | of the License, or (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, see http://www.gnu.org/licenses/. 19 | */ 20 | 21 | package gnu.gforth; 22 | 23 | import gnu.gforth.Gforth; 24 | 25 | public class Gforth_n2o extends gnu.gforth.Gforth { }; 26 | -------------------------------------------------------------------------------- /src/gnu/gforth/Gforth_n2o_gui.java: -------------------------------------------------------------------------------- 1 | /* Android activity for Gforth on Android 2 | 3 | Copyright (C) 2013 Free Software Foundation, Inc. 4 | 5 | This file is part of Gforth. 6 | 7 | Gforth is free software; you can redistribute it and/or 8 | modify it under the terms of the GNU General Public License 9 | as published by the Free Software Foundation, either version 3 10 | of the License, or (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU General Public License for more details. 16 | 17 | You should have received a copy of the GNU General Public License 18 | along with this program; if not, see http://www.gnu.org/licenses/. 19 | */ 20 | 21 | package gnu.gforth; 22 | 23 | import gnu.gforth.Gforth; 24 | 25 | public class Gforth_n2o_gui extends gnu.gforth.Gforth { }; 26 | -------------------------------------------------------------------------------- /startn2o.fs: -------------------------------------------------------------------------------- 1 | \ Start net2o on android 2 | 3 | e? os-type s" linux-android" string-prefix? [IF] require starta.fs [THEN] 4 | page ." loading n2o..." key? drop 5 | warnings off \ no warnings please 6 | require n2o.fs 7 | :is bootmessage page get-me n2o:cmd ; 8 | ' bye is 'quit 9 | -------------------------------------------------------------------------------- /startn2ogui.fs: -------------------------------------------------------------------------------- 1 | \ Start net2o on android 2 | 3 | e? os-type s" linux-android" string-prefix? [IF] require starta.fs [THEN] 4 | page ." loading n2o..." key? drop 5 | warnings off \ no warnings please 6 | require n2o.fs 7 | :is bootmessage 8 | page ." loading n2o:gui..." key? drop 9 | n2o:gui ; 10 | ' bye is 'quit 11 | -------------------------------------------------------------------------------- /template.fs: -------------------------------------------------------------------------------- 1 | \ net2o template for new files 2 | 3 | \ Copyright © 2019 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | \\\ 19 | Local Variables: 20 | forth-local-words: 21 | ( 22 | (("net2o:" "+net2o:") definition-starter (font-lock-keyword-face . 1) 23 | "[ \t\n]" t name (font-lock-function-name-face . 3)) 24 | ("[a-z0-9]+(" immediate (font-lock-comment-face . 1) 25 | ")" nil comment (font-lock-comment-face . 1)) 26 | ) 27 | forth-local-indent-words: 28 | ( 29 | (("net2o:" "+net2o:") (0 . 2) (0 . 2) non-immediate) 30 | ) 31 | End: 32 | -------------------------------------------------------------------------------- /testing/linearheap.fs: -------------------------------------------------------------------------------- 1 | \ same interface as binary heap, but O(n) insert instead 2 | 3 | Variable ins-n 4 | : hnew s" " here 0 , dup >r $! r> ; 5 | : hinsert { n heap -- } n ins-n ! 6 | heap $@ bounds ?DO n I @ < IF 7 | ins-n cell heap I heap $@ drop - $ins 8 | UNLOOP EXIT THEN 9 | cell +LOOP 10 | ins-n cell heap $+! ; 11 | : hdelete { heap -- n } 12 | heap $@ drop @ 13 | heap 0 cell $del ; 14 | : hsize@ ( heap -- size ) $@len cell / ; 15 | -------------------------------------------------------------------------------- /testing/nacl.fs: -------------------------------------------------------------------------------- 1 | \ Interface to the NaCL library 2 | 3 | c-library nacl 4 | s" nacl" add-lib 5 | cell 8 = [IF] 6 | \c #include 7 | \c #include 8 | \c #include 9 | \c #include 10 | \c #include 11 | \c #include 12 | [ELSE] 13 | \c #include 14 | \c #include 15 | \c #include 16 | \c #include 17 | \c #include 18 | \c #include 19 | [THEN] 20 | c-function crypto_box_keypair crypto_box_keypair a a -- void ( pk sk -- ) 21 | c-function crypto_box crypto_box a a n a a a -- void ( c m mlen n pk sk -- ) 22 | c-function crypto_box_beforenm crypto_box_beforenm a a a -- void ( k pk sk -- ) 23 | c-function crypto_box_open crypto_box_open a a n a a a -- void ( m c clen n pk sk -- ) 24 | c-function crypto_scalarmult_curve25519 crypto_scalarmult_curve25519 a a a -- void ( s pk sk -- ) 25 | c-function crypto_scalarmult_curve25519_base crypto_scalarmult_curve25519_base a a -- void ( pk sk -- ) 26 | c-function crypto_secretbox crypto_secretbox a a n a a -- void ( c m mlen n k -- ) 27 | c-function crypto_secretbox_open crypto_secretbox_open a a n a a -- void ( m c clen n k -- ) 28 | c-function crypto_stream crypto_stream a n a a -- void ( c clen n k -- ) 29 | c-function crypto_stream_xor crypto_stream_xor a a n a a -- void ( c m mlen n k -- ) 30 | c-function crypto_hash crypto_hash a a n -- void ( h m mlen -- ) 31 | c-function randombytes randombytes a n -- void ( addr n -- ) 32 | end-c-library 33 | 34 | 32 Constant PUBLICKEYBYTES 35 | 32 Constant SECRETKEYBYTES 36 | 32 Constant KEYBYTES 37 | 32 Constant BEFORENMBYTES 38 | 24 Constant NONCEBYTES 39 | 32 Constant ZEROBYTES 40 | 16 Constant BOXZEROBYTES 41 | 42 | -------------------------------------------------------------------------------- /tests/alice-msg.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - msg 2 | 3 | require ../client-tests.fs 4 | 5 | +db stat( \ ) 6 | script? [IF] +debug %droprate [THEN] 7 | require ../test-keys.fs \ we want the test keys - never use this in production! 8 | 9 | "test" dhtnick $! 10 | 11 | i'm alice 12 | 13 | init-client 14 | 15 | !time 16 | 17 | ?nextarg [IF] net2o-host $! [THEN] 18 | ?nextarg [IF] s>number drop to net2o-port [THEN] 19 | 20 | : c:msg-test ( -- ) 21 | [: .time ." Message test" cr ;] $err 22 | "Hi Bob!" "bob" send-text-to o-timeout 23 | BEGIN pad 100 accept cr dup WHILE pad swap send-text REPEAT 24 | drop ['] .time $err ; 25 | 26 | script? [IF] announce-me ." connect bob?" key drop 27 | "bob" nat:connect c:msg-test c:disconnect bye [THEN] 28 | -------------------------------------------------------------------------------- /tests/alice-test.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - client side 2 | 3 | require client-tests.fs 4 | require test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +db stat( 7 | +debug 8 | %droprate 9 | script? [IF] debug-task [THEN] 10 | 11 | i'm alice 12 | 13 | init-client 14 | 15 | !time 16 | 17 | ?nextarg [IF] net2o-host $! [THEN] 18 | ?nextarg [IF] s>number drop to net2o-port [THEN] 19 | 20 | \ ?nextarg [IF] s>number drop [ELSE] 1 [THEN] c:tests 21 | 22 | script? [IF] "bob" nat:connect c:test-rest bye [THEN] 23 | -------------------------------------------------------------------------------- /tests/alice2-msg.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - msg 2 | 3 | require ../client-tests.fs 4 | require ../test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +db stat( 7 | script? [IF] +debug %droprate [THEN] 8 | 9 | i'm alice 10 | 11 | 85" kQusJzA;7*?t=uy@X}1GWr!+0qqp_Cn176t4(dQ*;Ago "bernd" ke-nick $! o> 12 | 13 | init-client 14 | 15 | !time 16 | 17 | ?nextarg [IF] net2o-host $! [THEN] 18 | ?nextarg [IF] s>number drop to net2o-port [THEN] 19 | 20 | : c:msg-test ( -- ) 21 | [: .time ." Message test" cr ;] $err 22 | "Hi Bob!" send-text o-timeout 23 | BEGIN pad 100 accept cr dup WHILE pad swap send-text REPEAT 24 | drop ['] .time $err ; 25 | 26 | script? [IF] c:announce-me ." connect bernd?" key drop 27 | "bernd" nat:connect c:msg-test c:disconnect bye [THEN] 28 | -------------------------------------------------------------------------------- /tests/bob-msg.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - msg 2 | 3 | require ../client-tests.fs 4 | require ../test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +db stat( \ ) 7 | script? [IF] +debug %droprate [THEN] 8 | 9 | "test" dhtnick $! 10 | 11 | i'm bob 12 | 13 | init-client 14 | 15 | !time 16 | 17 | ?nextarg [IF] net2o-host $! [THEN] 18 | ?nextarg [IF] s>number drop to net2o-port [THEN] 19 | 20 | : c:msg-test ( -- ) 21 | [: .time ." Message test" cr ;] $err 22 | "Hi Alice!" "alice" send-text-to o-timeout 23 | BEGIN pad 100 accept cr dup WHILE pad swap send-text REPEAT 24 | drop ['] .time $err ; 25 | 26 | script? [IF] announce-me ." connect alice?" key drop 27 | "alice" nat:connect c:msg-test c:disconnect bye [THEN] 28 | -------------------------------------------------------------------------------- /tests/bob-test.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - client side 2 | 3 | require client-tests.fs 4 | require test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +db stat( 7 | +debug 8 | %droprate 9 | debug-task 10 | 11 | i'm bob 12 | 13 | init-client 14 | 15 | !time 16 | 17 | ?nextarg [IF] net2o-host $! [THEN] 18 | ?nextarg [IF] s>number drop to net2o-port [THEN] 19 | 20 | : c:revoke-bob ( -- ) 21 | now>never 22 | x" D82AF4AE7CD3DA7316CE6F26BC5792F4F5E6B36B4C14F7D60C49B421AE1D5468" 23 | revoke-me ; 24 | 25 | : c:bob ( -- ) 26 | $2000 $10000 "" ins-ip dup add-beacon c:connect 27 | ." Bob connected with: " pkc $20 85type cr 28 | c:revoke-bob 29 | ." Bob revoked: " pkc $20 85type cr 30 | replace-me 31 | ." Bob replaced: " pkc $20 85type cr 32 | disconnect-me ; 33 | 34 | c:bob server-loop 35 | \ ?nextarg [IF] s>number drop [ELSE] 1 [THEN] c:tests 36 | 37 | script? [IF] bye [THEN] 38 | -------------------------------------------------------------------------------- /tests/client-test.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - client side 2 | 3 | require client-tests.fs 4 | require test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +db stat( \ ) 7 | +debug 8 | %droprate 9 | debug-task 10 | 11 | i'm anonymous 12 | 13 | init-client 14 | 15 | "test" connect-nick $! 16 | 17 | !time 18 | cmd-args 19 | ?nextarg [IF] net2o-host $! [THEN] 20 | ?nextarg [IF] s>number drop to net2o-port [THEN] 21 | ?nextarg [IF] s>number drop [ELSE] 1 [THEN] c:tests 22 | 23 | script? [IF] bye [THEN] 24 | -------------------------------------------------------------------------------- /tests/copy.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - client side 2 | 3 | require net2o.fs 4 | 5 | +db stat( 6 | +debug 7 | 8 | "anonymous" >key \ get our anonymous key 9 | 10 | init-client 11 | 12 | s" .cache" file-status nip #-514 = [IF] 13 | s" .cache" $1FF =mkdir throw 14 | [THEN] 15 | 16 | !time 17 | 18 | 19 | ?nextarg [IF] net2o-host $@ [THEN] \ default 20 | ?nextarg [IF] net2o-port [ELSE] s>number drop [THEN] 21 | insert-ip n2o:new-context "test" dest-key 22 | $8000 $100000 n2o:connect +flow-control +resend 23 | 24 | ." Connected" cr 25 | 26 | net2o-code 27 | expect-reply 28 | data-ivs time-offset! 29 | s" Download test" $, type cr see-me 30 | $400 blocksize! $400 blockalign! stat( request-stats ) 31 | s" data/android-ndk-r8e-linux-x86.tar.bz2" s" ~/Downloads/android-ndk-r8e-linux-x86.tar.bz2" n2o:copy 32 | n2o:done 33 | send-chunks 34 | end-code 35 | 36 | 1 client-loop .time cr 37 | 38 | bye -------------------------------------------------------------------------------- /tests/cryptspeed.fs: -------------------------------------------------------------------------------- 1 | \ test encryption speed 2 | 3 | require ../net2o.fs 4 | 5 | : test-speed ( addr u -- ) 6 | c:0key 2dup 0 !time c:encrypt+auth .time 7 | c:0key 0 !time c:decrypt+auth .time . cr ; 8 | 9 | : test-keccak ( addr u -- ) 10 | ." Keccak: " keccak-o crypto-o ! test-speed ; 11 | : test-threefish ( addr u -- ) 12 | ." Threefish: " threefish-o crypto-o ! test-speed ; 13 | 14 | : test-all ( addr u -- ) 15 | 2dup test-keccak test-threefish ; 16 | 17 | 32 1024 1024 * * Constant test-size# 18 | test-size# $10 + allocate throw Constant test-pad 19 | 20 | script? [IF] 21 | test-pad test-size# test-all 22 | test-pad test-size# test-all 23 | test-pad test-size# test-all 24 | bye 25 | [THEN] 26 | -------------------------------------------------------------------------------- /tests/dht-pop.fs: -------------------------------------------------------------------------------- 1 | \ populate DHT test 2 | 3 | require ../net2o.fs 4 | 5 | "anonymous" >key \ get our anonymous key 6 | 7 | pkc keysize >d#id 8 | 9 | Variable $tag 10 | : tag-word name>string $tag $! s" :word" $tag $+! 11 | $tag $@ pkc keysize gen-tag k#tags d#value+ ; 12 | now>never 13 | forth-wordlist ' tag-word map-wordlist 14 | pad $100000 $f0 d#values, 2drop -------------------------------------------------------------------------------- /tests/dht.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - client side 2 | 3 | require ../client-tests.fs 4 | require ../test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +db stat( \ ) 7 | +debug 8 | +db dht( \ ) 9 | 10 | "anonymous" >key \ get our anonymous key 11 | 12 | init-client 13 | 14 | !time 15 | 16 | ?nextarg [IF] net2o-host $! [THEN] 17 | ?nextarg [IF] s>number drop to net2o-port [THEN] 18 | 19 | script? [IF] 1 c:dht bye [THEN] 20 | -------------------------------------------------------------------------------- /tests/dvcs-test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | GFORTH=${GFORTH:-gforth} 3 | rm -rf dvcs-test.d dvcs-test.2 4 | mkdir -p dvcs-test.d/.net2o dvcs-test.2/.net2o 5 | cd dvcs-test.d 6 | cat >.net2o/config <.net2o/config < >($GFORTH ../n2o $* chat dvcs-test) 43 | export GFORTHPID=$[$!+1] 44 | function killgforth { 45 | kill $GFORTHPID 46 | } 47 | trap killgforth EXIT 48 | 49 | sleep 1 #wait for gforth to start the chat 50 | cd ../dvcs-test.2 51 | export NET2O_CONF=$PWD/.net2o/config 52 | $GFORTH ../n2o $* cmd <&3 62 | 63 | cd ../dvcs-test.d 64 | export NET2O_CONF=$PWD/.net2o/config 65 | $GFORTH ../n2o $* script tests/dvcs-test2.s2o 66 | 67 | exec 3> >($GFORTH ../n2o $* chat dvcs-test) 68 | export GFORTHPID=$[$!+1] 69 | sleep 1 #wait for gforth to start the chat 70 | cd ../dvcs-test.2 71 | export NET2O_CONF=$PWD/.net2o/config 72 | $GFORTH ../n2o $* cmd <&3 79 | echo "/bye" >&3 80 | exec 3>&- 81 | sleep 5 82 | -------------------------------------------------------------------------------- /tests/dvcs-test2.s2o: -------------------------------------------------------------------------------- 1 | sh echo "Generate another file" >e 2 | add e 3 | sh echo "=== Checkin 1 ===" 4 | diff 5 | ci -m "Another checkin 1" 6 | sh cat a b c >>e 7 | sh echo "Line a" >>a 8 | sh echo "Line b" >>b 9 | sh echo "Line c" >>c 10 | sh echo "=== Checkin 2 ===" 11 | diff 12 | ci -m "Another checkin 2" 13 | sh cat e a >>c 14 | sh echo "Line e" >>e 15 | sh echo "Line a" >>a 16 | sh echo "=== Checkin 3 ===" 17 | diff 18 | ci -m "Another checkin 3" 19 | bye 20 | -------------------------------------------------------------------------------- /tests/ed25519-table.fs: -------------------------------------------------------------------------------- 1 | \ test ed25519-donna basepoint multiplication 2 | 3 | debug: health( 4 | 5 | require forward.fs 6 | require ansi.fs 7 | require mini-oof2.fs 8 | require user-object.fs 9 | require unix/mmap.fs 10 | require ../tools.fs 11 | require ../xtype.fs 12 | require ../base64.fs 13 | require ../base85.fs 14 | require ../kregion.fs 15 | require ../crypto-api.fs 16 | require ../keccak.fs 17 | require ../rng.fs 18 | require ../ed25519-donna.fs 19 | 20 | here negate $1F and allot 21 | here $20 allot 22 | here $20 allot 23 | here $20 allot 24 | here $20 allot 25 | constant stpkc constant stskc constant keypad constant keypad2 26 | 27 | : init-pkc 28 | ge25519-basepoint get0 $30 4 * move 29 | stpkc get0 ge25519-pack ; 30 | 31 | : init-skc ( -- ) 32 | stskc $20 erase 1 stskc c! ; 33 | 34 | : sk*2 ( addr -- ) 0 swap $20 bounds DO 35 | I @ tuck 2* swap - I ! 0< 36 | cell +LOOP drop ; 37 | 38 | : ?ok keypad $20 keypad2 over str= IF ." ok" THEN ; 39 | 40 | : xorc! ( c addr -- ) dup >r c@ xor r> c! ; 41 | 42 | : ed-dhv { sk pk dest -- secret len } 43 | get0 pk ge25519-unpack- 0= !!no-ed-key!! 44 | sct2 sk raw>sc25519 45 | get1 get0 sct2 ge25519*v 46 | dest get1 ge25519-pack 47 | clean-ed25519 dest $20 $80 dest $1F + xorc! ; 48 | 49 | : 25519.all ( -- ) 50 | init-skc init-pkc 51 | $100 0 DO ( stskc sk-mask ) \ stskc $20 xtype space 52 | stskc stpkc keypad ed-dh 85type space 53 | stskc stpkc keypad2 ed-dhv 2drop ?ok 54 | stskc keypad2 sk>pk ?ok 55 | cr stskc sk*2 LOOP ; 56 | 57 | script? [IF] 25519.all bye [THEN] 58 | -------------------------------------------------------------------------------- /tests/eve-test.fs: -------------------------------------------------------------------------------- 1 | \ eve wants to revoke her key... 2 | 3 | require client-tests.fs 4 | require test-keys.fs 5 | 6 | i'm eve 7 | pkc keysize 2* save-mem d#hashkey 2! 8 | 9 | \ that's Eve's secret revokation key 10 | x" 7821DA41AFBB8F7356E2EB7059BE70321D7ADCDAD8C504998627CBB9366AB752" drop 11 | >revoke revoke-key 12 | revoke? [IF] ." Revocation succeeded" [ELSE] ." Revokation failed!!!" [THEN] cr 13 | dump 14 | 15 | i'm eve 16 | \ that's not quite Eve's secret revokation key, can you spot the difference? 17 | x" 7821DA41AFBB8F7356E2EB7159BE70321D7ADCDAD8C504998627CBB9366AB752" drop 18 | ' >revoke catch ' !!not-my-revsk!! >body @ = [IF] ." Check failed, as expected" [ELSE] ." Check wrongly ok!!!" [THEN] drop cr 19 | revoke-key 20 | revoke? [IF] ." Revocation check false positive!!!" [ELSE] ." Revokation failed, as expected" [THEN] cr 2drop 21 | 22 | script? [IF] bye [THEN] -------------------------------------------------------------------------------- /tests/file.diff: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | gforth-fast server-test.fs +file $* >server & 3 | SERVER=$! 4 | gforth-fast client-test.fs +file $* localhost >client 5 | kill -2 $SERVER 6 | grep 'file.read:' server | sed -e 's/ read//g' | grep -v ' \$0 *$' >server.read 7 | grep 'encrypt:' server | sed -e 's/encrypt:/crypt:/g' | grep -v ' \$0 *$' >server.crypt 8 | grep 'file.write:' client | sed -e 's/ write//g' | grep -v ' \$0 *$' >client.write 9 | grep 'decrypt:' client | sed -e 's/decrypt: \([0-9A-F]*\) \([0-9A-F]*\) \([0-9A-F]*\)/crypt: \1 \3 \2/g' | grep -v ' \$0 *$' >client.crypt 10 | diff -u server.read client.write 11 | -------------------------------------------------------------------------------- /tests/insdeltest.fs: -------------------------------------------------------------------------------- 1 | \ test insert and delete 2 | : []. [: type ." , " ;] $[]map cr ; 3 | 4 | Variable foo 5 | "hi" foo $ins[] foo []. 6 | "ho" foo $ins[] foo []. 7 | "ha" foo $ins[] foo []. 8 | "he" foo $ins[] foo []. 9 | "a" foo $ins[] foo []. 10 | "c" foo $ins[] foo []. 11 | "e" foo $ins[] foo []. 12 | "z" foo $ins[] foo []. 13 | 14 | "hi" foo $del[] foo []. 15 | "ho" foo $del[] foo []. 16 | "ha" foo $del[] foo []. 17 | "he" foo $del[] foo []. 18 | "a" foo $del[] foo []. 19 | "c" foo $del[] foo []. 20 | "e" foo $del[] foo []. 21 | "z" foo $del[] foo []. -------------------------------------------------------------------------------- /tests/keys.fs: -------------------------------------------------------------------------------- 1 | \ net2o key storage tests 2 | 3 | \ Copyright © 2014 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | require ../net2o.fs 19 | 20 | +debug 21 | 22 | "testkey.n2o" r/w create-file throw to key-sfd 23 | 24 | "This is a Test" ">passphrase key>default 25 | "test" 2dup key#anon +gen-keys .rsk 26 | "anonymous" 2dup key#anon +gen-keys .rsk 27 | "alice" 2dup key#user +gen-keys .rsk 28 | "bob" 2dup key#user +gen-keys .rsk 29 | "eve" 2dup key#user +gen-keys .rsk 30 | 31 | read-keys 32 | .keys 33 | 34 | bye -------------------------------------------------------------------------------- /tests/msg.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - msg 2 | 3 | require ../client-tests.fs 4 | require ../test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +db stat( 7 | script? [IF] +debug %droprate [THEN] 8 | 9 | i'm alice 10 | 11 | init-client 12 | 13 | !time 14 | 15 | ?nextarg [IF] net2o-host $! [THEN] 16 | ?nextarg [IF] s>number drop to net2o-port [THEN] 17 | 18 | : c:msg-test ( -- ) 19 | [: .time ." Message test" cr ;] $err 20 | "This is a test message" send-text 21 | "This is a second test message" send-text 22 | pad 100 accept pad swap send-text 23 | ['] .time $err ; 24 | 25 | script? [IF] $a $e "test" ins-ip c:connect c:msg-test c:disconnect bye [THEN] 26 | -------------------------------------------------------------------------------- /tests/server-test.fs: -------------------------------------------------------------------------------- 1 | \ test file for net2o - server side 2 | 3 | require client-tests.fs \ test framework 4 | require test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +debug 7 | %droprate 8 | \ bg( )else( debug-task ) 9 | 10 | +db no0key( \ ) 11 | perm%myself dup to perm%unknown to perm%default 12 | 13 | cmd-args ?nextarg [IF] s>number drop to net2o-port [THEN] 14 | 15 | i'm test 16 | 17 | init-server 18 | server-loop 19 | 20 | -------------------------------------------------------------------------------- /tests/termclient.fs: -------------------------------------------------------------------------------- 1 | \ net2o tests - client side 2 | 3 | require client-tests.fs 4 | require test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +db stat( 7 | +debug 8 | %droprate 9 | debug-task 10 | 11 | i'm anonymous 12 | 13 | init-client 14 | 15 | !time 16 | 17 | ?nextarg [IF] net2o-host $! [THEN] 18 | ?nextarg [IF] s>number drop to net2o-port [THEN] 19 | ?nextarg [IF] s>number drop [ELSE] 1 [THEN] 20 | 21 | c:terminal 22 | 23 | script? [IF] net2o-bye [THEN] 24 | -------------------------------------------------------------------------------- /tests/terminal-test.fs: -------------------------------------------------------------------------------- 1 | \ test file for net2o terminal 2 | 3 | require client-tests.fs \ test framework 4 | require test-keys.fs \ we want the test keys - never use this in production! 5 | 6 | +debug 7 | %droprate 8 | 9 | ?nextarg [IF] s>number drop to net2o-port [THEN] 10 | 11 | i'm test 12 | 13 | init-server 14 | event-loop-task 15 | -------------------------------------------------------------------------------- /tests/test-keys.fs: -------------------------------------------------------------------------------- 1 | \ test keys 2 | 3 | : test-keys ( -- ) \ yes, use these keys *only* for testing! 4 | \ revoke: 58AB8F52F46E73EFAB068F6337F371E14DD589BF0894D2F0AF51AE7EBB858A68 5 | x" A91158F2C560ACCDFEFC05104B922E49C9DD022D0163921DAE08E6C2148A7BEBC83C71FCB345D24400D866C7FD32092C2D1EC056FD17B9537037590BD021EEBF" key:new >o 6 | x" B2578B8766DB3A60F1F4F36B276924FDA6E7F559F629716BC78D95DB1CD8D400" ke-sk sec! +seckey 7 | "test" ke-nick $! nick! $1367B086A24E6B10. d>64 ke-first! 0 ke-type ! perm%myself ke-mask ! o> 8 | \ revoke: 5843E2DC055E1F8BE14570A37B0F81146040A2CEE1D6C01B97C3BB801CDED864 9 | x" 69D86C471E5FEED89478FB4260C898B6F69026BA4E78A9D815B53EB33CA9013A8E753EC381881FAAFFA66CD9DD47D3F2C0867E1A2B48067CA2188DF400C11074" key:new >o 10 | x" 5905350A6B4B5DE29C2CA4562BB105EF570713CE648E38F6FBBB6D076D141B0A" ke-sk sec! +seckey 11 | "anonymous" ke-nick $! nick! $1367B086A255C9C2. d>64 ke-first! 0 ke-type ! perm%myself ke-mask ! o> 12 | \ revoke: 38A6FB42FF41A690A108DCA460CC0D15AE3C1C23FFFA9E92583FFD9FB16AD276 13 | x" 7A0FFD3D31ED822D683D685EA5689C91CB170B54A82F0E53554D34584F90DB017750513CDC1F1DC7F8F61214ED4BC801CF70C3D5FC90F716F2363038ACEE58BD" key:new >o 14 | x" AAB952DD5D1850F1B468EEF84F72552148070C3F499600FE362934970329FE04" ke-sk sec! +seckey 15 | "alice" ke-nick $! nick! $1367B086A25CEF70. d>64 ke-first! 1 ke-type ! perm%myself ke-mask ! o> 16 | \ revoke: D82AF4AE7CD3DA7316CE6F26BC5792F4F5E6B36B4C14F7D60C49B421AE1D5468 17 | x" 1A20176C79D26402811945CFC241116BAFB52DD033492044DB5CFEECCA21E6E49F350B40A28D83B618361167D13B51A4EFCE919C7BB6BDCC570D9B7031A0428E" key:new >o 18 | x" 6B65577985D851753ACFFFFB00360C70C267420132204A17F4468D9CACDB010F" ke-sk sec! +seckey 19 | "bob" ke-nick $! nick! $1367B086A26436A9. d>64 ke-first! 1 ke-type ! perm%myself ke-mask ! o> 20 | \ revoke: 7821DA41AFBB8F7356E2EB7059BE70321D7ADCDAD8C504998627CBB9366AB752 21 | x" 9483FBBB98A5BFE792206519FB2BAF9EE21FE863ABE981AB1C209123D40E1969EA7C68162DF5340142524D6BE3E407B065824D1E3582E6209CA03876F406EBCA" key:new >o 22 | x" 693D7EF6BF0E0CEFB0654EB95AB7C729B8799F850CAB24B1211116ED72EA3602" ke-sk sec! +seckey 23 | "eve" ke-nick $! nick! $1367B086A26B4E42. d>64 ke-first! 1 ke-type ! perm%myself ke-mask ! o> 24 | ; 25 | 26 | test-keys 27 | -------------------------------------------------------------------------------- /tests/teststat.fs: -------------------------------------------------------------------------------- 1 | require unix/socket.fs 2 | require unix/filestat.fs 3 | file-stat buffer: statbuf 4 | s" net2o.fs" r/o open-file throw value fd0 5 | fd0 fileno statbuf fstat . errno . cr 6 | s" .cache/net2o.fs" r/w open-file throw value fd1 7 | -100 ".cache/net2o.fs\0" drop statbuf st_mtime 0 .s utimensat . errno . cr 8 | fd1 fileno 0 statbuf st_mtime $400 .s utimensat . errno . cr -------------------------------------------------------------------------------- /tests/vault.fs: -------------------------------------------------------------------------------- 1 | \ test file vault 2 | 3 | require ../net2o-vault.fs 4 | require ../test-keys.fs 5 | 6 | \ +db trace( 7 | 8 | Variable key-list 9 | i'm eve 10 | 11 | vpks-off 12 | +pk alice 13 | +pk bob 14 | 15 | "data/2011-05-13_11-26-57-small.jpg" vkey-list encrypt-file 16 | 17 | i'm bob 18 | "data/2011-05-13_11-26-57-small.jpg.v2o" decrypt-file 19 | 20 | bye -------------------------------------------------------------------------------- /threefish/AUTHORS: -------------------------------------------------------------------------------- 1 | Jonathan Bowman, Bruce Schneier (idea) 2 | 3 | For more information, feedback or questions, please refer to our 4 | website: https://www.schneier.com/threefish.html 5 | 6 | 7 | -------------------------------------------------------------------------------- /threefish/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/threefish/ChangeLog -------------------------------------------------------------------------------- /threefish/Makefile.am: -------------------------------------------------------------------------------- 1 | # Automake file for keccak 2 | 3 | ## Place generated object files (.o) into the same directory as their source 4 | ## files, in order to avoid collisions when non-recursive make is used. 5 | AUTOMAKE_OPTIONS = subdir-objects 6 | 7 | ## Additional flags to pass to aclocal when it is invoked automatically at 8 | ## make time. The ${ACLOCAL_FLAGS} variable is picked up from the environment 9 | ## to provide a way for the user to supply additional arguments. 10 | ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 11 | 12 | ## Set the default command-line flags for the C preprocessor to the value 13 | ## obtained from pkg-config via PKG_CHECK_MODULES in configure.ac. These 14 | ## flags are passed to the compiler for both C and C++, in addition to the 15 | ## language-specific options. 16 | AM_CPPFLAGS = $(EXAMPLE_CFLAGS) 17 | 18 | lib_LTLIBRARIES = libthreefish.la 19 | if FAST 20 | lib_LTLIBRARIES += libthreefishfast.la 21 | endif 22 | include_HEADERS = threefish.h 23 | libthreefish_la_SOURCES = threefish.c 24 | libthreefish_la_LIBADD = 25 | libthreefish_la_LDFLAGS = -version-info ${VERSION} -no-undefined 26 | libthreefish_la_CFLAGS = @flags@ 27 | libthreefishfast_la_SOURCES = threefish.c 28 | libthreefishfast_la_LIBADD = 29 | libthreefishfast_la_LDFLAGS = -version-info ${VERSION} -no-undefined 30 | libthreefishfast_la_CFLAGS = @fastflags@ 31 | 32 | install-exec-hook: 33 | -/sbin/ldconfig $(libdir) 34 | -------------------------------------------------------------------------------- /threefish/Makefile.android: -------------------------------------------------------------------------------- 1 | NDK = $(HOME)/proj/android-toolchain/sysroot 2 | GFORTH = $(HOME)/proj/gforths/android 3 | CC = arm-linux-androideabi-gcc 4 | LIBTOOL = arm-linux-androideabi-libtool 5 | SUFFIX = .android 6 | 7 | include Makefile.forth 8 | 9 | -------------------------------------------------------------------------------- /threefish/Makefile.forth: -------------------------------------------------------------------------------- 1 | # Generic makefile, for crosscompiling use make -f Makefile. 2 | 3 | INCLUDES = -I$(NDK)/usr/include -I$(NDK)/usr/local/include/ 4 | SWIG = /usr/local/bin/swig 5 | TARGETS = threefish.fsx 6 | LIBRARY = libthreefish.fs 7 | OPTIONS = -forth -no-sectioncomments -use-structs -stackcomments $(INCLUDES) 8 | INSTALL = /usr/bin/install -c 9 | ARCH= 10 | VERSION = `gforth --version 2>&1 | cut -f2 -d' '` 11 | SHELL = /bin/sh 12 | RMTREE = rm -rf 13 | prefix = 14 | exec_prefix = ${prefix} 15 | libexecdir = $(package)${exec_prefix}/lib 16 | libccdir = $(subst $(DESTDIR),,$(libexecdir)/gforth$(ARCH)/$(VERSION)/libcc-named/) 17 | srcdir = . 18 | DESTDIR = /home/bernd/proj/net2o 19 | 20 | all: $(TARGETS) 21 | 22 | build-libcc-named: $(LIBRARY) $(TARGETS) 23 | $(RMTREE) lib/gforth$(ARCH)/$(VERSION)/libcc-named/ 24 | -for i in $(LIBRARY); do ./libforth$(SUFFIX) -e "s\" `pwd`/lib/gforth$(ARCH)/$(VERSION)/libcc-named/\" libcc-named-dir-v 2! libcc-path clear-path libcc-named-dir libcc-path also-path :noname 2drop s\" $(DESTDIR)$(libccdir)\" ; is replace-rpath" $(srcdir)/$$i -e bye; done 25 | 26 | libs: build-libcc-named $(LIBRARY) 27 | for i in $(LIBRARY); do \ 28 | $(LIBTOOL) --silent --mode=install $(INSTALL) lib/gforth$(ARCH)/$(VERSION)/libcc-named/libgf`basename $$i .fs`.la $(DESTDIR)$(libccdir)libgf`basename $$i .fs`.la; \ 29 | done 30 | 31 | # execute compiled file 32 | %.fs: %.fsx 33 | ./$< -gforth > $@ 34 | 35 | # compile fsi-file 36 | %.fsx: %-fsi.c 37 | $(CC) -o $@ $< 38 | 39 | # use swig to create the fsi file 40 | %-fsi.c: %.i 41 | $(SWIG) $(OPTIONS) -o $@ $(patsubst %-fsi.c, %.i, $@) 42 | 43 | run: $(DEMO) 44 | gforth $(DEMO) 45 | 46 | .PHONY: clean 47 | 48 | clean: 49 | rm -f $(TARGETS) 50 | rm -f $(patsubst %.fsx, %-fsi.c, $(TARGETS)) 51 | rm -f $(patsubst %.fsx, %.fs, $(TARGETS)) 52 | 53 | -------------------------------------------------------------------------------- /threefish/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/threefish/NEWS -------------------------------------------------------------------------------- /threefish/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/threefish/README -------------------------------------------------------------------------------- /threefish/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | test -n "$srcdir" || srcdir=`dirname "$0"` 3 | test -n "$srcdir" || srcdir=. 4 | 5 | mkdir -p m4 6 | libtoolize --force --copy --install || glibtoolize --force --copy --install 7 | autoreconf --force --install --verbose "$srcdir" 8 | aclocal --install -I m4 9 | automake --add-missing 10 | test -n "$NOCONFIGURE" || "$srcdir/configure" "$@" 11 | -------------------------------------------------------------------------------- /threefish/configure.ac: -------------------------------------------------------------------------------- 1 | ## ExampleLib Example: an example of using Automake to link with a library 2 | 3 | AC_INIT([THREEFISH], [1:3], [bernd@net2o.de], [threefish for Linux], 4 | [https://www.schneier.com/threefish.html]) 5 | AC_PREREQ([2.59]) 6 | AM_INIT_AUTOMAKE([1.10 -Wall no-define]) 7 | AC_CONFIG_MACRO_DIR([m4]) 8 | AC_CONFIG_HEADERS([config.h]) 9 | 10 | AC_PROG_CC 11 | AM_PROG_AS 12 | m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 13 | LT_INIT 14 | 15 | flags="$CFLAGS" 16 | nomflags="`echo $CFLAGS | sed -e 's/-m[0-9]* //g'`" 17 | 18 | # special optimizations for some plattforms 19 | case "$host" in 20 | arm*-*linux*) 21 | flags="$CFLAGS" 22 | #may try with -mneon-for-64bits 23 | fastflags="-O3 -mfpu=neon $nomflags" 24 | enable_fast=yes 25 | CFLAGS="" 26 | ;; 27 | arm*-*) 28 | CFLAGS="-O3 -mfpu=neon $nomflags" 29 | ;; 30 | i686-*linux*|i686-*cygwin*) 31 | flags="$CFLAGS" 32 | fastflags="-O3 -m32 -mssse3 $nomflags" 33 | enable_fast=yes 34 | CFLAGS="" 35 | ;; 36 | i686-*) 37 | # if you don't want sse, specify i586- 38 | CFLAGS="-O3 -m32 -mssse3 $nomflags" 39 | ;; 40 | esac 41 | 42 | CFLAGS=`echo $CFLAGS | sed -e 's/-O2/-O3/g'` 43 | case "$CFLAGS" in 44 | *-O3*) 45 | ;; 46 | *) 47 | CFLAGS="$CFLAGS -O3" 48 | ;; 49 | esac 50 | 51 | AC_ARG_ENABLE([fast], 52 | [ --enable-fast Turn on optional fast library with non-standard CPU features], 53 | [case "${enableval}" in 54 | yes) fast=true ;; 55 | no) fast=false ;; 56 | *) AC_MSG_ERROR([bad value ${enableval} for --enable-fast]) ;; 57 | esac],[fast=false]) 58 | AM_CONDITIONAL([FAST], [test x$fast = xtrue]) 59 | 60 | PRECC=${CC%gcc*} 61 | PRECLANG=${PRECC%clang*} 62 | dnl MacOS X has a libtool that does something else 63 | AC_CHECK_PROGS(GNU_LIBTOOL,"glibtool --tag=CC" libtool) 64 | 65 | #LIBTOOL=${PRECLANG}${LIBTOOL} 66 | echo "Libtool: $PRECC, $PRECLANG, $LIBTOOL" 67 | 68 | AC_SUBST(fastflags) 69 | AC_SUBST(flags) 70 | AC_SUBST(LIBTOOL) 71 | AC_CONFIG_FILES([Makefile]) 72 | AC_OUTPUT 73 | -------------------------------------------------------------------------------- /threefish/debian/changelog: -------------------------------------------------------------------------------- 1 | threefish (1.2) stable; urgency=low 2 | 3 | * Initial Release 4 | 5 | -- Bernd Paysan Fri, 08 Jan 2016 00:15:15 +0100 6 | -------------------------------------------------------------------------------- /threefish/debian/compat: -------------------------------------------------------------------------------- 1 | 9 -------------------------------------------------------------------------------- /threefish/debian/control: -------------------------------------------------------------------------------- 1 | Source: threefish 2 | Section: programming 3 | Priority: optional 4 | Maintainer: Bernd Paysan 5 | Build-Depends: debhelper, build-essential, gcc, autoconf, automake, libtool, libtool-bin, libc 6 | 7 | Package: threefish 8 | Version: 1.0 9 | Architecture: any 10 | Depends: ${shlibs:Depends} 11 | Multi-Arch: same 12 | Description: Threefish 13 | Threefish is the crypto primitive of Bruce Schneier's SHA-3 candidate, 14 | and also can be used for ECB mode encryption (and with other modes, for AEAD) 15 | -------------------------------------------------------------------------------- /threefish/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Simple debian/rules that uses debhelper. 4 | # Created by Bernd Paysan, in the public domain 5 | 6 | %: 7 | dh $@ 8 | 9 | override_dh_auto_test: 10 | override_dh_shlibdeps: 11 | -------------------------------------------------------------------------------- /threefish/skein.h: -------------------------------------------------------------------------------- 1 | /* 2 | * skein.h 3 | * Copyright 2010 Jonathan Bowman 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 14 | * implied. See the License for the specific language governing 15 | * permissions and limitations under the License. 16 | */ 17 | 18 | #ifndef _SKEIN_H_ 19 | #define _SKEIN_H_ 1 20 | 21 | #include 22 | #include "threefish.h" 23 | 24 | struct skein_ctx { 25 | uint32_t digest_bits; 26 | uint32_t b_cnt; 27 | struct tf_ctx_512 tf; 28 | uint8_t b[64]; 29 | }; 30 | 31 | void skein_new_type(struct skein_ctx *ctx, uint64_t type); 32 | 33 | void skein_process_block(struct skein_ctx *ctx, const uint8_t *blk_ptr, 34 | uint32_t blk_cnt, uint32_t byte_len); 35 | 36 | void skein_rand_seed(struct skein_ctx *ctx, uint8_t *seed, 37 | uint32_t seed_bytes); 38 | 39 | void skein_rand(struct skein_ctx *ctx, uint32_t request_bytes, uint8_t *out); 40 | 41 | void skein_init(struct skein_ctx *ctx, uint32_t digest_bits, 42 | const uint8_t *key, uint32_t key_len); 43 | 44 | void skein_update(struct skein_ctx *ctx, const uint8_t *msg, 45 | uint32_t msg_len); 46 | 47 | void skein_final(struct skein_ctx *ctx, uint8_t *result, int output); 48 | 49 | uint32_t skein_output(struct skein_ctx *ctx, uint8_t *result, 50 | uint32_t digest_size, uint32_t count); 51 | 52 | /* "Internal" Skein definitions */ 53 | #define KEY (0) 54 | #define NONCE (0x5400000000000000ULL) 55 | #define MSG (0x7000000000000000ULL) 56 | #define CFG_FINAL (0xc400000000000000ULL) 57 | #define OUT_FINAL (0xff00000000000000ULL) 58 | 59 | #define SKEIN_SCHEMA_VER (0x133414853ULL) 60 | #define SKEIN_KS_PARITY (0x1BD11BDAA9FC1A22ULL) 61 | 62 | #endif /* ifndef _SKEIN_H_ */ 63 | -------------------------------------------------------------------------------- /threefish/threefish.fs: -------------------------------------------------------------------------------- 1 | \ This file has been generated using SWIG and fsi, 2 | \ and is already platform dependent, search for the corresponding 3 | \ fsi-file to compile it where no one has compiled it before ;) 4 | \ GForth has its own dynamic loader and doesn't need addional C-Code. 5 | \ That's why this file contains normal Gforth-code( version 0.6.9 or higher ) 6 | \ and could be used directly with include or require. 7 | \ As all comments are stripped during the compilation, please 8 | \ insert the copyright notice of the original file here. 9 | 10 | \ ----===< int constants ===>----- 11 | 1 constant _THREEFISH_H_ 12 | 13 | \ -------===< structs >===-------- 14 | \ tf_ctx 15 | begin-structure tf_ctx 16 | drop 0 72 +field tf_ctx-key 17 | drop 72 24 +field tf_ctx-tweak 18 | drop 96 end-structure 19 | 20 | \ ------===< functions >===------- 21 | c-function tf_init tf_init a -- void 22 | c-function tf_prep tf_prep a -- void 23 | c-function tf_encrypt tf_encrypt a a a n -- void 24 | c-function tf_decrypt tf_decrypt a a a -- void 25 | c-function rot_l64 rot_l64 d n -- d 26 | c-function rot_r64 rot_r64 d n -- d 27 | -------------------------------------------------------------------------------- /threefish/threefish.h: -------------------------------------------------------------------------------- 1 | /* 2 | * threefish.h 3 | * Copyright 2010 Jonathan Bowman 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 14 | * implied. See the License for the specific language governing 15 | * permissions and limitations under the License. 16 | */ 17 | 18 | 19 | #ifndef _THREEFISH_H_ 20 | #define _THREEFISH_H_ 1 21 | 22 | #include 23 | 24 | typedef struct tf_ctx_256 { 25 | uint64_t key[5]; 26 | uint64_t tweak[3]; 27 | } tf_ctx_256; 28 | 29 | typedef struct tf_ctx_512 { 30 | uint64_t key[9]; 31 | uint64_t tweak[3]; 32 | } tf_ctx_512; 33 | 34 | static void tf_prep_256(struct tf_ctx_256 *ctx); 35 | static void tf_tweak_256(struct tf_ctx_256 *ctx); 36 | void tf_encrypt_256(struct tf_ctx_256 *ctx, const uint64_t *p, uint64_t *out, int flags); 37 | void tf_decrypt_256(struct tf_ctx_256 *ctx, const uint64_t *c, uint64_t *out, int flags); 38 | 39 | static void tf_prep_512(struct tf_ctx_512 *ctx); 40 | static void tf_tweak_512(struct tf_ctx_512 *ctx); 41 | void tf_encrypt_512(struct tf_ctx_512 *ctx, const uint64_t *p, uint64_t *out, int flags); 42 | void tf_decrypt_512(struct tf_ctx_512 *ctx, const uint64_t *c, uint64_t *out, int flags); 43 | 44 | static uint64_t rot_l64(uint64_t x, uint16_t N); 45 | static uint64_t rot_r64(uint64_t x, uint16_t N); 46 | 47 | #endif /* ifndef _THREEFISH_H_ */ 48 | -------------------------------------------------------------------------------- /threefish/threefish.i: -------------------------------------------------------------------------------- 1 | %module threefish 2 | %insert("include") 3 | %{ 4 | #include 5 | %} 6 | 7 | %apply long long { uint64_t }; 8 | %apply short { uint16_t }; 9 | 10 | %include 11 | -------------------------------------------------------------------------------- /threefishfast.fs: -------------------------------------------------------------------------------- 1 | \ threefish fast wrapper 2 | 3 | \ Copyright © 2012-2015 Bernd Paysan 4 | 5 | \ This program is free software: you can redistribute it and/or modify 6 | \ it under the terms of the GNU Affero General Public License as published by 7 | \ the Free Software Foundation, either version 3 of the License, or 8 | \ (at your option) any later version. 9 | 10 | \ This program is distributed in the hope that it will be useful, 11 | \ but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | \ GNU Affero General Public License for more details. 14 | 15 | \ You should have received a copy of the GNU Affero General Public License 16 | \ along with this program. If not, see . 17 | 18 | require rec-scope.fs 19 | 20 | c-library threefishfast 21 | s" threefishfast" add-lib 22 | \ s" threefish/.libs" add-libpath \ find library during build 23 | include threefishlib.fs 24 | end-c-library 25 | -------------------------------------------------------------------------------- /version.fs.in: -------------------------------------------------------------------------------- 1 | : net2o-version s" @PACKAGE_VERSION@" ; -------------------------------------------------------------------------------- /wiki/31c3.md: -------------------------------------------------------------------------------- 1 | 31c3 YBTI presentation 2 | ====================== 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wiki/32c3.md: -------------------------------------------------------------------------------- 1 | 32c3 YBTI presentation 2 | ====================== 3 | 4 | 7 | 8 | 9 | 10 | [Torrent file](https://net2o.de/32c3-net2o-cut.torrent) 11 | 12 | [CC-SA-BY 4.0](https://creativecommons.org/licenses/by-sa/4.0/) video recording by Bernd Paysan 13 | -------------------------------------------------------------------------------- /wiki/33c3.md: -------------------------------------------------------------------------------- 1 | # 33c3 #wefixthenet presentation # 2 | 3 | ## net2o — works for me ⇒ works for you + onion routing ## 4 | 5 | 9 | 10 | 11 | 12 | [Torrent file](https://net2o.de/33c3-net2o.torrent) 13 | 14 | [CC-SA-BY 4.0](https://creativecommons.org/licenses/by-sa/4.0/) video recording by Bernd Paysan 15 | -------------------------------------------------------------------------------- /wiki/34c3.md: -------------------------------------------------------------------------------- 1 | # 34c3 #wefixthenet presentation # 2 | 3 | ## net2o — GUI, realtime mixnet, $quid CryptoCurrency ## 4 | 5 | 10 | 11 | [Torrent file](https://net2o.de/34c3-net2o-34c3.torrent) 12 | 13 | [CC-SA-BY 4.0](https://creativecommons.org/licenses/by-sa/4.0/) video recording by Bernd Paysan 14 | -------------------------------------------------------------------------------- /wiki/ackcookies.md: -------------------------------------------------------------------------------- 1 | # Ack cookies # 2 | 3 | net2o has a very low bandwidth acknowledge protocol (one ack for 32 packets, 4 | the ack is a small packet, 64 or at most 128 bytes, while the data is 5 | 32k). And net2o's flow control relies on the receiver to signal correct time 6 | stamps. 7 | 8 | So a malicious receiver can just spoof some answers and drive the sender to 9 | create a lot of traffic. To prevent acknowledge spoofing, we require the 10 | receivers to compute a "cookie" for every packet transmitted — this cookie is 11 | something that proves they has received and correctly decrypted the packet, but 12 | the cookie itself is actually never sent around. We use Keccak's hidden state 13 | to create this cookie — reduced to a 64 bit number (this is more than 14 | sufficient — anything an attacker can create is bandwidth). We xor all cookies 15 | of one acknowledge lump together. 16 | 17 | Malicious receivers who creates excessive traffic now will not receive the 18 | packets anymore, which prevents them from creating a legit acknowledge. 19 | -------------------------------------------------------------------------------- /wiki/app-privacy-statement.md: -------------------------------------------------------------------------------- 1 | # Android App Privacy Statement # 2 | 3 | The Gforth and net2o Android app require the camera and audio 4 | recording permission. At the moment, the recording is only used in 5 | ''android-recorder.fs'' and only stored locally. 6 | 7 | Future additions planned will allow to send and receive camera and 8 | audio recordings via net2o, i.e. end-to-end encrypted. -------------------------------------------------------------------------------- /wiki/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/wiki/apple-touch-icon.png -------------------------------------------------------------------------------- /wiki/avalanche.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/wiki/avalanche.png -------------------------------------------------------------------------------- /wiki/distributed-data.md: -------------------------------------------------------------------------------- 1 | # Distributed Data # 2 | 3 | _This is still quite incomplete_ 4 | 5 | Following the “everything is a file” philosophy of Unix, every data object is 6 | a file. It's uniquely referenced by its hash. Further metadata are called 7 | “tags”, and organized in a distributed hash table. There are also “subjects” 8 | (persons, computers), which are referenced by their public keys; necessary 9 | metadata for those subjects is also found in the DHT. 10 | 11 | As the DHT contains all the metadata, objects which are not shared public 12 | should also not be visible in a public hash table; therefore, there are private 13 | or group-related hash tables, as well. 14 | 15 | ## Efficient distribution of data to large numbers of peers ## 16 | 17 | For distributing data to many peers, these peers are arranged in a colored 18 | tree. Data (e.g. video streems) are divided into different chunks, and sent 19 | down different colored branches of the tree. The leaf nodes of each colored 20 | branch then distribute the data to the other branches. It can be shown that 21 | each node receives as much data as it sends (when the tree is balanced). The 22 | latency of the tree is O(log n); the actual base is a tradeoff of bandwidth 23 | and sending latency. The rule of thumb is to use the hop-to-hop latency time 24 | to send out packets, so higher latency per hop means higher fanout of the 25 | tree. 26 | 27 | Trees are formed ad hoc, and since nodes can come and go as they like, 28 | there needs to be self-healing capabilities. Nodes know 2n neighbors for 29 | a tree base n. These trees are used for file-sharing, for group message 30 | delivery, and to keep the DHT in sync. 31 | 32 | ![Avalance](../doc/avalanche.svg) 33 | -------------------------------------------------------------------------------- /wiki/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/wiki/favicon.ico -------------------------------------------------------------------------------- /wiki/impressum.md: -------------------------------------------------------------------------------- 1 | Impressum 2 | ========= 3 | 4 | Angaben gemäß § 5 TMG: 5 | ---------------------- 6 | 7 | Die Domains [net2o.de](https://net2o.de), [net2o.com](https://net2o.com) und 8 | [net2o.net](https://net2o.net) werden für folgendenden Gewerbebetrieb genutzt: 9 | 10 | Bernd Paysan
11 | net2o secure communication
12 | Bergstr. 16
13 | 72393 Burladingen–Starzeln 14 | 15 | Kontakt: 16 | -------- 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 28 | 29 |
Telefon:+𝟦𝟫‧𝟣𝟩𝟥‧𝟪𝟤 𝟢𝟨 𝟪𝟩𝟦
E-Mail:bernd (at) net2o (dot) de
PGP keys:E50D62D4 49FD0E19 3706C235 8B820BB7 67007C30 25 |
04880DE6 ECB06FC8 EE9C3AF4 3B64AEC1 E0B7BDE0 27 |
net2o id:
kQusJzA;7*
?t=uy@X}1G
Wr!+0qqp_C
n176t4(dQ*
30 | 31 | Umsatzsteuer-ID: 32 | ---------------- 33 | 34 | Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:
35 | DE 223 195 380 36 | 37 | [Links](links-statement.md) [EU-GDPR (en)](eu-gdpr.md) [EU-DSGVO 38 | (de)](eu-dsgvo.md) 39 | -------------------------------------------------------------------------------- /wiki/key-format.md: -------------------------------------------------------------------------------- 1 | # Key Format # 2 | 3 | The public key is the primary key (the ID) of a key. Other fields are: 4 | 5 | * Private key (for secret key ring) — the private key may be protected by a 6 | pass phrase and a pass file 7 | * Nickname (for humans) 8 | * Full name (for humans) 9 | * Creation and expiration dates 10 | 11 | ## Signatures ## 12 | 13 | Keys may be signed, we treat key signatures as separate entities. A signature 14 | consists of 15 | 16 | * The pubkey of the signed key 17 | * The pubkey of the signer 18 | * The “digest”, the cryptographic checksum that proves that the signer has 19 | signed the key 20 | 21 | This feature will be implemented when Dan Bernstein integrates signatures 22 | into NaCl; maybe a bit earlier, since the code for these signatures is already 23 | tested. 24 | -------------------------------------------------------------------------------- /wiki/net2o.zh.md: -------------------------------------------------------------------------------- 1 | net2o-再发明互联网 2 | ================ 3 | 4 | net2o是企图再发明互联网。为什么? 5 | --------------------------- 6 | 7 | * 互联网立足于20-30岁的假设。 8 | * 现在这些假设是错误的。 9 | * 它遵循“够用”为原则。 10 | * 有积累的令人讨厌的东西的一大叠。 11 | * 修复这个烂摊子,一个接一个,是错误的尝试。 12 | 13 | 有什么需要固定? 14 | ------------- 15 | 16 | * IP:使用基于交换机的简单的路由,不每一个数据包路由。 17 | * TCP:大多数数据只需要获得可靠的,顺序没有此事。 18 | TCP的流量控制被打破(LEDBAT是更好的)。 19 | * 加密随处可见:这不再是一项昂贵的操作(如AES,尤其是对称加密方案有极其快速的硬件实现)。 20 | * 點對點技術,而不客户端-服务器。 21 | 22 | [英文](net2o.md) 23 | [德文](net2o.de.md) -------------------------------------------------------------------------------- /wiki/nettie.md: -------------------------------------------------------------------------------- 1 | # Nettie, the mascot # 2 | 3 | The net2o logo is a little squid called "nettie", related to "net" as 4 | well as to the German word "nett", which means "nice", "friendly" and 5 | "cute" (and more positive things). 6 | 7 | ![Logo](https://fossil.net2o.de/net2o/doc/trunk/doc/net2o.png) 8 | 9 | Nettie is a little squid, and only very remotely related to the big 10 | data kraken, the cannibalistic arch enemy of nettie: 11 | 12 | ![kraken](https://fossil.net2o.de/net2o/doc/trunk/doc/datenkrake.jpg) 13 | 14 | (image from the NRO, one of the more than 20 members of the 15 | intelligence community of the USA) which harvests all your data (read 16 | the lower part of the badge). Nettie is small and nice, and needs very 17 | little data to survive, it's not big and dangerous. 18 | 19 | Like any squid, it can eject ink and go dark. 20 | 21 | Nettie is artwork, and covered by copyright. Where it is part of 22 | net2o, you can use it under AGPLv3. It is not covered as trademark, 23 | but since I've been using it for years now, don't you dare registering 24 | it as trademark; it is a de facto trademark, and protected against 25 | fraudulent registration. I don't want to exercise this sort of 26 | control. Any product which implements net2o, or provides services 27 | using net2o can use this logo. If you don't use the AGPLv3 for your 28 | net2o implementation or services, you have to ask for permission, 29 | though. 30 | -------------------------------------------------------------------------------- /wiki/squid-bingo.md: -------------------------------------------------------------------------------- 1 | [up](squid.md) back [next](squid-money.md) 2 | 3 | # Introduction to $quid 4 | 5 | I figured out that the user layer of my net2o peer to peer protocol 6 | needs some sort of asset transaction protocol (“cryptocurrency”), and 7 | when secure protocols meet money, it's not just technology that 8 | matters. This paper will therefore take both sides into consideration. 9 | 10 | Here's the bingo chart for all valid critics on BitCoins: 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
BitCoindoesn't scaleis a snowball systemwill be destroyed by Chinais a plot to destoy capitalismis used by drug dealers and terrorists
Bubblebusts next weekalready is bustedinflated too muchdeflated too muchis obviously a bubble
BitCoin is deflationaryThe BlockChain is too bigTulipmania!blocks are too bigblocks are too small
BitCoin isunregulatedillegalonly an experiment and now endedworse than Fiat because not backed by material thingsworse than my fork
Too many digits behind the pointToo few dicits behind the pointBitCoin is not anonymousBitCoin is used for money launderingTold you so!
54 | 55 | The ideology behind BitCoins certainly is that of a libertarian 56 | cypherpunk, with no trust in the state, but a lot of trust in anarchic 57 | communities. With fear of inflation, offer the other disease of 58 | currencies, deflation, as “solution”. Plague is not a solution to 59 | cholera, either. 60 | 61 | BTW: BlockChains cure cancer, protect you from evil eye, prevent 62 | flood, plague (though not cholera), and drought, and they can walk 63 | over water (even when not frozen). 64 | 65 | [up](squid.md) back [next](squid-money.md) 66 | -------------------------------------------------------------------------------- /wiki/squid.md: -------------------------------------------------------------------------------- 1 | # The $quid – CryptoCurrency and BlockChain 2 | 3 | ![Squid](../doc/squid-logo.png) 4 | 5 | ## Abstract 6 | 7 | _10 years after BitCoins “whitepaper”, the BlockChain and crypto 8 | currencies are a big hype. Time to look at the results of the 9 | experiment, see what failed and what works, check the consequences for 10 | society, and propose improvements._ 11 | 12 | _BitCoin's technology has three problems which need to be fixed:_ 13 | 14 | * _The unfair distribution of coins_ 15 | * _The energy consumption of proof of work_ 16 | * _The non-scaleable replicated, but not partitioned ledger_ 17 | 18 | The lightning network tries to address the last point, by doing transactions 19 | off-chain. 20 | 21 | ## Subtopic List 22 | 23 | * [Bullshit Bingo Sheet](squid-bingo.md) 24 | * [Purpose & History of Currencies](squid-money.md) 25 | * [Proof of What?](squid-pow.md) 26 | * [Speculation Objects?](squid-speculation.md) 27 | * [SwapDragonChain](squid-chain.md) 28 | * [Ethical Mining](squid-mining.md) 29 | * [The Decentral Bank](squid-fed.md) 30 | * [Dumb Contracts](squid-contracts.md) 31 | * [Appendix: Literature](squid-literature.md) 32 | 33 | ### Share and enjoy! 34 | 35 | _Note: I want to point out that a service-oriented business model for free 36 | software works, but inevitably pushes the companies into a business model, 37 | where only the complaint department makes money. If you don't want to stick 38 | your head into a pig due to the depressive AI of the useless Sirius 39 | Cypernetics Corporation products you got, make sure that there is a business 40 | model for creating good, easy to use, and cheap to maintain software._ 41 | 42 | Incentives matter. Economy is all about game theory. 43 | -------------------------------------------------------------------------------- /wiki/threefish.md: -------------------------------------------------------------------------------- 1 | # Threefish AEAD mode # 2 | 3 | I use Keccak in Duplex mode, which gives both encryption and 4 | authentication in one go (it's an AEAD cipher - authenticated 5 | encryption with associated data). For block ciphers, AEAD usually 6 | requires a second function, e.g. a hash or at least a good enough 7 | checksum protected by the cypher itself. 8 | 9 | However, for Threefish, there's a reasonably good hash mode, with 10 | "reasonably good" as in "was finalist in the SHA-3 competition" (as 11 | crypto primitive for the Skein3 hash function). None of the finalists 12 | failed for security weaknesses; Threefish is just slower when 13 | implemented in hardware. 14 | 15 | Now, unlike Keccak, the Skein mode for Threefish can not be used to 16 | encrypt and hash the plaintext in one go. Even though the algorithm 17 | actually does blockwise encrypt the message using Threefish, and 18 | exchanges the key for each block. Why? The next block is encrypted 19 | using the xor of plaintext and ciphertext of the previous block as 20 | key. With a known plaintext attack, you can deduce the key for 21 | everything following the block where you know the plaintext (and 22 | there, you don't need it). 23 | 24 | And that's even though you can start Skein3 with an arbitrary key, 25 | producing a keyed hash (good enough for HMAC). 26 | 27 | So I added a third input into that xor for the next key: xor with the 28 | previous key. Now that simple known plaintext attack stops working. 29 | As this mode for Threefish has not seen good review, I won't suggest 30 | using it now. -------------------------------------------------------------------------------- /wiki/todo.md: -------------------------------------------------------------------------------- 1 | # TODO # 2 | 3 | This is a short to-do list for things I have concrete plans 4 | 5 | ## Low-level protocol ## 6 | 7 | * change flow control window so that it minimizes buffer fillup 8 | instead of using the rate for this purpose - should stabilize the 9 | flow control in case of severe congestion. 10 | * Add automatic rearrangement of multichat trees (manual is there) 11 | * Split up DHT into directory DHT and subnodes 12 | * Add mirror&sync to DHT subnodes 13 | * Add streaming data 14 | * Add remote terminal 15 | * Add onion routing 16 | * CGNAT experiments to get CGNAT -> NAT to work 17 | * Add p2p payment (aka BlockChain) 18 | 19 | ## Security ## 20 | 21 | * Add a get-ip permission to control who can use your node to bounce 22 | (half done, permission is there, but not checked) 23 | * Add a NAT traversal permission to not reveal IP addresses depending on 24 | peer 25 | * Add a kill switch passphrase which erases all keys when entered 26 | * Add a passphrase for secret key export 27 | 28 | ## Binary packaging ## 29 | 30 | * RPM builds and repository needed (through OpenSuSE build service) 31 | * Mac OS X distributions 32 | 33 | ## High-level API ## 34 | 35 | * Produce a Gforth that can run inside a sandbox, e.g. Linux 36 | namespace+chroot+capabilities jail 37 | * Get MINOS2 so far that it can be used as GUI inside the jail 38 | * Create a framework for structured text and pre-formatted text 39 | * Use streaming data for audio+video streaming and -chats 40 | 41 | ## GUI wishlist ## 42 | 43 | * Text marker function for received messages 44 | 45 | ## Where can you help? ## 46 | 47 | * Performance of crypto implementations: 48 | + ed25519-donna has SSE2 support on Intel, but could be faster on ARM 49 | with Neon instructions 50 | + Threefish also could benefit from a Neon implementation 51 | + Keccak already has one and may provide a starting point 52 | * Testing - beat it, test it, report bugs. I'll take every bug report 53 | serious. There's a [ticket system](/net2o/reportlist) 54 | -------------------------------------------------------------------------------- /wiki/wizards.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/forthy42/net2o/17d600e6e27a1e44d539096ad2b2f827107bed9f/wiki/wizards.jpg -------------------------------------------------------------------------------- /wurstkessel/wurstkessel-init.fs: -------------------------------------------------------------------------------- 1 | \ init wurstkessel to be actually useful 2 | 3 | : random-init ( -- ) 4 | s" /dev/random" r/o open-file throw >r 5 | wurst-salt state# r@ read-file throw drop 6 | r> close-file throw ; 7 | 8 | : read-wurstrng ( fd -- flag ) { fd } 9 | 0. fd reposition-file throw 10 | wurst-salt state# fd read-file throw state# = >r 11 | state-init state# fd read-file throw state# = r> and 12 | fd close-file throw ; 13 | 14 | : write-wurstrng ( -- ) 15 | s" ~/.wurstrng" r/w create-file throw >r 16 | rng-buffer cell+ state# 2* r@ write-file throw 17 | r> close-file throw ; 18 | 19 | : salt-init ( -- ) 20 | s" ~/.wurstrng" r/o open-file IF drop random-init 21 | ELSE read-wurstrng 0= IF random-init THEN THEN 22 | rng-step write-wurstrng rng-step ; 23 | 24 | wurst-init 25 | wurst-task-init 26 | salt-init 27 | -------------------------------------------------------------------------------- /xtype.fs: -------------------------------------------------------------------------------- 1 | \ hex helpers 2 | 3 | : hex[ ]] [: [[ ; immediate 4 | : ]hex ]] ;] $10 base-execute [[ ; immediate 5 | : x~~ ]] hex[ ~~ ]hex [[ ; immediate 6 | 7 | : xtype ( addr u -- ) hex[ 8 | bounds ?DO I c@ 0 <# # # #> type LOOP ]hex ; 9 | 10 | : (digits>$) ( addr u -- addr' u' ) save-mem 11 | >r dup dup r> bounds ?DO 12 | I 2 s>number drop over c! char+ 13 | 2 +LOOP over - ; 14 | 15 | : hex>$ ( addr u -- addr' u' ) 16 | ['] (digits>$) $10 base-execute ; 17 | 18 | : hex" ( "hexstring" -- addr u ) 19 | '"' parse hex>$ ; 20 | compsem: '"' parse hex>$ postpone SLiteral ; 21 | --------------------------------------------------------------------------------